姜永辉 пре 2 година
комит
3e9cdceb8f
100 измењених фајлова са 4450 додато и 0 уклоњено
  1. 15 0
      app.js
  2. 165 0
      app.json
  3. 175 0
      app.wxss
  4. 90 0
      components/dkbase/dk-area/dk-area.js
  5. 4 0
      components/dkbase/dk-area/dk-area.json
  6. 1 0
      components/dkbase/dk-area/dk-area.wxml
  7. 0 0
      components/dkbase/dk-area/dk-area.wxss
  8. 77 0
      components/dkbase/dk-button/dk-button.js
  9. 4 0
      components/dkbase/dk-button/dk-button.json
  10. 31 0
      components/dkbase/dk-button/dk-button.wxml
  11. 12 0
      components/dkbase/dk-button/dk-button.wxss
  12. 57 0
      components/dkbase/dk-card/dk-card.js
  13. 4 0
      components/dkbase/dk-card/dk-card.json
  14. 15 0
      components/dkbase/dk-card/dk-card.wxml
  15. 27 0
      components/dkbase/dk-card/dk-card.wxss
  16. 201 0
      components/dkbase/dk-cell/dk-cell.js
  17. 4 0
      components/dkbase/dk-cell/dk-cell.json
  18. 14 0
      components/dkbase/dk-cell/dk-cell.wxml
  19. 6 0
      components/dkbase/dk-cell/dk-cell.wxss
  20. 59 0
      components/dkbase/dk-divider/dk-divider.js
  21. 4 0
      components/dkbase/dk-divider/dk-divider.json
  22. 2 0
      components/dkbase/dk-divider/dk-divider.wxml
  23. 0 0
      components/dkbase/dk-divider/dk-divider.wxss
  24. 146 0
      components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.js
  25. 4 0
      components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.json
  26. 25 0
      components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.wxml
  27. 13 0
      components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.wxss
  28. 210 0
      components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.js
  29. 4 0
      components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.json
  30. 38 0
      components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.wxml
  31. 10 0
      components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.wxss
  32. 308 0
      components/dkbase/dk-dropdown-date/dk-dropdown-date.js
  33. 4 0
      components/dkbase/dk-dropdown-date/dk-dropdown-date.json
  34. 39 0
      components/dkbase/dk-dropdown-date/dk-dropdown-date.wxml
  35. 13 0
      components/dkbase/dk-dropdown-date/dk-dropdown-date.wxss
  36. 121 0
      components/dkbase/dk-dropdown-switch/dk-dropdown-switch.js
  37. 4 0
      components/dkbase/dk-dropdown-switch/dk-dropdown-switch.json
  38. 17 0
      components/dkbase/dk-dropdown-switch/dk-dropdown-switch.wxml
  39. 21 0
      components/dkbase/dk-dropdown-switch/dk-dropdown-switch.wxss
  40. 42 0
      components/dkbase/dk-empty/dk-empty.js
  41. 4 0
      components/dkbase/dk-empty/dk-empty.json
  42. 8 0
      components/dkbase/dk-empty/dk-empty.wxml
  43. 1 0
      components/dkbase/dk-empty/dk-empty.wxss
  44. 146 0
      components/dkbase/dk-field/dk-field.js
  45. 4 0
      components/dkbase/dk-field/dk-field.json
  46. 24 0
      components/dkbase/dk-field/dk-field.wxml
  47. 1 0
      components/dkbase/dk-field/dk-field.wxss
  48. 39 0
      components/dkbase/dk-grid-view/dk-grid-view.js
  49. 4 0
      components/dkbase/dk-grid-view/dk-grid-view.json
  50. 16 0
      components/dkbase/dk-grid-view/dk-grid-view.wxml
  51. 62 0
      components/dkbase/dk-grid-view/dk-grid-view.wxss
  52. 31 0
      components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.js
  53. 4 0
      components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.json
  54. 0 0
      components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.wxss
  55. 325 0
      components/dkbase/dk-number-input/dk-number-input.js
  56. 4 0
      components/dkbase/dk-number-input/dk-number-input.json
  57. 4 0
      components/dkbase/dk-number-input/dk-number-input.wxml
  58. 28 0
      components/dkbase/dk-number-input/dk-number-input.wxss
  59. 143 0
      components/dkbase/dk-number-phone-input/dk-number-phone-input.js
  60. 4 0
      components/dkbase/dk-number-phone-input/dk-number-phone-input.json
  61. 3 0
      components/dkbase/dk-number-phone-input/dk-number-phone-input.wxml
  62. 19 0
      components/dkbase/dk-number-phone-input/dk-number-phone-input.wxss
  63. 40 0
      components/dkbase/dk-panel/dk-panel.js
  64. 4 0
      components/dkbase/dk-panel/dk-panel.json
  65. 9 0
      components/dkbase/dk-panel/dk-panel.wxml
  66. 11 0
      components/dkbase/dk-panel/dk-panel.wxss
  67. 3 0
      components/dkbase/dk-progress/dk-linear-gradient-view.wxml
  68. 32 0
      components/dkbase/dk-progress/dk-progress.js
  69. 4 0
      components/dkbase/dk-progress/dk-progress.json
  70. 18 0
      components/dkbase/dk-progress/dk-progress.wxml
  71. 14 0
      components/dkbase/dk-progress/dk-progress.wxss
  72. 100 0
      components/dkbase/dk-save-bottom/dk-save-bottom.js
  73. 4 0
      components/dkbase/dk-save-bottom/dk-save-bottom.json
  74. 395 0
      components/dkbase/dk-save-bottom/dk-save-bottom.wxml
  75. 80 0
      components/dkbase/dk-save-bottom/dk-save-bottom.wxss
  76. 93 0
      components/dkbase/dk-search/dk-search.js
  77. 4 0
      components/dkbase/dk-search/dk-search.json
  78. 22 0
      components/dkbase/dk-search/dk-search.wxml
  79. 6 0
      components/dkbase/dk-search/dk-search.wxss
  80. 94 0
      components/dkbase/dk-side-pull-menu/dk-side-pull-menu.js
  81. 4 0
      components/dkbase/dk-side-pull-menu/dk-side-pull-menu.json
  82. 19 0
      components/dkbase/dk-side-pull-menu/dk-side-pull-menu.wxml
  83. 0 0
      components/dkbase/dk-side-pull-menu/dk-side-pull-menu.wxss
  84. 34 0
      components/dkbase/dk-table/dk-table.js
  85. 4 0
      components/dkbase/dk-table/dk-table.json
  86. 51 0
      components/dkbase/dk-table/dk-table.wxml
  87. 63 0
      components/dkbase/dk-table/dk-table.wxss
  88. 62 0
      components/dkbase/dk-tabs-custom/dk-tabs-custom.js
  89. 4 0
      components/dkbase/dk-tabs-custom/dk-tabs-custom.json
  90. 6 0
      components/dkbase/dk-tabs-custom/dk-tabs-custom.wxml
  91. 23 0
      components/dkbase/dk-tabs-custom/dk-tabs-custom.wxss
  92. 42 0
      components/dkbase/dk-tabs/dk-tabs.js
  93. 4 0
      components/dkbase/dk-tabs/dk-tabs.json
  94. 4 0
      components/dkbase/dk-tabs/dk-tabs.wxml
  95. 0 0
      components/dkbase/dk-tabs/dk-tabs.wxss
  96. 180 0
      components/dkbase/dk-tag/dk-tag.js
  97. 4 0
      components/dkbase/dk-tag/dk-tag.json
  98. 3 0
      components/dkbase/dk-tag/dk-tag.wxml
  99. 16 0
      components/dkbase/dk-tag/dk-tag.wxss
  100. 134 0
      components/dkbase/dk-text/dk-text.js

+ 15 - 0
app.js

@@ -0,0 +1,15 @@
+// app.js
+// 将属性加入相应类型对象中
+import './utils/prototype/prototypeArray';
+import './utils/prototype/prototypeObject';
+import './utils/prototype/prototypeNumber';
+import './utils/prototype/prototypeString';
+import './utils/prototype/prototypeDatetime';
+App({
+  onLaunch() { 
+    console.log("onLaunch");
+  },
+  globalData: {
+    userInfo: null
+  }
+})

+ 165 - 0
app.json

@@ -0,0 +1,165 @@
+{
+  "pages": [
+    "pages/index/index", 
+    "pages/home-page/home-page",      
+    "pages/other/other",
+    "pages/mine/mine",
+    "pages/login/login",
+    "pages/ec-canvas/ec-canvas-new"
+  ],
+  "subPackages": [
+    {
+      "root": "package2",
+      "name": "package2",
+      "pages": []
+    },
+    {
+      "root": "package3",
+      "name": "package3",
+      "pages": []
+    },
+    {
+      "root": "package4",
+      "name": "package4",
+      "pages": []
+    }
+  ],
+  "window": {
+    "backgroundTextStyle": "light",
+    "navigationBarBackgroundColor": "#fff",
+    "navigationBarTitleText": "基础控件",
+    "navigationBarTextStyle": "black"
+  },
+  "sitemapLocation": "sitemap.json",
+  "usingComponents": {   
+    "van-action-sheet": "./dist/action-sheet/index",
+    "van-area": "./dist/area/index",
+    "van-button": "./dist/button/index",
+    "van-card": "./dist/card/index",
+    "van-cell": "./dist/cell/index",
+    "van-cell-group": "./dist/cell-group/index",
+    "van-checkbox": "./dist/checkbox/index",
+    "van-checkbox-group": "./dist/checkbox-group/index",
+    "van-col": "./dist/col/index",
+    "van-count-down": "./dist/count-down/index",
+    "van-dialog": "./dist/dialog/index",
+    "van-divider": "./dist/divider/index",
+    "van-empty": "./dist/empty/index",
+    "van-field": "./dist/field/index",
+    "van-goods-action": "./dist/goods-action/index",
+    "van-goods-action-icon": "./dist/goods-action-icon/index",
+    "van-goods-action-button": "./dist/goods-action-button/index",
+    "van-icon": "./dist/icon/index",
+    "van-image": "./dist/image/index",
+    "van-loading": "./dist/loading/index",
+    "van-nav-bar": "./dist/nav-bar/index",
+    "van-notice-bar": "./dist/notice-bar/index",
+    "van-notify": "./dist/notify/index",
+    "van-panel": "./dist/panel/index",
+    "van-popup": "./dist/popup/index",
+    "van-progress": "./dist/progress/index",
+    "van-radio": "./dist/radio/index",
+    "van-radio-group": "./dist/radio-group/index",
+    "van-row": "./dist/row/index",
+    "van-search": "./dist/search/index",
+    "van-sidebar": "./dist/sidebar/index",
+    "van-sidebar-item": "./dist/sidebar-item/index",
+    "van-slider": "./dist/slider/index",
+    "van-stepper": "./dist/stepper/index",
+    "van-steps": "./dist/steps/index",
+    "van-sticky": "./dist/sticky/index",
+    "van-submit-bar": "./dist/submit-bar/index",
+    "van-swipe-cell": "./dist/swipe-cell/index",
+    "van-uploader": "./dist/uploader/index",
+    "van-switch": "./dist/switch/index",
+    "van-tab": "./dist/tab/index",
+    "van-tabs": "./dist/tabs/index",
+    "van-tabbar": "./dist/tabbar/index",
+    "van-tabbar-item": "./dist/tabbar-item/index",
+    "van-tag": "./dist/tag/index",
+    "van-toast": "./dist/toast/index",
+    "van-transition": "./dist/transition/index",
+    "van-tree-select": "./dist/tree-select/index",
+    "van-datetime-picker": "./dist/datetime-picker/index",
+    "van-rate": "./dist/rate/index",
+    "van-collapse": "./dist/collapse/index",
+    "van-collapse-item": "./dist/collapse-item/index",
+    "van-picker": "./dist/picker/index",
+    "van-overlay": "./dist/overlay/index",
+    "van-circle": "./dist/circle/index",
+    "van-index-bar": "./dist/index-bar/index",
+    "van-index-anchor": "./dist/index-anchor/index",
+    "van-grid": "./dist/grid/index",
+    "van-grid-item": "./dist/grid-item/index",
+    "van-dropdown-menu": "./dist/dropdown-menu/index",
+    "van-dropdown-item": "./dist/dropdown-item/index",
+    "van-skeleton": "./dist/skeleton/index",
+    "van-calendar": "./dist/calendar/index",
+
+    "dk-area":"components/dkbase/dk-area/dk-area",
+    "dk-button": "components/dkbase/dk-button/dk-button",
+    "dk-card":"components/dkbase/dk-card/dk-card",
+    "dk-cell": "components/dkbase/dk-cell/dk-cell",
+    "dk-divider": "components/dkbase/dk-divider/dk-divider",
+    "dk-dropdown-date": "components/dkbase/dk-dropdown-date/dk-dropdown-date",
+    "dk-dropdown-date-month": "components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month",
+    "dk-dropdown-switch": "components/dkbase/dk-dropdown-switch/dk-dropdown-switch",
+    "dk-dropdown-date-hour-mon-sec": "components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec",
+    "dk-empty": "components/dkbase/dk-empty/dk-empty",
+    "dk-field": "components/dkbase/dk-field/dk-field",
+    "dk-grid-view": "components/dkbase/dk-grid-view/dk-grid-view",
+
+    "dk-number-input": "components/dkbase/dk-number-input/dk-number-input",
+    "dk-number-phone-input": "components/dkbase/dk-number-phone-input/dk-number-phone-input",
+    "dk-panel":"components/dkbase/dk-panel/dk-panel",
+    "dk-progress": "components/dkbase/dk-progress/dk-progress",
+    "dk-save-bottom": "components/dkbase/dk-save-bottom/dk-save-bottom",
+    "dk-search":"components/dkbase/dk-search/dk-search",
+    "dk-side-pull-menu": "components/dkbase/dk-side-pull-menu/dk-side-pull-menu", 
+    "dk-table": "components/dkbase/dk-table/dk-table",
+    "dk-tabs": "components/dkbase/dk-tabs/dk-tabs",  
+    "dk-tag": "components/dkbase/dk-tag/dk-tag",
+    "dk-tabs-custom": "components/dkbase/dk-tabs-custom/dk-tabs-custom",
+    "dk-text": "components/dkbase/dk-text/dk-text",    
+    "dk-title": "components/dkbase/dk-title/dk-title",
+    "dk-toggle":"components/dkbase/dk-toggle/dk-toggle",
+    "dk-uploader":"components/dkbase/dk-uploader/dk-uploader",
+    
+    "dk-muti-dropdown-item": "components/dkbusiness/dk-muti-dropdown-item/dk-muti-dropdown-item",
+    "dk-single-dropdown-item": "components/dkbusiness/dk-single-dropdown-item/dk-single-dropdown-item", 
+    "dk-label-multiple-select": "components/dkbusiness/dk-label-multiple-select/dk-label-multiple-select",
+    
+    "loading": "components/dkbase/loading/loading"
+  },
+  "tabBar": {
+    "color": "#95A8CB",
+    "selectedColor": "#1B365D",
+    "backgroundColor": "#FFFFFF",
+    "list": [
+      {
+        "pagePath": "pages/home-page/home-page",
+        "text": "首页",
+        "iconPath": "static/img/index.png",
+        "selectedIconPath": "static/img/index_selected.png"
+      },
+      {
+        "pagePath": "pages/index/index",
+        "text": "应用",
+        "iconPath": "static/img/app.png",
+        "selectedIconPath": "static/img/app_selected.png"
+      },
+      {
+        "pagePath": "pages/other/other",
+        "text": "其他",
+        "iconPath": "static/img/goodsproduct.png",
+        "selectedIconPath": "static/img/goodsproduct_selected.png"
+      },
+      {
+        "pagePath": "pages/mine/mine",
+        "text": "我的",
+        "iconPath": "static/img/mine.png",
+        "selectedIconPath": "static/img/mine_selected.png"
+      }
+    ]
+  }
+}

+ 175 - 0
app.wxss

