riku
2022-10-21 0f2fdf16f47bd2d1d8fee86449c3a5095ccc8c23
首发版本 2022.10.21
已修改25个文件
已添加11个文件
532 ■■■■ 文件已修改
app.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
base/behaviors/b_inputCheck.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
component/inputcell/inputcell.wxml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/promise.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/schedules.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/home.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/home.wxml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_assessment/grade/grade.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_ledger/ledgerhome/ledgerhome.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_promise/promisefile/promisefile.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_promise/promisefile/promisefile.wxml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_promise/promiseinfo/promiseinfo.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_promise/promiseinfo/promiseinfo.wxml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_service/behaviors/b_scheduleManager.js 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_service/c_schedule/c_schedule.wxml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/behaviors/b_login.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/mine/mine.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/mine/mine.wxml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_changepw/p_changepw.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_changepw/p_changepw.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_instructions/p_instructions.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_instructions/p_instructions.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_instructions/p_instructions.wxml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_instructions/p_instructions.wxss 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_support/p_support.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_support/p_support.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_support/p_support.wxml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/p_support/p_support.wxss 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/userlogin/userlogin.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/m_user/userlogin/userlogin.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
res/icons/4-1-我的_slices.zip 补丁 | 查看 | 原始文档 | blame | 历史
res/icons/icon5.png 补丁 | 查看 | 原始文档 | blame | 历史
res/icons/icon7.png 补丁 | 查看 | 原始文档 | blame | 历史
service/baserequest.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/userservice.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app.js
@@ -23,7 +23,8 @@
    accessToken: null,
    isLogin: false,
    version: '体验版 1.0.0',
    agreement: $f.baseFileUrl + '/agreement/中小微企业生态环境守法智能服务微信小程序服务协议.docx'
    agreement: $f.baseFileUrl + '/agreement/中小微企业生态环境守法智能服务微信小程序服务协议.docx',
    newUser: false,//是否为注册一个月以内的新用户
  },
  // æ™ºèƒ½å’¨è¯¢ç»“果类型文本转换
  cosultTypeName: (typeId) => {
app.json
@@ -48,12 +48,14 @@
    "pages/m_user/sceneauthentication/sceneauthentication",
    "pages/m_user/personalauthentication/personalauthentication",
    "pages/m_user/p_about/p_about",
    "pages/m_user/p_changepw/p_changepw"
    "pages/m_user/p_changepw/p_changepw",
    "pages/m_user/p_support/p_support",
    "pages/m_user/p_instructions/p_instructions"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "中小微企业生态环境智能服务",
    "navigationBarTitleText": "中小微企业生态环境守法智能服务",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#57E4CB"
  },
base/behaviors/b_inputCheck.js
@@ -61,6 +61,9 @@
     * ä¿¡æ¯å®Œæ•´åº¦æ£€æŸ¥
     */
    submitCheck() {
      //清空缓存的密码
      this.lastPW = ''
      let msg = this.data.msg
      //确认信息完整度
      for (let i = 0; i < msg.length; i++) {
@@ -115,38 +118,44 @@
          }
        }
        //输入框
        //必填项空白检测
        else if (m.value === "" || m.value === null || m.value === undefined) {
          this.showErrorMsg(i)
          return false
        }
        //输入框下的密码类型检测
        else if (m.type == 'password') {
          //密码一致性确认
          if (this.lastPW == '') {
            this.lastPW = m.value
          } else if (this.lastPW != m.value) {
            let error = "两次输入的密码不一致"
            this.setData({
              errorMsg: error,
            })
            return false
          }
          //密码复杂度确认
          var pwError
          var pw = m.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
      }
      // //密码一致性确认
      // 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
    },
@@ -184,7 +193,7 @@
        });
        this.setData({info})
        this.triggerEvent('onSubmit', info)
        if (typeof this._submit === 'function') this._submit()
        if (typeof this._submit === 'function') this._submit(info)
      }
    },
  }
component/inputcell/inputcell.wxml
@@ -1,3 +1,4 @@
<view wx:if="{{item.show != false}}">
<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>
@@ -9,3 +10,4 @@
    <view class="unit">{{item.unit}}</view>
  </view>
