Преглед изворни кода

feat:提交代码,初始化项目

longzc пре 1 година
комит
ff7bf9afa6
100 измењених фајлова са 17850 додато и 0 уклоњено
  1. 1 0
      .env.development
  2. 1 0
      .env.production
  3. 8 0
      .eslintignore
  4. 12 0
      .eslintrc
  5. 21 0
      .gitignore
  6. 16 0
      .hbuilderx/launch.json
  7. 1 0
      .npmrc
  8. 20 0
      .stylelintignore
  9. 39 0
      .stylelintrc
  10. 129 0
      README.md
  11. 7 0
      changelog.md
  12. 79 0
      components.d.ts
  13. 20 0
      index.html
  14. 102 0
      package.json
  15. 50 0
      pages.config.ts
  16. 9766 0
      pnpm-lock.yaml
  17. 24 0
      rules.ts
  18. 83 0
      src/App.vue
  19. 81 0
      src/apis/auth.api.ts
  20. 202 0
      src/apis/common.ts
  21. 164 0
      src/apis/dacang.ts
  22. 28 0
      src/apis/home.ts
  23. 137 0
      src/apis/merchant.ts
  24. 0 0
      src/apis/model/aboutModel.ts
  25. 27 0
      src/apis/model/accumulateIncomeModel.ts
  26. 60 0
      src/apis/model/address.model.ts
  27. 107 0
      src/apis/model/after-sales-order.model.ts
  28. 16 0
      src/apis/model/announcement.model.ts
  29. 49 0
      src/apis/model/articleModel.ts
  30. 9 0
      src/apis/model/auth.model.ts
  31. 15 0
      src/apis/model/certification.model.ts
  32. 14 0
      src/apis/model/comment-product.ts
  33. 33 0
      src/apis/model/common.model.ts
  34. 236 0
      src/apis/model/dacang.model.ts
  35. 6 0
      src/apis/model/dc.model.ts
  36. 21 0
      src/apis/model/feedback.model.ts
  37. 99 0
      src/apis/model/integral.model.ts
  38. 14 0
      src/apis/model/invite.model.ts
  39. 38 0
      src/apis/model/inviteFriendsModel.ts
  40. 40 0
      src/apis/model/invitePartnerModel.ts
  41. 59 0
      src/apis/model/login.model.ts
  42. 30 0
      src/apis/model/myRelationMerchantModel.ts
  43. 27 0
      src/apis/model/myRelationProductModel.ts
  44. 374 0
      src/apis/model/order.model.ts
  45. 7 0
      src/apis/model/pageModel.ts
  46. 4 0
      src/apis/model/path.model.ts
  47. 671 0
      src/apis/model/product.model.ts
  48. 14 0
      src/apis/model/redIntegral.model.ts
  49. 128 0
      src/apis/model/refund.model.ts
  50. 6 0
      src/apis/model/relation.model.ts
  51. 41 0
      src/apis/model/replyModel.ts
  52. 35 0
      src/apis/model/revenueSharingModel.ts
  53. 47 0
      src/apis/model/shopping.model.ts
  54. 18 0
      src/apis/model/signIninfo.model.ts
  55. 15 0
      src/apis/model/spreadInfoModel.ts
  56. 167 0
      src/apis/model/storeModel.ts
  57. 28 0
      src/apis/model/third-order.model.ts
  58. 6 0
      src/apis/model/user-vip-info.model.ts
  59. 153 0
      src/apis/model/userInfoModel.ts
  60. 38 0
      src/apis/model/userShareProductModel.ts
  61. 16 0
      src/apis/model/userUnionModel.ts
  62. 21 0
      src/apis/model/userYanglaoJinModel.ts
  63. 43 0
      src/apis/model/vip-area.model.ts
  64. 7 0
      src/apis/model/withdrawal.model.ts
  65. 11 0
      src/apis/model/withdrawalConfigurationModel.ts
  66. 33 0
      src/apis/model/withdrawalModel.ts
  67. 11 0
      src/apis/model/withdrawalService.ts
  68. 112 0
      src/apis/model/yanglao-log.model.ts
  69. 115 0
      src/apis/model/yanglaoStatisticsModel.ts
  70. 36 0
      src/apis/model/zibubaojian.model.ts
  71. 389 0
      src/apis/order.api.ts
  72. 401 0
      src/apis/product.ts
  73. 973 0
      src/apis/user.ts
  74. 329 0
      src/auto-imports.d.ts
  75. 13 0
      src/components.d.ts
  76. 106 0
      src/components/CXBAuthorize/CXBAuthorize.vue
  77. 74 0
      src/components/CXBBackTop/CXBBackTop.vue
  78. 11 0
      src/components/CXBBanner/CXBBanner.vue
  79. 53 0
      src/components/CXBBasePage/CXBBasePage.vue
  80. 31 0
      src/components/CXBButton/CXBButton.vue
  81. 282 0
      src/components/CXBDialogSignIn/CXBDialogSIgnIn.vue
  82. 69 0
      src/components/CXBDialogSignIn/SignInGiftBag.vue
  83. 60 0
      src/components/CXBDialogSignIn/SignRedPacket.vue
  84. 65 0
      src/components/CXBDialogSignInSucceed/CXBDialogSIgnInSucceed.vue
  85. 64 0
      src/components/CXBDialogSignInSucceed/SignInGiftBag.vue
  86. 26 0
      src/components/CXBDialogSignInSucceed/SignRedPacket.vue
  87. 51 0
      src/components/CXBDyLive/CXBDyLiveRecommend.vue
  88. 43 0
      src/components/CXBEmpty/CXBEmpty.vue
  89. 43 0
      src/components/CXBNotLoginButton/CXBNotLoginButton.vue
  90. 64 0
      src/components/CXBNotLoginButton/test.json
  91. 155 0
      src/components/CXBPhoneLoginButton/CXBPhoneLoginButton.vue
  92. 164 0
      src/components/CXBPrivacyPopup/CXBPrivacyPopup.vue
  93. 239 0
      src/components/CXBSkuPopup/CXBSkuPopup.vue
  94. 0 0
      src/components/CXBUserIndexHeader/CXBUserINdexHeader.vue
  95. 19 0
      src/components/CXBYaojinTag/CXBYaojinTag.vue
  96. 49 0
      src/components/FButton/FButton.vue
  97. 27 0
      src/components/FButton/button.ts
  98. 2 0
      src/components/FButton/index.ts
  99. 0 0
      src/components/FButton/types.ts
  100. 0 0
      src/components/FButton/use-button.ts

+ 1 - 0
.env.development

@@ -0,0 +1 @@
1
+VITE_GLOB_API_URL = 'https://test.bjtdba.com'

+ 1 - 0
.env.production

@@ -0,0 +1 @@
1
+VITE_GLOB_API_URL = 'https://app.bjtdba.com'

+ 8 - 0
.eslintignore

@@ -0,0 +1,8 @@
1
+dist
2
+public
3
+node_modules
4
+manifest.json
5
+pages.json
6
+cache
7
+styles
8
+dev-dist

+ 12 - 0
.eslintrc

@@ -0,0 +1,12 @@
1
+{
2
+  "extends": [
3
+    "@antfu"
4
+  ],
5
+  "rules": {
6
+    // "no-console":"warn"
7
+  },
8
+  "env": {
9
+    "node": true,
10
+    "vue/setup-compiler-macros": true
11
+  }
12
+}

+ 21 - 0
.gitignore

@@ -0,0 +1,21 @@
1
+# Logs
2
+logs
3
+*.log
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+pnpm-debug.log*
8
+lerna-debug.log*
9
+
10
+node_modules
11
+.DS_Store
12
+dist
13
+*.local
14
+
15
+# Editor directories and files
16
+.idea
17
+*.suo
18
+*.ntvs*
19
+*.njsproj
20
+*.sln
21
+*.sw?

+ 16 - 0
.hbuilderx/launch.json

@@ -0,0 +1,16 @@
1
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
2
+  // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
3
+    "version": "0.0",
4
+    "configurations": [{
5
+     	"default" : 
6
+     	{
7
+     		"launchtype" : "local"
8
+     	},
9
+     	"mp-weixin" : 
10
+     	{
11
+     		"launchtype" : "local"
12
+     	},
13
+     	"type" : "uniCloud"
14
+     }
15
+    ]
16
+}

+ 1 - 0
.npmrc

@@ -0,0 +1 @@
1
+shamefully-hoist = true

+ 20 - 0
.stylelintignore

@@ -0,0 +1,20 @@
1
+dist
2
+es
3
+lib
4
+css
5
+example
6
+public
7
+cache
8
+node_modules
9
+.husky
10
+
11
+docs/.vitepress/theme
12
+
13
+*.js
14
+*.cjs
15
+*.mjs
16
+*.ts
17
+*.tsx
18
+*.svg
19
+*.gif
20
+*.md

+ 39 - 0
.stylelintrc

@@ -0,0 +1,39 @@
1
+{
2
+  "defaultSeverity": "error",
3
+  "extends": [
4
+    "stylelint-config-standard",
5
+    "stylelint-config-standard-scss",
6
+    "stylelint-config-recommended-vue",
7
+    "stylelint-config-html",
8
+    "stylelint-config-recess-order"
9
+  ],
10
+  "plugins": ["stylelint-order"],
11
+  "rules": {
12
+    "selector-class-pattern": [
13
+      "^([#a-z][$#{}a-z0-9]*)((-{1,2}|_{2})[$#{}a-z0-9]+)*$",
14
+      {
15
+        "message": "Expected class selector to be kebab-case"
16
+      }
17
+    ],
18
+    "no-descending-specificity" :null,
19
+    "no-empty-source" :null,
20
+    "keyframes-name-pattern": "^[a-z]+([A-Z][a-z]*)*$"
21
+  },
22
+  "ignoreFiles": [
23
+    "node_modules",
24
+    "dist",
25
+    "public",
26
+    "output",
27
+    "coverage",
28
+    "temp",
29
+    "*.js",
30
+    "*.cjs",
31
+    "*.mjs",
32
+    "*.ts",
33
+    "*.tsx",
34
+    "*.svg",
35
+    "*.gif",
36
+    "*.md"
37
+  ]
38
+
39
+}

+ 129 - 0
README.md

@@ -0,0 +1,129 @@
1
+## 小程序构建方式
2
+#### 依赖包安装
3
+
4
+```
5
+pnpm install
6
+```
7
+
8
+#### 小程序开发模式
9
+
10
+```
11
+pnpm dev:mp-weixin 
12
+```
13
+> 构建后,将生成 `dist/dev/mp-wexin` 目录,在微信开发工具导入此目录
14
+
15
+#### 小程序生产模式
16
+```
17
+pnpm build:mp-weixin
18
+
19
+```
20
+> 构建后,将生成 `dist/build/mp-wexin` 目录,在微信开发工具导入此目录,测试后提交发布即可
21
+
22
+## 小程序功能清单
23
+- [x] 首页
24
+  - [x] 签到(签到得积分)
25
+  - [x] 搜索 `/pages/search/index`
26
+  - [x] 城中大仓
27
+  - [x] 限时秒杀
28
+  - [x] 京东 `跳转至京东小程序`
29
+  - [x] 滋补养生(动态数据请求) `/api/common/home_quick_link`,
30
+  - [x] 拼多多
31
+    - [x] 商品展示
32
+    - [x] 小程序跳转
33
+  - [x] 淘宝
34
+    - [x] 商品购买跳转
35
+  - [x] 抖音
36
+    - [x] 抖音商品列表
37
+    - [x] 抖音直播间
38
+  - [x] 唯品会
39
+    - [x] 唯品会内容列表
40
+    - [x] 唯品会商品跳转
41
+  - [x] 苏宁
42
+    - [x] 苏宁商品列表
43
+    - [x] 苏宁商品跳转
44
+  - [x] 消息
45
+  - [x] 限时秒杀
46
+  - [x] 积分通兑 `/pages/product/integral`
47
+  - [x] 老年、学生、会员、惠民
48
+  - [x] 创客会员(横幅)`/pages/gust_member_new/index`
49
+  - [x] 通知公告
50
+  - [x] 产品列表
51
+
52
+- [x] 创客 `/pages/store/nearby/index`
53
+  - [x] 分类列表
54
+
55
+- [x] 大仓 `/pages/dacang/list/index`
56
+
57
+- [x] 购物车 `/pages/order_addcart/index`
58
+  - [x] 列表
59
+  - [x] 结算
60
+    - [x] 地址管理
61
+
62
+- [x] 我的
63
+  - [x] 用户
64
+  - [x] 个人资料
65
+  - [x] 养老金 `/pages/annuity/index`
66
+    - [x] 养老金账户(我的养老金) `/pages/pension_account/index`
67
+    - [x] 养老金记录 `/pages/pension_record/index`
68
+      - [x] 电商平台养老金明细 `/pages/pension_choice_platform/index`
69
+      - [x] 实体店养老金明细
70
+    - [x] 中信公证处查看(小程序跳转)
71
+  - [x] 我的佣金、我的邀请 `/pages/my-invitation/index`
72
+    - [x] 邀请伙伴 `/pages/invite-partners/index`
73
+    - [x] 分享收益 `/pages/revenue-sharing/index`
74
+    - [x] 分享产品 `/pages/share-the-product/index`
75
+    - [x] 累计收益 `/pages/accumulate-income/index`
76
+    - [x] 去提现、立即提现 `/pages/immediate-withdrawal/index`
77
+      - [x] 提现记录 `/pages/withdrawal-record/index`
78
+      - [ ] 实名认证 `/pages/real-name-authentication/index`
79
+  - [x] 我的积分 `/pages/my-integral/index`
80
+    - [x] 积分规则
81
+    - [x] 滋补保健 - 去兑换
82
+    - [x] 积分明细 `/pages/my-integral/detail`
83
+    - [x] 积分任务
84
+      - [x] 每日签到 - 去签到
85
+      - [x] 邀请好友得积分 - 去邀请
86
+        - [x] 海报
87
+  - [x] 红积分提现
88
+    - [x] 复购增加红积分
89
+    - [x] 提现
90
+      - [x] 提现页
91
+      - [x] 接口验证
92
+  - [x] 团队人数
93
+  - [x] 我的订单 - 查看全部 `/pages/order/index`
94
+    - [x] 待付款
95
+    - [x] 待发货
96
+    - [x] 待收货
97
+    - [x] 待评价
98
+    - [x] 退款/售后
99
+
100
+  - [x] 我的邀请(与我的佣金相同)
101
+  - [x] 我的地址
102
+    - [x] 新建收货地址
103
+  - [x] 我的收藏 `/pages/my-relation-product/index`
104
+  - [x] 我的关注 `/pages/my-relation-merchant/index`
105
+  - [x] 三方订单
106
+  - [x] 帮助中心 `/pages/help-center/index`
107
+  - [x] 我的评价 `/pages/my-reply/index`
108
+  - [x] 邀请好友 `/pages/invite-friends/index`
109
+  - [x] 商铺入驻 (小程序跳转)
110
+  - [x] 帮扶中心 `/pages/bangfuzhongxin/index`
111
+    - [ ] 立即升级(待测试)
112
+  - [x] 设置
113
+    - [x] 反馈回复 `/pages/feedback/index`
114
+    - [x] 关于我们 `/pages/user/about/index`
115
+    - [x] 版本更新 `/pages/version-update/index`
116
+    - [x] 实名认证
117
+      - `/pages/real-name-authentication/index` 未实名
118
+      - `/pages/already-realname/index` 已实名
119
+    - [x] 三方账号绑定 `/pages/third_party_binding/index`
120
+      - [x] 微信授权
121
+      - [x] 支付宝授权(无法实现)
122
+    - [ ] 个性化选项 `/pages/personalization-options/index`(接口未对接)
123
+    - [x] 服务协议 `/pages/webview/agreement?type=2`
124
+    - [x] 隐私协议 `/pages/webview/agreement?type=1`
125
+    - [x] 账号注销
126
+    - [x] 退出登录
127
+
128
+
129
+ciyid 要传,不然出现请选择正确地址异常

+ 7 - 0
changelog.md

@@ -0,0 +1,7 @@
1
+- FEAT ShareID
2
+- FEAT 分享注册返回页 
3
+- FEAT 产品详情页产品图片调整为1:1
4
+- FEAT 一键登录增加 Loading
5
+- FIX 每日签到提醒积分显示问题、改变每日提醒一次
6
+- FIX SKU 默认选择问题
7
+- FEAT 支付成功页面增加功能按钮

+ 79 - 0
components.d.ts

