347617796@qq.com 2 年之前
父節點
當前提交
21a503747d
共有 44 個文件被更改,包括 901 次插入97 次删除
  1. 16 0
      .mini-ide/compileMode.json
  2. 1 1
      app.acss
  3. 1 1
      app.js
  4. 5 1
      app.json
  5. 二進制
      image/fw1.png
  6. 二進制
      image/fw2.png
  7. 二進制
      image/fw3.png
  8. 二進制
      image/fw4.png
  9. 二進制
      image/logo.png
  10. 二進制
      image/logoJx.png
  11. 二進制
      image/ys.png
  12. 1 1
      pages/deploy/addMoney/addMoney.js
  13. 27 0
      pages/deploy/index/index.acss
  14. 20 40
      pages/deploy/index/index.axml
  15. 38 3
      pages/deploy/index/index.js
  16. 58 0
      pages/deploy/serveMore/serveMore.acss
  17. 26 0
      pages/deploy/serveMore/serveMore.axml
  18. 40 0
      pages/deploy/serveMore/serveMore.js
  19. 3 0
      pages/deploy/serveMore/serveMore.json
  20. 4 1
      pages/deploy/upgrade/upgrade.axml
  21. 0 0
      pages/deploy/webView/webView.acss
  22. 3 0
      pages/deploy/webView/webView.axml
  23. 34 0
      pages/deploy/webView/webView.js
  24. 3 0
      pages/deploy/webView/webView.json
  25. 39 0
      pages/deploy/yuY/yuY.acss
  26. 29 0
      pages/deploy/yuY/yuY.axml
  27. 57 0
      pages/deploy/yuY/yuY.js
  28. 3 0
      pages/deploy/yuY/yuY.json
  29. 75 19
      pages/statistics/assaign/assaign.js
  30. 1 0
      pages/statistics/offerAreward/offerAreward.acss
  31. 3 0
      pages/statistics/offerAreward/offerAreward.axml
  32. 96 8
      pages/statistics/offerAreward/offerAreward.js
  33. 8 4
      pages/statistics/prizeBuckleDetail/prizeBuckleDetail.axml
  34. 4 3
      pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.acss
  35. 5 4
      pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.axml
  36. 11 0
      pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.js
  37. 23 0
      pages/workbench/index/index.acss
  38. 16 1
      pages/workbench/index/index.axml
  39. 49 9
      pages/workbench/index/index.js
  40. 0 1
      pages/workbench/noticeDetail/noticeDetail.js
  41. 37 0
      pages/workbench/noticeDetailTow/noticeDetailTow.acss
  42. 23 0
      pages/workbench/noticeDetailTow/noticeDetailTow.axml
  43. 141 0
      pages/workbench/noticeDetailTow/noticeDetailTow.js
  44. 1 0
      pages/workbench/noticeDetailTow/noticeDetailTow.json

+ 16 - 0
.mini-ide/compileMode.json

@@ -73,6 +73,22 @@
       "title": "事件详情",
       "page": "pages/statistics/prizeBuckleDetail/prizeBuckleDetail",
       "pageQuery": "id=69380"
+    },
+    {
+      "title": "发布任务",
+      "page": "pages/statistics/assaign/assaign",
+      "pageQuery": "yData={\"id\":117,\"site_id\":117,\"owner_id\":181,\"owner_name\":\"郭家裕\",\"pt_id\":3,\"pt_name\":\"B分\",\"pt_code\":\"BF\",\"type\":1,\"type_mark\":\"工作模板\",\"reviewer_id\":181,\"reviewer_name\":\"郭家裕\",\"name\":\"指派任务\",\"remark\":\"随便加27\",\"point_config\":{\"standard\":{\"qualified\":0,\"satisfied\":0,\"unqualified\":0,\"super_satisfied\":0},\"item_info\":{\"id\":703,\"remark\":\"随便加27\",\"rule_id\":215,\"max_point\":110,\"min_point\":110,\"prize_type\":0,\"range_type\":1},\"rule_info\":{\"id\":215,\"name\":\"奖分\"},\"tree_echo\":[\"215\",\"703\"],\"base_point\":\"110\",\"ahead_award_point\":\"1\",\"ahead_award_point_limit\":\"2\",\"timeout_deduction_point\":\"3\",\"timeout_deduction_point_limit\":\"6\"},\"target_info\":[{\"id\":183,\"name\":\"李丽萍\"}],\"department_info\":[],\"task_cycle_value\":1,\"task_cycle\":3,\"task_cycle_mark\":\"每月\",\"file_list\":[\"https://integralsys.oss-cn-shenzhen.aliyuncs.com/intesys/dd/17/2022/08/01/5y5rHh4AHjmz7spdzeDx65FfyWpjHEhy.png\",\"https://integralsys.oss-cn-shenzhen.aliyuncs.com/intesys/dd/17/2022/08/01/bnHaCz88BhMFp6fAhdjhFZMSt4Hhwmkb.png\"],\"create_time\":\"2022-08-01\",\"update_time\":\"2022-08-01\",\"img_url\":\"https://static-legacy.dingtalk.com/media/lADPBF8a7BNICxrNAcDNAcA_448_448.jpg\"}",
+      "update": true
+    },
+    {
+      "title": "发布悬赏任务",
+      "page": "pages/statistics/offerAreward/offerAreward",
+      "pageQuery": "yData={\"id\":124,\"site_id\":124,\"owner_id\":181,\"owner_name\":\"郭家裕\",\"pt_id\":3,\"pt_name\":\"B分\",\"pt_code\":\"BF\",\"type\":2,\"type_mark\":\"任务模板\",\"reviewer_id\":181,\"reviewer_name\":\"郭家裕\",\"name\":\"悬赏任务\",\"remark\":\"随便加27\",\"point_config\":{\"standard\":{\"qualified\":0,\"satisfied\":0,\"unqualified\":0,\"super_satisfied\":0},\"item_info\":{\"id\":703,\"remark\":\"随便加27\",\"rule_id\":215,\"max_point\":110,\"min_point\":110,\"prize_type\":0,\"range_type\":1},\"rule_info\":{\"id\":215,\"name\":\"奖分\"},\"tree_echo\":[\"215\",\"703\"],\"base_point\":\"110\",\"ahead_award_point\":\"1\",\"ahead_award_point_limit\":\"2\",\"timeout_deduction_point\":\"2\",\"timeout_deduction_point_limit\":\"4\"},\"target_info\":[],\"department_info\":[{\"id\":608966095,\"name\":\"技术部\"},{\"id\":608966096,\"name\":\"市场部\"}],\"task_cycle_value\":5,\"task_cycle\":3,\"task_cycle_mark\":\"每月\",\"file_list\":[\"https://integralsys.oss-cn-shenzhen.aliyuncs.com/intesys/dd/17/2022/08/02/NNfJtZQyfp4kkAecEkESJFNAZYhjPHmP.png\",\"https://integralsys.oss-cn-shenzhen.aliyuncs.com/intesys/dd/17/2022/08/02/YQWDHZnRSsmc4pfEjfnjNm835ktbDQC5.png\",\"https://integralsys.oss-cn-shenzhen.aliyuncs.com/intesys/dd/17/2022/08/02/GFXzAQD6d6zcBirwTedbMC4z7pBNGDKz.png\"],\"create_time\":\"2022-08-02\",\"update_time\":\"2022-08-02\",\"img_url\":\"https://static-legacy.dingtalk.com/media/lADPBF8a7BNICxrNAcDNAcA_448_448.jpg\"}"
+    },
+    {
+      "title": "使用指南",
+      "page": "pages/workbench/noticeDetailTow/noticeDetailTow",
+      "pageQuery": "id=60&index=0"
     }
   ]
 }

