From 437144f41c74505d362a5214a18cec3d01b3ce4b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 10 十月 2022 17:51:30 +0800
Subject: [PATCH] 2022.10.10

---
 pages/m_user/sceneauthentication/sceneauthentication.json     |    6 
 component/checkboxgroup/checkboxgroup.json                    |    4 
 pages/m_service/c_schedule/c_schedule.wxml                    |   16 
 pages/m_user/behaviors/b_login.js                             |   99 ++
 pages/m_service/c_schedule/c_schedule.js                      |   44 
 pages/m_user/companyauthentication/companyauthentication.js   |   19 
 res/icons/companyinfo-1.png                                   |    0 
 pages/m_user/base_c/c_company-info/c_company-info.wxss        |   48 +
 pages/m_user/base_c/c_company-info/c_company-info.js          |   88 ++
 pages/m_user/userlogin/userlogin.wxss                         |    9 
 component/radiogroup/radiogroup.json                          |    4 
 pages/m_user/userloginpw/userloginpw.js                       |  119 +-
 pages/m_user/sceneauthentication/sceneauthentication.wxss     |   18 
 service/baserequest.js                                        |   16 
 pages/m_user/companyregister/companyregister.wxss             |    1 
 component/checkboxgroup/checkboxgroup.wxss                    |   25 
 component/checkboxgroup/checkboxgroup.js                      |   64 +
 pages/m_user/mine/mine.wxss                                   |   18 
 component/inputcell/inputcell.wxml                            |   22 
 pages/m_consult/consultonline/consultonline.wxml              |    2 
 pages/m_service/p_schedule/p_schedule.js                      |  119 --
 pages/m_consult/consultonline/consultonline.js                |   14 
 pages/m_user/base_c/c_company-info/c_company-info.json        |   10 
 pages/m_user/behaviors/b_inputCheck.js                        |  169 ++++
 pages/m_service/p_schedule/p_schedule.wxml                    |    2 
 pages/m_assessment/assessment/assessment.wxss                 |    2 
 pages/m_user/base_c/c_scene-info/c_scene-info.wxss            |   78 +
 component/radiogroup/radiogroup.wxss                          |   25 
 pages/m_user/sceneauthentication/sceneauthentication.js       |   28 
 pages/m_user/companyauthentication/companyauthentication.wxml |    6 
 pages/m_user/userlogin/userlogin.js                           |  110 ++
 pages/m_user/userloginpw/userloginpw.wxml                     |    2 
 pages/m_service/c_schedule/c_schedule.wxss                    |    4 
 app.wxss                                                      |    2 
 pages/m_promise/promisehome/promise.wxml                      |   19 
 pages/m_user/base_c/c_company-info/c_company-info.wxml        |   21 
 component/radiogroup/radiogroup.js                            |   42 +
 pages/m_user/userlogin/userlogin.wxml                         |    6 
 pages/m_user/companyregister/companyregister.js               |   66 +
 app.js                                                        |   24 
 component/checkboxgroup/checkboxgroup.wxml                    |   11 
 pages/m_user/sceneauthentication/sceneauthentication.wxml     |    7 
 pages/m_consult/consultonline/consultonline.wxss              |    1 
 pages/m_user/companyregister/companyregister.wxml             |    2 
 pages/m_user/companyauthentication/companyauthentication.json |    6 
 data/ScheduleItem.js                                          |   17 
 pages/m_user/base_c/c_scene-info/c_scene-info.js              |   82 ++
 service/scheduleservice.js                                    |   18 
 pages/m_user/base_c/c_scene-info/c_scene-info.json            |   12 
 pages/m_user/mine/mine.wxml                                   |   26 
 data/sceneInfo.js                                             |  394 +++++++++
 pages/m_assessment/assessment/assessment.wxml                 |   56 
 component/inputcell/inputcell.wxss                            |   10 
 pages/m_service/p_scheduledetail/p_scheduledetail.wxml        |   14 
 app.json                                                      |    8 
 pages/m_user/mine/mine.js                                     |   69 +
 pages/m_consult/consulthome/consulthome.wxss                  |    2 
 data/schedules.js                                             |   89 ++
 pages/m_service/p_scheduledetail/p_scheduledetail.js          |   12 
 pages/m_user/base_c/c_scene-info/c_scene-info.wxml            |   42 +
 pages/m_user/companyregister/companyregister.json             |    3 
 service/userservice.js                                        |   22 
 component/radiogroup/radiogroup.wxml                          |   11 
 pages/m_user/companyauthentication/companyauthentication.wxss |   18 
 pages/m_service/behaviors/b_scheduleManager.js                |   80 ++
 65 files changed, 2,084 insertions(+), 299 deletions(-)

diff --git a/app.js b/app.js
index 583cc38..7011527 100644
--- a/app.js
+++ b/app.js
@@ -1,18 +1,20 @@
 // app.js