@@ -0,0 +1,79 @@
1
+/* eslint-disable */
2
+/* prettier-ignore */
3
+// @ts-nocheck
4
+// Generated by vite-plugin-uni-components
5
+// Read more: https://github.com/vuejs/core/pull/3399
6
+import '@vue/runtime-core'
7
+
8
+export {}
9
+
10
+declare module '@vue/runtime-core' {
11
+  export interface GlobalComponents {
12
+    CXBAuthorize: typeof import('./src/components/CXBAuthorize/CXBAuthorize.vue')['default']
13
+    CXBBackTop: typeof import('./src/components/CXBBackTop/CXBBackTop.vue')['default']
14
+    CXBBanner: typeof import('./src/components/CXBBanner/CXBBanner.vue')['default']
15
+    CXBBasePage: typeof import('./src/components/CXBBasePage/CXBBasePage.vue')['default']
16
+    CXBButton: typeof import('./src/components/CXBButton/CXBButton.vue')['default']
17
+    CXBDialogSIgnIn: typeof import('./src/components/CXBDialogSignIn/CXBDialogSIgnIn.vue')['default']
18
+    CXBDialogSIgnInSucceed: typeof import('./src/components/CXBDialogSignInSucceed/CXBDialogSIgnInSucceed.vue')['default']
19
+    CXBDyLiveRecommend: typeof import('./src/components/CXBDyLive/CXBDyLiveRecommend.vue')['default']
20
+    CXBEmpty: typeof import('./src/components/CXBEmpty/CXBEmpty.vue')['default']
21
+    CXBNotLoginButton: typeof import('./src/components/CXBNotLoginButton/CXBNotLoginButton.vue')['default']
22
+    CXBPhoneLoginButton: typeof import('./src/components/CXBPhoneLoginButton/CXBPhoneLoginButton.vue')['default']
23
+    CXBPrivacyPopup: typeof import('./src/components/CXBPrivacyPopup/CXBPrivacyPopup.vue')['default']
24
+    CXBSkuPopup: typeof import('./src/components/CXBSkuPopup/CXBSkuPopup.vue')['default']
25
+    CXBUserINdexHeader: typeof import('./src/components/CXBUserIndexHeader/CXBUserINdexHeader.vue')['default']
26
+    CXBYaojinTag: typeof import('./src/components/CXBYaojinTag/CXBYaojinTag.vue')['default']
27
+    FButton: typeof import('./src/components/FButton/FButton.vue')['default']
28
+    FCell: typeof import('./src/components/FCell/FCell.vue')['default']
29
+    FCellGroup: typeof import('./src/components/FCellGroup/FCellGroup.vue')['default']
30
+    FElevator: typeof import('./src/components/FElevator/FElevator.vue')['default']
31
+    FField: typeof import('./src/components/FField/FField.vue')['default']
32
+    FForm: typeof import('./src/components/FForm/FForm.vue')['default']
33
+    FFormItem: typeof import('./src/components/FFormItem/FFormItem.vue')['default']
34
+    FInput: typeof import('./src/components/FInput/FInput.vue')['default']
35
+    FNavBar: typeof import('./src/components/FNavBar/FNavBar.vue')['default']
36
+    FOverlay: typeof import('./src/components/FOverlay/FOverlay.vue')['default']
37
+    FPage: typeof import('./src/components/FPage/FPage.vue')['default']
38
+    FPopup: typeof import('./src/components/FPopup/FPopup.vue')['default']
39
+    FPrice: typeof import('./src/components/FPrice/FPrice.vue')['default']
40
+    FSearch: typeof import('./src/components/FSearch/FSearch.vue')['default']
41
+    FSwitch: typeof import('./src/components/FSwitch/FSwitch.vue')['default']
42
+    FTabs: typeof import('./src/components/FTabs/FTabs.vue')['default']
43
+    FTag: typeof import('./src/components/FTag/FTag.vue')['default']
44
+    FTransition: typeof import('./src/components/FTransition/FTransition.vue')['default']
45
+    NutButton: typeof import('nutui-uniapp/components/button/button.vue')['default']
46
+    NutCalendar: typeof import('nutui-uniapp/components/calendar/calendar.vue')['default']
47
+    NutCascader: typeof import('nutui-uniapp/components/cascader/cascader.vue')['default']
48
+    NutCell: typeof import('nutui-uniapp/components/cell/cell.vue')['default']
49
+    NutCellGroup: typeof import('nutui-uniapp/components/cellgroup/cellgroup.vue')['default']
50
+    NutCheckbox: typeof import('nutui-uniapp/components/checkbox/checkbox.vue')['default']
51
+    NutDatePicker: typeof import('nutui-uniapp/components/datepicker/datepicker.vue')['default']
52
+    NutDialog: typeof import('nutui-uniapp/components/dialog/dialog.vue')['default']
53
+    NutForm: typeof import('nutui-uniapp/components/form/form.vue')['default']
54
+    NutFormItem: typeof import('nutui-uniapp/components/formitem/formitem.vue')['default']
55
+    NutIcon: typeof import('nutui-uniapp/components/icon/icon.vue')['default']
56
+    NutInput: typeof import('nutui-uniapp/components/input/input.vue')['default']
57
+    NutInputNumber: typeof import('nutui-uniapp/components/inputnumber/inputnumber.vue')['default']
58
+    NutMenu: typeof import('nutui-uniapp/components/menu/menu.vue')['default']
59
+    NutMenuItem: typeof import('nutui-uniapp/components/menuitem/menuitem.vue')['default']
60
+    NutNoticebar: typeof import('nutui-uniapp/components/noticebar/noticebar.vue')['default']
61
+    NutOverlay: typeof import('nutui-uniapp/components/overlay/overlay.vue')['default']
62
+    NutPicker: typeof import('nutui-uniapp/components/picker/picker.vue')['default']
63
+    NutPopup: typeof import('nutui-uniapp/components/popup/popup.vue')['default']
64
+    NutRadio: typeof import('nutui-uniapp/components/radio/radio.vue')['default']
65
+    NutRadioGroup: typeof import('nutui-uniapp/components/radiogroup/radiogroup.vue')['default']
66
+    NutRate: typeof import('nutui-uniapp/components/rate/rate.vue')['default']
67
+    NutSearchbar: typeof import('nutui-uniapp/components/searchbar/searchbar.vue')['default']
68
+    NutStep: typeof import('nutui-uniapp/components/step/step.vue')['default']
69
+    NutSteps: typeof import('nutui-uniapp/components/steps/steps.vue')['default']
70
+    NutSwitch: typeof import('nutui-uniapp/components/switch/switch.vue')['default']
71
+    NutTabPane: typeof import('nutui-uniapp/components/tabpane/tabpane.vue')['default']
72
+    NutTabs: typeof import('nutui-uniapp/components/tabs/tabs.vue')['default']
73
+    NutUploader: typeof import('nutui-uniapp/components/uploader/uploader.vue')['default']
74
+    ProductCard: typeof import('./src/components/ProductCard/ProductCard.vue')['default']
75
+    ProductList: typeof import('./src/components/ProductList/ProductList.vue')['default']
76
+    SignInGiftBag: typeof import('./src/components/CXBDialogSignIn/SignInGiftBag.vue')['default']
77
+    SignRedPacket: typeof import('./src/components/CXBDialogSignIn/SignRedPacket.vue')['default']
78
+  }
79
+}

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
1
+<!DOCTYPE html>
2
+<html>
3
+  <head>
4
+    <meta charset="UTF-8" />
5
+    <script>
6
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
7
+        CSS.supports('top: constant(a)'))
8
+      document.write(
9
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
10
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
11
+    </script>
12
+    <title></title>
13
+    <!--preload-links-->
14
+    <!--app-context-->
15
+  </head>
16
+  <body>
17
+    <div id="app"><!--app-html--></div>
18
+    <script type="module" src="/src/main.ts"></script>
19
+  </body>
20
+</html>

+ 102 - 0
package.json

@@ -0,0 +1,102 @@
1
+{
2
+  "name": "uni-preset-vue",
3
+  "version": "0.0.0",
4
+  "scripts": {
5
+    "dev:app": "uni -p app",
6
+    "dev:app-android": "uni -p app-android",
7
+    "dev:app-ios": "uni -p app-ios",
8
+    "dev:custom": "uni -p",
9
+    "dev:h5": "uni",
10
+    "dev:h5:ssr": "uni --ssr",
11
+    "dev:mp-alipay": "uni -p mp-alipay",
12
+    "dev:mp-baidu": "uni -p mp-baidu",
13
+    "dev:mp-jd": "uni -p mp-jd",
14
+    "dev:mp-kuaishou": "uni -p mp-kuaishou",
15
+    "dev:mp-lark": "uni -p mp-lark",
16
+    "dev:mp-qq": "uni -p mp-qq",
17
+    "dev:mp-toutiao": "uni -p mp-toutiao",
18
+    "dev:mp-weixin": "uni -p mp-weixin",
19
+    "dev:quickapp-webview": "uni -p quickapp-webview",
20
+    "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
21
+    "dev:quickapp-webview-union": "uni -p quickapp-webview-union",
22
+    "build:app": "uni build -p app",
23
+    "build:app-android": "uni build -p app-android",
24
+    "build:app-ios": "uni build -p app-ios",
25
+    "build:custom": "uni build -p",
26
+    "build:h5": "uni build",
27
+    "build:h5:ssr": "uni build --ssr",
28
+    "build:mp-alipay": "uni build -p mp-alipay",
29
+    "build:mp-baidu": "uni build -p mp-baidu",
30
+    "build:mp-jd": "uni build -p mp-jd",
31
+    "build:mp-kuaishou": "uni build -p mp-kuaishou",
32
+    "build:mp-lark": "uni build -p mp-lark",
33
+    "build:mp-qq": "uni build -p mp-qq",
34
+    "build:mp-toutiao": "uni build -p mp-toutiao",
35
+    "build:mp-weixin": "uni build -p mp-weixin",
36
+    "build:quickapp-webview": "uni build -p quickapp-webview",
37
+    "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
38
+    "build:quickapp-webview-union": "uni build -p quickapp-webview-union",
39
+    "type-check": "vue-tsc --noEmit"
40
+  },
41
+  "dependencies": {
42
+    "@dcloudio/uni-app": "3.0.0-3080720230703001",
43
+    "@dcloudio/uni-app-plus": "3.0.0-3080720230703001",
44
+    "@dcloudio/uni-components": "3.0.0-3080720230703001",
45
+    "@dcloudio/uni-h5": "3.0.0-3080720230703001",
46
+    "@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001",
47
+    "@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001",
48
+    "@dcloudio/uni-mp-jd": "3.0.0-3080720230703001",
49
+    "@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001",
50
+    "@dcloudio/uni-mp-lark": "3.0.0-3080720230703001",
51
+    "@dcloudio/uni-mp-qq": "3.0.0-3080720230703001",
52
+    "@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001",
53
+    "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001",
54
+    "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001",
55
+    "@uni-helper/uni-use": "^0.14.0",
56
+    "@vueuse/core": "^9.13.0",
57
+    "dayjs": "^1.11.9",
58
+    "js-base64": "^3.7.5",
59
+    "less": "^4.2.0",
60
+    "lodash-es": "^4.17.21",
61
+    "mp-html": "^2.4.2",
62
+    "nutui-uniapp": "^1.1.8",
63
+    "pinia": "^2.0.36",
64
+    "sass": "^1.64.2",
65
+    "vue": "^3.3.4",
66
+    "vue-i18n": "^9.2.2"
67
+  },
68
+  "devDependencies": {
69
+    "@antfu/eslint-config": "^0.40.2",
70
+    "@dcloudio/types": "^3.3.3",
71
+    "@dcloudio/uni-automator": "3.0.0-alpha-3081220230802001",
72
+    "@dcloudio/uni-cli-shared": "3.0.0-alpha-3081220230802001",
73
+    "@dcloudio/uni-stacktracey": "3.0.0-alpha-3081220230802001",
74
+    "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3081220230802001",
75
+    "@iconify-json/tabler": "^1.1.87",
76
+    "@types/node": "^20.4.9",
77
+    "@uni-helper/uni-app-types": "^0.5.8",
78
+    "@uni-helper/uni-env": "^0.0.3",
79
+    "@uni-helper/vite-plugin-uni-components": "^0.0.6",
80
+    "@uni-helper/vite-plugin-uni-pages": "^0.2.6",
81
+    "@vue/compiler-sfc": "^3.3.4",
82
+    "@vue/server-renderer": "3.3.4",
83
+    "@vue/tsconfig": "^0.4.0",
84
+    "stylelint": "^15.10.2",
85
+    "stylelint-config-html": "^1.1.0",
86
+    "stylelint-config-recess-order": "^4.3.0",
87
+    "stylelint-config-recommended": "^13.0.0",
88
+    "stylelint-config-recommended-vue": "^1.5.0",
89
+    "stylelint-config-standard": "^34.0.0",
90
+    "stylelint-config-standard-scss": "^10.0.0",
91
+    "stylelint-order": "^6.0.3",
92
+    "typescript": "^5.1.6",
93
+    "uni-tsc": "^0.0.2",
94
+    "unocss": "^0.53.6",
95
+    "unocss-applet": "^0.5.3",
96
+    "unocss-preset-weapp": "^0.53.7",
97
+    "unplugin-auto-import": "^0.16.6",
98
+    "unplugin-vue-components": "^0.25.1",
99
+    "vite": "4.4.7",
100
+    "vue-tsc": "^1.8.8"
101
+  }
102
+}

+ 50 - 0
pages.config.ts

@@ -0,0 +1,50 @@
1
+// pages.config.ts
2
+import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'
3
+
4
+export default defineUniPages({
5
+  // You can also define pages fields, which have the highest priority.
6
+  pages: [
7
+  ],
8
+  tabBar: {
9
+    // Gray3
10
+    color: '#828282',
11
+    // Gray1
12
+    selectedColor: '#FE0032',
13
+    backgroundColor: '#FFFFFF',
14
+    list: [{
15
+      pagePath: 'pages/home/index',
16
+      iconPath: 'static/icon/home-off.png',
17
+      selectedIconPath: 'static/icon/home-on.png',
18
+      text: '首页'
19
+    }, {
20
+      pagePath: 'pages/store/nearby/index',
21
+      iconPath: 'static/icon/chuangke-off.png',
22
+      selectedIconPath: 'static/icon/chuangke-on.png',
23
+      text: '创客'
24
+    }, {
25
+      pagePath: 'pages/dacang/list/index',
26
+      iconPath: 'static/icon/dacang-off.png',
27
+      selectedIconPath: 'static/icon/dacang-on.png',
28
+      text: '大仓'
29
+    }, {
30
+      pagePath: 'pages/order_addcart/index',
31
+      iconPath: 'static/icon/shopcart-off.png',
32
+      selectedIconPath: 'static/icon/shopcart-on.png',
33
+      text: '购物车'
34
+    },{
35
+      pagePath: 'pages/user/index',
36
+      iconPath: 'static/icon/user-off.png',
37
+      selectedIconPath: 'static/icon/user-on.png',
38
+      text: '我的'
39
+    }]
40
+  },
41
+  globalStyle: {
42
+    navigationBarBackgroundColor: '@navBgColor',
43
+    navigationBarTextStyle: '@navTxtStyle',
44
+    navigationBarTitleText: '储蓄保',
45
+    backgroundColor: '@bgColor',
46
+    backgroundTextStyle: '@bgTxtStyle',
47
+    backgroundColorTop: '@bgColorTop',
48
+    backgroundColorBottom: '@bgColorBottom',
49
+  },
50
+})

Разлика између датотеке није приказан због своје велике величине
+ 9766 - 0
pnpm-lock.yaml


+ 24 - 0
rules.ts

@@ -0,0 +1,24 @@
1
+import type { Rule, RuleContext } from 'unocss'
2
+import type { Theme } from 'unocss/preset-mini'
3
+import { parseColor } from '@unocss/preset-mini'
4
+
5
+export const rules = [
6
+  [/^f-(.*)$/, ([, body]: string[], { theme }: RuleContext<Theme>) => {
7
+    const color = parseColor(body, theme)
8
+    if (color?.cssColor?.type === 'rgb' && color.cssColor.components) {
9
+      return {
10
+        '--fastlane-c-context': `${color.cssColor.components.join(',')}`,
11
+      }
12
+    }
13
+  }],
14
+  // ['p-safe', { padding: 'env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)' }],
15
+  // ['pt-safe', { 'padding-top': 'env(safe-area-inset-top)' }],
16
+  // ['pb-safe', { 'padding-bottom': 'env(safe-area-inset-bottom)' }],
17
+  // ['pl-safe', { 'padding-left': 'env(safe-area-inset-left)' }],
18
+  // ['pr-safe', { 'padding-right': 'env(safe-area-inset-right)' }],
19
+  // ['m-safe', { margin: 'env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)' }],
20
+  // ['mt-safe', { 'margin-top': 'env(safe-area-inset-top)' }],
21
+  // ['mb-safe', { 'margin-bottom': 'env(safe-area-inset-bottom)' }],
22
+  // ['ml-safe', { 'margin-left': 'env(safe-area-inset-left)' }],
23
+  // ['mr-safe', { 'margin-right': 'env(safe-area-inset-right)' }],
24
+] as Rule<Theme>[]

+ 83 - 0
src/App.vue

@@ -0,0 +1,83 @@
1
+<script setup lang="ts">
2
+import { onLaunch, onShow, onHide, onReady } from "@dcloudio/uni-app";
3
+import {useAddressStore} from "~/stores/addressStore";
4
+import {useGlobalData} from "@uni-helper/uni-use";
5
+import {useUserStore} from "~/stores/userStore";
6
+const addressStore = useAddressStore()
7
+const that = this
8
+const privacyData = uni.getStorageSync('PRIVACY')
9
+const userStore = useUserStore()
10
+onLaunch(() => {
11
+  console.log("App Launch");
12
+  // that.globalData = {
13
+  //   privacyContractName: '' ,
14
+  //   showPrivacy: false,
15
+  // }
16
+  wx.getPrivacySetting({
17
+    success(res) {
18
+      // console.log('是否需要授权:', res.needAuthorization, '隐私协议的名称为:', res.privacyContractName);
19
+      if (res.needAuthorization) {
20
+        uni.setStorageSync('PRIVACY', { privacyContractName: res.privacyContractName, showPrivacy: true})
21
+        // that.globalData.privacyContractName = res.privacyContractName
22
+        // that.globalData.showPrivacy = true
23
+        // globalData.privacyContractName = res.privacyContractName;
24
+        // app.globalDatashowPrivacy = true;
25
+      } else {
26
+        // globalData.showPrivacy = false;
27
+        // this.globalData.showPrivacy = false
28
+        uni.setStorageSync('PRIVACY', { privacyContractName: res.privacyContractName, showPrivacy: false})
29
+
30
+      }
31
+    }
32
+  });
33
+
34
+
35
+// #ifdef MP-WEIXIN
36
+  wx.onAppRoute((res) => {
37
+    // console.log('路由监听',res)
38
+    if (res.openType === 'switchTab') {
39
+      if (res.path === "pages/order_addcart/index") {
40
+
41
+      }
42
+      // console.log(res)
43
+      // #ifdef MP-WEIXIN
44
+      // wx.hideTabBar()
45
+      // #endif
46
+    }
47
+  })
48
+  // #endif
49
+});
50
+// useGlobalData()
51
+onShow(() => {
52
+
53
+  console.log("App Show");
54
+  addressStore.getCurrentAddress()
55
+});
56
+onHide(() => {
57
+  console.log("App Hide");
58
+});
59
+onReady(() => {
60
+  const app = getApp()
61
+  app.globalData = {
62
+    privacyContractName: '', //隐私协议的名字
63
+    showPrivacy: false //控制隐私弹窗显隐
64
+  }
65
+
66
+
67
+  // const that = this;
68
+  // wx.getPrivacySetting({
69
+  //   success(res) {
70
+  //     console.log('是否需要授权:', res.needAuthorization, '隐私协议的名称为:', res.privacyContractName);
71
+  //     if (res.needAuthorization) {
72
+  //       globalData.privacyContractName = res.privacyContractName;
73
+  //       app.globalDatashowPrivacy = true;
74
+  //     } else {
75
+  //       globalData.showPrivacy = false;
76
+  //     }
77
+  //   }
78
+  // });
79
+})
80
+</script>
81
+<style lang="scss">
82
+@import 'nutui-uniapp/styles/index';
83
+</style>

+ 81 - 0
src/apis/auth.api.ts

@@ -0,0 +1,81 @@
1
+import {defHttp} from "~/utils/http";
2
+import type {AccountModel, LoginModel} from "~/apis/model/login.model";
3
+
4
+enum API {
5
+    // 短信验证码
6
+    AUTH_VERIFY = '/api/auth/verify',
7
+    // 手机号+验证码登录
8
+    AUTH_SMS_LOGIN = '/api/auth/smslogin',
9
+    // 手机号+密码登录
10
+    AUTH_LOGIN = '/api/auth/login',
11
+    // 微信登录 - 绑定用户 - 手机号码验证码
12
+    THIRD_BINDING = '/api/third/binding',
13
+    // 一键登录
14
+    AUTH_YIJIANLOGIN = '/api/auth/yijianlogin',
15
+    // 微信登录
16
+    WECHAT_CHECK = '/api/wechat/check',
17
+    // 第三方账号绑定
18
+    USER_UPDATE_ACCOUNT = '/api/user/updateAccount',
19
+    // 获取用户的 openid 财是判断用户是否绑定
20
+    USER_WECHAT_LOGIN_ON = '/gateway/userCenter_service/userWechatLogOn/wechat',
21
+    // 提现微信绑定
22
+    USER_EXTRACT_BAND_OPENID = '/api/user/extract/band_openid',
23
+}
24
+
25
+
26
+/**
27
+ * 更新绑定微信或支付宝账号
28
+ */
29
+export function getUpdateAccount(params: { type: string, openid: string, nickname: string, avatar: string }): Promise<{wechat_user_id: string, ali_user_id: string}> {
30
+    return defHttp.post({
31
+        url: API.USER_UPDATE_ACCOUNT,
32
+        data: {
33
+            ...params
34
+        }
35
+    })
36
+}
37
+/**
38
+ * 短信验证码
39
+ * @param phone
40
+ */
41
+export function authVerify(phone: string) {
42
+    return defHttp.post({
43
+        url: API.AUTH_VERIFY,
44
+        data: {
45
+            phone
46
+        }
47
+    })
48
+}
49
+
50
+/**
51
+ * 手机号+验证码登录
52
+ */
53
+export function authSmsLogin(params: {
54
+    phone: string,
55
+    sms_code: string,
56
+    share_id?: string
57
+}): Promise<LoginModel> {
58
+    return defHttp.post({
59
+        url: API.AUTH_SMS_LOGIN,
60
+        data: {
61
+            ...params
62
+        }
63
+    })
64
+}
65
+
66
+/**
67
+ * 绑定提现账户
68
+ * 
69
+ */
70
+
71
+export function Accountbind(params: {
72
+    openid: string,
73
+    wx_type: string,
74
+}): Promise<AccountModel> {
75
+    return defHttp.post({
76
+        url: API.USER_EXTRACT_BAND_OPENID,
77
+        data: {
78
+            ...params
79
+        }
80
+    })
81
+}

+ 202 - 0
src/apis/common.ts

@@ -0,0 +1,202 @@
1
+import {defHttp} from '~/utils/http'
2
+import {USER_LATITUDE, USER_LONGITUDE} from "~/constants";
3
+import AmapWx from "~/libs/amap-wx";
4
+import type {ArticleCategoryModel, ArticleModel, ArticleResult} from "~/apis/model/articleModel";
5
+import type {HomeQuickLinkModel} from "~/apis/model/common.model";
6
+import type {IntegralProductModel, IntegralProductParams} from "~/apis/model/integral.model";
7
+import type {AnnouncementResult} from "~/apis/model/announcement.model";
8
+import type {FeedbackRequestModel} from "~/apis/model/feedback.model";
9
+// import {a} from "unocss-preset-weapp/dist/utilities-46c43da7";
10
+// 引入
11
+// import amap from '~/libs/amap-wx.130.js';
12
+
13
+// let amapPlugin = new amap.AMapWX({
14
+//     key: "e42681aed12886436ed44d6c28aa22c8"
15
+// });
16
+const amap = AmapWx.getInstance({key: "e42681aed12886436ed44d6c28aa22c8"});
17
+
18
+enum API {
19
+
20
+    /**
21
+     * // 获取北参堂icon和title
22
+     * 首页金刚区
23
+     */
24
+    HOME_QUICK_LINK = `/api/common/home_quick_link`,
25
+    // 积分通兑产品
26
+    ENTROPY_PRODUCT_LIST = '/api/entropy/product_lst',
27
+    // 帮助中心分类
28
+    ARTICLE_CATEGORY_LIST = '/api/article/category/lst/19',
29
+    // 文章列表
30
+    ARTICLE_LIST = '/api/article/lst',
31
+    // 文章详情
32
+    ARTICLE_DETAIL = '/api/article/detail',
33
+
34
+    // 系统公告
35
+    NOTICE_LIST = '/api/notice/list',
36
+
37
+    // 注销接口
38
+    USER_LOGOUT = '/gateway/userCenter_service/userCenterService/userLogout',
39
+
40
+    // 上传图片
41
+    UPLOAD_IMAGE_FIELD = '/api/upload/image/field',
42
+    // 意见反馈-类型
43
+    FEEDBACK_TYPE_NEW = '/api/common/feedback_type_new',
44
+    // 意见反馈提交
45
+    FEEDBACK = '/api/user/feedback',
46
+    // 获取热门搜索关键词
47
+    HOT_KEYWORD = '/api/common/hot_keyword',
48
+
49
+    HOME_BANNER = '/api/newhome/nologin/banner/home_banner_new',
50
+	BANNER = '/api/newhome/nologin/banner/',
51
+
52
+    GET_PRODUCT_SHARE = '/api/get_product_share',
53
+    // /api/get_product_share
54
+}
55
+
56
+export function getProductShare() {
57
+    return defHttp.get({
58
+        url: API.GET_PRODUCT_SHARE
59
+    })
60
+}
61
+
62
+/**
63
+ * 获取首页轮播图
64
+ */
65
+export function getHomeBanner(type="home_banner_new") {
66
+    return defHttp.get({
67
+        url: API.BANNER+type,
68
+    })
69
+}
70
+
71
+// 获取热门搜索关键ygnk
72
+export function getHotkeyWord() {
73
+    return defHttp.get({
74
+        url: API.HOT_KEYWORD,
75
+    })
76
+}
77
+/**
78
+ * 添加反馈
79
+ * @param params
80
+ */
81
+export function createFeedback(params: FeedbackRequestModel) {
82
+    return defHttp.post({
83
+        url: API.FEEDBACK,
84
+        data: {
85
+            ...params
86
+        }
87
+    })
88
+}
89
+export function getFeedbackType() {
90
+    return defHttp.get({
91
+        url: API.FEEDBACK_TYPE_NEW,
92
+    })
93
+}
94
+/**
95
+ * 注销账号
96
+ * @param phone
97
+ */
98
+export function closeAccount(phone: string) {
99
+
100
+    return defHttp.post({
101
+        url: API.USER_LOGOUT,
102
+        data: {
103
+            phone
104
+        }
105
+    }, {
106
+        withToken: false
107
+    })
108
+}
109
+
110
+export function getLocal() {
111
+    uni.getLocation({
112
+        type: 'wgs84',
113
+        success(res) {
114
+            console.log('location', res)
115
+            uni.setStorageSync(USER_LATITUDE, res.latitude)
116
+            uni.setStorageSync(USER_LONGITUDE, res.longitude)
117
+            // getRegeo(res.latitude, res.longitude);
118
+        }
119
+    })
120
+
121
+    // uni.showModal({
122
+    //     title: '提示',
123
+    //     content: '为了您更好的体验,请同意授权位置',
124
+    //     success: (res) => {
125
+    //         if (res.confirm) {
126
+    //             uni.getLocation({
127
+    //                 type: 'wgs84',
128
+    //                 success(res) {
129
+    //                     console.log(res)
130
+    //                     uni.setStorageSync(USER_LATITUDE, res.latitude)
131
+    //                     uni.setStorageSync(USER_LONGITUDE, res.longitude)
132
+    //                     // getRegeo(res.latitude, res.longitude);
133
+    //                 }
134
+    //             })
135
+    //             // amap.getWxLocation(async (loc) => {
136
+    //                 // 获取地址描述数据
137
+    //                 // const regeoRes = await amap.getRegeo({location: loc});
138
+    //                 // console.log(regeoRes.data.regeocode.addressComponent)
139
+    //             // })
140
+    //         }
141
+    //     }
142
+    // })
143
+}
144
+
145
+export async function getRegeo(latitude: number, longitude: number) {
146
+    // amapPlugin.getRegeo
147
+    const regeoRes = await amap.getRegeo({
148
+        location: '' + longitude + ',' + latitude + '',
149
+    })
150
+    // console.log(regeoRes.data.regeocode.addressComponent.city)
151
+}
152
+
153
+/**
154
+ * 获取积分通兑产品列表
155
+ */
156
+export function getEntropyProductList(params: IntegralProductParams): Promise<Array<IntegralProductModel>> {
157
+    return defHttp.get({
158
+        url: API.ENTROPY_PRODUCT_LIST,
159
+        data: {
160
+            ...params
161
+        }
162
+    })
163
+}
164
+
165
+/**
166
+ * 获取帮助中心分类
167
+ */
168
+export function getArticleCategory(): Promise<ArticleCategoryModel[]> {
169
+    return defHttp.get({
170
+        url: API.ARTICLE_CATEGORY_LIST,
171
+    }, {withToken: false})
172
+}
173
+
174
+/**
175
+ * 文章列表
176
+ */
177
+export function getArticleList(article_category_id: string): Promise<ArticleResult> {
178
+    return defHttp.get({
179
+        url: `${API.ARTICLE_LIST}/${article_category_id}`,
180
+    }, {withToken: false})
181
+}
182
+
183
+export function getArticleDetail(article_id: string): Promise<ArticleModel> {
184
+    return defHttp.get({
185
+        url: `${API.ARTICLE_DETAIL}/${article_id}`,
186
+    }, {withToken: false})
187
+}
188
+
189
+/**
190
+ * 首页金刚区
191
+ */
192
+export function getHomeQuickLink(): Promise<Array<HomeQuickLinkModel>> {
193
+    return defHttp.get({
194
+        url: `${API.HOME_QUICK_LINK}`
195
+    })
196
+}
197
+
198
+export function getNoticeList(): Promise<AnnouncementResult> {
199
+    return defHttp.get({
200
+        url: `${API.NOTICE_LIST}`
201
+    })
202
+}

+ 164 - 0
src/apis/dacang.ts

@@ -0,0 +1,164 @@
1
+import { defHttp } from '~/utils/http'
2
+import type {
3
+	DcBannerDataModel,
4
+	DcHomeMerchantModel, DcHomeProductModel, DcIntroduce, DcMemberProductResult, DcModel, DcProductClassifyModel,
5
+	DcProductModel, DcSeckillModel, QueryDcHomeParams, QueryDcMemberProductListParams,
6
+	QueryDcProductListParams
7
+} from "~/apis/model/dacang.model";
8
+
9
+enum API {
10
+	DC_BANNER= '/api/newhome/nologin/banner/da_cang',
11
+	// 一元购
12
+	DC_BANNER_ONE_YUAN_PAY = '/api/newhome/nologin/banner/one_yuan_pay',
13
+	// 大仓金刚区
14
+	DC_HOME_MERCHANT = '/api/dacang/nologin/dc_home_merchant',
15
+	// 大仓秒杀商品
16
+	DC_SECKILL = '/api/dacang/nologin/seckill',
17
+	DC_SECKILL_INDEX_TIME ='/api/store/product/seckill/select',
18
+	// 大仓商品列表
19
+	DC_PRODUCT_LIST = '/api/dacang/nologin/da_cang_product_lst',
20
+	// 大仓搜索商品列表
21
+	DC_SEARCH_LIST = '/gateway/wares_service/waresService/selectProductList',
22
+	// 大仓会员商品
23
+	DC_MEMBER_PRODUCT_LIST = '/api/store/product/dacang_lst',
24
+	// 大仓列表
25
+	DC_LIST = '/api/dacang/nologin/da_cang_lst',
26
+	// 大仓介绍
27
+	DC_INTRODUCE = '/api/dacang/nologin/introduce',
28
+	// 单个大仓商品列表
29
+	DC_HOME_PRODUCT_LIST = '/api/dacang/nologin/dc_home_product',
30
+	// 大仓商品列表分类
31
+	DC_CLASSIFY = '/api/dacang/nologin/classify',
32
+
33
+	SECKILL_LIST = '/api/store/product/seckill/lst',
34
+}
35
+
36
+
37
+export function getSeckillList(params: {page: number, limit: number, start_time: number, end_time: number}) {
38
+	return defHttp.get({
39
+		url: API.SECKILL_LIST,
40
+		data: {
41
+			...params
42
+		}
43
+	})
44
+}
45
+export function getSeckillIndexTime() {
46
+	return defHttp.get({
47
+		url: API.DC_SECKILL_INDEX_TIME
48
+	})
49
+}
50
+/**
51
+ * 大仓 banner 列表
52
+ */
53
+export function getDcBanner(): Promise<Array<DcBannerDataModel>> {
54
+	return defHttp.get({
55
+		url: API.DC_BANNER
56
+	})
57
+}
58
+
59
+export function getDcBannerOneYuanPay(): Promise<Array<DcBannerDataModel>> {
60
+	return defHttp.get({
61
+		url: API.DC_BANNER_ONE_YUAN_PAY
62
+	})
63
+}
64
+
65
+/**
66
+ * 大仓首页数据(金刚区)
67
+ * @param id
68
+ */
69
+export function getDcHomeMerchant(id: string): Promise<Array<DcHomeMerchantModel>> {
70
+	return defHttp.get({
71
+		url: `${API.DC_HOME_MERCHANT}/${id}`
72
+	})
73
+}
74
+
75
+/**
76
+ * 大仓商品列表
77
+ *
78
+ */
79
+export function getDcProductList(params: QueryDcProductListParams): Promise<Array<DcProductModel>> {
80
+	return defHttp.get({
81
+		url: API.DC_PRODUCT_LIST,
82
+		data: {
83
+			...params
84
+		}
85
+	})
86
+}
87
+/**
88
+ * 大仓搜索商品列表
89
+ *
90
+ */
91
+export function getDcSearchList(params: any): Promise<Array<any>> {
92
+	return defHttp.get({
93
+		url: API.DC_SEARCH_LIST,
94
+		data: {
95
+			...params
96
+		}
97
+	})
98
+}
99
+
100
+/**
101
+ * 大仓秒杀商品
102
+ */
103
+export function getDcSeckill(params: { page: number, limit: number }): Promise<Array<DcSeckillModel>> {
104
+	return defHttp.get({
105
+		url: API.DC_SECKILL,
106
+		data: {
107
+			...params
108
+		}
109
+	    })
110
+}
111
+
112
+/**
113
+ * 大仓会员商品列表
114
+ * @param params
115
+ */
116
+export function getDcMemberProductList(params: QueryDcMemberProductListParams): Promise<DcMemberProductResult> {
117
+	return defHttp.get({
118
+		url: API.DC_MEMBER_PRODUCT_LIST,
119
+		data: {
120
+			...params
121
+		}
122
+	})
123
+}
124
+
125
+/**
126
+ * 大仓列表
127
+ */
128
+export function getDcList(): Promise<Array<DcModel>> {
129
+	return defHttp.get({
130
+		url: API.DC_LIST
131
+	})
132
+}
133
+
134
+/**
135
+ * 大仓介绍
136
+ * @param id
137
+ */
138
+export function getDcIntroduce(id: string): Promise<DcIntroduce> {
139
+	return defHttp.get({
140
+		url: `${API.DC_INTRODUCE}/${id}`
141
+	})
142
+}
143
+
144
+/**
145
+ * 单个大仓的商品列表
146
+ * @param id
147
+ * @param params
148
+ */
149
+export function getDcHomeProductList(id: string, params: QueryDcHomeParams): Promise<Array<DcHomeProductModel>> {
150
+	return defHttp.get({
151
+		url: `${API.DC_HOME_PRODUCT_LIST}/${id}`,
152
+		data: {
153
+			...params
154
+		}
155
+	})
156
+}
157
+/**
158
+ * 大仓商品分类
159
+ */
160
+export function getDcProductClassify(): Promise<DcProductClassifyModel> {
161
+	return defHttp.get({
162
+		url: API.DC_CLASSIFY
163
+	})
164
+}

+ 28 - 0
src/apis/home.ts

@@ -0,0 +1,28 @@
1
+import { defHttp } from '~/utils/http'
2
+import type {PageModel} from "~/apis/model/pageModel";
3
+import type {HomeProduct} from "~/apis/model/product.model";
4
+
5
+enum API {
6
+    GET_ROLL_YANGLAOJIN = '/api/roll_yanglaojin',
7
+    GET_PRODUCT = '/api/newhome/nologin/product',
8
+}
9
+/**
10
+ * 获取滚动消息
11
+ */
12
+export function getRollYanglaojin() {
13
+    return defHttp.get({
14
+        url: API.GET_ROLL_YANGLAOJIN
15
+    })
16
+}
17
+
18
+/**
19
+ * 获取首页商品
20
+ */
21
+export function getProduct(pagination: PageModel): Promise<Array<HomeProduct>> {
22
+    return defHttp.get({
23
+        url: API.GET_PRODUCT,
24
+        data: {
25
+            ...pagination
26
+        }
27
+    })
28
+}

+ 137 - 0
src/apis/merchant.ts

@@ -0,0 +1,137 @@
1
+import { defHttp} from '~/utils/http'
2
+import type {MerchantCategoryModel, MerchantDetailModel, StoreParams, StoreResult} from "~/apis/model/storeModel";
3
+import type {PageModel} from "~/apis/model/pageModel";
4
+import type {ZibubaojianResult} from "~/apis/model/zibubaojian.model";
5
+import type {VipAreaResult} from "~/apis/model/vip-area.model";
6
+
7
+import {detailHttp} from '~/utils/http'
8
+
9
+
10
+enum API {
11
+    GET_SELECT_MERCHANT = '/gateway/wares_service/waresServiceMerchant/selectMerchant',
12
+    GET_SELECT_MERCHANT_SORT = '/gateway/wares_service/waresServiceMerchant/selectMerchantSort',
13
+    GET_DETAIL = '/api/store/merchant/detail',
14
+    GET_MERCHANT_CATEGORY = '/api/store/merchant/category/lst',
15
+    GET_PRODUCT_LIST = '/api/store/merchant/product/lst',
16
+    GET_PRODUCT_DETAIL = '/api/store/product/detail',
17
+    // 产品推荐列表
18
+    GET_PRODUCT_RECOMMEND_LIST = '/api/store/product/recommend/lst',
19
+    // 会员产商品
20
+    GET_VIP_AREA_LIST = '/api/store/merchant/product/lst/324',
21
+	
22
+	GET_TYPE_PRODUCT_LIST = '/api/store/merchant/product/type_lst.html'
23
+}
24
+
25
+/**
26
+ * 店铺搜索
27
+ */
28
+export async function getSelectMerchant(params: StoreParams): Promise<StoreResult> {
29
+    const {pageInfo} = await defHttp.get({
30
+        url: API.GET_SELECT_MERCHANT,
31
+        data: params,
32
+    },{withToken: false})
33
+
34
+    return pageInfo
35
+}
36
+
37
+export function getSelectMerchantSort() {
38
+    return defHttp.get({
39
+        url: API.GET_SELECT_MERCHANT_SORT
40
+    }, {
41
+        withToken: false
42
+    })
43
+}
44
+
45
+/**
46
+ * 获取商铺详情 getShopInfo
47
+ * @param id
48
+ */
49
+export function getMerchantDetail(id: string): Promise<MerchantDetailModel> {
50
+    return defHttp.get({
51
+        url: API.GET_DETAIL + `/${id}`
52
+    }, {
53
+        // withToken: false
54
+    })
55
+}
56
+
57
+export function getMerchantCategory(id: string): Promise<Array<MerchantCategoryModel>> {
58
+    return defHttp.get({
59
+        url: API.GET_MERCHANT_CATEGORY + `/${id}`
60
+    }, {
61
+        withToken: false
62
+    })
63
+}
64
+
65
+/**
66
+ * 获取店铺商品列表
67
+ * 滋补保健
68
+ * @param id
69
+ */
70
+export function getProductList(id: string,page=1,limit=10): Promise<ZibubaojianResult> {
71
+    return defHttp.get({
72
+        url: API.GET_PRODUCT_LIST + `/${id}`,
73
+        params: {
74
+            'page': page,
75
+            'limit': limit
76
+        }
77
+    })
78
+}
79
+
80
+/**
81
+ * 获取产品详情
82
+ * @param id
83
+ */
84
+export function getProductDetail(id: string) {
85
+    return detailHttp.get({
86
+        url: API.GET_PRODUCT_DETAIL + `/${id}`,
87
+    })
88
+}
89
+
90
+/**
91
+ * 获取推荐商品
92
+ * @param pageParams
93
+ */
94
+export function getRecommendList(pageParams: PageModel) {
95
+
96
+    return defHttp.get({
97
+        url: API.GET_PRODUCT_RECOMMEND_LIST,
98
+        params: {
99
+            page: pageParams.page === undefined ? 1 : pageParams.page,
100
+            limit: pageParams.limit === undefined ? 10 : pageParams.limit
101
+        }
102
+    })
103
+}
104
+
105
+
106
+/**
107
+ * 获取VIP商品
108
+ * @param pageParams
109
+ */
110
+export function getVipAreaList(pageParams: PageModel): Promise<VipAreaResult> {
111
+
112
+    return defHttp.get({
113
+        url: API.GET_VIP_AREA_LIST,
114
+        params: {
115
+            ...pageParams
116
+            // page: pageParams.page === undefined ? 1 : pageParams.page,
117
+            // limit: pageParams.limit === undefined ? 20 : pageParams.limit
118
+        }
119
+    })
120
+}
121
+
122
+
123
+/**
124
+ * 获取鼎盛联盟商品
125
+ * @param pageParams
126
+ */
127
+export function getTypeProductList(pageParams: PageModel): Promise<VipAreaResult> {
128
+
129
+    return defHttp.get({
130
+        url: API.GET_TYPE_PRODUCT_LIST,
131
+        params: {
132
+            ...pageParams
133
+            // page: pageParams.page === undefined ? 1 : pageParams.page,
134
+            // limit: pageParams.limit === undefined ? 20 : pageParams.limit
135
+        }
136
+    })
137
+}

+ 0 - 0
src/apis/model/aboutModel.ts


+ 27 - 0
src/apis/model/accumulateIncomeModel.ts

@@ -0,0 +1,27 @@
1
+import type {PageInfoModel} from "~/apis/model/common";
2
+export interface UserInviteProfitParams {
3
+    pageNum: number
4
+    pageSize: number
5
+    uid: string
6
+    commission_type?: string
7
+}
8
+
9
+export interface AccumulateIncomeModel {
10
+    // 累计收入
11
+    numberSun: number
12
+    // 奖励收益
13
+    rewardProfit: string
14
+    pageInfo: PageInfoModel<AccumulatedIncomeListModel>
15
+    // 分享收益
16
+    shareProfit: number
17
+    // 未结算收益
18
+    UserUnsettledInviteProfit: number
19
+}
20
+export interface AccumulatedIncomeListModel {
21
+    // 收益金额
22
+    number: string
23
+    // 收益标题
24
+    title: string
25
+    // 收益时间
26
+    createTime: string
27
+}

+ 60 - 0
src/apis/model/address.model.ts

@@ -0,0 +1,60 @@
1
+/**
2
+ * 地址结果
3
+ */
4
+export interface AddressResult {
5
+    list: Array<AddressModel>
6
+}
7
+
8
+export interface AddressModel {
9
+    address_id: string//用户地址id
10
+    uid: string//用户id
11
+    real_name: string//收货人姓名
12
+    phone: string//收货人电话
13
+    province: string//收货人所在省
14
+    city: string//收货人所在市
15
+    city_id: string//
16
+    district: string//收货人所在区
17
+    detail: string//收货人详细地址
18
+    post_code: string//邮编
19
+    longitude: string//经度
20
+    latitude: string//纬度
21
+    is_default: string//是否默认
22
+    is_del: string//是否删除
23
+    create_time: string//添加时间
24
+    code_list: string
25
+}
26
+
27
+// 一级地址
28
+export interface OneAddressModel {
29
+    id: string
30
+    name: string
31
+    pid: string
32
+    children: Array<TwoAddressModel>
33
+}
34
+
35
+export interface TwoAddressModel {
36
+    id: string
37
+    name: string
38
+    pid: string
39
+    children: Array<ThreeAddressModel>
40
+}
41
+
42
+export interface ThreeAddressModel {
43
+    id: string
44
+    name: string
45
+    pid: string
46
+    children: Array<FourAddressModel>
47
+}
48
+
49
+export interface FourAddressModel {
50
+    id: string
51
+    name: string
52
+    pid: string
53
+    // children: Array<FiveAddressModel>
54
+}
55
+
56
+// export interface FiveAddressModel {
57
+//     id: string
58
+//     name: string
59
+//     pid: string
60
+// }

+ 107 - 0
src/apis/model/after-sales-order.model.ts

@@ -0,0 +1,107 @@
1
+export interface AfterSalesOrderResult {
2
+    list: Array<AfterSalesOrderModel>
3
+    count: number
4
+}
5
+
6
+export interface AfterSalesOrderModel {
7
+    refund_order_id: string
8
+    refund_price: string
9
+    mer_id: number
10
+    status: string
11
+    merchant: MerchantModel
12
+    refundProduct: Array<RefundProductModel>
13
+}
14
+
15
+export interface MerchantModel {
16
+    mer_name: string
17
+    mer_id: number
18
+    mer_avatar: string
19
+}
20
+
21
+export interface RefundProductModel {
22
+    refund_product_id: string
23
+    refund_order_id: string
24
+    order_product_id: string
25
+    refund_num: string
26
+    create_time: string
27
+    product: ProductsModel
28
+}
29
+
30
+export interface ProductsModel {
31
+    order_product_id: number
32
+    order_id: number
33
+    uid: number
34
+    cart_id: number
35
+    product_id: number
36
+    extension_one: string
37
+    extension_two: string
38
+    product_sku: string
39
+    is_refund: number
40
+    product_num: number
41
+    refund_num: number
42
+    is_reply: number
43
+    product_price: string
44
+    cart_info: CartInfoModel
45
+    create_time: string
46
+    type: string
47
+}
48
+
49
+export interface CartInfoModel {
50
+    product: ProductModel
51
+    productAttr: ProductAttrModel
52
+    product_type: number
53
+}
54
+
55
+export interface ProductModel {
56
+    product_id: number
57
+    image: string
58
+    store_name: string
59
+    is_show: number
60
+    status: number
61
+    is_del: number
62
+    unit_name: string
63
+    price: string
64
+    mer_status: number
65
+    temp_id: number
66
+    give_coupon_ids: Array<string>
67
+    is_gift_bag: number
68
+    is_used: number
69
+    product_type: number
70
+    old_product_id: number
71
+    temp: TempModel
72
+}
73
+
74
+export interface TempModel {
75
+    shipping_template_id: number
76
+    name: string
77
+    type: number
78
+    appoint: number
79
+    undelivery: number
80
+    mer_id: number
81
+    is_default: number
82
+    sort: number
83
+    create_time: string
84
+    undelives: string
85
+    freeAddress: FreeAddressModel
86
+}
87
+
88
+export interface FreeAddressModel {
89
+    shipping_template_free_id: number
90
+    temp_id: number
91
+    city_id: string
92
+    number: number
93
+    price: string
94
+}
95
+export interface ProductAttrModel {
96
+    product_id: number
97
+    stock: number
98
+     price: string
99
+    unique: string
100
+    sku: string
101
+    volume: string
102
+    weight: string
103
+    ot_price: string
104
+    cost: string
105
+    bc_extension_one: string
106
+    bc_extension_two: string
107
+}

+ 16 - 0
src/apis/model/announcement.model.ts

@@ -0,0 +1,16 @@
1
+export interface AnnouncementResult {
2
+    count: number,
3
+    list: Array<AnnouncementModel>
4
+}
5
+export interface AnnouncementModel {
6
+    notice_id: string
7
+    // 标题
8
+    title: string
9
+    status: string
10
+    // 时间
11
+    create_time: string
12
+    // 内容
13
+    content: string
14
+    is_del: string
15
+    admin_id: string
16
+}

+ 49 - 0
src/apis/model/articleModel.ts

@@ -0,0 +1,49 @@
1
+export interface ArticleCategoryModel {
2
+    article_category_id: string
3
+    create_time: string
4
+    image: string
5
+    info: string
6
+    mer_id: string
7
+    pid: string
8
+    sort: string
9
+    status: string
10
+    title: string
11
+}
12
+
13
+export interface ArticleContentModel {
14
+    article_content_id: string
15
+    content: string
16
+}
17
+export interface ArticleModel {
18
+    admin_id: string
19
+    articleCategory: {
20
+        title: string
21
+    }
22
+    // 文章id
23
+    article_id: string
24
+    author: string
25
+    // 分类id
26
+    cid: string
27
+    content: ArticleContentModel
28
+    create_time: string
29
+    // 封面图
30
+    image_input: string
31
+    is_banner: string
32
+    is_hot: string
33
+    mer_id: string
34
+    pid: string
35
+    sort: string
36
+    status: string
37
+    synopsis: string
38
+    // 文章名称
39
+    title: string
40
+    uid: string
41
+    url: string
42
+    visit: string
43
+    wechat_news_id: string
44
+}
45
+
46
+export interface ArticleResult {
47
+    count: number,
48
+    list: ArticleModel[]
49
+}

+ 9 - 0
src/apis/model/auth.model.ts

@@ -0,0 +1,9 @@
1
+/**
2
+ * 第三方账号绑定
3
+ */
4
+export interface UpdateAccountModel {
5
+    //绑定微信返回这个参数(openid)
6
+    wechat_user_id: string
7
+    //绑定支付宝返回这个参数(userId)
8
+    ali_user_id: string
9
+}

+ 15 - 0
src/apis/model/certification.model.ts

@@ -0,0 +1,15 @@
1
+/**
2
+ * 实名认证信息
3
+ */
4
+export interface CertificationRequest {
5
+    // 姓名
6
+    user_name: string
7
+    // 身份证
8
+    user_card: string
9
+    // 手机号
10
+    mobile?: string
11
+    // 正面(照片)
12
+    card_positive: string
13
+    // 反面(照片)
14
+    card_reverse: string
15
+}

+ 14 - 0
src/apis/model/comment-product.ts

@@ -0,0 +1,14 @@
1
+export interface CommentProductRequest {
2
+    // 评价内容
3
+    comment: string
4
+    // 订单 order_product_id
5
+    id: string
6
+    // 图片
7
+    pics: Array<string>
8
+    // 物流评分
9
+    postage_score: number
10
+    // 商品评分
11
+    product_score: number
12
+    // 服务态度
13
+    service_score: number
14
+}

+ 33 - 0
src/apis/model/common.model.ts

@@ -0,0 +1,33 @@
1
+export enum PLATFORM_NAME {
2
+    JD = 'jingding',
3
+    TB = 'taobao',
4
+    PDD = 'pindouduo',
5
+    DC = 'dacang',
6
+    DY = 'douyin',
7
+    VIP = 'vip',
8
+    SU = 'suning'
9
+}
10
+export interface PageInfoModel<T> {
11
+    total: number
12
+    list: Array<T>
13
+    pageNum: number
14
+    pageSize: number
15
+    size: number
16
+    startRow: number
17
+    endRow: number
18
+    pages: number
19
+    prePage: number
20
+    nextPage: number
21
+    isFirstPage: boolean
22
+    isLastPage: boolean
23
+    hasPreviousPage: boolean
24
+    hasNextPage: boolean
25
+    navigatePages: boolean
26
+    navigateLastPage: number
27
+}
28
+
29
+export interface HomeQuickLinkModel {
30
+    image: string
31
+    title: string
32
+    key: string
33
+}

+ 236 - 0
src/apis/model/dacang.model.ts

@@ -0,0 +1,236 @@
1
+export interface QueryDcProductListParams {
2
+     page: number
3
+     limit: number
4
+     classify: string
5
+     keyword: string
6
+}
7
+
8
+export interface QueryDcMemberProductListParams {
9
+     page: number
10
+     limit: number
11
+     type?: string
12
+}
13
+
14
+export interface QueryDcHomeParams {
15
+     page: number
16
+     limit: number
17
+}
18
+// 大仓商品
19
+export type DcProductModel = {
20
+     banner:string
21
+     product_id: string
22
+     mer_id: string
23
+     image: string//图片
24
+     slider_image: string//滑动图
25
+     store_name: string//商品名称
26
+     da_cang_price: string//大仓价格
27
+     store_info: string
28
+     keyword: string//关键字
29
+     bar_code: string
30
+     brand_id: string
31
+     is_show: string
32
+     status: string
33
+     is_del: string
34
+     cate_id: string
35
+     unit_name: string
36
+     sort: string
37
+     rank: string
38
+     sales: string
39
+     price: string//最低价
40
+     cost: string
41
+     ot_price: string//原价
42
+     stock: string
43
+     is_hot: string
44
+     is_benefit: string
45
+     is_best: string
46
+     is_new: string
47
+     is_good: string
48
+     product_type: string
49
+     ficti: string
50
+     browse: string
51
+     code_path: string
52
+     video_link: string
53
+     temp_id: string
54
+     spec_type: string
55
+     extension_type: string
56
+     refusal: string
57
+     rate: string
58
+     reply_count: string
59
+     mer_status: string
60
+     give_coupon_ids: string
61
+     is_gift_bag: string
62
+     create_time: string
63
+     care_count: string
64
+     is_used: string
65
+     old_product_id: string
66
+     volunteer: string
67
+     type: string
68
+     pension: string
69
+     commission: string
70
+     flag: string//1 大仓商品 2 普通商品 3 京东商品
71
+     yanglao: string//养老金
72
+}
73
+
74
+export interface DcBannerDataModel {
75
+     // 名称
76
+     name: string
77
+     // 图片地址
78
+     pic: string
79
+     // 页面跳转路径//金卡,五一,签到,银卡
80
+     url: string
81
+     type: string
82
+     pic_app: string
83
+     ios_path: string
84
+}
85
+
86
+// 首页数据
87
+export interface DcHomeMerchantModel {
88
+     mer_id: string
89
+     mer_name: string
90
+     mer_avatar: string
91
+}
92
+
93
+// 秒杀数据
94
+export interface DcSeckillModel {
95
+     seckill_date: string
96
+     ctime: string
97
+     product_id: number
98
+     status: number
99
+     product_data: Array<DcSeckillProductDataModel>
100
+}
101
+
102
+export interface DcSeckillProductDataModel {
103
+     // 商品id
104
+     product_id: string
105
+     store_name: string
106
+     image: string
107
+     ot_price: number
108
+     seckill_price: number
109
+     yanglao: number
110
+     img: string
111
+     img_text: string
112
+     //1-抢购中。2-即将开始。3-已结速
113
+     status: string
114
+}
115
+
116
+/**
117
+ * 大仓会员商品结果集
118
+ */
119
+export interface DcMemberProductResult {
120
+     count: number
121
+     list: Array<DcMemberProductModel>
122
+}
123
+
124
+export interface DcMemberProductModel {
125
+     image: string
126
+     store_name: string
127
+     price: string
128
+     product_id: number
129
+     product_attr_unique: string
130
+     clicks: boolean
131
+     yanglao: string
132
+     ot_price: string
133
+     sales: string
134
+}
135
+
136
+/**
137
+ * 大仓
138
+ */
139
+export interface DcModel {
140
+     id: string
141
+     logo: string
142
+     warehouse_name: string
143
+     the_selected: boolean
144
+}
145
+
146
+/**
147
+ * 大仓介绍
148
+ */
149
+export interface DcIntroduce {
150
+      id: number
151
+      uid: number //用户id
152
+      user_name: string//负责人
153
+      account: string//储蓄保账号
154
+      create_time: number//创建时间
155
+      update_time: number//修改时间
156
+      warehouse_name: string//大仓名称
157
+      status: number//大仓状态 1开启 0关闭
158
+      logo: string//logo
159
+      complaint_mailbox: string
160
+      complaint_tel: string//投诉电话
161
+      service_tel: string//客服电话
162
+      attract_tel: string//招商电话
163
+      address: string//地址
164
+      business_license: string//营业执照
165
+      main_company: string//主体公司
166
+      province: string//省
167
+      city: string//市
168
+      area: string//县
169
+      introduce: string//介绍
170
+}
171
+
172
+// DcDetailsGoodsListBean
173
+// 单个大仓自己的商品信息
174
+export interface DcHomeProductModel {
175
+      product_id: string//商品ID
176
+      mer_id: string
177
+      image: string//商品图片
178
+      slider_image: string
179
+      store_name: string//商品名称
180
+      store_info: string
181
+      keyword: string
182
+      bar_code: string
183
+      brand_id: string
184
+      is_show: string
185
+      status: string
186
+      is_del: string
187
+      cate_id: string
188
+      unit_name: string
189
+      sort: string
190
+      rank: string
191
+      sales: string
192
+      price: string//最低价格
193
+      cost: string
194
+      ot_price: string//原价
195
+      stock: string
196
+      is_hot: string
197
+      is_benefit: string
198
+      is_best: string
199
+      is_new: string
200
+      is_good: string
201
+      product_type: string
202
+      ficti: string
203
+      browse: string
204
+      code_path: string
205
+      video_link: string
206
+      temp_id: string
207
+      spec_type: string
208
+      extension_type: string
209
+      refusal: string
210
+      rate: string
211
+      reply_count: string
212
+      mer_status: string
213
+      give_coupon_ids: string
214
+      is_gift_bag: string
215
+      create_time: string
216
+      care_count: string
217
+      is_used: string
218
+      old_product_id: string
219
+      volunteer: string
220
+      type: string
221
+      pension: string
222
+      commission: string
223
+      dc_id: string
224
+      flag: string
225
+      yanglao: string//养老金
226
+      da_cang_price: string//大仓价格
227
+}
228
+
229
+/**
230
+ * 大仓商品分类
231
+ */
232
+export interface DcProductClassifyModel {
233
+     store_category_id: string
234
+     cate_name: string
235
+     isClick: boolean
236
+}

+ 6 - 0
src/apis/model/dc.model.ts

@@ -0,0 +1,6 @@
1
+export interface DcListModel {
2
+    id: string
3
+    logo: string
4
+    warehouse_name: string
5
+    the_selected: boolean
6
+}

+ 21 - 0
src/apis/model/feedback.model.ts

@@ -0,0 +1,21 @@
1
+export interface FeedbackTypeModel {
2
+    // 分类id
3
+    feedback_category_id: string
4
+    // 名称
5
+    cate_name: string
6
+    // 是否选中
7
+    selected: boolean
8
+}
9
+
10
+export interface FeedbackRequestModel {
11
+    // 反馈类型 id
12
+    type: string
13
+    // 内容
14
+    content: string
15
+    // 图片
16
+    images: Array<string>
17
+    // 联系人姓名
18
+    realname: string
19
+    // 电话
20
+    contact: string
21
+}

+ 99 - 0
src/apis/model/integral.model.ts

@@ -0,0 +1,99 @@
1
+export interface IntegralParams {
2
+    page: number
3
+    limit: number
4
+}
5
+export interface IntegralResult {
6
+    count: number
7
+    list: Array<IntegralModel>
8
+}
9
+
10
+export interface IntegralProductParams {
11
+    // 148
12
+    mer_id: number
13
+    cate_id: string
14
+    page: number
15
+    limit: number
16
+}
17
+
18
+export interface IntegralProductModel {
19
+     product_id: string
20
+     mer_id: string
21
+     image: string
22
+     slider_image: string
23
+     store_name: string
24
+     store_info: string
25
+     keyword: string
26
+     bar_code: string
27
+     brand_id: string
28
+     is_show: string
29
+     status: string
30
+     is_del: string
31
+     cate_id: string
32
+     unit_name: string
33
+     sort: string
34
+     rank: string
35
+     sales: string
36
+     price: string
37
+     cost: string
38
+     ot_price: string
39
+     stock: string
40
+     is_hot: string
41
+     is_benefit: string
42
+     is_best: string
43
+     is_new: string
44
+     is_good: string
45
+     product_type: string
46
+     ficti: string
47
+     browse: string
48
+     code_path: string
49
+     video_link: string
50
+     temp_id: string
51
+     spec_type: string
52
+     extension_type: string
53
+     refusal: string
54
+     rate: string
55
+     reply_count: string
56
+     mer_status: string
57
+     give_coupon_ids: string
58
+     is_gift_bag: string
59
+     create_time: string
60
+     care_count: string
61
+     is_used: string
62
+     old_product_id: string
63
+     volunteer: string
64
+     type: string
65
+     pension: string
66
+     commission: string
67
+     dc_id: string
68
+     dc_price: string
69
+     seckill: string
70
+     is_hide: string
71
+     spu_id: string
72
+     cost_price: string
73
+     gong_sku_id: string
74
+}
75
+export interface IntegralModel {
76
+    id: string
77
+    uid: string
78
+    // 签到天数
79
+    continuity_day: string
80
+    // 积分数值
81
+    reward_socre: string
82
+    // reward_score: string
83
+    // 签到时间
84
+    signin_time: string
85
+    // 添加记录时间
86
+    addtime: string
87
+    source_uid: string
88
+    // 0 无效,1 有效
89
+    status: string
90
+    // 备注
91
+    mark: string
92
+    order_id: string
93
+    // 1 收入,2 支出
94
+    pm: string
95
+    // 余额
96
+    surplus: string
97
+    // 订单号
98
+    order_sn: string
99
+}

+ 14 - 0
src/apis/model/invite.model.ts

@@ -0,0 +1,14 @@
1
+export interface InviteResult {
2
+    numberSun: string
3
+    UserYesterdayInviteProfit: string
4
+    UserUnsettledInviteProfit: string
5
+}
6
+
7
+export interface InvitePHPModel {
8
+    nickname: string//昵称
9
+    avatar: string//头像
10
+    brokerage_price: string//当前佣金
11
+    yesterday: string//昨日收益
12
+    cumulative: string//累计收益
13
+    extract: string//	累计已提现
14
+}

+ 38 - 0
src/apis/model/inviteFriendsModel.ts

@@ -0,0 +1,38 @@
1
+import type {PageInfoModel} from "~/apis/model/common";
2
+
3
+export interface SharePostersImagesListParams {
4
+    pageNum: number
5
+    pageSize: number
6
+    // 分类 id
7
+    classify?: string
8
+    // 推荐 = 1
9
+    type: string
10
+}
11
+export interface SharePosterClassifyResult {
12
+    sharePostersClassifyList: Array<SharePostersClassify>
13
+}
14
+
15
+export interface SharePostersClassify {
16
+    id: string
17
+    name: string
18
+}
19
+
20
+export interface SharePosterImageResult {
21
+    pageInfo: PageInfoModel<SharePosterImageModel>
22
+}
23
+
24
+export interface SharePosterImageModel {
25
+    id: number
26
+    name: string
27
+    // 背景图片路径
28
+    image: string
29
+    classify: string
30
+    qr_coordinate: string
31
+    head_coordinate: string
32
+    nickname_coordinate: string
33
+    head_size: string
34
+    qr_size: string
35
+    nickname_size: string
36
+    image_fake: string
37
+    type: string
38
+}

+ 40 - 0
src/apis/model/invitePartnerModel.ts

@@ -0,0 +1,40 @@
1
+export interface UserInviteParams {
2
+    pageNum: number
3
+    pageSize: number
4
+    uid?: string
5
+    nickname?: string
6
+}
7
+export interface UserInviteDataModel {
8
+    uid: number
9
+    // 用户名
10
+    nickname: string
11
+    // 用户类型
12
+    statusType: string
13
+    // 成功推广时间
14
+    promoterTime: string
15
+    avatar: string
16
+    phone: string
17
+}
18
+export interface UserInviteVoListModel {
19
+    total: number
20
+    list: UserInviteDataModel[]
21
+    pageNum: number
22
+    pageSize: number
23
+    size: number
24
+    startRow: number
25
+    endRow: number
26
+    pages: number
27
+    prePage: number
28
+    nextPage: number
29
+    isFirstPage: boolean
30
+    isLastPage: boolean
31
+    hasPreviousPage: boolean
32
+    hasNextPage: boolean
33
+    navigatePages: boolean
34
+    navigateLastPage: number
35
+}
36
+export interface InvitePartnerModel {
37
+    userCount: number
38
+    MerchantCount: number
39
+    userInviteVoList?: UserInviteVoListModel
40
+}

+ 59 - 0
src/apis/model/login.model.ts

@@ -0,0 +1,59 @@
1
+export interface LoginModel {
2
+    // 用户令牌
3
+    token: string
4
+    // 令牌可用时间
5
+    exp: number
6
+    // 用户信息
7
+    user: LoginUserModel
8
+}
9
+export interface AccountModel {
10
+    
11
+    openid: string
12
+    wx_type: string
13
+}
14
+
15
+export interface LoginUserModel {
16
+    uid: string//用户id
17
+    wechat_user_id: string//微信用户 id
18
+    ali_user_id: string//支付宝用户id
19
+    account: string//用户账号
20
+    sex: string//性别
21
+    nickname: string//用户昵称
22
+    avatar: string//用户头像
23
+    phone: string//手机号码
24
+    now_score: string//用户积分
25
+    now_money: string//用户余额
26
+    user_type: string//用户类型
27
+    promoter_time: string//成功推广时间
28
+    is_promoter: string//是否为推广员
29
+    pay_count: string//用户购买次数
30
+    pay_price: string//用户消费金额
31
+    spread_count: string//下级人数
32
+    adr_id: string//身份所对应的区域id
33
+    identity: string//1 镇代 2 县代 3 市代 4 商户 5 推广员 6渠道商
34
+    mer_id: string//首次消费绑定商户
35
+    mer_topping: string//置顶商户
36
+    user_name: string
37
+    annuity_frozen: string//养老金 冻结
38
+    annuity_num: string//几笔养老金
39
+    annuity: string//养老金
40
+    agent_rebate: string//推荐推广员返利
41
+    mer_rebate: string//推荐商户返利
42
+    promoter_rebate: string//推荐代理返利
43
+    cross_store: string//跨店收入
44
+    jurisdiction: string//辖区内收入
45
+    other_jurisdictions: string//跨区收入
46
+    adv_fee: string//广告费
47
+    xqxiaofei: string//自己辖区消费返利
48
+    birthday60: string//60岁生日
49
+    card_number: string//卡号 养老金
50
+    annuity_yiqu: string//已支取
51
+    is_new: string//是否为新用户:0=>是,1=>不是
52
+    admin_agent_rate: string//平台收入
53
+    locktime: string//会员锁定时间
54
+    user_number: string//用户编号
55
+    im: string//环信账号。0:未注册。1:已注册。
56
+    im_uuid: string//环信UUID
57
+    test_user: string//是否是测试用户
58
+    is_channel: string//是否是渠道商
59
+}

+ 30 - 0
src/apis/model/myRelationMerchantModel.ts

@@ -0,0 +1,30 @@
1
+export interface MyRelationMerchantParams {
2
+    keywords: string
3
+    page: number
4
+    limit: number
5
+}
6
+
7
+export interface MyRelationMerchantResult {
8
+    count: number
9
+    list: Array<MyRelationMerchantModel>
10
+}
11
+
12
+export interface MyRelationMerchantModel {
13
+    type_id: string
14
+    type: string
15
+    // 店铺 id
16
+    mer_id: string
17
+    // 店铺 logo
18
+    mer_avatar: string
19
+    // 店铺名称
20
+    mer_name: string
21
+    // 商品描述评分
22
+    product_score: string
23
+    // 服务评分
24
+    service_score: string
25
+    // 物流评分
26
+    postage_score: string
27
+    status: string
28
+    // 人气
29
+    care_count: string
30
+}

+ 27 - 0
src/apis/model/myRelationProductModel.ts

@@ -0,0 +1,27 @@
1
+export interface MyRelationProductPrams {
2
+    page: number
3
+    limit: number
4
+    keywords: string
5
+}
6
+export interface MyRelationProductResult {
7
+    count: number
8
+    list: Array<MyRelationProductModel>
9
+}
10
+export interface MyRelationProductModel {
11
+    type_id: string
12
+    type: string
13
+    // 商品 id
14
+    product_id: string
15
+    // 图片
16
+    image: string
17
+    // 名称
18
+    store_name: string
19
+    // 价格
20
+    price: string
21
+    is_show: string
22
+    status: string
23
+    care_count: string
24
+    // 原价(划线价格)
25
+    ot_price: string
26
+    isSelected?:boolean
27
+}

+ 374 - 0
src/apis/model/order.model.ts

@@ -0,0 +1,374 @@
1
+import type {DcListModel} from "~/apis/model/dc.model"
2
+
3
+// 待付款订单
4
+export interface OrderListObligationResult {
5
+    count: number
6
+    list: Array<OrderListObligationModel>
7
+}
8
+
9
+export interface OrderQuantityModel {
10
+    // 评价
11
+    noComment: string
12
+    done: string
13
+    // 退款售后
14
+    refund: string
15
+    // 待收货
16
+    noDeliver: string
17
+    // 待付款
18
+    noPay: string
19
+    // 待发货
20
+    noPostage: string
21
+    orderPrice: string
22
+    orderCount: string
23
+    // 全部
24
+    all: string
25
+}
26
+
27
+export interface OrderListObligationModel {
28
+     group_order_id: string//订单id
29
+     group_order_sn: string
30
+     uid: string
31
+     total_postage: string
32
+     total_price: string
33
+     total_num: string
34
+     coupon_price: string
35
+     real_name: string
36
+     user_phone: string
37
+     user_address: string
38
+     pay_price: string
39
+     pay_postage: string
40
+     cost: string
41
+     give_coupon_ids: string
42
+     paid: string
43
+     pay_time: string
44
+     pay_type: string
45
+     create_time: string
46
+     is_remind: string
47
+     is_del: string
48
+     rand: string
49
+     split: string
50
+     serialNumber: string
51
+     test_order: string
52
+    orderList: Array<ObligationOrderModel>
53
+    merchant: {
54
+        mer_id: string
55
+        mer_name: string
56
+        mer_avatar: string
57
+    }
58
+
59
+}
60
+export interface ObligationOrderModel {
61
+    order_id: string
62
+    orderProduct: Array<ObligationOrderProductModel>
63
+}
64
+
65
+export interface ObligationOrderProductModel {
66
+     order_product_id: string
67
+     order_id: string
68
+     uid: string
69
+     cart_id: string
70
+     product_id: string
71
+     extension_one: string
72
+     extension_two: string
73
+     product_sku: string
74
+     is_refund: string
75
+     product_num: string
76
+     refund_num: string
77
+     is_reply: string
78
+     product_price: string
79
+    cart_info: CartInfoModel
80
+     create_time: string
81
+}
82
+
83
+export interface OrderListResult {
84
+    list: OrderListModel[],
85
+    total: number,
86
+    count: number
87
+}
88
+
89
+export interface OrderListModel {
90
+    source: string//订单类型:1拼多多2唯品会3苏宁5淘宝6京东7app
91
+    id: string
92
+    goods_id: string
93
+    goods_sign: string//拼多多id
94
+    order_sn: string//订单号
95
+    goods_num: string//商品数量
96
+    goods_img: string//图片
97
+    goods_name: string//名称
98
+    goods_price: string//价格
99
+    other_status: string//订单状态
100
+    other_status_desc: string//状态名称
101
+    order_money: string//订单金额
102
+    pay_money: string//支付金额
103
+    create_time: string//创建时间
104
+    commission: string//佣金
105
+    bill_status: string//结算状态
106
+    bill_end_time: string//结算时间
107
+    status_name: string//状态名称
108
+    yanglao: string//养老金
109
+    group_order_sn: string
110
+
111
+    order_id: string//订单ID
112
+    group_order_id: string
113
+
114
+    uid: string//用户 ID
115
+    real_name: string//联系人
116
+    user_phone: string//联系电话
117
+    user_address: string//收货地址
118
+    cart_id: string
119
+    total_num: string//商品数
120
+    total_price: string//订单总额
121
+    total_postage: string//邮费
122
+    pay_price: string//支付金额
123
+    pay_postage: string//支付邮费
124
+    extension_one: string//一级佣金
125
+    extension_two: string//二级佣金
126
+    commission_rate: string//平台手续费
127
+    coupon_id: string//优惠券id
128
+    coupon_price: string//优惠金额
129
+    order_type: string//0普通1自提
130
+    paid: string//是否支付
131
+    pay_time: string//支付时间
132
+    pay_type: string//支付方式 0=余额 1=微信 2=小程序 3=h5 4=支付宝 5=积分
133
+    status: string//订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付
134
+    delivery_type: string//发货类型(1:发货 2: 送货 3: 虚拟)
135
+    delivery_name: string//快递名称/送货人姓名
136
+    delivery_id: string//快递单号/手机号
137
+    mark: string//备注
138
+    remark: string//管理员备注
139
+    admin_mark: string//总后台备注
140
+    verify_code: string//核销码
141
+    verify_time: string//核销时间
142
+    verify_service_id: string//核销客服 id
143
+    mer_id: string//商户ID
144
+    reconciliation_id: string//对账id
145
+    cost: string//成本价
146
+    is_del: string
147
+    is_system_del: string//后台是否删除
148
+    remind: string
149
+    remind_time: string
150
+    gzc: string//是否记录公证处入账明细
151
+    trade_no: string//SaaS平台的交易订单编号
152
+    channel_trade_no: string//渠道商订单号
153
+    alipay_no: string//支付宝单号
154
+    weixin_no: string//微信单号
155
+    table_id: string
156
+    mer_money: string//商户可收金额
157
+    last_status: string//上次订单状态 用于拒绝退款
158
+    share_id: string//分享的ID
159
+    pay_mer_id: string//积分支付用的商户ID
160
+    is_split_to_tomorrow: string//0不分账 1分账
161
+    service_money: string//分给服务商的钱
162
+    test_order: string//测试订单
163
+    dacang_id: string//大仓ID
164
+    distribution_mode: string//1快递 2 自提
165
+    da_cang_profit: string//大仓利润
166
+    recommended_merchants: string//推荐商家流水返佣
167
+    mer_fanyong: string//商户分佣金额
168
+    is_dacang: string//1大仓订单 2非大仓订单 0 之前的订单
169
+    orderProduct: Array<OrderProductModel>
170
+    merchant: {
171
+        mer_id: string
172
+        mer_name: string
173
+        mer_avatar: string
174
+    }
175
+}
176
+
177
+export interface OrderProductModel {
178
+    order_product_id: string
179
+    order_id: string
180
+    uid: string
181
+    cart_id: string//购物车id
182
+    product_id: string
183
+    extension_one: string
184
+    extension_two: string
185
+    product_sku: string
186
+    is_refund: string
187
+    product_num: string
188
+    refund_num: string
189
+    is_reply: string
190
+    product_price: string
191
+    cart_info: CartInfoModel
192
+    create_time: string
193
+}
194
+
195
+export interface CartInfoModel {
196
+    product_type: string
197
+    product: {
198
+        product_id: string
199
+        image: string
200
+        store_name: string
201
+        is_show: string
202
+        status: string
203
+        is_del: string
204
+        unit_name: string
205
+        price: string
206
+        mer_status: string
207
+        temp_id: string
208
+        give_coupon_ids: Array<string>
209
+        is_gift_bag: string
210
+        is_used: string
211
+        product_type: string
212
+        old_product_id: string
213
+        temp: {
214
+            shipping_template_id: string
215
+            name: string
216
+            type: string
217
+            appoint: string
218
+            undelivery: string
219
+            mer_id: string
220
+            is_default: string
221
+            sort: string
222
+            create_time: string
223
+            undelives: string
224
+            freeAddress: {
225
+                shipping_template_free_id: string
226
+                temp_id: string
227
+                city_id: string
228
+                number: string
229
+                price: string
230
+            }
231
+        }
232
+    }
233
+    productAttr: {
234
+        product_id: string
235
+        stock: string
236
+        price: string
237
+        unique: string
238
+        sku: string
239
+        volume: string
240
+        weight: string
241
+        ot_price: string
242
+        dacang_price: string
243
+        cost: string
244
+        bc_extension_one: string
245
+        bc_extension_two: string
246
+    }
247
+}
248
+
249
+export interface OrderCreateModel {
250
+    // 订单ID
251
+    order_id: string
252
+    groupOrder: GroupOrderModel
253
+}
254
+
255
+export interface GroupOrderModel {
256
+    group_order_sn: string//订单编号
257
+    give_coupon_ids: Array<string>
258
+    group_order_id: string//订单组 id
259
+    uid: string//用户id
260
+    real_name: string//用户姓名
261
+    user_phone: string//用户电话
262
+    user_address: string//详细地址
263
+    total_num: string//订单商品总数
264
+    total_price: string//订单总价
265
+    total_postage: string//邮费
266
+    pay_price: string//实际支付金额
267
+    pay_postage: string//支付邮费
268
+    coupon_price: string//优惠券金额
269
+    pay_type: string//支付方式 0余额 1微信 2小程序 4支付宝 5特殊商户积分
270
+    create_time: string//创建时间
271
+    cost: string//成本价
272
+}
273
+
274
+export interface OrderCreateShoppingModel {
275
+    cart_id: string
276
+}
277
+
278
+//
279
+export interface ProductSkustatusModel {
280
+   status:number
281
+   message:string
282
+}
283
+export interface ProductSkuModel {
284
+    cart_id: string,
285
+    unique : string
286
+}
287
+
288
+export interface OrderCheckModel {
289
+    order_price: string
290
+    total_price: string
291
+    status: string
292
+    is_dacang_vip_product: string
293
+    order: Array<OrderDataModel>
294
+}
295
+
296
+export interface OrderDataModel {
297
+    mer_id: string
298
+    mer_name: string
299
+    mer_state: string
300
+    mer_avatar: string
301
+    list: Array<OrderListDataModel>
302
+    remark: string
303
+    dcList: Array<DcListModel>
304
+}
305
+
306
+export interface OrderListDataModel {
307
+    cart_id: string
308
+    uid: string
309
+    mer_id: string
310
+    product_type: string
311
+    product_id: string
312
+    product_attr_unique: string
313
+    cart_num: number
314
+    create_time: string
315
+    source: string
316
+    source_id: string
317
+    is_pay: string
318
+    is_del: string
319
+    is_new: string
320
+    is_fail: string
321
+    product: OrderProductDataModel,
322
+    productAttr: OrderProductAttrDataModel,
323
+    // private ProductData product: string
324
+    // private ProductAttrData productAttr: string
325
+    yanglao: string//养老
326
+}
327
+
328
+export interface OrderProductDataModel {
329
+    product_id: string
330
+    image: string
331
+    store_name: string
332
+    is_show: string
333
+    status: string
334
+    is_del: string
335
+    unit_name: string
336
+    price: string
337
+    mer_status: string
338
+    temp_id: string
339
+}
340
+
341
+export interface OrderProductAttrDataModel {
342
+    product_id: string
343
+    stock: string
344
+    price: string
345
+    unique: string
346
+    sku: string
347
+    volume: string
348
+    weight: string
349
+    ot_price: string
350
+    dacang_price: string
351
+    bc_extension_one: string
352
+    bc_extension_two: string
353
+}
354
+
355
+export interface OrderProductDataModel {
356
+    product_id: string
357
+    image: string
358
+    store_name: string
359
+    is_show: string
360
+    status: string
361
+    is_del: string
362
+    unit_name: string
363
+    price: string
364
+    mer_status: string
365
+    temp_id: string
366
+}
367
+
368
+
369
+export interface IntegralOrderCreateModel {
370
+    status: string
371
+    result: {
372
+        order_id
373
+    }
374
+}

+ 7 - 0
src/apis/model/pageModel.ts

@@ -0,0 +1,7 @@
1
+export interface PageModel {
2
+    page: number
3
+    limit: number
4
+    keyword?: string
5
+}
6
+
7
+export interface PageResult {}

+ 4 - 0
src/apis/model/path.model.ts

@@ -0,0 +1,4 @@
1
+export interface PathModel {
2
+    path: string
3
+    pathName: string
4
+}

+ 671 - 0
src/apis/model/product.model.ts

@@ -0,0 +1,671 @@
1
+import type {PageInfoModel} from "~/apis/model/common"
2
+
3
+enum ORDER {
4
+    SALES = 'sales',
5
+    IS_NEW = 'is_new',
6
+    PRICE_ASC = 'price_asc',
7
+    PRICE_DESC = 'price_desc',
8
+}
9
+
10
+export interface ProductParams {
11
+    // skuId?: string
12
+    keyword?: string
13
+    title?: string
14
+    page: number,
15
+    limit: number
16
+}
17
+
18
+/**
19
+ * 请求类别,推荐:1;销量:2;上新3;价格升序4,价格降序5;平台商品6;大仓商品7;
20
+ *
21
+ */
22
+export interface SearchProductParams {
23
+    mer_id?: string
24
+    mer_keyword?: string
25
+    pageNum: number
26
+    pageSize: number
27
+    order: ORDER
28
+    //请求类别,推荐:1;销量:2;上新3;价格升序4,价格降序5;平台商品6;大仓商品7;
29
+    is_best?: number
30
+    sales?: number
31
+    is_new?: number
32
+    priceType?: number
33
+    type?: number
34
+    category_id?: string
35
+    // order: 'sales' | 'is_new' | 'price_asc'
36
+}
37
+
38
+/**
39
+ * 商品搜索结果集
40
+ */
41
+export interface SearchProductResult {
42
+    pageInfo: PageInfoModel<ProductDetailModel>
43
+}
44
+
45
+export interface IProductDetail {
46
+    // 产品所属平台
47
+    mallName: string
48
+    // 京东、淘宝、拼多多等
49
+    platform: number
50
+    // 商品ID
51
+    id: string
52
+    // 商品名
53
+    title: string
54
+    // 现价销售价格
55
+    salePrice: number
56
+    // 原价
57
+    price: string
58
+    // 分销URL
59
+    spreadUrl: string
60
+    // 商品图
61
+    featured: Array<string>
62
+    // 商品介绍详情图
63
+    images: Array<string>
64
+    coupon: Partial<{
65
+        // 优惠券金额
66
+        amount: string | number
67
+        // 优惠券有效期
68
+        startTime: string
69
+        endTime: string
70
+    }> | null
71
+    // 养老金补助
72
+    allowance: number
73
+}
74
+
75
+export interface HomeProduct {
76
+    type: string//类型:1:普通商品,2:爆款商品,5:会员专享商品(城中大仓)6:三方 京推推
77
+    skuId: string//商品SKU,商品类型为3时显示
78
+    id: string//京东_品牌code,商品类型为3时显示
79
+    name: string//京推推商品精编标题,
80
+    thumb: string//	 京推推商品主图(京推推优化过的商品主图,建议用户将其设为商品展示主图)
81
+    // 如因图片过大建议优化图片大小:例http://img.jingtuitui.com/a497d202011251136243678.jpg?imageView2/1/w/120/h/120/q/75,
82
+    // 商品类型为3时显示
83
+    commission: string//养老金
84
+    commission_rate: string//商品佣金比例(具体佣金可根据平台分佣体系进行计算显示),商品类型为3时显示
85
+    sales: string//京东商品近30天销量(商品类型为3时): string  销量(商品类型为1,2时)
86
+//     coupon_money: string//优惠券金额,商品类型为3时显示
87
+    coupon_link: string//优惠券链接,商品类型为3时显示
88
+    lowestCouponPrice: string//商品最终价格(使用优惠券后的商品最终价格),商品类型为3时显示
89
+    price: string//商品原价,商品类型为3时显示
90
+    flag: string//商品类型:1:大仓,2:平台内部,3:三方 京推推
91
+    product_id: string//商品ID, 商品类型为1,2时显示
92
+    store_name: string//商品名称,商品类型为1,2时显示
93
+    yanglao: string//养老金,商品类型为1,2时显示
94
+    ot_price: string//原价,商品类型为1,2时显示
95
+    da_cang_price: string//大仓会员价,商品类型为1,2时显示
96
+    image: string//商品图片,商品类型为1,2时显示
97
+    coupon_money: {
98
+        discount: string
99
+        getStartTime: string
100
+        getEndTime: string
101
+    }[]
102
+}
103
+//抖音商品状态+商品详情
104
+export interface DyProductDetailsModel{
105
+    status:number
106
+    message:string
107
+    data:DyProductDetailModel
108
+}
109
+
110
+/**
111
+ * 抖音商品详情
112
+ */
113
+export type DyProductDetailModel = {
114
+    brand: {
115
+        brandId: string
116
+        brandNameCn: string
117
+        brandNameEn: string
118
+    }
119
+    categoryId: string
120
+    categoryName: string
121
+    commentNum: string
122
+    commentScore: string
123
+    cosFee: string
124
+    cosRatio: string
125
+    couponPrice: string
126
+    cover: string
127
+    detailUrl: string
128
+    firstCid: string
129
+    hasSxt: boolean
130
+    imgs: Array<string>
131
+    inStock: boolean
132
+    kolCosFee: string
133
+    kolCosRatio: string
134
+    kolNum: string
135
+    logisticsInfo: string
136
+    orderNum: string
137
+    price: string
138
+    productId: string
139
+    reason: string
140
+    sales: string
141
+    secondCid: string
142
+    sharable: boolean
143
+    shopId: string
144
+    shopName: string
145
+
146
+    status: string
147
+    tags: {
148
+        hasShopBrandTag: boolean
149
+    }
150
+    thirdCid: string
151
+    title: string
152
+    viewNum: string
153
+    yanglao: string
154
+    dyZlink: string
155
+    dyDeeplink: string
156
+}
157
+
158
+/**
159
+ * 抖音直播间
160
+ */
161
+export type DyLiveModel = {
162
+    // 昵称
163
+    authorName: string
164
+    // 等级
165
+    authorLevel: string
166
+    // 直播头像
167
+    authorPic: string
168
+    // 商品类别
169
+    productCategory: Array<string>
170
+    // 粉丝数量
171
+    fansNum: string
172
+    // 场均 gmv
173
+    averageGmv: string
174
+    // 直播间id
175
+    roomId: string
176
+    // 正在直播
177
+    isLive: boolean
178
+    // 性别 male female 未知
179
+    gender: string
180
+    // 主播百应ID
181
+    buyinId: string
182
+    share: DyLiveShare
183
+}
184
+
185
+export type DyLiveShare = {
186
+    dyDeeplink: string
187
+    dyPassword: string
188
+    dyZlink: string
189
+    qrCode: {
190
+        height: number
191
+        width: number
192
+        url: string
193
+    }
194
+}
195
+/**
196
+ * 抖音直播商品
197
+ */
198
+export type DyLiveProductModel = {
199
+    productId: string
200
+    cover: string
201
+    title: string
202
+    price: string
203
+}
204
+
205
+/**
206
+ * 抖音商品
207
+ */
208
+export type DyProductModel = {
209
+    // 类别 6
210
+    type: string
211
+    id: string
212
+    thumb: string
213
+    name: string
214
+    commission: string
215
+    commission_rate: string
216
+    price: string
217
+    sales: string
218
+    detailUrl: string
219
+}
220
+
221
+export type PDDProductDetailModel = {
222
+    category_name: string
223
+    coupon_remain_quantity: string
224
+    promotion_rate: string
225
+    service_tags: Array<number>
226
+    mall_id: string
227
+    mall_name: string
228
+    mall_coupon_end_time: string
229
+    lgst_txt: string
230
+    goods_name: string//商品名称
231
+    goods_gallery_urls: Array<string>//轮播图
232
+    goods_id: string
233
+    brand_name: string
234
+    predict_promotion_rate: string
235
+    goods_desc: string
236
+    opt_name: string
237
+    share_rate: string
238
+    opt_ids: Array<number>
239
+    goods_image_url: string
240
+    mall_img_url: string
241
+    has_mall_coupon: string
242
+    unified_tags: Array<string>
243
+    video_urls: Array<string>
244
+    coupon_start_time: number//优惠券开始时间(10位时间戳)
245
+    min_group_price: number//券后价(单位:分)
246
+    coupon_discount: string//优惠券面额
247
+    coupon_end_time: number//优惠券结束时间(10位时间戳)
248
+    zs_duo_id: string
249
+    mall_coupon_remain_quantity: string
250
+    plan_type: string
251
+    extra_coupon_amount: number
252
+//    <String> material_list: string
253
+    cat_ids: Array<number>
254
+    coupon_min_order_amount: string
255
+    category_id: string
256
+    mall_coupon_discount_pct: string
257
+    coupon_total_quantity: string
258
+    mall_coupon_min_order_amount: string
259
+    merchant_type: string
260
+    sales_tip: string//销量
261
+    only_scene_auth: string
262
+    desc_txt: string
263
+    goods_thumbnail_url: string
264
+    opt_id: string
265
+    activity_tags: Array<number>
266
+    has_coupon: string
267
+    min_normal_price: number//原价(单位:分)
268
+    mall_coupon_start_time: string
269
+    serv_txt: string
270
+    mall_coupon_total_quantity: string
271
+    mall_coupon_max_discount_amount: string
272
+    mall_cps: string
273
+    goods_sign: string
274
+    yanglao: string//养老金
275
+    pddlink: PddLink//链接
276
+}
277
+//附加状态
278
+export type  PDDProductDetailModels= {
279
+    message:string
280
+    status:number
281
+    data:PDDProductDetailModel
282
+}
283
+export type PddLink = {
284
+    mobile_url: string
285
+    url: string
286
+    wx_url: string
287
+    wx: PddWx
288
+}
289
+
290
+export type PddWx = {
291
+    we_app_icon_url: string
292
+    user_name: string
293
+    page_path: string
294
+    source_display_name: string
295
+    title: string
296
+    app_id: string
297
+    desc: string
298
+}
299
+/**
300
+ * 拼多多
301
+ */
302
+export type PDDProductModel = {
303
+    type: string
304
+    id: string
305
+    thumb: string
306
+    name: string
307
+    commission: string
308
+    commission_rate: string
309
+    sales: string
310
+    coupon_money: string
311
+    market_price: string
312
+    price: string
313
+    min_group_price: string
314
+}
315
+
316
+export interface VipProductParams {
317
+    goodsId: string
318
+}
319
+
320
+export type VipProductModel = {
321
+    type: number
322
+    id: string
323
+    thumb: string
324
+    name: string
325
+    commission: string
326
+    commission_rate: string
327
+    sales: string
328
+    coupon_money: string
329
+    market_price: string
330
+    price: string
331
+}
332
+
333
+//唯品会商品状态+商品详情
334
+export interface VipProductResults{
335
+    status:number
336
+    message:string
337
+    data:VipProductResult
338
+} 
339
+
340
+export interface VipProductResult {
341
+    returnCode: string
342
+    result: Array<VipProductDetailModel>
343
+    // 养老金
344
+    yanglao: string
345
+    wphlink: WphlinkModel
346
+}
347
+
348
+
349
+export interface WphlinkModel {
350
+    url: string
351
+    longUrl: string
352
+    ulUrl: string
353
+    vipQuickAppUrl: string
354
+}
355
+/**
356
+ * 唯品会商品详情
357
+ */
358
+export interface VipProductDetailModel {
359
+    // 商品原价
360
+    marketPrice: string
361
+    commissionRate: string
362
+    whiteImage: string
363
+    goodsId: string
364
+    discount: string
365
+    // 轮播图
366
+    goodsCarouselPictures: Array<string>
367
+    // 详情
368
+    goodsDetailPictures: Array<string>
369
+    categoryName: string
370
+    haiTao: string
371
+    prepayInfo: PrepayInfoModel
372
+    cat2ndName: string
373
+    isSubsidyActivityGoods: boolean
374
+    cat1stName: string
375
+    // 劵后价
376
+    vipPrice: string
377
+    commission: string
378
+    sn: string
379
+    cat1stId: string
380
+    // 商品名称
381
+    goodsName: string
382
+    storeServiceCapabilityModel: StoreServiceCapabilityModel
383
+    brandName: string
384
+    brandLogoFull: string
385
+    couponInfo: CouponInfoModel
386
+    brandStoreSn: string
387
+    sellTimeFrom: string
388
+    schemeStartTime: string
389
+    commentsInfo: CommentsInfoModel
390
+    saleStockStatus: string
391
+    schemeEndTime: string
392
+    sourceType: string
393
+    sellTimeTo: string
394
+    brandId: string
395
+    goodsThumbUrl: string
396
+    cat2ndId: string
397
+    spuId: string
398
+    storeInfo: string
399
+    goodsMainPicture: string
400
+    destUrl: string
401
+    categoryId: string
402
+    status: string
403
+}
404
+
405
+export interface StoreInfoModel {
406
+    storeName: string
407
+    storeId: string
408
+}
409
+
410
+export interface CommentsInfoModel {
411
+    comments: string
412
+    goodCommentsShare: string
413
+}
414
+
415
+export interface CouponInfoModel {
416
+    useEndTime: string
417
+    totalAmount: string
418
+    couponName: string
419
+    activateEndTime: string
420
+    couponType: string
421
+    buy: string
422
+    useBeginTime: string
423
+    couponNo: string
424
+    fav: string
425
+    activateBeginTime: string
426
+    activedAmount: string
427
+}
428
+
429
+export interface StoreServiceCapabilityModel {
430
+    storeScore: string
431
+    storeRankRate: string
432
+}
433
+
434
+export interface PrepayInfoModel {
435
+    isPrepay: string
436
+}
437
+
438
+//苏宁商品状态+商品详情
439
+export interface SuNingProductDetailsModel {
440
+    status:number
441
+    data:SuNingProductDetailModel
442
+    message:string
443
+} 
444
+
445
+/**
446
+ * 苏宁商品详情
447
+ */
448
+export type SuNingProductDetailModel = {
449
+    updateDate: string
450
+    thirdCategoryCode: string
451
+    promoDesc: string
452
+    fourthCategoryCode: string
453
+    categoryName: string
454
+    suningPrice: string//原价
455
+    firstCategoryName: string
456
+    rate: string
457
+    operatingModel: string
458
+    price: string//售价
459
+    goodsName: string//名称
460
+    brandCode: string
461
+    secondCategoryCode: string
462
+    wapPrePayCommission: string
463
+    mertCode: string
464
+    pictureUrl: string//图片
465
+    cmmdtyEanCode: string
466
+    thirdCategoryName: string
467
+    vendorName: string
468
+    fourthCategoryName: string
469
+    prePayCommission: string
470
+    firstCategoryCode: string
471
+    secondCategoryName: string
472
+    wapRate: string
473
+    goodsCode: string
474
+    upStatus: string
475
+    productUrl: string
476
+    productUrlWap: string
477
+    detail: Array<string>//详情
478
+    url: string//链接
479
+}
480
+
481
+/**
482
+ * 苏宁
483
+ */
484
+export type SuNingProductModel = {
485
+    type: string
486
+    id: string
487
+    thumb: string
488
+    name: string
489
+    commission: string
490
+    commission_rate: string
491
+    sales: string
492
+    coupon_money: string
493
+    market_price: string
494
+    price: string
495
+}
496
+
497
+/**
498
+ * 淘宝商品详情
499
+ */
500
+export interface TaobaoProductDetailModel {
501
+    status:number
502
+    message:string
503
+    data: {
504
+        waresDetail:TaobaoWaresDetail
505
+    }
506
+}
507
+
508
+export interface TaobaoWaresDetail {
509
+    pict_url: string
510
+    // 商品名称
511
+    title: string
512
+    // 商品原价
513
+    reserve_price: number
514
+    // 劵后价
515
+    zk_final_price: number
516
+    // 领券链接
517
+    link: string
518
+    small_images: Array<string>
519
+    couponStartTime: string
520
+    couponEndTime: string
521
+}
522
+
523
+/**
524
+ * 淘宝商品列表结果集
525
+ */
526
+export interface TaobaoProductResult {
527
+    thirdPartyWaresList: Array<TaobaoProductThirdPartyWaresModel>
528
+}
529
+
530
+
531
+export type TaobaoProductThirdPartyWaresModel = {
532
+    // 5 淘宝产品
533
+    type: number
534
+    id: string
535
+    // 商品图片
536
+    thumb: string
537
+    // 商品名称
538
+    name: string
539
+    // 养老金
540
+    commission: string
541
+    commission_rate: string
542
+    commission_type: string
543
+    // 销量
544
+    sales: string
545
+    coupon_money: string
546
+    // 原价
547
+    market_price: string
548
+    // 券后价
549
+    price: string
550
+    // 领券链接
551
+    coupon_share_url: string
552
+}
553
+
554
+export interface JdgProductDetailModel{
555
+    status:number
556
+    message:string
557
+    data:JdProductDetailModel[]
558
+}
559
+export interface JdProductDetailModel {
560
+    // 京东商品原标题
561
+    goodsName: string
562
+    // 图片信息 京东图片合集(第一张图为京东商品主图)
563
+    imgUrl: string
564
+    // 商品原价
565
+    unitPrice: number
566
+    // 商品原价
567
+    wlUnitPrice: number
568
+    // 优惠券面额
569
+    couMoney: string
570
+    // 券后价
571
+    nowPrice: number
572
+    // 图片集合
573
+    detail: Array<string>
574
+    // 预估养老金
575
+    yanglao: number
576
+    // 将您的联盟信息、商品SKU以及优惠券链接进行转链,
577
+    // 返回商品的二合一领券下单链接,转链后的结果可进行推广
578
+    materialUrl: string
579
+}
580
+
581
+export type JdProductModel = {
582
+    // 6:表示京东商品 2表示唯品会 5:表示淘宝商品 1:表示拼多多商品 3苏宁
583
+    type: number
584
+    // skuid
585
+    skuId: string
586
+    id: string
587
+    // 商品名称
588
+    name: string
589
+    thumb: string
590
+    commission: number
591
+    commission_rate: string
592
+    // 销量
593
+    sales: string
594
+    coupon_money: Array<CouponMoneyModel>
595
+    // 优惠券链接
596
+    coupon_link: string
597
+    // 券后价格
598
+    lowestCouponPrice: number
599
+    // 原价(划线)京东
600
+    price: number
601
+    // 原价(划线)唯品会
602
+    market_price: number
603
+    // 淘宝原价
604
+    reserve_price: number
605
+    // 淘宝券后价
606
+    zk_final_price: number
607
+}
608
+
609
+export interface CouponMoneyModel {
610
+    discount: string
611
+    getStartTime: string
612
+    getEndTime: string
613
+}
614
+
615
+export interface ProductDetailModel {
616
+    // 商品 ID
617
+    product_id: string
618
+    // 店铺 ID
619
+    mer_id: string
620
+    // 商品图片
621
+    image: string
622
+    // 轮播图
623
+    slider_image: string
624
+    // 轮播图组
625
+    slider_image_list: string
626
+    // 商品名称
627
+    store_name: string
628
+    // 商品简介
629
+    store_info: string
630
+    // 商品单位名
631
+    unit_name: string
632
+    // 最低价格
633
+    price: string
634
+    // 成本价
635
+    cost: string
636
+    // 原价
637
+    ot_price: string
638
+    // 总库存
639
+    stock: string
640
+    // 销量
641
+    sales: string
642
+    // 虚拟销量
643
+    ficti: string
644
+    // 视频链接
645
+    video_link: string
646
+    // 0普通商品,1秒杀商品
647
+    product_type: string
648
+    /** 商品类型:1:普通商品。2:爆款商品。3:消费积分商品 。5:会员专享商品(城中大仓)6:每日免费领商品 */
649
+    type: string
650
+    // 大仓价格
651
+    dc_price: string
652
+    // 是否秒杀 1是 0不是
653
+    seckill: string
654
+    extension_type: string
655
+    // 养老金(计算好的价格)
656
+    yanglao_price: string
657
+}
658
+
659
+export interface SkuModel {
660
+    // 名字
661
+    sku: string
662
+    // 价格
663
+    price: string
664
+    // 编号
665
+    unique: string
666
+    // 库存
667
+    stock: string
668
+    // 图片
669
+    image: string
670
+    dacang: string
671
+}

+ 14 - 0
src/apis/model/redIntegral.model.ts

@@ -0,0 +1,14 @@
1
+export interface RedIntegralResult {
2
+    status: number
3
+    message: string
4
+    data: Array<RedIntegralModel>
5
+}
6
+
7
+export interface RedIntegralModel {
8
+    uid: string
9
+    red: string
10
+    pm: string
11
+    time: string
12
+    create_time: string
13
+    mark: string
14
+}

+ 128 - 0
src/apis/model/refund.model.ts

@@ -0,0 +1,128 @@
1
+export interface RefundApplyRequest {
2
+    //订单商品id ---order_product_id
3
+    ids: string
4
+    // 申请说明
5
+    mark: string
6
+    // 数量
7
+    num: string
8
+    // 联系电话
9
+    phone: string
10
+    // 图片
11
+    pics: Array<string>
12
+    // 原因
13
+    refund_message: string
14
+    // 退款金额
15
+    refund_price: string
16
+    // 固定值
17
+    type: string
18
+    //1:退款 2:退款退货
19
+    refund_type: string
20
+    // 收货状态
21
+    goods: string
22
+
23
+}
24
+export interface RefundModel {
25
+    refund_order_id: string
26
+    refund_order_sn: string
27
+    order_id: string
28
+    uid: string
29
+    mer_id: string
30
+    extension_one: string
31
+    extension_two: string
32
+    delivery_type: string
33
+    delivery_id: string
34
+    delivery_mark: string
35
+    delivery_pics: string
36
+    delivery_phone: string
37
+    mer_delivery_user: string
38
+    mer_delivery_address: string
39
+    phone: string
40
+    mark: string
41
+    mer_mark: string
42
+    pics: Array<string>
43
+    refund_type: string
44
+    refund_message: string
45
+    refund_price: string
46
+    refund_postage: string
47
+    refund_num: string
48
+    fail_message: string
49
+    status: string
50
+    status_time: string
51
+    create_time: string
52
+    reconciliation_id: string
53
+    is_del: string
54
+    is_system_del: string
55
+    after_sn: string
56
+    refundProduct: Array<RefundProductModel>
57
+    // private Merchant merchant: string
58
+    // merchant: MerchantModel
59
+    merchant: any
60
+    take_status: string
61
+}
62
+
63
+export interface RefundProductModel {
64
+    refund_product_id: string
65
+    refund_order_id: string
66
+    order_product_id: string
67
+    refund_num: string
68
+    create_time: string
69
+    product: {
70
+        order_product_id: string
71
+        order_id: string
72
+        uid: string
73
+        cart_id: string
74
+        product_id: string
75
+        extension_one: string
76
+        extension_two: string
77
+        product_sku: string
78
+        is_refund: string
79
+        product_num: string
80
+        refund_num: string
81
+        is_reply: string
82
+        product_price: string
83
+        // private Cart_info cart_info: string
84
+        cart_info: any
85
+        create_time: string
86
+        type: string
87
+    }
88
+}
89
+
90
+export interface ProductModel {
91
+    order_product_id: string
92
+    order_id: string
93
+    uid: string
94
+    cart_id: string
95
+    product_id: string
96
+    extension_one: string
97
+    extension_two: string
98
+    product_sku: string
99
+    is_refund: string
100
+    product_num: string
101
+    refund_num: string
102
+    is_reply: string
103
+    product_price: string
104
+    // private Cart_info cart_info: string
105
+    cart_info: any
106
+    create_time: string
107
+    type: string
108
+}
109
+
110
+export interface CartInfoModel {
111
+    product: ProductModel
112
+    productAttr: ProductAttrModel
113
+}
114
+
115
+export interface ProductAttrModel {
116
+    product_id: string
117
+    stock: string
118
+    price: string
119
+    unique: string
120
+    sku: string
121
+    volume: string
122
+    weight: string
123
+    ot_price: string
124
+    dacang_price: string
125
+    cost: string
126
+    bc_extension_one: string
127
+    bc_extension_two: string
128
+}

+ 6 - 0
src/apis/model/relation.model.ts

@@ -0,0 +1,6 @@
1
+export interface RelationRequest {
2
+    // 1 商品,10 店铺
3
+    type: string
4
+    // 商品ID,店铺ID
5
+    type_id: string
6
+}

+ 41 - 0
src/apis/model/replyModel.ts

@@ -0,0 +1,41 @@
1
+export interface ReplyParams {
2
+    page: number
3
+    limit: number
4
+}
5
+export interface ReplyResult {
6
+    count: number
7
+    list: Array<ReplyModel>
8
+}
9
+
10
+export interface ReplyModel {
11
+    // 评论id
12
+    reply_id: string
13
+    uid: string
14
+    // 商户id
15
+    mer_id: string
16
+    // 订单商品id
17
+    order_product_id: string
18
+    unique: string
19
+    // 商品id
20
+    product_id: string
21
+    product_type: string
22
+    product_score: string
23
+    service_score: string
24
+    postage_score: string
25
+    // 平均值
26
+    rate: string
27
+    // 评论内容
28
+    comment: string
29
+    // 图片(用,隔开)
30
+    pics: string
31
+    create_time: string
32
+    merchant_reply_content: string
33
+    merchant_reply_time: string
34
+    is_del: string
35
+    is_reply: string
36
+    is_virtual: string
37
+    // 评论人昵称
38
+    nickname: string
39
+    // 头像
40
+    avatar: string
41
+}

+ 35 - 0
src/apis/model/revenueSharingModel.ts

@@ -0,0 +1,35 @@
1
+export interface RevenueSharingParams {
2
+    page: number,
3
+    limit: number,
4
+    // 0线上, 1线下
5
+    type: number
6
+    // pageNum: number
7
+    // pageSize: number
8
+    // uid?: string
9
+    // nickname?: string
10
+}
11
+
12
+export interface RevenueSharingModel {
13
+    // 说明
14
+    mark: string
15
+    bill_id: string
16
+    type: string
17
+    // 金额
18
+    number: string
19
+    //状态:0-未结算。1-已结算。-1-失效
20
+    status: number
21
+    create_time: string
22
+    uid: string
23
+    // 订单号
24
+    order_sn: string
25
+    link_id: string
26
+    type_shop: string
27
+    commission_type: string
28
+    source: string
29
+    nickname: string
30
+    content: string
31
+    // 下单时间
32
+    xiadan: string
33
+    // 结算时间
34
+    jiesuan: string
35
+}

+ 47 - 0
src/apis/model/shopping.model.ts

@@ -0,0 +1,47 @@
1
+export interface ShoppingResult {
2
+    list?: Array<ShopModel>
3
+}
4
+
5
+export interface ShopModel {
6
+    // 商户ID
7
+    mer_id: string
8
+    // 商户名称
9
+    mer_name: string
10
+    // 商户头像
11
+    mer_avatar: string
12
+    // list:
13
+    list: Array<GoodsModel>
14
+    // 店铺默认选择
15
+    shopSelect: boolean
16
+}
17
+
18
+export interface GoodsModel {
19
+    // 购物车id
20
+    cart_id: string
21
+    // 数量
22
+    cart_num: string
23
+    // 创建时间
24
+    create_time: string
25
+    // 送养老金
26
+    yanglao: string
27
+    // 商品详情
28
+    product: ProductDataModel
29
+    // 规格详情
30
+    productAttr: ProductAttrDataModel
31
+    // 商品默认选择
32
+    checkProductSku: true
33
+}
34
+
35
+export interface ProductDataModel {
36
+    product_id: string
37
+    image: string
38
+    store_name: string
39
+}
40
+export interface ProductAttrDataModel {
41
+    product_id: string
42
+    stock: string
43
+    price: string
44
+    unique: string
45
+    sku: string
46
+    image: string
47
+}

+ 18 - 0
src/apis/model/signIninfo.model.ts

@@ -0,0 +1,18 @@
1
+/**
2
+ * 用户签到信息
3
+ */
4
+export interface SignInInfoModel {
5
+    // 今天是否已签到
6
+    /** 0 未签到 1已签到 */
7
+    today: number
8
+    /** 连续签到天数 */
9
+    day: number
10
+}
11
+
12
+/**
13
+ * 积到的积分
14
+ */
15
+export interface SignInModel {
16
+    // 签到获得的积分数值
17
+    score: number
18
+}

+ 15 - 0
src/apis/model/spreadInfoModel.ts

@@ -0,0 +1,15 @@
1
+export interface SpreadInfoModel {
2
+    lock_brokerage: number;
3
+    one_level_count: number
4
+    two_level_count: number
5
+    spread_total: number
6
+    yesterday_brokerage: number
7
+    total_extract: number
8
+    total_brokerage: number
9
+    member_brokerage_price:string
10
+   // 佣金余额(可提现)
11
+    brokerage_price: string
12
+    now_money: string
13
+
14
+    broken_day: number
15
+}

+ 167 - 0
src/apis/model/storeModel.ts

@@ -0,0 +1,167 @@
1
+export interface MerchantDetailModel {
2
+    mer_id: string//商户id
3
+    uid: string//商户用户id
4
+    merch_no: string
5
+    trade_type: string
6
+    category_id: string//分类id
7
+    mer_name: string//店铺名称
8
+    haike_settle_status: string
9
+    name: string
10
+    distance: string//距离
11
+    mer_address: string//店铺地址
12
+    mer_keyword: string
13
+    mer_avatar: string//店铺头像
14
+    mer_banner: string//店铺轮播图
15
+    sales: string//销量
16
+    product_score: string//商品描述评分
17
+    service_score: string//服务评分
18
+    postage_score: string//物流评分
19
+    mark: string
20
+    status: string//商户是否禁用0锁定,1正常
21
+    commission_rate: string
22
+    is_bro_room: string
23
+    is_bro_goods: string
24
+    mer_info: string//店铺简介
25
+    service_phone: string//店铺电话
26
+    create_time: string//创建时间
27
+    care_count: string//关注总数
28
+    copy_product_num: string
29
+    lat: string//纬度
30
+    lng: string//经度
31
+    doorhead: string//门头照
32
+    addr: string
33
+    house_number: string
34
+    business_license: string//营业执照
35
+    recommender: string//推广员
36
+    content_pic: string
37
+    card_positive_person: string
38
+    card_back_person: string
39
+    email: string//邮箱
40
+    bank_account: string
41
+    bank_location: string
42
+    bank_deposit: string
43
+    bank_branch: string
44
+    open_account: string//开户许可证
45
+    logo: string//logo
46
+    business_addr: string
47
+    district_addr: string
48
+    type: string
49
+    province_id: string
50
+    city_id: string
51
+    area_id: string
52
+    street_id: string
53
+    branch: string
54
+    business_id: string
55
+    request_id: string
56
+    renqizhi: string
57
+    withdrawal_setting: string
58
+    haike_mp: string
59
+    member_no: string
60
+    sxy_submerchant_id: string
61
+    buy_time: string
62
+    tz_money: string
63
+    tz_integral: string
64
+    hf_status: string
65
+    hf_member_id: string
66
+    hf_member_id_wx: string
67
+    hf_msg: string
68
+    merchant_type: string
69
+    hf_type: string
70
+    expire_time: string
71
+    hf_dimension_id_wx: string
72
+    hf_dimension_id_al: string
73
+    hf_pingtai_id_al: string
74
+    hf_pingtai_id_wx: string
75
+    dc_id: string
76
+    care: boolean
77
+    like: boolean
78
+    topping: boolean
79
+    // private boolean care: string//关注
80
+    // private boolean like: string
81
+    // private boolean topping
82
+}
83
+export interface StoreParams {
84
+    // 分页
85
+    pageNum: number
86
+    pageSize?: number
87
+    // 纬度
88
+    lat: ''
89
+    // 经度
90
+    lng: ''
91
+    // 关键字(检索内容)
92
+    mer_keyword: string
93
+    // 距离排序(升序)0
94
+    distanceAsc?: number
95
+    // 商品分类 id
96
+    category_id?: string
97
+}
98
+
99
+export interface MerchantCategoryModel {
100
+    store_category_id: string
101
+    pid: string
102
+    // 分类名称
103
+    cate_name: string
104
+    sort: string
105
+    // 图标
106
+    pic: string
107
+    // 是否显示 1-是
108
+    is_show: string
109
+}
110
+export interface MerchantModel {
111
+    // 商户ID
112
+    mer_id: number
113
+    /** 商户名称 */
114
+    mer_name: string
115
+    // 商户头像
116
+    mer_avatar: string
117
+    // 商品描述评分
118
+    product_score: number
119
+    // 服务评分
120
+    service_score: number
121
+    // 物流评分
122
+    postage_score: number
123
+    // 店铺电话
124
+    service_phone: string
125
+    // 销量
126
+    sales: number
127
+    // 关注总数
128
+    care_count: number
129
+    // 客服应用id
130
+    // business_id: string
131
+    // 首信易二级商户编号
132
+    // sxy_submerchant_id: string
133
+}
134
+export interface StoreResult {
135
+    total: number
136
+    startRow: number
137
+    endRow: number
138
+    hasNextPage: boolean
139
+    hasPreviousPage: boolean
140
+    isFirstPage: boolean
141
+    isLastPage: boolean
142
+    navigateFirstPage: number
143
+    navigateLastPage: number
144
+    navigatePages: number
145
+    navigatepageNums: Array<number>
146
+    nextPage: number
147
+    pageNum: number
148
+    pageSize: number
149
+    pages: number
150
+    prePage: number
151
+    size: number
152
+    list: Array<MerchantModel>
153
+}
154
+
155
+export interface ProductDetailModel {
156
+    type: string
157
+    image: string
158
+    thumb: string
159
+    store_name: string
160
+    name: string
161
+    price: number
162
+    lowestCouponPrice: number
163
+    ot_price: number
164
+    // 养老金
165
+    yanglao: number
166
+    commission: number
167
+}

+ 28 - 0
src/apis/model/third-order.model.ts

@@ -0,0 +1,28 @@
1
+/**
2
+ * 三方订单查询结果
3
+ */
4
+export interface ThirdOrderResult {
5
+    list: Array<ThirdOrderModel>
6
+}
7
+
8
+export interface ThirdOrderModel {
9
+    id: string
10
+    goods_id: string
11
+    goods_sign: string//拼多多id
12
+    order_sn: string//订单号
13
+    goods_num: string//商品数量
14
+    goods_img: string//图片
15
+    goods_name: string//名称
16
+    goods_price: string//价格
17
+    other_status: string//订单状态
18
+    other_status_desc: string//状态名称
19
+    order_money: string//订单金额
20
+    pay_money: string//支付金额
21
+    create_time: string//创建时间
22
+    commission: string//佣金
23
+    bill_status: string//结算状态
24
+    bill_end_time: string//结算时间
25
+    source: string
26
+    status_name: string//状态名称
27
+    yanglao: string//养老金
28
+}

+ 6 - 0
src/apis/model/user-vip-info.model.ts

@@ -0,0 +1,6 @@
1
+export interface UserVipInfoModel {
2
+    avatar: string
3
+    nickname: string
4
+    // 1、2、3都是会员。4-银卡。5-金卡。6-钻石。7-董事
5
+    da_type: string
6
+}

+ 153 - 0
src/apis/model/userInfoModel.ts

@@ -0,0 +1,153 @@
1
+export interface UpdateUserInfoRequestModel {
2
+    nickname: string;
3
+    // 1男 2女
4
+    sex: number
5
+    birthday: string
6
+    mark: string
7
+    avatar: string
8
+    // addres: string
9
+}
10
+export interface UserInfoModel {
11
+    /** 用户id */
12
+    uid: string
13
+    /** 微信用户 id */
14
+    /** 市/县代理 */
15
+    area_manage_type: string
16
+    area_manage: manageModel
17
+    /**股东 id */
18
+    stockholder: number
19
+    wechat_user_id: string
20
+    /** 支付宝用户 id */
21
+    ali_user_id: string
22
+    /** 性别 */
23
+    sex: string
24
+    /** 生日 */
25
+    birthday: string
26
+    /** 用户备注 */
27
+    mark: string
28
+    /** 用户昵称 */
29
+    nickname: string
30
+    /** 用户头像 */
31
+    avatar: string
32
+    /** 手机号 */
33
+    phone: string
34
+    /** 地址 */
35
+    address: string
36
+    /** 创建时间 */
37
+    create_time: string
38
+    /** 用户积分 */
39
+    now_score: string
40
+    /** 用户余额 */
41
+    now_money: string
42
+    /** 佣金余额(可提现) */
43
+    member_brokerage_price: string
44
+    /** 佣金UID */
45
+    spread_uid: string
46
+    /** 用户类型 */
47
+    user_type: string
48
+    /** 成功推广时间 */
49
+    promoter_time: string
50
+    /** 是否为推广员 */
51
+    is_promoter: string
52
+    /** 主账号 */
53
+    main_uid: string
54
+    /** 用户购买次数 */
55
+    pay_count: string
56
+    /** 用户消费金额 */
57
+    pay_price: string
58
+    /** 下级人数 */
59
+    spread_count: string
60
+    /** 身份所对应的区域id */
61
+    adr_id: string
62
+    /** 1 镇代 2 县代 3 市代 4 商户 5 推广员 6渠道商 */
63
+    identity: string
64
+    /** 首次消费绑定商户 */
65
+    mer_id: string
66
+    /** 置顶商户 */
67
+    mer_topping: string
68
+    /** 用户名 */
69
+    user_name: string
70
+    /** 养老金 冻结 */
71
+    annuity_frozen: string
72
+    /** 几笔养老金 */
73
+    annuity_num: string
74
+    /** 养老金 */
75
+    annuity: string
76
+    /** 推荐推广员返利 */
77
+    agent_rebate: string
78
+    /** 推荐商户返利 */
79
+    mer_rebate: string
80
+    /** 推荐代理返利 */
81
+    promoter_rebate: string
82
+    /** 跨店收入 */
83
+    cross_store: string
84
+    /** 辖区内收入 */
85
+    jurisdiction: string
86
+    /** 跨区收入 */
87
+    other_jurisdictions: string
88
+    /** 广告费 */
89
+    adv_fee: string
90
+    /** 自己辖区消费返利 */
91
+    xqxiaofei: string
92
+    /** 60岁生日 */
93
+    birthday60: string
94
+    /** 卡号 养老金 */
95
+    card_number: string
96
+    /** 已支取 */
97
+    annuity_yiqu: string
98
+    /** 是否为新用户:0=>是,1=>不是 */
99
+    is_new: string
100
+    /** 平台收入 */
101
+    admin_agent_rate: string
102
+    /** 会员锁定时间 */
103
+    locktime: string
104
+    /** 用户编号 */
105
+    user_number: string
106
+    /** 环信账号 0:未注册 1:已注册 */
107
+    im: string
108
+    /** 环信UUID */
109
+    im_uuid: string
110
+    /** 是否是测试用户 */
111
+    test_user: string
112
+    /** 是否是渠道商 */
113
+    is_channel: string
114
+    /** 用户积分 */
115
+    score: string
116
+    /** 养老金 */
117
+    annuity_once: string
118
+    first_sign: string
119
+    is_del: string
120
+    first_shopping: string
121
+    external: string
122
+    external_id: string
123
+    score_beishengtang: string
124
+    level_id: string
125
+    level: string
126
+    service: string
127
+    total_consume: string
128
+    total_collect_product: string
129
+    total_collect_store: string
130
+    total_coupon: string
131
+    total_visit_product: string
132
+    total_unread: string
133
+    is_merchant: string
134
+    phone1: string
135
+
136
+    longtime: number
137
+    is_ertification: number
138
+    // is_certification: number
139
+    volunteer: number
140
+    is_da_cang_vip: number
141
+    /** 红积分 */
142
+    red: number
143
+    /** 身份  0-普通用户  1-会员  2-合伙人  3-创始人 */
144
+    user_rich_type: number
145
+    /** 团队人数 */
146
+    team_number: number
147
+    is_bangfu: boolean
148
+}
149
+export interface manageModel {
150
+    area_name: []
151
+    code_list: string
152
+    type: string
153
+}

+ 38 - 0
src/apis/model/userShareProductModel.ts

@@ -0,0 +1,38 @@
1
+import type {PageInfoModel} from "~/apis/model/common";
2
+
3
+export interface UserShareProductParams {
4
+    uid: string
5
+    pageNum: number
6
+    pageSize: number
7
+    start_time?: string
8
+    end_time?: string
9
+
10
+}
11
+
12
+export interface UserShareProductListModel {
13
+    // 点击率 百分制
14
+    ctr: string
15
+    // 购买率
16
+    buy: string
17
+    pageInfo: PageInfoModel<ShareProductListModel>
18
+}
19
+
20
+export interface ShareProductListModel {
21
+    id: number
22
+    // 用户ID
23
+    uid: number
24
+    // 商品ID
25
+    productId: number
26
+    //分享渠道 1 微信好友 2微信朋友圈
27
+    shareChannel: string
28
+    // 微信好友分享数
29
+    friendSum: string
30
+    // 朋友圈分享数
31
+    momentsSum: string
32
+    // 点击数
33
+    clickNum: string
34
+    // 购买次数
35
+    buyNum: string
36
+    // 创建时间
37
+    ctime: string
38
+}

+ 16 - 0
src/apis/model/userUnionModel.ts

@@ -0,0 +1,16 @@
1
+export interface UserUnionParams {
2
+    // 微信 code
3
+    code: string
4
+    // 来源
5
+    source: string
6
+}
7
+export interface UserUnionResult {
8
+    // cache_key: "16779d3624ee0de9816d5b7cbd6b7cf9"
9
+    // openid: "ow5su5J5ObGG_yPfBAtAZpQLgreA"
10
+    // session_key: "eSWL4hgrq2tZzWkLiC6RWg=="
11
+    // unionid: "oGtg_6CRFac3lDCwWQXDvxoMch1w"
12
+    cache_key: string
13
+    openid: string
14
+    session_key: string
15
+    unionid: string
16
+}

+ 21 - 0
src/apis/model/userYanglaoJinModel.ts

@@ -0,0 +1,21 @@
1
+// UserAnnuityInfoBean
2
+export interface UserYanglaoJinModel {
3
+    wechat_user_id: string
4
+    ali_user_id: string
5
+    annuity_frozen: string
6
+    annuity_num: string
7
+    annuity: string
8
+    create_time: string
9
+    birthday: string
10
+    birthday60: string
11
+    card_number: string
12
+    annuity_yiqu: string
13
+    pay_price: string
14
+    // 是否能提取,1是 0否
15
+    can_withraw: number
16
+    // 是否实名认证:1是
17
+    is_certification: number
18
+    // 银行?
19
+    yinghang: string
20
+    add_up: number
21
+}

+ 43 - 0
src/apis/model/vip-area.model.ts

@@ -0,0 +1,43 @@
1
+export interface VipAreaResult {
2
+    count: number
3
+    list: VipAreaModel[]
4
+    // status: number
5
+    // message: string
6
+    // data: {
7
+    //     count: number
8
+    //     list: VipAreaModel[]
9
+    // }
10
+}
11
+export interface VipAreaModel {
12
+    product_id: string
13
+    mer_id: string
14
+    brand_id: any
15
+    unit_name: string
16
+    rate: string
17
+    reply_count: string
18
+    store_info: string
19
+    cate_id: string
20
+    image: string
21
+    store_name: string
22
+    keyword: string
23
+    sort: string
24
+    is_show: string
25
+    sales: number
26
+    price: string
27
+    refusal: any
28
+    cost: string
29
+    ot_price: string
30
+    stock: string
31
+    is_gift_bag: string
32
+    care_count: number
33
+    status: string
34
+    isUsed: string
35
+    create_time: string
36
+    seckill: string
37
+    plate_mer_profit: string
38
+    type: string
39
+    yanglao: string
40
+    special_merchant: string
41
+    issetCoupon: string
42
+    slider_image: string[]
43
+}

+ 7 - 0
src/apis/model/withdrawal.model.ts

@@ -0,0 +1,7 @@
1
+export interface WithdrawalConfigurationModel {
2
+      withdrawal_alipay : string//支付宝提现0:关闭,1:开启
3
+      withdrawal_card : string
4
+      withdrawal_money : string//最低金额
5
+      withdrawal_status : string//提现功能0:关闭 ,1:开启
6
+      withdrawal_wchat : string//微信提现0:关闭 , 1:开启
7
+}

+ 11 - 0
src/apis/model/withdrawalConfigurationModel.ts

@@ -0,0 +1,11 @@
1
+export interface WithdrawalConfigurationModel {
2
+    // 支付宝提现0:关闭,1:开启
3
+    withdrawal_alipay: string
4
+    withdrawal_card: string
5
+    // 最低金额
6
+    withdrawal_money: string
7
+    // 提现功能0:关闭;1:开启
8
+    withdrawal_status: string
9
+    //微信提现0:关闭;1:开启
10
+    withdrawal_wchat: string
11
+}

+ 33 - 0
src/apis/model/withdrawalModel.ts

@@ -0,0 +1,33 @@
1
+export interface WithdrawalModel {
2
+    extract_id: string
3
+    uid: string
4
+    // 名称
5
+    real_name: string
6
+    extract_type: string
7
+    bank_code: string
8
+    bank_address: string
9
+    alipay_code: string
10
+    wechat: string
11
+    extract_pic: string
12
+    // 提现金额
13
+    extract_price: string
14
+    balance: string
15
+    mark: string
16
+    admin_id: string
17
+    fail_msg: string
18
+    // 状态改变时间
19
+    status_time: string
20
+    // 申请时间
21
+    create_time: string
22
+    // -1 未通过 0 审核中 1 已提现
23
+    status: string
24
+    type: string
25
+    // 流水单号
26
+    order_sn: string
27
+    withdrawal_type: string
28
+    mer_id: string
29
+    // 提现手续费
30
+    service_money: string
31
+    // 说明
32
+    title: string
33
+}

+ 11 - 0
src/apis/model/withdrawalService.ts

@@ -0,0 +1,11 @@
1
+export interface WithdrawalParams {
2
+    money: string
3
+}
4
+export interface WithdrawalServiceModel {
5
+    // 扣除服务费
6
+    service_money: string
7
+    // 实际到账金额
8
+    money: string
9
+    // 平台服务费
10
+    service: string
11
+}

+ 112 - 0
src/apis/model/yanglao-log.model.ts

@@ -0,0 +1,112 @@
1
+/**
2
+ * 养老金线上
3
+ */
4
+export interface YanglaoLogXsResult {
5
+    count: number
6
+    list: Array<YanglaoLogXsModel>
7
+}
8
+
9
+/**
10
+ * 养老金线下
11
+ */
12
+export interface YanglaoLogXxResult {
13
+    count: number
14
+    list: Array<YanglaoLogXxModel>
15
+}
16
+
17
+export interface YanglaoLogXsModel {
18
+    bill_id: string
19
+    uid: string
20
+    link_id: string
21
+    pm: string
22
+    title: string
23
+    category: string
24
+    type: string
25
+    number: string//金额
26
+    balance: string
27
+    mark: string//备注
28
+    create_time: string//时间
29
+    status: string//0 = 预估 1 = 有效 -1 = 无效
30
+    commission_type: string
31
+    order_sn: string//订单号
32
+    tripartite: string
33
+    type_shop: string
34
+    mer_id: string
35
+    source: string
36
+    order_type: string
37
+    gzc: string
38
+    mer_name: string
39
+    mer_avatar: string
40
+    product: {
41
+        product: {
42
+            product_id: string
43
+            image: string//商品图片
44
+            store_name: string//	商品名称
45
+            is_show: string
46
+            status: string
47
+            is_del: string
48
+            unit_name: string
49
+            price: string
50
+            mer_status: string
51
+            temp_id: string
52
+            give_coupon_ids: Array<string>
53
+            is_gift_bag: string
54
+            is_used: string
55
+            product_type: string
56
+            old_product_id: string
57
+            temp: {
58
+                shipping_template_id: string
59
+                name: string
60
+                type: string
61
+                appoint: string
62
+                undelivery: string
63
+                mer_id: string
64
+                is_default: string
65
+                sort: string
66
+                create_time: string
67
+//                    regionAddress: string
68
+                undelives: string
69
+            }
70
+            // private Temp temp: string
71
+        }
72
+        productAttr: {
73
+            product_id: string
74
+            stock: string
75
+            price: string
76
+            unique: string
77
+            sku: string
78
+            volume: string
79
+            weight: string
80
+            ot_price: string
81
+            dacang_price: string
82
+            cost: string
83
+            bc_extension_one: string
84
+            bc_extension_two: string
85
+        }
86
+        product_type: string
87
+    }
88
+}
89
+export interface YanglaoLogXxModel {
90
+    bill_id: string
91
+    uid: string
92
+    link_id: string
93
+    pm: string
94
+    title: string
95
+    category: string
96
+    type: string
97
+    number: string//	金额
98
+    balance: string
99
+    mark: string//备注
100
+    create_time: string//时间
101
+    status: string//0 = 预估 1 = 有效 -1 = 无效
102
+    commission_type: string
103
+    order_sn: string//订单号
104
+    tripartite: string
105
+    type_shop: string
106
+    mer_id: string
107
+    source: string
108
+    order_type: string
109
+    gzc: string
110
+    mer_name: string//商户名称
111
+    mer_avatar: string//商户头像
112
+}

+ 115 - 0
src/apis/model/yanglaoStatisticsModel.ts

@@ -0,0 +1,115 @@
1
+export interface YanglaoStatisticsResult {
2
+    all_num: number
3
+    all_yanglao: number
4
+    all_yanglao_a: number
5
+    dy: DyModel
6
+    jd: JdModel
7
+    offLine: OffLineModel
8
+    onLine: OnLineModel
9
+    onLine_take_no: OnLineTakeNo
10
+    pdd: PddModel
11
+    su: SuModel
12
+    tb: TbModel
13
+    third_party_num: ThirdPartyNum
14
+    third_party_num_a: ThirdPartyNumA
15
+    third_party_num_n: ThirdPartyNumN
16
+    vip: VipModel
17
+}
18
+
19
+export interface OffLineModel {
20
+    num: number
21
+    yanglao: number
22
+}
23
+export interface OnLineModel {
24
+    num: number
25
+    yanglao: number
26
+}
27
+
28
+export interface OnLineTakeNo {
29
+    num: number
30
+    yanglao: number
31
+}
32
+
33
+export interface OnLineTakeNo {
34
+    num: number
35
+    yanglao: number
36
+}
37
+/**
38
+ * 抖音
39
+ */
40
+export interface DyModel {
41
+    num: number
42
+    num_a: number
43
+    yanglao: number
44
+    yanglao_a: number
45
+}
46
+
47
+/**
48
+ * 淘宝
49
+ */
50
+export interface TbModel {
51
+    num: number
52
+    num_a: number
53
+    yanglao: number
54
+    yanglao_a: number
55
+}
56
+
57
+/**
58
+ * 京东
59
+ */
60
+export interface JdModel {
61
+    num: number
62
+    num_a: number
63
+    yanglao: number
64
+    yanglao_a: number
65
+}
66
+
67
+/**
68
+ * 苏宁
69
+ */
70
+export interface SuModel {
71
+    num: number
72
+    num_a: number
73
+    yanglao: number
74
+    yanglao_a: number 
75
+}
76
+
77
+/**
78
+ * 拼多多
79
+ */
80
+export interface PddModel {
81
+    num: number
82
+    num_a: number
83
+    yanglao: number
84
+    yanglao_a: number
85
+}
86
+
87
+/**
88
+ * 拼多多
89
+ */
90
+export interface VipModel {
91
+    num: number
92
+    num_a: number
93
+    yanglao: number
94
+    yanglao_a: number
95
+}
96
+/**
97
+ * 第三方养老金笔数
98
+ */
99
+export interface ThirdPartyNum {
100
+    all_num: number
101
+}
102
+
103
+/**
104
+ * 第三方养老金
105
+ */
106
+export interface ThirdPartyNumA {
107
+    all_num_a: number
108
+}
109
+
110
+/**
111
+ * 第三方未结算养老金
112
+ */
113
+export interface ThirdPartyNumN {
114
+    all_num_a: number
115
+}

+ 36 - 0
src/apis/model/zibubaojian.model.ts

@@ -0,0 +1,36 @@
1
+export interface ZibubaojianResult {
2
+    count: number
3
+    list: Array<ZibubaojianModel>
4
+}
5
+export interface ZibubaojianModel {
6
+    product_id: string
7
+    mer_id: string
8
+    brand_id: string
9
+    unit_name: string
10
+    rate: string
11
+    reply_count: string
12
+    store_info: string
13
+    cate_id: string
14
+    image: string
15
+    slider_image: string[]
16
+    store_name: string
17
+    keyword: string
18
+    sort: string
19
+    is_show: string
20
+    sales: string
21
+    price: string
22
+    refusal: string
23
+    cost: string
24
+    ot_price: string
25
+    stock: string
26
+    is_gift_bag: string
27
+    care_count: string
28
+    status: string
29
+    is_used: string
30
+    create_time: string
31
+    seckill: string
32
+    yanglao: string
33
+    issetCoupon: string
34
+    type: string
35
+    special_merchant: string
36
+}

+ 389 - 0
src/apis/order.api.ts

@@ -0,0 +1,389 @@
1
+import { defHttp, detailHttp, skuhttp } from "~/utils/http"
2
+
3
+import type {
4
+    IntegralOrderCreateModel, OrderCheckModel, OrderCreateModel,
5
+    OrderCreateShoppingModel, ProductSkuModel, OrderListDataModel, OrderListObligationResult, OrderListResult, OrderQuantityModel, ProductSkustatusModel
6
+} from "~/apis/model/order.model"
7
+import type { ThirdOrderResult } from "~/apis/model/third-order.model";
8
+import type { CommentProductRequest } from "~/apis/model/comment-product";
9
+import type { AfterSalesOrderResult } from "~/apis/model/after-sales-order.model";
10
+import type { RefundApplyRequest } from "~/apis/model/refund.model";
11
+
12
+export interface CartIdRequest {
13
+    cart_id: Array<string>
14
+    address_id: string
15
+}
16
+
17
+export interface CreateOrderRequest {
18
+    address_id: string//地址id
19
+    distribution_mode: string//配送方式:  1: 快递, 2: 自提
20
+    cart_id: Array<string>//购物车id
21
+    // mark: json
22
+    mark: string//备注
23
+    dacang_id: string//大仓id
24
+    pay_type: string//支付方式:0: 余额: string1: 微信: string2: 小程序: string4: 支付宝: string5: 特殊商户积分
25
+    mer_id: string//商户id
26
+    share_id: string
27
+}
28
+
29
+enum API {
30
+    // 创建购物车
31
+    USER_CART_CREATE = '/api/user/cart/create',
32
+    // 选择订单商品
33
+    ORDER_CHECK = '/api/order/check',
34
+    // 修改购物车数量
35
+    USER_CART_CHANGE = '/api/user/cart/change',
36
+    // 修改购物车商品的sku属性
37
+    CHANGE_PRODUCT_SKU = '/api/user/cart/changeUnique',
38
+    // 创建订单 | 积分创建订单
39
+    ORDER_CREATE = '/api/order/create',
40
+    // 获取支付宝路径
41
+    // 开通养老金获取支付宝路径
42
+    // 订单列表
43
+    ORDER_LIST = '/api/order/list',
44
+    // 订单列表-待付款
45
+    GROUP_ORDER_LIST = '/api/order/group_order_list',
46
+    // 取消订单-未付款
47
+    ORDER_CANCEL = '/api/order/cancel',
48
+    // 订单物流
49
+    ORDER_EXPRESS = '/api/order/express',
50
+    // 订单确认收货
51
+    ORDER_TAKE = '/api/order/take',
52
+    // 提交评价
53
+    REPLY = '/api/reply/reply',
54
+    // 计算订单金额
55
+    ORDER_COMPUTED = '/api/order/computed',
56
+    // 订单统计
57
+    ORDER_NUMBER = '/api/order/number',
58
+    // 申请退款
59
+    REFUND_APPLY = '/api/refund/apply',
60
+    // 退款订单详情
61
+    REFUND_DETAIL = '/api/refund/detail',
62
+    //快递列表
63
+    REFUND_KDLIST = '/api/common/express',
64
+    //退货订单
65
+    REFUND_OUTDL = '/api/refund/back_goods',
66
+    //退换货物流信息
67
+    REFUND_WLLIST = '/api/refund/express',
68
+    //协商记录
69
+    REFUND_XSLIST = '/api/refund/consult_list',
70
+    // 售后-订单列表
71
+    REFUND_LIST = '/api/refund/list',
72
+    // 三方订单
73
+    USER_THIRD_ORDER = '/api/user/third_order',
74
+    // 全部订单
75
+    ORDER_ALL = '/api/order/all',
76
+    // 获取微信支付小程序原始id和支付链接
77
+    PAY_WX = '/gateway/userCenter_service/userLogOnService/payWx',
78
+
79
+
80
+    IS_DACANG = '/api/dacang/chenckproduct_isdaCang',
81
+    CHECK_GROUP_ORDER = '/api/order/check_group_order'
82
+}
83
+
84
+/**
85
+ * 申请退款
86
+ */
87
+export function refundApply(id: string, request: RefundApplyRequest) {
88
+    return detailHttp.post({
89
+        url: API.REFUND_APPLY + `/${id}`,
90
+        data: {
91
+            ...request
92
+        }
93
+    })
94
+}
95
+/**
96
+ * 退款订单详情
97
+ * @param id
98
+ */
99
+export function getRefundDetail(id: string) {
100
+    return defHttp.get({
101
+        url: API.REFUND_DETAIL + `/${id}`,
102
+    })
103
+}
104
+
105
+
106
+/**
107
+ * 快递列表/api/common/express
108
+ * @param params 
109
+ * 
110
+ * @returns 
111
+ */
112
+
113
+
114
+export function getRefundKdlist() {
115
+    return defHttp.get({
116
+        url: API.REFUND_KDLIST,
117
+    })
118
+}
119
+/**
120
+ * 提交退货订单
121
+ * @param params 
122
+ * 
123
+ * @returns 
124
+ */
125
+
126
+
127
+export function getRefundOutDl(id: any, data: any) {
128
+    return defHttp.post({
129
+        url: API.REFUND_OUTDL + `/${id}`,
130
+        data: { ...data }
131
+    })
132
+}
133
+/**
134
+ * 获取退换货物流信息
135
+ * @param params 
136
+ * 
137
+ * @returns 
138
+ */
139
+
140
+
141
+export function getRefundWlList(id: any) {
142
+    return defHttp.get({
143
+        url: API.REFUND_WLLIST + `/${id}`
144
+    })
145
+}
146
+/**
147
+ * 获取协商记录
148
+ * @param params 
149
+ * 
150
+ * @returns 
151
+ */
152
+
153
+
154
+export function getRefundXSlist(id: any) {
155
+    return defHttp.post({
156
+        url: API.REFUND_XSLIST + `/${id}`
157
+    })
158
+}
159
+
160
+
161
+/**
162
+ * 售后-订单列表
163
+ */
164
+export function refundList(params: { page: number, type: number, limit: number }): Promise<AfterSalesOrderResult> {
165
+    return defHttp.get({
166
+        url: API.REFUND_LIST,
167
+        data: {
168
+            ...params
169
+        }
170
+    })
171
+}
172
+
173
+/**
174
+ * 提交评价
175
+ * @param params
176
+ */
177
+export function submitReply(params: CommentProductRequest) {
178
+    return defHttp.post({
179
+        url: API.REPLY,
180
+        data: {
181
+            ...params
182
+        }
183
+    })
184
+}
185
+
186
+/**
187
+ * 确认收货
188
+ * @param id
189
+ */
190
+export function takeOrder(id: string) {
191
+    return defHttp.post({
192
+        url: API.ORDER_TAKE + `/${id}`
193
+    })
194
+}
195
+/**
196
+ * 获取订单物流信息
197
+ * @param id
198
+ */
199
+export function getLogistics(id: string) {
200
+    return defHttp.post({
201
+        url: API.ORDER_EXPRESS + `/${id}`
202
+    })
203
+}
204
+
205
+/**
206
+ * 订单统计
207
+ */
208
+export function totalOrderNumber(): Promise<OrderQuantityModel> {
209
+    return defHttp.get({
210
+        url: API.ORDER_NUMBER,
211
+    })
212
+}
213
+/**
214
+ * 三方订单
215
+ * @param params
216
+ */
217
+export function getThirdOrder(params: { type: string, page: number, limit: 20 | number }): Promise<ThirdOrderResult> {
218
+    return defHttp.get({
219
+        url: API.USER_THIRD_ORDER,
220
+        data: {
221
+            ...params
222
+        }
223
+    })
224
+}
225
+
226
+// 检查大仓会员
227
+export function checkGroupOrder(id: string) {
228
+    return defHttp.get({
229
+        url: API.CHECK_GROUP_ORDER + `/${id}`
230
+    })
231
+}
232
+export function computedOrderPrice() {
233
+}
234
+
235
+/**
236
+ * 检查商品是否是大仓商品
237
+ * @param product_id
238
+ */
239
+export function checkProductDaCang(product_id: string) {
240
+    return defHttp.get({
241
+        url: API.IS_DACANG + `/${product_id}`,
242
+    })
243
+}
244
+/**
245
+ * 未付款订单取消
246
+ * @param group_order_id
247
+ */
248
+export function cancelOrder(group_order_id: string) {
249
+    return defHttp.post({
250
+        url: `${API.ORDER_CANCEL}/${group_order_id}`,
251
+    })
252
+}
253
+/**
254
+ * 创建购物车
255
+ * @param params
256
+ */
257
+export function createShopping(params: {
258
+    // 商品id
259
+    product_id: string,
260
+    // sku 编码
261
+    product_attr_unique: any,
262
+    // 商品数量
263
+    cart_num: Number,
264
+    // 是否为立即购买: 0否1是
265
+    is_new: '1' | '0'
266
+}): Promise<OrderCreateShoppingModel> {
267
+    return defHttp.post({
268
+        url: API.USER_CART_CREATE,
269
+        data: {
270
+            ...params
271
+        }
272
+    })
273
+}
274
+
275
+/**
276
+ * 改变购物车商品sku
277
+ */
278
+export function changeProdoctSku(cart_id: string, unique: string): Promise<ProductSkustatusModel> {
279
+    console.log(unique, 'order的api接收的unique')
280
+    console.log(cart_id, 'order的api接收的unique')
281
+    return skuhttp.post({
282
+        url: API.CHANGE_PRODUCT_SKU + `/${cart_id}?`,
283
+        data: {
284
+            unique
285
+        }
286
+    })
287
+}
288
+
289
+/**
290
+ * 选择订单商品
291
+ */
292
+export function orderCheck(params: {
293
+    cart_id: string,
294
+    address_id: string
295
+}): Promise<OrderCheckModel> {
296
+    return defHttp.post({
297
+        url: API.ORDER_CHECK,
298
+        data: {
299
+            ...params
300
+        }
301
+    })
302
+}
303
+
304
+/**
305
+ * 修改购物车数量
306
+ * @param cart_id
307
+ * @param cart_num
308
+ */
309
+export function cartChange(cart_id: string, cart_num: number) {
310
+    return defHttp.post({
311
+        url: `${API.USER_CART_CHANGE}/${cart_id}`,
312
+        data: {
313
+            cart_num
314
+        }
315
+    })
316
+}
317
+
318
+/**
319
+ * 创建订单
320
+ */
321
+export function orderCreate(params: CreateOrderRequest): Promise<OrderCreateModel> {
322
+    return defHttp.post({
323
+        url: API.ORDER_CREATE,
324
+        data: {
325
+            ...params
326
+        }
327
+    })
328
+}
329
+
330
+/**
331
+ * 积分创建订单
332
+ */
333
+export function getIntegralOrderCreate(params: CreateOrderRequest): Promise<IntegralOrderCreateModel> {
334
+    return defHttp.post({
335
+        url: API.ORDER_CREATE,
336
+        data: {
337
+            ...params
338
+        }
339
+    })
340
+}
341
+
342
+/**
343
+ * 订单列表
344
+ */
345
+export function getOrderListFromStatus(params: {
346
+    page: number
347
+    //   订单状态(0:待发货;1:待收货;2:待评价;3:已完成;4已申请退款;-1:已退款)5未支付 6已取消
348
+    status: number
349
+    limit: number
350
+}): Promise<OrderListResult> {
351
+    return defHttp.get({
352
+        url: API.ORDER_LIST,
353
+        data: {
354
+            ...params
355
+        }
356
+    })
357
+}
358
+
359
+/**
360
+ * 获取全部订单
361
+ * @param params
362
+ */
363
+export function getAllOrder(params: {
364
+    page: number,
365
+    limit: number
366
+}): Promise<OrderListResult> {
367
+    return defHttp.get({
368
+        url: API.ORDER_ALL,
369
+        data: {
370
+            ...params
371
+        }
372
+    })
373
+}
374
+
375
+/**
376
+ * 订单列表-待付款
377
+ * @param params
378
+ */
379
+export function getGroupOrderList(params: {
380
+    page: number,
381
+    limit: number
382
+}): Promise<OrderListObligationResult> {
383
+    return defHttp.get({
384
+        url: API.GROUP_ORDER_LIST,
385
+        data: {
386
+            ...params
387
+        }
388
+    })
389
+}

+ 401 - 0
src/apis/product.ts

@@ -0,0 +1,401 @@
1
+import {defHttp, detailHttp} from "~/utils/http";
2
+import type {
3
+    DyLiveModel, DyLiveProductModel, DyProductDetailModel,
4
+    DyProductDetailsModel,
5
+    DyProductModel, JdProductDetailModel,
6
+    JdProductModel, JdgProductDetailModel, PDDProductDetailModel, PDDProductDetailModels, PDDProductModel, ProductDetailModel,
7
+    ProductParams,
8
+    SearchProductParams,
9
+    SearchProductResult, SuNingProductDetailModel, SuNingProductDetailsModel, SuNingProductModel, TaobaoProductDetailModel,
10
+    TaobaoProductResult, VipProductModel, VipProductParams, VipProductResult, VipProductResults
11
+} from "~/apis/model/product.model";
12
+import {resolveUnref} from "@vueuse/core";
13
+
14
+enum API {
15
+    // 首页商品列表
16
+    GET_HOME_PRODUCT = `/api/newhome/nologin/product`,
17
+    // 商品搜索
18
+    SELECT_PRODUCT_LIST = `/gateway/wares_service/waresService/selectProductList`,
19
+    // 商品详情
20
+    GET_PRODUCT_DETAIL = '/api/store/product/detail',
21
+    // 商品推荐列表
22
+    GET_PRODUCT_RECOMMEND_LIST = '/api/store/product/recommend/lst',
23
+    // 分享产品
24
+    PRODUCT_SHARE = '/api/product_share',
25
+    // 京东商品详情
26
+    JD_DETAIL = '/api/jd/detail',
27
+	// 未登录京东商品详情
28
+	JTT_DETAIL = '/api/jtt/detail',
29
+    // 京东商品列表
30
+    JD_LIST = '/api/jd/list',
31
+    // 京东商品列表搜索
32
+    JD_SEARCH = '/api/jd/search',
33
+
34
+    // 唯品会商品列表
35
+    VIP_GOODS = '/api/vip/goods',
36
+    // 唯品会商品列表搜索
37
+    VIP_SEARCH = '/api/vip/search',
38
+    // 唯品会商品详情
39
+    VIP_DETAIL = '/api/vip/detail',
40
+
41
+    // 苏宁商品列表
42
+    SU_LIST = '/api/su/list',
43
+    // 苏宁商品列表搜索
44
+    SU_SEARCH = '/api/su/search',
45
+    // 苏宁商品详情
46
+    SU_DETAIL = '/api/su/detail',
47
+
48
+    // 淘宝商品列表
49
+    TAOBAO_LIST = '/gateway/thirdPartyWares_service/taobao_service/selectTaobaoWaresList',
50
+    // 淘宝商品详情
51
+    TAOBAO_DETAIL = '/gateway/thirdPartyWares_service/taobao_service/taobaoWaresDetail',
52
+    // 淘宝跳转
53
+    JUMP_TAOBAO = '/gateway/thirdPartyWares_service/taobao_service/dtkchangeLink',
54
+
55
+    // 拼多多商品列表
56
+    PDD_LIST = '/api/pdd/list',
57
+    // 拼多多商品搜索
58
+    PDD_SEARCH = '/api/pdd/list',
59
+    // 拼多多商品详情
60
+    PDD_DETAIL = '/api/pdd/detail',
61
+
62
+    // 抖音列表
63
+    DY_LIST = '/api/dy/get_list',
64
+    // 抖音直播间列表
65
+    DY_LIVE_LIST = '/api/dy/live_list',
66
+    // 抖音直播间商品列表
67
+    DY_LIVE_PRODUCT_LIST = '/api/dy/live_product_list',
68
+    // 抖音直播间商品跳转
69
+    DY_LIVE_PRODUCT_SHARE = '/api/dy/live_product_share',
70
+    // 抖音商品列表搜索
71
+    DY_SEARCH = '/api/dy/get_search',
72
+    // 抖音商品详情
73
+    DY_DETAIL = '/api/dy/get_detail',
74
+    //大仓banner展示图片
75
+    DC_BANNER='/api/newhome/nologin/banner/da_cang'
76
+}
77
+
78
+
79
+/**获取大仓banner展示图片 */
80
+export function getBannerImg (){
81
+    return defHttp.get({
82
+        url:API.DC_BANNER
83
+    })
84
+}
85
+
86
+
87
+/**
88
+ * 获取分享ID
89
+ * @param params
90
+ */
91
+export function getShareId(params: { pid: string, type: 1}): Promise<{ url: string, share_id: string}>{
92
+    return defHttp.get({
93
+        url: API.PRODUCT_SHARE,
94
+        data: {
95
+            ...params
96
+        }
97
+    })
98
+}
99
+/**
100
+ * 商品详情
101
+ * @param product_id
102
+ */
103
+export function getProductDetail(product_id: string): Promise<ProductDetailModel> {
104
+    return defHttp.get({
105
+        url: API.GET_PRODUCT_DETAIL + `/${product_id}`,
106
+        // data: {
107
+        //     product_id
108
+        // }
109
+    })
110
+}
111
+
112
+/**
113
+ * 首页商品列表
114
+ */
115
+export function getHomeProductList() {
116
+    return defHttp.get({
117
+        url: API.GET_HOME_PRODUCT
118
+    })
119
+}
120
+
121
+/**
122
+ * 商品搜索
123
+ * @param params
124
+ */
125
+export function searchProductList(params: SearchProductParams): Promise<SearchProductResult> {
126
+    return defHttp.get({
127
+        url: API.SELECT_PRODUCT_LIST,
128
+        data: {
129
+            ...params
130
+        }
131
+    }, {
132
+        withToken: false
133
+    })
134
+}
135
+
136
+/**
137
+ * 京东商品详情
138
+ * @param skuId
139
+ */
140
+export  function getJdProductDetail(skuId: string): Promise<JdgProductDetailModel> {
141
+    return detailHttp.get({
142
+        url: API.JD_DETAIL,
143
+        data: {
144
+            skuId
145
+        }
146
+    })
147
+}
148
+
149
+/**
150
+ * 未登录获取京东商品详情
151
+ * @param skuId
152
+ */
153
+export  function getJTTProductDetail(skuId: string, type: string): Promise<JdgProductDetailModel> {
154
+    return detailHttp.get({
155
+        url: API.JTT_DETAIL,
156
+        data: {
157
+            skuId,
158
+			type
159
+        }
160
+    })
161
+}
162
+
163
+/**
164
+ * 京东商品列表
165
+ * @param params
166
+ */
167
+export function getJdProductList(params: ProductParams): Promise<Array<JdProductModel>> {
168
+    return defHttp.get({
169
+        url: API.JD_LIST,
170
+        data: {
171
+            ...params
172
+        }
173
+    })
174
+}
175
+
176
+/**
177
+ * 京东商品搜索
178
+ * @param params
179
+ */
180
+export function searchJdProduct(params: ProductParams): Promise<Array<JdProductModel>> {
181
+    return defHttp.get({
182
+        url: API.JD_SEARCH,
183
+        data: {
184
+            ...params
185
+        }
186
+    })
187
+}
188
+/**
189
+ * 唯品会商品列表
190
+ * @param params
191
+ */
192
+export function getVipProductList(params: ProductParams): Promise<Array<VipProductModel>> {
193
+    return defHttp.get({
194
+        url: API.VIP_GOODS,
195
+        data: {
196
+            ...params
197
+        }
198
+    })
199
+}
200
+
201
+/**
202
+ * 搜索唯品商品
203
+ * @param params
204
+ */
205
+export function searchVipProduct(params: ProductParams): Promise<Array<VipProductResult>> {
206
+    return defHttp.get({
207
+       url: API.VIP_SEARCH,
208
+       data: {
209
+           ...params
210
+       }
211
+    })
212
+}
213
+
214
+/**
215
+ * 唯品商品详情
216
+ * @param params
217
+ */
218
+export function getVipProductDetail(goodsId: string): Promise<VipProductResults> {
219
+    return detailHttp.get({
220
+        url: API.VIP_DETAIL,
221
+        data: {
222
+            goodsId
223
+            // ...params
224
+        }
225
+    })
226
+}
227
+
228
+export function getSuProductDetail(id: string): Promise<SuNingProductDetailsModel> {
229
+    return detailHttp.get({
230
+        url: `${API.SU_DETAIL}/${id}`,
231
+
232
+    })
233
+}
234
+
235
+/**
236
+ * 苏宁商品列表
237
+ * @param params
238
+ */
239
+export function getSuProductList(params: ProductParams): Promise<Array<SuNingProductModel>> {
240
+    return defHttp.get({
241
+        url: API.SU_LIST,
242
+        data: {
243
+            ...params
244
+        }
245
+    })
246
+}
247
+
248
+/**
249
+ * 苏宁商品搜索
250
+ * @param params
251
+ */
252
+export function searchSuProduct(params: ProductParams): Promise<Array<SuNingProductModel>> {
253
+    return defHttp.get({
254
+        url: API.SU_SEARCH,
255
+        data: {
256
+            ...params
257
+        }
258
+    })
259
+}
260
+
261
+export function getTaobaoProductDetail(id: string): Promise<TaobaoProductDetailModel> {
262
+    return detailHttp.post({
263
+        url: API.TAOBAO_DETAIL,
264
+        data: {
265
+            id
266
+        }
267
+    }, {
268
+        withToken: false
269
+    })
270
+}
271
+/**
272
+ * 淘宝商品列表
273
+ * @param params
274
+ */
275
+export function getTaobaoProductList(params: {
276
+    pageNum: string
277
+    pageSize: string
278
+    title?: string
279
+}):Promise<TaobaoProductResult> {
280
+    return defHttp.post({
281
+        url: API.TAOBAO_LIST,
282
+        data: {
283
+            ...params
284
+        }
285
+    }, {
286
+        withToken: false
287
+    })
288
+}
289
+
290
+/**
291
+ * 拼多多商品列表
292
+ * @param params
293
+ */
294
+export function getPddProductList(params: ProductParams): Promise<Array<PDDProductModel>> {
295
+    return defHttp.get({
296
+        url: API.PDD_LIST,
297
+        data: {
298
+            ...params
299
+        }
300
+    })
301
+}
302
+
303
+/**
304
+ * 拼多多商品详情
305
+ * @param goodsId
306
+ */
307
+export function getPddProductDetail(goodsId: string): Promise<PDDProductDetailModels> {
308
+    return detailHttp.get({
309
+        url: API.PDD_DETAIL,
310
+        data: {
311
+            goodsId
312
+        }
313
+    })
314
+}
315
+
316
+/**
317
+ * 拼多多商品搜索
318
+ * @param params
319
+ */
320
+export function searchPddProduct(params: ProductParams): Promise<Array<PDDProductModel>> {
321
+    return detailHttp.get({
322
+        url: API.PDD_SEARCH,
323
+        data: {
324
+            ...params
325
+        }
326
+    })
327
+}
328
+/**
329
+ * 抖音商品列表
330
+ * @param params
331
+ */
332
+export function getDyProductList(params: ProductParams): Promise<Array<DyProductModel>> {
333
+    return defHttp.get({
334
+        url: API.DY_LIST,
335
+        data: {
336
+            ...params
337
+        }
338
+    })
339
+}
340
+
341
+/**
342
+ * 抖音直播间列表
343
+ */
344
+export function getDyLiveList(params: ProductParams): Promise<Array<DyLiveModel>> {
345
+    return defHttp.get({
346
+        url: API.DY_LIVE_LIST,
347
+        data: {
348
+            ...params
349
+        }
350
+    })
351
+}
352
+
353
+/**
354
+ * 抖音直播间商品列表
355
+ */
356
+export function getDyLiveProductList(buyinId: string): Promise<DyLiveProductModel> {
357
+    return defHttp.get({
358
+        url: API.DY_LIVE_PRODUCT_LIST,
359
+        data: {
360
+            buyinId
361
+        }
362
+    })
363
+}
364
+/**
365
+ * 抖音商品搜索
366
+ * @param params
367
+ */
368
+export function searchDyProduct(params: ProductParams):Promise<Array<DyProductModel>>{
369
+    return defHttp.get({
370
+        url: API.DY_SEARCH,
371
+        data: {
372
+            ...params
373
+        }
374
+    })
375
+}
376
+
377
+/**
378
+ * 抖音商品详情
379
+ * @param goodsId
380
+ */
381
+export function getDyProductDetail(goodsId: string): Promise<DyProductDetailsModel> {
382
+    return detailHttp.get({
383
+        url: API.DY_DETAIL,
384
+        data: {
385
+            goodsId
386
+        }
387
+    })
388
+}
389
+
390
+/**
391
+ * 抖音商品详情 - 未登录
392
+ * @param goodsId
393
+ */
394
+export function getDyProductDetailUnlogin(goodsId: string): Promise<DyProductDetailsModel> {
395
+    return detailHttp.get({
396
+        url: API.DY_DETAIL,
397
+        data: {
398
+            goodsId
399
+        }
400
+    })
401
+}

+ 973 - 0
src/apis/user.ts

@@ -0,0 +1,973 @@
1
+import { defHttp, detailHttp } from '~/utils/http'
2
+import type { UserUnionParams, UserUnionResult } from "~/apis/model/userUnionModel";
3
+import Cache from '~/utils/cache'
4
+import { EXPIRES_TIME, LOGIN_STATUS, OPEN_ID, STATE_R_KEY, USER_INFO } from "~/constants";
5
+import { useUserStore } from "~/stores/userStore";
6
+import type { YanglaoStatisticsResult } from "~/apis/model/yanglaoStatisticsModel";
7
+import type { UpdateUserInfoRequestModel, UserInfoModel } from "~/apis/model/userInfoModel";
8
+import type { InvitePartnerModel, UserInviteParams } from "~/apis/model/invitePartnerModel";
9
+import type { UserShareProductListModel, UserShareProductParams } from "~/apis/model/userShareProductModel";
10
+import type { RevenueSharingModel, RevenueSharingParams } from "~/apis/model/revenueSharingModel";
11
+import type { AccumulateIncomeModel, UserInviteProfitParams } from "~/apis/model/accumulateIncomeModel";
12
+import type { SpreadInfoModel } from "~/apis/model/spreadInfoModel";
13
+import type { WithdrawalParams, WithdrawalServiceModel } from "~/apis/model/withdrawalService";
14
+import type { UserYanglaoJinModel } from "~/apis/model/userYanglaoJinModel";
15
+import type { WithdrawalModel } from "~/apis/model/withdrawalModel";
16
+import type { MyRelationMerchantParams, MyRelationMerchantResult } from "~/apis/model/myRelationMerchantModel";
17
+import type { MyRelationProductPrams, MyRelationProductResult } from "~/apis/model/myRelationProductModel";
18
+import type { IntegralParams, IntegralResult } from "~/apis/model/integralModel";
19
+import type {
20
+    SharePosterClassifyResult,
21
+    SharePosterImageResult,
22
+    SharePostersImagesListParams,
23
+} from "~/apis/model/inviteFriendsModel";
24
+import type { ReplyParams, ReplyResult } from "~/apis/model/replyModel";
25
+import type { SignInInfoModel, SignInModel } from "~/apis/model/signIninfo.model";
26
+import type { ShoppingResult } from "~/apis/model/shopping.model";
27
+import type { AddressResult, OneAddressModel } from "~/apis/model/address.model";
28
+import type { UserVipInfoModel } from "~/apis/model/user-vip-info.model";
29
+import type { CertificationRequest } from "~/apis/model/certification.model";
30
+import type { RelationRequest } from "~/apis/model/relation.model";
31
+import type { YanglaoLogXsResult, YanglaoLogXxResult } from "~/apis/model/yanglao-log.model";
32
+import type { InvitePHPModel } from "~/apis/model/invite.model";
33
+
34
+// 会员中心的提现
35
+// export function entropy(data) {
36
+// return request.post('entropy/withdrawal', data);
37
+// return defHttp.post({})
38
+// }
39
+enum API {
40
+    // 关于我们
41
+    GET_ABOUT_CONFIG = '/api/about/config',
42
+
43
+    // 养老金信息
44
+    GET_YANGLAO = '/api/user/get_yanglao',
45
+    // 公证处养老金余额
46
+    GET_AMOUNT_FROM_GZC = '/api/user/getAmountFromGzc',
47
+    // 养老金记录
48
+    GET_YANGLAOJIN_STATISTICS = '/api/user/get_yanglao_statistics',
49
+    // 养老金明细
50
+    GET_YANGLAO_LOG = '/api/user/yanglaolog',
51
+    // 获取用户信息
52
+    USER = '/api/user',
53
+    // 个人资料编辑
54
+    UPDATE_USER = '/api/user/update/user',
55
+    // 获取协议
56
+    GET_XIEYI = '/api/xieyi/detail',
57
+    GET_USER_UNION_ID = '/api/userMp/getUserUnionid',
58
+    WECHAT_CHECK = '/api/wechat/check',
59
+    AUTH_APPLET_PHONE = '/api/auth/applet_phone',
60
+    BIND_PHONE = '/api/third/binding',
61
+    AUTH_MP = '/api/auth/mp',
62
+
63
+    // 提现服务费计算
64
+    WITHDRAWAL_SERVICE = '/api/entropy/withdrawal_service',
65
+    // 提现记录
66
+    USER_WITHDRAWAL = '/api/user/withdrawal',
67
+    // 提现配置
68
+    WITHDRAWAL_CONFIG = '/api/withdrawal/config',
69
+    // 提现检测是否绑定提交账户接口
70
+    GET_BAND_ACCOUNT_INFO = '/api/user/extract/get_band_account_info',
71
+    // 绑定账号
72
+    // USER_BAND_ACCOUNT = '/api/user/extract/band_account',
73
+    // 提现申请
74
+    USER_EXTRACT_CREATE = '/api/user/extract/create',
75
+
76
+    // 佣金信息
77
+    USER_SPREAD_INFO = '/api/user/spread_info',
78
+
79
+    // JAVA 累计收益列表 use by accumulateIncome
80
+    USER_INVITE_PROFIT_LIST = '/gateway/userCenter_service/userInviteService/userInviteProfitList',
81
+    // 分享收益
82
+    GET_COMMISSION_LIST = '/api/user/get_commission_list',
83
+
84
+    // 评论列表
85
+    GET_REPLY_LIST = '/api/reply/list',
86
+    // 删除评论
87
+    DEL_REPLY_LIST = '/api/reply/delreply',
88
+    // java 我的邀请
89
+    SELECT_USER_INVITE_PROFIT = '/gateway/userCenter_service/userInviteService/selectUserInviteProfit',
90
+    // PHP 我的邀请
91
+    GET_AGENT_INFO = '/api/user/get_agent_info',
92
+    // java 邀请商户+伙伴个数 列表
93
+    USER_INVITE_LIST = '/gateway/userCenter_service/userInviteService/userInviteList',
94
+    // java 用户分享产品列表
95
+    USER_SHARE_PRODUCT_LIST = '/gateway/userCenter_service/userShareProductService/userShareProductList',
96
+
97
+    // 我的收藏
98
+    USER_RELATION_PRODUCT_LIST = '/api/user/relation/product/lst',
99
+    // 取消收藏
100
+    USER_RELATION_DELETE = '/api/user/relation/delete',
101
+    // 批量取消收藏
102
+    BATCH_RELATION_DELETE = '/api/user/relation/batch/delete',
103
+    // 我关注的店铺
104
+    USER_RELATION_MERCHANT_LIST = '/api/user/relation/merchant/lst',
105
+
106
+    // 积分记录(签到赠送积分)
107
+    USER_SIGN_LIST = '/api/user/sign_list',
108
+
109
+    // 红积分列表
110
+    USER_RED_LOG = '/api/user/red_log',
111
+    //https://test.bjtdba.com/api/user/red_log?page=1&limit=20 红积分明细 
112
+    //https://test.bjtdba.com/api/user/bill?page=1&limit=20&is_red=true 红积分奖金明细
113
+    USER_BILL_LOG = '/api/user/bill',
114
+    // 获取规则信息
115
+    GET_RULES = '/api/notice/detail',
116
+
117
+    USER_APPLY_BANG_FU = '/api/user/apply_bang_fu',
118
+
119
+    /**
120
+     * 第三方账号绑定状态
121
+     */
122
+    USER_GET_ACCOUNT = '/api/user/getAccount',
123
+
124
+    /**
125
+     * 邀请好友分享图片分类接口
126
+     */
127
+    USER_SHARE_PRODUCT_SERVICE_CLASSIFY_LIST = `/gateway/userCenter_service/userShareProductService/classifyList`,
128
+
129
+    /**
130
+     * 邀请好友图片列表
131
+     */
132
+    USER_SHARE_PRODUCT_SERVICE_SHARE_IMAGES_LIST = `/gateway/userCenter_service/userShareProductService/shareImgesList`,
133
+
134
+    /**
135
+     * 生成图片
136
+     */
137
+    POSTER_SERVICE_IMAGES = `/gateway/poster_service/posterService/imgs`,
138
+
139
+    // 新签到信息
140
+    NEW_SIGN_INFO = `/api/user/new_sign_info`,
141
+    // 签到
142
+    NEW_SIGN = `/api/user/new_sign`,
143
+
144
+    // 购物车相关
145
+    // 购物车列表
146
+    USER_CART_LIST = `/api/user/cart/lst`,
147
+    // 购物车删除
148
+    USER_CART_DELETE = `/api/user/cart/delete`,
149
+    USER_CART_REMOVE = `/api/user/relation/batch/create_remove_cart`,
150
+    // 购物车数量
151
+    USER_CART_COUNT = `/api/user/cart/count`,
152
+
153
+    /// 地址相关
154
+    // 地址列表
155
+    USER_ADDRESS_LIST = `/api/user/address/lst`,
156
+    // 五级联动信息
157
+    // api/system/city/new_five_lst?pid=493
158
+    CITY_NEW_FIVE_LIST = `/api/system/city/new_five_lst`,
159
+    // 获取城市信息县级
160
+    CITY_NEW_LIST = `/api/system/city/new_lst`,
161
+    // 创建地址
162
+    CREATE_USER_ADDRESS = '/api/user/address/new_create',
163
+    USER_ADDRESS_DETAIL = '/api/user/address/detail',
164
+    USER_VIP_INFO = '/api/warehouse/UserVipInfo',
165
+    DELETE_USER_ADDRESS = '/api/user/address/delete',
166
+
167
+    USER_ADD_CERTIFICATION = '/api/user/add_certification',
168
+
169
+    // 关注商铺
170
+    USER_RELATION_CREATE = '/api/user/relation/create',
171
+    // getCertification
172
+    // 邀请码绑定接口
173
+    SPREAD_NUMBER = '/gateway/userCenter_service/userShareProductService/spreadNumber',
174
+
175
+    // 分享二维码图片
176
+    SPREAD_IMAGE = '/api/user/spread_image?type=wechat',
177
+
178
+    // 绑定微信小程序关系
179
+    XCX_BANDING = '/api/entropy/xcx_banding',
180
+
181
+}
182
+// 绑定微信小程序关系
183
+export function xcxBanding(params: { mer_id: string, share_id: string }) {
184
+    return defHttp.get({
185
+        url: API.XCX_BANDING,
186
+        data: {
187
+            ...params
188
+        }
189
+    })
190
+}
191
+/**
192
+ * 生成用户图片
193
+ * @param params
194
+ */
195
+export function getGenerateImage(params: { uid: string, img_id: string }) {
196
+    return defHttp.post({
197
+        url: API.POSTER_SERVICE_IMAGES,
198
+        data: {
199
+            ...params
200
+        }
201
+    }, {
202
+        withToken: false
203
+    })
204
+}
205
+export function getSpreadImage() {
206
+    return defHttp.get({
207
+        timeout: 50 * 1000,
208
+        url: API.SPREAD_IMAGE,
209
+    })
210
+}
211
+/**
212
+ * 绑定邀请码
213
+ *
214
+ * @param params
215
+ */
216
+export function getSpreadNumber(params: { uid: string, number: string }) {
217
+    return defHttp.post({
218
+        url: API.SPREAD_NUMBER,
219
+        data: {
220
+            ...params
221
+        },
222
+    }, {
223
+        withToken: false
224
+    })
225
+}
226
+
227
+/**
228
+ * 第三方账号绑定状态
229
+ */
230
+export function getBindingState() {
231
+    return defHttp.post({
232
+        url: API.USER_GET_ACCOUNT
233
+    }).catch(error => {
234
+        uni.showToast({
235
+            title: error,
236
+            icon: 'none'
237
+        })
238
+    })
239
+}
240
+
241
+/**
242
+ * 公证处养老金余额
243
+ */
244
+export function getAmountFromGzc(): Promise<{ amount: string }> {
245
+    return defHttp.get({
246
+        url: API.GET_AMOUNT_FROM_GZC,
247
+    })
248
+}
249
+
250
+/**
251
+ * PHP 我的邀请
252
+ */
253
+export function getAgentInfo(): Promise<InvitePHPModel> {
254
+    return defHttp.get({
255
+        url: API.GET_AGENT_INFO
256
+    })
257
+}
258
+
259
+/**
260
+ * JAVA 我的邀请
261
+ * @param params
262
+ */
263
+export function getSelectUserInviteProfit(params: { uid: string }): Promise<IntegralResult> {
264
+    return defHttp.get({
265
+        url: API.SELECT_USER_INVITE_PROFIT,
266
+        data: {
267
+            ...params
268
+        }
269
+    }, {
270
+        withToken: false
271
+    })
272
+}
273
+
274
+/**
275
+ * 提现配置
276
+ */
277
+export function getWithdrawalConfig() {
278
+    return defHttp.get({
279
+        url: API.WITHDRAWAL_CONFIG
280
+    })
281
+}
282
+
283
+// 提现检测是否绑定提交账户接口
284
+export function getBandAccountInfo(params: {
285
+    // 1微信
286
+    type: string
287
+}) {
288
+    return defHttp.post({
289
+        url: API.GET_BAND_ACCOUNT_INFO
290
+    })
291
+}
292
+
293
+/**
294
+ * 获取红积分列表
295
+ * @param params
296
+ */
297
+export function getRedIntegralList(params: { page: number, limit: number }) {
298
+    return defHttp.get({
299
+        url: API.USER_RED_LOG,
300
+        data: {
301
+            ...params
302
+        }
303
+    })
304
+}
305
+/**
306
+ * 获取会员奖金列表
307
+ * @param params
308
+ */
309
+export function getBillIntegralList(params: any) {
310
+    return defHttp.get({
311
+        url: API.USER_BILL_LOG,
312
+        data: {
313
+            ...params
314
+        }
315
+    })
316
+}
317
+
318
+/* 关注/收藏
319
+ */
320
+export function relation(params: RelationRequest) {
321
+    return defHttp.post({
322
+        url: API.USER_RELATION_CREATE,
323
+        data: {
324
+            ...params
325
+        }
326
+    })
327
+}
328
+
329
+/**
330
+ * 删除地址
331
+ * @param id
332
+ */
333
+export function deleteAddress(id: string) {
334
+    return defHttp.post({
335
+        url: API.DELETE_USER_ADDRESS + `/${id}`
336
+    })
337
+}
338
+
339
+/**
340
+ * 五级联动地址
341
+ * @param pid
342
+ */
343
+export function getCityNewFiveList(pid: number) {
344
+    return defHttp.get({
345
+        url: API.CITY_NEW_FIVE_LIST,
346
+        data: {
347
+            pid
348
+        }
349
+    })
350
+}
351
+
352
+/**
353
+ * 实名认证
354
+ */
355
+export function getCertificationInfo(type: string) {
356
+    return defHttp.get({
357
+        url: API.USER_ADD_CERTIFICATION,
358
+        data: {
359
+            type
360
+        }
361
+    })
362
+}
363
+
364
+/**
365
+ * 提交认证
366
+ * @param params
367
+ */
368
+export function submitCertification(params: CertificationRequest) {
369
+    return defHttp.get({
370
+        url: API.USER_ADD_CERTIFICATION,
371
+        data: {
372
+            ...params
373
+        }
374
+    })
375
+}
376
+
377
+/// 地址相关
378
+
379
+/**
380
+ * 获取地址详情
381
+ * @param id
382
+ */
383
+export function getUserAddressDetail(id: string) {
384
+    return defHttp.get({
385
+        url: API.USER_ADDRESS_DETAIL + `/${id}`
386
+    })
387
+}
388
+
389
+export function addressNewCreate(params: {
390
+    province: string,
391
+    city: string,
392
+    phone: string,
393
+    // countryName
394
+    district: string,
395
+    address_id?: string
396
+    real_name: string,
397
+    detail: string,
398
+    //是否默认,1默认;0不默认
399
+    is_default: string,
400
+    code_list: string,
401
+    city_id: string,
402
+    village_id?: string,
403
+    village?: string
404
+
405
+}) {
406
+    return defHttp.post({
407
+        url: API.CREATE_USER_ADDRESS,
408
+        data: {
409
+            ...params
410
+        }
411
+    })
412
+}
413
+
414
+/**
415
+ * 获取地址列表
416
+ */
417
+export function getUserAddressList(): Promise<AddressResult> {
418
+    return defHttp.get({
419
+        url: API.USER_ADDRESS_LIST,
420
+    })
421
+}
422
+
423
+/**
424
+ * 获取城市信息
425
+ */
426
+export function getCityList(): Promise<Array<OneAddressModel>> {
427
+    return defHttp.get({
428
+        url: API.CITY_NEW_LIST
429
+    })
430
+}
431
+
432
+/**
433
+ * 地址添加或者修改
434
+ * @param params
435
+ */
436
+// export function createAddress(params: AddressParams) {
437
+//     return defHttp.post<AddressParams>({
438
+//         url: API.CREATE_USER_ADDRESS,
439
+//         data: params
440
+//     }, {
441
+//         withToken: true
442
+//     })
443
+// }
444
+
445
+export function getCartCount(): Promise<Array<{ count: number }>> {
446
+    return defHttp.get({
447
+        url: API.USER_CART_COUNT
448
+    })
449
+}
450
+
451
+/**
452
+ * 获取购物车列表
453
+ */
454
+export function getCartList(): Promise<ShoppingResult> {
455
+    return defHttp.get({
456
+        url: API.USER_CART_LIST
457
+    })
458
+}
459
+
460
+
461
+export function deleteCartItem(cart_id: any[]) {
462
+    return defHttp.post({
463
+        url: API.USER_CART_DELETE,
464
+        data: {
465
+            cart_id
466
+        }
467
+    })
468
+}
469
+//移入收藏  USER_CART_REMOVE = `/api/user/relation/batch/create_remove_cart`,
470
+export function removeCartItem(type_id: any[]) {
471
+    return detailHttp.post({
472
+        url: API.USER_CART_REMOVE,
473
+        data: {
474
+            type_id
475
+        }
476
+    })
477
+}
478
+// 删除评论
479
+export function removeReply(reply_id: string) {
480
+    return defHttp.post({
481
+        url: `${API.DEL_REPLY_LIST}/${reply_id}`,
482
+    })
483
+}
484
+/**
485
+ * 获取我的评价(评论)
486
+ */
487
+export function getMyReply(params: ReplyParams): Promise<ReplyResult> {
488
+    return defHttp.post({
489
+        url: API.GET_REPLY_LIST,
490
+        data: {
491
+            ...params
492
+        }
493
+    })
494
+}
495
+
496
+/**
497
+ * 获取邀请好友图片分类
498
+ */
499
+export function getUserSharePostersClassifyList(): Promise<SharePosterClassifyResult> {
500
+    return defHttp.post({
501
+        url: API.USER_SHARE_PRODUCT_SERVICE_CLASSIFY_LIST
502
+    }, {
503
+        withToken: false
504
+    })
505
+}
506
+
507
+export function getUserSharePostersImagesList(params: SharePostersImagesListParams): Promise<SharePosterImageResult> {
508
+    return defHttp.post({
509
+        url: API.USER_SHARE_PRODUCT_SERVICE_SHARE_IMAGES_LIST,
510
+        data: {
511
+            ...params
512
+        }
513
+    }, {
514
+        withToken: false
515
+    })
516
+}
517
+
518
+/**
519
+ * 申请开通帮扶
520
+ */
521
+export function applyBangFu() {
522
+    return defHttp.post({
523
+        url: API.USER_APPLY_BANG_FU
524
+    })
525
+}
526
+
527
+/**
528
+ * 根据ID获取帮扶中心的规则信息
529
+ * @param id
530
+ */
531
+export function getRules(id: number) {
532
+    return defHttp.get({
533
+        url: `${API.GET_RULES}/${id}`,
534
+    })
535
+}
536
+
537
+/**
538
+ * 获取用户积分记录
539
+ * @param params
540
+ */
541
+export function getUserSignList(params: IntegralParams): Promise<IntegralResult> {
542
+    return defHttp.get({
543
+        url: API.USER_SIGN_LIST,
544
+        data: {
545
+            ...params
546
+        }
547
+    }, {})
548
+}
549
+
550
+/**
551
+ * 获取我关注的店铺
552
+ */
553
+export function getMyRelationMerchantList(params: MyRelationMerchantParams): Promise<MyRelationMerchantResult> {
554
+    return defHttp.get({
555
+        url: API.USER_RELATION_MERCHANT_LIST,
556
+        data: {
557
+            ...params
558
+        }
559
+    }, {})
560
+}
561
+
562
+/**
563
+ * 取消我的收藏
564
+ * @param type 1
565
+ */
566
+export function removeMyRelation(params: { type: number, type_id: string }) {
567
+    return defHttp.post({
568
+        url: API.USER_RELATION_DELETE,
569
+        data: {
570
+            ...params
571
+        }
572
+    })
573
+}
574
+/**
575
+ * 批量取消我的收藏 user/relation/batch/delete
576
+ * @param type 1
577
+ */
578
+export function batchremoveMyRelation(params: { type: number, type_id:any[]}) {
579
+    return defHttp.post({
580
+        url: API.BATCH_RELATION_DELETE,
581
+        data: {
582
+            ...params
583
+        }
584
+    })
585
+}
586
+
587
+/**
588
+ * 获取我的收藏
589
+ * @param params
590
+ */
591
+export function getMyRelationProduct(params: MyRelationProductPrams): Promise<MyRelationProductResult> {
592
+    return defHttp.get({
593
+        url: API.USER_RELATION_PRODUCT_LIST,
594
+        data: {
595
+            ...params
596
+        }
597
+    }, {})
598
+}
599
+
600
+/**
601
+ * 用户提现记录
602
+ */
603
+export function getWithdrawal(params: {
604
+    type: number
605
+}): Promise<WithdrawalModel> {
606
+    return defHttp.get({
607
+        url: API.USER_WITHDRAWAL,
608
+        data: {
609
+            ...params
610
+        }
611
+    }, {})
612
+}
613
+
614
+/**
615
+ * 提现申请
616
+ */
617
+export function getApplicationWithdrawal(params: {
618
+    extract_price: string,
619
+    extract_type: string
620
+}) {
621
+    return defHttp.post({
622
+        url: API.USER_EXTRACT_CREATE,
623
+        data: {
624
+            ...params
625
+        }
626
+    })
627
+}
628
+/**
629
+ * 提现申请
630
+ */
631
+export function getApplicationredWithdrawal(params: {
632
+    extract_price: string,
633
+    extract_type: string,
634
+    type:number
635
+}) {
636
+    return defHttp.post({
637
+        url: API.USER_EXTRACT_CREATE,
638
+        data: {
639
+            ...params
640
+        }
641
+    })
642
+}
643
+
644
+/**
645
+ * 获取用户养老金信息
646
+ */
647
+export function getUserYangLaoJin(): Promise<UserYanglaoJinModel> {
648
+    return defHttp.get({
649
+        url: API.GET_YANGLAO,
650
+    }, {})
651
+}
652
+
653
+/**
654
+ * 获取养老金记录(线上/线下)
655
+ * @param params
656
+ */
657
+export function getUserYanglaoJinLog(params: {
658
+    page: number
659
+    limit: number
660
+    // 1 线下 0 线上
661
+    // source: '0' | '1'
662
+    source: string
663
+}): Promise<YanglaoLogXxResult> {
664
+    return defHttp.get({
665
+        url: API.GET_YANGLAO_LOG,
666
+        data: {
667
+            ...params
668
+        }
669
+    })
670
+}
671
+
672
+
673
+/**
674
+ * 获取线下养老金记录
675
+ */
676
+export function getUserYanglaoJinLogXx(params: {
677
+    page: number
678
+    limit: number
679
+    // 1 线下 0 线上
680
+    // source: '0' | '1'
681
+    source: string
682
+}): Promise<YanglaoLogXxResult> {
683
+    return defHttp.get({
684
+        url: API.GET_YANGLAO_LOG
685
+    })
686
+}
687
+
688
+/**
689
+ * 获线上取养老金记录
690
+ */
691
+export function getYanglaoJinLogXs(params: {
692
+    page: number
693
+    limit: number
694
+    // 1 线下 0 线上
695
+    // 1 拼多多, 2 唯品会, 3 苏宁, 5 淘宝, 6 京东, 90 线上, 99 线下
696
+    source: ''
697
+}): Promise<YanglaoLogXsResult> {
698
+    return defHttp.get({
699
+        url: API.GET_YANGLAO_LOG,
700
+        data: {
701
+            ...params
702
+        }
703
+    })
704
+}
705
+
706
+/**
707
+ * 获取平台服务费计算
708
+ */
709
+export function getWithdrawalService(params: WithdrawalParams): Promise<WithdrawalServiceModel> {
710
+    return defHttp.post({
711
+        url: API.WITHDRAWAL_SERVICE,
712
+        data: {
713
+            ...params
714
+        }
715
+    }, {})
716
+}
717
+
718
+/**
719
+ * 用户佣金信息
720
+ */
721
+export function getUserSpreadInfo(): Promise<SpreadInfoModel> {
722
+    return defHttp.get({
723
+        url: API.USER_SPREAD_INFO
724
+    })
725
+}
726
+
727
+/**
728
+ * 累计收益列表
729
+ * @param params
730
+ */
731
+export function getUserInviteProfitList(params: UserInviteProfitParams): Promise<AccumulateIncomeModel> {
732
+    return defHttp.get({
733
+        url: API.USER_INVITE_PROFIT_LIST,
734
+        data: {
735
+            ...params
736
+        }
737
+    }, {
738
+        withToken: false
739
+    })
740
+}
741
+
742
+/**
743
+ * 分享收益
744
+ */
745
+export function getRevenueSharing(params: RevenueSharingParams): Promise<RevenueSharingModel[]> {
746
+    return defHttp.get({
747
+        url: API.GET_COMMISSION_LIST,
748
+        data: {
749
+            ...params
750
+        }
751
+    })
752
+}
753
+
754
+/**
755
+ * 用户分享产品列表
756
+ * @param params
757
+ */
758
+export function getUserShareProductList(params: UserShareProductParams): Promise<UserShareProductListModel> {
759
+    return defHttp.get({
760
+        url: API.USER_SHARE_PRODUCT_LIST,
761
+        data: params
762
+    }, {
763
+        withToken: false
764
+    })
765
+}
766
+
767
+/**
768
+ * 邀请商户+伙伴 列表
769
+ * @param params
770
+ */
771
+export function getUserInviteList(params: UserInviteParams): Promise<InvitePartnerModel> {
772
+    return defHttp.get({
773
+        url: API.USER_INVITE_LIST,
774
+        data: params
775
+    }, {
776
+        withToken: false
777
+    })
778
+}
779
+
780
+/*
781
+
782
+获取滚动消息
783
+*/
784
+// export function getbulletin(){
785
+//  return request.get('roll_yanglaojin')
786
+// }
787
+
788
+/**
789
+ * 获取养老金记录
790
+ */
791
+export function getYanglaojinStatistics(): Promise<YanglaoStatisticsResult> {
792
+    return defHttp.get({
793
+        url: API.GET_YANGLAOJIN_STATISTICS,
794
+    })
795
+}
796
+
797
+/**
798
+ * 获取用户信息
799
+ */
800
+export function getUserInfo(): Promise<UserInfoModel> {
801
+    return defHttp.get({
802
+        url: API.USER
803
+    })
804
+}
805
+
806
+/**
807
+ * 更新用户信息
808
+ * @param params
809
+ */
810
+export function updateUserInfo(params: UpdateUserInfoRequestModel) {
811
+    return defHttp.post({
812
+        url: API.UPDATE_USER,
813
+        data: {
814
+            ...params
815
+        }
816
+    })
817
+}
818
+
819
+/**
820
+ * 获取协议内容
821
+ */
822
+export function getXieYi(type: number) {
823
+    return defHttp.get({
824
+        url: API.GET_XIEYI,
825
+        data: {
826
+            type
827
+        }
828
+    })
829
+}
830
+
831
+
832
+export function getAboutConfig() {
833
+    return defHttp.get({
834
+        url: API.GET_ABOUT_CONFIG
835
+    })
836
+}
837
+
838
+/**
839
+ * 获取微信平台唯一ID
840
+ * @param params
841
+ */
842
+export function getUserUnionId(params: UserUnionParams): Promise<UserUnionResult> {
843
+    return defHttp.post({
844
+        url: API.GET_USER_UNION_ID,
845
+        data: {
846
+            ...params
847
+        },
848
+    })
849
+}
850
+
851
+export function wechatCheck(openid: string): Promise<{ token: string, exp: number, user: UserInfoModel }> {
852
+    return defHttp.get({
853
+        url: API.WECHAT_CHECK,
854
+        data: {
855
+            openid
856
+        }
857
+    })
858
+}
859
+
860
+/**
861
+ * 手机号一键登录
862
+ */
863
+export function authAppletPhone(params: {
864
+    sessionKey: string,
865
+    encryptedData: string,
866
+    iv: string,
867
+    share_id?: string
868
+}): Promise<{ token: string, exp: number, user: any }> {
869
+    return defHttp.post({
870
+        url: API.AUTH_APPLET_PHONE,
871
+        data: {
872
+            ...params
873
+        }
874
+    })
875
+}
876
+
877
+/**
878
+ * 绑定手机号
879
+ */
880
+export function bindPhone(params: {
881
+    phone: string,
882
+    sms: number | 1,
883
+    sms_code: string,
884
+    password: string,
885
+    // unionId
886
+    third_user_id: string,
887
+    // 1 微信 2支付宝
888
+    type: number
889
+}) {
890
+    return defHttp.get({
891
+        url: API.BIND_PHONE,
892
+        data: {
893
+            ...params
894
+        }
895
+    })
896
+}
897
+
898
+/**
899
+ * 小程序用户登录
900
+ */
901
+export function authMp(data: any) {
902
+    return defHttp.post({
903
+        url: API.AUTH_MP,
904
+        data
905
+    })
906
+}
907
+
908
+// 检查登录状态
909
+export function checkLogin() {
910
+    const userStore = useUserStore()
911
+
912
+    let token = Cache.get(LOGIN_STATUS);
913
+    let expiresTime = Cache.get(EXPIRES_TIME);
914
+    let newTime = Math.round(new Date().getTime() / 1000);
915
+    if (expiresTime < newTime || !token) {
916
+        uni.removeStorageSync('USERINFO')
917
+        Cache.clear(LOGIN_STATUS);
918
+        Cache.clear(EXPIRES_TIME);
919
+        Cache.clear(USER_INFO);
920
+        Cache.clear(STATE_R_KEY);
921
+        return false;
922
+    } else {
923
+        // store.commit('UPDATE_LOGIN',token);
924
+        userStore.setToken(token);
925
+        let userInfo = Cache.get(USER_INFO, true);
926
+        if (userInfo) {
927
+            // store.commit('UPDATE_USERINFO',userInfo);
928
+            userStore.setUserInfo(userInfo)
929
+        }
930
+        return true;
931
+    }
932
+}
933
+
934
+export function reLogin() {
935
+    const userStore = useUserStore()
936
+    userStore.logout()
937
+    uni.switchTab({
938
+        url: '/pages/home/index'
939
+    })
940
+}
941
+
942
+export function login(key: string) {
943
+    uni.navigateTo({
944
+        url: '/pages/user/login/index?key=' + key
945
+    })
946
+}
947
+
948
+/**
949
+ * 新签到信息
950
+ */
951
+export function getNewSignInInfo(): Promise<SignInInfoModel> {
952
+    return defHttp.get({
953
+        url: API.NEW_SIGN_INFO,
954
+    })
955
+}
956
+
957
+/**
958
+ * 签到
959
+ */
960
+export function getNewSignIn(): Promise<SignInModel> {
961
+    return defHttp.post({
962
+        url: API.NEW_SIGN
963
+    })
964
+}
965
+
966
+/**
967
+ * 获取用户VIP信息
968
+ */
969
+export function getUserVipInfo(): Promise<UserVipInfoModel> {
970
+    return defHttp.get({
971
+        url: API.USER_VIP_INFO
972
+    })
973
+}

+ 329 - 0
src/auto-imports.d.ts

@@ -0,0 +1,329 @@
1
+/* eslint-disable */
2
+/* prettier-ignore */
3
+// @ts-nocheck
4
+// noinspection JSUnusedGlobalSymbols
5
+// Generated by unplugin-auto-import
6
+export {}
7
+declare global {
8
+  const EffectScope: typeof import('vue')['EffectScope']
9
+  const PositionProp: typeof import('./composables/useProps')['PositionProp']
10
+  const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
11
+  const computed: typeof import('vue')['computed']
12
+  const createApp: typeof import('vue')['createApp']
13
+  const createPinia: typeof import('pinia')['createPinia']
14
+  const customRef: typeof import('vue')['customRef']
15
+  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
16
+  const defineComponent: typeof import('vue')['defineComponent']
17
+  const defineStore: typeof import('pinia')['defineStore']
18
+  const effectScope: typeof import('vue')['effectScope']
19
+  const getActivePinia: typeof import('pinia')['getActivePinia']
20
+  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
21
+  const getCurrentScope: typeof import('vue')['getCurrentScope']
22
+  const h: typeof import('vue')['h']
23
+  const inject: typeof import('vue')['inject']
24
+  const isProxy: typeof import('vue')['isProxy']
25
+  const isReactive: typeof import('vue')['isReactive']
26
+  const isReadonly: typeof import('vue')['isReadonly']
27
+  const isRef: typeof import('vue')['isRef']
28
+  const mapActions: typeof import('pinia')['mapActions']
29
+  const mapGetters: typeof import('pinia')['mapGetters']
30
+  const mapState: typeof import('pinia')['mapState']
31
+  const mapStores: typeof import('pinia')['mapStores']
32
+  const mapWritableState: typeof import('pinia')['mapWritableState']
33
+  const markRaw: typeof import('vue')['markRaw']
34
+  const nextTick: typeof import('vue')['nextTick']
35
+  const onActivated: typeof import('vue')['onActivated']
36
+  const onAddToFavorites: typeof import('@dcloudio/uni-app')['onAddToFavorites']
37
+  const onBackPress: typeof import('@dcloudio/uni-app')['onBackPress']
38
+  const onBeforeMount: typeof import('vue')['onBeforeMount']
39
+  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
40
+  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
41
+  const onDeactivated: typeof import('vue')['onDeactivated']
42
+  const onError: typeof import('@dcloudio/uni-app')['onError']
43
+  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
44
+  const onHide: typeof import('@dcloudio/uni-app')['onHide']
45
+  const onLaunch: typeof import('@dcloudio/uni-app')['onLaunch']
46
+  const onLoad: typeof import('@dcloudio/uni-app')['onLoad']
47
+  const onMounted: typeof import('vue')['onMounted']
48
+  const onNavigationBarButtonTap: typeof import('@dcloudio/uni-app')['onNavigationBarButtonTap']
49
+  const onNavigationBarSearchInputChanged: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputChanged']
50
+  const onNavigationBarSearchInputClicked: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputClicked']
51
+  const onNavigationBarSearchInputConfirmed: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputConfirmed']
52
+  const onNavigationBarSearchInputFocusChanged: typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputFocusChanged']
53
+  const onPageNotFound: typeof import('@dcloudio/uni-app')['onPageNotFound']
54
+  const onPageScroll: typeof import('@dcloudio/uni-app')['onPageScroll']
55
+  const onPullDownRefresh: typeof import('@dcloudio/uni-app')['onPullDownRefresh']
56
+  const onReachBottom: typeof import('@dcloudio/uni-app')['onReachBottom']
57
+  const onReady: typeof import('@dcloudio/uni-app')['onReady']
58
+  const onRenderTracked: typeof import('vue')['onRenderTracked']
59
+  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
60
+  const onResize: typeof import('@dcloudio/uni-app')['onResize']
61
+  const onScopeDispose: typeof import('vue')['onScopeDispose']
62
+  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
63
+  const onShareAppMessage: typeof import('@dcloudio/uni-app')['onShareAppMessage']
64
+  const onShareTimeline: typeof import('@dcloudio/uni-app')['onShareTimeline']
65
+  const onShow: typeof import('@dcloudio/uni-app')['onShow']
66
+  const onTabItemTap: typeof import('@dcloudio/uni-app')['onTabItemTap']
67
+  const onThemeChange: typeof import('@dcloudio/uni-app')['onThemeChange']
68
+  const onUnhandledRejection: typeof import('@dcloudio/uni-app')['onUnhandledRejection']
69
+  const onUnload: typeof import('@dcloudio/uni-app')['onUnload']
70
+  const onUnmounted: typeof import('vue')['onUnmounted']
71
+  const onUpdated: typeof import('vue')['onUpdated']
72
+  const provide: typeof import('vue')['provide']
73
+  const reactive: typeof import('vue')['reactive']
74
+  const readonly: typeof import('vue')['readonly']
75
+  const ref: typeof import('vue')['ref']
76
+  const resolveComponent: typeof import('vue')['resolveComponent']
77
+  const setActivePinia: typeof import('pinia')['setActivePinia']
78
+  const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
79
+  const shallowReactive: typeof import('vue')['shallowReactive']
80
+  const shallowReadonly: typeof import('vue')['shallowReadonly']
81
+  const shallowRef: typeof import('vue')['shallowRef']
82
+  const storeToRefs: typeof import('pinia')['storeToRefs']
83
+  const toRaw: typeof import('vue')['toRaw']
84
+  const toRef: typeof import('vue')['toRef']
85
+  const toRefs: typeof import('vue')['toRefs']
86
+  const toValue: typeof import('vue')['toValue']
87
+  const triggerRef: typeof import('vue')['triggerRef']
88
+  const unref: typeof import('vue')['unref']
89
+  const useAddressStore: typeof import('./stores/addressStore')['useAddressStore']
90
+  const useAppStore: typeof import('./stores/app')['useAppStore']
91
+  const useAppStoreWidthOut: typeof import('./stores/app')['useAppStoreWidthOut']
92
+  const useAttrs: typeof import('vue')['useAttrs']
93
+  const useCssModule: typeof import('vue')['useCssModule']
94
+  const useCssVars: typeof import('vue')['useCssVars']
95
+  const useCustomClassProp: typeof import('./composables/useProps')['useCustomClassProp']
96
+  const useCustomStyleProp: typeof import('./composables/useProps')['useCustomStyleProp']
97
+  const useDacangStore: typeof import('./stores/dacangStore')['useDacangStore']
98
+  const useDirectionProp: typeof import('./composables/useProps')['useDirectionProp']
99
+  const usePageStore: typeof import('./stores/page')['usePageStore']
100
+  const usePageStoreWidthOut: typeof import('./stores/page')['usePageStoreWidthOut']
101
+  const useSizeProp: typeof import('./composables/useProps')['useSizeProp']
102
+  const useSlots: typeof import('vue')['useSlots']
103
+  const useTypeProp: typeof import('./composables/useProps')['useTypeProp']
104
+  const useUserStore: typeof import('./stores/userStore')['useUserStore']
105
+  const useVariantProp: typeof import('./composables/useProps')['useVariantProp']
106
+  const watch: typeof import('vue')['watch']
107
+  const watchEffect: typeof import('vue')['watchEffect']
108
+  const watchPostEffect: typeof import('vue')['watchPostEffect']
109
+  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
110
+}
111
+// for type re-export
112
+declare global {
113
+  // @ts-ignore
114
+  export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue'
115
+}
116
+// for vue template auto import
117
+import { UnwrapRef } from 'vue'
118
+declare module 'vue' {
119
+  interface ComponentCustomProperties {
120
+    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
121
+    readonly PositionProp: UnwrapRef<typeof import('./composables/useProps')['PositionProp']>
122
+    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
123
+    readonly computed: UnwrapRef<typeof import('vue')['computed']>
124
+    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
125
+    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
126
+    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
127
+    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
128
+    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
129
+    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
130
+    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
131
+    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
132
+    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
133
+    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
134
+    readonly h: UnwrapRef<typeof import('vue')['h']>
135
+    readonly inject: UnwrapRef<typeof import('vue')['inject']>
136
+    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
137
+    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
138
+    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
139
+    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
140
+    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
141
+    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
142
+    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
143
+    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
144
+    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
145
+    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
146
+    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
147
+    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
148
+    readonly onAddToFavorites: UnwrapRef<typeof import('@dcloudio/uni-app')['onAddToFavorites']>
149
+    readonly onBackPress: UnwrapRef<typeof import('@dcloudio/uni-app')['onBackPress']>
150
+    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
151
+    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
152
+    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
153
+    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
154
+    readonly onError: UnwrapRef<typeof import('@dcloudio/uni-app')['onError']>
155
+    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
156
+    readonly onHide: UnwrapRef<typeof import('@dcloudio/uni-app')['onHide']>
157
+    readonly onLaunch: UnwrapRef<typeof import('@dcloudio/uni-app')['onLaunch']>
158
+    readonly onLoad: UnwrapRef<typeof import('@dcloudio/uni-app')['onLoad']>
159
+    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
160
+    readonly onNavigationBarButtonTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarButtonTap']>
161
+    readonly onNavigationBarSearchInputChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputChanged']>
162
+    readonly onNavigationBarSearchInputClicked: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputClicked']>
163
+    readonly onNavigationBarSearchInputConfirmed: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputConfirmed']>
164
+    readonly onNavigationBarSearchInputFocusChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputFocusChanged']>
165
+    readonly onPageNotFound: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageNotFound']>
166
+    readonly onPageScroll: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageScroll']>
167
+    readonly onPullDownRefresh: UnwrapRef<typeof import('@dcloudio/uni-app')['onPullDownRefresh']>
168
+    readonly onReachBottom: UnwrapRef<typeof import('@dcloudio/uni-app')['onReachBottom']>
169
+    readonly onReady: UnwrapRef<typeof import('@dcloudio/uni-app')['onReady']>
170
+    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
171
+    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
172
+    readonly onResize: UnwrapRef<typeof import('@dcloudio/uni-app')['onResize']>
173
+    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
174
+    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
175
+    readonly onShareAppMessage: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareAppMessage']>
176
+    readonly onShareTimeline: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareTimeline']>
177
+    readonly onShow: UnwrapRef<typeof import('@dcloudio/uni-app')['onShow']>
178
+    readonly onTabItemTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onTabItemTap']>
179
+    readonly onThemeChange: UnwrapRef<typeof import('@dcloudio/uni-app')['onThemeChange']>
180
+    readonly onUnhandledRejection: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnhandledRejection']>
181
+    readonly onUnload: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnload']>
182
+    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
183
+    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
184
+    readonly provide: UnwrapRef<typeof import('vue')['provide']>
185
+    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
186
+    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
187
+    readonly ref: UnwrapRef<typeof import('vue')['ref']>
188
+    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
189
+    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
190
+    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
191
+    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
192
+    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
193
+    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
194
+    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
195
+    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
196
+    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
197
+    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
198
+    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
199
+    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
200
+    readonly unref: UnwrapRef<typeof import('vue')['unref']>
201
+    readonly useAddressStore: UnwrapRef<typeof import('./stores/addressStore')['useAddressStore']>
202
+    readonly useAppStore: UnwrapRef<typeof import('./stores/app')['useAppStore']>
203
+    readonly useAppStoreWidthOut: UnwrapRef<typeof import('./stores/app')['useAppStoreWidthOut']>
204
+    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
205
+    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
206
+    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
207
+    readonly useCustomClassProp: UnwrapRef<typeof import('./composables/useProps')['useCustomClassProp']>
208
+    readonly useCustomStyleProp: UnwrapRef<typeof import('./composables/useProps')['useCustomStyleProp']>
209
+    readonly useDacangStore: UnwrapRef<typeof import('./stores/dacangStore')['useDacangStore']>
210
+    readonly useDirectionProp: UnwrapRef<typeof import('./composables/useProps')['useDirectionProp']>
211
+    readonly usePageStore: UnwrapRef<typeof import('./stores/page')['usePageStore']>
212
+    readonly usePageStoreWidthOut: UnwrapRef<typeof import('./stores/page')['usePageStoreWidthOut']>
213
+    readonly useSizeProp: UnwrapRef<typeof import('./composables/useProps')['useSizeProp']>
214
+    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
215
+    readonly useTypeProp: UnwrapRef<typeof import('./composables/useProps')['useTypeProp']>
216
+    readonly useUserStore: UnwrapRef<typeof import('./stores/userStore')['useUserStore']>
217
+    readonly useVariantProp: UnwrapRef<typeof import('./composables/useProps')['useVariantProp']>
218
+    readonly watch: UnwrapRef<typeof import('vue')['watch']>
219
+    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
220
+    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
221
+    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
222
+  }
223
+}
224
+declare module '@vue/runtime-core' {
225
+  interface ComponentCustomProperties {
226
+    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
227
+    readonly PositionProp: UnwrapRef<typeof import('./composables/useProps')['PositionProp']>
228
+    readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
229
+    readonly computed: UnwrapRef<typeof import('vue')['computed']>
230
+    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
231
+    readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
232
+    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
233
+    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
234
+    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
235
+    readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
236
+    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
237
+    readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
238
+    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
239
+    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
240
+    readonly h: UnwrapRef<typeof import('vue')['h']>
241
+    readonly inject: UnwrapRef<typeof import('vue')['inject']>
242
+    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
243
+    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
244
+    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
245
+    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
246
+    readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
247
+    readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
248
+    readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
249
+    readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
250
+    readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
251
+    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
252
+    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
253
+    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
254
+    readonly onAddToFavorites: UnwrapRef<typeof import('@dcloudio/uni-app')['onAddToFavorites']>
255
+    readonly onBackPress: UnwrapRef<typeof import('@dcloudio/uni-app')['onBackPress']>
256
+    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
257
+    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
258
+    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
259
+    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
260
+    readonly onError: UnwrapRef<typeof import('@dcloudio/uni-app')['onError']>
261
+    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
262
+    readonly onHide: UnwrapRef<typeof import('@dcloudio/uni-app')['onHide']>
263
+    readonly onLaunch: UnwrapRef<typeof import('@dcloudio/uni-app')['onLaunch']>
264
+    readonly onLoad: UnwrapRef<typeof import('@dcloudio/uni-app')['onLoad']>
265
+    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
266
+    readonly onNavigationBarButtonTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarButtonTap']>
267
+    readonly onNavigationBarSearchInputChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputChanged']>
268
+    readonly onNavigationBarSearchInputClicked: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputClicked']>
269
+    readonly onNavigationBarSearchInputConfirmed: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputConfirmed']>
270
+    readonly onNavigationBarSearchInputFocusChanged: UnwrapRef<typeof import('@dcloudio/uni-app')['onNavigationBarSearchInputFocusChanged']>
271
+    readonly onPageNotFound: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageNotFound']>
272
+    readonly onPageScroll: UnwrapRef<typeof import('@dcloudio/uni-app')['onPageScroll']>
273
+    readonly onPullDownRefresh: UnwrapRef<typeof import('@dcloudio/uni-app')['onPullDownRefresh']>
274
+    readonly onReachBottom: UnwrapRef<typeof import('@dcloudio/uni-app')['onReachBottom']>
275
+    readonly onReady: UnwrapRef<typeof import('@dcloudio/uni-app')['onReady']>
276
+    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
277
+    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
278
+    readonly onResize: UnwrapRef<typeof import('@dcloudio/uni-app')['onResize']>
279
+    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
280
+    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
281
+    readonly onShareAppMessage: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareAppMessage']>
282
+    readonly onShareTimeline: UnwrapRef<typeof import('@dcloudio/uni-app')['onShareTimeline']>
283
+    readonly onShow: UnwrapRef<typeof import('@dcloudio/uni-app')['onShow']>
284
+    readonly onTabItemTap: UnwrapRef<typeof import('@dcloudio/uni-app')['onTabItemTap']>
285
+    readonly onThemeChange: UnwrapRef<typeof import('@dcloudio/uni-app')['onThemeChange']>
286
+    readonly onUnhandledRejection: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnhandledRejection']>
287
+    readonly onUnload: UnwrapRef<typeof import('@dcloudio/uni-app')['onUnload']>
288
+    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
289
+    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
290
+    readonly provide: UnwrapRef<typeof import('vue')['provide']>
291
+    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
292
+    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
293
+    readonly ref: UnwrapRef<typeof import('vue')['ref']>
294
+    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
295
+    readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
296
+    readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
297
+    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
298
+    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
299
+    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
300
+    readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
301
+    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
302
+    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
303
+    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
304
+    readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
305
+    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
306
+    readonly unref: UnwrapRef<typeof import('vue')['unref']>
307
+    readonly useAddressStore: UnwrapRef<typeof import('./stores/addressStore')['useAddressStore']>
308
+    readonly useAppStore: UnwrapRef<typeof import('./stores/app')['useAppStore']>
309
+    readonly useAppStoreWidthOut: UnwrapRef<typeof import('./stores/app')['useAppStoreWidthOut']>
310
+    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
311
+    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
312
+    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
313
+    readonly useCustomClassProp: UnwrapRef<typeof import('./composables/useProps')['useCustomClassProp']>
314
+    readonly useCustomStyleProp: UnwrapRef<typeof import('./composables/useProps')['useCustomStyleProp']>
315
+    readonly useDacangStore: UnwrapRef<typeof import('./stores/dacangStore')['useDacangStore']>
316
+    readonly useDirectionProp: UnwrapRef<typeof import('./composables/useProps')['useDirectionProp']>
317
+    readonly usePageStore: UnwrapRef<typeof import('./stores/page')['usePageStore']>
318
+    readonly usePageStoreWidthOut: UnwrapRef<typeof import('./stores/page')['usePageStoreWidthOut']>
319
+    readonly useSizeProp: UnwrapRef<typeof import('./composables/useProps')['useSizeProp']>
320
+    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
321
+    readonly useTypeProp: UnwrapRef<typeof import('./composables/useProps')['useTypeProp']>
322
+    readonly useUserStore: UnwrapRef<typeof import('./stores/userStore')['useUserStore']>
323
+    readonly useVariantProp: UnwrapRef<typeof import('./composables/useProps')['useVariantProp']>
324
+    readonly watch: UnwrapRef<typeof import('vue')['watch']>
325
+    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
326
+    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
327
+    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
328
+  }
329
+}

+ 13 - 0
src/components.d.ts

@@ -0,0 +1,13 @@
1
+/* eslint-disable */
2
+/* prettier-ignore */
3
+// @ts-nocheck
4
+// Generated by unplugin-vue-components
5
+// Read more: https://github.com/vuejs/core/pull/3399
6
+export {}
7
+
8
+declare module 'vue' {
9
+  export interface GlobalComponents {
10
+    RouterLink: typeof import('vue-router')['RouterLink']
11
+    RouterView: typeof import('vue-router')['RouterView']
12
+  }
13
+}

+ 106 - 0
src/components/CXBAuthorize/CXBAuthorize.vue

@@ -0,0 +1,106 @@
1
+<template>
2
+  <view>
3
+    <view class='Popup' v-if='isShowAuth'>
4
+      <view class="logo-auth">
5
+        <image :src='logoUrl' mode="aspectFit"></image>
6
+      </view>
7
+      <view class='title'>授权提醒</view>
8
+      <view class='tip'>请授权头像等信息,以便为您提供更好的服务</view>
9
+      <view class='bottom flex'>
10
+        <view class='item' @click='close'>随便逛逛</view>
11
+        <!--  #ifdef APP-PLUS
12
+          <button class='item grant' @click="setUserInfo">去授权</button>
13
+        #endif -->
14
+        <!-- #ifdef MP -->
15
+        <button class='item grant'  type="primary" open-type="getUserInfo" lang="zh_CN" @getuserinfo="setUserInfo">去授权</button>
16
+        <!-- #endif -->
17
+      </view>
18
+    </view>
19
+    <view class='mask' v-if='isShowAuth' @click='close'></view>
20
+  </view>
21
+</template>
22
+
23
+<script lang="ts" setup>
24
+import Routine from "~/libs/routine";
25
+import {useUserStore} from "~/stores/userStore";
26
+import {useLoading} from "@uni-helper/uni-use";
27
+
28
+const app: any = getApp();
29
+const emit = defineEmits<{
30
+  (e: 'loadFun', value: any): void,
31
+  (e: 'authClose', value: boolean): void
32
+}>()
33
+const props = defineProps({
34
+  isAuto: {
35
+    type: Boolean,
36
+    default: true
37
+  },
38
+  isGoIndex: {
39
+    type: Boolean,
40
+    default: true
41
+  },
42
+  isShowAuth: {
43
+    type: Boolean,
44
+    default: false
45
+  }
46
+})
47
+const userStore = useUserStore()
48
+
49
+// onMounted(() => {
50
+// })
51
+const setAuthStatus = () => {
52
+  Routine.authorize().then(res => {
53
+    // console.log(res)
54
+    if (res.isLogin == false) {
55
+      // 去登录
56
+      uni.navigateTo({
57
+        url: '/pages/user/login/index?key=3'
58
+      })
59
+      setUserInfo()
60
+    }
61
+    // if (res.isLogin === false) {
62
+    //   setUserInfo()
63
+    // }
64
+    //   if(res.islogin === false)
65
+    //     this.setUserInfo();
66
+    //   else
67
+    //     this.$emit('onLoadFun',this.userInfo);
68
+    // }).catch(res=>{
69
+    //   if (this.isAuto)
70
+    //     this.$emit('authColse',true);
71
+    // })
72
+  })
73
+}
74
+
75
+setAuthStatus()
76
+
77
+
78
+const setUserInfo = () => {
79
+  // useLoading({
80
+  //   title: '正在登录中'
81
+  // })
82
+  // uni.showLoading({
83
+  //   title: '正在登录中'
84
+  // })
85
+  Routine.getCode().then( (code: string) => {
86
+    getUserInfo(code)
87
+  }).catch( res => {
88
+    uni.hideLoading()
89
+  })
90
+}
91
+
92
+const getUserInfo = (code: string) => {
93
+  Routine.getUserInfo().then((res: any) => {
94
+    let userInfo = res.userInfo
95
+    userInfo.code = code;
96
+    userInfo.spread_spid = app.globalData.spid;//获取推广人ID
97
+    userInfo.spread_code = app.globalData.code;//获取推广人分享二维码ID
98
+
99
+    Routine.authUserInfo(userInfo).then(res => {
100
+      uni.hideLoading()
101
+      emit('authClose', false)
102
+      emit('loadFun', userInfo)
103
+    })
104
+  })
105
+}
106
+</script>

+ 74 - 0
src/components/CXBBackTop/CXBBackTop.vue

@@ -0,0 +1,74 @@
1
+<template>
2
+<div v-show="flag" class="backtop1" v-if="isShow" >
3
+  <img @click="scrollToTop" class="backTopImg" src="../../static/icon/返回顶部@2x.png" alt="">
4
+</div>
5
+<div v-show="flag" class="backtop2" v-else >
6
+  <img @click="scrollToTop" class="backTopImg" src="../../static/icon/返回顶部@2x.png" alt="">
7
+</div>
8
+</template>
9
+
10
+<script setup lang='ts'>
11
+import { ref, reactive ,defineProps} from 'vue'
12
+
13
+let flag = ref(false)
14
+let isShow = ref(true)
15
+
16
+const props = defineProps({
17
+  Scroll_X: Number,
18
+  isCss:Number
19
+})
20
+
21
+watch(()=>props.Scroll_X,()=>{
22
+  if(props.Scroll_X as number > 400){
23
+    flag.value = true
24
+  }
25
+  if(props.Scroll_X as number < 400){
26
+    flag.value = false
27
+  }
28
+})
29
+watch(()=>props.isCss,()=>{
30
+  if(props.isCss as number ===1){
31
+    isShow.value = true
32
+  }
33
+  if(props.isCss as number ===2){
34
+    isShow.value = false
35
+  }
36
+},
37
+{immediate:true}
38
+)
39
+
40
+const scrollToTop = function () {
41
+  console.log('返回顶部');
42
+  
43
+    uni.pageScrollTo({
44
+        scrollTop: 0
45
+    });
46
+}
47
+
48
+</script>
49
+
50
+<style scoped>
51
+.backtop1{
52
+  width: 100rpx;
53
+  height: 100rpx;
54
+  position: fixed;
55
+  border-radius: 50%;
56
+  z-index: 999;
57
+  right: 1%;
58
+  bottom: 8%;
59
+}
60
+.backtop2{
61
+  width: 100rpx;
62
+  height: 100rpx;
63
+  position: fixed;
64
+  border-radius: 50%;
65
+  z-index: 999;
66
+  right: 1%;
67
+  bottom: 14%;
68
+}
69
+.backTopImg{
70
+  width: 100rpx;
71
+  height: 100rpx;
72
+  border-radius: 50%;
73
+}
74
+</style>

+ 11 - 0
src/components/CXBBanner/CXBBanner.vue

@@ -0,0 +1,11 @@
1
+<script lang="ts" setup>
2
+</script>
3
+<template>
4
+  <div class="flex flex-col justify-center items-center py-22">
5
+    <image
6
+        src="https://test.bjtdba.com/applet/static/home/404986b1e3aeaf4b3829efa2c2ac6bf.png"
7
+        mode="widthFix"
8
+        class="w-35 h-35"
9
+    ></image>
10
+  </div>
11
+</template>

+ 53 - 0
src/components/CXBBasePage/CXBBasePage.vue

@@ -0,0 +1,53 @@
1
+<script setup lang='ts'>
2
+import FPage from "~/components/FPage/FPage.vue";
3
+import FNavBar from "~/components/FNavBar/FNavBar.vue";
4
+
5
+defineProps({
6
+  show: {
7
+    type: Boolean,
8
+    default: false,
9
+  },
10
+  title: {
11
+    type: String,
12
+  },
13
+  backArrow: {
14
+    type: Boolean,
15
+    default: true,
16
+  },
17
+})
18
+
19
+const curPage = getCurrentPages().at(-1) as any
20
+
21
+// #ifdef H5
22
+if (window.parent !== window.self) {
23
+  window.parent.postMessage({
24
+    type: 'route',
25
+    data: curPage.route,
26
+  }, '*')
27
+}
28
+// #endif
29
+
30
+const titleText = curPage.$page?.meta?.navigationBar?.titleText || '标题'
31
+
32
+function onClickLeft() {
33
+  const pages = getCurrentPages()
34
+  if (pages.length > 1) {
35
+    uni.navigateBack()
36
+  }
37
+  else {
38
+    uni.redirectTo({
39
+      url: '/',
40
+    })
41
+  }
42
+}
43
+</script>
44
+
45
+<template>
46
+  <FPage ex-class="font-sans pb-10  inset-0 overflow-auto">
47
+    <FNavBar
48
+        v-if="show" :title="title ?? titleText" :left-arrow="backArrow" fixed placeholder z-index="999"
49
+        @click-left="onClickLeft"
50
+    />
51
+    <slot />
52
+  </FPage>
53
+</template>

+ 31 - 0
src/components/CXBButton/CXBButton.vue

@@ -0,0 +1,31 @@
1
+<template>
2
+  <FButton
3
+      :size="size"
4
+      :exClass="['rounded-full', 'text-white', classes]"
5
+  >
6
+    <slot />
7
+  </FButton>
8
+</template>
9
+<script setup lang="ts">
10
+import FButton from "~/components/FButton/FButton.vue";
11
+const props = defineProps({
12
+  type: {
13
+    type: String,
14
+    default: 'gradient'
15
+  },
16
+  size: {
17
+    type: String,
18
+    default: 'small',
19
+    required: true
20
+  }
21
+})
22
+
23
+const classes = computed(() => {
24
+  if (props.type === 'gradient') {
25
+    return [ 'bg-gradient-to-r', 'from-[#fe0032]', 'to-[#fe7577]']
26
+  }
27
+  if (props.type === 'fill') {
28
+    return ['bg-[#fe0032]', '!text-[10px]', 'min-w-13']
29
+  }
30
+})
31
+</script>

+ 282 - 0
src/components/CXBDialogSignIn/CXBDialogSIgnIn.vue

@@ -0,0 +1,282 @@
1
+<script setup lang="ts">
2
+import FOverlay from "~/components/FOverlay/FOverlay.vue";
3
+import SignRedPacket from "~/components/CXBDialogSignIn/SignRedPacket.vue";
4
+import SignInGiftBag from "~/components/CXBDialogSignIn/SignInGiftBag.vue";
5
+import {CLICK_EVENT, CLOSE_EVENT, CONFIRM_EVENT} from "~/constants/event";
6
+import {getNewSignIn} from "~/apis/user";
7
+import CXBDialogSIgnInSucceed from "~/components/CXBDialogSignInSucceed/CXBDialogSIgnInSucceed.vue";
8
+import {CDN_URL} from "~/config/app";
9
+
10
+const bgImage = CDN_URL + '/static/assets/sign_in_bg.png'
11
+const signInBtnImage = CDN_URL + '/static/assets/sign_in_button.png'
12
+const signInCloseImage = CDN_URL + '/static/assets/sign_in_close.png'
13
+
14
+const isShowOverlay = ref(true)
15
+
16
+const props = defineProps({
17
+  show: {
18
+    type: Boolean,
19
+    default: false
20
+  },
21
+  today: {
22
+    type: Number,
23
+    default: 0
24
+  },
25
+  day: {
26
+    type: Number,
27
+    default: 0
28
+  }
29
+})
30
+
31
+const show = ref(props.show || false)
32
+
33
+const showValue = computed(() => props.show || show.value)
34
+
35
+const signInSuccess = ref(false)
36
+
37
+const signInScore = ref(0)
38
+
39
+const emit = defineEmits({
40
+  [CLICK_EVENT]: (evt: MouseEvent) => evt instanceof Object,
41
+  [CLOSE_EVENT]: (evt: MouseEvent) => evt instanceof Object,
42
+  [CONFIRM_EVENT]: () => true,
43
+  // 'signIn': () => Boolean
44
+})
45
+
46
+// const integral
47
+function getScoreText(day: number) {
48
+  console.log(day)
49
+  let integral = 0
50
+  switch (day) {
51
+    case 0: {
52
+      // return getScoreText(2)
53
+      integral = 2
54
+      break;
55
+    }
56
+    case 1: {
57
+      integral = 4
58
+      break;
59
+    }
60
+    case 2: {
61
+      integral = 6
62
+      break;
63
+    }
64
+    case 3: {
65
+      integral = 10
66
+      break;
67
+    }
68
+    case 4: {
69
+      integral = 14
70
+      break;
71
+    }
72
+    case 5: {
73
+      integral = 20
74
+      break;
75
+    }
76
+    // 7
77
+    case 6: {
78
+      integral = 41
79
+      break;
80
+    }
81
+    case 7:
82
+    case 8:
83
+    case 9:
84
+    case 10:
85
+    case 11:
86
+    case 12:
87
+    case 14:
88
+    case 15:
89
+    case 16:
90
+    case 17:
91
+    case 18:
92
+    case 19:
93
+    case 22:
94
+    case 23:
95
+    case 24:
96
+    case 25:
97
+    case 26:
98
+    case 27:
99
+      case 28: {
100
+      integral = 3
101
+      break;
102
+    }
103
+    // 14
104
+    case 13: {
105
+      integral = 71
106
+      break;
107
+    }
108
+    // 21
109
+    case 20: {
110
+      integral = 131
111
+      break;
112
+    }
113
+    // 30
114
+    case 29: {
115
+      integral = 191
116
+    }
117
+  }
118
+  return `+${integral}积分`
119
+}
120
+
121
+const signInFor = computed(() => {
122
+  // if (props.today == 0) {
123
+  return getScoreText(props.day)
124
+  // }
125
+})
126
+
127
+function closeHandler(evt: MouseEvent) {
128
+  show.value = false
129
+  emit(CLOSE_EVENT, evt)
130
+}
131
+
132
+function confirmHandler(evt) {
133
+  show.value = false
134
+  emit(CLOSE_EVENT, evt)
135
+
136
+  // 执行签到
137
+  getNewSignIn().then(res => {
138
+    // res.score
139
+    if (res) {
140
+      signInScore.value = res.score
141
+      signInSuccess.value = true
142
+      uni.$emit('NEW_SIGN_IN_SUCCESS')
143
+    }
144
+  })
145
+  // emit(CONFIRM_EVENT)
146
+}
147
+
148
+function handleSignInSucceedClose() {
149
+  signInSuccess.value = false
150
+}
151
+</script>
152
+<template>
153
+  <FOverlay :show="showValue"
154
+            name="fade"
155
+  >
156
+    <div class="flex flex-col justify-center items-center h-full w-full gap-3">
157
+      <div class="signBg flex flex-col justify-around items-center pt-20">
158
+        <div class="flex flex-col gap-3 w-75 h-75 pt-3">
159
+          <div class="flex gap-2 justify-center items-center  p-2 ">
160
+            <template v-if="props.day > 0 && props.day <= 6">
161
+
162
+              <SignRedPacket
163
+                  v-for="item in props.day"
164
+                  :key="item"
165
+                  :day="item"
166
+                  :text="'已签'"
167
+              />
168
+
169
+            </template>
170
+            <template v-if="props.day > 0 && props.day > 6">
171
+
172
+              <SignRedPacket
173
+                  v-for="item in 6"
174
+                  :key="item"
175
+                  :day="item"
176
+                  :text="'已签'"
177
+              />
178
+
179
+            </template>
180
+            <template v-if="(6 - props.day) > 0">
181
+
182
+              <SignRedPacket
183
+                  v-for="item in (6 - props.day)"
184
+                  :key="item"
185
+                  :day="item + props.day"
186
+              />
187
+            </template>
188
+          </div>
189
+          <div class=" flex mb-4 flex-col">
190
+              <tempalte v-if="props.day in [7, 14, 21, 30] && props.day > 6">
191
+                <SignInGiftBag
192
+                    v-if="props.day == 7"
193
+                    :day="7"
194
+                    :text="'已签'"
195
+                />
196
+                <SignInGiftBag
197
+                    v-else-if="props.day == 14"
198
+                    :day="props.day"
199
+                    :text="'已签'"
200
+                />
201
+                <SignInGiftBag
202
+                    v-else-if="props.day == 21"
203
+                    :day="props.day"
204
+                    :text="'已签'"
205
+                />
206
+                <SignInGiftBag
207
+                    v-else-if="props.day == 30"
208
+                    :day="props.day"
209
+                    :text="'已签'"
210
+                />
211
+              </tempalte>
212
+              <div class="flex-1 flex  items-center gap-3 justify-center">
213
+                <SignInGiftBag
214
+                    v-for="item in [7, 14, 21, 30].filter((val) => val != props.day)"
215
+                    :key="item"
216
+                    :day="item"
217
+                />
218
+              </div>
219
+
220
+          </div>
221
+
222
+          <div
223
+              v-if="props.today == 0"
224
+              @click.stop="confirmHandler"
225
+              class=" flex justify-center items-center w-full">
226
+<!--            <image :src="signInBtnImage" mode="widthFix"-->
227
+<!--                   class="absolute w-45 h-30"></image>-->
228
+            <div class="signButtonBg flex justify-center text-center text-white ">
229
+              <div class="mt--2 flex items-center text-center">
230
+                <div>立即签到</div>
231
+                <div class="text-[#ffe980]">{{ signInFor }}</div>
232
+              </div>
233
+
234
+            </div>
235
+          </div>
236
+          <div v-else
237
+               class=" h-10 w-full flex items-center justify-center">
238
+            <div class="rounded-full bg-gray-400 w-fit  text-white py-2 px-4  text-center">
239
+                明日再来签到吧
240
+            </div>
241
+
242
+
243
+          </div>
244
+        </div>
245
+
246
+      </div>
247
+      <div
248
+          @click.stop="closeHandler"
249
+          class=" bottom-30 flex justify-center items-center"
250
+      >
251
+        <image :src="signInCloseImage" class="h-8 w-8"></image>
252
+      </div>
253
+    </div>
254
+<!--    <div class="bg  flex flex-col justify-center items-center h-full w-full relative ">-->
255
+<!--      <image :src="bgImage" mode="widthFix"-->
256
+<!--             class="absolute "-->
257
+<!--      ></image>-->
258
+
259
+<!--    </div>-->
260
+
261
+  </FOverlay>
262
+  <CXBDialogSIgnInSucceed
263
+      :score="signInScore + ''"
264
+      :show="signInSuccess"
265
+      @close="handleSignInSucceedClose"
266
+  />
267
+
268
+</template>
269
+
270
+<style>
271
+.signButtonBg {
272
+  width: 435rpx;
273
+  height: 124rpx;
274
+  background-image: url('https://cdn.bjtdba.com/chuxubao/static/assets/sign_in_button.png');
275
+  background-size: 100% 100%;
276
+}
277
+.signBg {
278
+  width: 638rpx;
279
+  background-image: url('https://cdn.bjtdba.com/chuxubao/static/assets/sign_in_bg.png');
280
+  background-size: 100% 100%;
281
+}
282
+</style>

+ 69 - 0
src/components/CXBDialogSignIn/SignInGiftBag.vue

@@ -0,0 +1,69 @@
1
+<script setup lang="ts">
2
+import {CDN_URL} from "~/config/app";
3
+
4
+const bgGiftImg = CDN_URL + '/static/assets/sign_in_gift_bag.png'
5
+const bgTrophyImg = CDN_URL + '/static/assets/sign_in_trophy.png'
6
+
7
+const bgImg = computed(() => {
8
+  if (props.day !== 30) {
9
+    return bgGiftImg
10
+  }
11
+  return bgTrophyImg
12
+})
13
+const props = defineProps({
14
+  integral: {
15
+    type: Number,
16
+    default: 0
17
+  },
18
+  day: {
19
+    type: Number,
20
+    required: true
21
+  },
22
+  text: {
23
+    type: String,
24
+  }
25
+})
26
+const cIntegral = computed(() => {
27
+  if (props.integral) return props.integral
28
+  let integral = 0;
29
+  switch (props.day) {
30
+    case 7: {
31
+      integral = 38
32
+      break;
33
+    }
34
+    case 14: {
35
+      integral = 68
36
+      break;
37
+    }
38
+    case 21: {
39
+      integral = 128
40
+      break;
41
+    }
42
+    case 30: {
43
+      integral = 188
44
+      break;
45
+    }
46
+  }
47
+  return integral
48
+})
49
+</script>
50
+<template>
51
+  <div class="flex ">
52
+    <div class="flex flex-col items-center">
53
+      <div class=" flex flex-col  items-center text-primary text-xs">
54
+        <div class="!bg-white p-2 relative rounded-t">
55
+          <image :src="bgImg"
56
+                 mode="widthFix"
57
+                 class="relative w-10 h-10"
58
+          ></image>
59
+        </div>
60
+
61
+        <div class="relative text-[11px] mb-1 bg-[#feeae9] w-full rounded-b text-center">+{{ cIntegral }}</div>
62
+      </div>
63
+<!--      <div class="relative text-[10px]">第 {{day}} 天</div>-->
64
+      <div class="relative text-[10px]" v-if="text"> {{ text}} </div>
65
+      <div class="relative text-[10px]" v-else> 第 {{ day }} 天</div>
66
+    </div>
67
+  </div>
68
+
69
+</template>

+ 60 - 0
src/components/CXBDialogSignIn/SignRedPacket.vue

@@ -0,0 +1,60 @@
1
+<script setup lang="ts">
2
+import {CDN_URL} from "~/config/app";
3
+
4
+const signInRedPacketImage = CDN_URL + 'https://cdn.bjtdba.com/chuxubao/static/assets/sign_in_red_packet.png'
5
+const props = defineProps({
6
+  day: {
7
+    type: Number,
8
+    required: true
9
+  },
10
+  text: {
11
+    type: String,
12
+  }
13
+})
14
+
15
+const getScore =computed(() => {
16
+  if (props.day == 1) {
17
+    return '+2'
18
+  } else if (props.day == 2) {
19
+    return '+4'
20
+  } else if (props.day == 3) {
21
+    return '+6'
22
+  } else if (props.day == 4) {
23
+    return '+10'
24
+  } else if (props.day == 5) {
25
+    return '+14'
26
+  } else if (props.day == 6) {
27
+    return '+20'
28
+  }
29
+})
30
+</script>
31
+<template>
32
+   <div class=" flex flex-col   items-center  text-xs gap-2" >
33
+        <div class=" flex flex-col items-center justify-end "
34
+             :class="[text ? 'activeBg' : 'defaultBg', 'h-29 w-20']"
35
+        >
36
+          <div class="text-[11px] text-white mb-1">{{ getScore }}</div>
37
+        </div>
38
+        <div>
39
+          <div class="relative text-[10px]" v-if="text"> {{ text}} </div>
40
+          <div class="relative text-[10px]" v-else> 第 {{ day }} 天</div>
41
+        </div>
42
+
43
+      </div>
44
+
45
+</template>
46
+
47
+<style>
48
+.defaultBg {
49
+  width: 80rpx;
50
+  height: 116rpx;
51
+  background-image: url('https://cdn.bjtdba.com/chuxubao/static/assets/sign_in_red_packet.png');
52
+  background-size: 100% 100%;
53
+}
54
+.activeBg {
55
+  width: 80rpx;
56
+  height: 116rpx;
57
+  background-image: url('https://cdn.bjtdba.com/chuxubao/static/assets/hb_yiqiandao_220908.png');
58
+  background-size: 100% 100%;
59
+}
60
+</style>

+ 65 - 0
src/components/CXBDialogSignInSucceed/CXBDialogSIgnInSucceed.vue

@@ -0,0 +1,65 @@
1
+<script setup lang="ts">
2
+import FOverlay from "~/components/FOverlay/FOverlay.vue";
3
+import FButton from "~/components/FButton/FButton.vue";
4
+import {CLICK_EVENT, CLOSE_EVENT} from "~/constants/event";
5
+import {CDN_URL} from "~/config/app";
6
+
7
+const bgImage = CDN_URL + '/static/assets/signin_succeed_dialog_bg.png'
8
+const signInCloseImage = CDN_URL + '/static/assets/sign_in_close.png'
9
+
10
+const props = defineProps({
11
+  show: {
12
+    type: Boolean
13
+  },
14
+  score: {
15
+    type: String,
16
+    default: 2
17
+  }
18
+})
19
+const show = ref(props.show || false)
20
+
21
+const showValue = computed(() => props.show || show.value)
22
+
23
+// const isShowOverlay = ref(true)
24
+const emit = defineEmits({
25
+  [CLICK_EVENT]: (evt: MouseEvent) => evt instanceof Object,
26
+  [CLOSE_EVENT]: (evt: MouseEvent) => evt instanceof Object
27
+})
28
+
29
+function closeHandler(evt: MouseEvent) {
30
+  show.value = false
31
+  emit(CLOSE_EVENT, evt)
32
+}
33
+</script>
34
+<template>
35
+  <FOverlay :show="showValue"
36
+            name="fade"
37
+  >
38
+    <div class="flex flex-col justify-center items-center w-full h-full gap-6">
39
+      <div class="relative bg-gradient-to-b from-[#ffffff] to-[#fff6d5]  rounded w-70 h-45 flex flex-col justify-center  items-center">
40
+        <image :src="bgImage" mode="widthFix"
41
+               class="absolute w-30 top--12"
42
+        ></image>
43
+        <div class="text-[#854a1b]">
44
+          恭喜获得积分 +{{score}}
45
+        </div>
46
+        <div class="pb-5 absolute bottom-0">
47
+          <FButton
48
+              size="small"
49
+              :exClass="['rounded-lg', 'text-white','bg-[#fe0032]', 'w-40']"
50
+              @click.stop="closeHandler"
51
+          >
52
+            我知道了
53
+          </FButton>
54
+        </div>
55
+
56
+      </div>
57
+
58
+      <div class="relative flex justify-center items-center" @click.stop="closeHandler">
59
+        <image :src="signInCloseImage" class="h-8 w-8"></image>
60
+      </div>
61
+    </div>
62
+
63
+  </FOverlay>
64
+
65
+</template>

+ 64 - 0
src/components/CXBDialogSignInSucceed/SignInGiftBag.vue

@@ -0,0 +1,64 @@
1
+<script setup lang="ts">
2
+import {CDN_URL} from "~/config/app";
3
+
4
+const bgGiftImg = CDN_URL + '/static/assets/sign_in_gift_bag.png'
5
+const bgTrophyImg = CDN_URL + '/static/assets/sign_in_trophy.png'
6
+
7
+const bgImg = computed(() => {
8
+  if (props.day !== 30) {
9
+    return bgGiftImg
10
+  }
11
+  return bgTrophyImg
12
+})
13
+const props = defineProps({
14
+  integral: {
15
+    type: Number,
16
+    default: 0
17
+  },
18
+  day: {
19
+    type: Number,
20
+    required: true
21
+  }
22
+})
23
+const cIntegral = computed(() => {
24
+  if (props.integral) return props.integral
25
+  let integral = 0;
26
+  switch (props.day) {
27
+    case 7: {
28
+      integral = 38
29
+      break;
30
+    }
31
+    case 14: {
32
+      integral = 68
33
+      break;
34
+    }
35
+    case 21: {
36
+      integral = 128
37
+      break;
38
+    }
39
+    case 30: {
40
+      integral = 188
41
+      break;
42
+    }
43
+  }
44
+  return integral
45
+})
46
+</script>
47
+<template>
48
+  <div class="flex">
49
+    <div class="flex flex-col items-center">
50
+      <div class=" flex flex-col  items-center text-primary text-xs">
51
+        <div class="!bg-white p-2 relative rounded-t">
52
+          <image :src="bgImg"
53
+                 mode="widthFix"
54
+                 class="relative w-10"
55
+          ></image>
56
+        </div>
57
+
58
+        <div class="relative text-[11px] mb-1 bg-[#feeae9] w-full rounded-b text-center">+{{ cIntegral }}</div>
59
+      </div>
60
+      <div class="relative text-[10px]">第 {{day}} 天</div>
61
+    </div>
62
+  </div>
63
+
64
+</template>

+ 26 - 0
src/components/CXBDialogSignInSucceed/SignRedPacket.vue

@@ -0,0 +1,26 @@
1
+<script setup lang="ts">
2
+import {CDN_URL} from "~/config/app";
3
+
4
+const signInRedPacketImage = CDN_URL + '/static/assets/sign_in_red_packet.png'
5
+const props = defineProps({
6
+  day: {
7
+    type: Number,
8
+    required: true
9
+  }
10
+})
11
+</script>
12
+<template>
13
+  <div class="flex ">
14
+    <div class="flex flex-col gap-1">
15
+      <div class="relative flex flex-col h-13 w-full justify-end items-center text-white text-xs">
16
+        <image :src="signInRedPacketImage"
17
+               mode="widthFix"
18
+               class="absolute w-9 h-10"
19
+        ></image>
20
+        <div class="relative text-[11px] mb-1">+2</div>
21
+      </div>
22
+      <div class="relative text-[10px]">第 {{ props.day }} 天</div>
23
+    </div>
24
+  </div>
25
+
26
+</template>

+ 51 - 0
src/components/CXBDyLive/CXBDyLiveRecommend.vue

@@ -0,0 +1,51 @@
1
+<script setup lang="ts">
2
+import FCell from "~/components/FCell/FCell.vue";
3
+import type {PropType} from "vue";
4
+import type {DyLiveModel} from "~/apis/model/product.model";
5
+import {encodeBase64} from "~/utils/http/helper";
6
+
7
+const props = defineProps({
8
+  list: {
9
+    type: Array as PropType<Array<DyLiveModel>>,
10
+    required: true
11
+  }
12
+})
13
+function handleItemClick(item: DyLiveModel) {
14
+  uni.navigateTo({
15
+    url: `/pages/store/product/dy-live-product-list?data=${encodeBase64(item)}`
16
+  })
17
+}
18
+</script>
19
+<template>
20
+  <div>
21
+    <FCell
22
+        @click="$emit('titleClick')"
23
+        title="抖音热门直播"
24
+           value="查看更多"
25
+           titleClass="font-bold"
26
+           valueClass="text-sm"
27
+           exClass="!f-bg"
28
+           arrow
29
+    >
30
+    </FCell>
31
+    <scroll-view
32
+        class="flex flex-row w-full gap-2 overflow-x whitespace-nowrap w-screen"
33
+        :scroll-with-animation="true"
34
+        :scroll-x="true"
35
+    >
36
+      <div v-for="(item,index) in list" :key="index"
37
+           @tap="handleItemClick(item)"
38
+           class="flex inline-flex pl-2 items-center justify-center"
39
+      >
40
+        <div class=" relative">
41
+          <div class="bg-primary absolute top-0 left-0 w-6 h-6  rounded-br-md rounded-tl-md flex flex-col justify-center items-center">
42
+            <image src="/static/icon/playing.gif" mode="widthFIx" class="w-3 h-3"></image>
43
+
44
+          </div>
45
+          <image :src="item.authorPic" mode="widthFix" class="w-20 h-20 rounded  border border-solid border-1px border-primary"></image>
46
+        </div>
47
+        </div>
48
+
49
+    </scroll-view>
50
+  </div>
51
+</template>

+ 43 - 0
src/components/CXBEmpty/CXBEmpty.vue

@@ -0,0 +1,43 @@
1
+<script lang="ts" setup>
2
+import {CDN_URL} from "~/config/app";
3
+
4
+const searchEmptyImg = CDN_URL + '/static/assets/search_zanwuxiangguan_220617.png'
5
+const addressEmptyImg = CDN_URL + '/static/assets/no_address_bg_220624.png'
6
+
7
+const messageEmptyImg = CDN_URL + '/static/assets/search_zanwuxiangguan_220617.png'
8
+
9
+// search
10
+const props = defineProps({
11
+  type: {
12
+    type: String,
13
+    default: 'search'
14
+  },
15
+  text: {
16
+    type: String,
17
+    default: '暂无相关数据'
18
+  }
19
+})
20
+
21
+const emptyImage = computed(() => {
22
+  // return props.type === 'search' ? searchEmptyImg : ''
23
+  switch (props.type) {
24
+    case 'search': {
25
+      return searchEmptyImg
26
+    }
27
+    case 'address': {
28
+      return addressEmptyImg
29
+    }
30
+    case 'message': {
31
+      return messageEmptyImg
32
+    }
33
+  }
34
+})
35
+</script>
36
+<template>
37
+  <div class="w-full h-full">
38
+    <div class="flex flex-col justify-center items-center py-10 text-xs text-gray gap-4">
39
+      <image :src="emptyImage" mode="widthFix" class="w-18 h-18"></image>
40
+      <div>{{ text }}</div>
41
+    </div>
42
+  </div>
43
+</template>

+ 43 - 0
src/components/CXBNotLoginButton/CXBNotLoginButton.vue

@@ -0,0 +1,43 @@
1
+<script lang="ts" setup>
2
+const props = defineProps({
3
+  key: {
4
+    type: String,
5
+    require: true
6
+  }
7
+})
8
+function goTo() {
9
+  switch (props.key) {
10
+    case '1':
11
+      uni.navigateTo({
12
+        url: "/pages/order_addcart/order_addcart"
13
+      })
14
+      break;
15
+    case '4':
16
+      uni.navigateTo({
17
+        url: "./index"
18
+      })
19
+      break;
20
+    case '10':
21
+      uni.navigateTo({
22
+        url: "/pages/user/index"
23
+      })
24
+      break;
25
+    case '30':
26
+      uni.switchTab({
27
+        url: '/pages/home/index'
28
+      })
29
+      break;
30
+    default:
31
+      uni.switchTab({
32
+        url: "/pages/home/index"
33
+      })
34
+  }
35
+}
36
+</script>
37
+<template>
38
+  <div class="fixed bottom-0 w-full">
39
+<!--    <div class="flex justify-center items-center text-sm p-safe"-->
40
+<!--         @click="goTo"-->
41
+<!--    >暂不登录</div>-->
42
+  </div>
43
+</template>

+ 64 - 0
src/components/CXBNotLoginButton/test.json

@@ -0,0 +1,64 @@
1
+{
2
+  "status": 200,
3
+  "message": "success",
4
+  "data": {
5
+    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcHAuYmp0ZGJhLmNvbSIsImF1ZCI6ImFwcC5ianRkYmEuY29tIiwiaWF0IjoxNjkwODEyNjcwLCJuYmYiOjE2OTA4MTI2NzAsImV4cCI6MTcwMTYxMjY3MCwianRpIjpbMTAwODYsInVzZXIiXX0.YdzFyDX4sOt5o3D7XyL4Yh31uFTRaZ95H4DoD7FN2Vo",
6
+    "exp": 10800000,
7
+    "user": {
8
+      "uid": "10086",
9
+      "wechat_user_id": "0",
10
+      "ali_user_id": "0",
11
+      "account": "18911894578",
12
+      "sex": "0",
13
+      "nickname": "用户4578",
14
+      "avatar": "https:\/\/app.bjtdba.com\/uploads\/logo.jpg",
15
+      "phone": "18911894578",
16
+      "now_score": "0.00",
17
+      "now_money": "0.00",
18
+      "member_brokerage_price": "0.00",
19
+      "user_type": "APP",
20
+      "promoter_time": null,
21
+      "is_promoter": "0",
22
+      "pay_count": "0",
23
+      "pay_price": "0.00",
24
+      "spread_count": "0",
25
+      "adr_id": null,
26
+      "identity": "5",
27
+      "mer_id": "0",
28
+      "mer_topping": null,
29
+      "user_name": null,
30
+      "annuity_frozen": "0.00",
31
+      "annuity_num": "0",
32
+      "annuity": "0.00",
33
+      "agent_rebate": "0.00",
34
+      "mer_rebate": "0.00",
35
+      "promoter_rebate": "0.00",
36
+      "cross_store": "0.00",
37
+      "jurisdiction": "0.00",
38
+      "other_jurisdictions": "0.00",
39
+      "adv_fee": "0.00",
40
+      "xqxiaofei": "0.00",
41
+      "birthday60": null,
42
+      "card_number": null,
43
+      "annuity_yiqu": "0.00",
44
+      "is_new": "0",
45
+      "admin_agent_rate": "0.00",
46
+      "locktime": null,
47
+      "user_number": null,
48
+      "im": "0",
49
+      "im_uuid": null,
50
+      "test_user": "0",
51
+      "is_channel": "0",
52
+      "score": "0.00",
53
+      "annuity_once": "0",
54
+      "first_sign": "0",
55
+      "is_del": "0",
56
+      "first_shopping": "0",
57
+      "external": "1",
58
+      "external_id": null,
59
+      "score_beishengtang": "0.00",
60
+      "level_id": "9548",
61
+      "level": "5"
62
+    }
63
+  }
64
+}

+ 155 - 0
src/components/CXBPhoneLoginButton/CXBPhoneLoginButton.vue

@@ -0,0 +1,155 @@
1
+<script lang="ts" setup>
2
+import { authAppletPhone, bindPhone, getUserUnionId } from "~/apis/user";
3
+import { useUserStore } from "~/stores/userStore";
4
+import Cache from "~/utils/cache";
5
+const userStore = useUserStore()
6
+const props = defineProps({
7
+  text: {
8
+    type: String,
9
+    require: true
10
+  },
11
+  key: {
12
+    type: String
13
+  }
14
+})
15
+function getPhoneNumber(e) {
16
+  // console.log(e.detail)
17
+  // console.log(e)
18
+  if (e.detail.errMsg === 'getPhoneNumber:ok') {
19
+    uni.login({
20
+      provider: 'weixin',
21
+      success: result => {
22
+        const source = 'cxb'
23
+        getUserUnionId({
24
+          code: result.code,
25
+          source,
26
+        }).then(unionRes => {
27
+          console.log(111111, unionRes)
28
+          // const shareId = Cache.get('SHARE_ID')
29
+          //存储openid
30
+          // userStore.setOpenid(unionRes.openid)
31
+          // getShareId(shareI)
32
+          const shareId = Cache.get('SHARE_ID')
33
+
34
+          let params = {
35
+            sessionKey: unionRes.session_key,
36
+            encryptedData: e.detail.encryptedData,
37
+            iv: e.detail.iv,
38
+          }
39
+          if (shareId) {
40
+            params.share_id = shareId
41
+          }
42
+
43
+          let redirectPageObj: { page: string, type: 'page' | 'tab' }
44
+          if (Cache.get('SHARE_REDIRECT_PAGE')) {
45
+            redirectPageObj = JSON.parse(Cache.get('SHARE_REDIRECT_PAGE'))
46
+          }
47
+
48
+          // 手机号授权
49
+          authAppletPhone({
50
+            ...params
51
+          }).then(authRes => {
52
+            userStore.login(authRes.token, authRes.exp)
53
+            userStore.setUID(authRes.user.uid)
54
+            userStore.setUserInfo(authRes.user)
55
+
56
+            // 绑定手机号
57
+            bindPhone({
58
+              phone: authRes.user.account,
59
+              sms: 1,
60
+              sms_code: '1024',
61
+              password: '12345678',
62
+              third_user_id: unionRes.unionid,
63
+              type: 1
64
+            }).then(bindRes => {
65
+              // console.log('已绑定手机')
66
+              // console.log(bindRes)
67
+              Cache.clear('SHARE_ID')
68
+              if (redirectPageObj) {
69
+                if (redirectPageObj.type === 'page') {
70
+                  return uni.reLaunch({
71
+                    url: redirectPageObj.page
72
+                  })
73
+                }
74
+                if (redirectPageObj.type === 'tab') {
75
+                  return uni.switchTab({
76
+                    url: redirectPageObj.page
77
+                  })
78
+                }
79
+              } else {
80
+                // 跳转
81
+                switch (props.key) {
82
+                  case '10':
83
+                    uni.switchTab({
84
+                      url: '/pages/user/index'
85
+                    })
86
+                    break;
87
+                  case '4':
88
+                    uni.navigateBack({
89
+                      delta: 2
90
+                    })
91
+                    break;
92
+                  case '1':
93
+                    uni.switchTab({
94
+                      url: '/pages/order_addcart/index'
95
+                    })
96
+                    break;
97
+                  case undefined:
98
+                    uni.switchTab({
99
+                      url: '/pages/user/index'
100
+                    })
101
+                    break;
102
+                  case '30':
103
+                    uni.switchTab({
104
+                      url: '/pages/home/index'
105
+                    })
106
+                    break;
107
+                  default:
108
+                    uni.switchTab({
109
+                      url: '/pages/home/index'
110
+                    })
111
+                }
112
+              }
113
+            })
114
+
115
+
116
+            // console.log(authRes)
117
+            // authRes.token
118
+          })
119
+          // 手机号绑定
120
+          // res.openid
121
+          // res.session_key
122
+          // bindPhone({
123
+          //
124
+          // })
125
+        })
126
+      }
127
+    })
128
+  }
129
+}
130
+</script>
131
+<template>
132
+  <div
133
+    class="bg-white border border-solid border-1 border-gray-300 rounded-md py-3 gap-2 flex justify-center items-center">
134
+    <image src="https://test.bjtdba.com/applet/static/home/4879edf0b6e2b0ad29fa7d4053d676b.png" mode="widthFix"
135
+      class="w-4 h-4"></image>
136
+    <button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
137
+      {{ text }}
138
+    </button>
139
+  </div>
140
+</template>
141
+
142
+<style>
143
+button {
144
+  margin: 0;
145
+  padding: 0;
146
+  outline: none;
147
+  border-radius: 0;
148
+  background-color: transparent;
149
+  line-height: inherit;
150
+}
151
+
152
+button::after {
153
+  border: none;
154
+}
155
+</style>

+ 164 - 0
src/components/CXBPrivacyPopup/CXBPrivacyPopup.vue

@@ -0,0 +1,164 @@
1
+<template>
2
+
3
+
4
+  <view class="privacy" v-if="data.showPrivacy">
5
+    <view class="content">
6
+      <view class="title">隐私保护指引</view>
7
+      <view class="des">
8
+        在使用当前小程序服务之前,请仔细阅读
9
+        <text class="link" @click="openPrivacyContract">{{ data.privacyContractName }}</text>
10
+        。如果你同意{{ data.privacyContractName }},请点击“同意”开始使用。
11
+      </view>
12
+      <view class="btns">
13
+        <button class="item " @click="exitMiniProgram">拒绝</button>
14
+        <button id="agree-btn" class="item agree" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
15
+      </view>
16
+    </view>
17
+  </view>
18
+</template>
19
+
20
+<script setup lang="ts">
21
+const data = reactive({
22
+  privacyContractName: '',
23
+  showPrivacy: false
24
+})
25
+const privacyData = uni.getStorageSync('PRIVACY')
26
+
27
+if (privacyData) {
28
+  setTimeout(() => {
29
+    data.privacyContractName = privacyData.privacyContractName
30
+    data.showPrivacy = privacyData.showPrivacy
31
+    // this.showPrivacy = getApp().globalData.showPrivacy;
32
+    // this.privacyContractName = getApp().globalData.privacyContractName;
33
+  }, 500);
34
+}
35
+
36
+// 同意隐私协议
37
+function handleAgreePrivacyAuthorization() {
38
+  // const that = this;
39
+  wx.requirePrivacyAuthorize({
40
+    success: res => {
41
+      data.showPrivacy = false;
42
+      uni.setStorageSync('PRIVACY', {
43
+        privacyContractName: data.privacyContractName,
44
+        showPrivacy: false
45
+      })
46
+      // getApp().globalData.showPrivacy = false;
47
+    }
48
+  });
49
+}
50
+
51
+watch(() => data.showPrivacy, (val) => {
52
+  val ? uni.hideTabBar() : uni.showTabBar()
53
+  // watch(() => state.isShowSignIn, (val) => {
54
+  //   val ? uni.hideTabBar() : uni.showTabBar()
55
+  // })
56
+})
57
+// 拒绝隐私协议
58
+function exitMiniProgram() {
59
+  const that = this;
60
+  uni.showModal({
61
+    content: '如果拒绝,我们将无法获取您的信息, 包括手机号、位置信息、相册等该小程序十分重要的功能,您确定要拒绝吗?',
62
+    success: res => {
63
+      if (res.confirm) {
64
+        that.showPrivacy = false;
65
+        uni.exitMiniProgram({
66
+          success: () => {
67
+            console.log('退出小程序成功');
68
+          }
69
+        });
70
+      }
71
+    }
72
+  });
73
+}
74
+// 跳转协议页面
75
+function openPrivacyContract() {
76
+  wx.openPrivacyContract({
77
+    fail: () => {
78
+      uni.showToast({
79
+        title: '网络错误',
80
+        icon: 'error'
81
+      });
82
+    }
83
+  });
84
+}
85
+
86
+</script>
87
+
88
+<style lang="scss" scoped>
89
+.privacy {
90
+  position: fixed;
91
+  top: 0;
92
+  right: 0;
93
+  bottom: 0;
94
+  left: 0;
95
+  background: rgba(0, 0, 0, 0.5);
96
+  z-index: 9999999;
97
+  display: flex;
98
+  align-items: center;
99
+  justify-content: center;
100
+  .content {
101
+    width: 85vw;
102
+    padding: 50rpx;
103
+    box-sizing: border-box;
104
+    background: #fff;
105
+    border-radius: 16rpx;
106
+    .title {
107
+      text-align: center;
108
+      color: #333;
109
+      font-weight: bold;
110
+      font-size: 34rpx;
111
+    }
112
+    .des {
113
+      font-size: 26rpx;
114
+      color: #666;
115
+      margin-top: 40rpx;
116
+      text-align: justify;
117
+      line-height: 1.6;
118
+      .link {
119
+        color: #F94032;
120
+        text-decoration: underline;
121
+      }
122
+    }
123
+    .btns {
124
+      margin-top: 60rpx;
125
+      display: flex;
126
+      justify-content: space-between;
127
+      .item {
128
+        justify-content: space-between;
129
+        width: 244rpx;
130
+        height: 80rpx;
131
+        display: flex;
132
+        align-items: center;
133
+        justify-content: center;
134
+        border-radius: 16rpx;
135
+        box-sizing: border-box;
136
+        border: none;
137
+        border: 1px solid #ccc;
138
+
139
+      }
140
+      .reject {
141
+        background: #f4f4f5;
142
+        color: #909399;
143
+      }
144
+      .agree {
145
+        background: #F94032;
146
+        color: #fff;
147
+      }
148
+    }
149
+  }
150
+}
151
+button {
152
+  margin: 0;
153
+  padding: 0;
154
+  outline: none;
155
+  border-radius: 0;
156
+  background-color: transparent;
157
+  line-height: inherit;
158
+}
159
+button::after {
160
+  border: none;
161
+}
162
+
163
+
164
+</style>

+ 239 - 0
src/components/CXBSkuPopup/CXBSkuPopup.vue

@@ -0,0 +1,239 @@
1
+<script setup lang="ts">
2
+import FPopup from "~/components/FPopup/FPopup.vue";
3
+import { CANCEL_EVENT, CONFIRM_EVENT } from "~/constants/event";
4
+import FPrice from "~/components/FPrice/FPrice.vue";
5
+import { SkuModel } from "~/apis/model/product.model";
6
+import { computed } from "vue";
7
+import { PopupProps } from "~/components/FPopup";
8
+import { CLOSE_EVENT, OPEN_EVENT, UPDATE_SHOW_EVENT } from "~/components/constants";
9
+import CXBButton from "~/components/CXBButton/CXBButton.vue";
10
+import FButton from "~/components/FButton/FButton.vue";
11
+import { findLast } from "lodash-es";
12
+const emit = defineEmits()
13
+const props = defineProps({
14
+  show: {
15
+    type: Boolean,
16
+    default: false
17
+  },
18
+  detail: {
19
+    type: Object,
20
+    required: true
21
+  },
22
+  sku: {
23
+    type: Array,
24
+    default: () => {
25
+      return []
26
+    }
27
+  },
28
+  isTo: {
29
+    type: Number,
30
+    required: true
31
+  }
32
+})
33
+
34
+
35
+
36
+const show = ref(props.show || false)
37
+
38
+const showValue = computed<PopupProps['show']>({
39
+  get: () => props.show || show.value,
40
+  set(val) {
41
+    if (val)
42
+      emit(OPEN_EVENT)
43
+    else
44
+      emit(CLOSE_EVENT)
45
+    show.value = val
46
+    emit(UPDATE_SHOW_EVENT, val)
47
+  },
48
+})
49
+const currentSku = ref(null)
50
+const onConfirm = () => {
51
+  show.value = false
52
+  showValue.value = false
53
+  console.log(showValue.value)
54
+  emit(CONFIRM_EVENT)
55
+}
56
+
57
+
58
+const onCancel = () => {
59
+  // show.value = false
60
+  showValue.value = false
61
+
62
+  emit(CANCEL_EVENT)
63
+}
64
+const count = ref(1)
65
+
66
+const skuList = computed(() => {
67
+  const skuData = []
68
+  if (props.detail && props.detail.sku) {
69
+    for (let key in props.detail.sku) {
70
+      const skuItem: SkuModel = props.detail.sku[key]
71
+      skuData.push(skuItem)
72
+      if (skuItem.unique === props.detail.unique) {
73
+        currentSku.value = skuItem
74
+      }
75
+    }
76
+  }
77
+  return skuData
78
+})
79
+
80
+// currentSku.value = findLast(skuList, (item) => {
81
+//   return item.unique === props.detail.unique
82
+// })
83
+
84
+onMounted(() => {
85
+  emit('selected:item', currentSku)
86
+
87
+})
88
+
89
+function handleSelectedSku(skuItem: any) {
90
+  console.log(skuItem);
91
+
92
+  currentSku.value = skuItem
93
+  console.log('我是数据', currentSku.value);
94
+
95
+  emit('selected:item', currentSku)
96
+}
97
+function handleClose() {
98
+  showValue.value = false
99
+
100
+  emit(CLOSE_EVENT)
101
+}
102
+
103
+function handleAddCart() {
104
+  emit('submit')
105
+}
106
+function handleBuyNow() {
107
+  emit('subBuy')
108
+}
109
+function handleJiaCart() {
110
+  emit('subAdd')
111
+}
112
+function handleSubQg() {
113
+  emit('subQg')
114
+}
115
+
116
+function handleCountChange(value) {
117
+  emit('count-change', value)
118
+}
119
+
120
+</script>
121
+
122
+<template>
123
+  <FPopup v-model:show="showValue" @close="onCancel" position="bottom"
124
+    exClass="rounded-rt-xl rounded-lt-xl flex flex-col pb-safe min-h-[55%] max-h-[70%] h-full">
125
+    <div class="flex flex-col justify-between h-full">
126
+      <div class="flex-1">
127
+        <div class="p-3 flex flex-col gap-3">
128
+          <div class="flex flex-row gap-3">
129
+            <image :src="currentSku.image" v-if="currentSku" mode="aspectFit" class="w-25 h-25 rounded"></image>
130
+            <div class="flex flex-col w-full">
131
+
132
+              <div class="flex gap-2 justify-between w-full">
133
+                <div class="text-overflow text-xs flex-1 line-clamp-2 h-fit" v-if="detail && detail.store_name">
134
+                  {{ detail.store_name }}
135
+                </div>
136
+                <div @tap="handleClose" class="i-tabler-x w-5 h-5 text-gray-500"></div>
137
+              </div>
138
+
139
+
140
+              <div class="flex flex-col" v-if="currentSku">
141
+                <div class="text-[12px] text-right text-gray-500 ">
142
+                  剩余库存{{ currentSku.stock }}
143
+                </div>
144
+                <div class="flex items-end gap-2" v-if="detail.mer_id === '148'">
145
+                  {{  Math.round(currentSku.price * 30) }} 积分
146
+                </div>
147
+                <div class="flex items-end gap-2" v-else>
148
+                  <FPrice :price="detail.seckill_s==0? currentSku.price:currentSku.dacang" />
149
+                  <FPrice v-if="currentSku.ot_price" :price="currentSku.ot_price"
150
+                    :ex-class="'!text-black text-xs font-bold'" need-symbol strike-through />
151
+                </div>
152
+              </div>
153
+
154
+            </div>
155
+          </div>
156
+
157
+          <!--          <template v-if="skuList && skuList.length > 0"></template>-->
158
+          <!--          <scroll-view-->
159
+          <!--              :scroll-y="true"-->
160
+          <!--              class="h-20"-->
161
+          <!--          >-->
162
+
163
+          <div class="text-xs flex" v-if="skuList && skuList.length > 0">规格</div>
164
+          <div class="flex flex-row gap-2  flex-wrap ">
165
+            <div v-for="(item, index) in skuList" :key="index" @tap="handleSelectedSku(item)">
166
+              <div v-if="item.sku && item.sku !== ''" class="text-[11px] border border-solid rounded p-1 px-1 "
167
+                :class="currentSku.unique === item.unique ? 'border-primary text-primary' : 'border-gray-500 text-gray-500'">
168
+                {{ item.sku }}
169
+
170
+              </div>
171
+
172
+
173
+
174
+            </div>
175
+          </div>
176
+
177
+          <!--          </scroll-view>-->
178
+        </div>
179
+        <div class="p-3">
180
+          <div class="flex  justify-between text-sm">
181
+            数量
182
+            <nut-input-number v-model="count" @change="handleCountChange" />
183
+          </div>
184
+
185
+
186
+        </div>
187
+      </div>
188
+
189
+      <div class="px-3 pb-12" v-if="isTo == 1">
190
+        <FButton @click="handleAddCart" size="small" :exClass="['!bg-primary', 'rounded-full', 'text-white']" block>
191
+          确定
192
+        </FButton>
193
+
194
+      </div>
195
+      <div class="px-3 pb-10" v-if="isTo == 4">
196
+        <FButton @click="handleSubQg" size="small" :exClass="['!bg-primary', 'rounded-full', 'text-white']" block>
197
+          立即抢购
198
+        </FButton>
199
+
200
+      </div>
201
+      <div class="px-3 pb-10" v-if="isTo == 5">
202
+        <FButton @click="handleAddCart" size="small" :exClass="['!bg-primary', 'rounded-full', 'text-white']" block>
203
+          立即抢购
204
+        </FButton>
205
+
206
+      </div>
207
+      <div class="px-3 pb-10" v-if="isTo == 3">
208
+        <FButton @click="handleAddCart" size="small" :exClass="['!bg-primary', 'rounded-full', 'text-white']" block>
209
+          立即兑换
210
+        </FButton>
211
+
212
+      </div>
213
+      <div class="px-4 flex box_1 flex-row justify-between text-sm text-white gap-3 " v-if="isTo == 2">
214
+        <button @click="handleJiaCart" size="small"
215
+          class="bg-[#FFA319] rounded-full w-50 flex justify-center items-center h-9 clor">
216
+          加入购物车
217
+        </button>
218
+        <button @click="handleBuyNow" size="small"
219
+          class="bg-[#F94032] rounded-full w-50 flex justify-center items-center h-9 clor ">
220
+          立即购买
221
+        </button>
222
+
223
+      </div>
224
+    </div>
225
+
226
+  </FPopup>
227
+</template>
228
+<style scoped>
229
+.box_1 {
230
+  padding-top: 10rpx;
231
+  padding-bottom: 30rpx;
232
+  border-top: 1px solid rgba(182, 185, 192, 50%);
233
+}
234
+
235
+.clor {
236
+  color: aliceblue;
237
+  font-size: 28rpx;
238
+}
239
+</style>

+ 0 - 0
src/components/CXBUserIndexHeader/CXBUserINdexHeader.vue


+ 19 - 0
src/components/CXBYaojinTag/CXBYaojinTag.vue

@@ -0,0 +1,19 @@
1
+<script setup lang="ts">
2
+const props = defineProps({
3
+  amount: {
4
+    type: String,
5
+    required: true
6
+  }
7
+})
8
+</script>
9
+<template>
10
+  <div class="border border-solid border-1 border-red rounded flex text-auto items-center text-[#FE0032] w-fit h-4">
11
+    <image src="https://cdn.bjtdba.com/vod/image/2023-09-15/20230915160858609.png"
12
+           mode="widthFix" class="!w-7 h-4"></image>
13
+    <div class="px-2 flex items-center jusitify-center text-[11px]">
14
+      <div>
15
+        养老金 ¥{{ amount }}
16
+      </div>
17
+    </div>
18
+  </div>
19
+</template>

+ 49 - 0
src/components/FButton/FButton.vue

@@ -0,0 +1,49 @@
1
+<script setup lang="ts">
2
+import { buttonEmits, buttonProps } from './button'
3
+import { useButton } from './use-button'
4
+
5
+const props = defineProps(buttonProps)
6
+const emit = defineEmits(buttonEmits)
7
+
8
+const { disabled, clickHandler } = useButton(props, emit)
9
+
10
+
11
+</script>
12
+
13
+<template>
14
+  <button
15
+    class="box-border items-center justify-center rounded text-center f-button-wrapper-reset m-0 gap-2"
16
+    :class="[`f-${props.type}`, `f-button-${props.size}`, `f-${props.variant}`, props.block ? 'w-full flex' : 'inline-flex', disabled ? 'op-50' : '', props.exClass]"
17
+    :hover-class="disabled ? '' : '!before:op10'" :open-type="props.openType" :style="props.exStyle" @click="clickHandler"
18
+  >
19
+    <div v-if="props.loading" class="i-tabler-loader animate-spin" />
20
+    <template v-else>
21
+      <slot name="icon">
22
+        <div v-if="props.icon" :class="props.icon" />
23
+      </slot>
24
+    </template>
25
+    <slot />
26
+  </button>
27
+</template>
28
+
29
+<style scoped>
30
+.f-button-wrapper-reset {
31
+  --at-apply: 'after:display-none before:content-none before:absolute before:inset-0 before:bg-black before:op0'
32
+}
33
+
34
+.f-button-mini {
35
+  --at-apply: 'h-6 px-2 text-xs'
36
+}
37
+
38
+.f-button-small {
39
+  --at-apply: 'h-8 px-3 text-sm'
40
+}
41
+
42
+.f-button-normal {
43
+  --at-apply: 'h-11 px-5 text-base'
44
+}
45
+
46
+.f-button-large {
47
+  --at-apply: 'h-12.5 px-6 text-lg'
48
+}
49
+</style>

+ 27 - 0
src/components/FButton/button.ts

@@ -0,0 +1,27 @@
1
+import type { ExtractPropTypes } from 'vue'
2
+import { useCustomClassProp, useCustomStyleProp, useSizeProp, useTypeProp, useVariantProp } from '../composables'
3
+import { CLICK_EVENT } from '../constants'
4
+
5
+export const useButtonTypeProp = useTypeProp
6
+
7
+export const useButtonSizeProp = useSizeProp
8
+
9
+export const buttonProps = {
10
+  exClass: useCustomClassProp,
11
+  exStyle: useCustomStyleProp,
12
+  type: useButtonTypeProp,
13
+  size: useButtonSizeProp,
14
+  variant: useVariantProp,
15
+  disabled: Boolean,
16
+  icon: String,
17
+  openType: String,
18
+  block: Boolean,
19
+  loading: Boolean,
20
+}
21
+
22
+export const buttonEmits = {
23
+  [CLICK_EVENT]: (evt: MouseEvent) => evt instanceof Object,
24
+}
25
+
26
+export type ButtonProps = ExtractPropTypes<typeof buttonProps>
27
+export type ButtonEmits = typeof buttonEmits

+ 2 - 0
src/components/FButton/index.ts

@@ -0,0 +1,2 @@
1
+export * from './button'
2
+export * from './use-button'

+ 0 - 0
src/components/FButton/types.ts


+ 0 - 0
src/components/FButton/use-button.ts


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