</mp-cell>
</view>
data/promise.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
const text = "为践行绿色发展理念,努力营造诚实守信的社会环境,落实施工单位环保责任,降低因环境等因素造成的扬尘污染隐患和居民纠纷,确保建筑业健康有序发展,本单位(或本人)自愿作出如下承诺:\n\n一、严格遵守国家、市、区有关环境保护法律、法规、规章、标准和政策规定,积极履行环境保护社会责任。\n\n二、以《上海市环境保护条例》、《上海市大气污染防治条例》、《上海市建设工程文明施工管理规定》等要求为依据,科学制定建设工地扬尘污染防治方案并公示,建立健全企业内部扬尘防治核查机制,安排专人负责扬尘防治事宜,及时记录、保存车辆进出、冲洗、洒水等环保台账。\n\n三、建设施工应符合《文明施工标准》(DG/TJ 08-2102-2019 ),科学配置扬尘防治设施设备(高压冲洗设备、自动喷淋装置、雾炮车、洒水车等),依托技防措施开展绿色施工,并加强对噪声控制、光污染控制、强腐蚀性化学品等其他污染控制,防止对周边居民造成生活环境污染。\n\n四、严格执行扬尘治理六个百分百要求:1、施工工地周边100%围挡;2、出入车辆100%冲洗;3、拆迁工地100%湿法作业;4、渣土车辆100%密闭运输;5、施工现场地面100%硬化;6、物料堆放100%覆盖。\n\n五、遵守关于印发《上海市房屋建筑工地扬尘污染防治工作方案》的通知 ï¼ˆæ²ªå»ºè´¨å®‰è”〔2019〕208 å· ï¼‰ç›¸å…³è§„定,安装市住房城乡建设管理委和市生态环境局官方网站公示公告栏中最新公布的合格供应商提供的扬尘在线监测设备,须符合《上海市建筑施工颗粒物与噪声在线监测技术规范》,委托规范服务单位定期运维,及时记录相关台账,确保其正常使用;设备拆除、移动或停运须提前向主管部门申请或备案。\n\n六、扬尘在线监测设备安装后须确保稳定运行,并及时与生态环境部门油烟监控系统联网,依据《上海市扬尘在线监测数据执法应用规定》定期审核监测数据,不超标排放;扬尘监测数据坚决不弄虚作假,不触犯《环境监测数据弄虚作假行为判定及处理办法》。\n\n七、不使用未上环保拍照的非道路机械,不使用非法渠道或不达标柴油。\n\n八、同意本承诺向社会公开,并自觉接受政府、行业组织、主管部门委托第三方监管单位、社会公众、新闻舆论的监督。"
const promise = {
  '1': "为践行绿色发展理念,努力营造诚实守信的社会环境,落实餐饮单位环保责任,降低因环境等因素造成的食品安全隐患和居民纠纷,确保餐饮业健康有序发展,本单位(或本人)自愿作出如下承诺: \n\n一、严格遵守国家、市、区有关环境保护法律、法规、规章、标准和政策规定,坚持守法生产经营, ç§¯æžå±¥è¡ŒçŽ¯å¢ƒä¿æŠ¤ç¤¾ä¼šè´£ä»»ã€‚\n\n二、布局和建设符合城市总体规划、市容的相关要求,不在以下区域新建、改建、扩建产生油烟、异味、废气的餐饮服务项目:居民住宅楼、未配套设立专用烟道的商住楼以及商住楼与居住层相邻的楼层。\n\n三、安装油烟净化和异味处理设施,油烟排放浓度符合《上海市餐饮业油烟排放标准》(DB 31/844-2014),并委托规范服务单位参照《排油烟设施清洗技术规范》(T/SHXFXH 002-2021)定期进行维护清洗,及时记录相关台账,确保其正常使用,防止对周边居民造成生活环境污染。\n\n四、安装符合《CCAEPI-RG-Y-020-2011》的油烟在线监测装置,根据《餐饮油烟在线监测(光散射法)与监控技术规范》(T/SHAEPI 003-2022),及时与生态环境部门油烟监控数据平台联网,委托规范服务单位定期运维,及时记录相关台账,确保其正常使用,不超标排放。\n\n五、净化装置风机、空调外机安装位置尽量远离住户,做好隔噪、降噪措施,昼间<60dB、 å¤œé—´<50aB, ç¡®ä¿ä¸å™ªå£°æ‰°æ°‘。\n\n六、不在禁止的区域(在当地人民政府禁止的时段和区域)内露天烧烤食品。\n\n七、在居民区内从事餐饮服务,保证不因环境因素影响周围居民正常生活,一旦因扰民等问题出现的纠纷由本单位自行负责协商解诀并立即整改。\n\n八、同意本承诺向社会公开,并自觉接受政府、行业组织、主管部门委托第三方监管单位、社会公众、新闻舆论的监督。",
  '2': text,
  '3': text,
  '4': text,
  '5': text,
  '6': text,
  '7': "为践行绿色发展理念,努力营造诚实守信的社会环境,落实汽修单位环保责任,降低因环境等因素造成的汽修安全隐患和居民纠纷,确保汽修业健康有序发展,本单位(或本人)自愿作出如下承诺:\n\n一、严格遵守国家、市、区有关环境保护法律、法规、规章、标准和政策规定,坚持守法生产经营,积极履行环境保护社会责任。\n\n二、建立健全管理制度,加强日常管理,建立危险废物台账和管理计划、污染防治设施运行管理台账,落实环境监测等各项要求,落实各类环境风险防范措施。\n\n三、洗车废水、维修区域场地冲洗废水全部收集,经三级沉砂隔油池处理后纳管排放。废油、冷冻液、润滑油及零部件的清洗废液、沉淀油泥等单独收集回收,禁止排入下水系统。\n\n四、涉及喷涂等产生废气排放的,须安装VOCs处理设施,排放的各类大气污染物应达到《大气污染物综合排放标准》(DB31/933-2015)规定的排放限值要求。废气净化装置定期维护,并定期更换相应耗材(活性炭、过滤棉等),及时记录相关台账,确保其正常使用,防止对周边居民造成生活环境污染。\n\n打磨、喷漆、烤漆、烘干、调漆、喷枪清洗等产生废气的工序在密闭空间内进行,收集产生的废气,并经活性炭吸附等方式处理后,通过排气筒高空排放。排气筒高度不低于15米,具体高度按环境影响评价要求确定。含VOCs原辅材料(如油漆、涂料)全过程保持密闭,使用过程随取随开。\n\n五、涉及喷涂等产生废气排放的,自愿安装符合《上海市固定污染源非甲烷总烃在线监测系统验收及运行技术要求(试行)》的VOCs在线监测装置以及工况监测模块和视频监测模块,并及时与生态环境部门相关监控系统联网,委托规范服务单位定期运维,及时记录相关台账,确保其正常使用,不超标排放。\n\n六、与具有《危险废物经营许可证》资质单位签订危废处置合同,并确保合同的有效性。按时编制危险废物管理(转移)计划并及时向环保主管部门备案,并严格落实危险废物转移联单制度。其他一般固体废物按照本市有关规定妥善处置。\n\n废矿物油、废油漆渣、废油漆桶/废机油桶、废活性炭、废吸附棉等过滤吸附介质、废催化剂和废铅酸蓄电池等主要危废应符合《危险废物贮存污染控制标准》(GB18597-2001)的有关要求,收集、贮存、运输、利用、处置危险废物的设施、场所,必须设置危险废物警示标志和识别标志,按照危险废物特性分类进行收集、贮存,不同类废物间有明显的间隔,贮存液态或半液态危废的应设置泄露液体收集装置,危险废物不得混入非危险废物中贮存。\n\n七、采取综合隔声、减震措施,确保厂界噪声达到《工业企业厂界环境噪声排放标准》(GB12348-2008)相应声功能区排放限值要求,确保不噪声扰民。\n\n八、同意本承诺向社会公开,并自觉接受政府、行业组织、主管部门委托第三方监管单位、社会公众、新闻舆论的监督。",
}
export default promise
data/schedules.js
@@ -13,7 +13,7 @@
      time: moment(`${year}-${mon}-10`),
      events: [{
        category: `${year}å¹´${m}月环保工作日程`,
        name: `本月需提交台账`,
        name: `本月需提交环保台账`,
        type: 1, //系统日程
        steps: [{
          index: '01',
pages/home/home.js
@@ -212,18 +212,28 @@
    let monthInfo = {
      totalMust: 0,
      finishedMust: 0,
      totalSelf: 0,
      finishedSelf: 0
    }
    subtypes.forEach(s => {
      //月度统计
      if (s.needUpdate) {
        monthInfo.totalMust++
        //统计自巡查类型的台账,类别为-1(暂定)
        if (s.ledgerTypeId == -1) {
          monthInfo.totalSelf++
        }
        if (s.upLoad) {
          monthInfo.finishedMust++
          if (s.ledgerTypeId == -1) {
            monthInfo.finishedSelf++
          }
        }
      }
    });
    monthInfo.percent = Math.round(monthInfo.finishedMust / monthInfo.totalMust * 100)
    monthInfo.percent2 = Math.round(monthInfo.finishedSelf / monthInfo.totalSelf * 100)
    this.setData({monthInfo})
  },
pages/home/home.wxml
@@ -1,6 +1,6 @@
<!--pages/home/home.wxml-->
<view class="page">
  <cp-notice msg="提高测评得分小技巧来了,快点学习哦" />
  <!-- <cp-notice msg="提高测评得分小技巧来了,快点学习哦" /> -->
  <view class="page__hd">
    <view class="page__title">{{userRealName}}</view>
    <!-- <view class="page__desc">下次测评时间{{nextEvaluationTime}}</view> -->
@@ -48,9 +48,15 @@
      </view>
      <view class="flex-h_block">
        <view class="top-card top-card_2" bindtap="goto" data-index="5">
          <view class="flex-h">
          <view>
            <view class="top-card__score"><text class="top-card__num">{{monthInfo.percent}}</text>%</view>
            <view class="top-card__time">台账完成率 ></view>
            </view>
            <view>
              <view class="top-card__score"><text class="top-card__num">{{monthInfo.percent2}}</text>%</view>
              <view class="top-card__time">自巡查 ></view>
            </view>
          </view>
          <image src="/res/icons/wm_ledger.png" mode="aspectFit"></image>
        </view>
@@ -66,7 +72,9 @@
      </view>
    </view>
  </view>
  <view class="page__bd">
  <view class="page__bd" style="padding-top: 8px;">
    <c-schedule></c-schedule>
    <view class="fyui-panel" bindtap="goto" data-index="1">
      <view class="fyui-cell fyui-cell_select title">
        <view class="fyui-cell__hd">
@@ -86,7 +94,7 @@
      </view>
    </view>
    <view class="flex-h" style="padding: 8px 10px;">
    <view class="flex-h" style="padding: 8px 10px 0 10px;">
      <view class="image-btn" bindtap="goto" data-index="2">
        <image src="/res/icons/btn_bg_2.png" class="" />
        <text class="image-btn_title">智能在线咨询</text>
@@ -100,9 +108,6 @@
        <view class="image-btn_goto"></view>
      </view>
    </view>
    <c-schedule></c-schedule>
    <view class="fyui-panel">
      <view class="fyui-cell fyui-cell_select title">
        <view class="fyui-cell__hd">
pages/m_assessment/grade/grade.js
@@ -116,11 +116,13 @@
  onSubmit: function () {
    var itemList = []
    var totalcount = 0
    var evaluations = this.data.evaluations
    for (let i = 0; i < evaluations.length; i++) {
      const e1 = evaluations[i];
      for (let y = 0; y < e1.sub1.length; y++) {
        const e2 = e1.sub1[y];
        totalcount++
        for (let t = 0; t < e2.sub2.length; t++) {
          const s2 = e2.sub2[t];
          if (s2.select) {
@@ -133,9 +135,9 @@
      }
    }
    if (itemList.length == 0) {
    if (itemList.length < totalcount) {
      wx.showToast({
        title: '请至少选择一项进行评估',
        title: '请完成所有评估项',
        icon: 'none',
      })
    } else {
pages/m_ledger/ledgerhome/ledgerhome.js
@@ -63,8 +63,13 @@
   */
  onLoad(options) {
    let now = moment()
    let deadline = now.format(`MM-${this.DEADLINEDAY}`)
    let leftday = this.DEADLINEDAY + 1 - now.date()
    let limitTime = moment().day(this.DEADLINEDAY)
    //如果是新注册用户不到一个月,则不提醒本月情况,直接提醒下个月的情况
    if (app.globalData.newUser) {
      limitTime.add(1, 'M')
    }
    let deadline = limitTime.format(`MM-${this.DEADLINEDAY}`)
    let leftday = limitTime.diff(now, 'days')
    let thisMonth = now.format('YYYY-MM')
    let lastMonth = now.add(-1, 'M').format('YYYY-MM')
    this.setData({
pages/m_promise/promisefile/promisefile.js
@@ -1,4 +1,5 @@
// pages/promisefile/promisefile.js
import promise from '../../../data/promise'
const promiseservice = require("../../../service/promiseservice")
const app = getApp()
@@ -44,6 +45,11 @@
    this.getOpenerEventChannel().on('acceptDataFromOpenerPage', function (data) {
      that.commitmentVo = data
    })
    let st = app.globalData.userInfo.extension2
    this.setData({
      promiseText: promise[st]
    })
  },
  /**
pages/m_promise/promisefile/promisefile.wxml
@@ -5,13 +5,14 @@
    <view class="fyui-panel">
      <view class="p-title">守法承诺书</view>
      <text class="p-content">
        ä¸ºæŽ¨åŠ¨ç»æµŽç¤¾ä¼šå¯æŒç»­å‘å±•ï¼Œä¸æ–­æ”¹å–„åŒºåŸŸçŽ¯å¢ƒè´¨é‡ï¼ŒåŠªåŠ›åŠ å¿«ç”Ÿæ€åŸŽå¸‚å»ºè®¾æ­¥ä¼ï¼Œæœ¬ä¼ä¸šéƒ‘é‡æ‰¿è¯ºï¼š\n
        <!-- ä¸ºæŽ¨åŠ¨ç»æµŽç¤¾ä¼šå¯æŒç»­å‘å±•ï¼Œä¸æ–­æ”¹å–„åŒºåŸŸçŽ¯å¢ƒè´¨é‡ï¼ŒåŠªåŠ›åŠ å¿«ç”Ÿæ€åŸŽå¸‚å»ºè®¾æ­¥ä¼ï¼Œæœ¬ä¼ä¸šéƒ‘é‡æ‰¿è¯ºï¼š\n
        ä¸€ã€ç‰¢å›ºæ ‘立环保意识。深入开展环境宣传教育,倡导科学发展理念,加强企业文化建设,树立“保护环境光荣,污染环境可耻”意识,坚持在企业发展中加强环境保护,在保护环境中促进企业发展。
        å¼ºåŒ–保护环境就是保护群众健康的社会责任感,坚持“预防为主、防治结合”方针,切实肩负起环境保护的社会责任,促进社会、经济和环境的可持续发展。\n
        äºŒã€ä¸¥æ ¼éµå®ˆçŽ¯ä¿æ³•è§„ã€‚åšå†³è´¯å½»è½å®žçŽ¯å¢ƒä¿æŠ¤æ”¿ç­–æ³•è§„å’Œæ ‡å‡†ï¼Œä¸¥æ ¼æ‰§è¡ŒæŽ’æ±¡ç”³æŠ¥å’ŒæŽ’æ±¡æ”¶è´¹ç­‰åˆ¶åº¦ï¼Œè‡ªè§‰éµå®ˆå»ºè®¾é¡¹ç›®çŽ¯å¢ƒå½±å“è¯„ä»·å’Œâ€œä¸‰åŒæ—¶â€è§„å®šï¼Œä¸»åŠ¨æŽ¥å—çŽ¯å¢ƒçŽ°åœºæ‰§æ³•æ£€æŸ¥å’Œç›‘ç£ç®¡ç†ï¼Œ
        åšåˆ°æ— çŽ¯å¢ƒæ±¡æŸ“äº‹æ•…å‘ç”Ÿï¼Œç¡®ä¿çŽ¯å¢ƒè´¨é‡æ”¹å–„ã€‚\n
        ä¸‰ã€åˆ‡å®žåŠ å¼ºæ±¡æŸ“é˜²æ²»ã€‚åšæŒèµ°ç§‘æŠ€å«é‡é«˜ã€èµ„æºæ¶ˆè€—å°‘ã€çŽ¯å¢ƒæ±¡æŸ“å°‘ã€ç»æµŽæ•ˆç›Šå¥½çš„æ–°åž‹å·¥ä¸šåŒ–é“è·¯ã€‚åŠ å¼ºä¼ä¸šèŠ‚èƒ½å‡æŽ’æŠ•å…¥å’ŒæŠ€æœ¯æ”¹é€ åŠ›åº¦ï¼Œç¡®ä¿èŠ‚èƒ½å‡æŽ’ç›®æ ‡å…¨é¢å®žçŽ°ã€‚åŠ å¼ºæ±¡æŸ“æ²»ç†è®¾æ–½çš„è¿è¡Œç®¡ç†ï¼Œç¡®ä¿åºŸæ°´ã€åºŸæ°”ã€å™ªå£°å’Œå›ºåºŸè¾¾æ ‡æŽ’æ”¾ã€‚ä¸»åŠ¨æ·˜æ±°è½åŽçš„ç”Ÿäº§è®¾å¤‡å’Œå·¥è‰ºï¼Œç§¯æžå®žæ–½æ¸…æ´ç”Ÿäº§ï¼Œå‘å±•å¾ªçŽ¯ç»æµŽï¼Œæé«˜èµ„æºçš„åˆç†åˆ©ç”¨çŽ‡ï¼Œå‡å°‘æ±¡æŸ“ç‰©çš„æŽ’æ”¾ã€‚åˆ¶è®¢ç§‘å­¦å¯è¡Œçš„çªå‘çŽ¯å¢ƒäº‹ä»¶åº”æ€¥é¢„æ¡ˆï¼Œå¹¶ç»„ç»‡åº”æ€¥æ¼”ç»ƒï¼Œç¡®ä¿çŽ¯å¢ƒå®‰å…¨ã€‚\n
        å››ã€è‡ªè§‰æŽ¥å—社会监督。加强企业环境管理,强化诚信意识,恪守环保信用,将诚信理念贯穿于企业生产经营全过程,全力打造“资源节约型和环境友好型”企业品牌。扎实推进企业环境信息公开工作,主动处理好厂群关系,自觉维护好群众的环境权益,自觉接受社会公众和新闻媒体监督。这是我们向社会作出的庄严承诺,敬请社会各界予以监督。我们将进一步加强自律意识,视环保为企业生命,做诚信守法企业。\n
        å››ã€è‡ªè§‰æŽ¥å—社会监督。加强企业环境管理,强化诚信意识,恪守环保信用,将诚信理念贯穿于企业生产经营全过程,全力打造“资源节约型和环境友好型”企业品牌。扎实推进企业环境信息公开工作,主动处理好厂群关系,自觉维护好群众的环境权益,自觉接受社会公众和新闻媒体监督。这是我们向社会作出的庄严承诺,敬请社会各界予以监督。我们将进一步加强自律意识,视环保为企业生命,做诚信守法企业。\n -->
        {{promiseText}}
      </text>
      <view style="text-align: end;">{{date}}</view>
      <view class="flex-h" style="margin-top: 16px;">
pages/m_promise/promiseinfo/promiseinfo.js
@@ -86,7 +86,7 @@
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad: function (options) {
    let st = this.data.sceneTypeMap[app.globalData.userInfo.extension2]
    let st = app.globalData.userInfo.extension2
    switch (st) {
      case '2':
      case '3':
@@ -97,8 +97,12 @@
          'msg[2].name': '报建号'
        })
        break;
      case '1':
        this.setData({
          'msg[2].name': '环评审批文号',
          'msg[2].show': false,
        })
        break;
      case '7':
        this.setData({
          'msg[2].name': '环评审批文号'
@@ -111,7 +115,7 @@
        break;
    }
    this.setData({
      sceneType: st
      sceneType: this.data.sceneTypeMap[st]
    })
    this.getUserBaseInfo()
  },
pages/m_promise/promiseinfo/promiseinfo.wxml
@@ -13,7 +13,7 @@
        <input-cell wx:for="{{msg}}" wx:key="id" item="{{item}}" bindpassValue="changeMsg"></input-cell>
      </mp-cells>
      <view class="flex-h">
      <!-- <view class="flex-h">
        <view>企业承诺类型</view>
      </view>
      <view class="last">
@@ -25,7 +25,7 @@
            <view class="weui-cell__bd">{{item.name}}</view>
          </label>
        </checkbox-group>
      </view>
      </view> -->
    </view>
  </view>
  <view class="page__ft">
pages/m_service/behaviors/b_scheduleManager.js
@@ -18,6 +18,23 @@
  lifetimes: {
    attached: function () {
      this.getRecentSchedule()
      if (app.globalData.newUser) {
        let today = moment().hour(0).minute(0).second(0).millisecond(0)
        let s = this.data.allSchedules[this.data.index + 1];
        let d = s.time.diff(today, 'days')
        s.diffDays = d
        this.setData({
          thisSchedule: {
            time: s.time.format('YYYY-MM-DD dddd'),
            events: s.events,
            diffDays: s.diffDays,
            steps: s.steps,
            category: s.category
          },
          index: this.data.index + 1
        })
      }
      // this.getAllSchedules()
    }
  },
@@ -28,19 +45,21 @@
      //2. æŒ‰ç…§æœ¬åœ°é€»è¾‘,得出最邻近日程
      const schedules = sysSchedules()
      //2.1 å°†å°è´¦ã€è¯„估、承诺三项APP功能定义为日程
      //2.2 é€‰æ‹©æœ€é‚»è¿‘的事项作为当日的提醒事项
      const today = moment().hour(0).minute(0).second(0).millisecond(0)
      //2.2 é€‰æ‹©æœ€é‚»è¿‘的事项作为当日的提醒事项,
      let 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')
        let s = schedules[i];
        let d = s.time.diff(today, 'days')
        s.diffDays = d
        if (Math.abs(d) < Math.abs(diffDays)) {
          let _index = i
          schedule = s
          diffDays = d
          index = i
          index = _index
        }
      }
      //2.3 æ—¥ç¨‹åœ¨æ—¶é—´ç»´åº¦ä¸Šåˆ†ä¸ºä¸‰ç±»æé†’,预告、当日、未完成的逾期提醒
pages/m_service/c_schedule/c_schedule.wxml
@@ -3,7 +3,8 @@
  <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>{{thisSchedule.events[0].type == 1 ? '系统日程' : '环保日程'}}</text>
    <!-- <text>{{thisSchedule.events[0].type == 1 ? '系统日程' : '环保日程'}}</text> -->
    <text>环保工作日程</text>
  </view>
  <view class="schedule-title">{{thisSchedule.events[0].name}}</view>
  <view class="schedule-time">
pages/m_user/behaviors/b_login.js
@@ -1,4 +1,5 @@
import userservice from '../../../service/userservice'
import moment from '../../../utils/moment.min'
const app = getApp()
@@ -83,6 +84,15 @@
    gotoHomePage() {
      userservice.getUserInfo(app.globalData.accessToken.userId, {
        success(data) {
          if (data.uiCreateTime) {
            const registerTime = moment(data.uiCreateTime)
            const now = moment()
            const m1 = now.month()
            const m2 = registerTime.month()
            app.globalData.newUser = m1 <= m2
          }
          console.log(app.globalData.newUser);
          app.globalData.userInfo = data
          app.globalData.isLogin = true
          wx.setStorage({
pages/m_user/mine/mine.js
@@ -71,27 +71,34 @@
    var url = ""
    var index = e.currentTarget.dataset.index
    switch (index) {
      case "0":
        url = "/pages/m_user/companyauthentication/companyauthentication"
        break;
      case "1":
        url = ""
        //工作提醒
        url = "/pages/m_notice/notice/notice"
        break;
      case "2":
        url = ""
        //技术支持
        url = "/pages/m_user/p_support/p_support"
        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;
      case "6":
        //关于
        url = "/pages/m_user/p_about/p_about"
        break;
      case "7":
        //操作指引
        url = "/pages/m_user/p_instructions/p_instructions"
        break;
    }
    if (url != "") {
      wx.navigateTo({
pages/m_user/mine/mine.wxml
@@ -45,20 +45,14 @@
        <view class="fyui-cell__bd">通知管理</view>
        <view class="fyui-cell__ft"></view>
      </view>
      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="2">
        <view class="fyui-cell__hd">
          <image src="/res/icons/icon5.png" class="icon" />
        </view>
        <view class="fyui-cell__bd">问题反馈</view>
        <view class="fyui-cell__ft"></view>
      </view>
      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="3">
      <!-- <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="3">
        <view class="fyui-cell__hd">
          <image src="/res/icons/my_favor.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="4">
        <view class="fyui-cell__hd">
          <image src="/res/icons/my_consult.png" class="icon" />
@@ -73,6 +67,20 @@
        <view class="fyui-cell__bd">环保日程</view>
        <view class="fyui-cell__ft"></view>
      </view>
      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="7">
        <view class="fyui-cell__hd">
          <image src="/res/icons/icon7.png" class="icon" />
        </view>
        <view class="fyui-cell__bd">操作指引</view>
        <view class="fyui-cell__ft"></view>
      </view>
      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="2">
        <view class="fyui-cell__hd">
          <image src="/res/icons/icon5.png" class="icon" />
        </view>
        <view class="fyui-cell__bd">技术支持</view>
        <view class="fyui-cell__ft"></view>
      </view>
      <view class="fyui-cell fyui-cell_select title" bindtap="goto" data-index="6">
        <view class="fyui-cell__hd">
          <image src="/res/icons/icon6.png" class="icon" />
pages/m_user/p_changepw/p_changepw.js
@@ -1,6 +1,9 @@
// pages/m_user/p_changepw/p_changepw.js
import b_inputCheck from '../../../base/behaviors/b_inputCheck'
import b_loadingToast from '../../../base/behaviors/b_loadingToast'
import userservice from '../../../service/userservice'
const app = getApp()
Page({
  behaviors: [b_inputCheck, b_loadingToast],
@@ -12,7 +15,7 @@
        name: "原密码",
        id: "oldPassword",
        input: true,
        type: 'password',
        // type: 'password',
        value: '',
        noValue: false,
      },
@@ -42,52 +45,37 @@
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  _submit(e) {
    if (e.oldPassword == e.newPassword) {
      this.setData({
        errorMsg: '新密码不能和原密码相同',
      })
      return
    }
    userservice.changePW(app.globalData.accessToken.userId, e.oldPassword, e.newPassword, {
      success(res) {
        if (res.success) {
          wx.navigateBack({
            delta: 1,
            success: () => {
              wx.showToast({
                title: res.message,
                duration: 2000,
                icon: 'success',
                mask: true,
              })
            }
          })
        } else {
          wx.showToast({
            title: res.message,
            duration: 2000,
            icon: 'error',
            mask: true,
          })
        }
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
      }
    })
  }
})
pages/m_user/p_changepw/p_changepw.wxml
@@ -1,6 +1,6 @@
<!--pages/m_user/p_changepw/p_changepw.wxml-->
<view class="page">
  <!-- <mp-toptips type="error" msg="{{errorMsg}}" show="{{errorMsg}}" delay="2000"></mp-toptips> -->
  <mp-toptips type="error" msg="{{errorMsg}}" show="{{errorMsg}}" delay="2000"></mp-toptips>
  <view class="page__bd">
    <view class="items">
pages/m_user/p_instructions/p_instructions.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
// pages/m_user/p_instructions/p_instructions.js
import $f from "../../../service/baserequest"
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    instruction: {
      picPath: [
        $f.baseIconUrl + 'instructions-1.png',
        $f.baseIconUrl + 'instructions-2.png',
        $f.baseIconUrl + 'instructions-3.png',
        $f.baseIconUrl + 'instructions-4.png',
      ],
    }
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
  },
})
pages/m_user/p_instructions/p_instructions.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
{
  "navigationBarTitleText": "技术指引",
  "navigationBarBackgroundColor": "#57E4CB",
  "navigationBarTextStyle": "white",
  "usingComponents": {}
}
pages/m_user/p_instructions/p_instructions.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<!--pages/m_user/p_instructions/p_instructions.wxml-->
<view class="page">
  <view class="page__bd">
    <image wx:for="{{instruction.picPath}}" wx:key="index" src="{{item}}" class="image" show-menu-by-longpress="true" mode="widthFix"></image>
  </view>
  <view class="page__ft"></view>
</view>
pages/m_user/p_instructions/p_instructions.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
/* pages/m_user/p_instructions/p_instructions.wxss */
image {
  display: block;
  width: 100%;
}
pages/m_user/p_support/p_support.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
// pages/m_user/p_support/p_support.js
import $f from "../../../service/baserequest"
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    qrcode: $f.baseIconUrl + 'support_qrcode-1.png'
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
  },
})
pages/m_user/p_support/p_support.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "技术支持",
  "usingComponents": {}
}
pages/m_user/p_support/p_support.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<!--pages/m_user/p_support/p_support.wxml-->
<view class="page">
  <view class="page__hd">
    æ‰«æä¸‹æ–¹å¾®ä¿¡äºŒç»´ç æ·»åŠ æŠ€æœ¯å’¨è¯¢
  </view>
  <view class="page__bd">
    <image show-menu-by-longpress="true" src="{{qrcode}}"></image>
    <view>上海飞羽环保科技有限公司</view>
  </view>
  <view class="page__ft">
  </view>
</view>
pages/m_user/p_support/p_support.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
/* pages/m_user/p_support/p_support.wxss */
.title:active {
  background-color: var(--fyui-BG-COLOR-ACTIVE);
}
.fyui-cell_select {
  font-size: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgb(238, 238, 238);
}
.page {
  justify-content: space-between;
  background-color: transparent;
}
.page__hd {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 20vh;
}
.page__bd {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: 30vh;
}
.page__bd>image{
  width: 56vw;
  height: 56vw;
}
.page__bd>view{
  font-size: 14px;
  color: var(--fyui-text-color_2);
  margin-top: 16px;
}
.page__bd{
  flex: 1;
  color: var(--fyui-text-color_1);
}
.page__ft{
  font-size: 12px;
  color: var(--fyui-text-color_3);
}
pages/m_user/userlogin/userlogin.js
@@ -51,10 +51,25 @@
  },
  loginWx() {
    var that = this
    if (!this.waitAgree()) return
    if (app.globalData.userProfile) {
      this.loginPw(app.globalData.userProfile)
      wx.requestSubscribeMessage({
        tmplIds: [
          '6JQFOJ12yBvKfRg_duSdwKiH5_J3LpICmz3Li-L1Cr8',
          'zPNMzF5WsshniJyl83DD-lDZtNvx7JyqLbKgqDl0qvU',
          'dqREi7vAd03OOirTgBGcm5aCihZJKBjVpiA8Kbu4B8w'
        ],
        success(res) {
          console.log(res);
        },
        fail(e) {
          console.log(fail);
        },
        complete() {
          that.loginPw(app.globalData.userProfile)
        }
      })
    }else {
      wx.getUserProfile({
        lang: 'zh_CN',
@@ -66,6 +81,23 @@
            key: 'userProfile',
          })
          this.loginPw(res.userInfo)
        },
        complete() {
          wx.requestSubscribeMessage({
            tmplIds: [
              '6JQFOJ12yBvKfRg_duSdwKiH5_J3LpICmz3Li-L1Cr8',
              'zPNMzF5WsshniJyl83DD-lDZtNvx7JyqLbKgqDl0qvU',
              'dqREi7vAd03OOirTgBGcm5aCihZJKBjVpiA8Kbu4B8w'
            ],
            success(res) {
              console.log(res);
            },
            fail(e) {
              console.log(e);
            },
            complete() {
            }
          })
        }
      })
    }
@@ -113,7 +145,7 @@
      return true
    } else {
      wx.showToast({
        title: '请先同意说明',
        title: '阅读并同意条款',
        icon: 'none'
      })
      return false
pages/m_user/userlogin/userlogin.wxml
@@ -12,7 +12,7 @@
        <span class="weui-agree__checkbox"></span>
        <span class="weui-agree__text">阅读并同意</span>
      </label>
      <span class="weui-agree__text"><text bindtap="gotoAgreement">《中小企业守法服务平台用户条款》</text>
      <span class="weui-agree__text"><text bindtap="gotoAgreement">《中小微企业生态环境守法智能服务用户条款》</text>
        <!-- åŠ<text>《隐私条款》</text> -->
      </span>
    </view>
res/icons/4-1-ÎÒµÄ_slices.zip
Binary files differ
res/icons/icon5.png

res/icons/icon7.png
service/baserequest.js
@@ -11,12 +11,12 @@
const util = require("../utils/util.js")
const originProperties = ['url', 'data', 'header', 'method', 'success', 'fail', 'complete'];
const baseUrl = "http://192.168.0.137:8080"
// const baseUrl = "http://192.168.0.137:8080"
// const baseUrl = "https://fyami.com.cn:447"
// const baseUrl = "https://fyami.com.cn"
const baseUrl = "https://fyami.com.cn"
// const bu = "https://fyami.com.cn"
const bu = "https://fyami.com.cn:447"
const bu = "https://fyami.com.cn"
// const bu = "https://fyami.com.cn:447"
const basePicUrl = `${bu}/images/`
const baseIconUrl = `${bu}/images/weixin/eplaw/`
const baseFileUrl = `${bu}/meeting/file/`
@@ -62,7 +62,7 @@
    console.log("--------------请求错误----------------" + fun.url);
    console.log(error);
    wx.showToast({
      title: error.errMsg,
      title: '请求失败',
      icon: 'none',
      duration: 2000
    })
service/userservice.js
@@ -88,4 +88,29 @@
    $f.get(cb)
  },
  //修改密码
  changePW(userId, oldP, newP, fun) {
    let cb = {
      url: `/userInfo/password/change`,
      params: {
        userId: userId,
        oldPassword: oldP,
        newPassword: newP
      }
    }
    Object.assign(cb, fun)
    $f.post(cb)
  },
  subscribeResult(event, fun) {
    let cb = {
      url: `/wxuser/message/subscribe/result`,
      data: event
    }
    Object.assign(cb, fun)
    $f.post(cb)
  }
}