@@ -0,0 +1,175 @@
+page {
+  background-color: #f2f2f2;
+}
+
+/* 隐藏scroll-view滚动条  sh4wmoo 2020-10-17 */
+::-webkit-scrollbar {
+  display: none;
+  width: 0;
+  height: 0;
+  color: transparent;
+}
+
+/* 修改card组件内容元素间距  sh4wmoo 2020-10-19 */
+.van-card__desc {
+  margin-top: 12rpx;
+}
+
+.van-card__bottom {
+  margin-top: 12rpx;
+}
+
+.van-card__title {
+  font-size: 16px;
+  font-weight: 900;
+}  
+
+/* 加载更多文字 */
+.van-loading__text {
+  color: #d9001b !important;
+}
+
+.van-cell__value{
+  overflow:none !important;
+} 
+/** 抽屉 start**/
+.popup {
+  position: relative;
+}
+
+.popup-button {
+  position: fixed;
+  width: 100%;
+  bottom: 0;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  padding-bottom: 15rpx;
+  padding-top: 15rpx;
+  background: #fff;
+  height: 100rpx;
+} 
+
+.van-swipe-cell__right {
+  background: #d9001b;
+  color: #fff;
+  width: 65px;
+  text-align: center;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.button-class{
+  height: 85rpx !important;
+  background: #F8F9FD !important;
+  color: #95A8CB !important;
+  border: 2rpx solid #95A8CB;
+  border-radius: 10rpx !important;
+  text-align: left !important;
+  margin-bottom: 10rpx;
+  z-index: 999 !important;
+}
+
+.button-selected-class{
+  height: 85rpx !important;
+  background: #606EB2 !important;
+  color: #fff !important;
+  border: 2rpx solid #606EB2;
+  border-radius: 10rpx !important;
+  text-align: left !important;
+  margin-bottom: 10rpx;
+  z-index: 999 !important; 
+}
+
+.blue-blue {
+  color: #1989fa
+} 
+/** 字体 start20220509 **/
+.font-size16 {
+  font-size: 16px !important;  
+}
+.font-size15 {
+  font-size: 15px !important;  
+}
+.font-size14{
+  font-size: 14px !important;  
+}
+.font-size13 {
+  font-size: 13px !important;  
+}
+.font-size12 {
+  font-size: 12px !important;  
+}
+.font-size11 {
+  font-size: 11px !important;  
+}
+.app-font-weight-bold{
+  font-weight: bold !important;
+}
+/** 字体 end**/ 
+
+/**数量计数器 start**/
+.van-stepper__input{
+  background: transparent !important;
+}
+
+.van-stepper__plus{
+  background: #1B365D !important;
+  border-radius: 5rpx !important;
+  width: 34.87rpx !important;
+  height: 34.04rpx !important;
+  color: #fff !important;
+  background-color: #1B365D !important;
+}
+
+.van-stepper__minus{
+  width: 34.87rpx !important;
+  height: 34.04rpx !important;
+  background: #fff !important;
+  border: 1px solid #1B365D !important;
+  border-radius: 5rpx !important;
+}
+/**数量计数器 end**/
+.van-checkbox__icon--checked{
+  background-color: #1B365D !important;
+  border: none !important;
+}
+
+/**红色label**/
+.red-label {
+  color: red;
+  font-size: 14px;
+  font-weight: bold;
+}
+
+/**普通label*/
+.nomal-label .van-field__label{
+  color: #95A8CB !important;
+  font-size: 14px !important;
+} 
+
+/**查询框的演示*/
+.van-search__content {
+  background: #F8F9FD;
+  border: 1px solid #D6E4FF;
+  border-radius: 15rpx !important;
+} 
+
+/**提示信息的样式*/
+.van-field__placeholder{
+  color: #95A8CB !important;
+  font-weight: normal;
+} 
+/*修改van-grid-item样式*/
+.van-grid-item__content{
+  padding-left: 0 !important;
+  padding-right: 0 !important;
+}
+.van-swipe-cell__right {
+  background: #1B365D !important;
+}
+
+.van-button{
+  z-index: 999 !important;
+}

+ 90 - 0
components/dkbase/dk-area/dk-area.js

@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-省市区
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    style:String,//自定义样式
+    value: String,//当前选中的省市区code
+    title: String,//顶部栏标题
+    areaList: Object,//省市区数据,格式见下方
+    //省市区显示列数,3-省市区,2-省市,1-省
+    columnsNum: {
+      type: String,
+      value: '3'
+    },
+    //列占位提示文字
+    columnsPlaceholder: {
+      type: Array,
+      value: []
+    },
+    loading: Boolean,//是否显示加载状态
+    //选项高度
+    itemHeight: {
+      type: Number,
+      value: 44
+    },
+    //可见的选项个数
+    visibleItemCount: {
+      type: Number,
+      value: 6
+    },
+    //确认按钮文字
+    confirmButtonText: {
+      type: String,
+      value: '确认'
+    },
+    //取消按钮文字
+    cancelButtonText: {
+      type: String,
+      value: '取消'
+    },
+    //是否显示顶部栏
+    showToolbar: {
+      type: Boolean,
+      value: true
+    },
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 点击右上方完成按钮
+     * @param {*} e 
+     */
+    onConfirm(e) {
+      this.triggerEvent("confirm", e)
+    },
+    /**
+     * 点击取消按钮时
+     * @param {*} e 
+     */
+    onCancel(e) {
+      this.triggerEvent("cancel", e)
+    },
+    /**
+     * 选项改变时触发
+     * @param {*} e 
+     */
+    onChange(e) {
+      this.triggerEvent("change", e)
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-area/dk-area.json

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

+ 1 - 0
components/dkbase/dk-area/dk-area.wxml

@@ -0,0 +1 @@
+<van-area style="{{style}}" value="{{value}}"title="{{title}}"area-list="{{ areaList }}" columns-num="{{columnsNum}}" columns-placeholder="{{columnsPlaceholder}}" loading="{{loading}}" item-height="{{itemHeight}}" visible-item-count="{{visibleItemCount}}" confirm-button-text="{{confirmButtonText}}" cancel-button-text="{{cancelButtonText}}" show-toolbar="{{showToolbar}}" title="{{title}}" value="{{value}}" bind:confirm="onConfirm" bind:cancel="onCancel" bind:change="onChange" />

+ 0 - 0
components/dkbase/dk-area/dk-area.wxss


+ 77 - 0
components/dkbase/dk-button/dk-button.js

@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:dkButton组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17  	1.00		   	  新建
+ *******************************************************************************/
+import { button } from '../../../dist/mixins/button';
+import { openType } from '../../../dist/mixins/open-type';
+Component({
+  //组件代码共享的特性
+  behaviors: [button, openType],
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    formType: String,//用于 form 组件,可选值为submit reset,点击分别会触发 form 组件的 submit/reset 事件
+    icon: String,//左侧图标名称或图片链接,可选值见 Icon 组件
+    //图标类名前缀,同 Icon 组件的 class-prefix 属性
+    classPrefix: {
+      type: String,
+      value: 'van-icon',
+    },
+    plain: Boolean,//是否为朴素按钮
+    block: Boolean,//是否为块级元素
+    round: Boolean,//是否为圆形按钮
+    square: Boolean,//是否为方形按钮
+    loading: Boolean,//是否显示为加载状态
+    hairline: Boolean,//是否使用 0.5px 边框
+    disabled: Boolean,//是否禁用按钮
+    loadingText: String,//加载状态提示文字
+    customStyle: String,//自定义样式
+    //加载状态图标类型,可选值为 spinner
+    loadingType: {
+      type: String,
+      value: 'circular',
+    },
+    //按钮类型,可选值为 primary info warning danger
+    type: {
+      type: String,
+      value: 'default',
+    },
+    //按钮 dataset,open-type 为 share 时,可在 onShareAppMessage 事件的 event.target.dataset.detail 中看到传入的值
+    dataset: null,
+    //按钮尺寸,可选值为 normal large small mini
+    size: {
+      type: String,
+      value: 'normal',
+    },
+    //加载图标大小
+    loadingSize: {
+      type: String,
+      value: '20px',
+    },
+    //按钮颜色,支持传入linear-gradient渐变色
+    color: String,
+  }, 
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    text: ''
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    // 方法继承opentype ../../dist/mixins/open-type
+    onClick(e){
+      this.triggerEvent("click",e)
+    }
+  }
+})

+ 4 - 0
components/dkbase/dk-button/dk-button.json

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

+ 31 - 0
components/dkbase/dk-button/dk-button.wxml

@@ -0,0 +1,31 @@
+<van-button
+  id="{{ id }}"
+  lang="{{ lang }}"
+  icon="{{ icon }}"
+  size="{{ size }}"
+  type="{{ type }}"
+  color="{{ color }}"
+  plain="{{ plain }}"
+  loading="{{ loading }}"
+  disabled="{{ disabled }}"
+  open-type="{{ openType }}"
+  custom-style="height: 88rpx;background:#1B365D;border:1px solid #1B365D;font-size:16px;"  
+  business-id="{{ businessId }}"
+  session-from="{{ sessionFrom }}"
+  app-parameter="{{ appParameter }}"
+  send-message-img="{{ sendMessageImg }}"
+  send-message-path="{{ sendMessagePath }}"
+  show-message-card="{{ showMessageCard }}"
+  send-message-title="{{ sendMessageTitle }}"
+  custom-class="custom-class {{customClass	}}"
+  loading-class="loading-class {{loadingClass	}}"
+  bind:click="onClick"
+  bind:error="bindError"
+  bind:contact="bindContact"
+  bind:opensetting="bindOpenSetting"
+  bind:getuserinfo="bindGetUserInfo"
+  bind:getphonenumber="bindGetPhoneNumber" 
+>
+  {{ text }}
+  <slot></slot>
+</van-button>

+ 12 - 0
components/dkbase/dk-button/dk-button.wxss

@@ -0,0 +1,12 @@
+.cusomt-style {
+  height: 80rpx;
+  background: #1B365D;
+  border: 1px solid #1B365D;
+  font-size: 12px;
+}
+.custom-class	{
+  font-size: 16px;
+}
+.loading-class{
+  font-size: 16px;
+}

+ 57 - 0
components/dkbase/dk-card/dk-card.js

@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-商品卡片
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    style:String,//样式
+    thumb:String,//左侧图片
+    title:String,//标题
+    desc:String,//描述
+    tag:String,//标签
+    num:String,//商品数量
+    price:String,//商品价格
+    //左侧图片裁剪、缩放的模式,可选值参考小程序 image 组件 mode 属性值
+    thumbMode:{
+      type:String,
+      value:'aspectFit'
+    }, 
+    originPrice:String,//商品划线原价
+    centered:String, //内容是否垂直居中
+    thumbLink:String,//点击左侧图片后跳转的链接地址
+    lazyLoad:Boolean,//是否开启图片懒加载
+    customClass:String,//根节点样式类
+    thumbClass:String,//左侧图片样式类
+    titleClass:String,//标题样式类
+    priceClass:String,//价格样式类
+    originPriceClass:String,//划线原价样式类
+    descClass:String,//描述样式类
+    numClass:String,//数量样式类
+  },
+
+  options:{
+    multipleSlots:true
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+  
+  }
+})

+ 4 - 0
components/dkbase/dk-card/dk-card.json

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

+ 15 - 0
components/dkbase/dk-card/dk-card.wxml

@@ -0,0 +1,15 @@
+<van-card style="{{style}}" thumb="{{ thumb }}" thumb-mode="{{ thumbMode }}" num="{{ num }}" tag="{{ tag }}" price="{{ price }}" desc="{{ desc }}" title="{{ title }}" origin-price="{{ originPrice }}" centered="{{ centered }}" currency="¥" thumb-link="{{ thumbLink }}" lazy-load="{{ lazyLoad }}" custom-class="custom-class {{ customClass }}" thumb-class="thumb-class {{ thumbClass }}" title-class="title-class {{ titleClass }}" price-class="price-class {{ priceClass }}" origin-price-class="origin-price-class {{ originPriceClass }}" desc-class="desc-class {{ descClass }}" num-class="num-class {{ numClass }}">
+  <view slot="title">
+    <slot name="title"></slot>
+  </view>
+  <view slot="desc">
+    <slot name="desc"></slot>
+  </view>
+  <view slot="footer">
+    <slot name="footer"></slot>
+  </view>
+  <view slot="thumb">
+    <slot name="thumb"></slot>
+  </view>
+  <!-- 后续可以继续增加 -->
+</van-card>

+ 27 - 0
components/dkbase/dk-card/dk-card.wxss

@@ -0,0 +1,27 @@
+.custom-class {
+   background-color: transparent;
+}
+
+.thumb-class {
+   background-color: transparent;
+}
+
+.title-class {
+  background-color: transparent;
+}
+
+.price-class {
+   background-color: transparent;
+}
+
+.origin-price-class {
+   background-color: transparent;
+}
+
+.desc-class {
+   background-color: transparent;
+}
+
+.num-class {
+   background-color: transparent;
+}

+ 201 - 0
components/dkbase/dk-cell/dk-cell.js

@@ -0,0 +1,201 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:dkCell组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+const common = require('../../../utils/common.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    /**
+     * 单元格大小,可选值为 large
+     */
+    size: {
+      type: String,
+      value: 'large'
+    },
+    /**
+    * 左侧标题
+    */
+    title: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 左侧图标名称或图片链接,可选值见 Icon 组件
+     */
+    icon: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 是否使内容垂直居中
+     */
+    center: {
+      type: Boolean,
+      value: false
+    },
+    /**
+   * 是否显示下边框
+   */
+    border: {
+      type: Boolean,
+      value: true
+    },
+    /**
+   * 是否展示右侧箭头并开启点击反馈
+   */
+    isLink: {
+      type: Boolean,
+      value: false
+    },
+    /**
+       * 是否显示表单必填星号
+       */
+    required: {
+      type: Boolean,
+      value: false
+    },
+    /**
+       * 是否开启点击反馈
+       */
+    clickable: {
+      type: Boolean,
+      value: false
+    },
+    /**
+       * 标题宽度,须包含单位
+       */
+    titleWidth: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 右侧内容
+     */
+    values: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 标题下方的描述信息
+     */
+    label: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 标题样式
+     */
+    titleStyle: {
+      type: String,
+      value: ''
+    },
+    /**
+    * 箭头方向,可选值为 left up down
+    */
+    arrowDirection: {
+      type: String,
+      value: ''
+    },
+    /**
+       * 是否使用 label slot
+       */
+    useLabelSlot: {
+      type: Boolean,
+      value: false
+    },
+    /**
+    * 根节点样式类
+    */
+    customClass: {
+      type: String,
+      value: ''
+    },
+    /**
+       * 标题样式类
+       */
+    titleClass: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 描述信息样式类
+     */
+    labelClass: {
+      type: String,
+      value: ''
+    },
+    /**
+       * 右侧内容样式类
+       */
+    valueClass: {
+      type: String,
+      value: ''
+    },
+
+    //左右边距
+    cellHorizontalPadding: {
+      type: String,
+      value: '14px'
+    },
+    //上下边距
+    cellVerticalPadding: {
+      type: String,
+      value: '10px'
+    },
+    //字体大小
+    cellFontSize: {
+      type: String,
+      value: '12px',
+      observer: function (newval) {
+        console.log(newval);
+      }
+    },
+    //字體顔色
+    cellValueColor:{
+      type: String,
+      value: '#969799',
+    }
+  },
+
+  options: {
+    multipleSlots: true,//插槽
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    displayValue: '', 
+    style:``,
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    onClick(e){ 
+      this.triggerEvent("click",e)
+    }
+
+  },
+  /**
+    * 组件生命周期
+    */
+  lifetimes: {
+    attached: function () {
+      console.log("attached");
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+      console.log("detached");
+    },
+  },
+})

+ 4 - 0
components/dkbase/dk-cell/dk-cell.json

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

+ 14 - 0
components/dkbase/dk-cell/dk-cell.wxml

@@ -0,0 +1,14 @@
+<van-cell size="{{ size }}" title="{{ title }}" icon="{{ icon }}" center="{{ center }}" border="{{ border }}" is-link="{{ isLink }}" required="{{ required }}" clickable="{{ clickable }}" title-width="{{ titleWidth }}" value="{{ values }}" label="{{ label }}" title-style="{{titleStyle}}" arrow-direction="{{ arrowDirection }}" use-label-slot="{{useLabelSlot}}" custom-class="custom-class {{customClass}}" title-class="{{titleClass}}" label-class="{{labelClass}}" value-class="{{valueClass}}" style="--cell-horizontal-padding--:{{cellHorizontalPadding}};--cell-vertical-padding--:{{cellVerticalPadding}};--cell-font-size--:{{cellFontSize}}; --cell-value-color:{{cellValueColor}}" bind:click="onClick">
+  <view slot="title">
+    <slot name="title"></slot>
+  </view>
+  <view slot="label">
+    <slot name="label"></slot>
+  </view>
+  <view slot="icon">
+    <slot name="icon"></slot>
+  </view>
+  <view slot="right-icon">
+    <slot name="right-icon"></slot>
+  </view> 
+</van-cell>

