347617796@qq.com пре 4 година
родитељ
комит
2ab4585497
100 измењених фајлова са 4103 додато и 294 уклоњено
  1. 9 0
      .kaitian/launch.json
  2. 39 5
      .tea/entryFiles-development/index$.web.js
  3. 39 5
      .tea/entryFiles-development/index$.worker.js
  4. 37 5
      .tea/entryFiles-production/index$.web.js
  5. 37 5
      .tea/entryFiles-production/index$.worker.js
  6. 5 5
      Component/img-box/index.acss
  7. 4 4
      Component/img-box/index.axml
  8. 13 3
      Component/img-box/index.js
  9. 8 0
      Component/noData/noData.acss
  10. 6 0
      Component/noData/noData.axml
  11. 11 0
      Component/noData/noData.js
  12. 3 0
      Component/noData/noData.json
  13. 33 0
      Component/process/process.acss
  14. 26 0
      Component/process/process.axml
  15. 11 0
      Component/process/process.js
  16. 6 0
      Component/process/process.json
  17. 58 0
      Component/selectDate/selectDate.acss
  18. 25 0
      Component/selectDate/selectDate.axml
  19. 91 0
      Component/selectDate/selectDate.js
  20. 3 0
      Component/selectDate/selectDate.json
  21. 60 0
      Component/selectDate_two/selectDate_two.acss
  22. 32 0
      Component/selectDate_two/selectDate_two.axml
  23. 100 0
      Component/selectDate_two/selectDate_two.js
  24. 3 0
      Component/selectDate_two/selectDate_two.json
  25. 54 9
      Component/selectRule/selectRule.acss
  26. 53 10
      Component/selectRule/selectRule.axml
  27. 120 9
      Component/selectRule/selectRule.js
  28. 66 0
      Component/selectRule_two/selectRule_two.acss
  29. 24 0
      Component/selectRule_two/selectRule_two.axml
  30. 99 0
      Component/selectRule_two/selectRule_two.js
  31. 3 0
      Component/selectRule_two/selectRule_two.json
  32. 102 0
      Component/selectSection/selectSection.acss
  33. 27 0
      Component/selectSection/selectSection.axml
  34. 92 0
      Component/selectSection/selectSection.js
  35. 3 0
      Component/selectSection/selectSection.json
  36. 155 0
      Component/selectSectionStaff/selectSectionStaff.acss
  37. 58 0
      Component/selectSectionStaff/selectSectionStaff.axml
  38. 220 0
      Component/selectSectionStaff/selectSectionStaff.js
  39. 3 0
      Component/selectSectionStaff/selectSectionStaff.json
  40. 155 0
      Component/selectSectionStaff_tow/selectSectionStaff_tow.acss
  41. 55 0
      Component/selectSectionStaff_tow/selectSectionStaff_tow.axml
  42. 162 0
      Component/selectSectionStaff_tow/selectSectionStaff_tow.js
  43. 3 0
      Component/selectSectionStaff_tow/selectSectionStaff_tow.json
  44. 75 0
      Component/selectStaff/selectStaff.acss
  45. 31 0
      Component/selectStaff/selectStaff.axml
  46. 65 0
      Component/selectStaff/selectStaff.js
  47. 3 0
      Component/selectStaff/selectStaff.json
  48. 66 0
      Component/selectSx/selectSx.acss
  49. 20 0
      Component/selectSx/selectSx.axml
  50. 100 0
      Component/selectSx/selectSx.js
  51. 3 0
      Component/selectSx/selectSx.json
  52. 68 0
      Component/selectType/selectType.acss
  53. 22 6
      Component/selectType/selectType.axml
  54. 75 10
      Component/selectType/selectType.js
  55. 71 0
      Component/selectUser/selectUser.acss
  56. 27 0
      Component/selectUser/selectUser.axml
  57. 63 0
      Component/selectUser/selectUser.js
  58. 3 0
      Component/selectUser/selectUser.json
  59. 345 177
      app.acss
  60. 111 26
      app.js
  61. 28 3
      app.json
  62. BIN
      image/1.png
  63. BIN
      image/2.png
  64. BIN
      image/3.png
  65. BIN
      image/BM.png
  66. BIN
      image/Bj.png
  67. BIN
      image/close.png
  68. BIN
      image/date.png
  69. BIN
      image/date2.png
  70. BIN
      image/e66f.jpg
  71. BIN
      image/gs_logo.png
  72. BIN
      image/noData.png
  73. BIN
      image/ss.png
  74. BIN
      image/sx.png
  75. 17 0
      pages/deploy/addMoney/addMoney.acss
  76. 5 0
      pages/deploy/addMoney/addMoney.axml
  77. 15 0
      pages/deploy/addMoney/addMoney.js
  78. 0 0
      pages/deploy/addMoney/addMoney.json
  79. 51 0
      pages/deploy/index/index.acss
  80. 45 1
      pages/deploy/index/index.axml
  81. 29 2
      pages/deploy/index/index.js
  82. 5 1
      pages/deploy/index/index.json
  83. 53 0
      pages/deploy/integralRule/integralRule.acss
  84. 51 0
      pages/deploy/integralRule/integralRule.axml
  85. 108 0
      pages/deploy/integralRule/integralRule.js
  86. 1 0
      pages/deploy/integralRule/integralRule.json
  87. 93 0
      pages/deploy/organization/organization.acss
  88. 53 0
      pages/deploy/organization/organization.axml
  89. 99 0
      pages/deploy/organization/organization.js
  90. 6 0
      pages/deploy/organization/organization.json
  91. 23 0
      pages/deploy/setCheck/setCheck.acss
  92. 73 0
      pages/deploy/setCheck/setCheck.axml
  93. 17 0
      pages/deploy/setCheck/setCheck.js
  94. 1 0
      pages/deploy/setCheck/setCheck.json
  95. 0 0
      pages/index/index.acss
  96. 0 3
      pages/index/index.axml
  97. 0 4
      pages/index/index.js
  98. 3 1
      pages/init/init.js
  99. 31 0
      pages/statistics/B_ranking/B_ranking.acss
  100. 35 0
      pages/statistics/B_ranking/B_ranking.axml

+ 9 - 0
.kaitian/launch.json

@@ -0,0 +1,9 @@
+{
+  // 使用 IntelliSense 了解相关属性。 
+  // 悬停以查看现有属性的描述。
+  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
+  "version": "0.2.0",
+  "configurations": [
+    
+  ]
+}

+ 39 - 5
.tea/entryFiles-development/index$.web.js

