diff --git a/README.md b/README.md
index 95e7e98..7dbbd9f 100644
--- a/README.md
+++ b/README.md
@@ -49,5 +49,28 @@ const onRefresh = async (paging) => {
};
+
+```
+
+
+# 新文件3 下拉刷新
+```vue
+
+
+
+
+
+
+
+
```
\ No newline at end of file
diff --git a/common/server/address.js b/common/server/address.js
new file mode 100644
index 0000000..a6a4101
--- /dev/null
+++ b/common/server/address.js
@@ -0,0 +1,63 @@
+import HttpRequest from "../system/request";
+
+
+/**
+ * 添加收货地址
+ * @param {Object} data 地址信息
+ * @returns {Promise}
+ */
+export const addAddress = async (data) => {
+ return await HttpRequest.post('/addAddress', data);
+};
+
+/**
+ * 更新收货地址
+ * @param {Object} data 地址信息
+ * @returns {Promise}
+ */
+export const updateAddress = async (data) => {
+ return await HttpRequest.post('/updateAddress', data);
+};
+
+/**
+ * 获取默认收货地址
+ * @returns {Promise}
+ */
+export const getDefaultAddress = async () => {
+ return await HttpRequest.get('/getDefaultAddress');
+};
+
+/**
+ * 获取收货地址列表
+ * @returns {Promise}
+ */
+export const getAddressList = async () => {
+ return await HttpRequest.get('/getAddressList');
+};
+
+/**
+ * 删除收货地址
+ * @param {Object} data 包含地址ID的对象
+ * @returns {Promise}
+ */
+export const deleteAddress = async (data) => {
+ return await HttpRequest.post('/deleteAddress', data);
+};
+
+/**
+ * 设置默认收货地址
+ * @param {Object} data 包含地址ID的对象
+ * @returns {Promise}
+ */
+export const setDefaultAddress = async (data) => {
+ return await HttpRequest.post('/setDefaultAddress', data);
+};
+
+/**
+ * 获取地址详情
+ * @param {Object} data 包含地址ID的对象
+ * @returns {Promise}
+ */
+export const getAddressDetail = async (id) => {
+ return await HttpRequest.get('/getAddressDetail', { id });
+};
\ No newline at end of file
diff --git a/components/uni-popup/changelog.md b/components/uni-popup/changelog.md
new file mode 100644
index 0000000..505fc70
--- /dev/null
+++ b/components/uni-popup/changelog.md
@@ -0,0 +1,90 @@
+## 1.9.6(2025-01-08)
+- 修复 示例中过期图片地址
+## 1.9.5(2024-10-15)
+- 修复 微信小程序中的getSystemInfo警告
+## 1.9.2(2024-09-21)
+- 修复 uni-popup在android上的重复点击弹出位置不正确的bug
+## 1.9.1(2024-04-02)
+- 修复 uni-popup-dialog vue3下使用value无法进行绑定的bug(双向绑定兼容旧写法)
+## 1.9.0(2024-03-28)
+- 修复 uni-popup-dialog 双向绑定时初始化逻辑修正
+## 1.8.9(2024-03-20)
+- 修复 uni-popup-dialog 数据输入时修正为双向绑定
+## 1.8.8(2024-02-20)
+- 修复 uni-popup 在微信小程序下出现文字向上闪动的bug
+## 1.8.7(2024-02-02)
+- 新增 uni-popup-dialog 新增属性focus:input模式下,是否自动自动聚焦
+## 1.8.6(2024-01-30)
+- 新增 uni-popup-dialog 新增属性maxLength:限制输入框字数
+## 1.8.5(2024-01-26)
+- 新增 uni-popup-dialog 新增属性showClose:控制关闭按钮的显示
+## 1.8.4(2023-11-15)
+- 新增 uni-popup 支持uni-app-x 注意暂时仅支持 `maskClick` `@open` `@close`
+## 1.8.3(2023-04-17)
+- 修复 uni-popup 重复打开时的 bug
+## 1.8.2(2023-02-02)
+- uni-popup-dialog 组件新增 inputType 属性
+## 1.8.1(2022-12-01)
+- 修复 nvue 下 v-show 报错
+## 1.8.0(2022-11-29)
+- 优化 主题样式
+## 1.7.9(2022-04-02)
+- 修复 弹出层内部无法滚动的bug
+## 1.7.8(2022-03-28)
+- 修复 小程序中高度错误的bug
+## 1.7.7(2022-03-17)
+- 修复 快速调用open出现问题的Bug
+## 1.7.6(2022-02-14)
+- 修复 safeArea 属性不能设置为false的bug
+## 1.7.5(2022-01-19)
+- 修复 isMaskClick 失效的bug
+## 1.7.4(2022-01-19)
+- 新增 cancelText \ confirmText 属性 ,可自定义文本
+- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色
+- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题
+## 1.7.3(2022-01-13)
+- 修复 设置 safeArea 属性不生效的bug
+## 1.7.2(2021-11-26)
+- 优化 组件示例
+## 1.7.1(2021-11-26)
+- 修复 vuedoc 文字错误
+## 1.7.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup)
+## 1.6.2(2021-08-24)
+- 新增 支持国际化
+## 1.6.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.6.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.5.0(2021-06-23)
+- 新增 mask-click 遮罩层点击事件
+## 1.4.5(2021-06-22)
+- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.4(2021-06-18)
+- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
+## 1.4.3(2021-06-08)
+- 修复 错误的 watch 字段
+- 修复 safeArea 属性不生效的问题
+- 修复 点击内容,再点击遮罩无法关闭的Bug
+## 1.4.2(2021-05-12)
+- 新增 组件示例地址
+## 1.4.1(2021-04-29)
+- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
+## 1.4.0 (2021-04-29)
+- 新增 type 属性的 left\right 值,支持左右弹出
+- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
+- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
+- 新增 safeArea 属性,是否适配底部安全区
+- 修复 App\h5\微信小程序底部安全区占位不对的Bug
+- 修复 App 端弹出等待的Bug
+- 优化 提升低配设备性能,优化动画卡顿问题
+- 优化 更简单的组件自定义方式
+## 1.2.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+## 1.2.8(2021-02-05)
+- 调整为uni_modules目录规范
+## 1.2.7(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 支持 PC 端
+- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
diff --git a/components/uni-popup/components/uni-popup-dialog/keypress.js b/components/uni-popup/components/uni-popup-dialog/keypress.js
new file mode 100644
index 0000000..6ef26a2
--- /dev/null
+++ b/components/uni-popup/components/uni-popup-dialog/keypress.js
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => {}
+}
+// #endif
diff --git a/components/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/components/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
new file mode 100644
index 0000000..08707d4
--- /dev/null
+++ b/components/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
diff --git a/components/uni-popup/components/uni-popup-message/uni-popup-message.vue b/components/uni-popup/components/uni-popup-message/uni-popup-message.vue
new file mode 100644
index 0000000..91370a8
--- /dev/null
+++ b/components/uni-popup/components/uni-popup-message/uni-popup-message.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
diff --git a/components/uni-popup/components/uni-popup-share/uni-popup-share.vue b/components/uni-popup/components/uni-popup-share/uni-popup-share.vue
new file mode 100644
index 0000000..c8945d5
--- /dev/null
+++ b/components/uni-popup/components/uni-popup-share/uni-popup-share.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
diff --git a/components/uni-popup/components/uni-popup/i18n/en.json b/components/uni-popup/components/uni-popup/i18n/en.json
new file mode 100644
index 0000000..7f1bd06
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/i18n/en.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "cancel",
+ "uni-popup.ok": "ok",
+ "uni-popup.placeholder": "pleace enter",
+ "uni-popup.title": "Hint",
+ "uni-popup.shareTitle": "Share to"
+}
diff --git a/components/uni-popup/components/uni-popup/i18n/index.js b/components/uni-popup/components/uni-popup/i18n/index.js
new file mode 100644
index 0000000..de7509c
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/i18n/index.js
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git a/components/uni-popup/components/uni-popup/i18n/zh-Hans.json b/components/uni-popup/components/uni-popup/i18n/zh-Hans.json
new file mode 100644
index 0000000..5e3003c
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/i18n/zh-Hans.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "确定",
+ "uni-popup.placeholder": "请输入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git a/components/uni-popup/components/uni-popup/i18n/zh-Hant.json b/components/uni-popup/components/uni-popup/i18n/zh-Hant.json
new file mode 100644
index 0000000..13e39eb
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/i18n/zh-Hant.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "確定",
+ "uni-popup.placeholder": "請輸入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git a/components/uni-popup/components/uni-popup/keypress.js b/components/uni-popup/components/uni-popup/keypress.js
new file mode 100644
index 0000000..62dda46
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/keypress.js
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git a/components/uni-popup/components/uni-popup/popup.js b/components/uni-popup/components/uni-popup/popup.js
new file mode 100644
index 0000000..c4e5781
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/popup.js
@@ -0,0 +1,26 @@
+
+export default {
+ data() {
+ return {
+
+ }
+ },
+ created(){
+ this.popup = this.getParent()
+ },
+ methods:{
+ /**
+ * 获取父元素实例
+ */
+ getParent(name = 'uniPopup') {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name) {
+ parent = parent.$parent;
+ if (!parent) return false
+ parentName = parent.$options.name;
+ }
+ return parent;
+ },
+ }
+}
diff --git a/components/uni-popup/components/uni-popup/uni-popup.uvue b/components/uni-popup/components/uni-popup/uni-popup.uvue
new file mode 100644
index 0000000..5eb8d5b
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/uni-popup.uvue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/uni-popup/components/uni-popup/uni-popup.vue b/components/uni-popup/components/uni-popup/uni-popup.vue
new file mode 100644
index 0000000..5af55e0
--- /dev/null
+++ b/components/uni-popup/components/uni-popup/uni-popup.vue
@@ -0,0 +1,518 @@
+
+
+
+
+
+
diff --git a/components/uni-popup/package.json b/components/uni-popup/package.json
new file mode 100644
index 0000000..da485a4
--- /dev/null
+++ b/components/uni-popup/package.json
@@ -0,0 +1,90 @@
+{
+ "id": "uni-popup",
+ "displayName": "uni-popup 弹出层",
+ "version": "1.9.6",
+ "description": " Popup 组件,提供常用的弹层",
+ "keywords": [
+ "uni-ui",
+ "弹出层",
+ "弹窗",
+ "popup",
+ "弹框"
+ ],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y",
+ "alipay": "n"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y",
+ "app-harmony": "u",
+ "app-uvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "y",
+ "百度": "y",
+ "字节跳动": "y",
+ "QQ": "y"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/components/uni-popup/readme.md b/components/uni-popup/readme.md
new file mode 100644
index 0000000..fdad4b3
--- /dev/null
+++ b/components/uni-popup/readme.md
@@ -0,0 +1,17 @@
+
+
+## Popup 弹出层
+> **组件名:uni-popup**
+> 代码块: `uPopup`
+> 关联组件:`uni-transition`
+
+
+弹出层组件,在应用中弹出一个消息提示窗口、提示框等
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
+
+
diff --git a/pages.json b/pages.json
index d60e721..1d12bae 100644
--- a/pages.json
+++ b/pages.json
@@ -69,6 +69,18 @@
"style": {
"navigationStyle": "custom"
}
+ },
+ {
+ "path": "pages/address/address-list",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/address/address-edit",
+ "style": {
+ "navigationStyle": "custom"
+ }
}
],
// "globalStyle": {
diff --git a/pages/address/address-edit.vue b/pages/address/address-edit.vue
new file mode 100644
index 0000000..41bb861
--- /dev/null
+++ b/pages/address/address-edit.vue
@@ -0,0 +1,331 @@
+
+
+
+
+ 收货人
+
+
+
+
+ 电话
+
+
+
+
+ 详细地址
+
+
+
+
+ 设为默认
+
+
+
+
+
+ 保存
+
+
+
+ 删除
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/address/address-list.vue b/pages/address/address-list.vue
new file mode 100644
index 0000000..56fca5e
--- /dev/null
+++ b/pages/address/address-list.vue
@@ -0,0 +1,282 @@
+
+
+
+
+
+
+ {{ item.receiver_name }}
+ {{ item.receiver_phone }}
+ 默认
+
+
+ {{ item.detailed_address }}
+
+
+
+
+
+
+
+
+
+
+
+ 暂无收货地址
+
+
+
+
+ 新增地址
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/me/me.vue b/pages/me/me.vue
index 5b2f233..0b5c39b 100644
--- a/pages/me/me.vue
+++ b/pages/me/me.vue
@@ -89,6 +89,9 @@ const loadMenu = async () => {
}, {
id: 4,
title: "收货地址管理",
+ onClick: (res) => {
+ navigateTo("/pages/address/address-list");
+ }
},
{
id: 5,
diff --git a/static/address_edit.vue b/static/address_edit.vue
new file mode 100644
index 0000000..2293a59
--- /dev/null
+++ b/static/address_edit.vue
@@ -0,0 +1,366 @@
+
+
+
+
+ 收货人
+
+
+
+
+ 电话
+
+
+
+
+ 详细地址
+
+
+
+
+ 设为默认
+
+
+
+
+
+ 保存
+
+
+
+ 删除
+
+
+
+
+
+
+
diff --git a/static/app-plus/del.png b/static/app-plus/del.png
new file mode 100644
index 0000000..1014213
Binary files /dev/null and b/static/app-plus/del.png differ
diff --git a/static/app-plus/edit.png b/static/app-plus/edit.png
new file mode 100644
index 0000000..f167c50
Binary files /dev/null and b/static/app-plus/edit.png differ
diff --git a/static/coupon.vue b/static/coupon.vue
deleted file mode 100644
index bbbafc8..0000000
--- a/static/coupon.vue
+++ /dev/null
@@ -1,371 +0,0 @@
-
-
-
-
-
- 优惠券
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
- ¥
- {{ Number(item.price) }}
-
-
- 满{{ item.man_price }}减{{ item.price }}
-
- {{ item.end_time }}到期
-
-
- 去使用
-
-
- {{ item.mark }}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
index 8978791..cc4d0c6 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -33,7 +33,8 @@ export default defineConfig({
Components({
dirs: [
'components/youdas-container',
- 'components/uni-nav-bar'
+ 'components/uni-nav-bar',
+ 'components/uni-popup'
], // 指定组件目录
extensions: ['vue'],
dts: true, // 生成类型声明文件(可选)