+ 6 - 0
components/dkbase/dk-cell/dk-cell.wxss

@@ -0,0 +1,6 @@
+.custom-class {
+  --cell-horizontal-padding: var(--cell-horizontal-padding--);
+  --cell-vertical-padding: var(--cell-vertical-padding--);
+  --cell-font-size: var(--cell-font-size--);
+  --cell-value-color:var(--cell-value-color--);
+} 

+ 59 - 0
components/dkbase/dk-divider/dk-divider.js

@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:用于将内容分隔为多个区域
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17  	 1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    // 样式
+    style:String,
+    //高度
+    height: {
+      type: String,
+      value: '2rpx',
+    },
+    //背景色
+    backgroundColor: {
+      type: String,
+      value: '#e0e1e2'
+    },
+    //上边距
+    marginTop: {
+      type: String,
+      value: '15rpx'
+    },
+    //下边距
+    marginBottom: {
+      type: String,
+      value: '15rpx'
+    },
+  
+  },
+
+  /**
+   * 组件的选项
+   */
+  options: {
+    addGlobalClass: true,
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
components/dkbase/dk-divider/dk-divider.json

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

+ 2 - 0
components/dkbase/dk-divider/dk-divider.wxml

@@ -0,0 +1,2 @@
+<!-- 用于将内容分隔为多个区域。 后续可以继续变化和增加-->
+<view  style="{{style}} {{'height:' + height + ';width: 100%;margin-top:' + marginTop + ';margin-bottom:' + marginBottom + ';background-color: var(--divider-text-color,' + backgroundColor + ');'}}"></view>

+ 0 - 0
components/dkbase/dk-divider/dk-divider.wxss


+ 146 - 0
components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.js

@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:一览界面日期下拉组件-时分秒
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-5-5			1.00		   	  新建
+ *******************************************************************************/
+const util = require('../../../utils/util.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    // 是否显示
+    show: {
+      type: Boolean,
+      default: false
+    },
+    // 选项格式化函数(type 可能值为 year, month, day, hour, minute)
+    formatter:String,
+    //类型
+    dateType: {
+      type: String,
+      default: 'createtime'
+    },
+    //默认值
+    defaultValue: {
+      type: String,
+      default: '-1'
+    },
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    show: false,
+    active: 0,
+    dateDefault: {},
+    dateTypeList: [],
+    dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
+    // 往组件外返回值
+    dataDefaultSearch: [],
+  },
+
+  lifetimes: {
+    attached: function () {
+
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    choose(e) {
+      let _this = this
+      let item = e.currentTarget.dataset.item
+
+      if (item.value == -2) {
+        _this.setData({
+          show: true
+        })
+        setTimeout(function () {
+          _this.setData({
+            active: 0
+          })
+        }, 100)
+      } else {
+        _this.setData({
+          dateDefault: item
+        })
+
+        let date = []
+        if (item.value == 1) {
+          date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
+        }
+        else if (item.value == 2) {
+          date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
+        }
+        else if (item.value == 3) {
+          date = util.getCurrentMonth();
+        }
+        this.setData({
+          dataDefaultSearch: date
+        })
+        this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
+      }
+    },
+
+
+
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    changeDate(e) {
+      // let key = e.currentTarget.dataset.key
+      //提醒时间
+      // if (key === 'nextFollowTime') {
+      this.setData({
+        timeValue: e.detail
+      })
+      // }
+    },
+
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    onCloseChooseDate() {
+      this.setData({
+        show: false
+      })
+      this.setData({
+        dateSearch: [new Date().getTime(), new Date().getTime()],
+      })
+    },
+
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    onConfirmChooseDate() {
+      this.setData({
+        show: false,
+        dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
+      })
+      let date = [util.formatDayTime(new Date(this.data.dateSearch[0])),
+      util.formatDayTime(new Date(this.data.dateSearch[1]))]
+      this.setData({
+        dataDefaultSearch: date
+      })
+      this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.json

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

+ 25 - 0
components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.wxml

@@ -0,0 +1,25 @@
+<!--界面日期下拉组件-->
+<wxs module="mDate">
+  var format = function (time) {
+    var date = getDate(time);
+    var year = date.getFullYear()
+    var month = date.getMonth() + 1
+    var day = date.getDate()
+    var hour = date.getHours()
+    var minute = date.getMinutes()
+    var second = date.getSeconds()
+    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
+  }
+  module.exports.format = format;
+</wxs>
+
+<!-- 日期 -->
+<view class="drop-open" wx:if="{{show}}">
+  <van-popup show="{{ show }}" position="bottom" customStyle="border-radius: 30rpx 30rpx 0px 0px;" bind:close="onCloseChooseDate" bind:click-overlay="onCloseChooseDate">
+    <view style="display:flex;justify-content: space-around;height:80rpx;">
+      <view style="width:45%;text-align: left;color:#b6b6b6;line-height:80rpx;" catchtap="onCloseChooseDate">取消</view>
+      <view style="width:45%;text-align: right;color:#00A7B5;line-height:80rpx;" catchtap="onConfirmChooseDate">确定</view>
+    </view>
+    <van-datetime-picker  show-toolbar="{{false}}" bindonlyinput="changeDate"    type="datetime" loading="{true}" value="{{ timeValue }}" formatter="{{formatter}}" />
+  </van-popup>
+</view>

+ 13 - 0
components/dkbase/dk-dropdown-date-hour-mon-sec/dk-dropdown-date-hour-mon-sec.wxss

@@ -0,0 +1,13 @@
+
+.blue-blue {
+  color: #1989fa
+}
+.drop-open{
+  width: 100%;
+  height: 700rpx;
+  display: flex;
+  align-content: flex-end;
+}
+.nav-class{
+  background: #fff;
+}

+ 210 - 0
components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.js

@@ -0,0 +1,210 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:一览界面日期下拉组件-年月
+ *  注意:值是value
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-5-5			1.00		   	新建
+ *******************************************************************************/
+const util = require('../../../utils/util.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    dateType: {
+      type: String,
+      default: 'createtime'
+    },
+    defaultValue: {
+      type: String,
+      default: '-1'
+    },
+    // 是否有
+    blankFlag: {
+      type: Boolean,
+      default: true
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    show: false,
+    active: null,
+    dateDefault: {},
+    dateTypeList: [],
+    // dateSearch: [ new Date().toISOString().substring(0, 7), new Date().toISOString().substring(0, 7)],
+    dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
+    // 往组件外返回值
+    dataDefaultSearch: [],
+    createTimeType: {
+      text: '计提月',
+      value: -1
+    },
+    createTimeTypeList: [
+      {
+        text: '自定义',
+        value: -2
+      },
+    ],
+  },
+
+  lifetimes: {
+    attached: function () {
+      let dateTypeList = []
+      let dateType = this.data.dateType
+      // 创建日期
+      if (dateType === 'createtime') {
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.createTimeType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.createTimeTypeList)
+      }
+
+
+      let dateDefault = {}
+      let date = []
+      // 默认值
+      if (dateTypeList != null) {
+        dateTypeList.forEach(item => {
+          if (item.value + '' === this.data.defaultValue + '') {
+            dateDefault.value = item.value
+            dateDefault.text = item.text
+
+            
+           
+             if (item.value + ''== '3') {
+              date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
+            }
+            else if(item.value + ''== '-2'){
+              date = [this.js_date_time(new Date(this.data.dateSearch[0])), 
+              this.js_date_time(new Date(this.data.dateSearch[1]))]
+            }
+          }
+        })
+      } 
+     
+      this.setData({
+        dateTypeList: dateTypeList,
+        dateDefault: dateDefault,
+        dataDefaultSearch: date
+ 
+      })
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    choose(e) {
+      let _this = this
+      let item = e.currentTarget.dataset.item
+
+      if (item.value == -2) {
+        _this.setData({
+          show: true
+        })
+        setTimeout(function () {
+          _this.setData({
+            active: 0
+          })
+        }, 100)
+      } else {
+        _this.setData({
+          dateDefault: item
+        })
+
+        let date = []
+        if (item.value == 3) {
+          date = [this.js_date_time(new Date()), this.js_date_time(new Date())]
+        }
+
+        this.setData({
+          dataDefaultSearch: date
+        }) 
+        this.triggerEvent('dateCommit', {
+          date: date,
+          dateType: this.data.dateType,
+          dateDefault: this.data.dateDefault
+        })
+      }
+    },
+
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    changeDate(e) { 
+      let dateSearch = this.data.dateSearch;
+      dateSearch[e.currentTarget.dataset.index] = e.detail
+      this.setData({
+        dateSearch: dateSearch
+      }) 
+    },
+    /**时间戳转化时间 */
+    js_date_time(unixtime) {
+      var date = new Date(unixtime);
+      var y = date.getFullYear();
+      var m = date.getMonth() + 1;
+      m = m < 10 ? ('0' + m) : m;
+      var d = date.getDate();
+      d = d < 10 ? ('0' + d) : d;
+      var h = date.getHours();
+      h = h < 10 ? ('0' + h) : h;
+      var minute = date.getMinutes();
+      var second = date.getSeconds();
+      minute = minute < 10 ? ('0' + minute) : minute;
+      second = second < 10 ? ('0' + second) : second;
+      // return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
+      // return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      return y + '-' + m;
+
+    },
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    onCloseChooseDate() {
+      this.setData({
+        show: false
+      })
+      this.setData({
+        dateSearch: [new Date().getTime(), new Date().getTime()],
+      })
+    },
+
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    onConfirmChooseDate() {
+      this.setData({
+        show: false,
+        dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
+      })
+      let date = [this.js_date_time(new Date(this.data.dateSearch[0])),
+        this.js_date_time(new Date(this.data.dateSearch[1]))
+      ]
+      this.setData({
+        dataDefaultSearch: date
+      })
+      this.triggerEvent('dateCommit', {
+        date: date,
+        dateType: this.data.dateType,
+        dateDefault: this.data.dateDefault
+      })
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.json

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

+ 38 - 0
components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.wxml

@@ -0,0 +1,38 @@
+<wxs module="mdate">
+  var format = function (time) {
+    var date = getDate(time);
+    var year = date.getFullYear()
+    var month = date.getMonth() + 1
+    var day = date.getDate()
+    return year + '-' + month 
+  }
+  module.exports.format = format;
+</wxs>
+<van-cell catchtap="choose" data-item="{{item}}" wx:for="{{dateTypeList}}"
+  title-class="{{item.value == dateDefault.value?'blue-blue':''}}" wx:key="index" title="{{item.text}}">
+  <van-icon wx:if="{{item.value == dateDefault.value && item.value != -2}}" slot="right-icon" name="success"
+    class="blue-blue" />
+  <view   slot="right-icon" class="blue-blue">
+    {{mdate.format(dateSearch[0])}} - {{mdate.format(dateSearch[1])}}
+  </view>
+</van-cell>
+
+<!-- 日期 -->
+<view class="drop-open" wx:if="{{show}}">
+<van-popup show="{{ show }}" position="bottom" bind:close="onCloseChooseDate" bind:click-overlay="onCloseChooseDate">
+  <view style="display:flex;justify-content: space-around;height:80rpx;">
+    <view style="width:45%;text-align: left;color:#b6b6b6;line-height:80rpx;" catchtap="onCloseChooseDate">取消</view>
+    <view style="width:45%;text-align: right;color:#1989fa;line-height:80rpx;" catchtap="onConfirmChooseDate">确定</view>
+  </view>
+  <van-tabs active="{{ active }}" >
+    <van-tab title="从{{  mdate.format(dateSearch[0]) }}">
+      <van-datetime-picker bindonlyinput="changeDate" data-index="0" show-toolbar="{{false}}" type="year-month" loading="{true}"
+        value="{{  dateSearch[0] }}" />
+    </van-tab>
+    <van-tab title="到{{ mdate.format(dateSearch[1]) }}">
+      <van-datetime-picker type="year-month" bindonlyinput="changeDate" show-toolbar="{{false}}" data-index="1" loading="{true}"
+        value="{{  dateSearch[1] }}" />
+    </van-tab>
+  </van-tabs>
+</van-popup>
+</view>

+ 10 - 0
components/dkbase/dk-dropdown-date-month/dk-dropdown-date-month.wxss

@@ -0,0 +1,10 @@
+
+.blue-blue {
+  color: #1989fa
+}
+.drop-open{
+  width: 100%;
+  height: 700rpx;
+  display: flex;
+  align-content: flex-end;
+}

+ 308 - 0
components/dkbase/dk-dropdown-date/dk-dropdown-date.js

@@ -0,0 +1,308 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:一览界面日期下拉组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-5-5			1.00		   	  新建
+ *******************************************************************************/
+const util = require('../../../utils/util.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    //类型
+    dateType: {
+      type: String,
+      default: 'createtime'
+    },
+    //默认值
+    defaultValue: {
+      type: String,
+      default: '-1'
+    },
+    // 是否有
+    blankFlag: {
+      type: Boolean,
+      default: true
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    show: false,
+    active: null,
+    dateDefault: {},
+    dateTypeList: [],
+    dateSearch: [new Date().getTime() + 100, new Date().getTime() + 100],
+    // 往组件外返回值
+    dataDefaultSearch: [],
+    createTimeType: { text: '时间', value: -1 },
+    createTimeTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '本年', value: 4 },
+      { text: '近7天', value: 6 },
+      { text: '近30天', value: 5 },
+      { text: '自定义', value: -2 },
+    ],
+    accountTimeType: { text: '时间', value: -1 },
+    accountTimeTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+
+    deliveryDateType: { text: '时间', value: -1 },
+    deliveryDateTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+    installDateType: { text: '时间', value: -1 },
+    installDateTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+
+    repairDateType: { text: '时间', value: -1 },
+    repairDateTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+    presaleDateType: { text: '时间', value: -1 },
+    presaleDateTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+    customDateType: { text: '时间', value: -1 },
+    customDateTypeList: [
+      { text: '本日', value: 1 },
+      { text: '本周', value: 2 },
+      { text: '本月', value: 3 },
+      { text: '自定义', value: -2 },
+    ],
+  },
+
+  lifetimes: {
+    attached: function () {
+      this.init()
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    init() {
+      let dateTypeList = []
+      let dateType = this.data.dateType
+      // 创建日期
+      if (dateType === 'createtime') {
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.createTimeType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.createTimeTypeList)
+      }
+      // 账务日期
+      else if (dateType === 'accountdate') {
+        // dateTypeList = this.data.accountTimeTypeList
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.accountTimeType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.accountTimeTypeList)
+      }
+
+      // 送货日期
+      else if (dateType === 'deliverydate') {
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.deliveryDateType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.deliveryDateTypeList)
+      }
+
+      // 安装日期
+      else if (dateType === 'installdate') {
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.installDateType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.installDateTypeList)
+      }
+      // 维修日期
+      else if (dateType === 'repairdate') {
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.installDateType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.presaleDateTypeList)
+      }
+      else if (dateType === 'presaledate') {
+
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.presaleDateType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.presaleDateTypeList)
+      }
+      else if (dateType === 'customdate') {
+
+        if (this.data.blankFlag) {
+          dateTypeList.push(this.data.customDateType)
+        }
+        dateTypeList = dateTypeList.concat(this.data.customDateTypeList)
+      }
+      let dateDefault = {}
+      let date = []
+      // debugger
+      // 默认值
+      if (dateTypeList != null) {
+        dateTypeList.forEach(item => {
+          if (item.value + '' === this.data.defaultValue + '') {
+            dateDefault.value = item.value
+            dateDefault.text = item.text
+            console.log('item', item)
+            if (item.value + '' == '1') {
+              date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
+            }
+            else if (item.value + '' == '2') {
+              date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
+            }
+            else if (item.value + '' == '3') {
+              date = util.getCurrentMonth();
+            }
+            else if (item.value + '' == '6') {
+              date = util.timeForMat(7)
+            }
+            else if (item.value + '' == '5') {
+              date = util.timeForMat(30)
+            }
+            else if (item.value + '' == '-2') {
+              date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
+              util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
+            }
+          }
+        })
+      }
+      this.setData({
+        dateTypeList: dateTypeList,
+        dateDefault: dateDefault,
+        dataDefaultSearch: date,
+        dateSearch: [new Date(this.data.dateSearch[0]).getTime(), new Date(this.data.dateSearch[1]).getTime()]
+      })    },
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    choose(e) {
+      let _this = this
+      let item = e.currentTarget.dataset.item
+
+      if (item.value == -2) {
+        _this.setData({
+          show: true
+        })
+        setTimeout(function () {
+          _this.setData({
+            active: 0
+          })
+        }, 100)
+      } else {
+        _this.setData({
+          dateDefault: item
+        })
+
+        let date = []
+        if (item.value == 1) {
+          date = [util.formatTime(new Date()).substring(0, 10), util.formatTime(new Date()).substring(0, 10)]
+        }
+        else if (item.value == 2) {
+          date = [util.formatTime(util.getCurrentWeek(0)).substring(0, 10), util.formatTime(util.getCurrentWeek(-6)).substring(0, 10)]
+        }
+        else if (item.value == 3) {
+          date = util.getCurrentMonth();
+
+        } else if (item.value == 4) {
+          let startYear = util.getYear("s", 0)
+          let endYear = util.getYear("e", 0)
+
+
+          //本年
+          date = [util.formatTime(new Date(startYear)).substring(0, 10),
+          util.formatTime(new Date(endYear)).substring(0, 10)]
+        }
+        else if (item.value == 6) {
+          //近30天
+          date = util.timeForMat(7)
+        }
+        else if (item.value == 5) {
+          //近30天
+          date = util.timeForMat(30)
+        }
+        this.setData({
+          dataDefaultSearch: date
+        })
+        this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
+      }
+    },
+
+
+
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    changeDate(e) {
+      let dateSearch = this.data.dateSearch;
+      dateSearch[e.currentTarget.dataset.index] = e.detail
+      this.setData({
+        dateSearch: dateSearch
+      })
+    },
+
+    /**
+     * 日期变化 查询数据 
+     * @param {*} e 
+     */
+    onCloseChooseDate() {
+      this.setData({
+        show: false
+      })
+      this.setData({
+        dateSearch: [new Date().getTime(), new Date().getTime()],
+      })
+    },
+
+    /**
+     * 日期变化 查询 
+     * @param {*} e 
+     */
+    onConfirmChooseDate() {
+      this.setData({
+        show: false,
+        dateDefault: this.data.dateTypeList[this.data.dateTypeList.length - 1]
+      })
+      let date = [util.formatTime(new Date(this.data.dateSearch[0])).substring(0, 10),
+      util.formatTime(new Date(this.data.dateSearch[1])).substring(0, 10)]
+      this.setData({
+        dataDefaultSearch: date
+      })
+      this.triggerEvent('dateCommit', { date: date, dateType: this.data.dateType, dateDefault: this.data.dateDefault })
+    },
+
+
+  }
+})