@@ -2,12 +2,46 @@ require('@alipay/appx-compiler/lib/sjsEnvInit');
 require('./config$');
 
 require('../../Component/img-box/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/noData/noData?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../node_modules/@antv/my-f2/es/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectRule/selectRule?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectType/selectType?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
-require('../../pages/workbench/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../Component/selectSectionStaff_tow/selectSectionStaff_tow?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/process/process?hash=67592639e2c104cea398f9badcdafb39eb607b02');
+require('../../Component/selectSection/selectSection?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate/selectDate?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectStaff/selectStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectRule_two/selectRule_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate_two/selectDate_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSx/selectSx?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSectionStaff/selectSectionStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../pages/workbench/index/index?hash=515236f8c96af7bcc38156941a11817af0611c88');
 require('../../pages/statistics/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/deploy/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/workbench/statistics_A/statistics_A?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/statistics_B/statistics_B?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/jk_A/jk_A?hash=53db26e09f0acb98746c617e5d959a420ca4e44f');
+require('../../pages/deploy/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/workbench/statistics_A/statistics_A?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/statistics_B/statistics_B?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/jk_A/jk_A?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/jk_B/jk_B?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/apply/apply?hash=5039c3c6bbea5040ea7335bad71d676d6b533f9e');
+require('../../pages/workbench/prize_buckle/prize_buckle?hash=b9588c2921fd8a20182363116ba32f0ef391d03c');
+require('../../pages/workbench/my_approve/my_approve?hash=f2d76cc77e7717f6ce2c6c23de78140ccd3a6eb5');
+require('../../pages/workbench/approveDetail/approveDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_PrizeBuckle/my_PrizeBuckle?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/prizeBuckleDetail/prizeBuckleDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_apply/my_apply?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/applyDetail/applyDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/glz_execute/glz_execute?hash=b03161331091ea30a5ff5738503197941ec76334');
+require('../../pages/statistics/check_top/check_top?hash=a39841aa8055abc1a62d590de4e2cd504268384a');
+require('../../pages/statistics/checkDetail/checkDetail?hash=62ac4ef78e3becaf55cac9228735d24a91309d1a');
+require('../../pages/statistics/integralEvent/integralEvent?hash=45871e3307fdd30ccbdd1c17fd7773364dfbb603');
+require('../../pages/statistics/sectionRanking/sectionRanking?hash=8239b016aa8a1f7918680c0fea9dfa6321ce6693');
+require('../../pages/statistics/B_ranking/B_ranking?hash=b03161331091ea30a5ff5738503197941ec76334');
+require('../../pages/statistics/customRamking/customRamking?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/statistics/addCustom/addCustom?hash=c61dcf19ed3fea0f4da43766ee3c25d30b199eea');
+require('../../pages/statistics/customDetail/customDetail?hash=9d0a64bf83c18e43ce73718197071535d83435ca');
+require('../../pages/deploy/organization/organization?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/deploy/addMoney/addMoney?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/setCheck/setCheck?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/integralRule/integralRule?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/workbench/approve/approve?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/statistics/C_ranking/C_ranking?hash=bcd8e1c05053f01c7126b59e3990df8bcf9058aa');

+ 39 - 5
.tea/entryFiles-development/index$.worker.js

@@ -30,15 +30,49 @@ if(AFAppX.registerApp) {
 function success() {
 require('../../app');
 require('../../Component/img-box/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/noData/noData?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../node_modules/@antv/my-f2/es/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectRule/selectRule?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectType/selectType?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
-require('../../pages/workbench/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../Component/selectSectionStaff_tow/selectSectionStaff_tow?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/process/process?hash=67592639e2c104cea398f9badcdafb39eb607b02');
+require('../../Component/selectSection/selectSection?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate/selectDate?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectStaff/selectStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectRule_two/selectRule_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate_two/selectDate_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSx/selectSx?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSectionStaff/selectSectionStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../pages/workbench/index/index?hash=515236f8c96af7bcc38156941a11817af0611c88');
 require('../../pages/statistics/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/deploy/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/workbench/statistics_A/statistics_A?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/statistics_B/statistics_B?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/jk_A/jk_A?hash=53db26e09f0acb98746c617e5d959a420ca4e44f');
+require('../../pages/deploy/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/workbench/statistics_A/statistics_A?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/statistics_B/statistics_B?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/jk_A/jk_A?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/jk_B/jk_B?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/apply/apply?hash=5039c3c6bbea5040ea7335bad71d676d6b533f9e');
+require('../../pages/workbench/prize_buckle/prize_buckle?hash=b9588c2921fd8a20182363116ba32f0ef391d03c');
+require('../../pages/workbench/my_approve/my_approve?hash=f2d76cc77e7717f6ce2c6c23de78140ccd3a6eb5');
+require('../../pages/workbench/approveDetail/approveDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_PrizeBuckle/my_PrizeBuckle?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/prizeBuckleDetail/prizeBuckleDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_apply/my_apply?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/applyDetail/applyDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/glz_execute/glz_execute?hash=b03161331091ea30a5ff5738503197941ec76334');
+require('../../pages/statistics/check_top/check_top?hash=a39841aa8055abc1a62d590de4e2cd504268384a');
+require('../../pages/statistics/checkDetail/checkDetail?hash=62ac4ef78e3becaf55cac9228735d24a91309d1a');
+require('../../pages/statistics/integralEvent/integralEvent?hash=45871e3307fdd30ccbdd1c17fd7773364dfbb603');
+require('../../pages/statistics/sectionRanking/sectionRanking?hash=8239b016aa8a1f7918680c0fea9dfa6321ce6693');
+require('../../pages/statistics/B_ranking/B_ranking?hash=b03161331091ea30a5ff5738503197941ec76334');
+require('../../pages/statistics/customRamking/customRamking?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/statistics/addCustom/addCustom?hash=c61dcf19ed3fea0f4da43766ee3c25d30b199eea');
+require('../../pages/statistics/customDetail/customDetail?hash=9d0a64bf83c18e43ce73718197071535d83435ca');
+require('../../pages/deploy/organization/organization?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/deploy/addMoney/addMoney?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/setCheck/setCheck?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/integralRule/integralRule?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/workbench/approve/approve?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/statistics/C_ranking/C_ranking?hash=bcd8e1c05053f01c7126b59e3990df8bcf9058aa');
 }
 self.bootstrapApp ? self.bootstrapApp({ success }) : success();
 }

+ 37 - 5
.tea/entryFiles-production/index$.web.js

@@ -2,12 +2,44 @@ require('@alipay/appx-compiler/lib/sjsEnvInit');
 require('./config$');
 
 require('../../Component/img-box/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/noData/noData?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../node_modules/@antv/my-f2/es/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectRule/selectRule?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectType/selectType?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
-require('../../pages/workbench/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../Component/selectSectionStaff_tow/selectSectionStaff_tow?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/process/process?hash=67592639e2c104cea398f9badcdafb39eb607b02');
+require('../../Component/selectSection/selectSection?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate/selectDate?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectStaff/selectStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectRule_two/selectRule_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate_two/selectDate_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSx/selectSx?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSectionStaff/selectSectionStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../pages/workbench/index/index?hash=515236f8c96af7bcc38156941a11817af0611c88');
 require('../../pages/statistics/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/deploy/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/workbench/statistics_A/statistics_A?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/statistics_B/statistics_B?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/jk_A/jk_A?hash=53db26e09f0acb98746c617e5d959a420ca4e44f');
+require('../../pages/deploy/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/workbench/statistics_A/statistics_A?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/statistics_B/statistics_B?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/jk_A/jk_A?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/jk_B/jk_B?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/apply/apply?hash=5039c3c6bbea5040ea7335bad71d676d6b533f9e');
+require('../../pages/workbench/prize_buckle/prize_buckle?hash=b9588c2921fd8a20182363116ba32f0ef391d03c');
+require('../../pages/workbench/my_approve/my_approve?hash=f2d76cc77e7717f6ce2c6c23de78140ccd3a6eb5');
+require('../../pages/workbench/approveDetail/approveDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_PrizeBuckle/my_PrizeBuckle?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/prizeBuckleDetail/prizeBuckleDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/my_apply/my_apply?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/applyDetail/applyDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/glz_execute/glz_execute?hash=322c0c717893caa9d8d77ddf29449ac9e51c1805');
+require('../../pages/statistics/check_top/check_top?hash=0d5e40af9654737aec5d8ef1856513a629cbb1ca');
+require('../../pages/statistics/checkDetail/checkDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/integralEvent/integralEvent?hash=d0271b147ef1c0608acfacf8fed241cfc9afa2b1');
+require('../../pages/statistics/sectionRanking/sectionRanking?hash=79980e12dc2dbb169de30cdeddcb5b7409949aa8');
+require('../../pages/statistics/B_ranking/B_ranking?hash=322c0c717893caa9d8d77ddf29449ac9e51c1805');
+require('../../pages/statistics/customRamking/customRamking?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/statistics/addCustom/addCustom?hash=c61dcf19ed3fea0f4da43766ee3c25d30b199eea');
+require('../../pages/statistics/customDetail/customDetail?hash=9d0a64bf83c18e43ce73718197071535d83435ca');
+require('../../pages/deploy/organization/organization?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/deploy/addMoney/addMoney?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/setCheck/setCheck?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/integralRule/integralRule?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');

+ 37 - 5
.tea/entryFiles-production/index$.worker.js

@@ -55,15 +55,47 @@ if(AFAppX.registerApp) {
 function success() {
 require('../../app');
 require('../../Component/img-box/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/noData/noData?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../node_modules/@antv/my-f2/es/index?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectRule/selectRule?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
 require('../../Component/selectType/selectType?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
-require('../../pages/workbench/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../Component/selectSectionStaff_tow/selectSectionStaff_tow?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/process/process?hash=67592639e2c104cea398f9badcdafb39eb607b02');
+require('../../Component/selectSection/selectSection?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate/selectDate?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectStaff/selectStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectRule_two/selectRule_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectDate_two/selectDate_two?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSx/selectSx?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../Component/selectSectionStaff/selectSectionStaff?hash=05d2a9730dd6009bf9446182f9c985f40f8c0f43');
+require('../../pages/workbench/index/index?hash=515236f8c96af7bcc38156941a11817af0611c88');
 require('../../pages/statistics/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/deploy/index/index?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
-require('../../pages/workbench/statistics_A/statistics_A?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/statistics_B/statistics_B?hash=83a94e2340ddd13e96f290b8b98de3fd90122450');
-require('../../pages/workbench/jk_A/jk_A?hash=53db26e09f0acb98746c617e5d959a420ca4e44f');
+require('../../pages/deploy/index/index?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/workbench/statistics_A/statistics_A?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/statistics_B/statistics_B?hash=bdb0bce92eecbc6877ffeb617de4ef47419f5593');
+require('../../pages/workbench/jk_A/jk_A?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/jk_B/jk_B?hash=28edbbe5ce38700df7a81a17db3401e4d3bd3207');
+require('../../pages/workbench/apply/apply?hash=5039c3c6bbea5040ea7335bad71d676d6b533f9e');
+require('../../pages/workbench/prize_buckle/prize_buckle?hash=b9588c2921fd8a20182363116ba32f0ef391d03c');
+require('../../pages/workbench/my_approve/my_approve?hash=f2d76cc77e7717f6ce2c6c23de78140ccd3a6eb5');
+require('../../pages/workbench/approveDetail/approveDetail?hash=627f1b90505b489ef5bc84d3aa0a2614f1ee320e');
+require('../../pages/statistics/my_PrizeBuckle/my_PrizeBuckle?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/prizeBuckleDetail/prizeBuckleDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/my_apply/my_apply?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/statistics/applyDetail/applyDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/glz_execute/glz_execute?hash=322c0c717893caa9d8d77ddf29449ac9e51c1805');
+require('../../pages/statistics/check_top/check_top?hash=0d5e40af9654737aec5d8ef1856513a629cbb1ca');
+require('../../pages/statistics/checkDetail/checkDetail?hash=2480af6fe59ab13e82f53b90e2783b2c750a746c');
+require('../../pages/statistics/integralEvent/integralEvent?hash=d0271b147ef1c0608acfacf8fed241cfc9afa2b1');
+require('../../pages/statistics/sectionRanking/sectionRanking?hash=79980e12dc2dbb169de30cdeddcb5b7409949aa8');
+require('../../pages/statistics/B_ranking/B_ranking?hash=322c0c717893caa9d8d77ddf29449ac9e51c1805');
+require('../../pages/statistics/customRamking/customRamking?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/statistics/addCustom/addCustom?hash=c61dcf19ed3fea0f4da43766ee3c25d30b199eea');
+require('../../pages/statistics/customDetail/customDetail?hash=9d0a64bf83c18e43ce73718197071535d83435ca');
+require('../../pages/deploy/organization/organization?hash=515236f8c96af7bcc38156941a11817af0611c88');
+require('../../pages/deploy/addMoney/addMoney?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/setCheck/setCheck?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
+require('../../pages/deploy/integralRule/integralRule?hash=32d7d2807ed4e666ef03b4b3fe8c38ecf2e34e68');
 }
 self.bootstrapApp ? self.bootstrapApp({ success }) : success();
 }

+ 5 - 5
Component/img-box/index.acss

@@ -1,15 +1,15 @@
 .img-name{
-  width: 70rpx;
-  height: 70rpx;
+  width: 80rpx;
+  height: 80rpx;
   border-radius: 100%;
   background: #26A2FF;
   color: #fff;
   text-align: center;
-  line-height: 64rpx;
+  line-height: 76rpx;
   font-size: 24rpx;
 }
 .img-url{
-  width: 70rpx;
-  height: 70rpx;
+  width: 80rpx;
+  height: 80rpx;
   border-radius: 100%;
 }

+ 4 - 4
Component/img-box/index.axml

@@ -1,8 +1,8 @@
 <view>
-  <view a:if="{{imgUrl}}">
-    <image class="img-url" mode="scaleToFill" src="{{imgUrl}}"/>
+  <view a:if="{{imgUrl}}"  style="width:{{width}};height:{{height}}">
+    <image class="img-url" style="width:{{width}};height:{{height}}" mode="scaleToFill" src="{{imgUrl}}"/>
   </view>
-  <view a:else>
-    <view class="img-name">{{name}}</view>
+  <view a:else  style="width:{{width}};height:{{height}}">
+    <view class="img-name" style="width:{{width}};height:{{height}};line-height:{{height}};font-size:{{fSize}}">{{userName}}</view>
   </view>
 </view>

+ 13 - 3
Component/img-box/index.js

@@ -1,13 +1,18 @@
 Component({
   mixins: [],
-  data: {sum:100},
+  data: {
+    userName:'',
+  },
   props: {
       name:'未定义',
       imgUrl:'',
+      width:'',
+      height:'',
+      fSize:'',
   },
   //为渲染后回调,此时页面已经渲染,通常在这里请求服务端数据比较合适。
   didMount() {
-      
+      this.setName();
   },
   //为更新后回调,每次组件数据变更的时候都会调用。
   didUpdate() {
@@ -18,6 +23,11 @@ Component({
 
   },
   methods: {
-
+    setName(){
+          var str=this.props.name;
+          this.setData({
+            userName:str.substring(str.length-2)
+          })
+    }
   },
 });

+ 8 - 0
Component/noData/noData.acss

@@ -0,0 +1,8 @@
+.nodata{
+  font-size: 24rpx;
+  color: #909399;
+}
+.nodata image{
+  width: 400rpx;
+  height: 400rpx;
+}

+ 6 - 0
Component/noData/noData.axml

@@ -0,0 +1,6 @@
+<view>
+  <view class="flex-box-v flex-center-center  nodata">
+    <image mode="scaleToFill" src="../../../image/noData.png"/>
+    <view>{{content}}</view>
+  </view>
+</view>

+ 11 - 0
Component/noData/noData.js

@@ -0,0 +1,11 @@
+Component({
+  mixins: [],
+  data: {},
+  props: {
+    content:'暂无内容'
+  },
+  didMount() {},
+  didUpdate() {},
+  didUnmount() {},
+  methods: {},
+});

+ 3 - 0
Component/noData/noData.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 33 - 0
Component/process/process.acss

@@ -0,0 +1,33 @@
+.process-title{
+  padding:16rpx 32rpx;
+  background: #fff;
+  font-size: 30rpx;
+  color: #222;
+  font-weight: 600;
+}
+.process-title text{
+  font-size: 24rpx;
+  color: #909399;
+  font-weight: 500;
+  position: relative;
+  top: -3rpx;
+  padding-left: 20rpx;
+}
+.process-bottom{
+  padding:16rpx 32rpx;
+  background: #fff;
+}
+.process-bottom-right{
+  margin-left: 10rpx;
+}
+.process-name{
+  margin-right: 20rpx;
+}
+.process-date{
+  font-size: 22rpx;
+  color: #909399;
+  padding: 4rpx 0;
+}
+.process-context{
+  font-size: 24rpx;
+}

+ 26 - 0
Component/process/process.axml

@@ -0,0 +1,26 @@
+<view>
+  <view class="process-title border-bottom">审批
+    <text>多人审批时,以最后一人为准</text></view>
+  <view class="process-bottom">
+    <view class="flex-box" style="position: relative;" a:for="{{process}}">
+      <view class="imgBox" a:if="{{(index+1)!=process.length}}"></view>
+      <img-box name="{{item.name}}" imgUrl="{{item.img_url}}" height="80rpx" width="80rpx"></img-box>
+      <view class="process-bottom-right flex-1">
+        <view class="flex-box flex-v-ce names">
+          <text class="process-name">{{item.name}}</text>
+          <text class="fontColorF" a:if="{{item.remark == '申请人'||item.remark == '发起'}}">{{item.remark}}</text>
+          <text class="yellow" a:if="{{item.remark == '待审核'}}">{{item.remark}}</text>
+          <text class="green" a:if="{{item.remark == '审核通过'}}">{{item.remark}}</text>
+          <text class="red" a:if="{{item.remark == '审核驳回'}}">{{item.remark}}</text>
+          <text style="color:#FF9600" class="state" a:if="{{item.remark == '待处理'}}">{{item.remark}}</text>
+          <text style="color:#F56C6C" a:if="{{item.remark == '驳回'}}">{{item.remark}}</text>
+          <text class="flex-1"></text>
+          <text a:if="{{item.review_point&&item.review_point>0}}">+{{item.review_point}}</text>
+          <text a:if="{{item.review_point&&item.review_point<0}}">{{item.review_point}}</text>
+        </view>
+        <view class="process-date">{{item.time}}</view>
+        <view class="process-context" a:if="{{item.remark!='申请人'}}">{{item.review_remark}}</view>
+      </view>
+    </view>
+  </view>
+</view>

+ 11 - 0
Component/process/process.js

@@ -0,0 +1,11 @@
+Component({
+  mixins: [],
+  data: {},
+  props: {
+    process:[]
+  },
+  didMount() {},
+  didUpdate() {},
+  didUnmount() {},
+  methods: {},
+});

+ 6 - 0
Component/process/process.json

@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "img-box": "/Component/img-box/index"
+  }
+}

+ 58 - 0
Component/selectDate/selectDate.acss

@@ -0,0 +1,58 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.date-header{
+  background-color: #fff;
+  z-index: 3;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+}
+.date-bottom{
+    animation-duration: 0.2s;
+    background-color: rgba(0,0,0,.7);
+    height: 100%;
+}
+.selectDateType{
+  width: 200rpx;
+  margin: 0rpx auto;
+  border: 1px solid #26a2ff;
+  border-radius: 6rpx;
+  text-align: center;
+}
+.selectDateType view{
+  padding: 4rpx 0;
+}
+.selectDateType .dateActive{
+  background-color: #26a2ff;
+  color: #fff;
+}
+.date-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.date-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.date-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+.data-main{
+  margin: 32rpx 0;
+  text-align: center;
+}
+
+.data-main .dateVal{
+  color: #26a2ff;
+  width: 200rpx;
+  padding: 16rpx 0;
+  border-bottom: 1px solid #26a2ff;
+  display: inline-block;
+}

+ 25 - 0
Component/selectDate/selectDate.axml

@@ -0,0 +1,25 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="date-header {{isShow?'showPop':''}}" >
+    <view class="flex-box selectDateType">
+      <view data-index="1" class="{{dateIndex == 1 ? 'dateActive':''}} flex-1" catchTap="activeDate">月</view>
+      <view data-index="2" class="{{dateIndex == 2 ? 'dateActive':''}} flex-1" catchTap="activeDate">日</view>
+    </view>
+    <view class="data-main">
+        <block a:if="{{dateIndex==1}}">
+            <text class="dateVal" onTap="selectDate">{{month}}</text>
+        </block>
+        <block a:else>
+            <view class="flex-box flex-center-center">
+               <text class="dateVal" onTap="selectDay">{{startDay}}</text>
+               <text class="fontColorT" style="margin:0 20rpx;">至</text>
+               <text class="dateVal" onTap="selectDay2">{{endDay}}</text>
+            </view>
+        </block>
+    </view>
+    <view class="flex-box date-btn">
+      <view class="flex-1" catchTap="onClose">取消</view>
+      <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 91 - 0
Component/selectDate/selectDate.js

@@ -0,0 +1,91 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    dateIndex: 1,
+    month: app.globalData.month,//月
+    startDay: app.globalData.day,
+    endDay: app.globalData.day,
+  },
+  props: {
+    onClose: (data) => console.log(data),
+    onConfirm:(data) => console.log(data),
+  },
+  didMount() {
+    this.setData({
+      isShow:this.props.isShow
+    })
+    console.log(this.data.endDay);
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    onConfirm(){
+        var obj;
+        if (this.data.startDay > this.data.endDay) {
+          app.globalData.showToast("开始时间不能大于结束时间")
+          return false;
+        }else{
+            if(this.data.dateIndex==1){
+                obj={
+                  type:this.data.dateIndex,
+                  date:this.data.month
+                }
+            }else{
+                obj={
+                  type:this.data.dateIndex,
+                  date:[this.data.startDay,this.data.endDay]
+                }
+            }
+            this.props.onConfirm(obj);
+            this.props.onClose();
+        }
+    },
+    onClose(){
+      this.props.onClose();
+    },
+    selectDay() {
+      dd.datePicker({
+        format: 'yyyy-MM-dd',
+        currentDate: this.data.startDay,
+        success: (res) => {
+          this.setData({
+            startDay: res.date,
+            //  endDay: res.date
+          })
+        },
+      });
+    },
+    selectDay2() {
+      dd.datePicker({
+        format: 'yyyy-MM-dd',
+        currentDate: this.data.startDay,
+        success: (res) => {
+          if (res.date < this.data.startDay) {
+            app.globalData.showToast("结束时间不能小于开始时间")
+            return false;
+          }
+          this.setData({
+            endDay: res.date
+          })
+        },
+      });
+    },
+    activeDate(e) {
+      this.setData({ dateIndex: e.target.dataset.index })
+    },
+    selectDate() {
+      dd.datePicker({
+        format: 'yyyy-MM',
+        currentDate: this.data.month,
+        success: (res) => {
+          this.setData({
+            month: res.date
+          })
+        },
+      });
+    },
+
+  },
+});

+ 3 - 0
Component/selectDate/selectDate.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 60 - 0
Component/selectDate_two/selectDate_two.acss

@@ -0,0 +1,60 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.date-header{
+  background-color: #fff;
+  z-index: 3;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+}
+.date-bottom{
+    animation-duration: 0.2s;
+    background-color: rgba(0,0,0,.7);
+    height: 100%;
+}
+.selectDateType{
+  width: 300rpx;
+  margin: 0rpx auto;
+  border: 1px solid #26a2ff;
+  border-radius: 6rpx;
+  text-align: center;
+}
+.selectDateType view{
+  padding: 4rpx 0;
+  width: 100rpx;
+  text-align: center;
+}
+.selectDateType .dateActive{
+  background-color: #26a2ff;
+  color: #fff;
+}
+.date-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.date-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.date-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+.data-main{
+  margin: 32rpx 0;
+  text-align: center;
+}
+
+.data-main .dateVal{
+  color: #26a2ff;
+  width: 200rpx;
+  padding: 16rpx 0;
+  border-bottom: 1px solid #26a2ff;
+  display: inline-block;
+}

+ 32 - 0
Component/selectDate_two/selectDate_two.axml

@@ -0,0 +1,32 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="date-header {{isShow?'showPop':''}}" >
+    <view class="flex-box selectDateType">
+      <view data-index="1" class="{{dateIndex == '1' ? 'dateActive':''}} flex-1" catchTap="activeDate">年</view>
+      <view data-index="2" class="{{dateIndex == '2' ? 'dateActive':''}} flex-1" catchTap="activeDate">季度</view>
+      <view data-index="3" class="{{dateIndex == '3' ? 'dateActive':''}} flex-1" catchTap="activeDate">月</view>
+    </view>
+    <view class="data-main">
+        <block a:if="{{dateIndex=='1'}}">
+            <text class="dateVal" onTap="selectYear">{{year}}</text>
+        </block>
+        <block a:if="{{dateIndex=='3'}}">
+            <text class="dateVal" onTap="selectDate">{{month}}</text>
+        </block>
+        <block a:if="{{dateIndex=='2'}}">
+            <view class="flex-box flex-center-center">
+               <text class="dateVal" onTap="selectDay">{{jdYear}}</text>
+               <text class="fontColorT" style="margin:0 20rpx;">--</text>
+               <picker onChange="setjdji" value="{{jdji}}" range="{{jdArr}}">
+                  <view class="dateVal">{{jdArr[jdji]}}</view>
+                </picker>
+               <!-- <text class="dateVal" onTap="selectDay2">{{jdji}}</text> -->
+            </view>
+        </block>
+    </view>
+    <view class="flex-box date-btn">
+      <view class="flex-1" catchTap="onClose">取消</view>
+      <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 100 - 0
Component/selectDate_two/selectDate_two.js

@@ -0,0 +1,100 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    dateIndex: "1",
+    year: app.globalData.year,//年
+    month: app.globalData.month,//月
+    jdYear: app.globalData.year,//季度年
+    jdji: 0,//季度季
+    jdArr: ['一季度', '二季度', '三季度', '四季度']
+  },
+  props: {
+    onClose: (data) => console.log(data),
+    onConfirm: (data) => console.log(data),
+  },
+  didMount() {
+    this.setData({
+      isShow: this.props.isShow
+    })
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    setjdji(e) {
+      this.setData({
+        jdji: e.detail.value,
+      });
+    },
+    onConfirm() {
+      var obj;
+      switch (this.data.dateIndex) {
+        case "1":
+          obj = {
+            type: this.data.dateIndex,
+            date: this.data.year
+          }
+          break
+        case "2":
+          obj = {
+            type: this.data.dateIndex,
+            date: this.data.jdYear+''+(this.data.jdji+1)
+          }
+          break
+        case "3":
+          obj = {
+            type: this.data.dateIndex,
+            date: this.data.month
+          }
+          break
+      };
+      this.props.onConfirm(obj);
+      this.props.onClose();
+
+    },
+    onClose() {
+      this.props.onClose();
+    },
+    selectDay() {
+      dd.datePicker({
+        format: 'yyyy',
+        currentDate: this.data.jdYear,
+        success: (res) => {
+          this.setData({
+            jdYear: res.date
+          })
+        },
+      });
+    },
+    selectDay2() {
+
+    },
+    selectDate() {
+      dd.datePicker({
+        format: 'yyyy-MM',
+        currentDate: this.data.month,
+        success: (res) => {
+          this.setData({
+            month: res.date
+          })
+        },
+      });
+    },
+    selectYear() {
+      dd.datePicker({
+        format: 'yyyy',
+        currentDate: this.data.year,
+        success: (res) => {
+          this.setData({
+            year: res.date
+          })
+        },
+      });
+    },
+    activeDate(e) {
+      this.setData({ dateIndex: e.target.dataset.index })
+    },
+
+  },
+});

+ 3 - 0
Component/selectDate_two/selectDate_two.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 54 - 9
Component/selectRule/selectRule.acss

@@ -3,11 +3,9 @@
   background-color: #fff;
   height: 100%;
   margin-top: 40rpx;
-  border-radius: 50rpx 50rpx 0 0; 
+  border-radius: 20rpx 20rpx 0 0; 
   padding-top: 80rpx;
-}
-.confirm{
-
+  z-index: 999
 }
 .close{
   width: 40rpx;
@@ -17,18 +15,45 @@
   top: 70rpx;
 }
 .left{
-  
+  background: #f1f1f1;
+  height: calc(100vh - 212rpx);
+}
+.left .yi{
+  padding: 20rpx 24rpx;
+  position: relative;
+}
+.left .er{
+  border-bottom: 1px solid #f1f1f1;
+  background-color: #fff;
+  padding: 20rpx  0rpx;
+  padding-left: 40rpx;
+  position: relative;
+}
+.left .active::before{
+    position: absolute;
+    content: " ";
+    width: 6rpx;
+    height: 22rpx;
+    background: #26A2FF;
+    left: 10rpx;
+    top:50%;
+    margin-top: -11rpx;
+}
+.left .itemActive{
+  color: #26A2FF;
+}
+.right{
+   height: calc(100vh - 212rpx);
 }
 .search{
     background-color: #f1f1f1;
-    border-radius: 20rpx;
+    border-radius: 6rpx;
     width: 80%;
     margin: 0 auto;
-    padding:8rpx 10rpx;
+    padding:6rpx 10rpx;
 }
 .search input{
     background-color: #f1f1f1;
-    font-size: 24rpx;
 }
 .search image{
   width: 30rpx;
@@ -37,5 +62,25 @@
 }
 .content{
     margin-top: 16rpx;
-    border-bottom: 1px solid #f1f1f1;
+    border-top: 1px solid #f1f1f1;
+}
+.radio{
+  width: 80rpx;
+  text-align: center;
+  box-sizing: border-box;
+}
+.items{
+  padding: 14rpx;
+  border-bottom: 1px solid #f1f1f1;
+}
+.num{
+  font-size: 24rpx;
+}
+.items-top{
+  padding:20rpx 28rpx;
+  border-bottom: 1px solid #f1f1f1;
+}
+.nodata{
+  text-align: center;
+  padding: 40rpx;
 }