+import moment from './utils/moment.min'
+
 App({
   onLaunch() {
-    // 灞曠ず鏈湴瀛樺偍鑳藉姏
-    // const logs = wx.getStorageSync('logs') || []
-    // logs.unshift(Date.now())
-    // wx.setStorageSync('logs', logs)
-
-    // 鐧诲綍
-    // wx.login({
-    //   success: res => {
-    //     // 鍙戦�� res.code 鍒板悗鍙版崲鍙� openId, sessionKey, unionId
-    //   }
-    // })
     console.log('onLaunch');
+
+    moment.updateLocale('en', {
+      weekdays: '鏄熸湡鏃鏄熸湡涓�_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏�'.split('_')
+    });
+
+    wx.getStorage({
+      key: 'userProfile',
+      success: (res) => {
+        this.globalData.userProfile = res.data
+      },
+    })
   },
   globalData: {
     perPage: 5,
diff --git a/app.json b/app.json
index e187985..8629d70 100644
--- a/app.json
+++ b/app.json
@@ -41,12 +41,16 @@
     "pages/icons/icons",
     "pages/text/text",
     "pages/test/test",
-    "pages/test2/test2"
+    "pages/test2/test2",
+    "pages/m_user/companyregister/companyregister",
+    "pages/m_user/companyauthentication/companyauthentication",
+    "pages/m_user/base_c/c_company-info/c_company-info",
+    "pages/m_user/sceneauthentication/sceneauthentication"
   ],
   "window": {
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#fff",
-    "navigationBarTitleText": "涓皬浼佷笟鐜瀹堟硶鏈嶅姟骞冲彴",
+    "navigationBarTitleText": "涓皬寰紒涓氱敓鎬佺幆澧冩櫤鑳芥湇鍔�",
     "navigationBarTextStyle": "black",
     "backgroundColor": "#57E4CB"
   },
diff --git a/app.wxss b/app.wxss
index 35c58a8..25494ee 100644
--- a/app.wxss
+++ b/app.wxss
@@ -80,7 +80,7 @@
 }
 
 .submit:active {
-  background-color: var(--fyui-BG-COLOR-ACTIVE);
+  background: linear-gradient(to right, #b7e9ce, #adebde);
 }
 
 .no-data {
diff --git a/component/checkboxgroup/checkboxgroup.js b/component/checkboxgroup/checkboxgroup.js
new file mode 100644
index 0000000..aaef940
--- /dev/null
+++ b/component/checkboxgroup/checkboxgroup.js
@@ -0,0 +1,64 @@
+// component/checkboxgroup/checkboxgroup.js
+Component({
+  options: {
+    addGlobalClass: true
+  },
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    remarkPlaceholder: {
+      type: String,
+      value: '璇疯緭鍏ュ娉�'
+    },
+    options: {
+      type: Array,
+      value: []
+    }
+  },
+
+  /**
+   * 缁勪欢鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+
+  },
+
+  /**
+   * 缁勪欢鐨勬柟娉曞垪琛�
+   */
+  methods: {
+    remarkChange:function(e){
+      const value = e.detail.value
+      const index = e.currentTarget.dataset.index
+      this.setData({
+        [`options[${index}].remark`]: value,
+        [`options[${index}].noValue`]: false,
+      })
+      this.triggerEvent('change', {options: this.data.options})
+    },
+
+    checkboxChange(e) {
+      // console.log('checkbox鍙戠敓change浜嬩欢锛屾惡甯alue鍊间负锛�', e.detail.value)
+
+      const options = this.data.options
+      const values = e.detail.value
+      for (let i = 0, lenI = options.length; i < lenI; ++i) {
+        options[i].checked = false
+
+        for (let j = 0, lenJ = values.length; j < lenJ; ++j) {
+          if (options[i].value === values[j]) {
+            options[i].checked = true
+            break
+          }
+        }
+      }
+
+      this.setData({
+        options
+      })
+
+      this.triggerEvent('change', {options: this.data.options})
+    }
+  }
+})
\ No newline at end of file
diff --git a/component/checkboxgroup/checkboxgroup.json b/component/checkboxgroup/checkboxgroup.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/component/checkboxgroup/checkboxgroup.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/component/checkboxgroup/checkboxgroup.wxml b/component/checkboxgroup/checkboxgroup.wxml
new file mode 100644
index 0000000..c184c8e
--- /dev/null
+++ b/component/checkboxgroup/checkboxgroup.wxml
@@ -0,0 +1,11 @@
+<!--component/checkboxgroup/checkboxgroup.wxml-->
+<checkbox-group class="item-group" bindchange="checkboxChange">
+  <block wx:for="{{options}}" wx:for-item="checkItem" wx:key="index">
+    <label class="weui-agree">
+      <checkbox class="weui-agree__checkbox-check" value="{{checkItem.value}}" checked="{{checkItem.checked}}" />
+      <span class="weui-agree__checkbox"></span>
+      <span class="">{{checkItem.name}}</span>
+    </label>
+    <input wx:if="{{checkItem.hasRemark && checkItem.checked}}" class="item-input" placeholder="{{checkItem.placeholder}}" placeholder-style="color:{{checkItem.noValue?'red':'#B2B2B2'}};" type="text" value="{{checkItem.remark}}" data-index="{{index}}" bindinput="remarkChange"></input>
+  </block>
+</checkbox-group>
\ No newline at end of file
diff --git a/component/checkboxgroup/checkboxgroup.wxss b/component/checkboxgroup/checkboxgroup.wxss
new file mode 100644
index 0000000..939355c
--- /dev/null
+++ b/component/checkboxgroup/checkboxgroup.wxss
@@ -0,0 +1,25 @@
+/* component/checkboxgroup/checkboxgroup.wxss */
+.item-group {
+  display: flex;
+  flex-wrap: wrap;
+  padding: 4px 0 20px 0;
+}
+
+.weui-agree{
+  padding: 6px 8px;
+}
+
+.weui-agree__checkbox {
+  width: 20px;
+  height: 20px;
+}
+
+.item-input {
+  display: inline;
+  /* width: 20vw; */
+  /* background-color: beige; */
+  font-size: 0.8rem;
+  margin-top: 2px;
+  /* margin-bottom: 6px; */
+  border-bottom: 1px solid var(--fyui-text-color_3);
+}
\ No newline at end of file
diff --git a/component/inputcell/inputcell.wxml b/component/inputcell/inputcell.wxml
index df6b4d1..bd3e7fe 100644
--- a/component/inputcell/inputcell.wxml
+++ b/component/inputcell/inputcell.wxml
@@ -1,13 +1,11 @@
-<view class="page">
-  <view class="hr-view"></view>
-  <mp-cell ext-class="ext-cell">
-    <view slot="title" class="title-cell"><text class="{{item.required != false ? 'required' : 'not-required'}}">*</text>{{item.name}}</view>
-    <image wx:if="{{item.src}}" slot="icon" class="header-img" src="{{item.src}}"></image>
+<view class="hr-view"></view>
+<mp-cell ext-class="ext-cell">
+  <view slot="title" class="title-cell"><text class="{{item.required != false ? 'required' : 'not-required'}}">*</text>{{item.name}}</view>
+  <image wx:if="{{item.src}}" slot="icon" class="header-img" src="{{item.src}}"></image>
 
-    <view class="flexbox {{alignLeft?'':'flexbox-end'}}">
-      <input wx:if="{{item.input}}" type="{{item.type?item.type:'text'}}" maxlength="{{item.maxLength?item.maxLength:'-1'}}" id="{{item.id?item.id:''}}" placeholder-style="color:{{item.noValue?'red':'#B2B2B2'}};" class="weui-up-input {{inputClass}} {{alignLeft?'':'input-right'}}" bindinput="changeV" value="{{item.value}}" placeholder="{{item.placeholder ? item.placeholder : '璇疯緭鍏�' + item.name}} " />
-      <view wx:else="{{text}}" class="weui-up-input {{inputClass}} {{alignLeft?'':'input-right'}}">{{item.value}}</view>
-      <view class="unit">{{item.unit}}</view>
-    </view>
-  </mp-cell>
-</view>
\ No newline at end of file
+  <view class="flexbox {{alignLeft?'':'flexbox-end'}}">
+    <input wx:if="{{item.input}}" type="{{item.type?item.type:'text'}}" maxlength="{{item.maxLength?item.maxLength:'-1'}}" id="{{item.id?item.id:''}}" placeholder-style="color:{{item.noValue?'red':'#B2B2B2'}};" class="weui-up-input {{inputClass}} {{alignLeft?'':'input-right'}}" bindinput="changeV" value="{{item.value}}" placeholder="{{item.placeholder ? item.placeholder : '璇疯緭鍏�' + item.name}} " />
+    <view wx:else="{{text}}" class="weui-up-input {{inputClass}} {{alignLeft?'':'input-right'}}">{{item.value}}</view>
+    <view class="unit">{{item.unit}}</view>
+  </view>
+</mp-cell>
\ No newline at end of file
diff --git a/component/inputcell/inputcell.wxss b/component/inputcell/inputcell.wxss
index b878506..2bc3d90 100644
--- a/component/inputcell/inputcell.wxss
+++ b/component/inputcell/inputcell.wxss
@@ -6,7 +6,7 @@
 }
 .weui-up-input{
   color: black;
-  font-size: var(--ffui-font-size-2);
+  font-size: 1rem;
   /* border-radius: 10rpx; */
   width: 100%;
   /* background-color: seagreen; */
@@ -21,6 +21,7 @@
 .required {
   color: red;
   text-align: center;
+  vertical-align: middle;
 }
 
 .not-required {
@@ -30,9 +31,10 @@
 .title-cell{
   white-space: nowrap;
   display: inline-block;
-  font-size: var(--ffui-font-size-2);
-  width: 105px;
-  color:var(--ffui-text-color-1);
+  font-size: 1rem;
+  width: 32vw;
+  color:var(--fyui-text-color-1);
+  /* background-color: seagreen; */
 }
 .hr-view{
   height: 2rpx;
diff --git a/component/radiogroup/radiogroup.js b/component/radiogroup/radiogroup.js
new file mode 100644
index 0000000..c897e87
--- /dev/null
+++ b/component/radiogroup/radiogroup.js
@@ -0,0 +1,42 @@
+// component/radiogroup/radiogroup.js
+Component({
+  options: {
+    addGlobalClass: true
+  },
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    options: {
+      type: Array,
+      value: []
+    }
+  },
+
+  /**
+   * 缁勪欢鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+
+  },
+
+  /**
+   * 缁勪欢鐨勬柟娉曞垪琛�
+   */
+  methods: {
+    radioChange(e) {
+      console.log('radio鍙戠敓change浜嬩欢锛屾惡甯alue鍊间负锛�', e.detail.value)
+  
+      const items = this.data.options
+      for (let i = 0, len = items.length; i < len; ++i) {
+        items[i].checked = items[i].value === e.detail.value
+      }
+  
+      this.setData({
+        options: items
+      })
+
+      this.triggerEvent('change', {options: this.data.options})
+    }
+  }
+})
diff --git a/component/radiogroup/radiogroup.json b/component/radiogroup/radiogroup.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/component/radiogroup/radiogroup.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/component/radiogroup/radiogroup.wxml b/component/radiogroup/radiogroup.wxml
new file mode 100644
index 0000000..8f1b1e3
--- /dev/null
+++ b/component/radiogroup/radiogroup.wxml
@@ -0,0 +1,11 @@
+<!--component/radiogroup/radiogroup.wxml-->
+<radio-group class="item-group" bindchange="radioChange">
+  <block wx:for="{{options}}" wx:for-item="checkItem" wx:key="i" wx:for-index="i">
+    <label class="weui-agree">
+      <radio class="weui-agree__checkbox-check" value="{{checkItem.value}}" checked="{{checkItem.checked}}" />
+      <span class="weui-agree__checkbox"></span>
+      <span class="">{{checkItem.name}}</span>
+    </label>
+    <input class="item-input" placeholder="{{checkItem.placeholder}}" wx:if="{{checkItem.hasRemark && checkItem.checked}}" type="text" value="{{checkItem.remark}}"></input>
+  </block>
+</radio-group>
\ No newline at end of file
diff --git a/component/radiogroup/radiogroup.wxss b/component/radiogroup/radiogroup.wxss
new file mode 100644
index 0000000..55d4db0
--- /dev/null
+++ b/component/radiogroup/radiogroup.wxss
@@ -0,0 +1,25 @@
+/* component/radiogroup/radiogroup.wxss */
+.item-group {
+  display: flex;
+  flex-wrap: wrap;
+  padding: 4px 0 20px 0;
+}
+
+.weui-agree{
+  padding: 6px 8px;
+}
+
+.weui-agree__checkbox {
+  width: 20px;
+  height: 20px;
+}
+
+.item-input {
+  display: inline;
+  /* width: 20vw; */
+  /* background-color: beige; */
+  font-size: 0.8rem;
+  margin-top: 2px;
+  /* margin-bottom: 6px; */
+  border-bottom: 1px solid var(--fyui-text-color_3);
+}
\ No newline at end of file
diff --git a/data/ScheduleItem.js b/data/ScheduleItem.js
new file mode 100644
index 0000000..dd459c3
--- /dev/null
+++ b/data/ScheduleItem.js
@@ -0,0 +1,17 @@
+function ScheduleItem({
+  name,
+  noticeBef,
+  noticeNow,
+  noticeAft,
+  type,
+}) {
+  // this.name: '鏈湀10鍙蜂负鍙拌处鍑嗘椂鎻愪氦闄愭湡',
+  //   noticeBef: '',
+  //   noticeNow: '',
+  //   noticeAft: '',
+  //   type: ''
+}
+
+ScheduleItem.prototype = {
+
+}
\ No newline at end of file
diff --git a/data/sceneInfo.js b/data/sceneInfo.js
new file mode 100644
index 0000000..5d3bb1d
--- /dev/null
+++ b/data/sceneInfo.js
@@ -0,0 +1,394 @@
+//鍦烘櫙娉ㄥ唽淇℃伅
+const sceneInfo = ()=> {
+  const map = new Map()
+  //椁愰ギ**************************************************************************************************
+  map.set('1', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鑿滅郴",
+      id: "cuisine",
+      type: 'checkbox',
+      value: '',
+      options: [
+        {name: '涓紡', value: '0', checked: true},
+        {name: '瑗垮紡', value: '1', },
+        {name: '鏃ュ紡', value: '2', },
+        {name: '闊╁紡', value: '3', },
+        {name: '娉板紡', value: '4', },
+        {name: '鐏攨', value: '5', },
+        {name: '鐑х儰', value: '6', },
+        {name: '缁煎悎', value: '7', },
+        {name: '鍏朵粬', value: '99', hasRemark: true, remark: '', placeholder: '杈撳叆鍏朵粬鑿滅郴'},
+      ]
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "灏遍浣嶆暟",
+      id: "totalSeating",
+      type: 'radio',
+      value: '',
+      options: [
+        {name: '鏃�', value: '0', checked: true},
+        {name: '1~20', value: '1', },
+        {name: '21~50', value: '2', },
+        {name: '51~100', value: '3', },
+        {name: '100浠ヤ笂', value: '4', },
+      ]
+    },
+    {
+      name: "鍑�鍖栬澶囨暟閲�",
+      id: "purifyDeviceNum",
+      type: 'number',
+      input: true,
+      value: "",
+      noValue: false,
+      unit: '鍙�'
+    },
+    {
+      name: "鐩戞祴璁惧鏁伴噺",
+      id: "supervisionDeviceNum",
+      type: 'number',
+      input: true,
+      value: "",
+      noValue: false,
+      unit: '鍙�'
+    },
+    {
+      name: "鐏跺ご鏁伴噺",
+      id: "cookingRangeNum",
+      type: 'number',
+      input: true,
+      value: "",
+      noValue: false,
+      unit: '涓�'
+    },
+    {
+      name: "骞村潎鐢ㄦ补閲�",
+      id: "annualAvgOil",
+      type: 'number',
+      input: true,
+      value: "",
+      noValue: false,
+      unit: '鍗�'
+    },
+    {
+      name: "鐢ㄦ补绫诲瀷",
+      id: "oilType",
+      type: 'checkbox',
+      value: "",
+      options: [
+        {name: '璞嗘补', value: '0', checked: true},
+        {name: '璧烽叆娌�', value: '1', },
+        {name: '鍏朵粬', value: '99', hasRemark: true, remark: '', placeholder: '杈撳叆鍏朵粬绫诲瀷'},
+      ]
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "琛楅晣",
+      id: "town",
+      type: 'picker',
+      pickerMode: 'region',
+      // value: ['涓婃捣甯�', '涓婃捣甯�', '閲戝北鍖�', '鐭冲寲琛楅亾'],
+      value: [],
+      noValue: false,
+      required: false,
+    },
+    {
+      name: "闆嗕腑鍖�",
+      id: "concentrationArea",
+      input: true,
+      value: '',
+      noValue: false,
+      required: false
+    },
+    {
+      name: "鎺掑彛鏁伴噺",
+      id: "outfallCount",
+      type: 'number',
+      input: true,
+      value: '',
+      noValue: false,
+      required: false,
+      unit: '涓�'
+    },
+    {
+      name: "鎺掑彛浣嶇疆",
+      id: "outfallLocation",
+      input: true,
+      value: '',
+      noValue: false,
+      required: false,
+    },
+    {
+      name: "鎺掑彛缂栧彿",
+      id: "outfallNum",
+      input: true,
+      value: '',
+      noValue: false,
+      required: false
+    },
+  ])
+
+  //宸ュ湴**************************************************************************************************
+  map.set('2', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  //鐮佸ご**************************************************************************************************
+  map.set('3', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  //鍫嗗満**************************************************************************************************
+  map.set('4', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  //鎼呮媽绔�**************************************************************************************************
+  map.set('5', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  //宸ヤ笟浼佷笟**************************************************************************************************
+  map.set('6', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  //姹戒慨**************************************************************************************************
+  map.set('7', [{
+      name: "搴楅摵鍚嶇О",
+      id: "sceneName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "搴楅摵绠�绉�",
+      id: "sceneNickName",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "缁忚惀鍦板潃",
+      id: "address",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴浜�",
+      id: "contract",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+    {
+      name: "鑱旂郴鏂瑰紡",
+      id: "telephone",
+      input: true,
+      value: '',
+      noValue: false,
+    },
+  ])
+
+  return map
+}
+
+export default sceneInfo
\ No newline at end of file
diff --git a/data/schedules.js b/data/schedules.js
new file mode 100644
index 0000000..6199654
--- /dev/null
+++ b/data/schedules.js
@@ -0,0 +1,89 @@
+import moment from '../utils/moment.min'
+
+//
+const sysSchedules = function () {
+  let s = []
+  const now = moment().hour(0).minute(0).second(0).millisecond(0)
+  const year = now.year()
+  //鍙拌处姣忔湀10鍙蜂负鎻愪氦鏃�
+  const day = 10
+  for (let m = 1; m <= 12; m++) {
+    const mon = m > 9 ? m : `0${m}`
+    const item = {
+      time: moment(`${year}-${mon}-10`),
+      events: [{
+        category: `${year}骞�${m}鏈堢幆淇濆伐浣滄棩绋媊,
+        name: `鏈湀闇�鎻愪氦鍙拌处`,
+        type: 1, //绯荤粺鏃ョ▼
+        steps: [{
+          index: '01',
+          title: ['鎻愪氦', '鏂瑰紡'],
+          content: '鍓嶅線鍙拌处绠$悊鐣岄潰锛屾牴鎹彴璐︾被鍨嬪垎绫讳笂浼犲彴璐﹀浘鐗囥��'
+        }, {
+          index: '02',
+          title: ['鎻愪氦', '鏈熼檺'],
+          content: '娉ㄦ剰鍙拌处鎻愪氦鍛ㄦ湡涓轰竴涓湀锛屾瘡鏈堝敖閲�10鍙蜂箣鍓嶆彁浜や笂鏈堝彴璐︼紝閫炬湡鍚庣幆淇濅俊鐢ㄨ瘎浼颁細鏈夋墍褰卞搷銆�'
+        }]
+      }]
+    }
+    s.push(item)
+  }
+  //璇勪及姣忔湀鎻愪氦涓�娆★紝瀹氫负5鍙�
+  for (let m = 1; m <= 12; m++) {
+    const mon = m > 9 ? m : `0${m}`
+    const item = {
+      time: moment(`${year}-${mon}-05`),
+      events: [{
+        category: `${year}骞�${m}鏈堢幆淇濆伐浣滄棩绋媊,
+        name: `鏈湀闇�瑕佸畬鎴愯嚜娴嬫櫤璇刞,
+        type: 1, //绯荤粺鏃ョ▼
+        steps: [{
+          index: '01',
+          title: ['鑷瘎', '鏂规硶'],
+          content: '鍓嶅線鑷祴鏅鸿瘎鐣岄潰锛岀偣鍑烩�滃幓娴嬭瘎鈥濇寜閽繘琛岃嚜璇勩��'
+        }, {
+          index: '02',
+          title: ['娴嬭瘎', '鍛ㄦ湡'],
+          content: '娴嬭瘎鍛ㄦ湡涓轰竴涓湀涓�娆★紝绉瀬鑷瘎鍙湁鏁堝府鍔╂偍鐭ユ檽浼佷笟褰撳墠鐨勭幆淇濋殣鎮c��'
+        }]
+      }]
+    }
+    s.push(item)
+  }
+  //鎵胯姣忎竴骞存彁浜や竴娆�
+  const item = {
+    category: `${year}骞�12鏈堢幆淇濆伐浣滄棩绋媊,
+    time: moment(`${year}-12-31`),
+    events: [{
+      name: `鏈勾搴﹂渶瑕佸畬鎴愬畧娉曟壙璇篳,
+      type: 1, //绯荤粺鏃ョ▼
+      steps: [{
+        index: '01',
+        title: ['鎵胯', '鏂规硶'],
+        content: '鍓嶅線瀹堟硶鎵胯鐣岄潰锛屾牴鎹彁绀猴紝绛剧讲瀹堟硶鎵胯涔︺��'
+      }, {
+        index: '02',
+        title: ['鎵胯涔�', '浣滅敤'],
+        content: '绛剧讲瀹堟硶鎵胯涔︼紝鎰忓懗鐫�鎮ㄤ富鍔ㄥ悜鐜繚閮ㄩ棬鎵胯閬靛畧鐩稿叧瑙勭珷鍒跺害銆�'
+      }, {
+        index: '03',
+        title: ['鎵胯涔�', '鏈夋晥鏈�'],
+        content: '瀹堟硶鎵胯涔︿粠绛剧讲涔嬫棩璧凤紝鏈夋晥鏈熶负涓�骞�'
+      }]
+    }],
+  }
+  s.push(item)
+
+  s.sort(function (x, y) {
+    if (x.time.isBefore(y.time)) {
+      return -1;
+    } else if (x.time.isAfter(y.time)) {
+      return 1;
+    } else {
+      return 0;
+    }
+  })
+  return s
+}
+
+export default sysSchedules
\ No newline at end of file
diff --git a/pages/m_assessment/assessment/assessment.wxml b/pages/m_assessment/assessment/assessment.wxml
index 3a84a68..deeb1f6 100644
--- a/pages/m_assessment/assessment/assessment.wxml
+++ b/pages/m_assessment/assessment/assessment.wxml
@@ -1,4 +1,6 @@
 <!--pages/assessment/assessment.wxml-->
+<import src="/template/nodata.wxml"></import>
+
 <view class="page">
   <!-- <view class="banner-bg"></view> -->
 
@@ -65,43 +67,47 @@
         </picker>
       </view>
       <ec-canvas id="mychart-dom-line" canvas-id="mychart-line" ec="{{ ec }}"></ec-canvas>
+      <!-- <template wx:else is="nodataPage"></template> -->
     </view>
 
     <view class="fyui-cell fyui-cell_select title">
       <view class="fyui-cell__bd">鍘嗗彶娴嬭瘎</view>
       <view class="fyui-cell__ft">鏌ョ湅鏇村</view>
     </view>
-    <view wx:for="{{historys}}" wx:key="index" data-index="index" class="flex-h" style="align-items: flex-start;">
-      <view class="history_icon">
-        <view class="history_icon_1">
-          <view></view>
-        </view>
-        <view class="history_icon_2"></view>
-      </view>
-      <view style="flex: 1;">
-        <view class="history_time">{{item.time}}</view>
-        <view class="h-cell fyui-panel">
-          <view class="h-tag">{{item.updateTime}}</view>
-          <view class="h-line_1">
-            <view class="flex-h">
-              <view class="h-score" style="background-color: {{item.color}};">
-                {{item.score}}
-              </view>
-              <view class="h-rank">
-                <view>椋庨櫓鎺掑悕锛歿{item.rank}}</view>
-                <view>椋庨櫓绛夌骇锛歿{item.level}}</view>
-              </view>
-            </view>
-            <view data-id="{{item.scoreId}}" class="h-btn" bindtap="goto" data-index="1" data-period="{{item.period}}">鍘荤湅鐪�</view>
+
+    <block wx:if="{{historys.length > 0}}">
+      <view wx:for="{{historys}}" wx:key="index" data-index="index" class="flex-h" style="align-items: flex-start;">
+        <view class="history_icon">
+          <view class="history_icon_1">
+            <view></view>
           </view>
-          <!-- <view class="h-line_2">
+          <view class="history_icon_2"></view>
+        </view>
+        <view style="flex: 1;">
+          <view class="history_time">{{item.time}}</view>
+          <view class="h-cell fyui-panel">
+            <view class="h-tag">{{item.updateTime}}</view>
+            <view class="h-line_1">
+              <view class="flex-h">
+                <view class="h-score" style="background-color: {{item.color}};">
+                  {{item.score}}
+                </view>
+                <view class="h-rank">
+                  <view>椋庨櫓鎺掑悕锛歿{item.rank}}</view>
+                  <view>椋庨櫓绛夌骇锛歿{item.level}}</view>
+                </view>
+              </view>
+              <view data-id="{{item.scoreId}}" class="h-btn" bindtap="goto" data-index="1" data-period="{{item.period}}">鍘荤湅鐪�</view>
+            </view>
+            <!-- <view class="h-line_2">
             <view data-id="{{item.scoreId}}" class="h-btn" bindtap="goto" data-index="1" data-period="{{item.time}}">鍘荤湅鐪�</view>
           </view> -->
+          </view>
         </view>
       </view>
-    </view>
+    </block>
 
-
+    <template wx:else is="nodataPage"></template>
   </view>
   <view class="page__ft">
   </view>
diff --git a/pages/m_assessment/assessment/assessment.wxss b/pages/m_assessment/assessment/assessment.wxss
index 42dc929..5e00253 100644
--- a/pages/m_assessment/assessment/assessment.wxss
+++ b/pages/m_assessment/assessment/assessment.wxss
@@ -41,7 +41,7 @@
 .line-chart-card {
   position: relative;
   height: 30vh;
-  padding: 0;
+  padding: 0 0 8px 0;
 }
 
 .h-cell {
diff --git a/pages/m_consult/consulthome/consulthome.wxss b/pages/m_consult/consulthome/consulthome.wxss
index 0f2b220..0d50ddb 100644
--- a/pages/m_consult/consulthome/consulthome.wxss
+++ b/pages/m_consult/consulthome/consulthome.wxss
@@ -39,7 +39,7 @@
   width: 8px;
 }
 .card .card-title {
-  font-size: 18px;
+  font-size: 16px;
   font-weight: bold;
 }
 
diff --git a/pages/m_consult/consultonline/consultonline.js b/pages/m_consult/consultonline/consultonline.js
index 1ffaf9f..4ff59c9 100644
--- a/pages/m_consult/consultonline/consultonline.js
+++ b/pages/m_consult/consultonline/consultonline.js
@@ -28,7 +28,9 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-
+    this.setData({
+      userId: app.globalData.accessToken.userId
+    })
   },
 
   clearInput() {
@@ -54,6 +56,9 @@
       type: 0,
       text: this.data.value,
     })
+    console.log('-----------chat------------------');
+    console.log(record);
+    console.log(this.data.userId);
     this.lastKeyword = this.data.value
     this.setData({
       record,
@@ -110,7 +115,7 @@
         userId: 'system',
         userName: '鏅鸿兘瀹㈡湇',
         type: 0,
-        text: '涓嶅ソ鎰忔�濓紝鏆傛棤鐩稿叧瑙g瓟锛岃璇曡瘯鍏朵粬鍏抽敭璇�'
+        text: '鎶辨瓑锛屾垜杩樹笉鐞嗚В鎮ㄧ殑鎰忔�濄�傝灏濊瘯閲嶆柊鍜ㄨ銆�'
       })
     } else {
       record.push({
@@ -119,9 +124,12 @@
         userId: 'system',
         userName: '鏅鸿兘瀹㈡湇',
         type: 0,
-        text: '灏忕櫧缁欐偍鎻愪緵鍙傝�冨涓�'
+        text: '灏忕櫧缁欐偍鎻愪緵鍙傝�冨涓嬶細'
       })
       const map = new Map()
+      results.sort((a, b) => {
+        return b.typeId - a.typeId
+      })
       results.forEach(r => {
         if (!map.has(r.typeName)) {
           r.keyword = this.lastKeyword
diff --git a/pages/m_consult/consultonline/consultonline.wxml b/pages/m_consult/consultonline/consultonline.wxml
index 2057e9a..92da5a0 100644
--- a/pages/m_consult/consultonline/consultonline.wxml
+++ b/pages/m_consult/consultonline/consultonline.wxml
@@ -6,7 +6,7 @@
         <view class="consult-text_user">{{item.text}}</view>
       </view>
       <view wx:else class="consult-record_item">
-        <image wx:if="{{item.type == 0}}" src="/res/icons/avator_sys.png" class="consult-avator"></image>
+        <image wx:if="{{item.type == 0}}" src="/res/icons/con_qa.png" class="consult-avator"></image>
         <view wx:if="{{item.type == 0}}" class="consult-text">{{item.text}}</view>
         <view wx:elif="{{item.type == 1}}" class="consult-text consult-qa">
           <switch-tab tabList="{{item.text.tabList}}" refresh="{{item.refresh}}">
diff --git a/pages/m_consult/consultonline/consultonline.wxss b/pages/m_consult/consultonline/consultonline.wxss
index b251914..6da40c6 100644
--- a/pages/m_consult/consultonline/consultonline.wxss
+++ b/pages/m_consult/consultonline/consultonline.wxss
@@ -28,6 +28,7 @@
 .consult-avator {
   width: 40px;
   height: 40px;
+  border-radius: 50%;
 }
 
 .consult-text {
diff --git a/pages/m_promise/promisehome/promise.wxml b/pages/m_promise/promisehome/promise.wxml
index 36f5bb0..0b62d25 100644
--- a/pages/m_promise/promisehome/promise.wxml
+++ b/pages/m_promise/promisehome/promise.wxml
@@ -1,4 +1,6 @@
 <!--pages/promise/promise.wxml-->
+<import src="/template/nodata.wxml"></import>
+
 <view class="page">
   <!-- <view class="banner-bg"></view> -->
 
@@ -18,13 +20,16 @@
       <view class="fyui-cell__bd">鍘嗗彶鎵胯</view>
       <view class="fyui-cell__ft">鏌ョ湅鏇村</view>
     </view>
-    <view wx:for="{{promise}}" wx:key="index">
-      <view class="p-cell fyui-panel">
-        <view class="p-title">| 瀹堟硶鎵胯</view>
-        <view class="p-content">{{item.period}}</view>
-        <view class="p-tag">{{item.time}}</view>
-        <view class="p-btn" bindtap="gotoDetail" data-index="{{index}}">鍘荤湅鐪�</view>
+    <block wx:if="{{promise.length > 0}}">
+      <view wx:for="{{promise}}" wx:key="index">
+        <view class="p-cell fyui-panel">
+          <view class="p-title">| 瀹堟硶鎵胯</view>
+          <view class="p-content">{{item.period}}</view>
+          <view class="p-tag">{{item.time}}</view>
+          <view class="p-btn" bindtap="gotoDetail" data-index="{{index}}">鍘荤湅鐪�</view>
+        </view>
       </view>
-    </view>
+    </block>
+    <template wx:else is="nodataPage"></template>
   </view>
 </view>
\ No newline at end of file
diff --git a/pages/m_service/behaviors/b_scheduleManager.js b/pages/m_service/behaviors/b_scheduleManager.js
new file mode 100644
index 0000000..891862d
--- /dev/null
+++ b/pages/m_service/behaviors/b_scheduleManager.js
@@ -0,0 +1,80 @@
+import scheduleservice from '../../../service/scheduleservice'
+import sysSchedules from '../../../data/schedules'
+import moment from '../../../utils/moment.min'
+import util from '../../../utils/util'
+
+const app = getApp()
+
+/**
+ * 鐜繚鏃ョ▼绠$悊
+ */
+module.exports = Behavior({
+  // behaviors: [b_loadingStatus],
+  data: {
+    allSchedules: [],
+    thisSchedule: {},
+    index: 0
+  },
+  lifetimes: {
+    attached: function () {
+      this.getRecentSchedule()
+      // this.getAllSchedules()
+    }
+  },
+  methods: {
+    //鏌ユ壘鏈�涓磋繎鐨勬棩绋�
+    getRecentSchedule() {
+      //1. 浠庢帴鍙h幏鍙栫敤鎴蜂釜浜恒�佺敤鎴蜂紒涓氱被鍨嬬殑鐩稿叧鏈�涓磋繎鏃ョ▼
+      //2. 鎸夌収鏈湴閫昏緫锛屽緱鍑烘渶閭昏繎鏃ョ▼
+      const schedules = sysSchedules()
+      //2.1 灏嗗彴璐︺�佽瘎浼般�佹壙璇轰笁椤笰PP鍔熻兘瀹氫箟涓烘棩绋�
+      //2.2 閫夋嫨鏈�閭昏繎鐨勪簨椤逛綔涓哄綋鏃ョ殑鎻愰啋浜嬮」
+      const today = moment().hour(0).minute(0).second(0).millisecond(0)
+      let diffDays = 999
+      let schedule
+      let index = 0
+      for (let i = 0; i < schedules.length; i++) {
+        const s = schedules[i];
+        const d = s.time.diff(today, 'days')
+        s.diffDays = d
+        if (Math.abs(d) < Math.abs(diffDays)) {
+          schedule = s
+          diffDays = d
+          index = i
+        }
+      }
+      //2.3 鏃ョ▼鍦ㄦ椂闂寸淮搴︿笂鍒嗕负涓夌被鎻愰啋锛岄鍛娿�佸綋鏃ャ�佹湭瀹屾垚鐨勯�炬湡鎻愰啋
+
+
+      this.setData({
+        allSchedules: schedules,
+        thisSchedule: {
+          time: schedule.time.format('YYYY-MM-DD dddd'),
+          events: schedule.events,
+          diffDays: schedule.diffDays,
+          steps: schedule.steps,
+          category: schedule.category
+        },
+        index
+      })
+    },
+
+    //鑾峰彇鎵�鏈夋棩绋�
+    getAllSchedules() {
+      console.log('getAllSchedules');
+      scheduleservice.getAllSchedules(app.globalData.accessToken.userId, {
+        success(res) {
+          console.log('success');
+          console.log(res);
+        },
+        fail(e) {
+          console.log('fail');
+          console.log(e);
+        },
+        complete(res) {
+          console.log('complete');
+        },
+      })
+    }
+  }
+})
\ No newline at end of file
diff --git a/pages/m_service/c_schedule/c_schedule.js b/pages/m_service/c_schedule/c_schedule.js
index 462e2ed..68d3b87 100644
--- a/pages/m_service/c_schedule/c_schedule.js
+++ b/pages/m_service/c_schedule/c_schedule.js
@@ -1,7 +1,9 @@
 // pages/m_service/c_schedule/c_schedule.js
-const moment = require('../../../utils/moment.min')
+import moment from '../../../utils/moment.min'
+import b_scheduleManager from '../behaviors/b_scheduleManager'
 
 Component({
+  behaviors: [b_scheduleManager],
   options: {
     addGlobalClass: true
   },
@@ -9,18 +11,7 @@
    * 缁勪欢鐨勫睘鎬у垪琛�
    */
   properties: {
-    title: {
-      type: String,
-      value: '钀ヤ笟鎵х収缁湡'
-    },
-    time: {
-      type: String,
-      value: '2022-9-10 鏄熸湡鍏�'
-    },
-    leftDays: {
-      type: Number,
-      value: 2
-    },
+    
   },
 
   /**
@@ -30,36 +21,17 @@
 
   },
 
-  lifetimes: {
-    attached: function () {
-      this._init()
-    }
-  },
-
   /**
    * 缁勪欢鐨勬柟娉曞垪琛�
    */
   methods: {
-    _init() {
-      moment.updateLocale('en', {
-        weekdays: '鏄熸湡鏃鏄熸湡涓�_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏�'.split('_')
-      });
-      // console.log(moment.locales());
-      // moment.locale('ch')
-      const now = moment().hour(0).minute(0).second(0).millisecond(0)
-      const s = moment(now).add(3, 'days')
-
-      let leftDays = now.diff(s, 'days')
-      const time = s.format('YYYY-MM-DD dddd')
-      this.setData({
-        time,
-        leftDays
-      })
-    },
     goto() {
+      var that = this
       wx.navigateTo({
         url: '/pages/m_service/p_scheduledetail/p_scheduledetail',
-        success: (result) => {},
+        success: (res) => {
+          res.eventChannel.emit('acceptDataFromOpenerPage', that.data.thisSchedule)
+        },
       })
     }
   }
diff --git a/pages/m_service/c_schedule/c_schedule.wxml b/pages/m_service/c_schedule/c_schedule.wxml
index 36e94d1..45a8f99 100644
--- a/pages/m_service/c_schedule/c_schedule.wxml
+++ b/pages/m_service/c_schedule/c_schedule.wxml
@@ -1,15 +1,15 @@
 <!--pages/m_service/c_schedule/c_schedule.wxml-->
-<view class="schedule-card {{leftDays < 0 ? 'schedule-card__2' : ''}}" bindtap="goto">
-  <view class="schedule-tag">{{leftDays < 0 ? 'FUTURE' : 'TODAY'}}</view>
+<view class="schedule-card {{thisSchedule.diffDays > 0 ? 'schedule-card__2' : (thisSchedule.diffDays < 0 ? 'schedule-card__3' : '')}}" bindtap="goto">
+  <view class="schedule-tag">{{thisSchedule.diffDays > 0 ? 'FUTURE' : (thisSchedule.diffDays == 0 ? 'TODAY' : 'PAST')}}</view>
   <view class="schedule-category">
     <image class="image-16" src="/res/icons/schedule_1.png"></image>
-    <text>鐜繚鏃ョ▼</text>
+    <text>{{thisSchedule.events[0].type == 1 ? '绯荤粺鏃ョ▼' : '鐜繚鏃ョ▼'}}</text>
   </view>
-  <view class="schedule-title">{{title}}</view>
+  <view class="schedule-title">{{thisSchedule.events[0].name}}</view>
   <view class="schedule-time">
-    <text>{{time}}</text>
-    <text wx:if="{{leftDays > 0}}">杩囧幓{{leftDays}}澶�</text>
-    <text wx:elif="{{leftDays == 0}}">浠婂ぉ</text>
-    <text wx:else>杩樻湁{{-leftDays}}澶�</text>
+    <text>{{thisSchedule.time}}</text>
+    <text wx:if="{{thisSchedule.diffDays < 0}}">杩囧幓{{-thisSchedule.diffDays}}澶�</text>
+    <text wx:elif="{{thisSchedule.diffDays == 0}}">浠婂ぉ</text>
+    <text wx:else>杩樻湁{{thisSchedule.diffDays}}澶�</text>
   </view>
 </view>
diff --git a/pages/m_service/c_schedule/c_schedule.wxss b/pages/m_service/c_schedule/c_schedule.wxss
index f2be2c0..8c8bb6d 100644
--- a/pages/m_service/c_schedule/c_schedule.wxss
+++ b/pages/m_service/c_schedule/c_schedule.wxss
@@ -13,6 +13,10 @@
   background: linear-gradient(0deg, #7bc8fc, #72c4fc, #64BEFB);
 }
 
+.schedule-card__3 {
+  background: linear-gradient(0deg, #e97f7f, #f86b6b, #ff3838);
+}
+
 .schedule-tag {
   font-size: 14px;
   position: absolute;
diff --git a/pages/m_service/p_schedule/p_schedule.js b/pages/m_service/p_schedule/p_schedule.js
index 3827671..4294756 100644
--- a/pages/m_service/p_schedule/p_schedule.js
+++ b/pages/m_service/p_schedule/p_schedule.js
@@ -1,8 +1,9 @@
 // pages/m_service/p_schedule/p_schedule.js
+import b_scheduleManager from '../behaviors/b_scheduleManager'
 const moment = require('../../../utils/moment.min')
 
 Page({
-
+  behaviors: [b_scheduleManager],
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
@@ -22,90 +23,44 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-    const now = moment().hour(0).minute(0).second(0).millisecond(0)
-    const year = now.year()
+    // const now = moment().hour(0).minute(0).second(0).millisecond(0)
+    // const year = now.year()
     const schedules = []
-    let totals = 0
-    for (let m = 1; m <= 12; m++) {
-      const s = {
-        category: `${year}骞�${m}鏈堢幆淇濆伐浣滄棩绋媊,
-        details: []
-      }
-      const mon = m > 9 ? m : `0${m}`
-      //10,15,20
-      let t1 = moment(`${year}-${mon}-10`)
-      let d1 = t1.diff(now, 'days')
-      s.details.push({
-        time: t1.format('MM鏈圖D鏃�'),
-        name: '鐜繚鏃ョ▼鐜繚鏃ョ▼鐜繚鏃ョ▼鐜繚鏃ョ▼鐜繚鏃ョ▼鐜繚鏃ョ▼',
-        left: d1,
-      })
-      let t2 = moment(`${year}-${mon}-15`)
-      let d2 = t2.diff(now, 'days')
-      s.details.push({
-        time: t2.format('MM鏈圖D鏃�'),
-        name: '鐜繚鏃ョ▼',
-        left: d2,
-      })
-      let t3 = moment(`${year}-${mon}-20`)
-      let d3 = t3.diff(now, 'days')
-      s.details.push({
-        time: t3.format('MM鏈圖D鏃�'),
-        name: '鐜繚鏃ョ▼',
-        left: d3,
-      })
-      schedules.push(s)
-      totals += 3
+    let totals = this.data.allSchedules.length
+
+    const map = new Map()
+    for (let i = 0; i < this.data.allSchedules.length; i++) {
+      const s = this.data.allSchedules[i];
+      s.events.forEach(e => {
+        if (!map.has(e.category)) {
+          map.set(e.category, [])
+        }
+        map.get(e.category).push({
+          time: s.time.format('MM鏈圖D鏃�'),
+          name: e.name,
+          left: s.diffDays,
+        })
+      });
     }
-    this.setData({schedules, totals})
+    for (let item of map) {
+      schedules.push({
+        category: item[0],
+        details: item[1]
+      })
+    }
+    this.setData({
+      schedules,
+      totals
+    })
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
-   */
-  onReady() {
-
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
-   */
-  onShow() {
-
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
-   */
-  onHide() {
-
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
-   */
-  onUnload() {
-
-  },
-
-  /**
-   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
-   */
-  onPullDownRefresh() {
-
-  },
-
-  /**
-   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
-   */
-  onReachBottom() {
-
-  },
-
-  /**
-   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
-   */
-  onShareAppMessage() {
-
+  goto() {
+    var that = this
+    wx.navigateTo({
+      url: '/pages/m_service/p_scheduledetail/p_scheduledetail',
+      success: (res) => {
+        res.eventChannel.emit('acceptDataFromOpenerPage', that.data.thisSchedule)
+      },
+    })
   }
 })
\ No newline at end of file
diff --git a/pages/m_service/p_schedule/p_schedule.wxml b/pages/m_service/p_schedule/p_schedule.wxml
index a4cec4d..677d810 100644
--- a/pages/m_service/p_schedule/p_schedule.wxml
+++ b/pages/m_service/p_schedule/p_schedule.wxml
@@ -5,7 +5,7 @@
   <view class="page__bd">
     <block wx:for="{{schedules}}" wx:key="index">
       <view class="sm-title">{{item.category}}</view>
-      <view wx:for="{{item.details}}" wx:key="i" wx:for-item="d" class="sm-card">
+      <view wx:for="{{item.details}}" wx:key="i" wx:for-item="d" class="sm-card" bindtap="goto">
         <view class="sm-time">{{d.time}}</view>
         <view class="history_icon">
           <view class="history_icon_1">
diff --git a/pages/m_service/p_scheduledetail/p_scheduledetail.js b/pages/m_service/p_scheduledetail/p_scheduledetail.js
index 6175338..6ec3679 100644
--- a/pages/m_service/p_scheduledetail/p_scheduledetail.js
+++ b/pages/m_service/p_scheduledetail/p_scheduledetail.js
@@ -5,15 +5,15 @@
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-    steps:[{
+    steps: [{
       index: '01',
       title: ['鍓嶅線鐜�', '淇濋儴闂�'],
       content: '鍓嶅線鐩稿叧鐜繚閮ㄩ棬鎻愪緵鐩稿叧璇佷欢锛屽彲杩涜钀ヤ笟鎵х収缁湡銆�'
-    },{
+    }, {
       index: '02',
       title: ['钀ヤ笟鎵�', '鐓х画鏈�'],
       content: '鍓嶅線鐩稿叧鐜繚閮ㄩ棬鎻愪緵鐩稿叧璇佷欢锛屽彲杩涜钀ヤ笟鎵х収缁湡銆�'
-    },{
+    }, {
       index: '03',
       title: ['钀ヤ笟鎵�', '鐓х画鏈�'],
       content: '鍓嶅線鐩稿叧鐜繚閮ㄩ棬鎻愪緵鐩稿叧璇佷欢锛屽彲杩涜钀ヤ笟鎵х収缁湡銆�'
@@ -24,7 +24,11 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-
+    this.getOpenerEventChannel().on('acceptDataFromOpenerPage', (data) => {
+      this.setData({
+        thisSchedule: data
+      })
+    })
   },
 
   onSubmit() {
diff --git a/pages/m_service/p_scheduledetail/p_scheduledetail.wxml b/pages/m_service/p_scheduledetail/p_scheduledetail.wxml
index e407da1..395ccc9 100644
--- a/pages/m_service/p_scheduledetail/p_scheduledetail.wxml
+++ b/pages/m_service/p_scheduledetail/p_scheduledetail.wxml
@@ -2,26 +2,26 @@
 <view class="page">
   <view class="page__hd">
     <view class="sd-card">
-      <view class="sd-card__title">浠婃棩</view>
-      <view class="sd-card__content">钀ヤ笟鎵х収缁湡</view>
+      <view class="sd-card__title">{{thisSchedule.time}}</view>
+      <view class="sd-card__content">{{thisSchedule.events[0].name}}</view>
     </view>
 
     <view class="sd-item">
       <view>鏃ョ▼绫诲埆</view>
-      <view>鐜繚鏃ョ▼</view>
+      <view>{{thisSchedule.events[0].type == 1 ? '绯荤粺鏃ョ▼' : '鐜繚鏃ョ▼'}}</view>
     </view>
     <view class="sd-item">
       <view>寮�濮嬫椂闂�</view>
-      <view class="sd-item__time">2022骞�9鏈�01鏃�</view>
+      <view class="sd-item__time">{{thisSchedule.time}}</view>
     </view>
     <view class="sd-item">
       <view>缁撴潫鏃堕棿</view>
-      <view class="sd-item__time">2022骞�9鏈�10鏃�</view>
+      <view class="sd-item__time">{{thisSchedule.time}}</view>
     </view>
   </view>
   <view class="page__bd">
-    <view class="sd-divider"> <text>* * *</text> 鏃ョ▼鎿嶄綔娴佺▼鎻愮ず <text>* * *</text> </view>
-    <view class="sd-step" wx:for="{{steps}}" wx:key="index">
+    <view class="sd-divider"> <text>* * *</text> 鏃ョ▼鎻愰啋 <text>* * *</text> </view>
+    <view class="sd-step" wx:for="{{thisSchedule.events[0].steps}}" wx:key="index">
       <text class="sd-step__index">{{item.index}}</text>
       <view class="sd-step__title">{{item.title[0]}}<text>{{item.title[1]}}</text></view>
       <view class="sd-step__content">{{item.content}}</view>
diff --git a/pages/m_user/base_c/c_company-info/c_company-info.js b/pages/m_user/base_c/c_company-info/c_company-info.js
new file mode 100644
index 0000000..ef96e39
--- /dev/null
+++ b/pages/m_user/base_c/c_company-info/c_company-info.js
@@ -0,0 +1,88 @@
+// pages/m_user/base_c/c_company-info/c_company-info.js
+
+Component({
+  options: {
+    addGlobalClass: true,
+  },
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    submitText: {
+      type: String,
+      value: '鎻愪氦'
+    },
+  },
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    sceneTypes: [
+      {value: '1', name: '椁愰ギ'},
+      {value: '7', name: '姹戒慨'},
+      {value: '6', name: '宸ヤ笟浼佷笟' },
+      {value: '2', name: '宸ュ湴'},
+      {value: '3', name: '鐮佸ご'},
+      {value: '4', name: '鍫嗗満'},
+      {value: '5', name: '鎼呮媽绔�' },
+    ],
+    sceneTypeIndex: 0,
+    msg: [{
+        name: "浼佷笟鍚嶇О",
+        id: "department",
+        input: true,
+        value: '',
+        noValue: false,
+      },
+      {
+        name: "浼佷笟鍦板潃",
+        id: "address",
+        input: true,
+        value: '',
+        noValue: false,
+      },
+      {
+        name: "淇$敤浠g爜",
+        id: "code",
+        input: true,
+        value: "",
+        noValue: false,
+      },
+      {
+        name: "娉曚汉",
+        id: "contract",
+        input: true,
+        value: '',
+        noValue: false,
+      },
+      {
+        name: "鑱旂郴浜�",
+        id: "contract",
+        input: true,
+        value: '',
+        noValue: false,
+      },
+      {
+        name: "鑱旂郴鏂瑰紡",
+        id: "contract",
+        input: true,
+        value: '',
+        noValue: false,
+      },
+    ],
+  },
+
+  /**
+   * 缁勪欢鐨勬柟娉曞垪琛�
+   */
+  methods: {
+    changeSceneType(e) {
+      let i = e.detail.value
+      this.setData({
+        sceneTypeIndex: i
+      })
+    },
+
+    
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_company-info/c_company-info.json b/pages/m_user/base_c/c_company-info/c_company-info.json
new file mode 100644
index 0000000..90eea0c
--- /dev/null
+++ b/pages/m_user/base_c/c_company-info/c_company-info.json
@@ -0,0 +1,10 @@
+{
+  "component": true,
+  "usingComponents": {
+    "mp-cells":"/component/cells/cells",
+    "input-cell":"/component/inputcell/inputcell",
+    "mp-icon": "/component/icon/icon",
+    "mp-toptips":"/component/toptips/toptips",
+    "mp-upload":"/component/uploader/uploader"
+  }
+}
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_company-info/c_company-info.wxml b/pages/m_user/base_c/c_company-info/c_company-info.wxml
new file mode 100644
index 0000000..b0c01a4
--- /dev/null
+++ b/pages/m_user/base_c/c_company-info/c_company-info.wxml
@@ -0,0 +1,21 @@
+<!--pages/m_user/base_c/c_company-info/c_company-info.wxml-->
+<view class="page__bd">
+  <view class="top-card">
+    <view class="tag"><text style="color: transparent;">*</text>浼佷笟绫诲瀷</view>
+    <picker mode="selector" bindchange="changeSceneType" value="{{sceneTypeIndex}}" range="{{sceneTypes}}" range-key="name" class="value">
+      <view class="picker-text">{{sceneTypes[sceneTypeIndex].name}}</view>
+    </picker>
+    <mp-icon icon="arrow" color="#59D5B3" size="{{10}}"></mp-icon>
+  </view>
+  <view class="items">
+    <mp-cells>
+      <input-cell wx:for="{{msg}}" wx:key="id" item="{{item}}" bindpassValue="changeMsg"></input-cell>
+    </mp-cells>
+  </view>
+  <view class="weui-upload-view">
+    <mp-upload title="涓婁紶钀ヤ笟鎵х収" titleClass="upload-title-class" max-count="1" files="{{imgFiles}}" binduploadImg="uploadFile" binddelete="delImg"></mp-upload>
+  </view>
+</view>
+<view class="page__ft">
+  <view class="submit" bindtap="onSubmit">{{submitText}}</view>
+</view>
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_company-info/c_company-info.wxss b/pages/m_user/base_c/c_company-info/c_company-info.wxss
new file mode 100644
index 0000000..2145f9d
--- /dev/null
+++ b/pages/m_user/base_c/c_company-info/c_company-info.wxss
@@ -0,0 +1,48 @@
+/* pages/m_user/base_c/c_company-info/c_company-info.wxss */
+.top-card {
+  position: relative;
+  display: flex;
+  flex-direction: row;
+  background-color: white;
+  border-top-left-radius: 8px;
+  border-top-right-radius: 8px;
+  padding: 8px 16px;
+  /* margin: 0 8px; */
+  font-size: 16px;
+}
+
+.picker-text {
+  color: var(--fyui-primary-color);
+}
+
+.items {
+  position: relative;
+  padding: 0 16px;
+  background-color: white;
+}
+
+.top-card .tag {
+  /* display: inline-block; */
+  width: 105px;
+  white-space: nowrap;
+}
+
+.top-card .value {
+  flex-grow: 1;
+}
+
+.top-card .value view {
+  max-width: 200px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.weui-upload-view {
+  background-color: white;
+  padding: 16px;
+}
+
+.page__ft {
+  background-color: white;
+}
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_scene-info/c_scene-info.js b/pages/m_user/base_c/c_scene-info/c_scene-info.js
new file mode 100644
index 0000000..40ed78f
--- /dev/null
+++ b/pages/m_user/base_c/c_scene-info/c_scene-info.js
@@ -0,0 +1,82 @@
+// pages/m_user/base_c/c_scene-info/c_scene-info.js
+import b_inputCheck from '../../behaviors/b_inputCheck'
+import sceneInfo from '../../../../data/sceneInfo'
+
+Component({
+  behaviors: [b_inputCheck],
+  options: {
+    addGlobalClass: true,
+  },
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    submitText: {
+      type: String,
+      value: '鎻愪氦'
+    },
+    sceneType: {
+      type: String,
+      value: '1'
+    }
+  },
+
+  attached() {
+
+  },
+
+  pageLifetimes: {
+    show: function () {
+      // 椤甸潰琚睍绀�
+      const info = sceneInfo()
+      this.setData({
+        msg: info.get(this.data.sceneType)
+      })
+    },
+    hide: function () {
+      // 椤甸潰琚殣钘�
+    },
+    resize: function (size) {
+      // 椤甸潰灏哄鍙樺寲
+    }
+  },
+
+  /**
+   * 缁勪欢鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+
+  },
+
+  /**
+   * 缁勪欢鐨勬柟娉曞垪琛�
+   */
+  methods: {
+    selectChange(e) {
+      const index = e.currentTarget.dataset.index
+      const options = e.detail.options
+      this.setData({
+        [`msg[${index}].options`]: options
+      })
+    },
+
+    pickerChange(e) {
+      console.log(e);
+      const {
+        index,
+        mode
+      } = e.currentTarget.dataset
+      let i = e.detail.value
+      if (mode == 'region') {
+        this.setData({
+          [`msg[${index}].value`]: i
+        })
+      } else if (mode == 'selector') {
+        this.setData({
+          [`msg[${index}].selectIndex`]: i,
+          [`msg[${index}].value`]: this.data.msg[index].options[i].value
+        })
+      }
+    }
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_scene-info/c_scene-info.json b/pages/m_user/base_c/c_scene-info/c_scene-info.json
new file mode 100644
index 0000000..fdcdb53
--- /dev/null
+++ b/pages/m_user/base_c/c_scene-info/c_scene-info.json
@@ -0,0 +1,12 @@
+{
+  "component": true,
+  "usingComponents": {
+    "mp-cells":"/component/cells/cells",
+    "input-cell":"/component/inputcell/inputcell",
+    "mp-icon": "/component/icon/icon",
+    "mp-toptips":"/component/toptips/toptips",
+    "mp-upload":"/component/uploader/uploader",
+    "mp-checkboxgroup": "/component/checkboxgroup/checkboxgroup",
+    "mp-radiogroup": "/component/radiogroup/radiogroup"
+  }
+}
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_scene-info/c_scene-info.wxml b/pages/m_user/base_c/c_scene-info/c_scene-info.wxml
new file mode 100644
index 0000000..dd786c9
--- /dev/null
+++ b/pages/m_user/base_c/c_scene-info/c_scene-info.wxml
@@ -0,0 +1,42 @@
+<!--pages/m_user/base_c/c_scene-info/c_scene-info.wxml-->
+<view class="page__bd">
+  <mp-toptips type="error" msg="{{errorMsg}}" show="{{errorMsg}}" delay="2000"></mp-toptips>
+
+  <view class="items">
+    <mp-cells>
+      <block wx:for="{{msg}}" wx:key="index">
+        <block wx:if="{{item.type == 'checkbox'}}">
+          <view class="hr-view"></view>
+          <view id="{{item.id}}" class="item-title"><text class="{{item.required != false ? 'required' : 'not-required'}}">*</text>{{item.name}}</view>
+          <mp-checkboxgroup options="{{item.options}}" data-index="{{index}}" bindchange="selectChange"></mp-checkboxgroup>
+        </block>
+        <block wx:elif="{{item.type == 'radio'}}">
+          <view class="hr-view"></view>
+          <view id="{{item.id}}" class="item-title"><text class="{{item.required != false ? 'required' : 'not-required'}}">*</text>{{item.name}}</view>
+          <mp-radiogroup options="{{item.options}}" data-index="{{index}}" bindchange="selectChange"></mp-radiogroup>
+        </block>
+        <block wx:elif="{{item.type == 'picker'}}">
+          <view class="hr-view"></view>
+          <view class="top-card">
+            <view id="{{item.id}}" class="tag"><text class="{{item.required != false ? 'required' : 'not-required'}}">*</text>{{item.name}}</view>
+            <picker wx:if="{{item.pickerMode == 'selector'}}" mode="selector" bindchange="pickerChange" data-index="{{index}}" data-mode="selector" value="{{item.selectIndex}}" range="{{item.options}}" range-key="name" class="value">
+              <view class="picker-text">{{item.options[item.selectIndex].name}}</view>
+            </picker>
+            <picker wx:elif="{{item.pickerMode == 'region'}}" mode="region" bindchange="pickerChange" data-index="{{index}}" data-mode="region" value="{{item.value}}" class="value" level="sub-district" custom-item="绌�">
+              <view class="picker-text" wx:if="{{item.value.length > 0}}">{{item.value[0] + (item.value[1] == item.value[0] ? '' : item.value[1]) + item.value[2] + item.value[3]}}</view>
+              <view wx:else class="picker-text" style="color: #B2B2B2;">璇烽�夋嫨琛楅晣</view>
+            </picker>
+            <mp-icon icon="arrow" color="black" size="{{10}}"></mp-icon>
+          </view>
+        </block>
+        <input-cell id="{{item.id}}" wx:else item="{{item}}" bindpassValue="changeMsg"></input-cell>
+      </block>
+    </mp-cells>
+  </view>
+  <view class="weui-upload-view">
+    <mp-upload title="涓婁紶椋熷搧缁忚惀璁稿彲璇�" titleClass="upload-title-class" max-count="1" files="{{imgFiles}}" binduploadImg="uploadFile" binddelete="delImg"></mp-upload>
+  </view>
+</view>
+<view class="page__ft">
+  <view class="submit" bindtap="onSubmit">{{submitText}}</view>
+</view>
\ No newline at end of file
diff --git a/pages/m_user/base_c/c_scene-info/c_scene-info.wxss b/pages/m_user/base_c/c_scene-info/c_scene-info.wxss
new file mode 100644
index 0000000..1d2a509
--- /dev/null
+++ b/pages/m_user/base_c/c_scene-info/c_scene-info.wxss
@@ -0,0 +1,78 @@
+/* pages/m_user/base_c/c_scene-info/c_scene-info.wxss */
+.top-card {
+  /* width: 100vw; */
+  position: relative;
+  display: flex;
+  flex-direction: row;
+  /* justify-content: space-between; */
+  background-color: white;
+  padding: 8px 0px;
+  /* margin: 0 8px; */
+  font-size: 1rem;
+  flex-wrap: nowrap;
+}
+
+.picker-text {
+  /* color: var(--fyui-primary-color); */
+  color: var(--fyui-text-color_1);
+}
+
+.items {
+  position: relative;
+  padding: 0 10px;
+  background-color: white;
+}
+
+.item-title {
+  white-space: nowrap;
+  display: inline-block;
+  font-size: 1rem;
+  width: 32vw;
+  margin-top: 8px;
+}
+
+.top-card .tag {
+  flex-shrink: 0;
+  width: 32vw;
+  white-space: nowrap;
+  /* background-color: seagreen; */
+}
+
+.top-card .value {
+  flex-grow: 1;
+}
+
+.top-card .value view {
+  /* white-space: nowrap; */
+  display: -webkit-box;
+  -webkit-line-clamp: 1;
+  -webkit-box-orient: vertical;
+  overflow-x: hidden;
+  text-overflow: ellipsis;
+  /* background-color: bisque; */
+}
+
+.weui-upload-view {
+  background-color: white;
+  padding: 16px;
+}
+
+.page__ft {
+  background-color: white;
+}
+
+.hr-view {
+  height: 2rpx;
+  margin: 0 0rpx;
+  background-color: #f1f1f1;
+}
+
+.required {
+  color: red;
+  text-align: center;
+  vertical-align: middle;
+}
+
+.not-required {
+  color: transparent;
+}
\ No newline at end of file
diff --git a/pages/m_user/behaviors/b_inputCheck.js b/pages/m_user/behaviors/b_inputCheck.js
new file mode 100644
index 0000000..39eb81f
--- /dev/null
+++ b/pages/m_user/behaviors/b_inputCheck.js
@@ -0,0 +1,169 @@
+/**
+ * 
+ */
+module.exports = Behavior({
+  data: {
+    msg: [],
+    info: {}
+  },
+  lifetimes: {
+    attached: function () {}
+  },
+  methods: {
+    changeMsg(e) {
+      let id = e.detail.params.id
+      let value = e.detail.params.value
+      let msg = this.data.msg
+      let msgLength = msg.length
+      for (let i = 0; i < msgLength; i++) {
+        if (msg[i].id === id) {
+          let path = "msg[" + i + "].value"
+          let nPath = "msg[" + i + "].noValue"
+          this.setData({
+            [path]: value,
+            [nPath]: false
+          })
+        }
+      }
+    },
+
+    onSubmit: function () {
+      console.log('onSubmit');
+      if (!this.submitCheck()) return
+
+      let msg = this.data.msg
+      if (msg) {
+        let info = {}
+        msg.forEach(m => {
+          info[m.id] = m.value
+        });
+        // console.log(info);
+        this.setData({info})
+        this.triggerEvent('onSubmit', info)
+        // wx.showToast({
+        //   title: 'onSubmit',
+        //   duration: 1000,
+        //   icon: 'none',
+        //   success: (res) => {},
+        //   fail: (res) => {},
+        //   complete: (res) => {},
+        // })
+      }
+    },
+
+    /**
+     * 淇℃伅瀹屾暣搴︽鏌�
+     */
+    submitCheck() {
+      let msg = this.data.msg
+      //纭淇℃伅瀹屾暣搴�
+      for (let i = 0; i < msg.length; i++) {
+        const m = msg[i]
+        //閫夊~椤圭洿鎺ョ暐杩�
+        if (m.required == false) continue
+        //澶嶉�夋鍜屽崟閫夋锛堝閫夋鐨勯�昏緫鍖呭惈浜嗗崟閫夋锛�
+        if (m.type == 'checkbox' || m.type == 'radio') {
+          // console.log('m.options', m.options);
+          m.value = ''
+          for (let t = 0; t < m.options.length; t++) {
+            const o = m.options[t];
+            if (o.checked) {
+              if (m.value != '') {
+                m.value += ';'
+              }
+              if (o.hasRemark) {
+                // console.log('o.remark', o.remark);
+                if (o.remark == '') {
+                  this.setData({
+                    [`msg[${i}].options[${t}].noValue`]: true
+                  })
+                  this.showErrorMsg(i, '澶囨敞淇℃伅涓嶈兘涓虹┖')
+                  return false
+                } else {
+                  m.value += o.remark
+                }
+              } else {
+                m.value += o.name
+              }
+            }
+          }
+          if (m.value == '') {
+            this.showErrorMsg(i)
+            return false
+          }
+        }
+        //涓嬫媺閫夋嫨妗�
+        else if (m.type == 'picker') {
+          if (m.pickerMode == 'selector') {
+            if (m.selectIndex == 0) {
+              this.showErrorMsg(i, `${this.data.msg[i].name}鏈�夋嫨`)
+              return false
+            } else {
+              m.value = m.options[m.selectIndex].name
+            }
+          } else if (m.pickerMode == 'region') {
+            if (m.value.length == 0) {
+              this.showErrorMsg(i, `${this.data.msg[i].name}鏈�夋嫨`)
+              return false
+            }
+          }
+        }
+        //杈撳叆妗�
+        else if (m.value === "") {
+          this.showErrorMsg(i)
+          return false
+        }
+      }
+
+      // //瀵嗙爜涓�鑷存�х‘璁�
+      // if (msg[1].value != msg[2].value) {
+      //   let error = "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�"
+      //   this.setData({
+      //     errorMsg: error,
+      //   })
+      //   return false
+      // }
+      // //瀵嗙爜澶嶆潅搴︾‘璁�
+      // var pwError
+      // var pw = msg[1].value
+      // var regex1 = /[a-zA-Z]/
+      // var regex2 = /[0-9]/
+      // var r = regex1.test(pw) && regex2.test(pw)
+      // console.log('regex:' + r);
+      // if (pw.length < 6) {
+      //   pwError = '瀵嗙爜浣嶆暟鏈�灏�6浣�'
+      // } else if (!r) {
+      //   pwError = '瀵嗙爜蹇呴』鍖呭惈瀛楁瘝鍜屾暟瀛�'
+      // }
+      // if (pwError) {
+      //   this.setData({
+      //     errorMsg: pwError,
+      //   })
+      //   return false
+      // }
+
+      return true
+    },
+
+    showErrorMsg(index, err = `${this.data.msg[index].name}涓嶅彲涓虹┖`) {
+      this.setData({
+        errorMsg: err,
+        [`msg[${index}].noValue`]: true
+      })
+      const id = "#" + this.data.msg[index].id
+      wx.createSelectorQuery().select('.page').boundingClientRect(res1 => {
+        const top1 = res1.top
+        wx.createSelectorQuery().in(this).select(id).boundingClientRect(res => {
+          const h = res.top - top1 - 60
+          // console.log(h);
+          wx.pageScrollTo({
+            // duration: 300,
+            scrollTop: h,
+            // selector: id,
+            // offsetTop: -60,
+          })
+        }).exec();
+      }).exec();
+    }
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/behaviors/b_login.js b/pages/m_user/behaviors/b_login.js
new file mode 100644
index 0000000..b955c32
--- /dev/null
+++ b/pages/m_user/behaviors/b_login.js
@@ -0,0 +1,99 @@
+import userservice from '../../../service/userservice'
+
+const app = getApp()
+
+/**
+ * 鐧诲綍娴佺▼
+ */
+module.exports = Behavior({
+  data: {
+
+  },
+  lifetimes: {
+    attached: function () {}
+  },
+  methods: {
+    loginPw(accessTokenPW) {
+      wx.showLoading({
+        title: '鐧诲綍涓�',
+        mask: true,
+      })
+      setTimeout(() => {
+        wx.hideLoading()
+      }, 10000);
+      var that = this
+      wx.login({
+        success: (res) => {
+          console.log(res);
+          accessTokenPW.code = res.code
+          userservice.loginPW(accessTokenPW, {
+            success(data) {
+              if (data.success) {
+                wx.getStorage({
+                  key: 'accessToken',
+                  success(res) {
+                    app.globalData.accessToken = res.data
+                    app.globalData.accessToken.userId = data.userId
+                    app.globalData.accessToken.suserId = data.suserId
+                    if (accessTokenPW.userName) {
+                      app.globalData.accessToken.userName = accessTokenPW.userName
+                    }
+                    if (accessTokenPW.password) {
+                      app.globalData.accessToken.password = accessTokenPW.password
+                    }
+                    wx.setStorage({
+                      key: 'accessToken',
+                      data: app.globalData.accessToken,
+                    })
+                    that.gotoHomePage()
+                  },
+                  fail(e) {
+                    app.globalData.accessToken = {
+                      userName: accessTokenPW.userName,
+                      password: accessTokenPW.password,
+                      userId: data.userId,
+                      suserId: data.suserId,
+                    }
+                    wx.setStorage({
+                      key: 'accessToken',
+                      data: app.globalData.accessToken,
+                    })
+                    that.gotoHomePage()
+                  }
+                })
+                
+              } else {
+                that._onLoginFail()
+              }
+              wx.hideLoading()
+            },
+            complete() {
+              // wx.hideLoading()
+              that.setData({
+                loading: false
+              })
+            }
+          })
+        },
+      })
+    },
+
+    gotoHomePage() {
+      userservice.getUserInfo(app.globalData.accessToken.userId, {
+        success(data) {
+          app.globalData.userInfo = data
+          app.globalData.isLogin = true
+          wx.setStorage({
+            key: 'userInfo',
+            data: data,
+            success: (result) => {
+              wx.switchTab({
+                url: '/pages/home/home',
+              })
+            }
+          })
+        }
+      })
+    },
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/companyauthentication/companyauthentication.js b/pages/m_user/companyauthentication/companyauthentication.js
new file mode 100644
index 0000000..d7503f5
--- /dev/null
+++ b/pages/m_user/companyauthentication/companyauthentication.js
@@ -0,0 +1,19 @@
+// pages/m_user/companyauthentication/companyauthentication.js
+import $f from '../../../service/baserequest'
+
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+
+  },
+})
\ No newline at end of file
diff --git a/pages/m_user/companyauthentication/companyauthentication.json b/pages/m_user/companyauthentication/companyauthentication.json
new file mode 100644
index 0000000..3e7e803
--- /dev/null
+++ b/pages/m_user/companyauthentication/companyauthentication.json
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "浼佷笟璁よ瘉",
+  "usingComponents": {
+    "c-company-info": "../base_c/c_company-info/c_company-info"
+  }
+}
\ No newline at end of file
diff --git a/pages/m_user/companyauthentication/companyauthentication.wxml b/pages/m_user/companyauthentication/companyauthentication.wxml
new file mode 100644
index 0000000..5340b3e
--- /dev/null
+++ b/pages/m_user/companyauthentication/companyauthentication.wxml
@@ -0,0 +1,6 @@
+<!--pages/m_user/companyauthentication/companyauthentication.wxml-->
+<view class="page">
+  <image class="banner-bg" src="/res/icons/companyinfo-1.png" mode="widthFix"></image>
+  <view class="tips">璇蜂粩缁嗘鏌ョ郴缁熼鐣欑殑浼佷笟淇℃伅锛岀‘璁ゆ槸鍚︽纭紝璋冩暣瀹屾垚鍚庢彁浜ゅ畬鎴愪紒涓氳璇�</view>
+  <c-company-info></c-company-info>
+</view>
diff --git a/pages/m_user/companyauthentication/companyauthentication.wxss b/pages/m_user/companyauthentication/companyauthentication.wxss
new file mode 100644
index 0000000..16abdb0
--- /dev/null
+++ b/pages/m_user/companyauthentication/companyauthentication.wxss
@@ -0,0 +1,18 @@
+/* pages/m_user/companyauthentication/companyauthentication.wxss */
+.tips {
+  position: relative;
+  color: white;
+  padding: 16px;
+  font-size: 14px;
+  font-weight: 550;
+}
+
+.banner-bg {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 0;
+  /* background-color: aqua; */
+}
\ No newline at end of file
diff --git a/pages/m_user/companyregister/companyregister.js b/pages/m_user/companyregister/companyregister.js
new file mode 100644
index 0000000..653e54b
--- /dev/null
+++ b/pages/m_user/companyregister/companyregister.js
@@ -0,0 +1,66 @@
+// pages/m_user/companyregister/companyregister.js
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/companyregister/companyregister.json b/pages/m_user/companyregister/companyregister.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/m_user/companyregister/companyregister.json
@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/m_user/companyregister/companyregister.wxml b/pages/m_user/companyregister/companyregister.wxml
new file mode 100644
index 0000000..1559da7
--- /dev/null
+++ b/pages/m_user/companyregister/companyregister.wxml
@@ -0,0 +1,2 @@
+<!--pages/m_user/companyregister/companyregister.wxml-->
+
diff --git a/pages/m_user/companyregister/companyregister.wxss b/pages/m_user/companyregister/companyregister.wxss
new file mode 100644
index 0000000..3cdae1f
--- /dev/null
+++ b/pages/m_user/companyregister/companyregister.wxss
@@ -0,0 +1 @@
+/* pages/m_user/companyregister/companyregister.wxss */
\ No newline at end of file
diff --git a/pages/m_user/mine/mine.js b/pages/m_user/mine/mine.js
index a5515b2..2e3e91a 100644
--- a/pages/m_user/mine/mine.js
+++ b/pages/m_user/mine/mine.js
@@ -23,5 +23,74 @@
     wx.reLaunch({
       url: '/pages/m_user/userlogin/userlogin',
     })
+  },
+
+  goto(e) {
+    var url = ""
+    var index = e.currentTarget.dataset.index
+    switch (index) {
+      case "0":
+        url = "/pages/m_user/companyauthentication/companyauthentication"
+        break;
+      case "1":
+        url = ""
+        break;
+      case "2":
+        url = ""
+        break;
+      case "3":
+        url = ""
+        break;
+      case "4":
+        url = "/pages/m_consult/consultonline/consultonline"
+        break;
+      case "5":
+        url = "/pages/m_service/p_schedule/p_schedule"
+        break;
+    }
+    if (url != "") {
+      wx.navigateTo({
+        url: url
+      })
+    } else {
+      wx.showToast({
+        title: '鍔熻兘鏁鏈熷緟',
+        duration: 1000,
+        icon: 'none',
+        mask: true,
+      })
+    }
+  },
+
+  //璁よ瘉
+  gotoAuthentication(e) {
+    var url = ""
+    var index = e.currentTarget.dataset.index
+    switch (index) {
+      //浼佷笟璁よ瘉
+      case "0":
+        url = "/pages/m_user/companyauthentication/companyauthentication"
+        break;
+      //鍦烘櫙璁よ瘉
+      case "1":
+        url = "/pages/m_user/sceneauthentication/sceneauthentication"
+        break;
+      //涓汉璁よ瘉
+      case "2":
+        url = ""
+        break;
+    }
+    if (url != "") {
+      wx.navigateTo({
+        url: url
+      })
+    } else {
+      wx.showToast({
+        title: '鍔熻兘鏁鏈熷緟',
+        duration: 1000,
+        icon: 'none',
+        mask: true,
+      })
+    }
   }
 })
\ No newline at end of file
diff --git a/pages/m_user/mine/mine.wxml b/pages/m_user/mine/mine.wxml
index ebadc99..2884abe 100644
--- a/pages/m_user/mine/mine.wxml
+++ b/pages/m_user/mine/mine.wxml
@@ -5,19 +5,37 @@
       <image class="user-icon" src="/res/icons/learn_2.png" mode="aspectFill"></image>
       <view class="flex-v">
         <view class="user-name">{{userRealName}}</view>
-        <view class="user-tag"></view>
+        <view class="user-tag">
+          <!-- <view>浼佷笟鏈璇�</view>
+          <view>搴楅摵鏈璇�</view>
+          <view>涓汉鏈璇�</view> -->
+        </view>
       </view>
     </view>
   </view>
   <view class="page__bd">
+    <view class="fyui-panel user-authentication">
+      <view bindtap="gotoAuthentication" data-index="0">
+        <image src="/res/icons/icon3.png"></image>
+        <view>浼佷笟璁よ瘉</view>
+      </view>
+      <view bindtap="gotoAuthentication" data-index="1">
+        <image src="/res/icons/icon3.png"></image>
+        <view>搴楅摵璁よ瘉</view>
+      </view>
+      <view bindtap="gotoAuthentication" data-index="2">
+        <image src="/res/icons/icon3.png"></image>
+        <view>涓汉璁よ瘉</view>
+      </view>
+    </view>
     <view class="fyui-panel">
-      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="0">
+      <!-- <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="0">
         <view class="fyui-cell__hd">
           <image src="/res/icons/icon3.png" class="icon" />
         </view>
         <view class="fyui-cell__bd">浼佷笟璁よ瘉</view>
         <view class="fyui-cell__ft"></view>
-      </view>
+      </view> -->
       <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="1">
         <view class="fyui-cell__hd">
           <image src="/res/icons/icon4.png" class="icon" />
@@ -59,4 +77,4 @@
   <view class="page__ft">
     <view class="logout" bindtap="logout">閫�鍑鸿处鎴�</view>
   </view>
-</view>
+</view>
\ No newline at end of file
diff --git a/pages/m_user/mine/mine.wxss b/pages/m_user/mine/mine.wxss
index 6b3e5cd..a8668fd 100644
--- a/pages/m_user/mine/mine.wxss
+++ b/pages/m_user/mine/mine.wxss
@@ -43,10 +43,28 @@
 }
 
 .user-tag {
+  display: flex;
   font-size: 12px;
   color: var(--fyui-text-color_2);
 }
 
 .title:active {
   background-color: var(--fyui-BG-COLOR-ACTIVE);
+}
+
+.user-authentication {
+  display: flex;
+  justify-content: space-between;
+}
+
+.user-authentication>view {
+  text-align: center;
+  padding: 36px 16px;
+  font-size: 14px;
+  color: var(--fyui-text-color_1);
+}
+
+.user-authentication>view>image {
+  width: 40px;
+  height: 40px;
 }
\ No newline at end of file
diff --git a/pages/m_user/sceneauthentication/sceneauthentication.js b/pages/m_user/sceneauthentication/sceneauthentication.js
new file mode 100644
index 0000000..8e1a6bd
--- /dev/null
+++ b/pages/m_user/sceneauthentication/sceneauthentication.js
@@ -0,0 +1,28 @@
+// pages/m_user/sceneauthentication/sceneauthentication.js
+const app = getApp()
+
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+    console.log(app.globalData.userInfo.extension2);
+    this.setData({
+      sceneType: app.globalData.userInfo.extension2
+    })
+  },
+
+  onSubmit(e) {
+    console.log(e);
+    const info = e.detail
+
+  }
+})
\ No newline at end of file
diff --git a/pages/m_user/sceneauthentication/sceneauthentication.json b/pages/m_user/sceneauthentication/sceneauthentication.json
new file mode 100644
index 0000000..0ed9cb8
--- /dev/null
+++ b/pages/m_user/sceneauthentication/sceneauthentication.json
@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "搴楅摵璁よ瘉",
+  "usingComponents": {
+    "c-scene-info": "../base_c/c_scene-info/c_scene-info"
+  }
+}
\ No newline at end of file
diff --git a/pages/m_user/sceneauthentication/sceneauthentication.wxml b/pages/m_user/sceneauthentication/sceneauthentication.wxml
new file mode 100644
index 0000000..b2abbca
--- /dev/null
+++ b/pages/m_user/sceneauthentication/sceneauthentication.wxml
@@ -0,0 +1,7 @@
+<!--pages/m_user/sceneauthentication/sceneauthentication.wxml-->
+<view class="page">
+  <image class="banner-bg" src="/res/icons/companyinfo-1.png" mode="widthFix"></image>
+  <view class="tips">璇蜂粩缁嗘鏌ョ郴缁熼鐣欑殑浼佷笟淇℃伅锛岀‘璁ゆ槸鍚︽纭紝璋冩暣瀹屾垚鍚庢彁浜ゅ畬鎴愪紒涓氳璇�</view>
+  <c-scene-info sceneType="{{sceneType}}" bindonSubmit="onSubmit"></c-scene-info>
+</view>
+
diff --git a/pages/m_user/sceneauthentication/sceneauthentication.wxss b/pages/m_user/sceneauthentication/sceneauthentication.wxss
new file mode 100644
index 0000000..71f358d
--- /dev/null
+++ b/pages/m_user/sceneauthentication/sceneauthentication.wxss
@@ -0,0 +1,18 @@
+/* pages/m_user/sceneauthentication/sceneauthentication.wxss */
+.tips {
+  position: relative;
+  color: white;
+  padding: 16px;
+  font-size: 14px;
+  font-weight: 550;
+}
+
+.banner-bg {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 0;
+  /* background-color: aqua; */
+}
\ No newline at end of file
diff --git a/pages/m_user/userlogin/userlogin.js b/pages/m_user/userlogin/userlogin.js
index 285496f..de0231e 100644
--- a/pages/m_user/userlogin/userlogin.js
+++ b/pages/m_user/userlogin/userlogin.js
@@ -1,22 +1,40 @@
 // pages/m_user/userlogin/userlogin.js
+import b_login from '../behaviors/b_login'
+
 const $f = require("../../../service//baserequest")
 const userservice = require("../../../service/userservice")
 const app = getApp()
 
 Page({
-
+  behaviors: [b_login],
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-    bgPath: $f.baseIconUrl + 'userlogin-1.png'
+    bgPath: $f.baseIconUrl + 'userlogin-1.png',
+    agree: false,
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad: function (options) {
-
+    wx.getStorage({
+      key: 'agree',
+      success: (res) => {
+        this.setData({
+          agree: res.data
+        })
+      }
+    })
+    wx.getStorage({
+      key: 'userProfile',
+      success: (res) => {
+        this.setData({
+          userProfile: res.data
+        })
+      },
+    })
   },
 
   /**
@@ -34,16 +52,28 @@
   },
 
   loginWx() {
-    var that = this
-    wx.getUserProfile({
-      lang: 'zh_CN',
-      desc: '鐢ㄤ簬鏄剧ず锛屾彁绀虹敤鎴峰綋鍓嶅凡鐧诲綍',
-      success(res) {
-        console.log(res);
-        
-        that.login()
-      }
-    })
+    if (!this.waitAgree()) return
+
+    if (app.globalData.userProfile) {
+      this.loginPw(app.globalData.userProfile)
+    }else {
+      wx.getUserProfile({
+        lang: 'zh_CN',
+        desc: '鐢ㄤ簬鏄剧ず锛屾彁绀虹敤鎴峰綋鍓嶅凡鐧诲綍',
+        success:(res)=> {
+          console.log(res);
+          wx.setStorage({
+            data: res.userInfo,
+            key: 'userProfile',
+          })
+          this.loginPw(res.userInfo)
+  
+          // that.login()
+        }
+      })
+    }
+
+    
   },
 
   login() {
@@ -107,30 +137,50 @@
     })
   },
 
-  getUserInfo() {
-    userservice.getUserInfo(app.globalData.accessToken.userId, {
-      success(data) {
-        app.globalData.userInfo = data
-        app.globalData.isLogin = true
-        wx.setStorage({
-          key: 'userInfo',
-          data: data,
-          success: (result) => {
-            wx.switchTab({
-              url: '/pages/home/home',
-            })
-          }
-        })
-      }
+  _onLoginFail(e) {
+    this.gotoLogin(function () {
+      wx.showToast({
+        title: '鏈粦瀹氳处鍙�',
+        duration: 1000,
+        icon: 'none',
+      })
     })
   },
 
-  gotoLogin() {
+  gotoLogin(toast) {
+    if (!this.waitAgree()) return
     wx.navigateTo({
       url: '/pages/m_user/userloginpw/userloginpw',
-      success: (result) => {},
+      success: (result) => {
+        if (typeof toast === 'function') {
+          toast()
+        }
+      },
       fail: (res) => {},
       complete: (res) => {},
     })
+  },
+
+  checkboxChange(e) {
+    var a = !this.data.agree
+    this.setData({
+      agree: a
+    })
+    wx.setStorage({
+      key: 'agree',
+      data: a
+    })
+  },
+
+  waitAgree() {
+    if (this.data.agree) {
+      return true
+    } else {
+      wx.showToast({
+        title: '璇峰厛鍚屾剰璇存槑',
+        icon: 'none'
+      })
+      return false
+    }
   }
 })
\ No newline at end of file
diff --git a/pages/m_user/userlogin/userlogin.wxml b/pages/m_user/userlogin/userlogin.wxml
index 5c4156f..72e0557 100644
--- a/pages/m_user/userlogin/userlogin.wxml
+++ b/pages/m_user/userlogin/userlogin.wxml
@@ -5,5 +5,9 @@
     <view class="submit" bindtap="loginWx">寰俊鐢ㄦ埛涓�閿櫥褰�</view>
     <view class="login-btn_text" bindtap="gotoLogin">璐﹀彿瀵嗙爜鐧诲綍/娉ㄥ唽</view>
   </view>
-
+  <label class="weui-agree" bindtap="checkboxChange">
+    <checkbox class="weui-agree__checkbox-check" value="{{agree}}" checked="{{agree}}" />
+    <span class="weui-agree__checkbox"></span>
+    <span class="weui-agree__text">闃呰骞跺悓鎰�<text>銆婁腑灏忎紒涓氬畧娉曟湇鍔″钩鍙扮敤鎴锋潯娆俱��</text>鍙�<text>銆婇殣绉佹潯娆俱��</text></span>
+  </label>
 </view>
\ No newline at end of file
diff --git a/pages/m_user/userlogin/userlogin.wxss b/pages/m_user/userlogin/userlogin.wxss
index edcbdea..2fc116d 100644
--- a/pages/m_user/userlogin/userlogin.wxss
+++ b/pages/m_user/userlogin/userlogin.wxss
@@ -19,4 +19,13 @@
 
 .login-btn_text:active {
   color: #2f655b71;
+}
+
+.weui-agree {
+  margin-top: 50px;
+  /* font-size: 14px; */
+}
+
+.weui-agree__text>text {
+  color: #3CD0B6;
 }
\ No newline at end of file
diff --git a/pages/m_user/userloginpw/userloginpw.js b/pages/m_user/userloginpw/userloginpw.js
index b7fbbb7..67ac4df 100644
--- a/pages/m_user/userloginpw/userloginpw.js
+++ b/pages/m_user/userloginpw/userloginpw.js
@@ -1,9 +1,10 @@
 // pages/m_user/userloginpw/userloginpw.js
-const userservice = require("../../../service/userservice")
+import b_login from '../behaviors/b_login'
+
 const app = getApp()
 
 Page({
-
+  behaviors: [b_login],
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
@@ -35,13 +36,13 @@
     })
   },
 
-  inputUserName (e) {
+  inputUserName(e) {
     this.setData({
       userName: e.detail.value
     });
   },
 
-  inputPassword (e) {
+  inputPassword(e) {
     this.setData({
       password: e.detail.value
     });
@@ -54,7 +55,7 @@
         icon: 'none'
       })
       return
-    } 
+    }
     if (this.data.password == '') {
       wx.showToast({
         title: '璇疯緭鍏ュ瘑鐮�',
@@ -62,65 +63,83 @@
       })
       return
     }
-    var that = this
     this.setData({
       loading: true
     })
-    userservice.login(this.data.userName, this.data.password, {
-      success (data) {
-        if (data.success) {
-          app.globalData.accessToken = {
-            userName: that.data.userName,
-            password: that.data.password,
-            userId: data.userId,
-            suserId: data.suserId,
-          }
+    // userservice.login(this.data.userName, this.data.password, {
+    //   success (data) {
+    //     if (data.success) {
+    //       app.globalData.accessToken = {
+    //         userName: that.data.userName,
+    //         password: that.data.password,
+    //         userId: data.userId,
+    //         suserId: data.suserId,
+    //       }
+    //       wx.setStorage({
+    //         key: 'accessToken',
+    //         data: app.globalData.accessToken,
+    //       })
+    //       that.getUserInfo()
+    //     } else {
+    //       wx.showToast({
+    //         title: '璐︽埛鎴栧瘑鐮侀敊璇�',
+    //         duration: 1000,
+    //         icon: 'none',
+    //       })
+    //     }
+    //   },
+    //   complete () {
+    //     that.setData({
+    //       loading: false
+    //     })
+    //   }
+    // })
+    if (app.globalData.userProfile) {
+      app.globalData.userProfile.userName = this.data.userName
+      app.globalData.userProfile.password = this.data.password
+      this.loginPw(app.globalData.userProfile)
+    } else {
+      wx.getUserProfile({
+        lang: 'zh_CN',
+        desc: '鐢ㄤ簬鏄剧ず锛屾彁绀虹敤鎴峰綋鍓嶅凡鐧诲綍',
+        success:(res)=> {
+          console.log(res);
           wx.setStorage({
-            key: 'accessToken',
-            data: app.globalData.accessToken,
+            data: res.userInfo,
+            key: 'userProfile',
           })
-          that.getUserInfo()
-        } else {
-          wx.showToast({
-            title: '璐︽埛鎴栧瘑鐮侀敊璇�',
-            duration: 1000,
-            icon: 'none',
-          })
+          const token = res.userInfo
+          token.userName = this.data.userName
+          token.password = this.data.password
+          this.loginPw(token)
         }
-      },
-      complete () {
-        that.setData({
-          loading: false
-        })
-      }
-    })
+      })
+    }
+    
   },
 
-  getUserInfo() {
-    var that = this
-    userservice.getUserInfo(app.globalData.accessToken.userId, {
-      success(data) {
-        app.globalData.userInfo = data
-        app.globalData.isLogin = true
-        wx.setStorage({
-          key: 'userInfo',
-          data: data,
-          success: (result) => {
-            wx.switchTab({
-              url: '/pages/home/home',
-            })
-          }
-        })
-      }
+  _onLoginFail(e) {
+    wx.showToast({
+      title: '璐︽埛鎴栧瘑鐮侀敊璇�',
+      duration: 1000,
+      icon: 'none',
     })
   },
 
   gotoRegister() {
-    wx.navigateTo({
-      url: '/pages/m_user/userregistertype/userregistertype',
-      success: (result) => {},
+    wx.showToast({
+      title: '鏆備笉寮�鏀炬敞鍐�',
+      duration: 1000,
+      icon: 'error',
+      success: (res) => {},
       fail: (res) => {},
       complete: (res) => {},
     })
+    // wx.navigateTo({
+    //   url: '/pages/m_user/userregistertype/userregistertype',
+    //   success: (result) => {},
+    //   fail: (res) => {},
+    //   complete: (res) => {},
+    // })
   }
 })
\ No newline at end of file
diff --git a/pages/m_user/userloginpw/userloginpw.wxml b/pages/m_user/userloginpw/userloginpw.wxml
index 0acbb40..83b271a 100644
--- a/pages/m_user/userloginpw/userloginpw.wxml
+++ b/pages/m_user/userloginpw/userloginpw.wxml
@@ -14,7 +14,7 @@
     <button class="bottom-btn {{password.length > 0 ? 'bottom-btn_active' : ''}}" bindtap="login" loading="{{loading}}" disabled="{{password.length == 0}}">
       鐧诲綍
     </button>
-    <view class="login-btn_text" bindtap="gotoRegister">鍘绘敞鍐�</view>
+    <view class="login-btn_text" style="color: gray;" bindtap="gotoRegister">鍘绘敞鍐�</view>
     <!-- <view>
       <label class="weui-agree" bindtap="checkboxChange">
         <checkbox class="weui-agree__checkbox-check" value="agree" checked="{{agree}}"/>
diff --git a/res/icons/companyinfo-1.png b/res/icons/companyinfo-1.png
new file mode 100644
index 0000000..5fb8c79
--- /dev/null
+++ b/res/icons/companyinfo-1.png
Binary files differ
diff --git a/service/baserequest.js b/service/baserequest.js
index e2fb27b..c725821 100644
--- a/service/baserequest.js
+++ b/service/baserequest.js
@@ -7,12 +7,13 @@
  * fail: function(error)
  * } 
  */
+const { duration } = require("../utils/moment.min.js");
 const util = require("../utils/util.js")
 
 const originProperties = ['url', 'data', 'header', 'method', 'success', 'fail', 'complete'];
 // const baseUrl = "http://127.0.0.1:8080"
-const baseUrl = "http://192.168.0.111:8080"
-// const baseUrl = "https://fyami.com.cn:447"
+// const baseUrl = "http://192.168.1.106:8080"
+const baseUrl = "https://fyami.com.cn:447"
 // const basePicUrl = baseUrl + "/images/"
 const basePicUrl = "https://fyami.com.cn:447/images/"
 const baseIconUrl = "https://fyami.com.cn:447/images/weixin/eplaw/"
@@ -37,9 +38,9 @@
   }
   var fun1 = util.deepCopy(fun)
   fun1.success = function (res) {
-    // console.log("--------------璇锋眰缁撴灉----------------");
-    console.log("|--璁块棶: " + fun.url);
-    console.log(res);
+    console.log("|------------------------------------------------------------------------------------------------------------");
+    console.log("|--璁块棶: ", fun.url);
+    console.log("|--缁撴灉: ", res);
 
     if (fun.onHead) {
       fun.onHead(res.header)
@@ -59,8 +60,9 @@
     console.log("--------------璇锋眰閿欒----------------" + fun.url);
     console.log(error);
     wx.showToast({
-      title: '缃戠粶杩炴帴澶辫触',
-      icon: 'none'
+      title: error.errMsg,
+      icon: 'none',
+      duration: 2000
     })
     if (fun.fail) {
       fun.fail(error)
diff --git a/service/scheduleservice.js b/service/scheduleservice.js
new file mode 100644
index 0000000..90a664e
--- /dev/null
+++ b/service/scheduleservice.js
@@ -0,0 +1,18 @@
+const $f = require('./baserequest')
+const util = require('../utils/util')
+
+module.exports = {
+  //鑾峰彇鎵�鏈夌幆淇濇棩绋�
+  getAllSchedules: function (userId, fun) {
+    let cb = {
+      url: `schedules.json`,
+      method: 'GET',
+      params: {
+        userId: userId,
+      },
+    }
+    Object.assign(cb, fun)
+
+    wx.request(cb)
+  },
+}
\ No newline at end of file
diff --git a/service/userservice.js b/service/userservice.js
index 5396440..608c675 100644
--- a/service/userservice.js
+++ b/service/userservice.js
@@ -45,4 +45,26 @@
 
     $f.get(cb)
   },
+
+  //鐧诲綍
+  loginPW: function (accessTokenPW, fun) {
+    let cb = {
+      url: '/wxuser/loginPW',
+      data: accessTokenPW,
+    }
+    Object.assign(cb, fun)
+
+    $f.post(cb)
+  },
+
+  //鍦烘櫙淇℃伅璁よ瘉
+  authScene: function (userId, info, fun) {
+    let cb = {
+      url: '/wxuser/loginPW',
+      data: accessTokenPW,
+    }
+    Object.assign(cb, fun)
+
+    $f.post(cb)
+  },
 }
\ No newline at end of file

--
Gitblit v1.9.3