+ 4 - 0
components/dkbase/dk-dropdown-date/dk-dropdown-date.json

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

+ 39 - 0
components/dkbase/dk-dropdown-date/dk-dropdown-date.wxml

@@ -0,0 +1,39 @@
+<!--界面日期下拉组件-->
+<wxs module="mDate">
+  var format = function (time) {
+    var date = getDate(time);
+    var year = date.getFullYear()
+    var month = date.getMonth() + 1
+    var day = date.getDate()
+    return year + '-' + month + '-' + day
+  }
+  module.exports.format = format;
+</wxs>
+<van-cell catchtap="choose" data-item="{{item}}" wx:for="{{dateTypeList}}"
+  title-class="{{item.value == dateDefault.value?'blue-blue':''}}" wx:key="index" title="{{item.text}}">
+  <van-icon wx:if="{{item.value == dateDefault.value && item.value != -2}}" slot="right-icon" name="success"
+    class="blue-blue" />
+  <view wx:if="{{item.value == dateDefault.value && item.value == -2}}" slot="right-icon" class="blue-blue">
+    {{mDate.format(dateSearch[0])}} - {{mDate.format(dateSearch[1]) }}
+  </view>
+</van-cell>
+
+<!-- 日期 -->
+<view class="drop-open" wx:if="{{show}}">
+<van-popup show="{{ show }}" custom-style="border-radius:30rpx 30rpx 0 0;" position="bottom" bind:close="onCloseChooseDate" bind:click-overlay="onCloseChooseDate">
+  <view style="display:flex;justify-content: space-around;height:80rpx;">
+    <view style="line-height:36rpx;width:45%;text-align: left;color:#2E3853;font-size:28rpx;font-weight:400;line-height:80rpx;" catchtap="onCloseChooseDate">取消</view>
+    <view style="line-height:36rpx;width:45%;text-align: right;color:#00A7B5;font-size:28rpx;font-weight:400;line-height:80rpx;" catchtap="onConfirmChooseDate">确定</view>
+  </view>
+  <van-tabs active="{{ active }}" nav-class="nav-class" color="#00A7B5;">
+    <van-tab title="从{{mDate.format(dateSearch[0])}}">
+      <van-datetime-picker bindonlyinput="changeDate" show-toolbar="{{false}}" data-index="0" type="date" loading="{true}"
+        value="{{ dateSearch[0] }}" />
+    </van-tab>
+    <van-tab title="到{{mDate.format(dateSearch[1])}}">
+      <van-datetime-picker type="date" bindonlyinput="changeDate" show-toolbar="{{false}}" data-index="1" loading="{true}"
+        value="{{ dateSearch[1] }}" />
+    </van-tab>
+  </van-tabs>
+</van-popup>
+</view>

+ 13 - 0
components/dkbase/dk-dropdown-date/dk-dropdown-date.wxss

@@ -0,0 +1,13 @@
+
+.blue-blue {
+  color: #1989fa
+}
+.drop-open{
+  width: 100%;
+  height: 700rpx;
+  display: flex;
+  align-content: flex-end;
+}
+.nav-class{
+  background: #fff;
+}

+ 121 - 0
components/dkbase/dk-dropdown-switch/dk-dropdown-switch.js