+ 53 - 10
Component/selectRule/selectRule.axml

@@ -1,18 +1,61 @@
 <view class="all">
-  <image mode="scaleToFill" catchTap="plusOne" class="close" src="../../../image/close.png"/> 
+  <image mode="scaleToFill" catchTap="plusOne" class="close" src="../../../image/close.png"/>
   <view class="search flex-box flex-v-ce">
-      <image mode="scaleToFill" src="../../../image/close.png"/>
-      <input placeholder="请输入规则内容搜索" />
+    <image mode="scaleToFill" src="../../../image/ss.png"/>
+    <input placeholder="请输入规则内容搜索"  onInput="bindKeyInput"/>
   </view>
-
   <view class="flex-box content">
-      <scroll-view class="flex-2 left" scroll-y="{{true}}">
-        <view>
-
+    <scroll-view class="flex-2 left" scroll-y="{{true}}" a:if="{{isItem}}">
+      <view class="tree" a:for="{{rule_tree}}">
+          <view class="{{item.id == activeIndex ? 'active':''}} yi" catchTap="activeTree" data-item="{{item}}">{{item.name}}</view>
+          <view catchTap="activeItem" data-item="{{child}}" class="{{child.id == activeItemIndex ? 'itemActive':''}} er" a:if="{{item.child&&item.child.length>0&&item.id == activeIndex}}" a:for="{{item.child}}" a:for-index="idx" a:for-item="child">
+              {{child.name}}
+          </view>
+      </view>
+    </scroll-view>
+    <scroll-view class="flex-5 right" scroll-y="{{true}}" a:if="{{isItem}}">
+      <view a:if="{{item_child_list.length>0}}">
+        <view class="flex-box flex-v-ce items-top" a:for="{{item_child_list}}" catchTap="openDetail" data-item="{{item}}">
+            <view class="flex-1" data-item="{{item}}">{{item.name}}</view>
+            <image mode="scaleToFill" src="../../../image/right.png" style="width: 26rpx;height: 26rpx;"/>
         </view>