+ 1 - 1
app.acss

@@ -2,7 +2,7 @@
 		color: #303133;
 		font-size: 32rpx;
 		background: rgba(245, 247, 250, 1);
-		height: 100%;
+		/* height: 100%; */
 		width: 100%;
 		margin: 0;
 		padding: 0;

+ 1 - 1
app.js

@@ -273,7 +273,7 @@ App({
                 that.globalData.token = token;
                 that.globalData.userData = user;
                 var getIsStart = dd.getStorageSync({ key: 'isStart' });//判断是否需要打开引导页
-                console.log(JSON.stringify(user));
+                // console.log(JSON.stringify(user));
                 that.getUserList();//缓存人员列表
                 if (isStart && !getIsStart.data&&isShowStart) {//判断是否需要打开引导
                   dd.reLaunch({

+ 5 - 1
app.json

@@ -69,13 +69,17 @@
     "pages/exchange/prizeDetail/prizeDetail",
     "pages/exchange/commodityDetail/commodityDetail",
     "pages/workbench/noticeDetail/noticeDetail",
+    "pages/workbench/noticeDetailTow/noticeDetailTow",
     "pages/reportBox/report/report",
     "pages/reportBox/noUser/noUser",
     "pages/reportBox/newspaperTask/newspaperTask",
     "pages/reportBox/moreE/moreE",
     "pages/statistics/taskStatistical/taskStatistical",
     "pages/statistics/taskSList/taskSList",
-    "pages/statistics/jfDetail/jfDetail"
+    "pages/statistics/jfDetail/jfDetail",
+    "pages/deploy/serveMore/serveMore",
+    "pages/deploy/yuY/yuY",
+    "pages/deploy/webView/webView"
   ],
   "window": {
     "defaultTitle": "功道云",

二進制
image/fw1.png


二進制
image/fw2.png


二進制
image/fw3.png


二進制
image/fw4.png


二進制
image/logo.png


二進制
image/logoJx.png


二進制
image/ys.png


+ 1 - 1
pages/deploy/addMoney/addMoney.js

@@ -13,7 +13,7 @@ Page({
     //   console.log(res.data.data.url)
       openLink({
           // url: res.data.data.url
-        url: 'https://h5.dingtalk.com/open-market/share.html?shareGoodsCode=D34E5A30A9AC7FC6327AB5E6D2D145418457E59F16C3FC969F1A50AEF2E5E320588012470F1AB045&token=d37751d45abad15178adf60f936d7c28&shareUid=C5EB7B5C85793F3D909B2AC4771E12D7'
+			url: 'https://h5.dingtalk.com/open-market/share.html?shareGoodsCode=D34E5A30A9AC7FC6327AB5E6D2D145418457E59F16C3FC9649BF22BF44CFA3D039FDE4A69694381C&token=523cb2f0e79525ea9b1719c0c5765a6b&shareUid=C5EB7B5C85793F3D909B2AC4771E12D7#/'
       })
     // })
   },

+ 27 - 0
pages/deploy/index/index.acss

@@ -13,6 +13,12 @@
   width: 100%;
   height: 140rpx;
 }
+.yy{
+  width: 40rpx;
+  height: 40rpx;
+  margin-right: 10rpx;
+  text-align: center;
+}
 .btn{
     background-image: linear-gradient(to bottom, #ffeab2 0%, #e1bf66 100%);
     text-align: center;
@@ -80,3 +86,24 @@
   font-size: 28rpx;
   padding: 5rpx 10rpx; 
 }
+.zn{
+  background-color: #fff;
+
+}
+.zn-title{
+  padding: 24rpx 32rpx;
+  border-bottom: 1px solid #f1f1f1;
+}
+.zn-item{
+  padding: 24rpx;
+  background-image: linear-gradient(to top, #48c6ef 0%, #26A2FF 100%);
+  border-radius: 5px;
+  color: #fff;
+  font-size: 0.28rem;
+  margin-right: 24rpx;
+}
+.zn-item text{
+  width: 2rem;
+  height: 0.8rem;
+  /* display: block; */
+}

+ 20 - 40
pages/deploy/index/index.axml

@@ -9,69 +9,49 @@
     </view>
   </view>
   <view class="margin-bottom">
-    <!-- <view class="top"></view> -->
     <view class="header">
       <view class="flex-box flex-v-ce li margin-bottom">
         <image class="img-left" mode="scaleToFill" src="../../../image/xf.png"></image>
         <view class="flex-box flex-v-ce flex-1" style="padding: 20rpx 0;">
           <view class="title flex-1">
             <view>当前为{{corpMessage.package_name}}</view>
-            <view class="date">有效期至<text style="color:#FF9600">{{corpMessage.expire_time}}</text></view>
+            <view class="date">有效期至
+              <text style="color:#FF9600">{{corpMessage.expire_time}}</text></view>
           </view>
           <view class="xusj" data-index="1" onTap="openView">续费升级</view>
         </view>
       </view>
-      <view class="vip margin-bottom" a:if="{{vipData}}"  onTap="openView2">
+      <view class="vip margin-bottom" a:if="{{vipData}}" onTap="openView2">
         <image mode="scaleToFill" src="../../../image/vip.png"></image>
-        <!-- <view class="btn">{{vipText}}</view> -->
         <view class="btn">立即开通</view>
       </view>
+      <!-- 使用指南 -->
 
-      <!-- <view class="flex-box flex-v-ce li " data-index="2" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/bmyg.png"></image>
-        <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">组织架构</view>
-          <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
+      <view style="font-size:0.32rem;padding: 0.24rem 0.32rem;padding-top:0" class="flex-box-ce">
+        <view class="flex-1">使用帮助</view>
+        <view class="flex-box-ce flex-center-center" catchTap="openDn" a:if="{{isShowYy&&userData.is_only_try_order}}">
+          <image mode="scaleToFill" class="yy" src="../../../image/ys.png" />
+          <text class="blue">预约演示</text>
         </view>
       </view>
-      <view class="flex-box flex-v-ce li" data-index="3" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/jfgz.png"></image>
-        <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">积分规则</view>
-          <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
+      <view class="zn" a:if="{{isShowYy}}">
+        <view class="flex-box-ce" style="padding:24rpx 0;overflow-x: scroll;margin:0 24rpx;">
+            <view class="zn-item" a:for="{{announcementList}}" data-index="{{index}}" a:for-index="index" onTap="openaN2">
+                <text class="clamp2">{{item.title}}</text>
+            </view>
         </view>
       </view>
-      <view class="flex-box flex-v-ce li nodeBer margin-bottom" data-index="4" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/kqjf.png"></image>
-        <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">考勤积分规则</view>
-          <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
-        </view>
-      </view> -->
-      <!-- <view class="flex-box flex-v-ce li" data-index="7" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/bmyg.png"></image>
-        <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">上面落地服务 <text class="new" a:if="{{isShowNew}}">new</text></view>
-          <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
-        </view>
-      </view> -->
-
-      <view class="flex-box flex-v-ce li" data-index="5" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/sj.png"></image>
+      <view a:for="{{list}}" class="flex-box flex-v-ce li" data-index="{{item.id}}" onTap="openView">
+        <image class="img-left" mode="scaleToFill" src="{{item.img}}"></image>
         <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">系统公告</view>
+          <view class="title flex-1">{{item.name}}</view>
           <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
         </view>
       </view>
-
-      <view class="flex-box flex-v-ce li nodeBer" data-index="6" onTap="openView">
-        <image class="img-left" mode="scaleToFill" src="../../../image/kf.png"></image>
-        <view class="flex-box flex-v-ce flex-1 li-right">
-          <view class="title flex-1">官方服务群</view>
-          <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
-        </view>
+      <view a:if="{{isShowYy}}" style="text-align:center;margin-top:30rpx;font-size: 0.3rem; " catchTap="opengd">
+        <text>更多服务</text>
+        <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
       </view>
-
     </view>
   </view>
 </view>

+ 38 - 3
pages/deploy/index/index.js

@@ -9,12 +9,49 @@ Page({
     vipText:'立即开通',
     isShowNew:true,
     vipData:'',
+    list:[
+      // {name:'新手引导',img:'../../../image/jfgz.png',id:1},
+      {name:'系统公告',img:'../../../image/sj.png',id:5},
+      {name:'官方服务群',img:'../../../image/kf.png',id:6},
+    ],
+    isShowYy:false,
+    announcementList:[],
   },
   onLoad(query) {
     that = this;
     dd.setNavigationBar({ title: "我的" });
-    this.setData({userData:app.globalData.userData,corpMessage:app.globalData.corpMessage});
     this.getVip();
+    let isShowYy=false;
+    app.globalData.userData.employee_detail.role_list.forEach(item=>{
+      if(item.name=='admin'||item.name=='creator'|| item.name == 'point_manager'){
+          isShowYy=true;
+      }
+    })
+    this.setData({userData:app.globalData.userData,corpMessage:app.globalData.corpMessage,isShowYy:isShowYy});
+    this.getAnnouncement();
+  },
+  openaN2(e){
+    var index = e.target.dataset.index;
+    dd.navigateTo({
+      url: '../../workbench/noticeDetailTow/noticeDetailTow?id=' + this.data.announcementList[index].id+'&index='+index
+    })
+  },
+  getAnnouncement(){
+    app.$get("api/announcement/list",{type:3}).then((res) => {
+        let list=res.data.data.list;
+
+        that.setData({ announcementList:list})
+    })
+  },
+  opengd() {
+    dd.navigateTo({
+      url: '../serveMore/serveMore'
+    })
+  },
+  openDn() {
+    dd.navigateTo({
+      url: '../yuY/yuY'
+    })
   },
   getVip(){
     app.$get("api/order/goods/special").then((res) => {
@@ -54,8 +91,6 @@ Page({
       { url: '../integralRule/integralRule', query: '' },
       { url: '../setCheck/setCheck', query: '' },
       { url: '../upgrade/upgrade', query: '' },
-      { url: '../buy/buy', query: '' },
-      { url: '../buy/buy', query: '' },
     ];
     
     dd.navigateTo({

+ 58 - 0
pages/deploy/serveMore/serveMore.acss

@@ -0,0 +1,58 @@
+.item{
+  padding: 0.24rem 0.32rem;
+  background-color: #fff;
+  border-bottom: 1px solid #f1f1f1;
+}
+.item image{
+  width: 40rpx;
+  height: 40rpx;
+  margin-right: 10rpx;
+}
+.item .img-right{
+  width: 24rpx;
+  height: 24rpx;
+  /* margin-right: 28rpx; */
+}
+.main{
+  background-color: #fff;
+  padding: 0.24rem;
+}
+.items{
+  padding: 0.24rem;
+  box-shadow: 0 0 3px #ccc;
+  margin-top: 0.24rem;
+  border-radius: 16rpx;
+}
+.items image{
+  width: 120rpx;
+  height: 120rpx;
+  margin-right: 20rpx;
+}
+.title{
+  color: #888;
+  font-size: 0.28rem;
+}
+.btn{
+  padding: 8rpx 20rpx;
+  background-color:#FE5F0F;
+  color: #fff;
+  font-size: 0.24rem;
+  border-radius: 50rpx;
+}
+.name{
+  font-size: 0.34rem;
+  font-weight: 600;
+  color: #222;
+}
+.content{
+  font-size: 0.24rem;
+  color: #888;
+  /* margin: 10rpx 0; */
+}
+.ids text{
+   border: 1px solid #f0a020;
+   padding: 4rpx;
+   color: #f0a020;
+   font-size: 0.2rem;
+   margin-right: 10rpx;
+}

+ 26 - 0
pages/deploy/serveMore/serveMore.axml

@@ -0,0 +1,26 @@
+<view>
+  <view style="padding:30rpx 0">
+    <view class="flex-box-ce item" a:for="{{urls}}" catchTap="openUrl" data-index='{{item.id}}'>
+      <image mode="scaleToFill"  src="{{item.img}}" />
+      <text class="flex-1">{{item.name}}</text>
+      <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
+      <!-- <text class="iconfont icon-jiantouyou" style="font-size:20rpx;"></text> -->
+    </view>
+  </view>
+  <view  class="main">
+    <view class="title">功道云产品</view>
+    <view>
+        <view a:for="{{items}}" class="flex-box-ce items" catchTap="openUrl2" data-index='{{item.id}}'>
+            <image mode="scaleToFill"  src="{{item.img}}" />
+            <view class="flex-1">
+              <view class="name">{{item.name}}</view>
+              <view class="content">{{item.content}}</view>
+              <view class="ids">
+                <text a:for="{{item.ids}}" a:for-item="e">{{e}}</text>
+              </view>
+            </view>
+            <view class="btn">免费试用</view>
+        </view>
+    </view>
+  </view>
+</view>

+ 40 - 0
pages/deploy/serveMore/serveMore.js

@@ -0,0 +1,40 @@
+var app = getApp();
+var that;
+import 'dingtalk-jsapi/entry/mobile';
+import openLink from 'dingtalk-jsapi/api/biz/util/openLink';
+Page({
+  data: {
+    urls:[
+      {name:'方案定制',id:1,img:'../../../image/fw1.png'},
+      {name:'上门落地',id:2,img:'../../../image/fw3.png'},
+      {name:'课程学习',id:3,img:'../../../image/fw2.png'},
+      {name:'书籍资料',id:4,img:'../../../image/fw4.png'},
+    ],
+    items:[
+      {name:'功道云积分制',content:'数字化积分管理  员工激励利器',ids:['积分考核','员工激励','企业文化'],id:1,img:'../../../image/logo.png'},
+      {name:'功道云绩效',content:'数字化绩效专家  让管理少走弯路',ids:['绩效评价','KPI绩效','自动算分'],id:2,img:'../../../image/logoJx.png'},
+    ]
+  },
+  onLoad() {
+    that = this;
+    dd.setNavigationBar({ title: "更多服务" });
+  },
+  openUrl(e) {
+    var index = e.target.dataset.index;
+    dd.navigateTo({
+      url: '../webView/webView?index='+ index+ '&page=2'
+    })
+  },
+  openUrl2(e) {
+      var index = e.target.dataset.index;
+      if(index==1){
+        openLink({
+          url: 'https://h5.dingtalk.com/open-market/share.html?shareGoodsCode=D34E5A30A9AC7FC6327AB5E6D2D145418457E59F16C3FC9649BF22BF44CFA3D039FDE4A69694381C&token=523cb2f0e79525ea9b1719c0c5765a6b&shareUid=C5EB7B5C85793F3D909B2AC4771E12D7#/'
+        })
+      }else{
+        openLink({
+          url: 'https://h5.dingtalk.com/open-market/share.html?shareGoodsCode=D34E5A30A9AC7FC6FFCEB2BDEB2843187AD1B5AEDE67E69071118DA99D930127EBA311197B397B15&token=9bd3efbe751f453b82eb2548ba2c1b24&shareUid=3CD14812691CE211608BAD1C2A09D307#/'
+        })
+      }      
+  },
+  })

+ 3 - 0
pages/deploy/serveMore/serveMore.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 4 - 1
pages/deploy/upgrade/upgrade.axml

@@ -2,7 +2,10 @@
   <view class="body">
     <view class="picker">
       <picker onChange="bindObjPickerChange" value="{{arrIndex}}" range="{{objectArray}}" range-key="name">
-        <view class="row-extra">{{objectArray[arrIndex].name}}<text class="after"></text></view>
+        <view class="row-extra">
+          <text>{{objectArray[arrIndex].name}}</text>
+          <text class="after"></text>
+        </view>
       </picker>
     </view>
     <view style="height: 1rem;"></view>

+ 0 - 0
pages/deploy/webView/webView.acss


+ 3 - 0
pages/deploy/webView/webView.axml

@@ -0,0 +1,3 @@
+<view>
+    <web-view id="web-view-1" src="{{url}}" onMessage="test"></web-view>
+</view>

+ 34 - 0
pages/deploy/webView/webView.js

@@ -0,0 +1,34 @@
+var app = getApp();
+var that;
+Page({
+  data: {
+    knowFrom:'action',
+    url:'',
+  },
+  onLoad(e) {
+    that = this;
+    if(e.index){
+      let index=e.index;
+      console.log(e)
+      let url='https://www.yuque.com/docs/share/a5803b46-cffd-4ad3-aca8-f9908a743618?#'
+      if(index=='1'){
+          url='https://www.yuque.com/docs/share/a5803b46-cffd-4ad3-aca8-f9908a743618?#'
+      }else if(index=='2'){
+          url='https://www.yuque.com/docs/share/c64392c1-8c8d-40d4-9481-a5f1ad169c10?#'
+      }else if(index=='3'){
+          url='https://www.yuque.com/docs/share/282894d5-9309-432b-ab19-f05c06726c7e?#'
+      }else if(index=='4'){
+          url='https://www.yuque.com/docs/share/4ccb2328-08aa-4587-a6f5-5b5335692bd1?#'
+      }else if(index=='5'){
+          url='https://www.yuque.com/books/share/b0ae3780-67e7-420a-bc97-2353c6cf3f4f?#'
+      }
+      
+      this.setData({
+         url:url
+      })
+    }
+  },
+  test(){
+    
+  }
+});

+ 3 - 0
pages/deploy/webView/webView.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 39 - 0
pages/deploy/yuY/yuY.acss

@@ -0,0 +1,39 @@
+.header{
+  background-color: #26A2FF;
+  color: #fff;
+  text-align: center;
+  padding: 40rpx 0;
+}
+.item{
+    padding: 0.24rem 0.32rem;
+    font-size: 32rpx;
+    background-color: #fff;
+    border-bottom: 1px solid #f1f1f1;
+    position: relative;
+}
+.label{
+  width: 160rpx;
+  /* text-align: right; */
+}
+.page-section-btns{
+  position: relative;
+  padding: 0 0.32rem;
+  margin-top: 2rem;
+}
+.nameBox{
+  position: absolute;
+  left: 210rpx;
+  top: 0.3rem;
+  right: 0.32rem;
+}
+.fa{
+  background-color: #f0a020;
+  color: #fff;
+  right: 0;
+  padding: 0.1rem 0.2rem;
+  border-bottom-left-radius: 50rpx;
+  border-top-left-radius:50rpx;
+  position: absolute;
+  font-size: 28rpx;
+  top: -180rpx;
+}

+ 29 - 0
pages/deploy/yuY/yuY.axml

@@ -0,0 +1,29 @@
+<view>
+  <view class="header">
+    <view style="margin-bottom:5rpx">预约演示功道云积分制</view>
+    <view>积分制专家一对一服务</view>
+  </view>
+  <view class="main">
+    <form>
+      <view class="formBox">
+        <view class="flex-box-ce item">
+          <view class="label">公司名称</view>
+          <input class="flex-1" name="input" disabled />
+          <view class="nameBox font-flex-word">{{userData.company_info.name}}</view>
+        </view>
+        <view class="flex-box-ce item">
+          <view class="label">姓名</view>
+          <input class="flex-1" name="input"  placeholder="请输入姓名" onInput="bindKeyInput" />
+        </view>
+        <view class="flex-box-ce item">
+          <view class="label">手机号码</view>
+          <input class="flex-1" name="input" type="number"  placeholder="请输入手机号" onInput="bindKeyInput2" />
+        </view>
+      </view>
+      <view class="page-section-btns">
+        <view class="fa">预约赠送积分制考核方案</view>
+        <button type="primary"  catchTap="submit">立即申请</button>
+      </view>
+    </form>
+  </view>
+</view>

+ 57 - 0
pages/deploy/yuY/yuY.js

@@ -0,0 +1,57 @@
+var app = getApp();
+var that;
+import moment from 'moment' // 时间库
+Page({
+  data: {
+    userData: {},
+    name: '',
+    mobile: '',
+  },
+  onLoad() {
+    that = this;
+    dd.setNavigationBar({ title: "预约演示" });
+    that.setData({
+      userData: app.globalData.userData,
+    })
+  },
+  bindKeyInput(e) {
+    this.setData({
+      name: e.detail.value,
+    });
+  },
+  bindKeyInput2(e) {
+    this.setData({
+      mobile: e.detail.value,
+    });
+  },
+  submit() {
+    if (!this.data.name) {
+      app.globalData.showToast('请输入姓名');
+      return false;
+    }
+    if (!this.data.mobile) {
+      app.globalData.showToast('请输手机号码');
+      return false;
+    }
+    let str = /^1[345789]\d{9}$/
+    if (!str.test(this.data.mobile)) {
+      app.globalData.showToast('手机号码格式不正确')
+      return false
+    }
+    let data={
+      name:this.data.name,
+      mobile:this.data.mobile,
+    }
+    app.$post('api/employee/appointment', data).then(res => {
+      if (res.data.code == 1) {
+        app.globalData.showToast('提交成功,我们的积分制老师将在24小时内与您联系');
+        setTimeout(()=>{
+          dd.navigateBack({
+            delta: 1
+          })
+        },1000)
+      }
+    });
+  },
+
+});

+ 3 - 0
pages/deploy/yuY/yuY.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 75 - 19
pages/statistics/assaign/assaign.js

@@ -35,24 +35,7 @@ Page({
 			tree_echo: [],//用于PC编辑任务时的规则回显
     },
     reviewerObj: [],//默认审批人
-    objectArray: [
-      {
-        id: 0,
-        name: '不重复',
-      },
-      {
-        id: 1,
-        name: '每天重复',
-      },
-      {
-        id: 2,
-        name: '每周重复',
-      },
-      {
-        id: 3,
-        name: '每月重复',
-      },
-    ],
+    objectArray: [ {id: 0, name: '不重复'}, { id: 1, name: '每天重复'},{ id: 2,name: '每周重复'},{ id: 3,name: '每月重复'}],
     arrIndex: 0,
     popupCx: '',
     point_limit: 0,
@@ -67,7 +50,7 @@ Page({
     isArrindex: true,
     isGzType: 3,
   },
-  onLoad() {
+  onLoad(e) {
     that = this;
     dd.setNavigationBar({ title: "指派任务" });
     that.setData({
@@ -75,6 +58,79 @@ Page({
       [`items.expire_time`]: app.globalData.day + ' 18:00',
       point_limit: app.globalData.userData.point_config.point_limit
     })
+    if(e.yData){
+      this.recover(JSON.parse(e.yData));
+    }
+  },
+  recover(item){
+    let data=item;
+    let arr=[];
+     data.target_info.forEach(user => {
+        arr.push(user.id);
+    })
+
+    this.setData({
+      [`items.task_name`]:data.name,
+      [`items.range_type`]:0,
+      [`items.pt_id`]:data.pt_id,
+      [`items.task_remark`]:data.remark,
+      [`items.task_cycle`]:data.task_cycle,
+      [`items.file_list`]:data.file_list,
+      arrIndex:data.task_cycle,
+      columnsIndex: parseInt(data.task_cycle_value),
+      [`items.task_expire_day`]: parseInt(data.task_cycle_value) + 1,
+      [`items.checked`]:data.point_config.item_info? true:false,
+      // 执行人
+      users: data.target_info.length > 0 ? data.target_info : [],
+      [`items.targets`]: arr,
+      //  审批人
+      [`items.reviewer_id`]:data.reviewer_id,//审批者id
+      [`items.revieweName`]:data.reviewer_name,//审批者id
+
+      [`items.ahead_award_point`]:data.point_config.ahead_award_point,
+      [`items.ahead_award_point_limit`]:data.point_config.ahead_award_point_limit,
+      [`items.timeout_deduction_point`]:data.point_config.timeout_deduction_point,
+      [`items.timeout_deduction_point_limit`]:data.point_config.timeout_deduction_point_limit,
+    })
+    // 时间
+    let str = 'columns' + data.task_cycle;
+    let columnsArray = this.data[str];
+    this.setData({
+      columnsArray: columnsArray,
+    });
+
+    // 规则
+    let point=Number(data.point_config.base_point);
+    if(data.point_config.item_info){
+        let itemR=data.point_config.item_info;
+        let strMin;
+        if (point < 0) {
+          var min = point.toString();
+          strMin = min.slice(1, min.length);
+        } else {
+          strMin = point;
+        }
+        this.setData({
+          selectRule: itemR,
+          [`items.task_remark`]: data.remark,
+          [`items.base_point`]: strMin,
+          isArrindex: point > 0 ? true : false,
+          [`items.rule_id`]: itemR.rule_id,
+          [`items.item_id`]: itemR.id,
+        })
+    }else{ //分类
+      if(data.point_config.rule_info){
+          let itemR=data.point_config.rule_info;
+          this.setData({
+            [`items.rule_id2`]: itemR.id,
+            [`items.rule_name`]: itemR.name,
+          });
+      }
+      this.setData({
+        [`items.base_point2`]:point,
+      });
+    }
+    console.log(this.data.items)
   },
   //选择奖还是扣(细则)
   bindPickerChange() {

+ 1 - 0
pages/statistics/offerAreward/offerAreward.acss

@@ -74,6 +74,7 @@ textarea{
   width: 100%;
   border-top: 1px solid #f1f1f1;
   padding: 10rpx;
+  z-index: 99999;
 }
 .defBtn{
   width: 90%;

+ 3 - 0
pages/statistics/offerAreward/offerAreward.axml

@@ -121,6 +121,9 @@
         </view>
         <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
       </view>
+      <!-- <view style="height:2rem">
+        
+      </view> -->
     </view>
     <view class="btn-area">
       <button type="default" loading="{{disabled}}" class="defBtn" disabled="{{disabled}}" catchTap="formSubmit">提交</button>

+ 96 - 8
pages/statistics/offerAreward/offerAreward.js

@@ -64,7 +64,7 @@ Page({
     isGzType: 3,
 
   },
-  onLoad() {
+  onLoad(e) {
     that = this;
     dd.setNavigationBar({ title: "发布悬赏任务" });
     that.setData({
@@ -72,8 +72,96 @@ Page({
       [`items.expire_time`]: app.globalData.day + ' 18:00',
       point_limit: app.globalData.userData.point_config.point_limit
     })
+    if (e.yData) {
+      this.recover(JSON.parse(e.yData));
+    }
   },
-      //选择规则分类
+  recover(item) {
+    let data = item;
+    let arr = [];
+    data.target_info.forEach(user => {
+      arr.push(user.id);
+    })
+
+    this.setData({
+      [`items.task_name`]: data.name,
+      [`items.range_type`]: 0,
+      [`items.pt_id`]: data.pt_id,
+      [`items.task_remark`]: data.remark,
+      [`items.task_cycle`]: data.task_cycle,
+      [`items.file_list`]: data.file_list,
+      arrIndex: data.task_cycle,
+      columnsIndex: parseInt(data.task_cycle_value-1),
+      [`items.task_expire_day`]: parseInt(data.task_cycle_value) + 1,
+      [`items.checked`]: data.point_config.item_info ? true : false,
+      // 执行人
+      users: data.target_info.length > 0 ? data.target_info : [],
+      [`items.targets`]: arr,
+      //  审批人
+      [`items.reviewer_id`]: data.reviewer_id,//审批者id
+      [`items.revieweName`]: data.reviewer_name,//审批者id
+
+      [`items.ahead_award_point`]: data.point_config.ahead_award_point,
+      [`items.ahead_award_point_limit`]: data.point_config.ahead_award_point_limit,
+      [`items.timeout_deduction_point`]: data.point_config.timeout_deduction_point,
+      [`items.timeout_deduction_point_limit`]: data.point_config.timeout_deduction_point_limit,
+    })
+    // 时间
+    let str = 'columns' + data.task_cycle;
+    let columnsArray = this.data[str];
+    this.setData({
+      columnsArray: columnsArray,
+    });
+
+    // 规则
+    let point=Number(data.point_config.base_point);
+    if (data.point_config.item_info) {
+      let itemR = data.point_config.item_info;
+      let strMin;
+        if (point < 0) {
+          var min = point.toString();
+          strMin = min.slice(1, min.length);
+        } else {
+          strMin = point;
+      }
+      this.setData({
+        selectRule: itemR,
+        [`items.task_remark`]: data.remark,
+        [`items.base_point`]: strMin,
+        isArrindex: point > 0 ? true : false,
+        [`items.rule_id`]: itemR.rule_id,
+        [`items.item_id`]: itemR.id,
+      })
+    } else { //分类
+      if(data.point_config.rule_info){
+          let itemR=data.point_config.rule_info;
+          this.setData({
+            [`items.rule_id2`]: itemR.id,
+            [`items.rule_name`]: itemR.name,
+          });
+      }
+      this.setData({
+        [`items.base_point2`]:point,
+      });
+    }
+    let arrId = [];
+    let e=data.department_info
+    if (e.length > 0) {
+      e.forEach(user => {
+        arrId.push(user.id);
+      })
+      that.setData({
+        defaultSection: e,
+        [`items.dept_ids`]: arrId
+      })
+    } else {
+      that.setData({
+        defaultSection: [],
+        [`items.dept_ids`]: []
+      })
+    }
+  },
+  //选择规则分类
   onSelectType(item) {
     this.setData({
       [`items.rule_id2`]: item.id,
@@ -139,7 +227,7 @@ Page({
     this.clearTree()
   },
   //清除已选规则
-  clearTree(){
+  clearTree() {
     that.setData({
       selectRule: '',
       ['items.task_remark']: '',
@@ -232,10 +320,10 @@ Page({
         defaultSection: e,
         [`items.dept_ids`]: arr
       })
-    }else{
+    } else {
       that.setData({
         defaultSection: [],
-        [`items.dept_ids`]:[]
+        [`items.dept_ids`]: []
       })
     }
   },
@@ -402,9 +490,9 @@ Page({
         this.showToast('请输入任务积分')
         return;
       }
-      items.base_point=items.base_point2
-      items.qualified=items.base_point2;
-      items.rule_id=items.rule_id2;
+      items.base_point = items.base_point2
+      items.qualified = items.base_point2;
+      items.rule_id = items.rule_id2;
       delete items.item_id
     }
 

+ 8 - 4
pages/statistics/prizeBuckleDetail/prizeBuckleDetail.axml

@@ -82,19 +82,23 @@
     </block>
     <block a:else>
       <view a:if="{{see_log==1}}" class="log" catchTap="openLog">查看日志详情内容
-        <text style="font-size: 36rpx;padding-left:10rpx;">»</text></view>
+        <text style="font-size: 36rpx;padding-left:10rpx;">»</text>
+      </view>
     </block>
   </view>
-  <!-- <view class="bottom flex-box flex-flex-center-center" a:if="{{dataDetail.recorder_id==userId&&dataDetail.process.length==1&&(dataDetail.event_type==3||dataDetail.event_type==4)}}">
+  <view class="bottom flex-box flex-flex-center-center" a:if="{{dataDetail.recorder_id==userId&&dataDetail.process.length==1&&(dataDetail.event_type==3||dataDetail.event_type==4)}}">
     <text class="flex-2 fontColorF">撤销后数据将不可恢复</text>
     <view></view>
     <view class="flex-1 blueBtn" catchTap="openCx">撤销奖扣</view>
-  </view> -->
+  </view>
   <!-- 调用过程组件 -->
   <view class="margin-bottom">
     <process process="{{dataDetail.process}}" a:if="{{dataDetail.process.length>0}}" />
   </view>
-  <view style="margin-bottom:140rpx" a:if="{{dataDetail.dc_remark.flow}}">
+  <view  a:if="{{dataDetail.dc_remark.flow}}">
     <review process="{{dataDetail.dc_remark.flow}}" status="{{dataDetail.dc_status}}" />
   </view>
+  <view style="height:2rem">
+    
+  </view>
 </view>

+ 4 - 3
pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.acss

@@ -57,11 +57,12 @@
   margin: 0 10rpx;
 }
 .btn-area{
-  margin-top: 1.5rem
+  margin-top: 1.5rem;
+  padding: 20rpx 32rpx;
 }
 .defBtn2{
-  width: 90%;
-  margin: 0 auto;
+  /* width: 90%; */
+  /* margin: 0 auto; */
   border-radius: 10rpx;
   height: 90rpx;
   text-align: center;

+ 5 - 4
pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.axml

@@ -66,10 +66,10 @@
     </view>
     <view class="main margin-bottom">
       <block a:if="{{dataDetail.point_config}}">
-        <view class="mian-title border-bottom" a:if="{{dataDetail.point_config&&dataDetail.point_config.item_info}}">规则依据1
+        <view class="mian-title border-bottom" a:if="{{dataDetail.point_config&&(dataDetail.point_config.item_info||dataDetail.point_config.rule_info)}}">规则依据1
           <text>此事件打分参考以下积分规则</text>
         </view>
-        <view class="header-main" a:if="{{dataDetail.point_config&&dataDetail.point_config.item_info}}">
+        <view class="header-main" a:if="{{dataDetail.point_config&&(dataDetail.point_config.item_info||dataDetail.point_config.rule_info)}}">
           <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.rule_info.name}}">
             <view class="laber">规则分类</view>
             <view class="flex-1">{{dataDetail.point_config.rule_info.name }}</view>
@@ -109,7 +109,8 @@
         </view>
       </view>
     </view>
-    <view class="btn-area">
-      <button type="warn" loading="{{disabled}}" class="defBtn2" disabled="{{disabled}}" catchTap="formSubmit">删除重复任务</button>
+    <view class="btn-area flex-box-ce">
+      <button type="primary"  class="flex-1 defBtn2"  style="margin-right:0.24rem" catchTap="fy">复制</button>
+      <button type="warn" loading="{{disabled}}" class="flex-3 defBtn2" disabled="{{disabled}}" catchTap="formSubmit">删除重复任务</button>
     </view>
   </view>

+ 11 - 0
pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.js

@@ -44,6 +44,17 @@ Page({
       urls: item
     });
   },
+  fy(){
+      if(this.data.dataDetail.type==1){
+        dd.navigateTo({
+          url: '../assaign/assaign?yData=' + JSON.stringify(this.data.dataDetail)
+        }) 
+      }else{
+        dd.navigateTo({
+          url: '../offerAreward/offerAreward?yData=' + JSON.stringify(this.data.dataDetail)
+        })
+      }
+  },
   getDetail(id) {
     app.$get("api/integral/schedule", { schedule_id: id }).then((res) => {
       var data=res.data.data;

+ 23 - 0
pages/workbench/index/index.acss

@@ -1,4 +1,27 @@
 @import "../../../Component/aParse/aParse.acss";
+
+.zn{
+  background-color: #fff;
+
+}
+.zn-title{
+  padding: 16rpx 32rpx;
+  border-bottom: 1px solid #f1f1f1;
+}
+.zn-item{
+  padding: 24rpx;
+  background-image: linear-gradient(to top, #48c6ef 0%, #26A2FF 100%);
+  border-radius: 5px;
+  color: #fff;
+  font-size: 0.28rem;
+  margin-right: 24rpx;
+}
+.zn-item text{
+  width: 2rem;
+  height: 0.8rem;
+  /* display: block; */
+}
+
 .ts{
   height: 128rpx;
   padding: 16rpx 32rpx;

+ 16 - 1
pages/workbench/index/index.axml

@@ -10,7 +10,7 @@
       <view>{{headDayBs.b}}</view>
       <view>今日B分</view>
     </view>
-    <view class="flex-1" data-index="1" onTap="openWs2">
+    <view class="flex-1" data-index="1" onTap="openView">
       <view>{{userData.b.month_point}}</view>
       <view>本月B分</view>
     </view>
@@ -30,11 +30,26 @@
       </view>
     </view>
   </view>
+  <!-- 使用指南 -->
+  <view class="zn margin-bottom" a:if="{{isShowYy&&isShowAn}}">
+    <view class="zn-title flex-box-ce">
+      <text class="flex-1">快速使用指南</text>
+      <view catchTap="closeAn">
+        <image mode="scaleToFill" style="width:34rpx;height:34rpx;position: relative;top: 8rpx;" src="../../../image/close.png" class="img-right"></image>
+      </view>
+    </view>
+    <view class="flex-box-ce" style="padding:24rpx 0;overflow-x: scroll;margin:0 24rpx;">
+        <view class="zn-item" a:for="{{announcementList}}" data-index="{{index}}" a:for-index="index" onTap="openaN">
+            <text class="clamp2">{{item.title}}</text>
+        </view>
+    </view>
+  </view>
   <view class="flex-box-ce margin-bottom" style="background:#fff;padding:24rpx 32rpx" a:if="{{noticeTitle}}" onTap="openUrl2">
     <image mode="scaleToFill" src="../../../image/lb.png" style="width:30rpx;height:30rpx;position:relative;top:-2px"></image>
     <view style="padding:0 20rpx;" class="flex-1 font-flex-word">{{noticeTitle}}</view>
     <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
   </view>
+  
   <view class="main margin-bottom">
     <view class="main-title flex-box flex-v-ce" onTap="openView" data-index="10">
       <text class="flex-1" style="font-size:32rpx">排行榜</text>

+ 49 - 9
pages/workbench/index/index.js

@@ -44,6 +44,9 @@ Page({
     noticeTitle:'',
     isGz:false,
     islog:true,
+    announcementList:[],
+    isShowYy:false,
+    isShowAn:true,
   },
   onLoad() {
     that = this;
@@ -55,12 +58,23 @@ Page({
       that.getUserData();
       that.getGg();
       that.getNotice();
+      let isShowYy=false;
+      app.globalData.userData.employee_detail.role_list.forEach(item=>{
+        if(item.name=='admin'||item.name=='creator'|| item.name == 'point_manager'){
+            isShowYy=true;
+        }
+      })
       that.setData({
         isAdministrator: app.globalData.isAdministrator,
         getRole_four: app.globalData.isCreator,
         isSubject: app.globalData.userData.is_personal == 1 ? true : false,
-        mainCorpId: app.globalData.userData.main_corp_id
+        mainCorpId: app.globalData.userData.main_corp_id,
+        isShowYy:isShowYy,
+        isShowAn:getCache('isShowAn')? false:true,
       })
+      if(that.data.isShowYy&&that.data.isShowAn){
+            that.getAnnouncement();
+      }
       if(!getCache('init_rule_check')){
         app.globalData.userData.init_rule_check? '':that.setData({ isGz: true})
       }
@@ -88,13 +102,23 @@ Page({
           if(!getCache('init_rule_check')){
             app.globalData.userData.init_rule_check? '':that.setData({ isGz: true})
           }
-
+          let isShowYy=false;
+          app.globalData.userData.employee_detail.role_list.forEach(item=>{
+            if(item.name=='admin'||item.name=='creator'|| item.name == 'point_manager'){
+                isShowYy=true;
+            }
+          })
           that.setData({
             isAdministrator: app.globalData.isAdministrator,
             getRole_four: app.globalData.isCreator,
             isSubject: app.globalData.userData.is_personal == 1 ? true : false,
-            mainCorpId: app.globalData.userData.main_corp_id
+            mainCorpId: app.globalData.userData.main_corp_id,
+            isShowYy:isShowYy,
+            isShowAn:getCache('isShowAn')? false:true,
           })
+          if(that.data.isShowYy&&that.data.isShowAn){
+            that.getAnnouncement();
+          }
         } else {
           dd.reLaunch({
             url: '../../noJurisdiction/noJurisdiction'
@@ -103,8 +127,27 @@ Page({
       },function(){},true)
     }
   },
+  closeAn(){
+    setCache('isShowAn',true);
+    this.setData({
+      isShowYy:false,
+    })
+  },
+  openaN(e){
+    var index = e.target.dataset.index;
+    dd.navigateTo({
+      url: '../noticeDetailTow/noticeDetailTow?id=' + this.data.announcementList[index].id+'&index='+index
+    })
+  },
+  getAnnouncement(){
+    app.$get("api/announcement/list",{type:3}).then((res) => {
+        let list=res.data.data.list;
+
+        that.setData({ announcementList:list})
+    })
+  },
   gettrees(fn) {
-      app.$get2("api/integral/rule/trees", {cycle_type: 1 }).then((res)=>{
+      app.$get2("api/integral/rule/trees", {cycle_type: 3 }).then((res)=>{
         var rule_tree = res.data.data.rule_tree
         if(rule_tree.length==0&&app.globalData.isCreator){
           fn(false)
@@ -121,17 +164,14 @@ Page({
       islog:false
     })
     app.globalData.socketApi.sendData({type:'init_rule'}, function(e){
-        console.log(e)
-        that.setData({
-            islog:true
-        })
+        that.setData({islog:true})
         if (e.type == 'init_rule') {
           if(e.code==1&&e.result.done){
             that.setData({ isGz:false})
             app.globalData.showToast('已导入');
             app.globalData.socketApi.closewebsocket();
           }else{
-            app.globalData.showToast(e.msg);
+            // app.globalData.showToast(e.msg);
           }
         }
     });

+ 0 - 1
pages/workbench/noticeDetail/noticeDetail.js

@@ -39,7 +39,6 @@ Page({
         }
       }, function () { })
     }
-
   },
   getList(id) {
     /**

+ 37 - 0
pages/workbench/noticeDetailTow/noticeDetailTow.acss

@@ -0,0 +1,37 @@
+
+@import "../../../Component/aParse/aParse.acss";
+
+.title{
+  text-align: center;
+  padding: 0.28rem;
+  background-color: #fff;
+  border-bottom: 1px solid #f1f1f1;
+}
+.scroll{
+  height:  calc(100vh - 400rpx);
+  padding:28rpx;
+  background-color: #fff;
+}
+.footer{
+  position:fixed;
+  bottom: 0.24rem;
+  left: 0.32rem;
+  right: 0.32rem;
+  /* padding: 20rpx; */
+  /* border: 2px solid #26A2FF; */
+  text-align: center;
+  border-radius: 10rpx;
+}
+.footer .flex-1{
+  background-color: #fff;
+  padding: 20rpx;
+  border-radius: 10rpx;
+  border: 1px solid #26A2FF;
+  color: #26A2FF;
+}
+.footer .flex-1:nth-child(2){
+  background-color: #26A2FF;
+  padding: 20rpx;
+  color: #fff;
+  border-radius: 10rpx;
+}

+ 23 - 0
pages/workbench/noticeDetailTow/noticeDetailTow.axml

@@ -0,0 +1,23 @@
+<import src="../../../Component/aParse/aParse.axml" />
+<view>
+  <view class="title font-flex-word">{{obj.title}}</view>
+  <scroll-view class="scroll" scroll-y="{{true}}">
+    <template is="aParse" data="{{aParseData:article.nodes}}" />
+  </scroll-view>
+  <view style="padding:0.24rem 0.32rem">
+    <view class="flex-box-ce" style="margin-bottom:0.2rem" onTap="getData" data-id="{{upData.id}}">
+      <text>【上一篇】:</text>
+      <text class="blue flex-1 font-flex-word" a:if="{{upData.title}}">{{upData.title}}</text>
+      <text class="flex-1" a:else>无</text>
+    </view>
+    <view class="flex-box-ce"  onTap="getData" data-id="{{nextData.id}}">
+      <text>【下一篇】:</text>
+      <text class="blue flex-1 font-flex-word" a:if="{{nextData.title}}">{{nextData.title}}</text>
+      <text class="flex-1" a:else>无</text>
+    </view>
+  </view>
+  <view class="footer flex-box-ce">
+    <view class="flex-1" style="margin-right:24rpx" data-index="1"  onTap="openUrl">联系产品顾问</view>
+    <view class="flex-1" onTap="openUrl" data-index="2">产品使用手册</view>
+  </view>
+</view>

+ 141 - 0
pages/workbench/noticeDetailTow/noticeDetailTow.js

@@ -0,0 +1,141 @@
+var app = getApp();
+var that;
+var AParse = require('../../../Component/aParse/aParse.js');
+import 'dingtalk-jsapi/entry/mobile';
+import openLink from 'dingtalk-jsapi/api/biz/util/openLink';
+import moment from 'moment' // 时间库
+var setTime;
+Page({
+  data: {
+    obj: {},
+    upData: {},
+    nextData: {},
+    stay_time: 0,
+    background: 0,
+    in_time:moment().format('YYYY-MM-DD HH:mm:ss'),
+    iszx:false,
+  },
+  onLoad(e) {
+    that = this;
+    dd.setNavigationBar({ title: "使用指南" });
+    if (e.id) {
+      this.setData({
+        id: Number(e.id),
+        index: Number(e.index),
+      })
+    }
+    let user = app.globalData.userData
+    if(user.is_only_try_order&&user.id==user.company_info.creator_id){
+      this.setData({
+        iszx: true,
+      })
+      dd.onAppHide(this.onAppHideHandler)
+      this.getTj();
+    }
+  },
+  onUnload() { // 页面被关闭
+    if(this.data.iszx){
+      clearInterval(setTime);
+      this.offAppHideHandler();
+    }
+  },
+  getTj() {
+    setTime = setInterval(() => {
+      this.setData({
+        stay_time: this.data.stay_time + 1,
+      })
+    }, 1000);
+  },
+    // 取消监听切换到后台方法
+  offAppHideHandler() {
+    app.$post("api/employee/statistical", { 
+      page: 'pages/workbench/noticeDetailTow/noticeDetailTow',
+      stay_time:that.data.stay_time,
+      background:that.data.background,
+      in_time:that.data.in_time
+   }).then((res) => {})
+    dd.offAppHide(that.onAppHideHandler)
+  },
+    // 监听切换到后台方法
+  onAppHideHandler() {
+    that.setData({
+        background:1,
+    })
+  },
+  onShow() {
+    if (app.globalData.userData) {
+      dd.hideLoading();
+      that.getList(that.data.id);
+      that.getAnnouncement()
+    } else {
+      app.login(app.globalData.corpId, function (is) {
+        if (is) {
+          dd.hideLoading();
+          that.getList(that.data.id);
+          that.getAnnouncement()
+        } else {
+          dd.reLaunch({
+            url: '../../noJurisdiction/noJurisdiction'
+          })
+        }
+      }, function () { })
+    }
+  },
+  openUrl(e) {
+    var index = e.target.dataset.index;
+    if (index == '1') {
+      openLink({
+        url: `https://page.dingtalk.com/wow/dingtalk/act/serviceconversation?wh_biz=tm&showmenu=false&goodsCode=DT_GOODS_881607043109331&corpId=${app.globalData.corpId}&token=5784a3e6b5e025ee891517ea814180f4`
+      })
+    } else {
+      dd.navigateTo({
+        url: '../../deploy/webView/webView?index=5'
+      })
+    }
+  },
+  getAnnouncement() {
+    app.$get("api/announcement/list", { type: 3 }).then((res) => {
+      let list = res.data.data.list;
+      this.setData({
+        list: list,
+        upData: list[this.data.index - 1] ? list[this.data.index - 1] : {},
+        nextData: list[this.data.index + 1] ? list[this.data.index + 1] : {}
+      })
+    })
+  },
+  getData(e) {
+    var id = e.target.dataset.id;
+    if (!id) {
+      return false;
+    }
+    this.data.list.forEach((item, index) => {
+      if (item.id == id) {
+        this.setData({
+          upData: this.data.list[index - 1] ? this.data.list[index - 1] : {},
+          nextData: this.data.list[index + 1] ? this.data.list[index + 1] : {}
+        })
+      }
+    })
+    this.getList(id)
+  },
+  getList(id) {
+    /**
+ * 使用说明:
+* AParse.AParse(bindName , type, data, target,imagePadding)
+* 1.bindName绑定的数据名(必填)
+* 2.type可以为html或者md(必填)
+* 3.data为传入的具体数据(必填)
+* 4.target为Page对象,一般为this(必填)
+* 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
+*/
+    app.$get("api/announcement/info", { announcement_id: id }).then((res) => {
+      let data=res.data.data;
+      data.focus=data.focus? data.focus:'';
+      data.update_msg=data.update_msg? data.update_msg:'';
+      AParse.aParse('article', 'html', data.focus + '<div style="height:20px"></div>' + data.update_msg, that, 5);
+      this.setData({
+        obj: data
+      })
+    })
+  },
+});

+ 1 - 0
pages/workbench/noticeDetailTow/noticeDetailTow.json

@@ -0,0 +1 @@
+{}