@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:一览界面状态下拉组件-switch
+  * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-4-28			1.00		   	新建
+ *******************************************************************************/
+
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    //数据源
+    dataList: {
+      type: Array,
+      default: []
+    },
+    // 全选和确定按钮是否显示
+    onAllChanageFlag:{
+      type:Boolean,
+      value:true
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    allCheck: true
+  },
+
+  lifetimes: {
+    attached: function () {},
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 调用查询
+     * @param {*} e 
+     */
+    commit(e) { 
+      // 取出被选中的数据
+      let dataListTemp = [];
+      let values = [] 
+      for (let index = 0; index < this.data.dataList.length; index++) {
+        if (this.data.dataList[index].checked) {
+          let item = this.data.dataList[index]
+          dataListTemp.push(item.text);
+          values.push(item.value)
+        }
+      }
+
+      this.triggerEvent('commit', {
+        values: values.join(','),
+        dataList: dataListTemp
+      })
+    },
+    // 切换功能   
+    onSwitchChange(e) { 
+      var index = e.target.dataset.index;
+      var dataList = this.data.dataList;
+      var truenumber = 0
+      var falsenumber = 0
+      var allflag=false
+      // 设置点击的项目 的值
+      for (let i = 0; i < dataList.length; i++) {
+        if (i == index) {
+          dataList[i].checked = !dataList[i].checked
+          break;
+        }
+      }
+      for (let i = 0; i < dataList.length; i++) {
+        if (dataList[i].checked) {
+          truenumber++
+        } else {
+          falsenumber++
+        }
+      }
+      if(dataList.length==truenumber){
+         allflag=true
+      }
+      if(dataList.length==falsenumber){
+        allflag=false
+     }
+      this.setData({
+        dataList: dataList,
+        allCheck:allflag
+      });
+
+      
+      this.triggerEvent('onSwitchChange', {
+        index: index
+      })
+    },
+    /**
+     * 全选/全不选
+     * @param {*} e 
+     */
+    onAllChanage(e) {
+      let allCheck = e.detail 
+      var dataList = this.data.dataList;
+      // 设置点击的项目 的值
+      for (let i = 0; i < dataList.length; i++) {
+        dataList[i].checked = allCheck
+      }
+      this.setData({
+        dataList: dataList,
+        allCheck: allCheck
+      });
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-dropdown-switch/dk-dropdown-switch.json

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

+ 17 - 0
components/dkbase/dk-dropdown-switch/dk-dropdown-switch.wxml

@@ -0,0 +1,17 @@
+<!--一览界面状态下拉组件-switch-->
+<scroll-view class="{{dataList.length<4?'':'scroll-view'}}" scroll-y="{{true}}">
+  <view wx:for="{{dataList}}" data-item="{{item}}" wx:key="index" style="display: flex;padding: 0 44rpx 0 44rpx;align-items: center;justify-content: space-between;line-height: 100rpx;">
+    <text style="font-size: 16px;color:#2E3853;">{{item.text}}</text>
+    <van-switch style="display: flex;align-items: center;" slot="right-icon" inactive-color="#e5e5e5" active-color="#00A7B5" size="26px"  checked="{{ item.checked }}" data-index="{{index}}"
+      bind:change="onSwitchChange" />
+  </view>
+</scroll-view>
+<view style="height:151rpx;position: relative;">
+  <view 
+    class="btn-view">
+    <van-switch wx:if="{{onAllChanageFlag ==true}}" inactive-color="#e5e5e5" v-model="{{ allCheck }}" style="display: flex;align-items: center;" size="26px" active-color="#00A7B5" bind:change="onAllChanage" />
+    <van-button type="info" custom-style="height: 88rpx;background:#1B365D;border:1px solid #1B365D;font-size:16px;" style="width:{{onAllChanageFlag ==true ? '358rpx;' : '716rpx;'}}" size="small" block round bind:click="commit">
+      确认
+    </van-button>
+  </view>
+</view>

+ 21 - 0
components/dkbase/dk-dropdown-switch/dk-dropdown-switch.wxss

@@ -0,0 +1,21 @@
+.scroll-view{
+  height:50vw
+}
+
+.btn-view{
+  height: 100%;
+  width: calc(100% - 80rpx);
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding-left: 40rpx;
+  padding-right: 40rpx;
+  background: #fff;
+  z-index: 1;
+  border-radius: 0px 0px 30rpx 30rpx;
+}
+
+.title-class{ 
+  font-size:16px !important;
+  color: #2E3853 !important;
+}

+ 42 - 0
components/dkbase/dk-empty/dk-empty.js

@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-空状态时的占位提示。
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    description: {
+      type: String,
+      value: '暂无数据'
+    },
+    image: {
+      type: String,
+      value: 'default'
+    },
+  },
+
+  options: {
+    multipleSlots: true
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
components/dkbase/dk-empty/dk-empty.json

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

+ 8 - 0
components/dkbase/dk-empty/dk-empty.wxml

@@ -0,0 +1,8 @@
+<van-empty description="{{description}}" image = "{{image}}">
+  <view slot="image">
+    <slot name="image"></slot>
+  </view>
+  <view slot="description">
+    <slot name="description"></slot>
+  </view>
+</van-empty>

+ 1 - 0
components/dkbase/dk-empty/dk-empty.wxss

@@ -0,0 +1 @@
+/* components/dkbase/dk-empty/dk-empty.wxss */

+ 146 - 0
components/dkbase/dk-field/dk-field.js

@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:dkField组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-22  			1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    name: String, //在表单内提交时的标识符
+    label: String,//输入框左侧文本
+    size: String,//单元格大小,可选值为 large
+    value: [String, Number],//当前输入的值
+    icon: String,
+    type: String,//可设置为任意原生类型, 如 number idcard textarea digit
+    fixed: Boolean,//如果 type 为 textarea 且在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true
+    focus: Boolean,//获取焦点   
+    disabled: Boolean,//是否禁用输入框
+    error: Boolean,//是否将输入内容标红
+    center: Boolean,//是否使内容垂直居中
+    password: Boolean,//是否是密码类型
+    isLink: Boolean,//是否展示右侧箭头并开启点击反馈
+    leftIcon: String,//左侧图标名称或图片链接,可选值见 Icon 组件
+    rightIcon: String,//右侧图标名称或图片链接,可选值见 Icon 组件
+    autosize: Boolean,//是否自适应内容高度,只对 textarea 有效, 可传入对象,如 { maxHeight: 100, minHeight: 50 }, 单位为px
+    autoFocus: Boolean,//自动聚焦,拉起键盘
+    required: Boolean,//是否显示表单必填星号    
+    clickable: Boolean,//是否开启点击反馈 
+    errorMessage: String,//	底部错误提示文案,为空时不展示
+    arrowDirection: String,//箭头方向,可选值为 left up down
+    showWordLimit: Boolean,//是否显示字数统计,需要设置maxlength属性
+    errorMessageAlign: String,//底部错误提示文案对齐方式,可选值为 center right
+    placeholder: String,//输入框为空时占位符
+    placeholderStyle: String,//指定 placeholder 的样式
+    customStyle: String,//自定义样式
+    readonly: Boolean,//是否只读
+    clearable: Boolean, //是否启用清除控件 
+    inputAlign: {
+      type: String,
+      value: 'left'
+    },//输入框内容对齐方式,可选值为 center right 
+    border: {
+      type: Boolean,
+      value: true
+    },//是否显示内边框
+    //标题宽度
+    titleWidth: {
+      type: String,
+      value: '6.2em',
+    },
+    // 最大输入长度,设置为 -1 的时候不限制最大长度
+    maxlength: {
+      type: Number,
+      value: -1,
+    },
+    //设置键盘右下角按钮的文字,仅在 type='text' 时生效
+    confirmType: {
+      type: String,
+      value: 'done',
+    },
+    confirmHold: Boolean, //点击键盘右下角按钮时是否保持键盘不收起,在 type='textarea' 时无效
+    holdKeyboard: Boolean, //focus 时,点击页面的时候不收起键盘
+    // 输入框聚焦时底部与键盘的距离
+    cursorSpacing: {
+      type: Number,
+      value: 50,
+    },
+    //键盘弹起时,是否自动上推页面
+    adjustPosition: {
+      type: Boolean,
+      value: true
+    },
+    //是否显示键盘上方带有”完成“按钮那一栏,只对 textarea 有效
+    showConfirmBar: {
+      type: Boolean,
+      value: true
+    },
+    // 光标起始位置,自动聚集时有效,需与 selection-end 搭配使用
+    selectionStart: {
+      type: Number,
+      value: -1,
+    },
+    // 光标结束位置,自动聚集时有效,需与 selection-start 搭配使用
+    selectionEnd: {
+      type: Number,
+      value: -1,
+    },
+
+    rightIconClass: String,//右侧图标样式类
+    labelClass: String,//左侧文本样式类
+    inputClass: String,//输入框样式类
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 输入内容时触发
+     * @param {*} event 
+     */
+    onInput(event) {
+      this.triggerEvent("input", event)
+    },
+    /**
+         * 输入内容时触发
+         * @param {*} event 
+         */
+    onChange(event) {
+      this.triggerEvent("change", event)
+    },
+    /**
+         * 点击完成按钮时触发
+         * @param {*} event 
+         */
+    onConfirm(event) {
+      this.triggerEvent("confirm", event)
+    },
+    /**
+     * 输入框聚焦时触发
+     * @param {*} event 
+     */
+    onFocus(event) {
+      this.triggerEvent("focus", event)
+    },
+    /**
+     * 点输入框失焦时触发
+     * @param {*} event 
+     */
+    onBlur(event) {
+      this.triggerEvent("blur", event)
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-field/dk-field.json

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

+ 24 - 0
components/dkbase/dk-field/dk-field.wxml

@@ -0,0 +1,24 @@
+<van-field name="{{ name }}" value="{{ value }}" center="{{center}}" label="{{label}}" size="{{ size }}" type="{{ type }}" fixed="{{ fixed }} " focus="{{ focus }}" placeholder="{{placeholder}}" border="{{ border }}" disabled="{{ disabled }}" readonly="{{ readonly }}" clearable="{{clearable}}" clickable="{{ clickable }}" required="{{required}}" center="{{center}}" password="{{password}}" maxlength="{{maxlength}}" title-width="{{titleWidth}}" placeholder="{{placeholder}}" placeholder-style="{{placeholderStyle}}" custom-style="{{customStyle}}" is-link="{{isLink}}" arrow-direction="{{arrowDirection}}" show-word-limit="{{showWordLimit}}" error="{{error}}" error-message="{{errorMessage}}" error-message-align="{{errorMessageAlign}}" input-align="{{inputAlign}}" autosize="{{autosize}}" left-icon="{{leftIcon}}" right-icon="{{rightIcon}}" confirm-type="{{cursorSpacing}}" confirm-hold="{{confirmHold}}" hold-keyboard="{{holdKeyboard}}" cursor-spacing="{{cursorSpacing}}" adjust-position="{{adjustPosition}}" show-confirm-bar="{{showConfirmBar}}" selection-start="{{ selectionStart }} " selection-end="{{ selectionEnd }} " auto-focus="{{autoFocus}}"
+input-class="{{inputClass}}" label-class="{{labelClass}}" right-icon-class="{{rightIconClass}}" 
+ bind:input="onInput" bind:change="onChange" bind:confirm="onConfirm" bind:focus="onFocus" bind:blur="onBlur">
+  <!-- label	自定义输入框标签,如果设置了label属性则不生效
+left-icon	自定义输入框头部图标
+right-icon	自定义输入框尾部图标
+button	自定义输入框尾部按钮
+input	自定义输入框,使用此插槽后,与输入框相关的属性和事件将失效 -->
+  <view slot="button">
+    <slot name="button"></slot>
+  </view>
+  <view slot="label">
+    <slot name="label"></slot>
+  </view>
+  <view slot="input">
+    <slot name="input"></slot>
+  </view>
+  <view slot="right-icon">
+    <slot name="right-icon"></slot>
+  </view>
+  <view slot="left-icon">
+    <slot name="left-icon"></slot>
+  </view>
+</van-field>

+ 1 - 0
components/dkbase/dk-field/dk-field.wxss

@@ -0,0 +1 @@
+/* components/dk-field/dk-field.wxss */

+ 39 - 0
components/dkbase/dk-grid-view/dk-grid-view.js

@@ -0,0 +1,39 @@
+/*******************************************************************************
+* Copyright(c) 2022 dongke All rights reserved. / Confidential
+* 类的信息:
+*		1.程序名称:
+*		2.功能描述:gridview 图片布局 例如购物车商品列表
+* 编辑履历:
+*		作者				日期					版本			修改内容
+*		admin		  2022-05-03	  1.00		   	gridview 图片布局
+*******************************************************************************/
+
+Component({
+  /**
+   * 组件的对外属性
+   */
+  properties: {
+    goodsList: {
+      type: Array,
+      value: []
+    }
+  },
+
+  data: { 
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /** 跳转明细页 */
+    toGoodsDetail(e) {
+      let item = e.currentTarget.dataset.item
+      let index = e.currentTarget.dataset.index
+      this.triggerEvent('toGoodsDetail', {
+        item: item,
+        index: index
+      })
+    },
+  }, 
+})

+ 4 - 0
components/dkbase/dk-grid-view/dk-grid-view.json

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

+ 16 - 0
components/dkbase/dk-grid-view/dk-grid-view.wxml

@@ -0,0 +1,16 @@
+<!-- gridview 图片布局 例如购物车商品列表 -->
+<view class="goods-view">
+  <view wx:for="{{goodsList}}" info="{{3}}" wx:key="index" catchtap="toGoodsDetail" data-item="{{item}}"  data-index="{{index}}">
+    <image src="" />
+    <image src="{{item.picPath}}"></image>
+    <view>
+      <view>{{item.name}}</view>
+      <view>
+        <view>{{item.price}}</view>
+        <view style="color:#8A8A8A">
+          <image style='width:5vw;height:5vw;' src="/static/image/eye.png"></image>{{item.lookCount}}
+        </view>
+      </view>
+    </view>
+  </view>
+</view>

+ 62 - 0
components/dkbase/dk-grid-view/dk-grid-view.wxss

@@ -0,0 +1,62 @@
+.goods-view {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.goods-view>view:nth-child(n) {
+  width: 45.5%;
+  margin-left: 3%;
+  background: #fff;
+  border-radius: 16rpx;
+  overflow: hidden;
+  margin-bottom: 3vw;
+}
+
+.goods-view>view:nth-child(n)>image:nth-child(1) {
+  position: absolute;
+  width: 15vw;
+  height: 15vw;
+  transform: rotate(270deg);
+}
+
+.goods-view>view:nth-child(n)>image:nth-child(2) {
+  width: 100%;
+  height: 41.5vw;
+}
+
+.goods-view>view:nth-child(n)>view:nth-child(3) {
+  padding: 2.5vw;
+}
+
+.goods-view>view:nth-child(n)>view:nth-child(3)>view:nth-child(1) {
+  width: 100%;
+  font-size: 3.5vw;
+  text-overflow: -o-ellipsis-lastline;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  line-clamp: 2;
+  -webkit-box-orient: vertical;
+}
+
+.goods-view>view:nth-child(n)>view:nth-child(3)>view:nth-child(2) {
+  display: flex;
+  justify-content: space-between;
+  margin-top: 2vw;
+}
+
+.goods-view>view:nth-child(n)>view:nth-child(3)>view:nth-child(2)>view:nth-child(1) {
+  color: rgb(255, 97, 70);
+  font-size: 5vw;
+  display: flex;
+  align-items: center;
+}
+
+.goods-view>view:nth-child(n)>view:nth-child(3)>view:nth-child(2)>view:nth-child(2) {
+  display: flex;
+  align-items: center;
+  font-size: 3vw;
+  color: #afafaf;
+}

+ 31 - 0
components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.js

@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-线性布局渐变的view
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    style:String
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.json

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

+ 0 - 0
components/dkbase/dk-linear-gradient-view/dk-linear-gradient-view.wxss


+ 325 - 0
components/dkbase/dk-number-input/dk-number-input.js

@@ -0,0 +1,325 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:数字组件(支持千分位,金额符)
+ *		2.功能描述:dk-number-input组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		周兴		  	2022-6-30  			1.00		   	  新建
+ *******************************************************************************/
+const common = require('../../../utils/common.js')
+Component({
+
+  options: {
+    addGlobalClass: true,
+  },
+
+  properties: {
+    titleValue: {
+      type: String,
+      value: ''
+    },
+    titleColor: {
+      type: String,
+      value: '#1B365D'
+    },
+    inputColor: {
+      type: String,
+      value: '#1B365D'
+    },
+    readonly: {
+      type: Boolean,
+      value: false
+    },
+    /**
+     * 输入的数据
+     */
+    inputValue: {
+      type: Float32Array,
+      value: 0, 
+    },
+    /**
+     * 是否支持千分位
+     */
+    formatThousandth: {
+      type: Boolean,
+      value: true
+    },
+    /**
+     * 是否可用
+     */
+    disabled: {
+      type: Boolean,
+      value: false
+    },
+    /**
+     * 金额符
+     */
+    sign: {
+      type: String,
+      value: '¥'
+    },
+    percent: {
+      type: String,
+      value: '%'
+    },
+    percentSignFlag: {
+      type: Boolean,
+      value: false
+    },
+    /**
+     * 标识的大小
+     */
+    signSize: {
+      type: String,
+      value: ''
+    },
+    /**
+     * 是否居中
+     */
+    center: {
+      type: String,
+      value: 'center'
+    },
+    /**
+     * 小数位数
+     */
+    digits: {
+      type: Number,
+      value: 2
+    },
+    /**
+     * 最大值
+     */
+    max: {
+      type: Number,
+      value: 10000000
+    },
+    /**
+     * 字体大小
+     */
+    fontSize: {
+      type: Number,
+      value: 13
+    },
+    /**
+     * 字体大小
+     */
+    fontWeight: {
+      type: String,
+      value: 'nomal'
+    },
+    /**
+     * 是否是负数处理(输入整数,自动变为负数)
+     */
+    negative: {
+      type: Boolean,
+      value: false
+    },
+    /**
+     * 提示信息
+     */
+    placeholder: {
+      type: String,
+      value: ''
+    },
+    maxFlag: {
+      type: Boolean,
+      value: true
+    },
+    dataIndex:{
+      type:Number,
+    },
+    dataIndex2:{
+      type:Number,
+    },
+  },
+
+
+  data: {
+    focus: false,
+    displayValue: '',
+    clearFlag: false,
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+    * @desc : 光标进入选中
+    * @author : 周兴
+    * @date : 2022/6/30 16:16
+    */
+    handleInput(e) {
+      if (this.data.readonly) {
+        return
+      }
+      setTimeout(() => {
+        this.setData({
+          inputValue: parseFloat(this.data.inputValue),
+          displayValue: this.data.inputValue,
+          focus: true
+        })
+      }, 30)
+    },
+    /**
+    * @desc : 输入时数据的处理
+    * @author : 周兴
+    * @date : 2022/6/30 16:16
+    */
+    bindInput(e) {
+      // console.log('ddd1',e,this.data.inputValue,e.detail.value.endsWith('.'));
+      let flag = true;
+      let values = e.detail.value.split('.')
+      // 如果输入的是小数点,那么需要判断是否已经有小数点
+      if (e.detail.value.endsWith('.')) {
+        // 说明有多个小数点
+        // console.log('zzz',values,this.data.inputValue,(this.data.inputValue + '').indexOf('.'));
+        if (values && values.length > 2) {
+          if ((this.data.inputValue + '').indexOf('.') >= 0) {
+            return this.data.inputValue;
+          } else {
+            // 可能连续输入2个小数点
+            return this.data.inputValue + '.';
+          }
+        }
+        // 如果inputValue是空,那么当成0处理
+        if (e.detail.value == '.') {
+          return '0.';
+        }
+        flag = false;
+      }
+      //控制小数点后数字的输入
+      let digits = this.data.digits
+      if (values && values.length === 2 && values[1].length > digits) {
+        flag = false;
+        return this.data.inputValue;
+      }
+
+      if (flag) {
+        let value = 0;
+        // 判断是否超过最大值
+        if (this.data.maxFlag) {
+          if (e.detail.value > this.data.max) {
+            value = this.data.max
+          } else {
+            value = e.detail.value
+          }
+        } else {
+          value = e.detail.value
+        }
+        this.setData({
+          clearFlag: false,
+          inputValue: value,
+        })
+        this.handleData()
+      }
+    },
+    /**
+    * @desc : 光标离开处理数据的显示
+    * @author : 周兴
+    * @date : 2022/6/30 16:16
+    */
+    bindBlur() {
+      if (this.data.clearFlag) {
+        this.setData({
+          inputValue: 0,
+          displayValue: 0,
+          clearFlag: false
+        })
+      }
+      // 处理数据
+      if (this.data.inputValue) {
+        this.setData({
+          inputValue: Number(this.data.inputValue)
+        })
+      }
+      // 离开的时候进行数据处理
+      // this.handleDisplayValue();
+      this.triggerEvent('triggerBindBlur',{
+        inputValue:this.data.inputValue,
+        index:this.data.dataIndex,
+        index2:this.data.dataIndex2,
+      })
+      this.setData({
+        focus: false
+      })
+    },
+
+    /**
+    * @desc : 绑定值
+    * @author : 周兴
+    * @date : 2022/6/30 16:16
+    */
+    handleData() {
+      let value = this.data.inputValue;
+
+      if (value == null || value == '') {
+        this.setData({
+          clearFlag: true
+        })
+        value = 0
+      }
+      if (isNaN(value)) {
+        value = 0
+      }
+      // 如果负数标识开启
+      if (this.data.negative) {
+        if (value > 0) {
+          value = -1 * value;
+        }
+      } else {
+        if (value < 0) {
+          value = -1 * value;
+        }
+      }
+      this.triggerEvent('triggerBindValue', {
+        value: value
+      })
+    },
+
+    /**
+    * @desc : 处理数据的显示
+    * @author : 周兴
+    * @date : 2022/6/30 16:16
+    */
+    handleDisplayValue() {
+      let inputValue = this.data.inputValue;
+      let displayValue = ''
+      // if(inputValue != undefined && inputValue != 0){
+      //添加判断条件,当用户输入空数据问题会出现NaN  于继渤2022/06/30 
+      if (inputValue != undefined && inputValue && inputValue != 0) {
+        // 判断是否有千分位
+        if (this.data.formatThousandth) {
+          displayValue = common.toThousandCents(inputValue);
+        }
+        // 如果是负数显示
+        if (this.data.negative && displayValue.indexOf("-") < 0) {
+          // displayValue = this.data.sign + "-" + displayValue;
+          displayValue = "-" + displayValue;
+        } else {
+          // 显示金额符号
+          // displayValue = this.data.sign + displayValue;
+        }
+      } else {
+        displayValue = inputValue;
+      }
+      this.setData({
+        displayValue: displayValue
+      })
+    },
+  },
+  /**
+    * 组件生命周期
+    */
+  lifetimes: {
+    attached: function () {
+      //处理数据的显示
+      this.handleDisplayValue();
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+})

+ 4 - 0
components/dkbase/dk-number-input/dk-number-input.json

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

+ 4 - 0
components/dkbase/dk-number-input/dk-number-input.wxml

@@ -0,0 +1,4 @@
+<dk-cell wx:if="{{!focus || disabled}}" height="48rpx" left="1rpx" signSize="{{signSize}}" fontSize="{{fontSize}}" tail="{{percentSignFlag ? '%' : ''}}" percentSignFlag="{{percentSignFlag}}"  contentColor="{{inputColor}}" amount="{{sign?true:false }}"  contentFontWeight="{{fontWeight}}" center="{{center=='right'?'flex-end':center}}" title="{{titleValue}}" content="{{(inputValue || inputValue == 0)?inputValue:null}}" catchtap="handleInput" titleColor="{{titleColor}}"></dk-cell>
+<view wx:else class="input-class" style="--center--:{{center}}">
+  <input  disabled="{{readonly}}" style="color:{{inputColor}};font-size:{{fontSize + 'px'}};font-weight: {{fontWeight}}; height: {{fontSize + 'px'}}" placeholder="{{placeholder}}" type="digit" value="{{inputValue}}" focus='{{focus}}' selection-start='0' selection-start='{{inputValue.length}}' bindinput="bindInput" bindblur='bindBlur'></input> 
+</view>

+ 28 - 0
components/dkbase/dk-number-input/dk-number-input.wxss

@@ -0,0 +1,28 @@
+.cover-view {
+  width: 100%;
+  height: 48rpx;
+  opacity: 0;
+  position: relative;
+  /* left: 15%; */
+  top: -48rpx;
+  z-index: 10;
+  background-color: blue;
+}
+
+/**人民币符号的字体*/
+.sign-class{
+  font-size: var(--fontSize--);
+  color: var(--contentColor--);
+  margin-right: 5rpx;
+  margin-top:5rpx
+}
+
+.total_class{
+  justify-content: center !important;
+}
+
+.input-class{
+  display: flex;
+  width: 100%;
+  text-align:var(--center--) !important;
+}

+ 143 - 0
components/dkbase/dk-number-phone-input/dk-number-phone-input.js

@@ -0,0 +1,143 @@
+
+const Constants = require('../../../utils/Constants.js')
+const util = require('../../../utils/util.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    inputWidth: {  //输入框长度
+      type: String,
+      value: '200'
+    },
+    inputAlign: {  //对齐方式
+      type: String,
+      value: 'left'
+    },
+    disabledInput: {
+      type: Boolean,
+      value: false
+    },
+    label: {
+      type: String,
+      value: '联系电话'
+    },
+    placeholder: {
+      type: String,
+      value: '请输入联系电话'
+    },
+    errorMessage: {
+      type: String,
+      value: ''
+    },
+    errorMessageText: {
+      type: String,
+      value: ''
+    },
+    disabled: {  //禁用
+      type: Boolean,
+      value: false
+    },
+    maxlength: {  //最大位数
+      type: Number,
+      value: 11
+    },
+    type: {
+      type: String,
+      value: 'number'
+    },
+    value: {
+      type: String,
+      value: ''
+    },
+    dataKey: {
+      type: String,
+      value: ''
+    },
+    rightIcon: {  //右侧显示图标
+      type: String,
+      value: ''
+    },
+    labelClass: {  // label样式
+      type: String,
+      value: 'label-blue'
+    },
+    // 字体粗细
+    fontWeight: {
+      type: String,
+      value: 'nomal'
+    }
+
+  },
+
+  options: {
+    styleIsolation: 'shared',
+  },
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    errorMessage: '',
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    changeField(e) {
+      this.triggerEvent('changeField', e)
+    },
+
+    changeFieldblur(e) {
+      // 联系电话格式错误
+      if (e.detail.value && e.detail.value != "") {
+        var myreg = Constants.Mobile_Phone_Number_Regular_Expression
+        if (!myreg.test(e.detail.value)) {
+          this.setData({
+            errorMessageText: this.data.errorMessage
+          })
+          return
+        } else {
+          this.setData({
+            errorMessageText: ''
+          })
+        }
+      } else {
+        this.setData({
+          errorMessageText: ''
+        })
+      }
+      this.triggerEvent('changeFieldblur', e)
+    },
+
+    clickFieldInput(e) {
+      console.log('clickFieldInput', e)
+      this.triggerEvent('clickFieldInput', e)
+    },
+    /**
+     * 联系电话 拨打
+     */
+    onClickphone(e) {
+      console.log('eee', e);
+      let icon = e.target.dataset.icon
+      // 打电话
+      if (icon == 'phone') {
+        if (this.data.value) {
+          // 拨打电话
+          wx.makePhoneCall({
+            phoneNumber: this.data.value,
+          })
+        }
+        this.triggerEvent('onClickphone', e)
+      } else if (icon == 'edit') {
+        // 编辑
+        this.triggerEvent('onEditphone', e)
+      }
+    },
+    copyPhone() {
+      this.triggerEvent('copyPhone', this.data.value)
+      if (!this.data.value) return;
+      util.toCopy(this.data.value, this.data.label);
+    },
+  }
+})

+ 4 - 0
components/dkbase/dk-number-phone-input/dk-number-phone-input.json

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

+ 3 - 0
components/dkbase/dk-number-phone-input/dk-number-phone-input.wxml

@@ -0,0 +1,3 @@
+<van-field input-width="{{inputWidth + 'rpx'}}" disabled="{{disabled}}" input-class="dk-cell-class" style="--fontWeight--:{{fontWeight}};--color--:{{disabled?'#95A8CB':'#1B365D'}}" label-class="{{labelClass}}" input-align="{{inputAlign}}" data-key="{{dataKey}}" maxlength="{{maxlength}}" type="{{type}}" value="{{ value }}" placeholder="{{placeholder}}" autosize border="{{ false }}" bind:change="changeField" right-icon="{{rightIcon}}" color="#95A8CB" bind:blur="changeFieldblur" data-value="{{value}}" data-icon="{{rightIcon}}" bind:onBindInput="{{disabledInput ? 'clickFieldInput': ''}}" error-message="{{errorMessageText}}" bind:click-icon="onClickphone">
+  <view slot="label" catchtap="copyPhone">{{label}}</view>
+</van-field>

+ 19 - 0
components/dkbase/dk-number-phone-input/dk-number-phone-input.wxss

@@ -0,0 +1,19 @@
+.red-label {
+  color: red;
+  font-size: 14px;
+  font-weight: bold;
+}
+
+
+.label-blue {
+  color: #95A8CB;
+  font-size: 14px;
+}
+
+/**cell值颜色**/
+.dk-cell-class {
+  text-align: left !important;
+  font-size: 13px !important;
+  color: var(--color--) !important;
+  font-weight: var(--fontWeight--);
+}

+ 40 - 0
components/dkbase/dk-panel/dk-panel.js

@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-面板
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    title:String,//标题
+    desc:String,//描述
+    status:String,//状态
+    customClass:String,//根节点样式类
+    headerClass:String,//头部样式类
+    footerClass:String,//底部样式类
+  },
+
+  options: {
+    multipleSlots: true,//插槽
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
components/dkbase/dk-panel/dk-panel.json

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

+ 9 - 0
components/dkbase/dk-panel/dk-panel.wxml

@@ -0,0 +1,9 @@
+<van-panel title="{{title}}" desc="{{desc}}" status="{{status}}"
+custom-class="custom-class {{ customClass }}" header-class="header-class {{ headerClass }}" footer-class="footer-class {{ footerClass }}">
+  <view slot="header">
+    <slot name="header"></slot>
+  </view>
+  <view slot="footer">
+    <slot name="footer"></slot>
+  </view>  
+</van-panel>

+ 11 - 0
components/dkbase/dk-panel/dk-panel.wxss

@@ -0,0 +1,11 @@
+.custom-class {
+  background-color: white;
+}
+
+.header-class {
+  background-color: white;
+}
+
+.footer-class {
+  background-color: white;
+}

+ 3 - 0
components/dkbase/dk-progress/dk-linear-gradient-view.wxml

@@ -0,0 +1,3 @@
+<view style="flex-direction: column;justify-content: center;align-items: flex-start;background: linear-gradient(90.12deg, #718AC6 0.84%, #4A5E98 99.43%);border-radius: 15rpx 15rpx 0px 0px; {{style}}">
+  <slot></slot>
+</view>

+ 32 - 0
components/dkbase/dk-progress/dk-progress.js

@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-进度条
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    progress:{
+      type:Number,
+      value:0
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {    
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+  }
+})

+ 4 - 0
components/dkbase/dk-progress/dk-progress.json

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

+ 18 - 0
components/dkbase/dk-progress/dk-progress.wxml

@@ -0,0 +1,18 @@
+<view class="out-view">
+  <view wx:for="{{10}}" wx:for-index="dkprogressIndex" wx:key="dkprogressIndex">
+    <view wx:if="{{(item+1) <= wxs.getInt(progress)}}" style="border-radius: 2rpx;background: #77C5D5;width: 100%;height: 100%;"></view>
+    <view wx:if="{{(item+1) === (wxs.getInt(progress)+1)}}" style="{{'border-radius: 2rpx;background: #77C5D5;width: '+(wxs.getFloat(progress)*100)+'%;height: 100%;'}}"></view>
+  </view>
+</view>
+
+<wxs module="wxs">
+  var getInt = function(number){
+    return parseInt(number/10)
+  }
+  var getFloat = function(number){
+    var arr =  parseFloat(number/10).toFixed(2).split(".")
+    return parseFloat('0.'+arr[1])
+  }
+  module.exports.getInt = getInt;
+  module.exports.getFloat = getFloat;
+</wxs>

+ 14 - 0
components/dkbase/dk-progress/dk-progress.wxss

@@ -0,0 +1,14 @@
+.out-view{
+  display: flex;
+  justify-content: flex-end;
+}
+.out-view>view:nth-child(n){
+  height: 21rpx;
+  width: 10rpx;
+  background: #AFBED9;
+  border-radius: 2rpx;
+  overflow: hidden;
+}
+.out-view>view:nth-child(n+2){
+  margin-left: 2rpx;
+}

+ 100 - 0
components/dkbase/dk-save-bottom/dk-save-bottom.js

@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		  	2022-5-05			1.00		 底部工具栏-保存
+ *******************************************************************************/
+
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    item: { //参数
+      type: Object,
+      default: {
+        label_one: '合计金额',
+        label_two: '定金金额',
+        label_three: '定金比率',
+        submit: '保存'
+      }
+    },
+    submitFlag: {  //按钮显示隐藏
+      type: Boolean,
+      value: true,
+    },
+    allCleanFlag: {//按钮显示隐藏
+      type: Boolean,
+      value: true,
+    },
+    buyingSignalFlag: {
+      type: Boolean,
+      value: false,
+    },
+    totallength: { //合计数量
+      type: String,
+      default: '0.00'
+    },
+    selectlength: { // 已选 或  共件
+      type: String,
+      default: '0.00'
+    },
+    selectTotallength: { //   共件
+      type: String,
+      default: '0.00'
+    },
+    flagTypeName: { //属性
+      type: String,
+      default: 'order-save'
+    },
+    disabledFlag:{
+      type: Boolean,
+      value: false,
+    }
+  },
+
+  options: {
+    multipleSlots: true,//插槽
+
+    styleIsolation: 'shared',
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    allCheck: true,
+  },
+
+  /**
+    * 组件生命周期
+    */
+  lifetimes: {
+    attached: function () {
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 确定
+     */
+    submit() {
+      this.triggerEvent('submit')
+    },
+    /**
+     * 批量清理
+     */
+    allClean() {
+      this.triggerEvent('allClean')
+    },
+
+  }
+})