-      </scroll-view>
-      <scroll-view class="flex-5 right" scroll-y="{{true}}">
+      </view>
+      <view>
+        <radio-group class="radio-group" onChange="radioChange">
+          <label class="flex-box flex-v-ce items" a:for="{{item_list}}">
+            <view class="radio">
+              <radio value="{{item}}" checked="{{item.checked}}"/>{{item.value}}</view>
+            <view class="radio-right flex-1">
+              <view>{{item.remark}}</view>
+              <view class="red num" a:if="{{item.min_point>0}}">+{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+                <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text></view>
+              <view class="green num" a:if="{{item.min_point<0}}">{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+                <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text></view>
+            </view>
+          </label>
+        </radio-group>
+        <view a:if="{{item_list.length==0}}" class="nodata fontColorF">暂无相关规则</view>
+      </view>
+    </scroll-view>
+  
+
 
-      </scroll-view>
+    <scroll-view class="flex-5 right" scroll-y="{{true}}" a:else>
+        <radio-group class="radio-group" onChange="radioChange" a:if="{{selectItem.length>0}}">
+          <label class="flex-box flex-v-ce items" a:for="{{selectItem}}">
+            <view class="radio">
+              <radio value="{{item}}" checked="{{item.checked}}"/>{{item.value}}</view>
+            <view class="radio-right flex-1">
+              <view>{{item.remark}}</view>
+              <view class="red num" a:if="{{item.min_point<0}}">{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+                <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text></view>
+              <view class="green num" a:if="{{item.min_point>0}}">+{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+                <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text></view>
+            </view>
+          </label>
+        </radio-group>
+        <view a:else class="nodata fontColorT">暂无相关规则</view>
+      </view>
+    </scroll-view>
   </view>
 </view>

+ 120 - 9
Component/selectRule/selectRule.js

@@ -1,24 +1,135 @@
 var app = getApp()
+var that;
 Component({
   mixins: [],
-  data: {},
+  data: {
+    allItems:[],
+    item_list: {},
+    rule_tree: {},
+    types:'',
+    activeIndex:'',//一级索引
+    activeItemIndex:'',//二级索引
+    item_child_list:[],//子数据集合
+    isItem:true,//判断是否显示左侧
+    selectItem:[],//选择的数据
+  },
   props: {
-    onCloseAnimation: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+    onConfirm:(data) => console.log(data),
+    isGzType:''
   },
   didMount() {
+    that = this;
+    this.setData({types:app.globalData.types})
     this.getData();
   },
-  didUpdate() {},
-  didUnmount() {},
+  didUpdate() { },
+  didUnmount() { },
   methods: {
-    getData(){
-        app.$get("api/integral/rule/trees",{pt_id:3},(res)=>{
-            console.log(res);
+    //搜索
+    bindKeyInput(e) {
+        var item_list=this.data.allItems;
+        var items=item_list.filter((item)=>{
+            return item.remark.indexOf(e.detail.value) >= 0
+        });
+        this.setData({
+          selectItem: items,
+          isItem:e.detail.value? false:true
+        })
+
+    },
+    //点击一级
+    activeTree(e){
+      var item=e.target.dataset.item
+      var item_list=this.data.allItems;
+      if(item.id==this.data.activeIndex){
+        this.setData({
+          activeIndex:'',
+          item_child_list:[],
+          item_list: item_list,
+        })
+        return false;
+      }
+      this.setData({item_child_list:[]});
+      if(item.child&&item.child.length>0){
+          this.setData({
+            activeItemIndex:item.child[0].id
+          })
+        if(item.child[0].child&&item.child[0].child.length>0){
+          this.setData({
+            item_child_list:item.child[0].child
+          })
+        }
+      }
+      this.setData({
+        activeIndex:item.id
+      })
+      this.getItem(item.id);
+    },
+    //点击二级
+    activeItem(e){
+      console.log(e);
+      var item=e.target.dataset.item
+      this.setData({
+        activeItemIndex:item.id,
+        item_list:[]
+      });
+      if(item.child&&item.child.length>0){
+          this.setData({
+            item_child_list:item.child
+          })
+      }else{
+          this.setData({
+            item_child_list:[]
+          })
+      }
+     this.getItem(item.id);
+    },
+    openDetail(e){
+        var id=e.target.dataset.item.id;
+        this.setData({
+          activeItemIndex:id,
+          item_child_list:[]
+        });
+        this.getItem(id);
+    },
+    getItem(id){
+        var item_list=this.data.allItems;
+        var items=item_list.filter((item)=>{return item.rule_id==id});
+        that.setData({
+          item_list: items,
+        })
+    },
+    radioChange: function (e) {
+      this.props.onConfirm(e.detail.value);
+      this.plusOne();
+    },
+    getData() {
+      var pt_id,typeObj;
+      if(that.props.isGzType){
+        typeObj=app.getTypesItem(that.props.isGzType);
+        pt_id=typeObj.id;
+      }
+      app.$get("api/integral/rule/trees", { pt_id: pt_id }).then((res)=>{
+        var item_list = res.data.data.item_list
+        var rule_tree = res.data.data.rule_tree
+        var list = []
+        for (let i in item_list) {
+          for (let k in item_list[i]) {
+            item_list[i][k].pt_Obj=that.props.isGzType? typeObj:app.getTypesItem(item_list[i][k].pt_id);
+            list.push(item_list[i][k])
+          }
+        }
+        that.setData({
+          item_list: list,
+          rule_tree:rule_tree,
+          allItems:list,
         })
+      })
     },
     //关闭
-    plusOne(e){
-      this.props.onCloseAnimation();
+    plusOne(e) {
+      this.props.onClose();
     },
   },
 });

+ 66 - 0
Component/selectRule_two/selectRule_two.acss

@@ -0,0 +1,66 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.staff-header{
+  background-color: #fff;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+  margin-top: 0rpx;
+  transform: translateY(-100%);
+}
+
+.staff-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.staff-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.staff-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+
+.rule-ul{
+  width: 100%;
+  background-color: #fff;
+  height: 700rpx;
+  box-sizing: border-box;
+}
+.rule-title{
+  margin-bottom: 20rpx;
+  padding:0 28rpx;
+}
+.rule-item{
+  margin-bottom: 20rpx;
+}
+.ruleGe{
+  background: #f5f7fa;
+  padding: 16rpx;
+  font-size: 24rpx;
+  width: 22%;
+  text-align: center;
+  box-sizing: border-box;
+  margin: 0rpx  1.5%  20rpx 1.5%;
+}
+.rule-all-text{
+  font-size: 24rpx;
+  color: #999;
+  position: relative;
+  right: 10rpx;
+  bottom: 5rpx;
+}
+.rule-items{
+  padding: 0 14rpx;
+}
+.ruleActive{
+    color: #26a2ff!important;
+    background: #26a2ff33!important;
+}

+ 24 - 0
Component/selectRule_two/selectRule_two.axml

@@ -0,0 +1,24 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="staff-header {{isShow?'showPop':''}}">
+    <scroll-view class="rule-ul" scroll-y="{{true}}">
+      <view a:for="{{rule_tree}}" class="rule-item">
+        <view class="flex-box flex-v-ce rule-title">
+          <view class="flex-1">{{item.name}}</view>
+          <label>
+            <text class="rule-all-text">全选</text>
+            <checkbox onChange="ruleActiveAll" data-index="{{index}}" checked="{{item.checked}}" disabled="{{item.disabled}}" />
+          </label>
+        </view>
+        <view class="flex-box flex-d-wrap rule-items" a:if="{{item.child.length>0}}">
+          <view catchTap="ruleActive" data-index="{{index}}" data-indexChild="{{idx}}" class="{{itemName.checked==true? 'ruleActive':''}} ruleGe font-flex-word" a:for="{{item.child}}" a:for-index="idx" a:for-item="itemName">{{itemName.name}}</view>
+        </view>
+        <view style="text-align: center;font-size:22rpx;" class="fontColorT" a:else>暂无相关规则</view>
+      </view>
+    </scroll-view>
+    <view class="flex-box staff-btn">
+      <view class="flex-1" catchTap="onClose">取消</view>
+      <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 99 - 0
Component/selectRule_two/selectRule_two.js

@@ -0,0 +1,99 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    all_user_list: {},
+    isShow: false,
+  },
+  props: {
+    onConfirm: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+  },
+  didMount() {
+    that = this;
+    this.setData({ isShow: this.props.isShow })
+    this.getData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    //全
+    ruleActiveAll(e) {
+      var index = e.target.dataset.index;
+      var items = this.data.rule_tree[index].child;
+      var elem = `rule_tree[${index}].checked`;
+      var elemChild = `rule_tree[${index}].child`;
+      items.map((item) => {
+        item.checked = e.detail.value
+      })
+      this.setData({
+        [elem]: e.detail.value,
+        [elemChild]:items
+      });
+    },
+    //单
+    ruleActive(e) {
+      var index = e.target.dataset.index;
+      var indexChild = e.target.dataset.indexChild;
+      var isChecked = this.data.rule_tree[index].child[indexChild].checked;
+      var elem = `rule_tree[${index}].child[${indexChild}].checked`;
+      this.setData({
+        [elem]: !isChecked
+      })
+    },
+    onConfirm() {
+      var rule_tree=this.data.rule_tree;
+      var arr=[];
+      rule_tree.forEach(item => {
+        if(item.child.length>0){
+          item.child.forEach((a)=>{
+              if(a.checked==true){
+                arr.push(a.id);
+              }
+          })
+        }
+      });
+      this.props.onConfirm(arr);
+      this.props.onClose();
+    },
+    radioChange: function (e) {
+      if (e.detail.value) {
+        var arr = e.detail.value;
+        this.setData({
+          selectUserId: e.detail.value
+        })
+      } else {
+        this.setData({
+          selectUserId: []
+        })
+      }
+    },
+
+    getData() {
+      app.$get("api/integral/rule/trees", { pt_id: 3 }).then((res) => {
+        var rule_tree = res.data.data.rule_tree;
+        rule_tree.map((item) => {
+          item.checked = false;
+          item.disabled = false
+          if (item.child.length > 0) {
+            item.child.map((a) => {
+              a.checked = false;
+            })
+          } else {
+            // item.disabled = true;
+          }
+        })
+        that.setData({
+          rule_tree: rule_tree
+        })
+      }, (err) => {
+
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    },
+  },
+});

+ 3 - 0
Component/selectRule_two/selectRule_two.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 102 - 0
Component/selectSection/selectSection.acss

@@ -0,0 +1,102 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.date-header{
+  background-color: #fff;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+  margin-top: 0rpx;
+  transform: translateY(-100%);
+}
+.date-bottom{
+    animation-duration: 0.2s;
+    background-color: rgba(0,0,0,.7);
+    height: 100%;
+}
+
+.date-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.date-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.date-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+.data-main{
+  margin: 32rpx 0;
+  text-align: center;
+}
+
+.data-main .dateVal{
+  color: #26a2ff;
+  width: 200rpx;
+  padding: 16rpx 0;
+  border-bottom: 1px solid #26a2ff;
+  display: inline-block;
+}
+
+
+.all2{
+  background-color: #fff;
+  height: 100%;
+  margin-top: 40rpx;
+  border-radius: 50rpx 50rpx 0 0; 
+  padding-top: 80rpx;
+  z-index: 999
+}
+.close{
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  right: 30rpx;
+  top: 70rpx;
+}
+
+.search{
+    background-color: #f1f1f1;
+    border-radius: 20rpx;
+    width: 80%;
+    margin: 0 auto;
+    padding:6rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.ul{
+  width: 100%;
+  background-color: #fff;
+  height: 500rpx;
+  box-sizing: border-box;
+}
+.li{
+    padding: 24rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.ul .li .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 14rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}

+ 27 - 0
Component/selectSection/selectSection.axml

@@ -0,0 +1,27 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="date-header {{isShow?'showPop':''}}">
+    <view>
+      <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+        <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+          <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>
+                {{item.name}}
+        </view>
+      </view>
+      <scroll-view class="ul" scroll-y="{{true}}">
+        <radio-group class="radio-group" onChange="radioChange">
+          <view class="flex-box flex-v-ce li" a:for="{{rule_tree}}">
+            <label class="flex-box flex-v-ce flex-1">
+              <radio value="{{item}}" checked="{{item.checked}}" name="{{item.id}}"/>
+              <image mode="scaleToFill" style="width:50rpx;height:50rpx; margin:0 10rpx;" src="../../../image/BM.png"/> {{item.name}}</label>
+            <view class="xia" data-item="{{item}}" catchTap="openDown" a:if="{{item._child.length>0}}">| 下级</view>
+          </view>
+        </radio-group>
+      </scroll-view>
+    </view>
+    <view class="flex-box date-btn">
+      <view class="flex-1" catchTap="onClose">取消</view>
+      <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 92 - 0
Component/selectSection/selectSection.js

@@ -0,0 +1,92 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    all_rule_list: {},
+    isShow:false,
+    terr:[
+      {name: '全部', id:0}
+    ],
+    rule_tree: []
+  },
+  props: {
+    onConfirm: (data) => console.log(data),
+    onClose:(data) => console.log(data),
+  },
+  didMount() {
+    that = this;
+    this.setData({
+      isShow:this.props.isShow
+    })
+    this.getBmData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    onConfirm(){
+        if(!this.data.selectTissue){
+          app.globalData.showToast("请选择部门");
+          return;
+        }
+        this.props.onConfirm(this.data.selectTissue);
+        this.props.onClose();
+    },
+    //点击导航栏
+    activeItem(e){
+       var item=e.target.dataset.item;
+       var index=e.target.dataset.index;
+       var terr=this.data.terr;
+      if((index+1)==terr.length){return false};
+      this.setData({ rule_tree:[]});
+      if(index==0){
+        this.setData({
+          terr:[{name: '全部', id:0}],
+          rule_tree:this.data.all_rule_list
+        })
+      }else{
+        var arr=terr.slice(0,index+1);
+        this.setData({
+          rule_tree:item._child,
+          terr:arr
+        })
+      }
+    },
+    // 点击下一级
+    openDown(e){
+      this.setData({ rule_tree:[]});
+       var item=e.target.dataset.item;
+       var terr=this.data.terr;
+       terr.push(item);
+       if(item._child.length>0){
+        that.setData({
+          rule_tree:item._child,
+          terr:terr
+        })
+       }
+    },
+    radioChange: function(e) {
+        this.setData({
+          selectTissue:e.detail.value
+        })
+    },
+    //获取部门列表
+    getBmData() {
+      app.$get("api/department/tree", {}).then((res) => {
+        var list = res.data.data.list;
+        list.unshift({
+          name:'全公司',
+          id:''
+        })
+        this.setData({
+          rule_tree: list,
+          all_rule_list:list,
+        })
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    },
+  },
+});

+ 3 - 0
Component/selectSection/selectSection.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 155 - 0
Component/selectSectionStaff/selectSectionStaff.acss

@@ -0,0 +1,155 @@
+
+.all{
+  background-color: #fff;
+  height: 100%;
+  margin-top: 40rpx;
+  border-radius: 20rpx 20rpx 0 0; 
+  padding-top: 80rpx;
+  z-index:3
+}
+.close{
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  right: 30rpx;
+  top: 70rpx;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 6rpx;
+    width: 80%;
+    margin: 0 auto;
+    padding:6rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.content{
+    margin-top: 16rpx;
+    border-top: 1px solid #f1f1f1;
+    width: 100%;
+}
+.date-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.date-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.date-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+.data-main{
+  margin: 32rpx 0;
+  text-align: center;
+}
+
+.data-main .dateVal{
+  color: #26a2ff;
+  width: 200rpx;
+  padding: 16rpx 0;
+  border-bottom: 1px solid #26a2ff;
+  display: inline-block;
+}
+
+.ul2{
+  width: 100%;
+  background-color: #fff;
+  box-sizing: border-box;
+}
+.li{
+    padding:20rpx 24rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.ul2 .li .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 10rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+
+/* 人员 */
+.staff-ul{
+  width: 100%;
+  background-color: #fff;
+  box-sizing: border-box;
+  height: calc(100vh - 390rpx);
+}
+.userItem{
+    padding:14rpx 32rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.staff-ul .userItem .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 14rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 10rpx;
+    margin: 0 32rpx;
+    padding:8rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+    font-size: 26rpx;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.StaffFooter{
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: #fff;
+  padding: 10rpx;
+  border-top: 1px solid #f1f1f1;
+}
+
+.staffBtn{
+    background: #26A2FF;
+    color: #fff;
+    border-radius: 6rpx;
+    height: 88rpx;
+    text-align: center;
+    line-height: 88rpx;
+    padding: 0 20rpx;
+}
+.f-left{
+  overflow-x: auto;
+}
+.rule-all-text{
+  font-size: 24rpx;
+  color: #999;
+  position: relative;
+  right: 10rpx;
+  bottom: 5rpx;
+}
+.staff-all{
+  background: rgba(245, 247, 250, 1);
+  padding: 16rpx 32rpx;
+}

+ 58 - 0
Component/selectSectionStaff/selectSectionStaff.axml

@@ -0,0 +1,58 @@
+<view class="all">
+  <image mode="scaleToFill" catchTap="onClose" class="close" src="../../../image/close.png"/>
+  <view class="search flex-box flex-v-ce">
+    <image mode="scaleToFill" src="../../../image/ss.png"/>
+    <input placeholder="请输入姓名搜索" onInput="bindKeyInput"/>
+  </view>
+  <view class="content">
+    <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+      <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+        <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>{{item.name}}
+      </view>
+    </view>
+    <scroll-view class="staff-ul" scroll-y="{{true}}" style="{{terr.length>1? 'height: calc(100vh - 390rpx);':'height: calc(100vh - 320rpx);'}}">
+      <block a:if="{{isItem}}">
+        <view class="ul2">
+          <view class="flex-box flex-v-ce li" a:for="{{rule_tree}}">
+            <view class="flex-box flex-v-ce flex-1" data-item="{{item}}" catchTap="changeSection">
+              <image mode="scaleToFill" style="width:50rpx;height:50rpx; margin:0 10rpx;" src="../../../image/BM.png"/> {{item.name}}
+            </view>
+            <view class="xia" a:if="{{item._child.length>0}}" data-item="{{item}}" catchTap="openDown">| 下级</view>
+          </view>
+        </view>
+        <view class="flex-box flex-v-ce staff-all">
+          <view class="flex-1"></view>
+          <label a:if="{{isAll}}">
+            <text class="rule-all-text">全选</text>
+            <checkbox onChange="ruleActiveAll" disabled="{{item.disabled}}" checked="{{isAllChecked}}"/>
+          </label>
+        </view>
+        <view class="flex-box flex-v-ce userItem" a:for="{{userList}}">
+          <label class="flex-box flex-v-ce flex-1">
+            <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+            <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+            <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+            <checkbox onChange="radioChange" data-index="{{index}}" data-item="{{item}}" checked="{{item.checked}}" name="{{item.id}}"/>
+          </label>
+        </view>
+      </block>
+      <view class="flex-box flex-v-ce userItem" a:for="{{searchVal}}" a:else>
+        <label class="flex-box flex-v-ce flex-1">
+          <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+          <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+          <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+          <checkbox onChange="radioChange" data-index="{{index}}" data-item="{{item}}" checked="{{item.checked}}" name="{{item.id}}"/>
+        </label>
+      </view>
+    </scroll-view>
+  </view>
+  <view class="StaffFooter flex-box flex-v-ce">
+    <view class="flex-1 f-left flex-box flex-v-ce">
+      <view a:for="{{selectUserId}}" style="margin-right:10rpx;">
+        <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;display: inline-block;" src="{{item.img_url}}"/>
+        <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+      </view>
+    </view>
+    <view class="staffBtn" onTap="onConfirm">确定</view>
+  </view>
+</view>

+ 220 - 0
Component/selectSectionStaff/selectSectionStaff.js

@@ -0,0 +1,220 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    userList: [],//人员集合
+    all_user_list: [],//人员集合
+    isShow: false,
+    showId: 0,//显示的部门ID下员工
+    terr: [
+      { name: '全部', id: 0 }
+    ],
+    all_rule_list: [],
+    rule_tree: [],
+    selectUserId: [],
+    isAllChecked: false,
+    isItem: true,
+    searchVal: '',
+    isAll: true,
+  },
+  props: {
+    onClose: (data) => console.log(data),
+    onConfirm: (data) => console.log(data),
+    selectUser: [],
+    isAllSelect: true,//是否多选
+  },
+  didMount() {
+    that = this;
+    this.setData({
+      selectUserId: this.props.selectUser,
+      isAll: this.props.isAllSelect
+    })
+    this.getData(0);
+    this.getBmData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    onConfirm() {
+      this.props.onConfirm(this.data.selectUserId);
+      this.onClose();
+    },
+    //搜索
+    bindKeyInput(e) {
+      var userList = this.data.userList;
+      var items = userList.filter((item) => {
+        return item.name.indexOf(e.detail.value) >= 0
+      });
+      this.setData({
+        searchVal: items,
+        isItem: e.detail.value ? false : true
+      })
+
+    },
+    changeSection(e) {
+      var item = e.target.dataset.item;
+      var terr = this.data.terr;
+      terr.push(item);
+      if (item._child.length > 0) {
+        that.setData({
+          rule_tree: item._child,
+          terr: terr,
+          isAllChecked: false
+        })
+      } else {
+        that.setData({
+          rule_tree: [],
+          terr: terr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    //点击导航栏
+    activeItem(e) {
+      var item = e.target.dataset.item;
+      var index = e.target.dataset.index;
+      var terr = this.data.terr;
+      if ((index + 1) == terr.length) { return false };
+      this.setData({ rule_tree: [] });
+      if (index == 0) {
+        this.setData({
+          terr: [{ name: '全部', id: 0 }],
+          rule_tree: this.data.all_rule_list,
+          isAllChecked: false
+        })
+      } else {
+        var arr = terr.slice(0, index + 1);
+        this.setData({
+          rule_tree: item._child,
+          terr: arr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    // 点击下一级
+    openDown(e) {
+      this.setData({ rule_tree: [] });
+      var item = e.target.dataset.item;
+      var terr = this.data.terr;
+      terr.push(item);
+      if (item._child.length > 0) {
+        that.setData({
+          rule_tree: item._child,
+          terr: terr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    getArrDifference(arr1, arr2) {
+      var obj = {};
+      arr1.concat(arr2).forEach(function (v, i, arr) {
+        obj[v.id] = v;
+      });
+      return obj;
+    },
+    //全选择
+    ruleActiveAll(e) {
+      var userList = this.data.userList;
+      var selectUserId = this.data.selectUserId;
+      if (e.detail.value) {
+        userList.map(item => {
+          item.checked = true;
+        })
+        if (selectUserId.length > 0) {
+          var obj = this.getArrDifference(selectUserId, userList);
+          this.setData({
+            selectUserId: Object.values(obj),
+            userList: userList,
+            isAllChecked: true
+          })
+        } else {
+          this.setData({
+            selectUserId: userList,
+            userList: userList,
+            isAllChecked: true
+          })
+        }
+
+      } else {
+        userList.map(item => {
+          item.checked = false;
+        })
+        this.setData({
+          userList: userList,
+          selectUserId: [],
+          isAllChecked: false
+        })
+      }
+    },
+    //单选择
+    radioChange: function (e) {
+      var item = e.target.dataset.item;
+      var selectUserId = this.data.selectUserId;
+      var isExist = false;
+      if (e.detail.value) {
+        if (!this.data.isAll) {//当设置单选择时
+          if (selectUserId.length > 0) {
+            app.globalData.showToast("只能选择一名人员");
+            return;
+          }
+        }
+        selectUserId.forEach((element, index, _this) => {
+          if (element.id == item.id) {
+            isExist = true;
+          }
+        });
+        if (!isExist) {
+          selectUserId.push(item);
+        }
+      } else {
+        selectUserId.forEach((element, index, _this) => {
+          if (element.id == item.id) {
+            _this.splice(index, 1);
+          }
+        });
+      }
+      this.setData({
+        selectUserId: selectUserId
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    },
+    //获取人员列表
+    getData(dept_id) {
+      app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
+        var list = res.data.data.list;
+        var selectUserId = this.data.selectUserId;
+        list.map((item) => {
+          item.checked = false;
+          if (selectUserId.length > 0) {
+            selectUserId.forEach(item2 => {
+              if (item.id == item2.id) {
+                item.checked = true;
+              }
+            })
+          }
+        })
+        this.setData({
+          userList: list,
+          all_user_list: list
+        })
+      })
+    },
+    //获取部门列表
+    getBmData(dept_id) {
+      app.$get("api/department/tree", {}).then((res) => {
+        var list = res.data.data.list;
+        this.setData({
+          rule_tree: list,
+          all_rule_list: list
+        })
+      })
+    },
+  },
+});

+ 3 - 0
Component/selectSectionStaff/selectSectionStaff.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 155 - 0
Component/selectSectionStaff_tow/selectSectionStaff_tow.acss

@@ -0,0 +1,155 @@
+
+.all{
+  background-color: #fff;
+  height: 100%;
+  margin-top: 40rpx;
+  border-radius: 20rpx 20rpx 0 0; 
+  padding-top: 80rpx;
+  z-index:3
+}
+.close{
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  right: 30rpx;
+  top: 70rpx;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 6rpx;
+    width: 80%;
+    margin: 0 auto;
+    padding:6rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.content{
+    margin-top: 16rpx;
+    border-top: 1px solid #f1f1f1;
+    width: 100%;
+}
+.date-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.date-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.date-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+.data-main{
+  margin: 32rpx 0;
+  text-align: center;
+}
+
+.data-main .dateVal{
+  color: #26a2ff;
+  width: 200rpx;
+  padding: 16rpx 0;
+  border-bottom: 1px solid #26a2ff;
+  display: inline-block;
+}
+
+.ul2{
+  width: 100%;
+  background-color: #fff;
+  box-sizing: border-box;
+}
+.li{
+    padding:20rpx 24rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.ul2 .li .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 10rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+
+/* 人员 */
+.staff-ul{
+  width: 100%;
+  background-color: #fff;
+  box-sizing: border-box;
+  height: calc(100vh - 390rpx);
+}
+.userItem{
+    padding:14rpx 32rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.staff-ul .userItem .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 14rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 10rpx;
+    margin: 0 32rpx;
+    padding:8rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+    font-size: 26rpx;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.StaffFooter{
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: #fff;
+  padding: 10rpx;
+  border-top: 1px solid #f1f1f1;
+}
+
+.staffBtn{
+    background: #26A2FF;
+    color: #fff;
+    border-radius: 6rpx;
+    height: 88rpx;
+    text-align: center;
+    line-height: 88rpx;
+    padding: 0 20rpx;
+}
+.f-left{
+  overflow-x: auto;
+}
+.rule-all-text{
+  font-size: 24rpx;
+  color: #999;
+  position: relative;
+  right: 10rpx;
+  bottom: 5rpx;
+}
+.staff-all{
+  background: rgba(245, 247, 250, 1);
+  padding: 16rpx 32rpx;
+}

+ 55 - 0
Component/selectSectionStaff_tow/selectSectionStaff_tow.axml

@@ -0,0 +1,55 @@
+<view class="all">
+  <image mode="scaleToFill" catchTap="onClose" class="close" src="../../../image/close.png"/>
+  <view class="search flex-box flex-v-ce">
+    <image mode="scaleToFill" src="../../../image/ss.png"/>
+    <input placeholder="请输入姓名搜索" onInput="bindKeyInput"/>
+  </view>
+  <view class="content">
+    <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+      <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+        <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>{{item.name}}
+      </view>
+    </view>
+    <scroll-view class="staff-ul" scroll-y="{{true}}" style="{{terr.length>1? 'height: calc(100vh - 390rpx);':'height: calc(100vh - 320rpx);'}}">
+      <block a:if="{{isItem}}">
+        <view class="ul2">
+          <view class="flex-box flex-v-ce li" a:for="{{rule_tree}}">
+            <view class="flex-box flex-v-ce flex-1" data-item="{{item}}" catchTap="changeSection">
+              <image mode="scaleToFill" style="width:50rpx;height:50rpx; margin:0 10rpx;" src="../../../image/BM.png"/> {{item.name}}
+            </view>
+            <view class="xia" a:if="{{item._child.length>0}}" data-item="{{item}}" catchTap="openDown">| 下级</view>
+          </view>
+        </view>
+        <radio-group class="radio-group" onChange="radioChange">
+          <view class="flex-box flex-v-ce userItem" a:for="{{userList}}">
+            <label class="flex-box flex-v-ce flex-1">
+              <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+              <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+              <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+              <radio value="{{item}}" checked="{{item.checked}}"/>
+            </label>
+          </view>
+        </radio-group>
+      </block>
+      <radio-group class="radio-group" onChange="radioChange" a:else>
+        <view class="flex-box flex-v-ce userItem" a:for="{{searchVal}}">
+          <label class="flex-box flex-v-ce flex-1">
+            <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+            <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+            <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+            <radio value="{{item}}" checked="{{item.checked}}"/>
+          </label>
+        </view>
+      </radio-group>
+    </scroll-view>
+  </view>
+  <view class="StaffFooter flex-box flex-v-ce">
+    <view class="flex-1 f-left flex-box flex-v-ce">
+      <view a:for="{{selectUserId}}" style="margin-right:10rpx;">
+        <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;display: inline-block;" src="{{item.img_url}}"/>
+        <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+      </view>
+    </view>
+    <view class="staffBtn" onTap="onConfirm">确定</view>
+  </view>
+</view>

+ 162 - 0
Component/selectSectionStaff_tow/selectSectionStaff_tow.js

@@ -0,0 +1,162 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    userList: [],//人员集合
+    all_user_list: [],//人员集合
+    isShow: false,
+    showId: 0,//显示的部门ID下员工
+    terr: [
+      { name: '全部', id: 0 }
+    ],
+    all_rule_list: [],
+    rule_tree: [],
+    selectUserId: [],
+    isAllChecked: false,
+    isItem: true,
+    searchVal: '',
+  },
+  props: {
+    onClose: (data) => console.log(data),
+    onConfirm: (data) => console.log(data),
+    selectUser: [],
+    isAllSelect: true,//是否多选
+  },
+  didMount() {
+    that = this;
+    // this.setData({
+    //   selectUserId: this.props.selectUser,
+    // })
+    this.getData(0);
+    this.getBmData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    onConfirm() {
+      this.props.onConfirm(this.data.selectUserId);
+      this.onClose();
+    },
+    //搜索
+    bindKeyInput(e) {
+      var userList = this.data.userList;
+      var items = userList.filter((item) => {
+        return item.name.indexOf(e.detail.value) >= 0
+      });
+      this.setData({
+        searchVal: items,
+        isItem: e.detail.value ? false : true
+      })
+
+    },
+    changeSection(e) {
+      var item = e.target.dataset.item;
+      var terr = this.data.terr;
+      terr.push(item);
+      console.log(item);
+      if (item._child.length > 0) {
+        that.setData({
+          rule_tree: item._child,
+          terr: terr,
+          isAllChecked: false
+        })
+      } else {
+        that.setData({
+          rule_tree: [],
+          terr: terr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    //点击导航栏
+    activeItem(e) {
+      var item = e.target.dataset.item;
+      var index = e.target.dataset.index;
+      var terr = this.data.terr;
+      if ((index + 1) == terr.length) { return false };
+
+      this.setData({ rule_tree: [],userList:[],all_user_list:[] });
+      if (index == 0) {
+        this.setData({
+          terr: [{ name: '全部', id: 0 }],
+          rule_tree: this.data.all_rule_list,
+          isAllChecked: false
+        })
+      } else {
+        var arr = terr.slice(0, index + 1);
+        this.setData({
+          rule_tree: item._child,
+          terr: arr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    // 点击下一级
+    openDown(e) {
+      this.setData({ rule_tree: [] });
+      var item = e.target.dataset.item;
+      var terr = this.data.terr;
+      terr.push(item);
+      if (item._child.length > 0) {
+        that.setData({
+          rule_tree: item._child,
+          terr: terr,
+          isAllChecked: false
+        })
+      }
+      this.getData(item.id);
+    },
+    getArrDifference(arr1, arr2) {
+      var obj = {};
+      arr1.concat(arr2).forEach(function (v, i, arr) {
+        obj[v.id] = v;
+      });
+      return obj;
+    },
+    //单选择
+    radioChange: function (e) {
+
+      this.setData({
+        selectUserId: [e.detail.value]
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    },
+    //获取人员列表
+    getData(dept_id) {
+      app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
+        var list = res.data.data.list;
+        var selectUserId = this.data.selectUserId;
+        list.map((item) => {
+          item.checked = false;
+          if (selectUserId.length > 0) {
+            selectUserId.forEach(item2 => {
+              if (item.id == item2.id) {
+                item.checked = true;
+              }
+            })
+          }
+        })
+        this.setData({
+          userList: list,
+          all_user_list: list
+        })
+      })
+    },
+    //获取部门列表
+    getBmData(dept_id) {
+      app.$get("api/department/tree", {}).then((res) => {
+        var list = res.data.data.list;
+        this.setData({
+          rule_tree: list,
+          all_rule_list: list
+        })
+      })
+    },
+  },
+});

+ 3 - 0
Component/selectSectionStaff_tow/selectSectionStaff_tow.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 75 - 0
Component/selectStaff/selectStaff.acss

@@ -0,0 +1,75 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.staff-header{
+  background-color: #fff;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+  margin-top: 0rpx;
+  transform: translateY(-100%);
+}
+
+.staff-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.staff-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.staff-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+
+.staff-ul{
+  width: 100%;
+  background-color: #fff;
+  height: 700rpx;
+  box-sizing: border-box;
+  margin-top: 28rpx;
+  border-top: 1px solid #f1f1f1;
+}
+.userItem{
+    padding:10rpx 32rpx;
+    border-bottom: 1px solid #f1f1f1;
+}
+.staff-ul .userItem .xia{
+  color: #26A2FF !important;
+}
+.shu{
+  padding: 14rpx 24rpx;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  border-bottom: 1px solid #f1f1f1;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 10rpx;
+    margin: 0 32rpx;
+    padding:8rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.selectUsers{
+  padding: 10rpx;
+  border-top: 1px solid #f1f1f1;
+  overflow-y:auto;
+  width: 100%;
+}

+ 31 - 0
Component/selectStaff/selectStaff.axml

@@ -0,0 +1,31 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="staff-header {{isShow?'showPop':''}}">
+    <view class="search flex-box flex-v-ce">
+      <image mode="scaleToFill" src="../../../image/ss.png"/>
+      <input placeholder="请输入姓名搜索" onInput="bindKeyInput"/>
+    </view>
+    <scroll-view class="staff-ul" scroll-y="{{true}}">
+      <checkbox-group class="radio-group" onChange="radioChange">
+        <view class="flex-box flex-v-ce userItem" a:for="{{userList}}">
+          <label class="flex-box flex-v-ce flex-1">
+            <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+            <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+            <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+            <checkbox value="{{item}}" checked="{{item.checked}}" name="{{item.id}}"/>
+          </label>
+        </view>
+      </checkbox-group>
+    </scroll-view>
+    <view class="flex-box flex-v-ce selectUsers" a:if="{{selectUserId.length>0}}">
+      <view a:for="{{selectUserId}}" style="margin-right:10rpx;height:70rpx;">
+        <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+        <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+      </view>
+    </view>
+    <view class="flex-box date-btn">
+        <view class="flex-1" catchTap="onClose">取消</view>
+        <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 65 - 0
Component/selectStaff/selectStaff.js

@@ -0,0 +1,65 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    all_user_list: {},
+    isShow: false,
+  },
+  props: {
+    onConfirm: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+  },
+  didMount() {
+    that = this;
+    this.setData({ isShow: this.props.isShow })
+    this.getData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    //搜索
+    bindKeyInput(e) {
+      if (e.detail.value) {
+        var all_user_list = this.data.all_user_list;
+        var items = all_user_list.filter((item) => {
+          return item.name.indexOf(e.detail.value) >= 0
+        });
+        this.setData({ userList: items });
+      } else {
+        this.setData({ userList: this.data.all_user_list });
+      }
+    },
+    onConfirm() {
+      this.props.onConfirm(this.data.selectUserId);
+      this.props.onClose();
+    },
+    radioChange: function (e) {
+      if (e.detail.value) {
+        var arr = e.detail.value;
+        // var selectUserId=arr.map((item)=>{
+        //   return item.id;
+        // })
+        this.setData({
+          selectUserId: e.detail.value
+        })
+      } else {
+        this.setData({
+          selectUserId:[]
+        })
+      }
+    },
+    getData(keywords) {
+      app.$get("api/employee/list", { dept_id: 0, keywords: keywords }).then((res) => {
+        this.setData({
+          userList: res.data.data.list,
+          all_user_list: res.data.data.list
+        })
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    }
+  },
+});

+ 3 - 0
Component/selectStaff/selectStaff.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 66 - 0
Component/selectSx/selectSx.acss

@@ -0,0 +1,66 @@
+.all-date{
+  overflow: hidden;
+  height: 100vh;
+  position: fixed;
+  left: 0;
+  right:0;
+  top:80rpx;
+  z-index: 5;
+  background-color: rgba(0,0,0,.7);
+}
+.staff-header{
+  background-color: #fff;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+  margin-top: 0rpx;
+  transform: translateY(-100%);
+}
+
+.staff-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.staff-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.staff-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+
+.sx-ul{
+  width: 100%;
+  background-color: #fff;
+  height: 400rpx;
+  box-sizing: border-box;
+}
+.rule-title{
+  margin-bottom: 20rpx;
+  padding:0 28rpx;
+}
+.rule-item{
+  margin-bottom: 20rpx;
+}
+.ruleGe{
+  background: #f5f7fa;
+  padding: 16rpx;
+  font-size: 24rpx;
+  width: 22%;
+  text-align: center;
+  box-sizing: border-box;
+  margin: 0rpx  1.5%  20rpx 1.5%;
+}
+.rule-all-text{
+  font-size: 24rpx;
+  color: #999;
+  position: relative;
+  right: 10rpx;
+  bottom: 5rpx;
+}
+.rule-items{
+  padding: 0 14rpx;
+}
+.ruleActive{
+    color: #26a2ff!important;
+    background: #26a2ff33!important;
+}

+ 20 - 0
Component/selectSx/selectSx.axml

@@ -0,0 +1,20 @@
+<view class="all-date">
+  <view class="data-tier" catchTap="onClose"></view>
+  <view class="staff-header {{isShow?'showPop':''}}">
+    <scroll-view class="sx-ul" scroll-y="{{true}}">
+      <view a:for="{{sxArr}}" class="rule-item">
+        <view class="flex-box flex-v-ce rule-title">
+          <view class="flex-1">{{item.name}}</view>
+        </view>
+        <view class="flex-box flex-d-wrap rule-items" a:if="{{item.child.length>0}}">
+          <view catchTap="ruleActive" data-index="{{index}}" data-indexChild="{{idx}}" class="{{itemName.checked==true? 'ruleActive':''}} ruleGe font-flex-word" a:for="{{item.child}}" a:for-index="idx" a:for-item="itemName">{{itemName.name}}</view>
+        </view>
+        <view style="text-align: center;font-size:22rpx;" class="fontColorT" a:else>暂无相关规则</view>
+      </view>
+    </scroll-view>
+    <view class="flex-box staff-btn">
+      <view class="flex-1" catchTap="onClose">取消</view>
+      <view class="flex-1" catchTap="onConfirm">确定</view>
+    </view>
+  </view>
+</view>

+ 100 - 0
Component/selectSx/selectSx.js

@@ -0,0 +1,100 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    isShow: false,
+
+    sxArr: [
+      {
+        name: '人员',
+        child: [
+          { name: "全部", code: "all", checked: true },
+          { name: "管理者", code: "manager", checked: false },
+          { name: "员工", code: "employee", checked: false },
+        ],
+      },
+      {
+        name: '排序',
+        child: [
+          { name: "从高到低", code: "DESC", checked: true },
+          { name: "从低到高", code: "ASC", checked: false },
+        ],
+      }
+    ],
+    sxArr2: [
+      {
+        name: '人员',
+        child: [
+          { name: "全部", code: "all", checked: false },
+          { name: "管理者", code: "manager", checked: false },
+          { name: "员工", code: "employee", checked: false },
+        ],
+      },
+      {
+        name: '排序',
+        child: [
+          { name: "从高到低", code: "DESC", checked: false },
+          { name: "从低到高", code: "ASC", checked: false },
+        ],
+      }
+    ]
+  },
+  props: {
+    onConfirm: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+  },
+  didMount() {
+    that = this;
+    this.setData({ isShow: this.props.isShow })
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    //单
+    ruleActive(e) {
+      var index = e.target.dataset.index;
+      var sxArrItem = `sxArr[${index}].child`;
+      this.setData({
+        [sxArrItem]: this.data.sxArr2[index].child
+      })
+      var indexChild = e.target.dataset.indexChild;
+      var isChecked = this.data.sxArr[index].child[indexChild].checked;
+      var elem = `sxArr[${index}].child[${indexChild}].checked`;
+      this.setData({
+        [elem]: !isChecked
+      })
+    },
+    onConfirm() {
+      var sxArr = this.data.sxArr;
+      var arr = [];
+      sxArr.forEach(item => {
+        if (item.child.length > 0) {
+          item.child.forEach((a) => {
+            if (a.checked == true) {
+              arr.push(a.code);
+            }
+          })
+        }
+      });
+      this.props.onConfirm(arr);
+      this.props.onClose();
+    },
+    radioChange: function (e) {
+      if (e.detail.value) {
+        var arr = e.detail.value;
+        this.setData({
+          selectUserId: e.detail.value
+        })
+      } else {
+        this.setData({
+          selectUserId: []
+        })
+      }
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    },
+  },
+});

+ 3 - 0
Component/selectSx/selectSx.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 68 - 0
Component/selectType/selectType.acss

@@ -0,0 +1,68 @@
+.all2 {
+  background-color: #fff;
+  height: 100%;
+  margin-top: 40rpx;
+  border-radius: 20rpx 20rpx 0 0;
+  padding-top: 80rpx;
+  z-index: 999
+}
+
+.close {
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  right: 30rpx;
+  top: 70rpx;
+}
+
+.search {
+  background-color: #f1f1f1;
+  border-radius: 6rpx;
+  width: 80%;
+  margin: 0 auto;
+  padding: 6rpx 10rpx;
+}
+
+.search input {
+  background-color: #f1f1f1;
+}
+
+.search image {
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+
+.content2 {
+  margin-top: 16rpx;
+  border-top: 1px solid #f1f1f1;
+  background: #f1f1f1;
+  height: calc(100vh - 212rpx);
+}
+
+.ul {
+  width: 100%;
+  background-color: #fff;
+  height: 100%;
+}
+
+.li {
+  padding: 24rpx;
+  border-bottom: 1px solid #f1f1f1;
+}
+
+.ul .li .xia {
+  color: #26A2FF !important;
+}
+
+.shu {
+  padding: 14rpx 24rpx;
+  background: #fff;
+  margin-bottom: 20rpx;
+  font-size: 24rpx;
+  color: #26A2FF;
+}
+
+.shu view:last-child {
+  color: #ccc;
+}

+ 22 - 6
Component/selectType/selectType.axml

@@ -1,7 +1,23 @@
-<view class="all">
-   <view class="header flex-box flex-v-ce">
-      <view catchTap="plusOne" class="close">关闭</view>
-      <view class="flex-1"></view>
-      <view class="confirm">确定</view>
-  </view>
+<view class="all2">
+   <image mode="scaleToFill" catchTap="plusOne" class="close" src="../../../image/close.png"/>
+   <view class="search flex-box flex-v-ce">
+      <image mode="scaleToFill" src="../../../image/ss.png"/>
+      <input placeholder="请输入搜索关键字" onInput="bindKeyInput"/>
+   </view>
+   <view class="content2">
+      <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+        <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+            <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>
+            {{item.name}}
+        </view>
+      </view>
+      <scroll-view class="ul" scroll-y="{{true}}">
+         <radio-group class="radio-group" onChange="radioChange">
+            <view class="flex-box flex-v-ce li" a:for="{{rule_tree}}">
+               <label class="flex-box flex-v-ce flex-1"><radio value="{{item}}"  checked="{{item.checked}}" name="{{item.id}}"/><image mode="scaleToFill" style="width:60rpx;height:60rpx; margin:0 10rpx;" src="../../../image/e66f.jpg"/> {{item.name}}</label>
+               <view class="xia" data-item="{{item}}" catchTap="openDown" a:if="{{item.child.length>0}}">| 下级</view>
+            </view>
+         </radio-group>
+      </scroll-view>
+   </view>
 </view>

+ 75 - 10
Component/selectType/selectType.js

@@ -1,25 +1,90 @@
 var app = getApp()
+var that;
 Component({
   mixins: [],
-  data: {},
+  data: {
+    all_rule_list: {},
+    rule_tree: {},
+    terr:[
+      {name: '全部', id:0}
+    ],
+
+  },
   props: {
-    onCloseAnimation: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+    onConfirm:(data) => console.log(data),
+    isGzType:''
   },
   didMount() {
+    that = this;
     this.getData();
   },
-  didUpdate() {},
-  didUnmount() {},
+  didUpdate() { },
+  didUnmount() { },
   methods: {
-    getData(){
-        app.$get("api/integral/rule/trees",{pt_id:3},(res)=>{
-            console.log(res);
+    //点击导航栏
+    activeItem(e){
+       this.setData({ rule_tree:[]});
+       var item=e.target.dataset.item;
+       var index=e.target.dataset.index;
+       var terr=this.data.terr;
+      if((index+1)==terr.length){return false};
+      if(index==0){
+        this.setData({
+          terr:[{name: '全部', id:0}],
+          rule_tree:this.data.all_rule_list
+        })
+      }else{
+        var arr=terr.slice(0,index+1);
+        console.log(arr);
+        this.setData({
+          rule_tree:item.child,
+          terr:arr
+        })
+      }
+    },
+    // 点击下一级
+    openDown(e){
+      this.setData({ rule_tree:[]});
+       var item=e.target.dataset.item;
+       var terr=this.data.terr;
+       terr.push(item);
+       if(item.child.length>0){
+        that.setData({
+          rule_tree:item.child,
+          terr:terr
+        })
+       }
+    },
+    radioChange: function(e) {
+      this.props.onConfirm(e.detail.value);
+      this.plusOne();
+    },
+    recursion(data){
+          for(var i=0;i<data.length;i++){
+               data[i].checked=false;
+              if(data[i].child.length>0){
+                 this.recursion(data[i].child);
+              }
+          }
+          return data;
+    },
+    getData() {
+      var pt_id
+      if(that.props.isGzType){
+          pt_id=app.getTypesItem(that.props.isGzType).id;
+      }
+      app.$get("api/integral/rule/trees", { pt_id:pt_id }).then((res)=>{
+        var rule_tree = res.data.data.rule_tree
+        that.setData({
+          rule_tree:rule_tree,
+          all_rule_list:rule_tree
         })
+      })
     },
     //关闭
-    plusOne(e){
-       console.log("2222");
-      this.props.onCloseAnimation();
+    plusOne(e) {
+      this.props.onClose();
     },
   },
 });

+ 71 - 0
Component/selectUser/selectUser.acss

@@ -0,0 +1,71 @@
+.all-date{
+  background-color: #fff;
+  height: 100%;
+  margin-top: 40rpx;
+  border-radius: 20rpx 20rpx 0 0; 
+  padding-top: 80rpx;
+  z-index: 999
+}
+.staff-header{
+  background-color: #fff;
+  box-shadow:inset 0px 0px 5px #ccc;
+  padding-top: 28rpx;
+  margin-top: 0rpx;
+  transform: translateY(-100%);
+}
+
+.staff-btn view{
+  text-align: center;
+  padding: 20rpx 0;
+}
+.staff-btn view:nth-child(1){
+  background-color: #f1f1f1;
+}
+.staff-btn view:nth-child(2){
+  background-color: #26a2ff;
+  color: #fff;
+}
+
+.sx-ul{
+  width: 100%;
+  background-color: #fff;
+  height: 400rpx;
+  box-sizing: border-box;
+}
+.rule-title{
+  margin-bottom: 20rpx;
+  padding:0 28rpx;
+}
+.rule-item{
+  margin-bottom: 20rpx;
+}
+.ruleGe{
+  background: #f5f7fa;
+  padding: 16rpx;
+  font-size: 24rpx;
+  width: 22%;
+  text-align: center;
+  box-sizing: border-box;
+  margin: 0rpx  1.5%  20rpx 1.5%;
+}
+.rule-all-text{
+  font-size: 24rpx;
+  color: #999;
+  position: relative;
+  right: 10rpx;
+  bottom: 5rpx;
+}
+.rule-items{
+  padding: 0 14rpx;
+}
+.ruleActive{
+    color: #26a2ff!important;
+    background: #26a2ff33!important;
+}
+.close{
+  width: 40rpx;
+  height: 40rpx;
+  position: absolute;
+  right: 30rpx;
+  top: 70rpx;
+}

+ 27 - 0
Component/selectUser/selectUser.axml

@@ -0,0 +1,27 @@
+<view class="all-date">
+  <image mode="scaleToFill" catchTap="plusOne" class="close" src="../../../image/close.png"/>
+  <view>
+    <view class="search flex-box flex-v-ce">
+      <image mode="scaleToFill" src="../../../image/ss.png"/>
+      <input placeholder="请输入姓名搜索" onInput="bindKeyInput"/>
+    </view>
+    <scroll-view class="staff-ul" scroll-y="{{true}}">
+      <checkbox-group class="radio-group" onChange="radioChange">
+        <view class="flex-box flex-v-ce userItem" a:for="{{userList}}">
+          <label class="flex-box flex-v-ce flex-1">
+            <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+            <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+            <text style="margin-left:20rpx;" class="flex-1">{{item.name}}</text>
+            <checkbox value="{{item}}" checked="{{item.checked}}" name="{{item.id}}"/>
+          </label>
+        </view>
+      </checkbox-group>
+    </scroll-view>
+    <view class="flex-box flex-v-ce selectUsers font-flex-word">
+      <view a:for="{{selectUserId}}" style="margin-right:10rpx;">
+        <image a:if="{{item.img_url}}" class="img-url" style="width:70rpx;height:70rpx;" src="{{item.img_url}}"/>
+        <view a:else style="width: 70rpx;height: 70rpx;border-radius: 100%;background: #26A2FF;color: #fff;text-align: center;line-height: 64rpx;font-size: 24rpx;">{{item.name}}</view>
+      </view>
+    </view>
+  </view>
+</view>

+ 63 - 0
Component/selectUser/selectUser.js

@@ -0,0 +1,63 @@
+var app = getApp()
+var that;
+Component({
+  mixins: [],
+  data: {
+    all_user_list: {},
+    isShow: false,
+  },
+  props: {
+    onConfirm: (data) => console.log(data),
+    onClose: (data) => console.log(data),
+  },
+  didMount() {
+    that = this;
+    this.setData({ isShow: this.props.isShow })
+    this.getData();
+  },
+  didUpdate() { },
+  didUnmount() { },
+  methods: {
+    //搜索
+    bindKeyInput(e) {
+      if (e.detail.value) {
+        var all_user_list = this.data.all_user_list;
+        var items = all_user_list.filter((item) => {
+          return item.name.indexOf(e.detail.value) >= 0
+        });
+        this.setData({ userList: items });
+      } else {
+        this.setData({ userList: this.data.all_user_list });
+      }
+
+    },
+    onConfirm() {
+      this.props.onConfirm(this.data.selectUserId);
+      this.props.onClose();
+    },
+    radioChange: function (e) {
+      if (e.detail.value) {
+        var arr = e.detail.value;
+        this.setData({
+          selectUserId: e.detail.value
+        })
+      } else {
+        this.setData({
+          selectUserId:[]
+        })
+      }
+    },
+    getData(keywords) {
+      app.$get("api/employee/list", { dept_id: 0, keywords: keywords }).then((res) => {
+        this.setData({
+          userList: res.data.data.list,
+          all_user_list: res.data.data.list
+        })
+      })
+    },
+    //关闭
+    onClose(e) {
+      this.props.onClose();
+    }
+  },
+});

+ 3 - 0
Component/selectUser/selectUser.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 345 - 177
app.acss

@@ -1,184 +1,352 @@
-	page{
-    color: #333;
-    font-size: 28rpx;
-    background:rgba(245,247,250,1);
-    height: 100%;
-    width: 100%;
-  }
-  view,text{
-     line-height:40rpx;
-  }
-  .blue{
-		color: #26A2FF;
+	page {
+		color: #303133;
+		font-size: 28rpx;
+		background: rgba(245, 247, 250, 1);
+		height: 100%;
+		width: 100%;
+	}
+
+	view, text {
+		line-height: 40rpx;
+	}
+
+	.blue {
+		color: #26A2FF!important;
+	}
+
+	.red {
+		color: #F56C6C!important;
 	}
-	.red{
+
+	.yellow {
+		color: #E6A23C!important;
+	}
+
+	.green {
+		color: #67C23A!important;
+	}
+
+	.fontColorZ {
+		color: #303133!important;
+	}
+
+	.fontColorF {
+		color: #909399 !important;
+	}
+
+	.fontColorT {
+		color: #C0C4CC!important;
+	}
+
+	/* 搜索框 */
+
+	.search {
+		background-color: #f1f1f1;
+		border-radius: 10rpx;
+		width: 90%;
+		margin: 0 auto;
+		padding: 6rpx 10rpx;
+	}
+
+	.search input {
+		background-color: #f1f1f1;
+		font-size: 28rpx !important;
+	}
+
+	.search image {
+		width: 30rpx;
+		height: 30rpx;
+		margin-left: 10rpx;
+	}
+
+	/* 弹窗相关 */
+
+	.data-tier {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		height: 80rpx;
+	}
+
+	.animationBox {
+		position: fixed;
+		left: 0;
+		right: 0;
+		top: 0;
+		overflow: hidden;
+		z-index: 3;
+		transform: translate(0, -100%);
+	}
+
+	.tab {
+		background: #fff;
+		text-align: center;
+		z-index: 4;
+		position: sticky;
+		top: 0;
+	}
+
+	.tab view {
+		padding: 20rpx 0;
+		width: 25%;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.tab view text {
+		position: relative;
+	}
+
+	.tab text::after {
+		position: absolute;
+		top: 50%;
+		right: -20rpx;
+		margin-top: -0.1rem;
+		border: 0.06rem solid;
+		border-color: transparent transparent #dcdee0 #dcdee0;
+		-webkit-transform: rotate(-45deg);
+		transform: rotate(-45deg);
+		opacity: .8;
+		content: '';
+	}
+
+	.tab .activeView::after {
+		margin-top: -0.02rem;
+		-webkit-transform: rotate(135deg);
+		transform: rotate(135deg);
+		border-color: transparent transparent #26a2ff #26a2ff;
+	}
+
+	.windows {
+		position: fixed;
+		top: 0px;
+		left: 0px;
+		right: 0px;
+		bottom: 0px;
+		background: rgba(0, 0, 0, 0.2);
+		z-index: 999;
+	}
+
+	/* 弹窗过程 */
+
+	.showPop {
+		animation: showLayer 0.2s linear both;
+	}
+
+	@keyframes showLayer {
+		0% {
+			transform: translateY(-100%);
+		}
+		100% {
+			transform: translateY(0%);
+		}
+	}
+
+	/* 带字体背景颜色 */
+
+	.redBox {
+		border-radius: 6rpx;
+		background: rgba(245, 108, 108, 0.1);
 		color: #F56C6C;
+		font-size: 20rpx;
+		padding: 0 6rpx;
+	}
+
+	.greenBox {
+		border-radius: 6rpx;
+		background: rgba(103, 194, 58, 0.1);
+		color: #67C23A;
+		font-size: 20rpx;
+		padding: 0 6rpx;
 	}
-	.yellow{
+
+	.yellowBox {
+		border-radius: 6rpx;
+		background: rgba(230, 162, 60, 0.1);
 		color: #E6A23C;
+		font-size: 20rpx;
+		padding: 0 6rpx;
 	}
-	.green{
-		color: #67C23A;
+
+	.blueBox {
+		border-radius: 6rpx;
+		background: rgba(238, 162, 255, 0.1);
+		color: #26A2FF;
+		font-size: 20rpx;
+		padding: 0 6rpx;
 	}
-	.fontColorZ{
-		color: #303133;
+
+	.margin-bottom {
+		margin-bottom: 24rpx;
+	}
+
+	.margin-top {
+		margin-top: 24rpx;
+	}
+
+	.defBtn {
+		background: #26A2FF;
+		color: #fff;
+	}
+
+	.border-bottom {
+		border-bottom: 1px solid #f1f1f1;
+	}
+
+	.text-right {
+		text-align: right;
+	}
+
+	.text-left {
+		text-align: left;
+	}
+
+	/* 盒子模型 */
+
+	.flex-box {
+		display: -webkit-box;
+		display: -moz-box;
+		display: -ms-flexbox;
+		display: -webkit-flex;
+		display: flex;
+	}
+
+	/*盒子模型,竖向自适应,垂直排列  */
+
+	.flex-box-v {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-flex-flow: column;
+		flex-flow: column !important;
+	}
+
+	/* 水平等列排版(容器左右没缝隙,子元素左右两边自适应) */
+
+	.flex-d-center {
+		justify-content: space-between;
+		-webkit-justify-content: space-between;
+	}
+
+	/* 水平等列排版(子元素两边有缝隙自己适应) */
+
+	.flex-dv-center {
+		justify-content: space-around;
+		-webkit-justify-content: space-around;
+	}
+
+	/*通过一起使用 box-align 和 box-pack 属性,对 view 框的子元素进行居中,目前没有浏览器支持box-align 和 box-pack 属性,所以需要加上浏览器内核-webkit,-moz等的简写  */
+
+	.flex-center-center {
+		justify-content: center;
+		-webkit-justify-content: center;
+		-moz-justify-content: center;
+		align-items: center;
+		-webkit-align-items: center;
+		-webkit-box-pack: center;
+		-webkit-box-align: center;
+		-moz-align-items: center;
+		-moz-box-pack: center;
+		-moz-box-align: center;
+	}
+
+	/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box水平;flex-box-v垂直)  */
+
+	.flex-v-zhu, .flex-h-zhu {
+		justify-content: center;
+		-webkit-justify-content: center;
+		-webkit-box-pack: center;
+	}
+
+	/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box垂直;flex-box-v水平)  */
+
+	.flex-v-ce, .flex-h-ce {
+		align-items: center;
+		-webkit-align-items: center;
+		-webkit-box-align: center;
+	}
+
+	/*让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容:  */
+
+	.flex-1 {
+		-webkit-box-flex: 1;
+		-moz-box-flex: 1;
+		-webkit-flex: 1;
+		-ms-flex: 1;
+		flex: 1;
+	}
+
+	.flex-2 {
+		-webkit-box-flex: 2;
+		box-flex: 2;
+		-moz-box-flex: 2;
+		-webkit-flex: 2;
+		-ms-flex: 2;
+		flex: 2;
+	}
+
+	.flex-3 {
+		-webkit-box-flex: 3;
+		box-flex: 3;
+		-moz-box-flex: 3;
+		-webkit-flex: 3;
+		-ms-flex: 3;
+		flex: 3;
+	}
+
+	.flex-4 {
+		-webkit-box-flex: 4;
+		box-flex: 4;
+		-moz-box-flex: 4;
+		-webkit-flex: 4;
+		-ms-flex: 4;
+		flex: 4;
+	}
+
+	.flex-5 {
+		-webkit-box-flex: 5;
+		box-flex: 5;
+		-moz-box-flex: 5;
+		-webkit-flex: 5;
+		-ms-flex: 5;
+		flex: 5;
+	}
+
+	.flex-direction-row-reverse {
+		flex-direction: row-reverse;
+		-webkit-flex-direction: row-reverse;
+	}
+
+	/*超出部分用....表示的公用样式  */
+
+	.font-flex-word {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	/* 内容超出部分自动换行 */
+
+	.flex-d-wrap {
+		flex-wrap: wrap;
 	}
-	.fontColorF{
-		color: #909399;
-	}
-	.fontColorT{
-		color: #C0C4CC;
-	}
-
-  .margin-bottom{
-    margin-bottom: 28rpx;
-  }
-  .margin-top{
-     margin-top: 28rpx;
-  } 
-  .defBtn{
-    background: #26A2FF;
-    color: #fff;
-  }
-
-
-
-/* 盒子模型 */
-.flex-box {
-  display: -webkit-box;
-  display: -moz-box;
-  display: -ms-flexbox;
-  display: -webkit-flex;
-  display: flex;
-}
-
-/*盒子模型,竖向自适应,垂直排列  */
-.flex-box-v {
-  display: -webkit-box;
-  display: -webkit-flex;
-  display: flex;
-  -webkit-box-orient: vertical;
-  -webkit-flex-flow: column;
-  flex-flow: column !important;
-}
-
-/* 水平等列排版(容器左右没缝隙,子元素左右两边自适应) */
-.flex-d-center {
-  justify-content: space-between;
-  -webkit-justify-content: space-between;
-}
-
-/* 水平等列排版(子元素两边有缝隙自己适应) */
-.flex-dv-center {
-  justify-content: space-around;
-  -webkit-justify-content: space-around;
-}
-
-
-/*通过一起使用 box-align 和 box-pack 属性,对 view 框的子元素进行居中,目前没有浏览器支持box-align 和 box-pack 属性,所以需要加上浏览器内核-webkit,-moz等的简写  */
-.flex-center-center {
-  justify-content: center;
-  -webkit-justify-content: center;
-  -moz-justify-content: center;
-  align-items: center;
-  -webkit-align-items: center;
-  -webkit-box-pack: center;
-  -webkit-box-align: center;
-  -moz-align-items: center;
-  -moz-box-pack: center;
-  -moz-box-align: center;
-}
-
-/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box水平;flex-box-v垂直)  */
-.flex-v-zhu,
-.flex-h-zhu {
-  justify-content: center;
-  -webkit-justify-content: center;
-  -webkit-box-pack: center;
-}
-
-/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box垂直;flex-box-v水平)  */
-.flex-v-ce,
-.flex-h-ce {
-  align-items: center;
-  -webkit-align-items: center;
-  -webkit-box-align: center;
-}
-
-/*让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容:  */
-.flex-1 {
-  -webkit-box-flex: 1;
-  -moz-box-flex: 1;
-  -webkit-flex: 1;
-  -ms-flex: 1;
-  flex: 1;
-}
-
-.flex-2 {
-  -webkit-box-flex: 2;
-  box-flex: 2;
-  -moz-box-flex: 2;
-  -webkit-flex: 2;
-  -ms-flex: 2;
-  flex: 2;
-}
-
-.flex-3 {
-  -webkit-box-flex: 3;
-  box-flex: 3;
-  -moz-box-flex: 3;
-  -webkit-flex: 3;
-  -ms-flex: 3;
-  flex: 3;
-}
-
-.flex-4 {
-  -webkit-box-flex: 4;
-  box-flex: 4;
-  -moz-box-flex: 4;
-  -webkit-flex: 4;
-  -ms-flex: 4;
-  flex: 4;
-}
-
-
-.flex-5 {
-  -webkit-box-flex: 5;
-  box-flex: 5;
-  -moz-box-flex: 5;
-  -webkit-flex: 5;
-  -ms-flex: 5;
-  flex: 5;
-}
-
-.flex-direction-row-reverse {
-  flex-direction: row-reverse;
-  -webkit-flex-direction: row-reverse;
-}
-
-/*超出部分用....表示的公用样式  */
-.font-flex-word {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-/* 内容超出部分自动换行 */
-.flex-d-wrap {
-  flex-wrap: wrap;
-}
-
-/* 内容超出部分不换行 */
-.flex-no-wrap {
-  flex-wrap: nowrap;
-}
-
-/* 从右边开始排列 */
-.flex-box-end {
-  display: -webkit-box;
-  display: -moz-box;
-  display: -ms-flexbox;
-  display: -webkit-flex;
-  display: flex;
-  justify-content: flex-end;
-}
+
+	/* 内容超出部分不换行 */
+
+	.flex-no-wrap {
+		flex-wrap: nowrap;
+	}
+
+	/* 从右边开始排列 */
+
+	.flex-box-end {
+		display: -webkit-box;
+		display: -moz-box;
+		display: -ms-flexbox;
+		display: -webkit-flex;
+		display: flex;
+		justify-content: flex-end;
+	}

+ 111 - 26
app.js

@@ -1,37 +1,122 @@
-import {showToast} from './utils/feedback'
-import {formatTime,arrRemoveObj} from './utils/util'
-import {post,get} from './utils/ajax'
+import { showToast } from './utils/feedback'
+import { formatTime, arrRemoveObj,getTypeItem } from './utils/util'
+
+const baseUrl = "https://test-ding.g107.com/";
+// const baseUrl = "https://new.gdy.g107.com/";
+var that;
 App({
   //自定义全局变量
-  globalData:{
-      showToast:showToast,//提示框
-      arrRemoveObj:arrRemoveObj,//删除数组的某一项
-      year:formatTime(new Date()).year,//当前年
-      month:formatTime(new Date()).month,//当前月
-      day:formatTime(new Date()).day,//当前日
+  globalData: {
+    showToast: showToast,//提示框
+    arrRemoveObj: arrRemoveObj,//删除数组的某一项
+    year: formatTime(new Date()).year,//当前年
+    month: formatTime(new Date()).month,//当前月
+    day: formatTime(new Date()).day,//当前日
+    types:[{id: 1, name: "绩效分", code: "JX"}, {id: 2, name: "A分", code: "AF"}, {id: 3, name: "B分", code: "BF"}],
+    // token: ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjAuNzkuNC4xNjI6NDkxNTJcL2FwaVwvZW1wbG95ZWUtbG9naW4iLCJpYXQiOjE1OTY0NDIyNjksImV4cCI6MTU5OTAzNDI2OSwibmJmIjoxNTk2NDQyMjY5LCJqdGkiOiJEdmhPTzNhNVgyaFVoa2h4Iiwic3ViIjo2MTYsInBydiI6ImNhNjQ4OWQ1MGYyNDA3YTY3ODMwZTgwOTBkMDE0ODgzNTY4NTk2MmIiLCJyb2xlIjoiZW1wbG95ZWUifQ.2nR9w7omCOcJyHFFoiQPvdhp3sKrQt2FQb0mJYQ9mWo',
+    // token:' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjAuNzkuNC4xNjI6NDkxNTJcL2FwaVwvZW1wbG95ZWUtbG9naW4iLCJpYXQiOjE1OTY2NzcxNzUsImV4cCI6MTU5OTI2OTE3NSwibmJmIjoxNTk2Njc3MTc1LCJqdGkiOiI3aHRwSG5CTmJ3bjJrOVZhIiwic3ViIjoxMjMwLCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.Kfu2D8S1mloqHfyiYPLKwzDh6QYGMHfuwpFqos6A60g',
+    userData: {},
+    token:' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC90ZXN0LWRpbmcuZzEwNy5jb21cL2FwaVwvdGVzdCIsImlhdCI6MTU5NzAyMDUyOCwiZXhwIjoxNTk3NjIwNTI4LCJuYmYiOjE1OTcwMjA1MjgsImp0aSI6Im1CbFhqemJuUm1sRlVxdkEiLCJzdWIiOjE2LCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.LNZmvfTE8rDfO4KQ1aONHMA0rT1ACsxbWOjDIOXVZJs',
+    ALIOSS_URL: 'https://integralsys.oss-cn-shenzhen.aliyuncs.com',
+    imgHttpUrl:'https://intesys.cms.g107.com/integral.php/Api/get_signature',
+  },
+  //获取积分类型
+  getTypes() {
+    this.$get("api/integral/types", {}).then((res) => {
+      this.globalData.types = res.data.data.list;
+    })
   },
   //封装post
-  $post(url,data,onSuccess,onFailed,onComplete){
-    post(url,data,onSuccess,onFailed,onComplete);
+  $post(url, data) {
+    const promise = new Promise(function (resolve, reject) {
+      dd.httpRequest({
+        url: baseUrl + url,
+        method: 'POST',
+        headers: {
+          'Content-Type': 'application/x-www-form-urlencoded',
+          'A-Token': that.globalData.token
+        },
+        data: data,
+        dataType: 'json',
+        success: function (res) {
+          if (res.data.code == 1) {
+            if (res.refresh_token && res.data.refresh_token != that.globalData.token) {
+              that.globalData.token = res.data.refresh_token
+            }
+            resolve(res);
+          } else if (res.data.code == 401) {
+            that.globalData.showToast("登录已过期");
+          } else {
+            that.globalData.showToast(res.data.msg);
+          }
+        },
+        fail: function (res) {
+          reject(res);
+        }
+      });
+    })
+    return promise;
   },
   //封装get
-  $get(url,data,onSuccess,onFailed,onComplete){
-    get(url,data,onSuccess,onFailed,onComplete);
+  $get(url, data,Accept) {
+    const promise = new Promise(function (resolve, reject) {
+      dd.showLoading();
+      dd.httpRequest({
+        url: baseUrl + url,
+        method: 'GET',
+        headers: {
+          'Content-Type': 'application/x-www-form-urlencoded',
+          'A-Token': that.globalData.token,
+          'Accept': Accept ? Accept:''
+        },
+        data: data,
+        dataType: 'json',
+        success: function (res) {
+          if (res.data.code == 1) {
+            if (res.data.refresh_token && res.data.refresh_token != that.globalData.token) {
+              that.globalData.token = res.data.refresh_token
+            }
+            resolve(res);
+            dd.hideLoading();
+          } else if (res.data.code == 401) {
+            that.globalData.showToast("登录已过期");
+            // reject(res);
+          } else {
+            that.globalData.showToast(res.data.msg)
+            // reject(res);
+          }
+        },
+        fail: function (res) {
+          reject(res);
+          dd.hideLoading();
+        },
+      });
+    })
+    return promise;
   },
-  onLaunch(options) {
+  //免登
+  login(corpId, callBack) {
     dd.getAuthCode({
-    success:function(res){
-      console.log(res);
-        /*{
-            authCode: 'hYLK98jkf0m' //string authCode
-        }*/
-    },
-    fail:function(err){
-    }
-});
-    // console.log(options.query.corpId);//企业ID
+      success: function (res) {
+        that.$post('api/ding/login', { authCode: res.authCode, corpId: corpId }).then(res => {
+          if (res.data.code == 1) {
+            var { token, user } = res.data.data;
+            // that.globalData.token = token;
+            that.globalData.userData = user;
+            callBack();
+          } else {
+            that.globalData.showToast(res.msg)
+          }
+        })
+      }
+    });
   },
-  onShow(options) {
-
+  getTypesItem(id){
+      return getTypeItem(this.globalData.types,id);
+  },
+  onLaunch(options) {
+    that = this;
+    that.getTypes();
+    that.globalData.corpId = options.query.corpId;
   },
 });

+ 28 - 3
app.json

@@ -5,11 +5,36 @@
     "pages/deploy/index/index",
     "pages/workbench/statistics_A/statistics_A",
     "pages/workbench/statistics_B/statistics_B",
-    "pages/workbench/jk_A/jk_A"
+    "pages/workbench/jk_A/jk_A",
+    "pages/workbench/jk_B/jk_B",
+    "pages/workbench/apply/apply",
+    "pages/workbench/prize_buckle/prize_buckle",
+    "pages/workbench/my_approve/my_approve",
+    "pages/workbench/approveDetail/approveDetail",
+    "pages/statistics/my_PrizeBuckle/my_PrizeBuckle",
+    "pages/statistics/prizeBuckleDetail/prizeBuckleDetail",
+    "pages/statistics/my_apply/my_apply",
+    "pages/statistics/applyDetail/applyDetail",
+    "pages/statistics/glz_execute/glz_execute",
+    "pages/statistics/check_top/check_top",
+    "pages/statistics/checkDetail/checkDetail",
+    "pages/statistics/integralEvent/integralEvent",
+    "pages/statistics/sectionRanking/sectionRanking",
+    "pages/statistics/B_ranking/B_ranking",
+    "pages/statistics/customRamking/customRamking",
+    "pages/statistics/addCustom/addCustom",
+    "pages/statistics/customDetail/customDetail",
+    "pages/deploy/organization/organization",
+    "pages/deploy/addMoney/addMoney",
+    "pages/deploy/setCheck/setCheck",
+    "pages/deploy/integralRule/integralRule",
+    "pages/workbench/approve/approve",
+    "pages/statistics/C_ranking/C_ranking"
   ],
   "window": {
-    "defaultTitle": "My App",
-    "titleBarColor": "#26A2FF"
+    "defaultTitle": "功道云",
+    "titleBarColor": "#26A2FF",
+    "pullRefresh": "false"
   },
   "tabBar": {
     "textColor": "#dddddd",










BIN
image/gs_logo.png





+ 17 - 0
pages/deploy/addMoney/addMoney.acss

@@ -0,0 +1,17 @@
+.footer{
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: #fff;
+  padding: 10rpx;
+  border-top: 1px solid #f1f1f1;
+}
+.footer view{
+  border-radius: 6rpx;
+  background: #26A2FF;
+  color: #fff;
+  height: 88rpx;
+  text-align: center;
+  line-height: 88rpx;
+}

+ 5 - 0
pages/deploy/addMoney/addMoney.axml

@@ -0,0 +1,5 @@
+<view>
+  <view class="footer">
+    <view>续费升级</view>
+  </view>
+</view>

+ 15 - 0
pages/deploy/addMoney/addMoney.js

@@ -0,0 +1,15 @@
+var app = getApp();
+var that;
+Page({
+  data: {},
+  onLoad(query) {
+    that = this;
+    dd.setNavigationBar({ title: "续费升级" });
+  },
+  //跳转
+  openView() {
+    dd.navigateTo({
+      url: ''
+    })
+  },
+});

+ 0 - 0
pages/index/index.json → pages/deploy/addMoney/addMoney.json


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

@@ -0,0 +1,51 @@
+.top {
+  width: 100%;
+  height: 70rpx;
+  background-color: #26A2FF;
+  margin-bottom: 94rpx;
+}
+.head{
+  position: absolute;
+  top: 0;
+  left: 32rpx;
+  right: 32rpx;
+  border-radius: 20rpx;
+  background-color: #fff;
+  box-shadow: 0rpx 0rpx 10rpx #ccc;
+  height: 140rpx;
+}
+.head .flex-box{
+  padding:0 28rpx;
+  height: 100%;
+}
+.name{
+  font-size: 30rpx;
+}
+.li{
+  background-color: #fff;
+}
+.img-left{
+  width: 40rpx;
+  height: 40rpx;
+  margin: 0 28rpx;
+}
+.img-right{
+  width: 24rpx;
+  height: 24rpx;
+  margin-right: 28rpx;
+}
+.li-right{
+  padding: 28rpx 0;
+}
+.date{
+  font-size: 22rpx;
+  color: #999
+}
+.xusj{
+  color: #fff;
+  background-color: #26A2FF;
+  border-radius: 6rpx;
+  margin-right: 28rpx;
+  font-size: 24rpx;
+  padding: 5rpx 10rpx; 
+}

+ 45 - 1
pages/deploy/index/index.axml

@@ -1,3 +1,47 @@
 <view>
-  New Page
+  <view class="head">
+    <view class="flex-box flex-center-center">
+      <view class="name flex-1 font-flex-word">
+        <view>{{userData.name}}</view>
+        <view class="fontColorF font-flex-word" style="font-size:24rpx;margin-top:10rpx;width:80%">{{userData.post}}</view>
+      </view>
+      <img-box name="{{userData.name}}" imgUrl="{{userData.img_url}}"  height="100rpx" width="100rpx"></img-box>
+    </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 li-right">
+          <view class="title flex-1">
+            <view>当前为试用版本</view>
+            <view class="date">还有<text class="red">15天</text>到期</view>
+          </view>
+          <view class="xusj" data-index="1" onTap="openView">续费升级</view>
+        </view>
+      </view>
+      <view class="flex-box flex-v-ce li margin-bottom" 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>
+      </view>
+      <view class="flex-box flex-v-ce li margin-bottom" 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>
+      </view>
+      <view class="flex-box flex-v-ce li" 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>
+  </view>
 </view>

+ 29 - 2
pages/deploy/index/index.js

@@ -1,4 +1,31 @@
+var app = getApp();
+var that;
 Page({
-  data: {},
-  onLoad() {},
+  data: {
+    userData:[]
+  },
+  onLoad(query) {
+    that = this;
+    dd.setNavigationBar({ title: "我的" });
+    this.setData({userData:app.globalData.userData});
+  },
+  //跳转
+  openView(e) {
+    var index = e.target.dataset.index-1;
+    var urls = [
+      { url: '../addMoney/addMoney', query: '' },
+      { url: '../organization/organization', query: '' },
+      { url: '../integralRule/integralRule', query: '' },
+      { url: '../setCheck/setCheck', query: '' },
+    ];
+    dd.navigateTo({
+      url: urls[index].url+'?'+urls[index].query
+    })
+  },
+  onReady() {
+    // 页面加载完成
+  },
+  onShow() {
+    // 页面显示
+  },
 });

+ 5 - 1
pages/deploy/index/index.json

@@ -1 +1,5 @@
-{}
+{
+  "usingComponents": {
+    "img-box": "/Component/img-box/index"
+  }
+}

+ 53 - 0
pages/deploy/integralRule/integralRule.acss

@@ -0,0 +1,53 @@
+.header{
+  background: #fff;
+  padding: 24rpx;
+  position: sticky;
+  top: 0;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 10rpx;
+    padding:8rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+    font-size: 26rpx;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.tree,.item-list{
+  background: #fff;
+}
+.tree-item{
+  padding:20rpx 28rpx;
+  border-bottom: 1px solid #f1f1f1; 
+}
+.main{
+  height: calc(100vh - 132rpx);
+} 
+.list-items{
+  padding:10rpx 28rpx;
+  border-bottom: 1px solid #f1f1f1; 
+}
+.remark{
+  font-weight: 600;
+  margin-bottom: 10rpx;
+  width: 100%;
+  word-break:break-all
+}
+.num{
+  font-size: 24rpx;
+}
+.shu{
+  padding:24rpx 0;
+  background: #fff;
+  font-size: 24rpx;
+  color: #26A2FF;
+  padding-bottom: 0rpx;
+}
+.shu view:last-child{
+  color: #ccc;
+}

+ 51 - 0
pages/deploy/integralRule/integralRule.axml

@@ -0,0 +1,51 @@
+<view>
+  <view class="header margin-bottom">
+    <view class="search flex-box flex-v-ce">
+      <image mode="scaleToFill" src="../../../image/ss.png"/>
+      <input placeholder="请输入规则内容" onInput="bindKeyInput"/>
+    </view>
+    <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+      <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+        <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>{{item.name}}
+      </view>
+    </view>
+  </view>
+  <scroll-view a:if="{{isItem}}" class="main" scroll-y="{{true}}" style="{{terr.length>1? 'height: calc(100vh - 206rpx)':'height: calc(100vh - 142rpx)'}}">
+    <view class="margin-bottom tree">
+      <view a:for="{{rule_tree}}" class="flex-box flex-v-ce tree-item" data-item="{{item}}" catchTap="activeTree">
+        <view class="rule-name flex-1">{{item.name}}</view>
+        <image mode="scaleToFill" src="../../../image/right.png" style="width:24rpx;height:24rpx;"/>
+      </view>
+    </view>
+    <view class="item-list">
+      <view a:for="{{item_list}}" class="list-items">
+        <view class="remark">{{item.remark}}</view>
+        <view class="flex-box flex-v-ce">
+          <view class="red num flex-1" a:if="{{item.min_point>0}}">+{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+            <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text>
+          </view>
+          <view class="green num flex-1" a:if="{{item.min_point<0}}">{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+            <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text>
+          </view>
+          <view class="item-type fontColorF num">{{item.typeName[0].name}}</view>
+        </view>
+      </view>
+    </view>
+  </scroll-view>
+  <scroll-view a:else class="main" scroll-y="{{true}}" style="height: calc(100vh - 142rpx)">
+    <view class="item-list">
+      <view a:for="{{selectItem}}" class="list-items">
+        <view class="remark">{{item.remark}}</view>
+        <view class="flex-box flex-v-ce">
+          <view class="red num flex-1" a:if="{{item.min_point>0}}">+{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+            <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text>
+          </view>
+          <view class="green num flex-1" a:if="{{item.min_point<0}}">{{(item.range_type == 1 ? item.min_point : item.min_point+'~'+item.max_point)}}
+            <text class="fontColorT" style="margin-left:10rpx">{{item.pt_Obj[0].name}}</text>
+          </view>
+          <view class="item-type fontColorF num">{{item.typeName[0].name}}</view>
+        </view>
+      </view>
+    </view>
+  </scroll-view>
+</view>

+ 108 - 0
pages/deploy/integralRule/integralRule.js

@@ -0,0 +1,108 @@
+var app = getApp();
+var that;
+Page({
+  data: {
+    allItems: [],
+    allTree:[],
+    item_list: {},
+    rule_tree: {},
+    types: '',
+    isItem: true,//判断是否显示左侧
+    selectItem: [],//选择的数据
+    terr: [
+      { name: '全部', id: 0 }
+    ],
+  },
+  onLoad(query) {
+    that = this;
+    dd.setNavigationBar({ title: "积分规则" });
+    this.setData({ types: app.globalData.types })
+    this.getData();
+  },
+  //搜索
+  bindKeyInput(e) {
+    var item_list = this.data.allItems;
+    var items = item_list.filter((item) => {
+      return item.remark.indexOf(e.detail.value) >= 0
+    });
+    this.setData({
+      selectItem: items,
+      isItem: e.detail.value ? false : true
+    })
+
+  },
+      //点击导航栏
+  activeItem(e) {
+    console.log(e);
+      var item = e.target.dataset.item;
+      var index = e.target.dataset.index;
+      var terr = this.data.terr;
+      if ((index + 1) == terr.length) { return false };
+      this.setData({ rule_tree: [] });
+      if (index == 0) {
+        this.setData({
+          terr: [{ name: '全部', id: 0 }],
+          rule_tree: this.data.allTree,
+          item_list:this.data.allItems
+        })
+      } else {
+        var arr = terr.slice(0, index + 1);
+        this.setData({
+          rule_tree: item.child,
+          terr: arr
+        })
+        this.getItem(item.id);
+      }
+
+    },
+  //点击一级
+  activeTree(e) {
+    console.log(e);
+    var item = e.target.dataset.item
+    var item_list = this.data.allItems;
+    var terr = this.data.terr;
+    terr.push(item)
+    this.setData({
+      rule_tree:item.child,
+      terr:terr
+    });
+    
+    this.getItem(item.id);
+  },
+  //从全部中过滤
+  getItem(id) {
+    var item_list = this.data.allItems;
+    var items = item_list.filter((item) => { return item.rule_id == id });
+    that.setData({
+      item_list: items,
+    })
+  },
+  getData() {
+    app.$get("api/integral/rule/trees", { pt_id: 3 }).then((res) => {
+      var item_list = res.data.data.item_list
+      var rule_tree = res.data.data.rule_tree
+      var list = []
+      for (let i in item_list) {
+        for (let k in item_list[i]) {
+          item_list[i][k].pt_Obj = this.data.types.filter((item) => {
+            return item_list[i][k].pt_id == item.id
+          })
+          item_list[i][k].typeName = rule_tree.filter((item) => {
+            return item_list[i][k].rule_id == item.id
+          })
+          list.push(item_list[i][k])
+        }
+      }
+      that.setData({
+        item_list: list,
+        rule_tree: rule_tree,
+        allItems: list,
+        allTree:rule_tree,
+      })
+      console.log(item_list)
+      console.log(rule_tree)
+    }, (err) => {
+
+    })
+  },
+});

+ 1 - 0
pages/deploy/integralRule/integralRule.json

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

+ 93 - 0
pages/deploy/organization/organization.acss

@@ -0,0 +1,93 @@
+.header{
+  background: #fff;
+  padding: 24rpx;
+  position: sticky;
+  top: 0;
+}
+.search{
+    background-color: #f1f1f1;
+    border-radius: 10rpx;
+    padding:8rpx 10rpx;
+}
+.search input{
+    background-color: #f1f1f1;
+    font-size: 26rpx;
+}
+.search image{
+  width: 30rpx;
+  height: 30rpx;
+  margin-left: 10rpx;
+}
+.li{
+  background-color: #fff;
+}
+.img-left{
+  margin: 0 28rpx;
+  background-color: rgba(38, 162, 255, 0.1);
+  padding: 10rpx;
+  border-radius: 50%;
+  width: 90rpx;
+  height: 90rpx;
+  text-align: center;
+  box-sizing: border-box;
+}
+.img-tx{
+ margin: 0 28rpx;
+}
+.img-left image{
+  width: 50rpx;
+  height: 50rpx;
+  position: relative;
+  top: 5rpx;
+}
+.img-right{
+  width: 24rpx;
+  height: 24rpx;
+  margin-right: 28rpx;
+}
+.li-right{
+  padding: 32rpx 0;
+}
+.logo{
+  width: 100rpx;
+  height: 100rpx;
+  border-radius: 6rpx;
+  margin-right: 20rpx;
+}
+.name{
+    overflow: hidden;
+	  text-overflow: ellipsis;
+	  white-space: nowrap;
+    padding-right: 20rpx;
+}
+.title2{
+  font-size: 24rpx;
+  padding: 20rpx 28rpx; 
+}
+.shu{
+  padding:24rpx 28rpx;
+  font-size: 28rpx;
+  color: #26A2FF;
+  padding-top: 0rpx;
+}
+.shu view:last-child{
+  color: #ccc;
+}
+.footer{
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: rgba(245, 247, 250, 1);
+  padding: 10rpx;
+  /* border-top: 1px solid #f1f1f1; */
+}
+.footer view{
+  border-radius: 6rpx;
+  background: #fff;
+  color: #26A2FF;
+  height: 88rpx;
+  text-align: center;
+  line-height: 88rpx;
+  border:1px solid #f1f1f1;
+}

+ 53 - 0
pages/deploy/organization/organization.axml

@@ -0,0 +1,53 @@
+<view>
+  <view class="header margin-bottom">
+    <view class="search flex-box flex-v-ce">
+      <image mode="scaleToFill" src="../../../image/ss.png"/>
+      <input class="flex-1" placeholder="请输入姓名搜索" onInput="bindKeyInput"/>
+    </view>
+    <view class="flex-box flex-v-ce" style="margin-top:28rpx;">
+      <image a:if="{{gsData.logo_ur}}" mode="scaleToFill" src="{{gsData.logo_url}}" class="logo"/>
+      <image a:else mode="scaleToFill" src="../../../image/gs_logo.png" class="logo"/>
+      <view class="flex-1 name">{{gsData.name}}</view>
+    </view>
+  </view>
+  <view class="flex-box flex-v-ce shu" a:if="{{terr.length>1}}">
+    <view a:for="{{terr}}" class="flex-box flex-v-ce" data-index="{{index}}" catchTap="activeItem" data-item="{{item}}">
+      <image mode="scaleToFill" src="../../../image/right.png" style="width:20rpx;height:20rpx;margin:0 6rpx;" a:if="{{index!=0}}"/>{{item.name}}
+    </view>
+  </view>
+  <scroll-view a:if="{{isItem}}" class="main" scroll-y="{{true}}" style="{{terr.length>1? 'height: calc(100vh - 452rpx)':'height: calc(100vh - 388rpx)'}}">
+    <view class="flex-box flex-v-ce li" a:for="{{rule_tree}}" catchTap="activeTree" data-item="{{item}}">
+      <view class="img-left">
+        <image mode="scaleToFill" src="../../../image/BM.png"></image></view>
+      <view class="{{(index+1)!=rule_tree.length? 'border-bottom':'' }} flex-box flex-v-ce flex-1 li-right">
+        <view class="title flex-1">{{item.name}}</view>
+        <image mode="scaleToFill" src="../../../image/right.png" class="img-right"></image>
+      </view>
+    </view>
+    <view class="title2 fontColorF">全部人员</view>
+    <view class="flex-box flex-v-ce li" a:for="{{userList}}">
+      <view class="img-tx">
+        <img-box imgUrl="{{item.img_url}}" name="{{item.name}}" height="90rpx" width="90rpx" fSize="24rpx"></img-box>
+      </view>
+      <view class="{{(index+1)!=rule_tree.lenght? 'border-bottom':'' }}  flex-box flex-v-ce flex-1 li-right">
+        <view class="title flex-1">{{item.name}}</view>
+      </view>
+    </view>
+    <view a:if="{{userList.length==0}}"><no-data  content="未找到相关人员"/></view>
+  </scroll-view>
+  <scroll-view a:else class="main"  scroll-y="{{true}}" style="height: calc(100vh - 388rpx)">
+    <view class="title2 fontColorF">全部人员</view>
+    <view class="flex-box flex-v-ce li" a:for="{{searchUser}}">
+      <view class="img-tx">
+        <img-box imgUrl="{{item.img_url}}" name="{{item.name}}" height="90rpx" width="90rpx" fSize="24rpx"></img-box>
+      </view>
+      <view class="{{(index+1)!=rule_tree.lenght? 'border-bottom':'' }}  flex-box flex-v-ce flex-1 li-right">
+        <view class="title flex-1">{{item.name}}</view>
+      </view>
+    </view>
+    <view a:if="{{searchUser.length==0}}"><no-data  content="未找到相关人员"/></view>
+  </scroll-view>
+  <view class="footer" catchTap="tbDd">
+    <view>同步钉钉</view>
+  </view>
+</view>

+ 99 - 0
pages/deploy/organization/organization.js

@@ -0,0 +1,99 @@
+var app = getApp();
+var that;
+Page({
+  data: {
+    userList: [],
+    all_rule_list: [],
+    rule_tree: [],
+    terr: [{ name: '全公司', id: 0 }],
+    searchUser: [],//搜索
+    isItem: true//是否为搜索的值
+  },
+  onLoad(query) {
+    that = this;
+    dd.setNavigationBar({ title: "部门/员工" });
+    this.getMessage();
+    this.getBmData();
+    this.getUserData(0);
+  },
+  tbDd(){
+     var http1= app.$post("api/ding/employee_sync",{});
+    var http2= app.$post("api/ding/department_sync",{});
+    Promise.all([http1,http2]).then((item)=>{
+      app.globalData.showTast(item[0].data.msg);
+      console.log(item);
+    })
+  },
+  bindKeyInput(e) {
+    app.$get("api/employee/list", { dept_id: 0 }).then((res) => {
+      var list = res.data.data.list;
+      var items = list.filter((item) => {
+        return item.name.indexOf(e.detail.value) >= 0
+      });
+      this.setData({
+        searchUser: items,
+        isItem: e.detail.value ? false : true
+      })
+    })
+  },
+  //点击导航栏
+  activeItem(e) {
+    console.log(e);
+    var item = e.target.dataset.item;
+    var index = e.target.dataset.index;
+    var terr = this.data.terr;
+    if ((index + 1) == terr.length) { return false };
+    this.setData({ rule_tree: [] });
+    if (index == 0) {
+      this.setData({
+        terr: [{ name: '全公司', id: 0 }],
+        rule_tree: this.data.all_rule_list,
+      })
+    } else {
+      var arr = terr.slice(0, index + 1);
+      this.setData({
+        rule_tree: item._child,
+        terr: arr
+      })
+    }
+    this.getUserData(item.id);
+  },
+  //点击一级
+  activeTree(e) {
+    console.log(e);
+    var item = e.target.dataset.item
+    var terr = this.data.terr;
+    terr.push(item)
+    this.setData({
+      rule_tree: item._child,
+      terr: terr
+    });
+    this.getUserData(item.id);
+  },
+      //获取部门列表
+  getBmData() {
+      app.$get("api/department/tree", {}).then((res) => {
+        var list = res.data.data.list;
+        this.setData({
+          rule_tree: list,
+          all_rule_list: list
+        })
+      })
+  },
+  //获取员工信息
+  getUserData(dept_id) {
+    app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
+      var list = res.data.data.list;
+      this.setData({
+        userList: list
+      })
+    })
+  },
+  getMessage(){
+    app.$get("api/site/info").then((res) => {
+      this.setData({
+        gsData: res.data.data
+      })
+    })
+  }
+});

+ 6 - 0
pages/deploy/organization/organization.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "img-box": "/Component/img-box/index",
+    "no-data": "/Component/noData/noData"
+  }
+}

+ 23 - 0
pages/deploy/setCheck/setCheck.acss

@@ -0,0 +1,23 @@
+.ul{
+  background-color: #fff;
+  padding: 0 28rpx;
+}
+.yellow{
+  padding:0 28rpx;
+  font-size: 24rpx;
+}
+.yellow{
+    padding-top: 10rpx;
+}
+.li{
+  padding: 20rpx 0;
+  border-bottom: 1px solid #f1f1f1
+}
+.li-left{
+  width: 140rpx;
+  text-align: left;
+}
+.fontColorF{
+  padding:10rpx 28rpx;
+  font-size: 24rpx;
+}

+ 73 - 0
pages/deploy/setCheck/setCheck.axml

@@ -0,0 +1,73 @@
+<view>
+  <view class="yellow">以下分数皆为B分,请前往PC钉钉设置</view>
+  <view class="fontColorF">出勤打卡</view>
+  <view class="ul">
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>月度全勤</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.month_full_ad}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>正常加分</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.normal}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>缺卡扣分</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.no_sign}}</view>
+    </view>
+  </view>
+  <view class="fontColorF">迟到/早退/旷工</view>
+  <view class="ul">
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>迟到扣分</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.on_duty_late}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>严重迟到</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.off_duty_early}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>早退扣分</view>
+      </view>
+      <view>{{data.off_duty_early}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>旷工扣分</view>
+      </view>
+      <view>{{data.month_full_ad}}</view>
+    </view>
+  </view>
+  <view class="fontColorF">加班/请假</view>
+  <view class="ul">
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>每加班一</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.ot_per_hour}}</view>
+    </view>
+    <view class="flex-box li">
+      <view class="li-left">
+        <view>每请假一</view>
+        <view>加分</view>
+      </view>
+      <view>{{data.leave_per_hour}}</view>
+    </view>
+  </view>
+</view>

+ 17 - 0
pages/deploy/setCheck/setCheck.js

@@ -0,0 +1,17 @@
+var app = getApp();
+var that;
+Page({
+  data: {},
+  onLoad(query) {
+    that = this;
+    dd.setNavigationBar({ title: "考勤积分" });
+    this.getData();
+  },
+  getData(){
+    app.$get("api/ad/info").then((res) => {
+      this.setData({
+        data:res.data.data.config
+      })
+    })
+  }
+});

+ 1 - 0
pages/deploy/setCheck/setCheck.json

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

+ 0 - 0
pages/index/index.acss


+ 0 - 3
pages/index/index.axml

@@ -1,3 +0,0 @@
-<view>
-  New Page
-</view>

+ 0 - 4
pages/index/index.js

@@ -1,4 +0,0 @@
-Page({
-  data: {},
-  onLoad() {},
-});

+ 3 - 1
pages/init/init.js

@@ -1,4 +1,6 @@
 Page({
   data: {},
-  onLoad() {},
+  onLoad() {
+    
+  },
 });

+ 31 - 0
pages/statistics/B_ranking/B_ranking.acss

@@ -0,0 +1,31 @@
+
+.main{
+  background: #fff;
+}
+.item{
+  padding: 16rpx 0;
+}
+.item .flex-2{
+    padding-left: 28rpx; 
+}
+.users{
+  margin-left: 20rpx;
+}
+.num{
+  font-size: 24rpx;
+  color: #909399;
+}
+.index{
+  width: 90rpx;
+  text-align: center;
+}
+.index image{
+  width: 40rpx;
+  height: 40rpx;
+}
+.scroll{
+  height: calc(100vh - 140rpx);
+}
+.name{
+  margin-left: 20rpx;
+}

+ 35 - 0
pages/statistics/B_ranking/B_ranking.axml

@@ -0,0 +1,35 @@
+<view>
+  <view class="flex-box flex-v-ce tab">
+    <view class="flex-1" catchTap="selectTissue">
+      <text class="{{showTissue? 'activeView blue':''}}">{{TissueVal}}</text>
+    </view>
+    <view class="flex-1" catchTap="selectIsPx">
+        <text a:if="{{isPx}}">降序</text>
+        <text a:else>升序</text>
+    </view>
+  </view>
+  <view class="fontColorF" style="font-szie:20rpx;padding:10rpx 28rpx;">排名包含初始分和工龄分</view>
+  <view class="main scroll">
+    <scroll-view class="scroll" scroll-y="{{true}}" a:if="{{list.length>0}}" onScrollToLower="onScrollToLower">
+      <view a:for="{{list}}" catchTap="openDetail" data-item="{{item}}" class="flex-box flex-v-ce item border-bottom">
+        <view a:if="{{index==0}}" class="index">
+          <image mode="scaleToFill" src="../../../image/1.png"></image>
+        </view>
+        <view a:elif="{{index==1}}" class="index">
+          <image mode="scaleToFill" src="../../../image/2.png"></image>
+        </view>
+        <view a:elif="{{index==2}}" class="index">
+          <image mode="scaleToFill" src="../../../image/3.png"></image>
+        </view>
+        <view a:else class="index">{{index}}</view>
+        <view class="flex-1 flex-box flex-v-ce">
+          <img-box name="{{item.employee_name}}" imgUrl="{{item.employee_img_url}}" height="80rpx" width="80rpx" fSize="24rpx"></img-box>
+          <view class="name">{{item.employee_name}}</view>
+        </view>
+        <view class="blue" style="margin-right:28rpx;">{{item.point}}</view>
+      </view>
+    </scroll-view>
+    <no-data a:if="{{list.length==0}}"></no-data>
+  </view>
+  <select-section a:if="{{showTissue==true}}" isShow="{{showTissue}}" onClose="onClose" onConfirm="onConfirmTissue"></select-section>
+</view>

Неке датотеке нису приказане због велике количине промена