+ 4 - 0
components/dkbase/dk-save-bottom/dk-save-bottom.json

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

+ 395 - 0
components/dkbase/dk-save-bottom/dk-save-bottom.wxml

@@ -0,0 +1,395 @@
+<!--  底部工具栏-保存 -->
+<view class="{{flagTypeName=='order-choose-goods'?'bottom-class-2':'bottom-class-1'}}">
+  <!-- 订单开单保存 -->
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='order-save'}}">
+
+    <view style="width:50%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+        <!-- <view style="color: #CAA977;font-size: 32rpx;line-height: 40rpx;display: flex;align-items: center;">
+          <view style="font-size: 22rpx;line-height: 25rpx;width: 25rpx;">¥</view>{{totallength}}
+        </view> -->
+      </view>
+      <dk-cell contentFontSize="16" height="44rpx" fontWeight="600" left="0rpx" contentColor="#CAA977" title="" content="{{ totallength}}"></dk-cell>
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width: 50%; display: flex;">
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+      </view>
+      <view style="width: 19rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#1B365D" custom-style="height:88rpx;" bind:click="submit" type="info">保存
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+  <!-- 审批拒绝 -->
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='order-save-apvResul'}}">
+
+    <view style="width:50%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+      </view>
+      <dk-cell contentFontSize="16" height="44rpx" fontWeight="600" left="0rpx" contentColor="#CAA977" title="" content="{{ totallength}}"></dk-cell>
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width: 50%; display: flex;">
+   
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button wx:if="{{allCleanFlag}}" round size="large" color="#CAA977" custom-style="height:88rpx;"   bind:click="allClean" type="default">收款
+        </van-button>
+      </view>
+      <view style="width: 19rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#1B365D" custom-style="height:88rpx;" bind:click="submit" type="info">保存
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+  <view class="save-bottom" wx:if="{{flagTypeName ==='order-save-amount'}}" style="display: flex; padding-top: 6vw;">
+    <view style="width:50%;height:55rpx;padding-top: 5px;padding-left: 22px;">
+      <view style="font-size:4vw;height:16px;line-height:16px;" class="red-text">
+        <view style="margin-bottom: 1vw;">需收款:</view>
+        <dk-cell contentFontSize="16" height="44rpx" fontWeight="600" left="0rpx" contentColor="#CAA977" title="" content="{{ totallength}}"></dk-cell>
+      </view>
+
+    </view>
+
+
+    <!-- 保存确定区域 -->
+    <view style="width:239rpx;">
+      <van-button size="large" round disabled="{{disabledFlag}}" loading="{{disabledFlag}}"color="#CAA977" custom-style="height:88rpx;" bind:click="submit" type="info">收款
+      </van-button>
+    </view>
+  </view>
+
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='order-save-offer'}}">
+
+    <view style="width:50%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+        <!-- <view style="color: #CAA977;font-size: 32rpx;line-height: 40rpx;display: flex;align-items: center;">
+          <view style="font-size: 22rpx;line-height: 25rpx;width: 25rpx;">¥</view>{{totallength}}
+        </view> -->
+      </view>
+      <dk-cell contentFontSize="16" height="44rpx" fontWeight="600" left="0rpx" contentColor="#CAA977" title="" content="{{ totallength}}"></dk-cell>
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width: 50%; display: flex;">
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button disabled="{{disabledFlag}}" round size="large" color="#CAA977" custom-style="height:88rpx;"  bind:click="allClean" type="default">成交
+        </van-button>
+      </view>
+      <view style="width: 19rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button disabled="{{disabledFlag}}" loading="{{disabledFlag}}" round size="large" color="#1B365D" custom-style="height:88rpx;"  bind:click="submit" type="info">报价
+        </van-button>
+      </view>
+
+
+
+    </view>
+
+
+  </view>
+
+
+
+
+
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='order-save-deal'}}">
+    <view style="width:45%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+        <view style="color: #CAA977;font-size: 32rpx;line-height: 40rpx;display: flex;align-items: center;">
+          <dk-cell style="margin-top: -2vw;" left="32px" center="center" fontSize="16" contentFontSize="16" contentColor="#CAA977" spaceWidth="0" contentFontWeight="bold" content="{{totallength}}"></dk-cell>
+        </view>
+
+      </view>
+
+    </view>
+
+
+    <!-- 保存确定区域 -->
+    <view style="width: 55%;display: flex;">
+
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button size="large" round color="#506483" plain custom-style="height:88rpx;"wx:if="{{allCleanFlag}}"  bind:click="allClean" type="info" disabled="{{disabledFlag}}"  loading="{{disabledFlag}}">收款成交
+        </van-button>
+      </view>
+      <view style="width: 19rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#CAA977" custom-style="height:88rpx;" loading="{{disabledFlag}}"  disabled="{{disabledFlag}}" bind:click="submit" type="info">未收款成交
+        </van-button>
+      </view>
+
+    </view>
+  </view>
+
+
+  <!-- 成交详情 -->
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='buying-signal'}}">
+    <view style="width:50%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+        <view style="color: #CAA977;font-size: 32rpx;line-height: 40rpx;display: flex;align-items: center;">
+          <view style="font-size: 22rpx;line-height: 25rpx;width: 25rpx;">¥</view>{{totallength}}
+        </view>
+
+      </view>
+
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width: 50%; display: flex;">
+
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button plain round size="large" color="#506483" custom-style="height:88rpx;"   bind:click="submit" type="default">分享
+        </van-button>
+      </view>
+      <view style="width: 19rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#CAA977" custom-style="height:88rpx;"   bind:click="allClean" type="info">收款
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+  <view style="padding:52rpx 34rpx 61rpx 43rpx; display: flex;" wx:if="{{flagTypeName ==='buying-signal-copy'}}">
+    <view style="width:50%;height:88rpx">
+      <view style="color: #CAA977;font-size: 30rpx;line-height: 40rpx;">
+        需收款:
+        <view style="color: #CAA977;font-size: 32rpx;line-height: 40rpx;display: flex;align-items: center;">
+          <view style="font-size: 22rpx;line-height: 25rpx;width: 25rpx;">¥</view>{{totallength}}
+        </view>
+
+      </view>
+
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width: 50%; display: flex;text-align: right;">
+
+
+      <view style="width: 100rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 196rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button plain round size="large" color="#506483" custom-style="height:88rpx;"   bind:click="submit" type="default">分享
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+  <!-- 订单开单选商品 -->
+  <view class="order-choose-goods-class" wx:if="{{flagTypeName ==='order-choose-goods'}}">
+    <view class="order-choose-goods-total-class">
+      <!-- 合计金额:¥{{totallength}} -->
+      <dk-cell height="46rpx" spaceWidth="1rpx" left="0" fontSize="15" contentColor="#CAA977" fontWeight="600" title="合计金额:" content="{{totallength}}"></dk-cell>
+    </view>
+    <view style="padding-left: 40rpx;">
+      <dk-text fontWeight="" fontSize="11px" color="#fff" value="已选:{{selectlength}} 品类  数量:{{selectTotallength}} 件"></dk-text>
+    </view>
+
+    <!-- 保存确定区域 -->
+    <van-button wx:if="{{submitFlag}}" custom-class="order-choose-goods-button-class"   bind:click="submit" type="default">结算
+    </van-button>
+  </view>
+
+  <view class="save-bottom" wx:if="{{flagTypeName ==='order-choose-goods-repacement'}}">
+    <view style="width:65%;height:85rpx;padding:15rpx 0 15rpx 0">
+
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view class="save-bottom-button">
+      <van-button custom-style="height:60rpx;width:75%;word-break:keep-all"   bind:click="submit" type="info">确定
+      </van-button>
+    </view>
+  </view>
+
+
+  <!-- 订单开单列表-->
+  <view wx:if="{{flagTypeName ==='order-add'}}" style="display: flex; padding:35rpx 34rpx 62rpx 34rpx;">
+
+    <view style="width:  calc(100% - 239rpx);height:85rpx;">
+      <view>
+        <dk-cell height="60rpx" left="2rpx" fontSize="16" fontWeight="600" contentFontWeight="600" contentColor="#CAA977" titleColor="#CAA977;" contentFontWeight="bold" title="合计金额:" content="{{totallength}}"></dk-cell>
+      </view>
+      <view style="line-height: 40rpx;font-size: 23rpx;color:#95A8CB;height: 40rpx; ">
+        <text decode>共:{{selectlength}}&nbsp;单&emsp;数量:{{selectTotallength}}&nbsp;</text>
+      </view>
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view style="width:239rpx;" wx:if="{{submitFlag}}">
+      <van-button size="large" round color="#1B365D" custom-style="height:88rpx;" bind:click="submit" type="default">新建
+      </van-button>
+    </view>
+  </view>
+
+
+  <!-- 购物车开单保存 -->
+  <view class="save-bottom" wx:if="{{flagTypeName ==='shopping-save'}}">
+    <view style="width:50%;height:85rpx;padding:15rpx 0 15rpx 0">
+      <view style="font-size:4vw;height:30rpx;line-height:30rpx;">合计金额:<span class="red-text">¥{{totallength}}</span>
+      </view>
+      <view style="width:100%;height:5rpx;background:#fff;"></view>
+      <view style="font-size:3.2vw;color:#030303;height:50rpx;line-height:40rpx;">
+        <text decode>已选:{{selectlength}}&nbsp;品类&emsp;共:{{selectTotallength}}&nbsp;件</text>
+      </view>
+
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view class="save-bottom-button" style="width: 45%;">
+      <view style="display:flex;">
+        <van-button custom-style="height:60rpx;word-break:keep-all" bind:click="allClean" type="default">批量清理
+        </van-button>
+        <view style="width: 3px;"></view>
+        <van-button custom-style="height:60rpx;word-break:keep-all"   bind:click="submit" type="info">开单
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+
+  <view class="save-bottom" wx:if="{{flagTypeName ==='pending-save'}}">
+    <view style="width:50%;height:85rpx;padding:15rpx 0 15rpx 0"></view>
+    <view class="save-bottom-button" style="width: 45%;">
+      <view style="display:flex;text-align: right;padding-left: 90rpx;">
+        <van-button custom-style="height:60rpx;word-break:keep-all" bind:click="allClean" type="default">拒绝
+        </van-button>
+        <view style="width: 3px;"></view>
+        <van-button custom-style="height:60rpx;word-break:keep-all"   bind:click="submit" type="info">同意
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+
+
+  <view class="save-bottom" style="width: 100%;align-items: center;" wx:if="{{flagTypeName ==='receive-customers'}}">
+    <view style="height:85rpx;margin-top: 45rpx;color:#1B365D;font-style: normal;font-weight: 400;font-size: 15px;line-height: 40px;">
+      共 {{totallength}} 条接待信息
+      <!-- <view class="save-bottom" wx:if="{{flagTypeName ==='receive-customers'}}">
+    <view style="width:65%;height:85rpx;padding:15rpx 0 15rpx 0; margin-top: 15rpx;">
+      共 {{totallength}} 条数据 -->
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view class="save-bottom-button" style="width: 358rpx;margin-top: 45rpx;">
+      <van-button custom-style="width:358rpx;height:88rpx;font-size:16px;border-radius: 15rpx;" color="#1B365D" block   bind:click="submit" type="info">新建
+      </van-button>
+    </view>
+  </view>
+
+  <!--客户列表一览-->
+  <view class="save-bottom" wx:if="{{flagTypeName ==='customers'}}">
+    <!-- <view style="width:65%;height:85rpx;padding:15rpx 0 15rpx 0; margin-top: 15rpx;">
+      共 {{totallength}}位客户
+    </view> -->
+
+    <!-- 保存确定区域 -->
+    <!-- <view class="save-bottom-button">
+      <van-button custom-style="height:60rpx;width:75%;word-break:keep-all"   bind:click="submit" type="info">新建
+      </van-button>
+    </view> -->
+
+    <view class="customer-save-bottom">
+      <view style="line-height: 88rpx">
+        <dk-text fontSize="15px" fontWeight="nomal" value="{{ '共' + totallength + '位客户'}}"></dk-text>
+      </view>
+      <!-- 保存确定区域 -->
+      <view style="width: 358rpx;" wx:if="{{submitFlag}}">
+        <van-button size="large" round color="#1B365D" custom-style="height:88rpx;" bind:click="submit" type="default">新建
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+
+
+  <view class="save-bottom" style="width: 100%;align-items: center;" wx:if="{{flagTypeName ==='customer-collection'}}">
+    <view style="height:85rpx;margin-top: 45rpx;color:#1B365D;font-style: normal;font-weight: 400;font-size: 15px;line-height: 40px;">
+      共 {{totallength}} 条收款记录
+      <!-- <view class="save-bottom" wx:if="{{flagTypeName ==='receive-customers'}}">
+    <view style="width:65%;height:85rpx;padding:15rpx 0 15rpx 0; margin-top: 15rpx;">
+      共 {{totallength}} 条数据 -->
+    </view>
+
+    <!-- 保存确定区域 -->
+    <view class="save-bottom-button" style="width: 358rpx;margin-top: 45rpx;">
+      <van-button custom-style="width:358rpx;height:88rpx;font-size:16px;border-radius: 15rpx;" color="#1B365D" block   bind:click="submit" type="info">新建
+      </van-button>
+    </view>
+  </view>
+
+
+  <!-- 定制设计 -->
+  <view style="padding:35rpx 60rpx 59rpx 72rpx; display: flex;" wx:if="{{flagTypeName ==='order-design'}}">
+
+
+    <!-- 保存确定区域 -->
+    <view style="width: 100%; display: flex;">
+      <view style="border-radius: 15rpx;width: 295rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button plain round size="large" color="#506483" custom-style="height:88rpx;"   bind:click="submit" type="default">客户分享
+        </van-button>
+      </view>
+      <view style="width: 28rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 295rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#1B365D" custom-style="height:88rpx;"   bind:click="allClean" type="info">方案确定
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+  <view style="padding:35rpx 60rpx 59rpx 72rpx; display: flex;" wx:if="{{flagTypeName ==='approval-center'}}">
+
+
+    <!-- 保存确定区域 -->
+    <view style="width: 100%; display: flex;">
+      <view style="border-radius: 15rpx;width: 295rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button plain round size="large" color="#506483" custom-style="height:88rpx;"   bind:click="submit" type="default">拒绝
+        </van-button>
+      </view>
+      <view style="width: 28rpx;"></view>
+
+      <view style="border-radius: 15rpx;width: 295rpx; height: 88rpx;font-size: 32rpx;line-height: 40rpx;">
+        <van-button round size="large" color="#1B365D" custom-style="height:88rpx;" bind:click="allClean" type="info">同意
+        </van-button>
+      </view>
+    </view>
+  </view>
+
+
+
+  <!-- 样品检查 -->
+  <view wx:if="{{flagTypeName ==='sample-check-add'}}" style="display: flex; padding:35rpx 34rpx 62rpx 34rpx;">
+    <view style="width:  calc(100% - 239rpx);height:85rpx;">
+    </view>
+    <!-- 保存确定区域 -->
+    <view style="width:239rpx;" wx:if="{{submitFlag}}">
+      <van-button size="large" round color="#1B365D" custom-style="height:88rpx;" bind:click="submit" type="default">保存
+      </van-button>
+    </view>
+  </view>
+</view>

+ 80 - 0
components/dkbase/dk-save-bottom/dk-save-bottom.wxss

@@ -0,0 +1,80 @@
+.bottom-class-1{
+  background:#fff;
+  position:fixed;
+  bottom:0;
+  width:100%;
+  height: 182rpx; 
+  border-top:1px solid #efefef;
+  z-index: 7;
+  box-shadow: 0px -8rpx 24rpx rgba(0, 16, 39, 0.1);
+  border-radius: 30rpx 30rpx 0rpx 0rpx;
+}
+.bottom-class-2{
+  position:fixed;
+  bottom:40rpx;
+  width:90%;
+  height: 135rpx; 
+  border-top:1px solid #efefef;
+  z-index: 7;
+  margin-left: 5%;
+  background: #1B365D;
+  box-shadow: 0px 17rpx 22rpx rgba(27, 54, 93, 0.2);
+  border-radius: 15rpx;
+}
+.save-bottom{
+    display:flex;
+    justify-content: space-around;
+    width:100%;
+}
+.save-bottom-left{
+    width:50%;
+    height:85rpx;
+    padding:15rpx 0 15rpx 0
+}
+.save-bottom-button{
+    width:25%;
+    height:85rpx;
+    padding:15rpx 0 15rpx 0;
+    text-align: center;
+}
+.red-text{
+    color:#CAA977;
+    font-size:4vw;
+    line-height:30rpx;
+}
+.van-button--round {
+    border-radius: 15rpx !important;
+}
+
+.order-choose-goods-total-class{
+  padding: 20rpx 0 0 40rpx;
+  font-size: 15px;
+  color:#CAA977;
+}
+
+.order-choose-goods-button-class{
+  position:absolute !important;
+  top: 24rpx;
+  right: 20rpx;
+  width:183rpx;
+  height:88rpx;
+  padding:15rpx 0 15rpx 0;
+  text-align: center;
+  word-break:keep-all;
+  background: #CAA977 !important;
+  color:#fff !important;
+  font-weight: bold;
+  border-radius: 15rpx !important;
+  font-size: 16px !important;
+  border: none !important;
+}
+
+.customer-save-bottom{
+  width:  93%;
+  height: 85rpx;
+  display: flex;
+  height: 85rpx;
+  display: flex;
+  justify-content: space-between;
+  padding-top: 40rpx;
+}

+ 93 - 0
components/dkbase/dk-search/dk-search.js

@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:组件-搜索组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2022-11-17    1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    name:String,//在表单内提交时的标识符
+    label:String,//搜索框左侧文本
+    //形状,可选值为 round
+    shape:{
+      type:String,
+      value:'square'
+    },
+    value:String,//当前输入的值
+    //搜索框背景色
+    background:{
+      type:String,
+      value:'#f2f2f2'
+    },
+    //是否在搜索框右侧显示取消按钮
+    showAction:Boolean,//是否在搜索框右侧显示取消按钮
+    // 取消按钮文字
+    actionText:{
+      type:String,
+      value:'取消'
+    },
+    // 获取焦点
+    focus:Boolean,
+    // 是否将输入内容标红
+    error:Boolean,
+    // 是否禁用输入框
+    disabled:Boolean,
+    // 是否只读
+    readonly:Boolean,
+    // 是否启用清除控件
+    clearable:{
+      type:Boolean,
+      value:true
+    },
+    // 最大输入长度,设置为 -1 的时候不限制最大长度
+    maxlength:{
+      type:Number,
+      value:-1
+    },
+    // 是否使用 action slot
+    useActionSlot:Boolean,
+    placeholder:String,//输入框为空时占位符
+    //输入框内容对齐方式,可选值为 center right
+    inputAlign:{
+      type:String,
+      value:'left'
+    },    
+  },
+
+  options: {
+    multipleSlots: true,//插槽
+  },
+  
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 输入内容变化时触发
+     * @param {*} e 
+     */
+    onChangeText(e){ 
+      this.triggerEvent("change",e)
+    },
+    /**
+     * 确定搜索时触发
+     * @param {*} e 
+     */
+    doSearch(e){ 
+      this.triggerEvent("search",e)
+    }
+  }
+})

+ 4 - 0
components/dkbase/dk-search/dk-search.json

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

+ 22 - 0
components/dkbase/dk-search/dk-search.wxml

@@ -0,0 +1,22 @@
+<van-search 
+name="{{name}}"
+label="{{label}}"
+shape="{{shape}}"
+background="{{background}}"
+show-action="{{showAction}}"
+action-text="{{actionText}}"
+focus="{{focus}}"
+error	="{{error	}}"
+disabled="{{disabled}}"
+readonly="{{readonly}}"
+clearable="{{clearable}}"
+maxlength="{{maxlength}}"
+model:value="{{ searchText }}"
+ use-action-slot="{{useActionSlot}}" 
+ placeholder="{{placeholder}}"
+ input-align="{{inputAlign}}" 
+ bind:change="onChangeText" 
+ bind:search="doSearch" 
+ >
+ <slot></slot>
+  </van-search>

+ 6 - 0
components/dkbase/dk-search/dk-search.wxss

@@ -0,0 +1,6 @@
+/* components/dkbase/dk-search.wxss */
+.van-search__content {
+  background: #F8F9FD;
+  border: 1px solid #D6E4FF;
+  border-radius: 15rpx !important;
+}

+ 94 - 0
components/dkbase/dk-side-pull-menu/dk-side-pull-menu.js

@@ -0,0 +1,94 @@
+/*******************************************************************************
+* Copyright(c) 2022 dongke All rights reserved. / Confidential
+* 类的信息:
+*		1.程序名称:
+*		2.功能描述:抽屉 侧拉菜单
+* 编辑履历:
+*		作者				日期					版本				修改内容
+*		admin		  2022-05-03	  1.00		   	客户管理
+*******************************************************************************/
+let app = getApp();
+Component({
+  /**
+   * 组件的对外属性
+   */
+  properties: {
+    show_p: {
+      type: Boolean,
+      default: false
+    },
+    searchForm: {
+      type: Object,
+      value: {}
+    },
+    searchFormNumber: {
+      type: Number,
+      default: 0
+    }
+  },
+  options: {
+    addGlobalClass: true,
+    multipleSlots: true, //插槽
+  },
+  /**
+   * 组件的初始数据
+   */
+  data: {
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /** 侧拉菜单重置*/
+    clearSearchForm(e) {
+      this.triggerEvent('clearSearchForm')
+    },
+    /** 侧拉菜单确定*/
+    doSearchData(e) {
+      this.numberFilters()
+      this.triggerEvent('doSearchData', {
+        searchFormNumber: this.data.searchFormNumber
+      })
+    },
+    /** 侧拉菜单关闭*/
+    onClose(e) {
+      this.triggerEvent('onClose')
+    },
+
+    // 计算筛选数量
+    //判断 列表searchForm参数是否有value,并且是否有值 有值算做1个数量
+    numberFilters() {
+      let count = 0
+      var obj = this.data.searchForm
+      let arr = []
+      for (let i = 0; i < Object.keys(obj).length; i++) {
+        arr.push({ key: Object.keys(obj)[i], value: obj[Object.keys(obj)[i]] })
+      }
+      //为完善  问题  同一选项有俩个参数
+      arr.forEach(res => {
+          //如果需要更多条件自行添加
+          if (res.value != [] && res.value != '' && res.value != undefined && res.value != null) {
+            count++
+          }
+        })
+      console.log('count', count)
+      this.setData({
+        searchFormNumber: count
+      })
+    }
+
+
+  },
+
+
+  attached() { }
+})
+
+function objToArr(model) {
+  var arr = [];
+  for (var key in model) {
+    arr.push(key)
+  };
+  return arr;
+}

+ 4 - 0
components/dkbase/dk-side-pull-menu/dk-side-pull-menu.json

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

+ 19 - 0
components/dkbase/dk-side-pull-menu/dk-side-pull-menu.wxml

@@ -0,0 +1,19 @@
+<!-- 抽屉 侧拉菜单-->
+<van-popup show="{{show_p}}" position="right" bind:close="onClose" class="popup" custom-style="height:100%;width:75%">
+  <view style="height:45rpx;"></view>
+  <scroll-view scroll-y class="popup-scroll-view">
+    <slot>
+    </slot>
+
+  </scroll-view>
+
+  <view style="height:120rpx;"></view>
+  <view class="popup-button">
+    <view class="popup-button-item">
+      <van-button custom-style="border-radius: 15rpx;width:189rpx;" plain color="#1B365D" catchtap="clearSearchForm">重置</van-button>
+    </view>
+    <view class="popup-button-item">
+      <van-button custom-style="border-radius: 15rpx;width:274rpx;" color="#1B365D" catchtap="doSearchData">确定</van-button>
+    </view>
+  </view>
+</van-popup>

+ 0 - 0
components/dkbase/dk-side-pull-menu/dk-side-pull-menu.wxss


+ 34 - 0
components/dkbase/dk-table/dk-table.js

@@ -0,0 +1,34 @@
+// components/dk-table/dk-table.js
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    columns:{
+      type:Array,
+      value:[{title:'门店名称',name:'storeName',width:'35%'},{title:'成交金额',name:'amount',width:'25%'},{title:'任务目标',name:'target',width:'25%'},{title:'完成率',name:'rate',width:'15%'}]
+    },
+    topData:{
+      type:Array,
+      value:[]
+    },
+    tableData:{
+      type:Array,
+      value:[{storeName:'门店11a',amount:'1888',target:'2000',rate:'80%'},{storeName:'门店1',amount:'1888',target:'2000',rate:'80%'},{storeName:'门店1',amount:'1888',target:'2000',rate:'80%'},{storeName:'门店1',amount:'1888',target:'2000',rate:'80%'},{storeName:'门店23123123345345341',amount:'1888222222222222222222222',target:'2000',rate:'80%'}]
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
components/dkbase/dk-table/dk-table.json

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

+ 51 - 0
components/dkbase/dk-table/dk-table.wxml

@@ -0,0 +1,51 @@
+<wxs src='/utils/numberFormat.wxs' module="numberFormat"></wxs>
+
+
+<view>
+  <view class="top-data">
+    <view wx:for="{{topData}}" wx:for-item="tdItem" wx:for-index="tdIndex" wx:key="tdIndex" style="{{'width:'+(100/topData.length)+'%;'}}">
+      <view>
+        <view wx:if="{{tdItem.type === 'amount'}}" style="display: flex;align-items: baseline;justify-content: center;"><text style="font-size: 12px;">¥</text>{{tdItem.value ? numberFormat.toThousandCents(tdItem.value) : '0.00'}}</view>
+        <view wx:else>{{tdItem.value}}</view>
+      </view>
+      <view>
+        {{tdItem.title}}
+      </view>
+    </view>
+  </view>
+  <view class="header">
+    <view style="width:34rpx;"></view>
+    <view style="width: calc(100% - 34rpx);display: flex;">
+      <view style="{{'width:'+colItem.width+';text-align:'+(colItem.align?conItem.align:'center')}}" wx:for="{{columns}}" wx:for-item="colItem" wx:for-index="colIndex" wx:key="colIndex">{{colItem.title}}</view>
+    </view>
+  </view>
+
+  <view wx:if="{{tableData && tableData.length>0}}" class="data">
+    <view wx:for="{{tableData}}" wx:for-item="tableDataItem" wx:for-index="tableDataIndex" wx:key="tableDataIndex" style="display: flex;background: #fff;padding: 0 19rpx;">
+      <view style="{{'width:34rpx;position: relative;border-bottom:'+(tableDataIndex!==tableData.length-1?1:0)+'px solid #E9F0FE;display: flex;align-items: center;'}}">
+        <image style="position: absolute;width: 28.79rpx;height: 21.81rpx;top:15rpx;left:-19rpx;" wx:if="{{tableDataIndex<=2}}" src="{{'../../static/img/index'+(tableDataIndex+1)+'.png'}}" />
+        <view style="font-family: 'DIN Alternate';font-style: normal;font-weight: 700;font-size: 9px;color: #1B365D;" wx:else>{{tableDataIndex<=8?('0'+(tableDataIndex+1)):(tableDataIndex+1)}}</view>
+      </view>
+      <view style="width: calc(100% - 34rpx);display: flex;">
+        <view class="cell" style="{{'width:'+col2Item.width+';border-bottom:'+(tableDataIndex!==tableData.length-1?1:0)+'px solid #E9F0FE;text-align:'+(col2Item.align?con2Item.align:'center')}}" wx:for="{{columns}}" wx:for-item="col2Item" wx:for-index="col2Index" wx:key="col2Index">
+          <span wx:if="{{col2Item.type === 'amount'}}" style="display: inline-block;text-align: left;word-break: break-all;">
+            <text style="font-size: 10px;" wx:if="{{(tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0)}}">¥</text>
+            {{tableDataItem[col2Item.name] ? numberFormat.toThousandCents(tableDataItem[col2Item.name]) : (!col2Item.ifNull?'0.00':col2Item.ifNull)}}
+          </span>
+          <span wx:else style="display: inline-block;text-align: left;word-break: break-all;">
+            {{col2Item.before && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name]===0)?col2Item.before:''}}
+            {{(tableDataItem[col2Item.name] || tableDataItem[col2Item.name]===0)?tableDataItem[col2Item.name]:(col2Item.ifNull?col2Item.ifNull:'')}}
+            {{col2Item.after && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name]===0)?col2Item.after:''}}
+          </span>
+        </view>
+      </view>
+    </view>
+  </view>
+  <view wx:else style="line-height: 200rpx;color: #95A8CB;width:100%;font-family: 'PingFang SC';font-style: normal;font-weight: 400;font-size: 14px;background:#fff;text-align: center;">
+    <view>暂无数据</view>
+  </view>
+</view>
+
+
+
+<view style="width:100%;height:15rpx;border-radius: 0px 0px 15rpx 15rpx;background: #fff;"></view>

+ 63 - 0
components/dkbase/dk-table/dk-table.wxss

@@ -0,0 +1,63 @@
+/* components/dk-table/dk-table.wxss */
+.top-data {
+  background: linear-gradient(180deg, #D9F2F8 0%, #FAFEFF 100%);
+  border-radius: 15rpx 15rpx 0px 0px;
+  display: flex;
+  padding: 34rpx 0;
+}
+
+.top-data>view:nth-child(n) {
+  text-align: center;
+
+}
+
+.top-data>view:nth-child(n)>view:nth-child(1) {
+  margin-bottom: 10rpx;
+  font-family: 'PingFang HK';
+  font-style: normal;
+  font-weight: 600;
+  font-size: 20px;
+  color: #1B365D;
+}
+
+.top-data>view:nth-child(n)>view:nth-child(2) {
+  font-family: 'PingFang SC';
+  font-style: normal;
+  font-weight: 400;
+  font-size: 12px;
+  color: #95A8CB;
+}
+
+.top-data>view:nth-child(n+2) {
+  border-left: 1px solid #ABC6CC;
+}
+
+
+.header {
+  display: flex;
+  width: calc(100% - 38rpx);
+  background: #fff;
+  padding: 0 19rpx;
+}
+
+.header>view:nth-child(n) {
+  font-family: 'PingFang SC';
+  font-style: normal;
+  font-weight: 400;
+  font-size: 10px;
+  line-height: 40px;
+  color: #00A7B5;
+}
+
+.cell {
+  font-family: 'PingFang HK';
+  font-style: normal;
+  font-weight: 400;
+  font-size: 13px;
+  color: #1B365D;
+  padding: 15rpx 10rpx;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+

+ 62 - 0
components/dkbase/dk-tabs-custom/dk-tabs-custom.js

@@ -0,0 +1,62 @@
+// components/dk-tabs-custom/dk-tabs-custom.js
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    list:{
+      type:Array,
+      value:[]
+    },
+    value:{
+      type:String|Number, 
+      value:null
+    },
+    background:{
+      type:String,
+      value:'#ECF7FF'
+    },
+    sliderBackground:{
+      type:String,
+      value:'#9BCBEB'
+    },
+    textColor:{
+      type:String,
+      value:'#1B365D'
+    },
+    sliderTextColor:{
+      type:String,
+      value:'#fff'
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    index:0
+  },
+
+  lifetimes:{
+    attached(){
+      if(this.properties.value){
+        this.setData({
+          index:this.properties.list.map(it=>it.id).indexOf(this.properties.value)
+        })
+      }
+    }
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    changeIndex(e){
+      this.setData({
+        index:e.currentTarget.dataset.index,
+        value:e.currentTarget.dataset.id
+      })
+      this.triggerEvent('change',this.data.list[e.currentTarget.dataset.index])
+    }
+  }
+})

+ 4 - 0
components/dkbase/dk-tabs-custom/dk-tabs-custom.json

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

+ 6 - 0
components/dkbase/dk-tabs-custom/dk-tabs-custom.wxml

@@ -0,0 +1,6 @@
+<view class="dk-tabs-custom-out-view" style="{{'background:'+background}}">
+  <view class="slider" style="{{'background:'+sliderBackground+';'+'left: '+(index*120)+'rpx;border-radius:'+(index===0?'27rpx 0 0 27rpx':(index===list.length-1?'0 27rpx 27rpx 0':'0'))}}"></view>
+  <view wx:for="{{list}}" wx:key="*this" wx:for-index="listIndex" class="list-item" style="{{index === listIndex?'color:'+sliderTextColor+';':'color:'+textColor+';'}}" data-id="{{item.id}}" data-index="{{listIndex}}" catchtap="changeIndex">{{item.name}}</view>
+</view>
+
+

+ 23 - 0
components/dkbase/dk-tabs-custom/dk-tabs-custom.wxss

@@ -0,0 +1,23 @@
+/* components/dk-tabs-custom/dk-tabs-custom.wxss */
+.slider {
+  position: absolute;
+  height: 54rpx;
+  width: 120rpx;
+  border-radius: 27rpx;
+  background: #9BCBEB;
+  transition: .3s;
+}
+
+.list-item {
+  width: 120rpx;
+  text-align: center;
+  color: #1B365D;
+  font-size: 13px;
+  z-index: 1;
+  line-height: 54rpx;
+}
+
+.dk-tabs-custom-out-view{
+  display: flex;height:54rpx;align-items: center;position: relative;border-radius: 27rpx;
+}
+

+ 42 - 0
components/dkbase/dk-tabs/dk-tabs.js

@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:tabs组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		jyh		  	2021-5-9  			1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    // 数据源
+    list: {
+      type: Array,
+      value: []
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    // 当前选中标签的标识符
+    active:0, 
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    /**
+     * 当前激活的标签改变时触发
+     * @param {*} event 
+     */
+    onChange(event){ 
+       this.triggerEvent('onChange',event)
+    }
+  }
+})

+ 4 - 0
components/dkbase/dk-tabs/dk-tabs.json

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

+ 4 - 0
components/dkbase/dk-tabs/dk-tabs.wxml

@@ -0,0 +1,4 @@
+<!-- tabs组件 -->
+<van-tabs active="{{ active }}"  bind:change="onChange">
+  <van-tab wx:for="{{list}}" wx:key="index" title="{{item.title}}" name="{{index}}"> </van-tab> 
+</van-tabs>

+ 0 - 0
components/dkbase/dk-tabs/dk-tabs.wxss


+ 180 - 0
components/dkbase/dk-tag/dk-tag.js

@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:dkVanTag组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-7-7  		1.00		   	  新建
+ *******************************************************************************/
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    /**
+     * 传入的数据,供事件返回
+     */
+    dataItem:{
+      type:Object,
+      value:{}
+    },
+    dataItemIndex:{
+      type:Number,
+    },
+    dataItemIndex2:{
+      type:Number,
+    },
+    /**
+     * 输入的数据
+     */
+		value: {
+			type: String,
+      value: '',
+      observer: function (newVal) {
+        // 处理数据
+        this.handleData(newVal);
+      }
+    },
+    /**
+     * 边框
+     */
+    border:{
+      type:String,
+      value:''
+    },
+    /**
+     * 颜色
+     */
+    color:{
+      type:String,
+      value:'#95A8CB'
+    },
+    /**
+     * 文本颜色
+     */
+    textColor:{
+      type:String,
+      value:'#fff'
+    },
+    /**
+     * 高度
+     */
+    height:{
+      type:String,
+      value:'27rpx'
+    },
+    /**
+     * 右边距
+     */
+    marginRight:{
+      type:String,
+      value:''
+    },
+    /**
+     * 是否是四周圆角
+     */
+    roundFlag:{
+      type:Boolean,
+      value:false
+    },
+    /**
+     * 圆角角度
+     */
+    radius:{
+      type:String,
+      value:'15rpx'
+    },
+    /**
+     * 类型
+     */
+    type:{
+      type:String,
+      value:'danger'
+    },
+    /**
+     * 大小
+     */
+    size:{
+      type:String,
+      value:''
+    },
+    /**
+     * 是否为空心样式
+     */
+    plain:{
+      type:Boolean,
+      value:false
+    },
+    /**
+     * 是否为圆角样式
+     */
+    round:{
+      type:Boolean,
+      value:false
+    },
+    /**
+     * 是否为可关闭标签
+     */
+    closeable:{
+      type:Boolean,
+      value:false
+    },
+    /**
+     * 字体大小(默认10px)
+     */
+    fontSize:{
+      type:String,
+      value:'10px'
+    },
+  },
+  options: {
+   
+    styleIsolation: 'shared',
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    displayValue:'',
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    handleData(val){
+      let inputValue = ''
+      // 对内容进行处理
+      if(val == undefined || val == null ){
+        inputValue = '';
+      }else{
+        inputValue = val;
+      }
+      this.setData({
+        displayValue:inputValue
+      })
+    },
+    /**
+   * 绑定方法
+   */
+    tapClick(e){
+      this.triggerEvent('tap', {
+        item:this.data.dataItem,
+        index:this.data.dataItemIndex,
+        index2:this.data.dataItemIndex2,
+      })
+    },
+  },
+  /**
+  * 组件生命周期
+  */
+  lifetimes: {
+    attached: function () {
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+})

+ 4 - 0
components/dkbase/dk-tag/dk-tag.json

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

+ 3 - 0
components/dkbase/dk-tag/dk-tag.wxml

@@ -0,0 +1,3 @@
+<van-tag catchtap="tapClick" type="{{type}}" color="{{color}}" size="{{size}}" plain="{{plain}}" round="{{round}}"closeable="{{closeable}}"text-color="{{textColor}}" class="tagStyle" style="--fontSize--:{{fontSize}}; --radius--:{{roundFlag? (radius + ' ' + radius): (radius + ' ' + 0)}};--border--:{{border}};--height--:{{height}};--marginRight--:{{marginRight}}">
+  {{displayValue}}
+</van-tag>

+ 16 - 0
components/dkbase/dk-tag/dk-tag.wxss

@@ -0,0 +1,16 @@
+/**
+*默认样式
+*/
+.tagStyle {
+  word-break: keep-all;
+  align-items: center; 
+  justify-content: center;
+}
+
+.van-tag{
+  margin-right: var(--marginRight--) !important;
+  font-size: var(--fontSize--) !important;
+  border-radius: var(--radius--) !important;
+  border:var(--border--) !important;
+  height: var(--height--) !important;
+}

+ 134 - 0
components/dkbase/dk-text/dk-text.js

@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:dkText组件
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		admin		  	2021-7-7  		1.00		   	  新建
+ *******************************************************************************/
+const util = require('../../../utils/util.js')
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    /**
+     * 输入的数据
+     */
+		value: {
+			type: String,
+      value: '',
+      observer: function (newVal) {
+        // 处理数据
+        this.handleData(newVal);
+      }
+    },
+    /**
+     * 跟前一个控件是否又间距
+     */
+    margin:{
+      type: Boolean,
+      value: false,
+    },
+    /**
+     * 颜色
+     */
+    color:{
+      type:String,
+      value:'#1B365D'
+    },
+    /**
+     * 字体粗细
+     */
+    fontWeight:{
+      type:String,
+      value:'bold'
+    },
+   /**
+     * 字体大小(默认12px)
+     */
+    fontSize:{
+      type:String,
+      value:'12px'
+    },
+    /**
+     * 样式名
+     */
+    style:{
+      type: String,
+      value: 'inputStyle',
+    },
+    /**
+     * 下划线
+     */
+    textDecoration:{
+      type:String,
+      value:''
+    },
+    /**
+     * 需要进行复制的内容
+     */
+    copyValue:{
+      type:String,
+      value: ''
+    },
+    /**
+     * 是否进行重新布局
+     */
+    layoutFlag:{
+      type:Boolean,
+      value:false
+    }
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    displayValue:'',
+    valueArray:[],
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    handleData(val){
+      let inputValue = ''
+      let valueArray = []
+      // 对内容进行处理
+      if(val == undefined || val == null ){
+        inputValue = '';
+      }else{
+        inputValue = val;
+        valueArray = val.split('')
+      }
+      this.setData({
+        displayValue:inputValue,
+        valueArray:valueArray
+      })
+    },
+    /**
+    * @desc : 复制
+    * @author : 周兴
+    * @date : 2022/7/29 12:16
+    */
+    toCopy(e) {
+      // 外露事件
+      this.triggerEvent('tap',e)
+      if(!this.data.copyValue)return;
+      util.toCopy(this.data.copyValue, this.data.value);
+    },
+  },
+  /**
+  * 组件生命周期
+  */
+  lifetimes: {
+    attached: function () {
+    },
+    detached: function () {
+      // 在组件实例被从页面节点树移除时执行
+    },
+  },
+})

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