diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index 0b0655a..b27ec30 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -5,12 +5,18 @@ "playground" : "custom", "type" : "uni-app:app-android" }, - { - "app-plus" : - { - "launchtype" : "local" - }, - "type" : "uniCloud" - } + { + "app-plus" : { + "launchtype" : "local" + }, + "mp-weixin" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "playground" : "standard", + "type" : "uni-app:app-ios" + } ] } diff --git a/App.vue b/App.vue index ec86853..aeca0df 100644 --- a/App.vue +++ b/App.vue @@ -15,5 +15,23 @@ \ No newline at end of file diff --git a/components/InformationAdd/plant.vue b/components/InformationAdd/plant.vue new file mode 100644 index 0000000..0ecdb5b --- /dev/null +++ b/components/InformationAdd/plant.vue @@ -0,0 +1,129 @@ + + + + + \ No newline at end of file diff --git a/components/biaoge/index.vue b/components/biaoge/index.vue new file mode 100644 index 0000000..8559f76 --- /dev/null +++ b/components/biaoge/index.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/components/index/fishing.vue b/components/index/fishing.vue new file mode 100644 index 0000000..7145d63 --- /dev/null +++ b/components/index/fishing.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/components/index/planting.vue b/components/index/planting.vue new file mode 100644 index 0000000..11213a8 --- /dev/null +++ b/components/index/planting.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index f857286..9460c2a 100644 --- a/pages.json +++ b/pages.json @@ -11,8 +11,31 @@ { "path": "pages/index/index", "style": { - "navigationBarTitleText": "uni-app", - "enablePullDownRefresh": true + "navigationStyle": "custom" + } + }, { + "path": "pages/InformationAdd/index", + "style": { + "navigationBarTitleText": "信息添加", + "enablePullDownRefresh": false, + "navigationBarBackgroundColor": "#F4F4F4", + "navigationBarTextStyle": "black" + } + }, { + "path": "pages/growRecord/index", + "style": { + "navigationBarTitleText": "生长记录", + "enablePullDownRefresh": false, + "navigationBarBackgroundColor": "#F4F4F4", + "navigationBarTextStyle": "black" + } + }, { + "path": "pages/detail/plant", + "style": { + "navigationBarTitleText": "详情", + "enablePullDownRefresh": false, + "navigationBarBackgroundColor": "#F4F4F4", + "navigationBarTextStyle": "black" } }, { "path": "pages/test/index", @@ -35,26 +58,6 @@ "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" }, - "tabBar": { - "color": "#B3B3B3", - "selectedColor": "black", - "borderStyle": "white", - "backgroundColor": "#EBF1EF", - "list": [{ - "pagePath": "pages/index/index", - "text": "地块" - // "iconPath": "static/tabs-icon/home.png", - // "selectedIconPath": "static/img/DK.png" - }, - { - "pagePath": "pages/test/index", - "text": "数据" - // "iconPath": "static/img/SJ (1).png", - // "selectedIconPath": "static/img/SJ (1).png" - } - - ] - }, "uniIdRouter": {} } \ No newline at end of file diff --git a/pages/InformationAdd/index.vue b/pages/InformationAdd/index.vue new file mode 100644 index 0000000..2734980 --- /dev/null +++ b/pages/InformationAdd/index.vue @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/pages/detail/plant.vue b/pages/detail/plant.vue new file mode 100644 index 0000000..6b074e8 --- /dev/null +++ b/pages/detail/plant.vue @@ -0,0 +1,408 @@ + + + + + \ No newline at end of file diff --git a/pages/growRecord/index.vue b/pages/growRecord/index.vue new file mode 100644 index 0000000..3405b98 --- /dev/null +++ b/pages/growRecord/index.vue @@ -0,0 +1,138 @@ + + + + + \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue index 9f60856..aef3273 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,16 +1,36 @@ + \ No newline at end of file diff --git a/static/img/ADL.png b/static/img/ADL.png new file mode 100644 index 0000000..1acfad2 Binary files /dev/null and b/static/img/ADL.png differ diff --git a/static/img/AHL.png b/static/img/AHL.png new file mode 100644 index 0000000..1acfad2 Binary files /dev/null and b/static/img/AHL.png differ diff --git a/static/img/AQHL.png b/static/img/AQHL.png new file mode 100644 index 0000000..237eac8 Binary files /dev/null and b/static/img/AQHL.png differ diff --git a/static/img/B.png b/static/img/B.png new file mode 100644 index 0000000..0157072 Binary files /dev/null and b/static/img/B.png differ diff --git a/static/img/CO2.png b/static/img/CO2.png new file mode 100644 index 0000000..95288fd Binary files /dev/null and b/static/img/CO2.png differ diff --git a/static/img/CTPH.png b/static/img/CTPH.png new file mode 100644 index 0000000..a1a430b Binary files /dev/null and b/static/img/CTPH.png differ diff --git a/static/img/CTWD.png b/static/img/CTWD.png new file mode 100644 index 0000000..2fa401a Binary files /dev/null and b/static/img/CTWD.png differ diff --git a/static/img/D.png b/static/img/D.png new file mode 100644 index 0000000..79ec043 Binary files /dev/null and b/static/img/D.png differ diff --git a/static/img/DK.png b/static/img/DK.png new file mode 100644 index 0000000..fbf27bd Binary files /dev/null and b/static/img/DK.png differ diff --git a/static/img/DZJC.png b/static/img/DZJC.png new file mode 100644 index 0000000..2cce418 Binary files /dev/null and b/static/img/DZJC.png differ diff --git a/static/img/EYHT.png b/static/img/EYHT.png new file mode 100644 index 0000000..95288fd Binary files /dev/null and b/static/img/EYHT.png differ diff --git a/static/img/F.png b/static/img/F.png new file mode 100644 index 0000000..32c660b Binary files /dev/null and b/static/img/F.png differ diff --git a/static/img/FH.png b/static/img/FH.png new file mode 100644 index 0000000..c7f2924 Binary files /dev/null and b/static/img/FH.png differ diff --git a/static/img/FS (1).png b/static/img/FS (1).png new file mode 100644 index 0000000..32c660b Binary files /dev/null and b/static/img/FS (1).png differ diff --git a/static/img/FS (2).png b/static/img/FS (2).png new file mode 100644 index 0000000..32c660b Binary files /dev/null and b/static/img/FS (2).png differ diff --git a/static/img/FS.png b/static/img/FS.png new file mode 100644 index 0000000..32c660b Binary files /dev/null and b/static/img/FS.png differ diff --git a/static/img/FX (1).png b/static/img/FX (1).png new file mode 100644 index 0000000..0157072 Binary files /dev/null and b/static/img/FX (1).png differ diff --git a/static/img/FX.png b/static/img/FX.png new file mode 100644 index 0000000..0157072 Binary files /dev/null and b/static/img/FX.png differ diff --git a/static/img/G (1).png b/static/img/G (1).png new file mode 100644 index 0000000..ca78891 Binary files /dev/null and b/static/img/G (1).png differ diff --git a/static/img/G.png b/static/img/G.png new file mode 100644 index 0000000..614ed18 Binary files /dev/null and b/static/img/G.png differ diff --git a/static/img/GG.png b/static/img/GG.png new file mode 100644 index 0000000..56720a1 Binary files /dev/null and b/static/img/GG.png differ diff --git a/static/img/GJ.jpg b/static/img/GJ.jpg new file mode 100644 index 0000000..de13077 Binary files /dev/null and b/static/img/GJ.jpg differ diff --git a/static/img/GJBG.jpg b/static/img/GJBG.jpg new file mode 100644 index 0000000..888b967 Binary files /dev/null and b/static/img/GJBG.jpg differ diff --git a/static/img/GZ (1).png b/static/img/GZ (1).png new file mode 100644 index 0000000..614ed18 Binary files /dev/null and b/static/img/GZ (1).png differ diff --git a/static/img/GZ (2).png b/static/img/GZ (2).png new file mode 100644 index 0000000..614ed18 Binary files /dev/null and b/static/img/GZ (2).png differ diff --git a/static/img/GZ.png b/static/img/GZ.png new file mode 100644 index 0000000..614ed18 Binary files /dev/null and b/static/img/GZ.png differ diff --git a/static/img/JC.jpg b/static/img/JC.jpg new file mode 100644 index 0000000..a47406f Binary files /dev/null and b/static/img/JC.jpg differ diff --git a/static/img/JCBJ.jpg b/static/img/JCBJ.jpg new file mode 100644 index 0000000..22fd8b3 Binary files /dev/null and b/static/img/JCBJ.jpg differ diff --git a/static/img/JI.png b/static/img/JI.png new file mode 100644 index 0000000..a9b01ff Binary files /dev/null and b/static/img/JI.png differ diff --git a/static/img/JWHL.png b/static/img/JWHL.png new file mode 100644 index 0000000..421d005 Binary files /dev/null and b/static/img/JWHL.png differ diff --git a/static/img/JYL.png b/static/img/JYL.png new file mode 100644 index 0000000..416da6c Binary files /dev/null and b/static/img/JYL.png differ diff --git a/static/img/KQSD.png b/static/img/KQSD.png new file mode 100644 index 0000000..816c819 Binary files /dev/null and b/static/img/KQSD.png differ diff --git a/static/img/KQZL.png b/static/img/KQZL.png new file mode 100644 index 0000000..773b8c0 Binary files /dev/null and b/static/img/KQZL.png differ diff --git a/static/img/KQZLZS.png b/static/img/KQZLZS.png new file mode 100644 index 0000000..773b8c0 Binary files /dev/null and b/static/img/KQZLZS.png differ diff --git a/static/img/QTTC.png b/static/img/QTTC.png new file mode 100644 index 0000000..0d296a6 Binary files /dev/null and b/static/img/QTTC.png differ diff --git a/static/img/QXJC.png b/static/img/QXJC.png new file mode 100644 index 0000000..111f818 Binary files /dev/null and b/static/img/QXJC.png differ diff --git a/static/img/RYL.png b/static/img/RYL.png new file mode 100644 index 0000000..237eac8 Binary files /dev/null and b/static/img/RYL.png differ diff --git a/static/img/RYY.png b/static/img/RYY.png new file mode 100644 index 0000000..bc14953 Binary files /dev/null and b/static/img/RYY.png differ diff --git a/static/img/SC.jpg b/static/img/SC.jpg new file mode 100644 index 0000000..4624157 Binary files /dev/null and b/static/img/SC.jpg differ diff --git a/static/img/SCBJ.jpg b/static/img/SCBJ.jpg new file mode 100644 index 0000000..0f93930 Binary files /dev/null and b/static/img/SCBJ.jpg differ diff --git a/static/img/SG.png b/static/img/SG.png new file mode 100644 index 0000000..ca78891 Binary files /dev/null and b/static/img/SG.png differ diff --git a/static/img/SHUCAI.png b/static/img/SHUCAI.png new file mode 100644 index 0000000..6972519 Binary files /dev/null and b/static/img/SHUCAI.png differ diff --git a/static/img/SJ (1).png b/static/img/SJ (1).png new file mode 100644 index 0000000..88607ef Binary files /dev/null and b/static/img/SJ (1).png differ diff --git a/static/img/SLWD.png b/static/img/SLWD.png new file mode 100644 index 0000000..ba681bd Binary files /dev/null and b/static/img/SLWD.png differ diff --git a/static/img/SZJC.png b/static/img/SZJC.png new file mode 100644 index 0000000..e7d4ed6 Binary files /dev/null and b/static/img/SZJC.png differ diff --git a/static/img/TDSD.png b/static/img/TDSD.png new file mode 100644 index 0000000..816c819 Binary files /dev/null and b/static/img/TDSD.png differ diff --git a/static/img/TDWD.png b/static/img/TDWD.png new file mode 100644 index 0000000..ba681bd Binary files /dev/null and b/static/img/TDWD.png differ diff --git a/static/img/TRSD.png b/static/img/TRSD.png new file mode 100644 index 0000000..816c819 Binary files /dev/null and b/static/img/TRSD.png differ diff --git a/static/img/TRWD.png b/static/img/TRWD.png new file mode 100644 index 0000000..ba681bd Binary files /dev/null and b/static/img/TRWD.png differ diff --git a/static/img/WD.png b/static/img/WD.png new file mode 100644 index 0000000..ad7c2e9 Binary files /dev/null and b/static/img/WD.png differ diff --git a/static/img/WDGG.png b/static/img/WDGG.png new file mode 100644 index 0000000..56720a1 Binary files /dev/null and b/static/img/WDGG.png differ diff --git a/static/img/XIA.png b/static/img/XIA.png new file mode 100644 index 0000000..bf4ede8 Binary files /dev/null and b/static/img/XIA.png differ diff --git a/static/img/YX.jpg b/static/img/YX.jpg new file mode 100644 index 0000000..9fbdcfe Binary files /dev/null and b/static/img/YX.jpg differ diff --git a/static/img/YXBJ.jpg b/static/img/YXBJ.jpg new file mode 100644 index 0000000..80ec3f1 Binary files /dev/null and b/static/img/YXBJ.jpg differ diff --git a/static/img/YXSY.png b/static/img/YXSY.png new file mode 100644 index 0000000..2839e35 Binary files /dev/null and b/static/img/YXSY.png differ diff --git a/static/img/ZWXBSQ.png b/static/img/ZWXBSQ.png new file mode 100644 index 0000000..fe10a6d Binary files /dev/null and b/static/img/ZWXBSQ.png differ diff --git a/static/img/badinfo.png b/static/img/badinfo.png new file mode 100644 index 0000000..4710748 Binary files /dev/null and b/static/img/badinfo.png differ diff --git a/static/img/bg1.png b/static/img/bg1.png new file mode 100644 index 0000000..123a3f7 Binary files /dev/null and b/static/img/bg1.png differ diff --git a/static/img/bgc.png b/static/img/bgc.png new file mode 100644 index 0000000..593c376 Binary files /dev/null and b/static/img/bgc.png differ diff --git a/static/img/dw.png b/static/img/dw.png new file mode 100644 index 0000000..eee1d5f Binary files /dev/null and b/static/img/dw.png differ diff --git a/static/img/sj.png b/static/img/sj.png new file mode 100644 index 0000000..59a0baf Binary files /dev/null and b/static/img/sj.png differ diff --git a/static/img/sjfx.png b/static/img/sjfx.png new file mode 100644 index 0000000..a143026 Binary files /dev/null and b/static/img/sjfx.png differ diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 0000000..64c2f04 --- /dev/null +++ b/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,142 @@ +## 2.2.25(2023-10-18) +- 修复 PC端初次修改时间,开始时间未更新的Bug [详情](https://github.com/dcloudio/uni-ui/issues/737) +## 2.2.24(2023-06-02) +- 修复 部分情况修改时间,开始、结束时间显示异常的Bug [详情](https://ask.dcloud.net.cn/question/171146) +- 优化 当前月可以选择上月、下月的日期的Bug +## 2.2.23(2023-05-02) +- 修复 部分情况修改时间,开始时间未更新的Bug [详情](https://github.com/dcloudio/uni-ui/issues/737) +- 修复 部分平台及设备第一次点击无法显示弹框的Bug +- 修复 ios 日期格式未补零显示及使用异常的Bug [详情](https://ask.dcloud.net.cn/question/162979) +## 2.2.22(2023-03-30) +- 修复 日历 picker 修改年月后,自动选中当月1日的Bug [详情](https://ask.dcloud.net.cn/question/165937) +- 修复 小程序端 低版本 ios NaN的Bug [详情](https://ask.dcloud.net.cn/question/162979) +## 2.2.21(2023-02-20) +- 修复 firefox 浏览器显示区域点击无法拉起日历弹框的Bug [详情](https://ask.dcloud.net.cn/question/163362) +## 2.2.20(2023-02-17) +- 优化 值为空依然选中当天问题 +- 优化 提供 default-value 属性支持配置选择器打开时默认显示的时间 +- 优化 非范围选择未选择日期时间,点击确认按钮选中当前日期时间 +- 优化 字节小程序日期时间范围选择,底部日期换行的Bug +## 2.2.19(2023-02-09) +- 修复 2.2.18 引起范围选择配置 end 选择无效的Bug [详情](https://github.com/dcloudio/uni-ui/issues/686) +## 2.2.18(2023-02-08) +- 修复 移动端范围选择change事件触发异常的Bug [详情](https://github.com/dcloudio/uni-ui/issues/684) +- 优化 PC端输入日期格式错误时返回当前日期时间 +- 优化 PC端输入日期时间超出 start、end 限制的Bug +- 优化 移动端日期时间范围用法时间展示不完整问题 +## 2.2.17(2023-02-04) +- 修复 小程序端绑定 Date 类型报错的Bug [详情](https://github.com/dcloudio/uni-ui/issues/679) +- 修复 vue3 time-picker 无法显示绑定时分秒的Bug +## 2.2.16(2023-02-02) +- 修复 字节小程序报错的Bug +## 2.2.15(2023-02-02) +- 修复 某些情况切换月份错误的Bug +## 2.2.14(2023-01-30) +- 修复 某些情况切换月份错误的Bug [详情](https://ask.dcloud.net.cn/question/162033) +## 2.2.13(2023-01-10) +- 修复 多次加载组件造成内存占用的Bug +## 2.2.12(2022-12-01) +- 修复 vue3 下 i18n 国际化初始值不正确的Bug +## 2.2.11(2022-09-19) +- 修复 支付宝小程序样式错乱的Bug [详情](https://github.com/dcloudio/uni-app/issues/3861) +## 2.2.10(2022-09-19) +- 修复 反向选择日期范围,日期显示异常的Bug [详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) +## 2.2.9(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 2.2.8(2022-09-08) +- 修复 close事件无效的Bug +## 2.2.7(2022-09-05) +- 修复 移动端 maskClick 无效的Bug [详情](https://ask.dcloud.net.cn/question/140824) +## 2.2.6(2022-06-30) +- 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 +## 2.2.5(2022-06-24) +- 修复 日历顶部年月及底部确认未国际化的Bug +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的Bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的Bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的Bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的Bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源 [详情](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移 [https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的Bug +- 修复 单选赋默认值时,赋值日期未高亮的Bug +- 修复 赋默认值时,移动端未正确显示时间的Bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的Bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的Bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的Bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的Bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的Bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的Bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的Bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的Bug +- 修复 start 和 end 不能动态赋值的Bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的Bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的Bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的Bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的Bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的Bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的Bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的Bug +- 修复 chang事件触发2次的Bug +- 修复 分、秒 end 范围错误的Bug +- 优化 更好的 nvue 适配 diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 0000000..dba9887 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 0000000..3418f49 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,928 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 0000000..024f22f --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select date and time", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-datetime-picker.year": "-", + "uni-datetime-picker.month": "", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN", + "uni-calender.confirm": "confirm" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/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/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 0000000..d2df5e7 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "确认" +} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 0000000..d23fa3c --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "確認" +} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 0000000..81a042a --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,934 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 0000000..a4c0340 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,1034 @@ + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 0000000..ab40b23 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js @@ -0,0 +1,403 @@ +class Calendar { + constructor({ + selected, + startDate, + endDate, + range, + } = {}) { + // 当前日期 + this.date = this.getDateObj(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 起始时间 + this.startDate = startDate + // 终止时间 + this.endDate = endDate + // 是否范围选择 + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + const selectDate = this.getDateObj(date) + this.getWeeks(selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + setStartDate(startDate) { + this.startDate = startDate + } + + setEndDate(endDate) { + this.endDate = endDate + } + + getPreMonthObj(date){ + date = fixIosDateFormat(date) + date = new Date(date) + + const oldMonth = date.getMonth() + date.setMonth(oldMonth - 1) + const newMonth = date.getMonth() + if(oldMonth !== 0 && newMonth - oldMonth === 0){ + date.setMonth(newMonth - 1) + } + return this.getDateObj(date) + } + getNextMonthObj(date){ + date = fixIosDateFormat(date) + date = new Date(date) + + const oldMonth = date.getMonth() + date.setMonth(oldMonth + 1) + const newMonth = date.getMonth() + if(newMonth - oldMonth > 1){ + date.setMonth(newMonth - 1) + } + return this.getDateObj(date) + } + + /** + * 获取指定格式Date对象 + */ + getDateObj(date) { + date = fixIosDateFormat(date) + date = new Date(date) + + return { + fullDate: getDate(date), + year: date.getFullYear(), + month: addZero(date.getMonth() + 1), + date: addZero(date.getDate()), + day: date.getDay() + } + } + + /** + * 获取上一个月日期集合 + */ + getPreMonthDays(amount, dateObj) { + const result = [] + for (let i = amount - 1; i >= 0; i--) { + const month = dateObj.month - 1 + result.push({ + date: new Date(dateObj.year, month, -i).getDate(), + month, + disable: true + }) + } + return result + } + /** + * 获取本月日期集合 + */ + getCurrentMonthDays(amount, dateObj) { + const result = [] + const fullDate = this.date.fullDate + for (let i = 1; i <= amount; i++) { + const currentDate = `${dateObj.year}-${dateObj.month}-${addZero(i)}` + const isToday = fullDate === currentDate + // 获取打点信息 + const info = this.selected && this.selected.find((item) => { + if (this.dateEqual(currentDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + disableBefore = dateCompare(this.startDate, currentDate) + } + + if (this.endDate) { + disableAfter = dateCompare(currentDate, this.endDate) + } + + let multiples = this.multipleStatus.data + let multiplesStatus = -1 + if (this.range && multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, currentDate) + }) + } + const checked = multiplesStatus !== -1 + + result.push({ + fullDate: currentDate, + year: dateObj.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(currentDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(currentDate, this.multipleStatus.before, this.multipleStatus.after), + month: dateObj.month, + disable: (this.startDate && !dateCompare(this.startDate, currentDate)) || (this.endDate && !dateCompare(currentDate,this.endDate)), + isToday, + userChecked: false, + extraInfo: info + }) + } + return result + } + /** + * 获取下一个月日期集合 + */ + _getNextMonthDays(amount, dateObj) { + const result = [] + const month = dateObj.month + 1 + for (let i = 1; i <= amount; i++) { + result.push({ + date: i, + month, + disable: true + }) + } + return result + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + + return this.calendar.find(item => item.fullDate === this.getDateObj(date).fullDate) + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + before = new Date(fixIosDateFormat(before)) + after = new Date(fixIosDateFormat(after)) + return before.valueOf() === after.valueOf() + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDate, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDate) + } + + isLogicAfter(currentDate, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDate) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDateObj(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + if (!this.range) return + + let { + before, + after + } = this.multipleStatus + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this.getWeeks(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + if (!this.range || this.lastHover) return + + const { before } = this.multipleStatus + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this.getWeeks(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this.getWeeks(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this.getWeeks(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + getWeeks(dateData) { + const { + year, + month, + } = this.getDateObj(dateData) + + const preMonthDayAmount = new Date(year, month - 1, 1).getDay() + const preMonthDays = this.getPreMonthDays(preMonthDayAmount, this.getDateObj(dateData)) + + const currentMonthDayAmount = new Date(year, month, 0).getDate() + const currentMonthDays = this.getCurrentMonthDays(currentMonthDayAmount, this.getDateObj(dateData)) + + const nextMonthDayAmount = 42 - preMonthDayAmount - currentMonthDayAmount + const nextMonthDays = this._getNextMonthDays(nextMonthDayAmount, this.getDateObj(dateData)) + + const calendarDays = [...preMonthDays, ...currentMonthDays, ...nextMonthDays] + + const weeks = new Array(6) + for (let i = 0; i < calendarDays.length; i++) { + const index = Math.floor(i / 7) + if(!weeks[index]){ + weeks[index] = new Array(7) + } + weeks[index][i % 7] = calendarDays[i] + } + + this.calendar = calendarDays + this.weeks = weeks + } +} + +function getDateTime(date, hideSecond){ + return `${getDate(date)} ${getTime(date, hideSecond)}` +} + +function getDate(date) { + date = fixIosDateFormat(date) + date = new Date(date) + const year = date.getFullYear() + const month = date.getMonth()+1 + const day = date.getDate() + return `${year}-${addZero(month)}-${addZero(day)}` +} + +function getTime(date, hideSecond){ + date = fixIosDateFormat(date) + date = new Date(date) + const hour = date.getHours() + const minute = date.getMinutes() + const second = date.getSeconds() + return hideSecond ? `${addZero(hour)}:${addZero(minute)}` : `${addZero(hour)}:${addZero(minute)}:${addZero(second)}` +} + +function addZero(num) { + if(num < 10){ + num = `0${num}` + } + return num +} + +function getDefaultSecond(hideSecond) { + return hideSecond ? '00:00' : '00:00:00' +} + +function dateCompare(startDate, endDate) { + startDate = new Date(fixIosDateFormat(startDate)) + endDate = new Date(fixIosDateFormat(endDate)) + return startDate <= endDate +} + +function checkDate(date){ + const dateReg = /((19|20)\d{2})(-|\/)\d{1,2}(-|\/)\d{1,2}/g + return date.match(dateReg) +} + +const dateTimeReg = /^\d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])( [0-5]?[0-9]:[0-5]?[0-9]:[0-5]?[0-9])?$/ +function fixIosDateFormat(value) { + if (typeof value === 'string' && dateTimeReg.test(value)) { + value = value.replace(/-/g, '/') + } + return value +} + +export {Calendar, getDateTime, getDate, getTime, addZero, getDefaultSecond, dateCompare, checkDate, fixIosDateFormat} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 0000000..254d7e3 --- /dev/null +++ b/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.25", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "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-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "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/uni_modules/uni-datetime-picker/readme.md b/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/uni_modules/uni-datetime-picker/readme.md @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.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-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..86e7444 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000..835f33b Binary files /dev/null and b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "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" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "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" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni_modules/uni-table/changelog.md b/uni_modules/uni-table/changelog.md new file mode 100644 index 0000000..9f87c67 --- /dev/null +++ b/uni_modules/uni-table/changelog.md @@ -0,0 +1,27 @@ +## 1.2.3(2023-03-28) +- 修复 在vue3模式下可能会出现错误的问题 +## 1.2.2(2022-11-29) +- 优化 主题样式 +## 1.2.1(2022-06-06) +- 修复 微信小程序存在无使用组件的问题 +## 1.2.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-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-table/components/uni-table/uni-table.vue b/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 0000000..21d9527 --- /dev/null +++ b/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 0000000..fbe1bdc --- /dev/null +++ b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-td/uni-td.vue b/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 0000000..9ce93e9 --- /dev/null +++ b/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 0000000..df22a71 --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,511 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 0000000..14889dd --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 0000000..0dd18cd --- /dev/null +++ b/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 0000000..1089187 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 0000000..f9b9671 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uni-table/i18n/en.json b/uni_modules/uni-table/i18n/en.json new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/uni_modules/uni-table/i18n/en.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/es.json b/uni_modules/uni-table/i18n/es.json new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/uni_modules/uni-table/i18n/es.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/uni_modules/uni-table/i18n/fr.json b/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/uni_modules/uni-table/i18n/fr.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/index.js b/uni_modules/uni-table/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/uni_modules/uni-table/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-table/i18n/zh-Hans.json b/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/uni_modules/uni-table/i18n/zh-Hant.json b/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/uni_modules/uni-table/package.json b/uni_modules/uni-table/package.json new file mode 100644 index 0000000..7c2f91c --- /dev/null +++ b/uni_modules/uni-table/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.3", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "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-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "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", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-table/readme.md b/uni_modules/uni-table/readme.md new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/uni_modules/uni-table/readme.md @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js index 3de339c..69d4acd 100644 --- a/unpackage/dist/dev/app-plus/app-config-service.js +++ b/unpackage/dist/dev/app-plus/app-config-service.js @@ -1,8 +1,8 @@ ;(function(){ let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; - const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"test","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"tabBar":{"position":"bottom","color":"#B3B3B3","selectedColor":"black","borderStyle":"white","blurEffect":"none","fontSize":"10px","iconWidth":"24px","spacing":"3px","height":"50px","backgroundColor":"#EBF1EF","list":[{"pagePath":"pages/index/index","text":"地块"},{"pagePath":"pages/test/index","text":"数据"}],"selectedIndex":0,"shown":true},"locales":{},"darkmode":false,"themeConfig":{}}; - const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":0,"enablePullDownRefresh":true,"navigationBar":{"titleText":"uni-app","type":"default"},"isNVue":false}},{"path":"pages/test/index","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":1,"enablePullDownRefresh":true,"navigationBar":{"titleText":"uni-app","type":"default"},"isNVue":false}},{"path":"pages/test/index1","meta":{"enablePullDownRefresh":true,"navigationBar":{"titleText":"uni-app","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); + const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"test","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.8.12","entryPagePath":"pages/detail/plant","entryPageQuery":"","realEntryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; + const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/InformationAdd/index","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"信息添加","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/detail/plant","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"详情","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/test/index","meta":{"enablePullDownRefresh":true,"navigationBar":{"titleText":"uni-app","type":"default"},"isNVue":false}},{"path":"pages/test/index1","meta":{"enablePullDownRefresh":true,"navigationBar":{"titleText":"uni-app","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); __uniConfig.styles=[];//styles __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index 10f1f7f..1a874e0 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -31,7 +31,220 @@ if (uni.restoreGlobal) { } (function(vue, shared) { "use strict"; - const ON_LOAD = "onLoad"; + const icons = { + "uicon-level": "", + "uicon-column-line": "", + "uicon-checkbox-mark": "", + "uicon-folder": "", + "uicon-movie": "", + "uicon-star-fill": "", + "uicon-star": "", + "uicon-phone-fill": "", + "uicon-phone": "", + "uicon-apple-fill": "", + "uicon-chrome-circle-fill": "", + "uicon-backspace": "", + "uicon-attach": "", + "uicon-cut": "", + "uicon-empty-car": "", + "uicon-empty-coupon": "", + "uicon-empty-address": "", + "uicon-empty-favor": "", + "uicon-empty-permission": "", + "uicon-empty-news": "", + "uicon-empty-search": "", + "uicon-github-circle-fill": "", + "uicon-rmb": "", + "uicon-person-delete-fill": "", + "uicon-reload": "", + "uicon-order": "", + "uicon-server-man": "", + "uicon-search": "", + "uicon-fingerprint": "", + "uicon-more-dot-fill": "", + "uicon-scan": "", + "uicon-share-square": "", + "uicon-map": "", + "uicon-map-fill": "", + "uicon-tags": "", + "uicon-tags-fill": "", + "uicon-bookmark-fill": "", + "uicon-bookmark": "", + "uicon-eye": "", + "uicon-eye-fill": "", + "uicon-mic": "", + "uicon-mic-off": "", + "uicon-calendar": "", + "uicon-calendar-fill": "", + "uicon-trash": "", + "uicon-trash-fill": "", + "uicon-play-left": "", + "uicon-play-right": "", + "uicon-minus": "", + "uicon-plus": "", + "uicon-info": "", + "uicon-info-circle": "", + "uicon-info-circle-fill": "", + "uicon-question": "", + "uicon-error": "", + "uicon-close": "", + "uicon-checkmark": "", + "uicon-android-circle-fill": "", + "uicon-android-fill": "", + "uicon-ie": "", + "uicon-IE-circle-fill": "", + "uicon-google": "", + "uicon-google-circle-fill": "", + "uicon-setting-fill": "", + "uicon-setting": "", + "uicon-minus-square-fill": "", + "uicon-plus-square-fill": "", + "uicon-heart": "", + "uicon-heart-fill": "", + "uicon-camera": "", + "uicon-camera-fill": "", + "uicon-more-circle": "", + "uicon-more-circle-fill": "", + "uicon-chat": "", + "uicon-chat-fill": "", + "uicon-bag-fill": "", + "uicon-bag": "", + "uicon-error-circle-fill": "", + "uicon-error-circle": "", + "uicon-close-circle": "", + "uicon-close-circle-fill": "", + "uicon-checkmark-circle": "", + "uicon-checkmark-circle-fill": "", + "uicon-question-circle-fill": "", + "uicon-question-circle": "", + "uicon-share": "", + "uicon-share-fill": "", + "uicon-shopping-cart": "", + "uicon-shopping-cart-fill": "", + "uicon-bell": "", + "uicon-bell-fill": "", + "uicon-list": "", + "uicon-list-dot": "", + "uicon-zhihu": "", + "uicon-zhihu-circle-fill": "", + "uicon-zhifubao": "", + "uicon-zhifubao-circle-fill": "", + "uicon-weixin-circle-fill": "", + "uicon-weixin-fill": "", + "uicon-twitter-circle-fill": "", + "uicon-twitter": "", + "uicon-taobao-circle-fill": "", + "uicon-taobao": "", + "uicon-weibo-circle-fill": "", + "uicon-weibo": "", + "uicon-qq-fill": "", + "uicon-qq-circle-fill": "", + "uicon-moments-circel-fill": "", + "uicon-moments": "", + "uicon-qzone": "", + "uicon-qzone-circle-fill": "", + "uicon-baidu-circle-fill": "", + "uicon-baidu": "", + "uicon-facebook-circle-fill": "", + "uicon-facebook": "", + "uicon-car": "", + "uicon-car-fill": "", + "uicon-warning-fill": "", + "uicon-warning": "", + "uicon-clock-fill": "", + "uicon-clock": "", + "uicon-edit-pen": "", + "uicon-edit-pen-fill": "", + "uicon-email": "", + "uicon-email-fill": "", + "uicon-minus-circle": "", + "uicon-minus-circle-fill": "", + "uicon-plus-circle": "", + "uicon-plus-circle-fill": "", + "uicon-file-text": "", + "uicon-file-text-fill": "", + "uicon-pushpin": "", + "uicon-pushpin-fill": "", + "uicon-grid": "", + "uicon-grid-fill": "", + "uicon-play-circle": "", + "uicon-play-circle-fill": "", + "uicon-pause-circle-fill": "", + "uicon-pause": "", + "uicon-pause-circle": "", + "uicon-eye-off": "", + "uicon-eye-off-outline": "", + "uicon-gift-fill": "", + "uicon-gift": "", + "uicon-rmb-circle-fill": "", + "uicon-rmb-circle": "", + "uicon-kefu-ermai": "", + "uicon-server-fill": "", + "uicon-coupon-fill": "", + "uicon-coupon": "", + "uicon-integral": "", + "uicon-integral-fill": "", + "uicon-home-fill": "", + "uicon-home": "", + "uicon-hourglass-half-fill": "", + "uicon-hourglass": "", + "uicon-account": "", + "uicon-plus-people-fill": "", + "uicon-minus-people-fill": "", + "uicon-account-fill": "", + "uicon-thumb-down-fill": "", + "uicon-thumb-down": "", + "uicon-thumb-up": "", + "uicon-thumb-up-fill": "", + "uicon-lock-fill": "", + "uicon-lock-open": "", + "uicon-lock-opened-fill": "", + "uicon-lock": "", + "uicon-red-packet-fill": "", + "uicon-photo-fill": "", + "uicon-photo": "", + "uicon-volume-off-fill": "", + "uicon-volume-off": "", + "uicon-volume-fill": "", + "uicon-volume": "", + "uicon-red-packet": "", + "uicon-download": "", + "uicon-arrow-up-fill": "", + "uicon-arrow-down-fill": "", + "uicon-play-left-fill": "", + "uicon-play-right-fill": "", + "uicon-rewind-left-fill": "", + "uicon-rewind-right-fill": "", + "uicon-arrow-downward": "", + "uicon-arrow-leftward": "", + "uicon-arrow-rightward": "", + "uicon-arrow-upward": "", + "uicon-arrow-down": "", + "uicon-arrow-right": "", + "uicon-arrow-left": "", + "uicon-arrow-up": "", + "uicon-skip-back-left": "", + "uicon-skip-forward-right": "", + "uicon-rewind-right": "", + "uicon-rewind-left": "", + "uicon-arrow-right-double": "", + "uicon-arrow-left-double": "", + "uicon-wifi-off": "", + "uicon-wifi": "", + "uicon-empty-data": "", + "uicon-empty-history": "", + "uicon-empty-list": "", + "uicon-empty-page": "", + "uicon-empty-order": "", + "uicon-man": "", + "uicon-woman": "", + "uicon-man-add": "", + "uicon-man-add-fill": "", + "uicon-man-delete": "", + "uicon-man-delete-fill": "", + "uicon-zh": "", + "uicon-en": "" + }; function formatAppLog(type, filename, ...args) { if (uni.__log__) { uni.__log__(type, filename, ...args); @@ -42,10 +255,6 @@ if (uni.restoreGlobal) { function resolveEasycom(component, easycom) { return shared.isString(component) ? easycom : component; } - const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => { - !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target); - }; - const onLoad = /* @__PURE__ */ createHook(ON_LOAD); const version = "3"; { formatAppLog("log", "at node_modules/uview-plus/libs/config/config.js:5", ` @@ -226,7 +435,7 @@ if (uni.restoreGlobal) { color: "" } }; - const Calendar = { + const Calendar$1 = { // calendar 组件 calendar: { title: "日期选择", @@ -1497,7 +1706,7 @@ if (uni.restoreGlobal) { previewImage: true } }; - const props$3 = { + const props$b = { ...ActionSheet, ...Album, ...Alert, @@ -1506,7 +1715,7 @@ if (uni.restoreGlobal) { ...Backtop, ...Badge, ...Button, - ...Calendar, + ...Calendar$1, ...CarKeyboard, ...Cell, ...CellGroup, @@ -1587,62 +1796,92 @@ if (uni.restoreGlobal) { ...Transition, ...Upload }; - const props$2 = { + const props$a = { props: { - // 是否显示组件 - show: { - type: Boolean, - default: props$3.loadingIcon.show + // 图标类名 + name: { + type: String, + default: props$b.icon.name }, - // 颜色 + // 图标颜色,可接受主题色 color: { type: String, - default: props$3.loadingIcon.color + default: props$b.icon.color }, - // 提示文字颜色 - textColor: { - type: String, - default: props$3.loadingIcon.textColor - }, - // 文字和图标是否垂直排列 - vertical: { - type: Boolean, - default: props$3.loadingIcon.vertical - }, - // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 - mode: { - type: String, - default: props$3.loadingIcon.mode - }, - // 图标大小,单位默认px + // 字体大小,单位px size: { type: [String, Number], - default: props$3.loadingIcon.size + default: props$b.icon.size }, - // 文字大小 - textSize: { + // 是否显示粗体 + bold: { + type: Boolean, + default: props$b.icon.bold + }, + // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) + index: { type: [String, Number], - default: props$3.loadingIcon.textSize + default: props$b.icon.index }, - // 文字内容 - text: { - type: [String, Number], - default: props$3.loadingIcon.text - }, - // 动画模式 - timingFunction: { + // 触摸图标时的类名 + hoverClass: { type: String, - default: props$3.loadingIcon.timingFunction + default: props$b.icon.hoverClass }, - // 动画执行周期时间 - duration: { - type: [String, Number], - default: props$3.loadingIcon.duration - }, - // mode=circle时的暗边颜色 - inactiveColor: { + // 自定义扩展前缀,方便用户扩展自己的图标库 + customPrefix: { type: String, - default: props$3.loadingIcon.inactiveColor + default: props$b.icon.customPrefix + }, + // 图标右边或者下面的文字 + label: { + type: [String, Number], + default: props$b.icon.label + }, + // label的位置,只能右边或者下边 + labelPos: { + type: String, + default: props$b.icon.labelPos + }, + // label的大小 + labelSize: { + type: [String, Number], + default: props$b.icon.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: props$b.icon.labelColor + }, + // label与图标的距离 + space: { + type: [String, Number], + default: props$b.icon.space + }, + // 图片的mode + imgMode: { + type: String, + default: props$b.icon.imgMode + }, + // 用于显示图片小图标时,图片的宽度 + width: { + type: [String, Number], + default: props$b.icon.width + }, + // 用于显示图片小图标时,图片的高度 + height: { + type: [String, Number], + default: props$b.icon.height + }, + // 用于解决某些情况下,让图标垂直居中的用途 + top: { + type: [String, Number], + default: props$b.icon.top + }, + // 是否阻止事件传播 + stop: { + type: Boolean, + default: props$b.icon.stop } } }; @@ -1783,440 +2022,13 @@ if (uni.restoreGlobal) { } return target; }; - const _sfc_main$6 = { - name: "u-loading-icon", - mixins: [mpMixin, mixin, props$2], - data() { - return { - // Array.form可以通过一个伪数组对象创建指定长度的数组 - // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from - array12: Array.from({ - length: 12 - }), - // 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行 - // 在iOS nvue上,则会一开始默认执行两个周期的动画 - aniAngel: 360, - // 动画旋转角度 - webviewHide: false, - // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗 - loading: false - // 是否运行中,针对nvue使用 - }; - }, - computed: { - // 当为circle类型时,给其另外三边设置一个更轻一些的颜色 - // 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色 - // 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好) - otherBorderColor() { - const lightColor = uni.$u.colorGradient(this.color, "#ffffff", 100)[80]; - if (this.mode === "circle") { - return this.inactiveColor ? this.inactiveColor : lightColor; - } else { - return "transparent"; - } - } - }, - watch: { - show(n) { - } - }, - mounted() { - this.init(); - }, - methods: { - init() { - setTimeout(() => { - this.show && this.addEventListenerToWebview(); - }, 20); - }, - // 监听webview的显示与隐藏 - addEventListenerToWebview() { - const pages2 = getCurrentPages(); - const page2 = pages2[pages2.length - 1]; - const currentWebview = page2.$getAppWebview(); - currentWebview.addEventListener("hide", () => { - this.webviewHide = true; - }); - currentWebview.addEventListener("show", () => { - this.webviewHide = false; - }); - } - } - }; - function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { - return _ctx.show ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["u-loading-icon", [_ctx.vertical && "u-loading-icon--vertical"]]), - style: vue.normalizeStyle([_ctx.$u.addStyle(_ctx.customStyle)]) - }, - [ - !$data.webviewHide ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["u-loading-icon__spinner", [`u-loading-icon__spinner--${_ctx.mode}`]]), - ref: "ani", - style: vue.normalizeStyle({ - color: _ctx.color, - width: _ctx.$u.addUnit(_ctx.size), - height: _ctx.$u.addUnit(_ctx.size), - borderTopColor: _ctx.color, - borderBottomColor: $options.otherBorderColor, - borderLeftColor: $options.otherBorderColor, - borderRightColor: $options.otherBorderColor, - "animation-duration": `${_ctx.duration}ms`, - "animation-timing-function": _ctx.mode === "semicircle" || _ctx.mode === "circle" ? _ctx.timingFunction : "" - }) - }, - [ - _ctx.mode === "spinner" ? (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - { key: 0 }, - vue.renderList($data.array12, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - key: index2, - class: "u-loading-icon__dot" - }); - }), - 128 - /* KEYED_FRAGMENT */ - )) : vue.createCommentVNode("v-if", true) - ], - 6 - /* CLASS, STYLE */ - )) : vue.createCommentVNode("v-if", true), - _ctx.text ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 1, - class: "u-loading-icon__text", - style: vue.normalizeStyle({ - fontSize: _ctx.$u.addUnit(_ctx.textSize), - color: _ctx.textColor - }) - }, - vue.toDisplayString(_ctx.text), - 5 - /* TEXT, STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], - 6 - /* CLASS, STYLE */ - )) : vue.createCommentVNode("v-if", true); - } - const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$3], ["__scopeId", "data-v-00752c6d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue"]]); - const icons = { - "uicon-level": "", - "uicon-column-line": "", - "uicon-checkbox-mark": "", - "uicon-folder": "", - "uicon-movie": "", - "uicon-star-fill": "", - "uicon-star": "", - "uicon-phone-fill": "", - "uicon-phone": "", - "uicon-apple-fill": "", - "uicon-chrome-circle-fill": "", - "uicon-backspace": "", - "uicon-attach": "", - "uicon-cut": "", - "uicon-empty-car": "", - "uicon-empty-coupon": "", - "uicon-empty-address": "", - "uicon-empty-favor": "", - "uicon-empty-permission": "", - "uicon-empty-news": "", - "uicon-empty-search": "", - "uicon-github-circle-fill": "", - "uicon-rmb": "", - "uicon-person-delete-fill": "", - "uicon-reload": "", - "uicon-order": "", - "uicon-server-man": "", - "uicon-search": "", - "uicon-fingerprint": "", - "uicon-more-dot-fill": "", - "uicon-scan": "", - "uicon-share-square": "", - "uicon-map": "", - "uicon-map-fill": "", - "uicon-tags": "", - "uicon-tags-fill": "", - "uicon-bookmark-fill": "", - "uicon-bookmark": "", - "uicon-eye": "", - "uicon-eye-fill": "", - "uicon-mic": "", - "uicon-mic-off": "", - "uicon-calendar": "", - "uicon-calendar-fill": "", - "uicon-trash": "", - "uicon-trash-fill": "", - "uicon-play-left": "", - "uicon-play-right": "", - "uicon-minus": "", - "uicon-plus": "", - "uicon-info": "", - "uicon-info-circle": "", - "uicon-info-circle-fill": "", - "uicon-question": "", - "uicon-error": "", - "uicon-close": "", - "uicon-checkmark": "", - "uicon-android-circle-fill": "", - "uicon-android-fill": "", - "uicon-ie": "", - "uicon-IE-circle-fill": "", - "uicon-google": "", - "uicon-google-circle-fill": "", - "uicon-setting-fill": "", - "uicon-setting": "", - "uicon-minus-square-fill": "", - "uicon-plus-square-fill": "", - "uicon-heart": "", - "uicon-heart-fill": "", - "uicon-camera": "", - "uicon-camera-fill": "", - "uicon-more-circle": "", - "uicon-more-circle-fill": "", - "uicon-chat": "", - "uicon-chat-fill": "", - "uicon-bag-fill": "", - "uicon-bag": "", - "uicon-error-circle-fill": "", - "uicon-error-circle": "", - "uicon-close-circle": "", - "uicon-close-circle-fill": "", - "uicon-checkmark-circle": "", - "uicon-checkmark-circle-fill": "", - "uicon-question-circle-fill": "", - "uicon-question-circle": "", - "uicon-share": "", - "uicon-share-fill": "", - "uicon-shopping-cart": "", - "uicon-shopping-cart-fill": "", - "uicon-bell": "", - "uicon-bell-fill": "", - "uicon-list": "", - "uicon-list-dot": "", - "uicon-zhihu": "", - "uicon-zhihu-circle-fill": "", - "uicon-zhifubao": "", - "uicon-zhifubao-circle-fill": "", - "uicon-weixin-circle-fill": "", - "uicon-weixin-fill": "", - "uicon-twitter-circle-fill": "", - "uicon-twitter": "", - "uicon-taobao-circle-fill": "", - "uicon-taobao": "", - "uicon-weibo-circle-fill": "", - "uicon-weibo": "", - "uicon-qq-fill": "", - "uicon-qq-circle-fill": "", - "uicon-moments-circel-fill": "", - "uicon-moments": "", - "uicon-qzone": "", - "uicon-qzone-circle-fill": "", - "uicon-baidu-circle-fill": "", - "uicon-baidu": "", - "uicon-facebook-circle-fill": "", - "uicon-facebook": "", - "uicon-car": "", - "uicon-car-fill": "", - "uicon-warning-fill": "", - "uicon-warning": "", - "uicon-clock-fill": "", - "uicon-clock": "", - "uicon-edit-pen": "", - "uicon-edit-pen-fill": "", - "uicon-email": "", - "uicon-email-fill": "", - "uicon-minus-circle": "", - "uicon-minus-circle-fill": "", - "uicon-plus-circle": "", - "uicon-plus-circle-fill": "", - "uicon-file-text": "", - "uicon-file-text-fill": "", - "uicon-pushpin": "", - "uicon-pushpin-fill": "", - "uicon-grid": "", - "uicon-grid-fill": "", - "uicon-play-circle": "", - "uicon-play-circle-fill": "", - "uicon-pause-circle-fill": "", - "uicon-pause": "", - "uicon-pause-circle": "", - "uicon-eye-off": "", - "uicon-eye-off-outline": "", - "uicon-gift-fill": "", - "uicon-gift": "", - "uicon-rmb-circle-fill": "", - "uicon-rmb-circle": "", - "uicon-kefu-ermai": "", - "uicon-server-fill": "", - "uicon-coupon-fill": "", - "uicon-coupon": "", - "uicon-integral": "", - "uicon-integral-fill": "", - "uicon-home-fill": "", - "uicon-home": "", - "uicon-hourglass-half-fill": "", - "uicon-hourglass": "", - "uicon-account": "", - "uicon-plus-people-fill": "", - "uicon-minus-people-fill": "", - "uicon-account-fill": "", - "uicon-thumb-down-fill": "", - "uicon-thumb-down": "", - "uicon-thumb-up": "", - "uicon-thumb-up-fill": "", - "uicon-lock-fill": "", - "uicon-lock-open": "", - "uicon-lock-opened-fill": "", - "uicon-lock": "", - "uicon-red-packet-fill": "", - "uicon-photo-fill": "", - "uicon-photo": "", - "uicon-volume-off-fill": "", - "uicon-volume-off": "", - "uicon-volume-fill": "", - "uicon-volume": "", - "uicon-red-packet": "", - "uicon-download": "", - "uicon-arrow-up-fill": "", - "uicon-arrow-down-fill": "", - "uicon-play-left-fill": "", - "uicon-play-right-fill": "", - "uicon-rewind-left-fill": "", - "uicon-rewind-right-fill": "", - "uicon-arrow-downward": "", - "uicon-arrow-leftward": "", - "uicon-arrow-rightward": "", - "uicon-arrow-upward": "", - "uicon-arrow-down": "", - "uicon-arrow-right": "", - "uicon-arrow-left": "", - "uicon-arrow-up": "", - "uicon-skip-back-left": "", - "uicon-skip-forward-right": "", - "uicon-rewind-right": "", - "uicon-rewind-left": "", - "uicon-arrow-right-double": "", - "uicon-arrow-left-double": "", - "uicon-wifi-off": "", - "uicon-wifi": "", - "uicon-empty-data": "", - "uicon-empty-history": "", - "uicon-empty-list": "", - "uicon-empty-page": "", - "uicon-empty-order": "", - "uicon-man": "", - "uicon-woman": "", - "uicon-man-add": "", - "uicon-man-add-fill": "", - "uicon-man-delete": "", - "uicon-man-delete-fill": "", - "uicon-zh": "", - "uicon-en": "" - }; - const props$1 = { - props: { - // 图标类名 - name: { - type: String, - default: props$3.icon.name - }, - // 图标颜色,可接受主题色 - color: { - type: String, - default: props$3.icon.color - }, - // 字体大小,单位px - size: { - type: [String, Number], - default: props$3.icon.size - }, - // 是否显示粗体 - bold: { - type: Boolean, - default: props$3.icon.bold - }, - // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) - index: { - type: [String, Number], - default: props$3.icon.index - }, - // 触摸图标时的类名 - hoverClass: { - type: String, - default: props$3.icon.hoverClass - }, - // 自定义扩展前缀,方便用户扩展自己的图标库 - customPrefix: { - type: String, - default: props$3.icon.customPrefix - }, - // 图标右边或者下面的文字 - label: { - type: [String, Number], - default: props$3.icon.label - }, - // label的位置,只能右边或者下边 - labelPos: { - type: String, - default: props$3.icon.labelPos - }, - // label的大小 - labelSize: { - type: [String, Number], - default: props$3.icon.labelSize - }, - // label的颜色 - labelColor: { - type: String, - default: props$3.icon.labelColor - }, - // label与图标的距离 - space: { - type: [String, Number], - default: props$3.icon.space - }, - // 图片的mode - imgMode: { - type: String, - default: props$3.icon.imgMode - }, - // 用于显示图片小图标时,图片的宽度 - width: { - type: [String, Number], - default: props$3.icon.width - }, - // 用于显示图片小图标时,图片的高度 - height: { - type: [String, Number], - default: props$3.icon.height - }, - // 用于解决某些情况下,让图标垂直居中的用途 - top: { - type: [String, Number], - default: props$3.icon.top - }, - // 是否阻止事件传播 - stop: { - type: Boolean, - default: props$3.icon.stop - } - } - }; - const _sfc_main$5 = { + const _sfc_main$l = { name: "u-icon", data() { return {}; }, emits: ["click"], - mixins: [mpMixin, mixin, props$1], + mixins: [mpMixin, mixin, props$a], computed: { uClasses() { let classes = []; @@ -2260,7 +2072,7 @@ if (uni.restoreGlobal) { } } }; - function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "view", { @@ -2304,362 +2116,396 @@ if (uni.restoreGlobal) { /* CLASS */ ); } - const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$2], ["__scopeId", "data-v-1c933a9a"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-icon/u-icon.vue"]]); - const props = { + const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$f], ["__scopeId", "data-v-1c933a9a"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-icon/u-icon.vue"]]); + const props$9 = { props: { - // 是否细边框 - hairline: { + // 是否展示组件 + show: { type: Boolean, - default: props$3.button.hairline + default: props$b.transition.show }, - // 按钮的预置样式,info,primary,error,warning,success - type: { + // 使用的动画模式 + mode: { type: String, - default: props$3.button.type + default: props$b.transition.mode }, - // 按钮尺寸,large,normal,small,mini - size: { + // 动画的执行时间,单位ms + duration: { + type: [String, Number], + default: props$b.transition.duration + }, + // 使用的动画过渡函数 + timingFunction: { type: String, - default: props$3.button.size + default: props$b.transition.timingFunction + } + } + }; + const getClassNames = (name) => ({ + enter: `u-${name}-enter u-${name}-enter-active`, + "enter-to": `u-${name}-enter-to u-${name}-enter-active`, + leave: `u-${name}-leave u-${name}-leave-active`, + "leave-to": `u-${name}-leave-to u-${name}-leave-active` + }); + const transition = { + methods: { + // 组件被点击发出事件 + clickHandler() { + this.$emit("click"); }, - // 按钮形状,circle(两边为半圆),square(带圆角) + // vue版本的组件进场处理 + async vueEnter() { + const classNames = getClassNames(this.mode); + this.status = "enter"; + this.$emit("beforeEnter"); + this.inited = true; + this.display = true; + this.classes = classNames.enter; + await vue.nextTick(); + { + this.$emit("enter"); + this.transitionEnded = false; + this.$emit("afterEnter"); + this.classes = classNames["enter-to"]; + } + }, + // 动画离场处理 + async vueLeave() { + if (!this.display) + return; + const classNames = getClassNames(this.mode); + this.status = "leave"; + this.$emit("beforeLeave"); + this.classes = classNames.leave; + await vue.nextTick(); + { + this.transitionEnded = false; + this.$emit("leave"); + setTimeout(this.onTransitionEnd, this.duration); + this.classes = classNames["leave-to"]; + } + }, + // 完成过渡后触发 + onTransitionEnd() { + if (this.transitionEnded) + return; + this.transitionEnded = true; + this.$emit(this.status === "leave" ? "afterLeave" : "afterEnter"); + if (!this.show && this.display) { + this.display = false; + this.inited = false; + } + } + } + }; + const _sfc_main$k = { + name: "u-transition", + data() { + return { + inited: false, + // 是否显示/隐藏组件 + viewStyle: {}, + // 组件内部的样式 + status: "", + // 记录组件动画的状态 + transitionEnded: false, + // 组件是否结束的标记 + display: false, + // 组件是否展示 + classes: "" + // 应用的类名 + }; + }, + emits: ["click", "beforeEnter", "enter", "afterEnter", "beforeLeave", "leave", "afterLeave"], + computed: { + mergeStyle() { + const { viewStyle, customStyle } = this; + return { + transitionDuration: `${this.duration}ms`, + // display: `${this.display ? '' : 'none'}`, + transitionTimingFunction: this.timingFunction, + // 避免自定义样式影响到动画属性,所以写在viewStyle前面 + ...uni.$u.addStyle(customStyle), + ...viewStyle + }; + } + }, + // 将mixin挂在到组件中,uni.$u.mixin实际上为一个vue格式对象 + mixins: [mpMixin, mixin, transition, props$9], + watch: { + show: { + handler(newVal) { + newVal ? this.vueEnter() : this.vueLeave(); + }, + // 表示同时监听初始化时的props的show的意思 + immediate: true + } + } + }; + function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) { + return $data.inited ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 0, + class: vue.normalizeClass(["u-transition", $data.classes]), + ref: "u-transition", + onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickHandler && _ctx.clickHandler(...args)), + style: vue.normalizeStyle([$options.mergeStyle]), + onTouchmove: _cache[1] || (_cache[1] = (...args) => _ctx.noop && _ctx.noop(...args)) + }, + [ + vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) + ], + 38 + /* CLASS, STYLE, HYDRATE_EVENTS */ + )) : vue.createCommentVNode("v-if", true); + } + const __easycom_4 = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$e], ["__scopeId", "data-v-0573594d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-transition/u-transition.vue"]]); + const props$8 = { + props: { + // 图片地址 + src: { + type: String, + default: props$b.image.src + }, + // 裁剪模式 + mode: { + type: String, + default: props$b.image.mode + }, + // 宽度,单位任意 + width: { + type: [String, Number], + default: props$b.image.width + }, + // 高度,单位任意 + height: { + type: [String, Number], + default: props$b.image.height + }, + // 图片形状,circle-圆形,square-方形 shape: { type: String, - default: props$3.button.shape + default: props$b.image.shape }, - // 按钮是否镂空 - plain: { + // 圆角,单位任意 + radius: { + type: [String, Number], + default: props$b.image.radius + }, + // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 + lazyLoad: { type: Boolean, - default: props$3.button.plain + default: props$b.image.lazyLoad }, - // 是否禁止状态 - disabled: { + // 开启长按图片显示识别微信小程序码菜单 + showMenuByLongpress: { type: Boolean, - default: props$3.button.disabled + default: props$b.image.showMenuByLongpress }, - // 是否加载中 - loading: { + // 加载中的图标,或者小图片 + loadingIcon: { + type: String, + default: props$b.image.loadingIcon + }, + // 加载失败的图标,或者小图片 + errorIcon: { + type: String, + default: props$b.image.errorIcon + }, + // 是否显示加载中的图标或者自定义的slot + showLoading: { type: Boolean, - default: props$3.button.loading + default: props$b.image.showLoading }, - // 加载中提示文字 - loadingText: { - type: [String, Number], - default: props$3.button.loadingText - }, - // 加载状态图标类型 - loadingMode: { - type: String, - default: props$3.button.loadingMode - }, - // 加载图标大小 - loadingSize: { - type: [String, Number], - default: props$3.button.loadingSize - }, - // 开放能力,具体请看uniapp稳定关于button组件部分说明 - // https://uniapp.dcloud.io/component/button - openType: { - type: String, - default: props$3.button.openType - }, - // 用于
组件,点击分别会触发 组件的 submit/reset 事件 - // 取值为submit(提交表单),reset(重置表单) - formType: { - type: String, - default: props$3.button.formType - }, - // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 - // 只微信小程序、QQ小程序有效 - appParameter: { - type: String, - default: props$3.button.appParameter - }, - // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 - hoverStopPropagation: { + // 是否显示加载错误的图标或者自定义的slot + showError: { type: Boolean, - default: props$3.button.hoverStopPropagation + default: props$b.image.showError }, - // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 - lang: { - type: String, - default: props$3.button.lang - }, - // 会话来源,open-type="contact"时有效。只微信小程序有效 - sessionFrom: { - type: String, - default: props$3.button.sessionFrom - }, - // 会话内消息卡片标题,open-type="contact"时有效 - // 默认当前标题,只微信小程序有效 - sendMessageTitle: { - type: String, - default: props$3.button.sendMessageTitle - }, - // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 - // 默认当前分享路径,只微信小程序有效 - sendMessagePath: { - type: String, - default: props$3.button.sendMessagePath - }, - // 会话内消息卡片图片,open-type="contact"时有效 - // 默认当前页面截图,只微信小程序有效 - sendMessageImg: { - type: String, - default: props$3.button.sendMessageImg - }, - // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, - // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 - showMessageCard: { + // 是否需要淡入效果 + fade: { type: Boolean, - default: props$3.button.showMessageCard + default: props$b.image.fade }, - // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 - dataName: { - type: String, - default: props$3.button.dataName + // 只支持网络资源,只对微信小程序有效 + webp: { + type: Boolean, + default: props$b.image.webp }, - // 节流,一定时间内只能触发一次 - throttleTime: { + // 过渡时间,单位ms + duration: { type: [String, Number], - default: props$3.button.throttleTime + default: props$b.image.duration }, - // 按住后多久出现点击态,单位毫秒 - hoverStartTime: { - type: [String, Number], - default: props$3.button.hoverStartTime - }, - // 手指松开后点击态保留时间,单位毫秒 - hoverStayTime: { - type: [String, Number], - default: props$3.button.hoverStayTime - }, - // 按钮文字,之所以通过props传入,是因为slot传入的话 - // nvue中无法控制文字的样式 - text: { - type: [String, Number], - default: props$3.button.text - }, - // 按钮图标 - icon: { + // 背景颜色,用于深色页面加载图片时,为了和背景色融合 + bgColor: { type: String, - default: props$3.button.icon - }, - // 按钮图标 - iconColor: { - type: String, - default: props$3.button.icon - }, - // 按钮颜色,支持传入linear-gradient渐变色 - color: { - type: String, - default: props$3.button.color + default: props$b.image.bgColor } } }; - const _sfc_main$4 = { - name: "u-button", - mixins: [mpMixin, mixin, props], + const _sfc_main$j = { + name: "u-image", + mixins: [mpMixin, mixin, props$8], data() { - return {}; + return { + // 图片是否加载错误,如果是,则显示错误占位图 + isError: false, + // 初始化组件时,默认为加载中状态 + loading: true, + // 不透明度,为了实现淡入淡出的效果 + opacity: 1, + // 过渡时间,因为props的值无法修改,故需要一个中间值 + durationTime: this.duration, + // 图片加载完成时,去掉背景颜色,因为如果是png图片,就会显示灰色的背景 + backgroundStyle: {}, + // 用于fade模式的控制组件显示与否 + show: false + }; + }, + watch: { + src: { + immediate: true, + handler(n) { + if (!n) { + this.isError = true; + } else { + this.isError = false; + this.loading = true; + } + } + } }, computed: { - // 生成bem风格的类名 - bemClass() { - if (!this.color) { - return this.bem( - "button", - ["type", "shape", "size"], - ["disabled", "plain", "hairline"] - ); - } else { - return this.bem( - "button", - ["shape", "size"], - ["disabled", "plain", "hairline"] - ); - } - }, - loadingColor() { - if (this.plain) { - return this.color ? this.color : uni.$u.config.color[`u-${this.type}`]; - } - if (this.type === "info") { - return "#c9c9c9"; - } - return "rgb(200, 200, 200)"; - }, - iconColorCom() { - if (this.iconColor) - return this.iconColor; - if (this.plain) { - return this.color ? this.color : this.type; - } else { - return this.type === "info" ? "#000000" : "#ffffff"; - } - }, - baseColor() { + wrapStyle() { let style = {}; - if (this.color) { - style.color = this.plain ? this.color : "white"; - if (!this.plain) { - style["background-color"] = this.color; - } - if (this.color.indexOf("gradient") !== -1) { - style.borderTopWidth = 0; - style.borderRightWidth = 0; - style.borderBottomWidth = 0; - style.borderLeftWidth = 0; - if (!this.plain) { - style.backgroundImage = this.color; - } - } else { - style.borderColor = this.color; - style.borderWidth = "1px"; - style.borderStyle = "solid"; - } - } - return style; - }, - // nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置 - nvueTextStyle() { - let style = {}; - if (this.type === "info") { - style.color = "#323233"; - } - if (this.color) { - style.color = this.plain ? this.color : "white"; - } - style.fontSize = this.textSize + "px"; - return style; - }, - // 字体大小 - textSize() { - let fontSize = 14, { size } = this; - if (size === "large") - fontSize = 16; - if (size === "normal") - fontSize = 14; - if (size === "small") - fontSize = 12; - if (size === "mini") - fontSize = 10; - return fontSize; + style.width = this.$u.addUnit(this.width); + style.height = this.$u.addUnit(this.height); + style.borderRadius = this.shape == "circle" ? "10000px" : uni.$u.addUnit(this.radius); + style.overflow = this.radius > 0 ? "hidden" : "visible"; + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); } }, - emits: [ - "click", - "getphonenumber", - "getuserinfo", - "error", - "opensetting", - "launchapp" - ], + mounted() { + this.show = true; + }, + emits: ["click", "error", "load"], methods: { - clickHandler() { - if (!this.disabled && !this.loading) { - uni.$u.throttle(() => { - this.$emit("click"); - }, this.throttleTime); - } + // 点击图片 + onClick() { + this.$emit("click"); }, - // 下面为对接uniapp官方按钮开放能力事件回调的对接 - getphonenumber(res) { - this.$emit("getphonenumber", res); + // 图片加载失败 + onErrorHandler(err) { + this.loading = false; + this.isError = true; + this.$emit("error", err); }, - getuserinfo(res) { - this.$emit("getuserinfo", res); + // 图片加载完成,标记loading结束 + onLoadHandler(event) { + this.loading = false; + this.isError = false; + this.$emit("load", event); + this.removeBgColor(); }, - error(res) { - this.$emit("error", res); - }, - opensetting(res) { - this.$emit("opensetting", res); - }, - launchapp(res) { - this.$emit("launchapp", res); + // 移除图片的背景色 + removeBgColor() { + this.backgroundStyle = { + backgroundColor: "transparent" + }; } } }; - function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_loading_icon = resolveEasycom(vue.resolveDynamicComponent("u-loading-icon"), __easycom_0$1); - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1); - return vue.openBlock(), vue.createElementBlock("button", { - "hover-start-time": Number(_ctx.hoverStartTime), - "hover-stay-time": Number(_ctx.hoverStayTime), - "form-type": _ctx.formType, - "open-type": _ctx.openType, - "app-parameter": _ctx.appParameter, - "hover-stop-propagation": _ctx.hoverStopPropagation, - "send-message-title": _ctx.sendMessageTitle, - "send-message-path": _ctx.sendMessagePath, - lang: _ctx.lang, - "data-name": _ctx.dataName, - "session-from": _ctx.sessionFrom, - "send-message-img": _ctx.sendMessageImg, - "show-message-card": _ctx.showMessageCard, - onGetphonenumber: _cache[0] || (_cache[0] = (...args) => $options.getphonenumber && $options.getphonenumber(...args)), - onGetuserinfo: _cache[1] || (_cache[1] = (...args) => $options.getuserinfo && $options.getuserinfo(...args)), - onError: _cache[2] || (_cache[2] = (...args) => $options.error && $options.error(...args)), - onOpensetting: _cache[3] || (_cache[3] = (...args) => $options.opensetting && $options.opensetting(...args)), - onLaunchapp: _cache[4] || (_cache[4] = (...args) => $options.launchapp && $options.launchapp(...args)), - "hover-class": !_ctx.disabled && !_ctx.loading ? "u-button--active" : "", - class: vue.normalizeClass(["u-button u-reset-button", $options.bemClass]), - style: vue.normalizeStyle([$options.baseColor, _ctx.$u.addStyle(_ctx.customStyle)]), - onClick: _cache[5] || (_cache[5] = (...args) => $options.clickHandler && $options.clickHandler(...args)) - }, [ - _ctx.loading ? (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - { key: 0 }, - [ - vue.createVNode(_component_u_loading_icon, { - mode: _ctx.loadingMode, - size: _ctx.loadingSize * 1.15, - color: $options.loadingColor - }, null, 8, ["mode", "size", "color"]), - vue.createElementVNode( - "text", - { - class: "u-button__loading-text", - style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) - }, - vue.toDisplayString(_ctx.loadingText || _ctx.text), - 5 - /* TEXT, STYLE */ - ) - ], - 64 - /* STABLE_FRAGMENT */ - )) : (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - { key: 1 }, - [ - _ctx.icon ? (vue.openBlock(), vue.createBlock(_component_u_icon, { - key: 0, - name: _ctx.icon, - color: $options.iconColorCom, - size: $options.textSize * 1.35, - customStyle: { marginRight: "2px" } - }, null, 8, ["name", "color", "size"])) : vue.createCommentVNode("v-if", true), - vue.renderSlot(_ctx.$slots, "default", {}, () => [ - vue.createElementVNode( - "text", + function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_2); + const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); + return vue.openBlock(), vue.createBlock(_component_u_transition, { + mode: "fade", + show: $data.show, + duration: _ctx.fade ? 1e3 : 0 + }, { + default: vue.withCtx(() => [ + vue.createElementVNode( + "view", + { + class: "u-image", + onClick: _cache[2] || (_cache[2] = (...args) => $options.onClick && $options.onClick(...args)), + style: vue.normalizeStyle([$options.wrapStyle, $data.backgroundStyle]) + }, + [ + !$data.isError ? (vue.openBlock(), vue.createElementBlock("image", { + key: 0, + src: _ctx.src, + mode: _ctx.mode, + onError: _cache[0] || (_cache[0] = (...args) => $options.onErrorHandler && $options.onErrorHandler(...args)), + onLoad: _cache[1] || (_cache[1] = (...args) => $options.onLoadHandler && $options.onLoadHandler(...args)), + "show-menu-by-longpress": _ctx.showMenuByLongpress, + "lazy-load": _ctx.lazyLoad, + class: "u-image__image", + style: vue.normalizeStyle({ + borderRadius: _ctx.shape == "circle" ? "10000px" : _ctx.$u.addUnit(_ctx.radius), + width: _ctx.$u.addUnit(_ctx.width), + height: _ctx.$u.addUnit(_ctx.height) + }) + }, null, 44, ["src", "mode", "show-menu-by-longpress", "lazy-load"])) : vue.createCommentVNode("v-if", true), + _ctx.showLoading && $data.loading ? (vue.openBlock(), vue.createElementBlock( + "view", { - class: "u-button__text", - style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) + key: 1, + class: "u-image__loading", + style: vue.normalizeStyle({ + borderRadius: _ctx.shape == "circle" ? "50%" : _ctx.$u.addUnit(_ctx.radius), + backgroundColor: this.bgColor, + width: _ctx.$u.addUnit(_ctx.width), + height: _ctx.$u.addUnit(_ctx.height) + }) }, - vue.toDisplayString(_ctx.text), - 5 - /* TEXT, STYLE */ - ) - ], true) - ], - 64 - /* STABLE_FRAGMENT */ - )) - ], 46, ["hover-start-time", "hover-stay-time", "form-type", "open-type", "app-parameter", "hover-stop-propagation", "send-message-title", "send-message-path", "lang", "data-name", "session-from", "send-message-img", "show-message-card", "hover-class"]); + [ + vue.renderSlot(_ctx.$slots, "loading", {}, () => [ + vue.createVNode(_component_u_icon, { + name: _ctx.loadingIcon, + width: _ctx.width, + height: _ctx.height + }, null, 8, ["name", "width", "height"]) + ], true) + ], + 4 + /* STYLE */ + )) : vue.createCommentVNode("v-if", true), + _ctx.showError && $data.isError && !$data.loading ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 2, + class: "u-image__error", + style: vue.normalizeStyle({ + borderRadius: _ctx.shape == "circle" ? "50%" : _ctx.$u.addUnit(_ctx.radius), + width: _ctx.$u.addUnit(_ctx.width), + height: _ctx.$u.addUnit(_ctx.height) + }) + }, + [ + vue.renderSlot(_ctx.$slots, "error", {}, () => [ + vue.createVNode(_component_u_icon, { + name: _ctx.errorIcon, + width: _ctx.width, + height: _ctx.height + }, null, 8, ["name", "width", "height"]) + ], true) + ], + 4 + /* STYLE */ + )) : vue.createCommentVNode("v-if", true) + ], + 4 + /* STYLE */ + ) + ]), + _: 3 + /* FORWARDED */ + }, 8, ["show", "duration"]); } - const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$1], ["__scopeId", "data-v-461e713c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-button/u-button.vue"]]); + const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$d], ["__scopeId", "data-v-9d58ba7c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-image/u-image.vue"]]); let BASE_URL; { BASE_URL = "http://ceshi-suyuan.lihaink.cn/"; @@ -4181,46 +4027,4178 @@ This will fail in production.`); } } }); - const _sfc_main$3 = { - __name: "index", + const _sfc_main$i = { + __name: "planting", setup(__props) { - counterStore(); - const res = vue.ref({}); - const handleAdd = () => { - }; - const handle = () => { - }; - onLoad(() => { - companyMine({ - id: 1, - flag: 1 - }).then((res1) => { - res.value = res1.data; - }); - }); + const list = vue.reactive([{ + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }]); return (_ctx, _cache) => { - const _component_up_button = resolveEasycom(vue.resolveDynamicComponent("up-button"), __easycom_0); return vue.openBlock(), vue.createElementBlock("view", { class: "" }, [ - vue.createTextVNode( - vue.toDisplayString(res.value) + " ", - 1 - /* TEXT */ - ), - vue.createVNode(_component_up_button, { - text: "渐变色按钮", - onClick: handleAdd, - color: "linear-gradient(to right, rgb(66, 83, 216), rgb(213, 51, 186))" - }), - vue.createVNode(_component_up_button, { - text: "存值", - onClick: handle, - color: "linear-gradient(to right, rgb(66, 83, 216), rgb(213, 51, 186))" - }) + vue.createElementVNode("view", { class: "content" }, [ + vue.createElementVNode("view", { class: "border-bgc" }), + vue.createElementVNode("view", { + class: "", + style: { "height": "30rpx" } + }), + vue.createElementVNode("view", { class: "card" }, [ + vue.createElementVNode("view", { class: "card-li" }, " 农户名称: 魏鹏飞 "), + vue.createElementVNode("view", { class: "card-li" }, " 种养殖类型: 种植户 "), + vue.createElementVNode("view", { class: "card-li" }, " 土地面积: 00 "), + vue.createElementVNode("view", { class: "card-li" }, " 地址: 对话方式打开就会发生的空间和 ") + ]), + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList(list, (item, index2) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: "card", + key: index2 + }, [ + vue.createElementVNode("view", { class: "tit card-li" }, [ + vue.createElementVNode("view", { class: "" }, " 土地1 "), + vue.createElementVNode("view", { + class: "", + style: { "color": "#00A15E" } + }, " 已种植 ") + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "" }, " 面积: 10亩 ") + ]), + vue.createElementVNode("view", { class: "card-li tit" }, [ + vue.createElementVNode("view", { + class: "", + style: { "font-weight": "normal" } + }, " 农作物: 10亩 "), + vue.createElementVNode("view", { + class: "", + style: { "color": "#FF9B66" } + }, " 已成熟 ") + ]), + vue.createElementVNode("view", { + class: "card-li tit", + style: { "font-weight": "normal" } + }, [ + vue.createElementVNode("view", { class: "" }, " 预计产量: 100kg "), + vue.createElementVNode("view", { class: "" }, " 已出售: 500kg ") + ]) + ]); + }), + 128 + /* KEYED_FRAGMENT */ + )), + vue.createElementVNode("view", { style: { "height": "170rpx" } }) + ]), + vue.createElementVNode("view", { class: "bottom" }, [ + vue.createElementVNode("view", { class: "add-btn" }, " 批量处理 "), + vue.createElementVNode("view", { class: "add-btn add" }, " 增加种植 ") + ]) ]); }; } }; - const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/index/index.vue"]]); + const planting = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-093aaff7"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/components/index/planting.vue"]]); + const _sfc_main$h = { + __name: "index", + setup(__props) { + const list = vue.reactive([{ + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }, { + tit: "土地种植管理" + }]); + return (_ctx, _cache) => { + const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$4); + return vue.openBlock(), vue.createElementBlock("view", { class: "" }, [ + vue.createElementVNode("view", { class: "tabbar" }, [ + vue.createElementVNode("view", { + class: "", + style: { "padding-top": "var(--status-bar-height)" } + }), + vue.createElementVNode("view", { + class: "", + style: { "display": "flex" } + }, [ + vue.createVNode(_component_u__image, { + src: "/static/img/FH.png", + width: "50.82rpx", + height: "50.82rpx", + alt: "" + }), + vue.createElementVNode("view", { class: "scoll-list" }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList(list, (item, index2) => { + return vue.openBlock(), vue.createElementBlock( + "view", + { + key: index2, + class: "scoll-list-li" + }, + vue.toDisplayString(item.tit), + 1 + /* TEXT */ + ); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ]) + ]) + ]), + vue.createElementVNode("view", { style: { "background-color": "#34D190" } }, [ + vue.createElementVNode("view", { + class: "", + style: { "padding-top": "var(--status-bar-height)" } + }), + vue.createElementVNode("view", { + class: "", + style: { "height": "100rpx" } + }) + ]), + vue.createCommentVNode(" 种植户首页 "), + vue.createVNode(planting), + vue.createCommentVNode(" 卖鱼的首页 "), + vue.createCommentVNode("v-if", true) + ]); + }; + } + }; + const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/index/index.vue"]]); + const props$7 = { + props: { + // 绑定的值 + modelValue: { + type: [String, Number], + default: props$b.input.value + }, + // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数 + // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序 + // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序 + // text-文本输入键盘 + type: { + type: String, + default: props$b.input.type + }, + // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true, + // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 + fixed: { + type: Boolean, + default: props$b.input.fixed + }, + // 是否禁用输入框 + disabled: { + type: Boolean, + default: props$b.input.disabled + }, + // 禁用状态时的背景色 + disabledColor: { + type: String, + default: props$b.input.disabledColor + }, + // 是否显示清除控件 + clearable: { + type: Boolean, + default: props$b.input.clearable + }, + // 是否密码类型 + password: { + type: Boolean, + default: props$b.input.password + }, + // 最大输入长度,设置为 -1 的时候不限制最大长度 + maxlength: { + type: [String, Number], + default: props$b.input.maxlength + }, + // 输入框为空时的占位符 + placeholder: { + type: String, + default: props$b.input.placeholder + }, + // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ + placeholderClass: { + type: String, + default: props$b.input.placeholderClass + }, + // 指定placeholder的样式 + placeholderStyle: { + type: [String, Object], + default: props$b.input.placeholderStyle + }, + // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 + showWordLimit: { + type: Boolean, + default: props$b.input.showWordLimit + }, + // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档 + // https://uniapp.dcloud.io/component/input + // https://uniapp.dcloud.io/component/textarea + confirmType: { + type: String, + default: props$b.input.confirmType + }, + // 点击键盘右下角按钮时是否保持键盘不收起,H5无效 + confirmHold: { + type: Boolean, + default: props$b.input.confirmHold + }, + // focus时,点击页面的时候不收起键盘,微信小程序有效 + holdKeyboard: { + type: Boolean, + default: props$b.input.holdKeyboard + }, + // 自动获取焦点 + // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 + focus: { + type: Boolean, + default: props$b.input.focus + }, + // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 + autoBlur: { + type: Boolean, + default: props$b.input.autoBlur + }, + // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 + disableDefaultPadding: { + type: Boolean, + default: props$b.input.disableDefaultPadding + }, + // 指定focus时光标的位置 + cursor: { + type: [String, Number], + default: props$b.input.cursor + }, + // 输入框聚焦时底部与键盘的距离 + cursorSpacing: { + type: [String, Number], + default: props$b.input.cursorSpacing + }, + // 光标起始位置,自动聚集时有效,需与selection-end搭配使用 + selectionStart: { + type: [String, Number], + default: props$b.input.selectionStart + }, + // 光标结束位置,自动聚集时有效,需与selection-start搭配使用 + selectionEnd: { + type: [String, Number], + default: props$b.input.selectionEnd + }, + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: props$b.input.adjustPosition + }, + // 输入框内容对齐方式,可选值为:left|center|right + inputAlign: { + type: String, + default: props$b.input.inputAlign + }, + // 输入框字体的大小 + fontSize: { + type: [String, Number], + default: props$b.input.fontSize + }, + // 输入框字体颜色 + color: { + type: String, + default: props$b.input.color + }, + // 输入框前置图标 + prefixIcon: { + type: String, + default: props$b.input.prefixIcon + }, + // 前置图标样式,对象或字符串 + prefixIconStyle: { + type: [String, Object], + default: props$b.input.prefixIconStyle + }, + // 输入框后置图标 + suffixIcon: { + type: String, + default: props$b.input.suffixIcon + }, + // 后置图标样式,对象或字符串 + suffixIconStyle: { + type: [String, Object], + default: props$b.input.suffixIconStyle + }, + // 边框类型,surround-四周边框,bottom-底部边框,none-无边框 + border: { + type: String, + default: props$b.input.border + }, + // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 + readonly: { + type: Boolean, + default: props$b.input.readonly + }, + // 输入框形状,circle-圆形,square-方形 + shape: { + type: String, + default: props$b.input.shape + }, + // 用于处理或者过滤输入框内容的方法 + formatter: { + type: [Function, null], + default: props$b.input.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true + } + } + }; + const _sfc_main$g = { + name: "u-input", + mixins: [mpMixin, mixin, props$7], + data() { + return { + // 输入框的值 + innerValue: "", + // 是否处于获得焦点状态 + focused: false, + // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化 + firstChange: true, + // value绑定值的变化是由内部还是外部引起的 + changeFromInner: false, + // 过滤处理方法 + innerFormatter: (value) => value + }; + }, + watch: { + modelValue: { + immediate: true, + handler(newVal, oldVal) { + this.innerValue = newVal; + this.firstChange = false; + this.changeFromInner = false; + } + } + }, + computed: { + // 是否显示清除控件 + isShowClear() { + const { clearable, readonly, focused, innerValue } = this; + return !!clearable && !readonly && !!focused && innerValue !== ""; + }, + // 组件的类名 + inputClass() { + let classes = [], { border, disabled, shape } = this; + border === "surround" && (classes = classes.concat(["u-border", "u-input--radius"])); + classes.push(`u-input--${shape}`); + border === "bottom" && (classes = classes.concat([ + "u-border-bottom", + "u-input--no-radius" + ])); + return classes.join(" "); + }, + // 组件的样式 + wrapperStyle() { + const style = {}; + if (this.disabled) { + style.backgroundColor = this.disabledColor; + } + if (this.border === "none") { + style.padding = "0"; + } else { + style.paddingTop = "6px"; + style.paddingBottom = "6px"; + style.paddingLeft = "9px"; + style.paddingRight = "9px"; + } + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); + }, + // 输入框的样式 + inputStyle() { + const style = { + color: this.color, + fontSize: uni.$u.addUnit(this.fontSize), + textAlign: this.inputAlign + }; + return style; + } + }, + emits: ["update:modelValue", "focus", "blur", "change", "confirm", "clear", "keyboardheightchange"], + methods: { + // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 + setFormatter(e) { + this.innerFormatter = e; + }, + // 当键盘输入时,触发input事件 + onInput(e) { + let { value = "" } = e.detail || {}; + const formatter = this.formatter || this.innerFormatter; + const formatValue = formatter(value); + this.innerValue = value; + this.$nextTick(() => { + this.innerValue = formatValue; + this.valueChange(); + }); + }, + // 输入框失去焦点时触发 + onBlur(event) { + this.$emit("blur", event.detail.value); + uni.$u.sleep(50).then(() => { + this.focused = false; + }); + uni.$u.formValidate(this, "blur"); + }, + // 输入框聚焦时触发 + onFocus(event) { + this.focused = true; + this.$emit("focus"); + }, + // 点击完成按钮时触发 + onConfirm(event) { + this.$emit("confirm", this.innerValue); + }, + // 键盘高度发生变化的时候触发此事件 + // 兼容性:微信小程序2.7.0+、App 3.1.0+ + onkeyboardheightchange(event) { + this.$emit("keyboardheightchange", event); + }, + // 内容发生变化,进行处理 + valueChange() { + const value = this.innerValue; + this.$nextTick(() => { + this.$emit("update:modelValue", value); + this.changeFromInner = true; + this.$emit("change", value); + uni.$u.formValidate(this, "change"); + }); + }, + // 点击清除控件 + onClear() { + this.innerValue = ""; + this.$nextTick(() => { + this.valueChange(); + this.$emit("clear"); + }); + }, + /** + * 在安卓nvue上,事件无法冒泡 + * 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后 + * 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发 + */ + clickHandler() { + } + } + }; + function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_2); + return vue.openBlock(), vue.createElementBlock( + "view", + { + class: vue.normalizeClass(["u-input", $options.inputClass]), + style: vue.normalizeStyle([$options.wrapperStyle]) + }, + [ + vue.createElementVNode("view", { class: "u-input__content" }, [ + _ctx.prefixIcon || _ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "u-input__content__prefix-icon" + }, [ + vue.renderSlot(_ctx.$slots, "prefix", {}, () => [ + vue.createVNode(_component_u_icon, { + name: _ctx.prefixIcon, + size: "18", + customStyle: _ctx.prefixIconStyle + }, null, 8, ["name", "customStyle"]) + ], true) + ])) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("view", { + class: "u-input__content__field-wrapper", + onClick: _cache[5] || (_cache[5] = (...args) => $options.clickHandler && $options.clickHandler(...args)) + }, [ + vue.createCommentVNode(" 根据uni-app的input组件文档,H5和APP中只要声明了password参数(无论true还是false),type均失效,此时\n 为了防止type=number时,又存在password属性,type无效,此时需要设置password为undefined\n "), + vue.createElementVNode("input", { + class: "u-input__content__field-wrapper__field", + style: vue.normalizeStyle([$options.inputStyle]), + type: _ctx.type, + focus: _ctx.focus, + cursor: _ctx.cursor, + value: $data.innerValue, + "auto-blur": _ctx.autoBlur, + disabled: _ctx.disabled || _ctx.readonly, + maxlength: _ctx.maxlength, + placeholder: _ctx.placeholder, + "placeholder-style": _ctx.placeholderStyle, + "placeholder-class": _ctx.placeholderClass, + "confirm-type": _ctx.confirmType, + "confirm-hold": _ctx.confirmHold, + "hold-keyboard": _ctx.holdKeyboard, + "cursor-spacing": _ctx.cursorSpacing, + "adjust-position": _ctx.adjustPosition, + "selection-end": _ctx.selectionEnd, + "selection-start": _ctx.selectionStart, + password: _ctx.password || _ctx.type === "password" || void 0, + ignoreCompositionEvent: _ctx.ignoreCompositionEvent, + onInput: _cache[0] || (_cache[0] = (...args) => $options.onInput && $options.onInput(...args)), + onBlur: _cache[1] || (_cache[1] = (...args) => $options.onBlur && $options.onBlur(...args)), + onFocus: _cache[2] || (_cache[2] = (...args) => $options.onFocus && $options.onFocus(...args)), + onConfirm: _cache[3] || (_cache[3] = (...args) => $options.onConfirm && $options.onConfirm(...args)), + onKeyboardheightchange: _cache[4] || (_cache[4] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)) + }, null, 44, ["type", "focus", "cursor", "value", "auto-blur", "disabled", "maxlength", "placeholder", "placeholder-style", "placeholder-class", "confirm-type", "confirm-hold", "hold-keyboard", "cursor-spacing", "adjust-position", "selection-end", "selection-start", "password", "ignoreCompositionEvent"]) + ]), + $options.isShowClear ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "u-input__content__clear", + onClick: _cache[6] || (_cache[6] = (...args) => $options.onClear && $options.onClear(...args)) + }, [ + vue.createVNode(_component_u_icon, { + name: "close", + size: "11", + color: "#ffffff", + customStyle: "line-height: 12px" + }) + ])) : vue.createCommentVNode("v-if", true), + _ctx.suffixIcon || _ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("view", { + key: 2, + class: "u-input__content__subfix-icon" + }, [ + vue.renderSlot(_ctx.$slots, "suffix", {}, () => [ + vue.createVNode(_component_u_icon, { + name: _ctx.suffixIcon, + size: "18", + customStyle: _ctx.suffixIconStyle + }, null, 8, ["name", "customStyle"]) + ], true) + ])) : vue.createCommentVNode("v-if", true) + ]) + ], + 6 + /* CLASS, STYLE */ + ); + } + const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$c], ["__scopeId", "data-v-5904192e"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-input/u-input.vue"]]); + const props$6 = { + props: { + // 是否显示组件 + show: { + type: Boolean, + default: props$b.loadingIcon.show + }, + // 颜色 + color: { + type: String, + default: props$b.loadingIcon.color + }, + // 提示文字颜色 + textColor: { + type: String, + default: props$b.loadingIcon.textColor + }, + // 文字和图标是否垂直排列 + vertical: { + type: Boolean, + default: props$b.loadingIcon.vertical + }, + // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 + mode: { + type: String, + default: props$b.loadingIcon.mode + }, + // 图标大小,单位默认px + size: { + type: [String, Number], + default: props$b.loadingIcon.size + }, + // 文字大小 + textSize: { + type: [String, Number], + default: props$b.loadingIcon.textSize + }, + // 文字内容 + text: { + type: [String, Number], + default: props$b.loadingIcon.text + }, + // 动画模式 + timingFunction: { + type: String, + default: props$b.loadingIcon.timingFunction + }, + // 动画执行周期时间 + duration: { + type: [String, Number], + default: props$b.loadingIcon.duration + }, + // mode=circle时的暗边颜色 + inactiveColor: { + type: String, + default: props$b.loadingIcon.inactiveColor + } + } + }; + const _sfc_main$f = { + name: "u-loading-icon", + mixins: [mpMixin, mixin, props$6], + data() { + return { + // Array.form可以通过一个伪数组对象创建指定长度的数组 + // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from + array12: Array.from({ + length: 12 + }), + // 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行 + // 在iOS nvue上,则会一开始默认执行两个周期的动画 + aniAngel: 360, + // 动画旋转角度 + webviewHide: false, + // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗 + loading: false + // 是否运行中,针对nvue使用 + }; + }, + computed: { + // 当为circle类型时,给其另外三边设置一个更轻一些的颜色 + // 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色 + // 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好) + otherBorderColor() { + const lightColor = uni.$u.colorGradient(this.color, "#ffffff", 100)[80]; + if (this.mode === "circle") { + return this.inactiveColor ? this.inactiveColor : lightColor; + } else { + return "transparent"; + } + } + }, + watch: { + show(n) { + } + }, + mounted() { + this.init(); + }, + methods: { + init() { + setTimeout(() => { + this.show && this.addEventListenerToWebview(); + }, 20); + }, + // 监听webview的显示与隐藏 + addEventListenerToWebview() { + const pages2 = getCurrentPages(); + const page2 = pages2[pages2.length - 1]; + const currentWebview = page2.$getAppWebview(); + currentWebview.addEventListener("hide", () => { + this.webviewHide = true; + }); + currentWebview.addEventListener("show", () => { + this.webviewHide = false; + }); + } + } + }; + function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { + return _ctx.show ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 0, + class: vue.normalizeClass(["u-loading-icon", [_ctx.vertical && "u-loading-icon--vertical"]]), + style: vue.normalizeStyle([_ctx.$u.addStyle(_ctx.customStyle)]) + }, + [ + !$data.webviewHide ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 0, + class: vue.normalizeClass(["u-loading-icon__spinner", [`u-loading-icon__spinner--${_ctx.mode}`]]), + ref: "ani", + style: vue.normalizeStyle({ + color: _ctx.color, + width: _ctx.$u.addUnit(_ctx.size), + height: _ctx.$u.addUnit(_ctx.size), + borderTopColor: _ctx.color, + borderBottomColor: $options.otherBorderColor, + borderLeftColor: $options.otherBorderColor, + borderRightColor: $options.otherBorderColor, + "animation-duration": `${_ctx.duration}ms`, + "animation-timing-function": _ctx.mode === "semicircle" || _ctx.mode === "circle" ? _ctx.timingFunction : "" + }) + }, + [ + _ctx.mode === "spinner" ? (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + { key: 0 }, + vue.renderList($data.array12, (item, index2) => { + return vue.openBlock(), vue.createElementBlock("view", { + key: index2, + class: "u-loading-icon__dot" + }); + }), + 128 + /* KEYED_FRAGMENT */ + )) : vue.createCommentVNode("v-if", true) + ], + 6 + /* CLASS, STYLE */ + )) : vue.createCommentVNode("v-if", true), + _ctx.text ? (vue.openBlock(), vue.createElementBlock( + "text", + { + key: 1, + class: "u-loading-icon__text", + style: vue.normalizeStyle({ + fontSize: _ctx.$u.addUnit(_ctx.textSize), + color: _ctx.textColor + }) + }, + vue.toDisplayString(_ctx.text), + 5 + /* TEXT, STYLE */ + )) : vue.createCommentVNode("v-if", true) + ], + 6 + /* CLASS, STYLE */ + )) : vue.createCommentVNode("v-if", true); + } + const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$b], ["__scopeId", "data-v-00752c6d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue"]]); + const props$5 = { + props: { + // 是否细边框 + hairline: { + type: Boolean, + default: props$b.button.hairline + }, + // 按钮的预置样式,info,primary,error,warning,success + type: { + type: String, + default: props$b.button.type + }, + // 按钮尺寸,large,normal,small,mini + size: { + type: String, + default: props$b.button.size + }, + // 按钮形状,circle(两边为半圆),square(带圆角) + shape: { + type: String, + default: props$b.button.shape + }, + // 按钮是否镂空 + plain: { + type: Boolean, + default: props$b.button.plain + }, + // 是否禁止状态 + disabled: { + type: Boolean, + default: props$b.button.disabled + }, + // 是否加载中 + loading: { + type: Boolean, + default: props$b.button.loading + }, + // 加载中提示文字 + loadingText: { + type: [String, Number], + default: props$b.button.loadingText + }, + // 加载状态图标类型 + loadingMode: { + type: String, + default: props$b.button.loadingMode + }, + // 加载图标大小 + loadingSize: { + type: [String, Number], + default: props$b.button.loadingSize + }, + // 开放能力,具体请看uniapp稳定关于button组件部分说明 + // https://uniapp.dcloud.io/component/button + openType: { + type: String, + default: props$b.button.openType + }, + // 用于 组件,点击分别会触发 组件的 submit/reset 事件 + // 取值为submit(提交表单),reset(重置表单) + formType: { + type: String, + default: props$b.button.formType + }, + // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 + // 只微信小程序、QQ小程序有效 + appParameter: { + type: String, + default: props$b.button.appParameter + }, + // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 + hoverStopPropagation: { + type: Boolean, + default: props$b.button.hoverStopPropagation + }, + // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 + lang: { + type: String, + default: props$b.button.lang + }, + // 会话来源,open-type="contact"时有效。只微信小程序有效 + sessionFrom: { + type: String, + default: props$b.button.sessionFrom + }, + // 会话内消息卡片标题,open-type="contact"时有效 + // 默认当前标题,只微信小程序有效 + sendMessageTitle: { + type: String, + default: props$b.button.sendMessageTitle + }, + // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 + // 默认当前分享路径,只微信小程序有效 + sendMessagePath: { + type: String, + default: props$b.button.sendMessagePath + }, + // 会话内消息卡片图片,open-type="contact"时有效 + // 默认当前页面截图,只微信小程序有效 + sendMessageImg: { + type: String, + default: props$b.button.sendMessageImg + }, + // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, + // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 + showMessageCard: { + type: Boolean, + default: props$b.button.showMessageCard + }, + // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 + dataName: { + type: String, + default: props$b.button.dataName + }, + // 节流,一定时间内只能触发一次 + throttleTime: { + type: [String, Number], + default: props$b.button.throttleTime + }, + // 按住后多久出现点击态,单位毫秒 + hoverStartTime: { + type: [String, Number], + default: props$b.button.hoverStartTime + }, + // 手指松开后点击态保留时间,单位毫秒 + hoverStayTime: { + type: [String, Number], + default: props$b.button.hoverStayTime + }, + // 按钮文字,之所以通过props传入,是因为slot传入的话 + // nvue中无法控制文字的样式 + text: { + type: [String, Number], + default: props$b.button.text + }, + // 按钮图标 + icon: { + type: String, + default: props$b.button.icon + }, + // 按钮图标 + iconColor: { + type: String, + default: props$b.button.icon + }, + // 按钮颜色,支持传入linear-gradient渐变色 + color: { + type: String, + default: props$b.button.color + } + } + }; + const _sfc_main$e = { + name: "u-button", + mixins: [mpMixin, mixin, props$5], + data() { + return {}; + }, + computed: { + // 生成bem风格的类名 + bemClass() { + if (!this.color) { + return this.bem( + "button", + ["type", "shape", "size"], + ["disabled", "plain", "hairline"] + ); + } else { + return this.bem( + "button", + ["shape", "size"], + ["disabled", "plain", "hairline"] + ); + } + }, + loadingColor() { + if (this.plain) { + return this.color ? this.color : uni.$u.config.color[`u-${this.type}`]; + } + if (this.type === "info") { + return "#c9c9c9"; + } + return "rgb(200, 200, 200)"; + }, + iconColorCom() { + if (this.iconColor) + return this.iconColor; + if (this.plain) { + return this.color ? this.color : this.type; + } else { + return this.type === "info" ? "#000000" : "#ffffff"; + } + }, + baseColor() { + let style = {}; + if (this.color) { + style.color = this.plain ? this.color : "white"; + if (!this.plain) { + style["background-color"] = this.color; + } + if (this.color.indexOf("gradient") !== -1) { + style.borderTopWidth = 0; + style.borderRightWidth = 0; + style.borderBottomWidth = 0; + style.borderLeftWidth = 0; + if (!this.plain) { + style.backgroundImage = this.color; + } + } else { + style.borderColor = this.color; + style.borderWidth = "1px"; + style.borderStyle = "solid"; + } + } + return style; + }, + // nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置 + nvueTextStyle() { + let style = {}; + if (this.type === "info") { + style.color = "#323233"; + } + if (this.color) { + style.color = this.plain ? this.color : "white"; + } + style.fontSize = this.textSize + "px"; + return style; + }, + // 字体大小 + textSize() { + let fontSize = 14, { size } = this; + if (size === "large") + fontSize = 16; + if (size === "normal") + fontSize = 14; + if (size === "small") + fontSize = 12; + if (size === "mini") + fontSize = 10; + return fontSize; + } + }, + emits: [ + "click", + "getphonenumber", + "getuserinfo", + "error", + "opensetting", + "launchapp" + ], + methods: { + clickHandler() { + if (!this.disabled && !this.loading) { + uni.$u.throttle(() => { + this.$emit("click"); + }, this.throttleTime); + } + }, + // 下面为对接uniapp官方按钮开放能力事件回调的对接 + getphonenumber(res) { + this.$emit("getphonenumber", res); + }, + getuserinfo(res) { + this.$emit("getuserinfo", res); + }, + error(res) { + this.$emit("error", res); + }, + opensetting(res) { + this.$emit("opensetting", res); + }, + launchapp(res) { + this.$emit("launchapp", res); + } + } + }; + function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u_loading_icon = resolveEasycom(vue.resolveDynamicComponent("u-loading-icon"), __easycom_0$2); + const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_2); + return vue.openBlock(), vue.createElementBlock("button", { + "hover-start-time": Number(_ctx.hoverStartTime), + "hover-stay-time": Number(_ctx.hoverStayTime), + "form-type": _ctx.formType, + "open-type": _ctx.openType, + "app-parameter": _ctx.appParameter, + "hover-stop-propagation": _ctx.hoverStopPropagation, + "send-message-title": _ctx.sendMessageTitle, + "send-message-path": _ctx.sendMessagePath, + lang: _ctx.lang, + "data-name": _ctx.dataName, + "session-from": _ctx.sessionFrom, + "send-message-img": _ctx.sendMessageImg, + "show-message-card": _ctx.showMessageCard, + onGetphonenumber: _cache[0] || (_cache[0] = (...args) => $options.getphonenumber && $options.getphonenumber(...args)), + onGetuserinfo: _cache[1] || (_cache[1] = (...args) => $options.getuserinfo && $options.getuserinfo(...args)), + onError: _cache[2] || (_cache[2] = (...args) => $options.error && $options.error(...args)), + onOpensetting: _cache[3] || (_cache[3] = (...args) => $options.opensetting && $options.opensetting(...args)), + onLaunchapp: _cache[4] || (_cache[4] = (...args) => $options.launchapp && $options.launchapp(...args)), + "hover-class": !_ctx.disabled && !_ctx.loading ? "u-button--active" : "", + class: vue.normalizeClass(["u-button u-reset-button", $options.bemClass]), + style: vue.normalizeStyle([$options.baseColor, _ctx.$u.addStyle(_ctx.customStyle)]), + onClick: _cache[5] || (_cache[5] = (...args) => $options.clickHandler && $options.clickHandler(...args)) + }, [ + _ctx.loading ? (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + { key: 0 }, + [ + vue.createVNode(_component_u_loading_icon, { + mode: _ctx.loadingMode, + size: _ctx.loadingSize * 1.15, + color: $options.loadingColor + }, null, 8, ["mode", "size", "color"]), + vue.createElementVNode( + "text", + { + class: "u-button__loading-text", + style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) + }, + vue.toDisplayString(_ctx.loadingText || _ctx.text), + 5 + /* TEXT, STYLE */ + ) + ], + 64 + /* STABLE_FRAGMENT */ + )) : (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + { key: 1 }, + [ + _ctx.icon ? (vue.openBlock(), vue.createBlock(_component_u_icon, { + key: 0, + name: _ctx.icon, + color: $options.iconColorCom, + size: $options.textSize * 1.35, + customStyle: { marginRight: "2px" } + }, null, 8, ["name", "color", "size"])) : vue.createCommentVNode("v-if", true), + vue.renderSlot(_ctx.$slots, "default", {}, () => [ + vue.createElementVNode( + "text", + { + class: "u-button__text", + style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) + }, + vue.toDisplayString(_ctx.text), + 5 + /* TEXT, STYLE */ + ) + ], true) + ], + 64 + /* STABLE_FRAGMENT */ + )) + ], 46, ["hover-start-time", "hover-stay-time", "form-type", "open-type", "app-parameter", "hover-stop-propagation", "send-message-title", "send-message-path", "lang", "data-name", "session-from", "send-message-img", "show-message-card", "hover-class"]); + } + const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$a], ["__scopeId", "data-v-461e713c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-button/u-button.vue"]]); + const props$4 = { + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: props$b.overlay.show + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: props$b.overlay.zIndex + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: props$b.overlay.duration + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: props$b.overlay.opacity + } + } + }; + const _sfc_main$d = { + name: "u-overlay", + mixins: [mpMixin, mixin, props$4], + computed: { + overlayStyle() { + const style = { + position: "fixed", + top: 0, + left: 0, + right: 0, + zIndex: this.zIndex, + bottom: 0, + "background-color": `rgba(0, 0, 0, ${this.opacity})` + }; + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); + } + }, + emits: ["click"], + methods: { + clickHandler() { + this.$emit("click"); + } + } + }; + function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); + return vue.openBlock(), vue.createBlock(_component_u_transition, { + show: _ctx.show, + "custom-class": "u-overlay", + duration: _ctx.duration, + "custom-style": $options.overlayStyle, + onClick: $options.clickHandler + }, { + default: vue.withCtx(() => [ + vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) + ]), + _: 3 + /* FORWARDED */ + }, 8, ["show", "duration", "custom-style", "onClick"]); + } + const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$9], ["__scopeId", "data-v-35f7c3e5"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-overlay/u-overlay.vue"]]); + const props$3 = { + props: { + bgColor: { + type: String, + default: props$b.statusBar.bgColor + } + } + }; + const _sfc_main$c = { + name: "u-status-bar", + mixins: [mpMixin, mixin, props$3], + data() { + return {}; + }, + computed: { + style() { + const style = {}; + style.height = uni.$u.addUnit(uni.$u.sys().statusBarHeight, "px"); + style.backgroundColor = this.bgColor; + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); + } + } + }; + function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { + return vue.openBlock(), vue.createElementBlock( + "view", + { + style: vue.normalizeStyle([$options.style]), + class: "u-status-bar" + }, + [ + vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) + ], + 4 + /* STYLE */ + ); + } + const __easycom_1$2 = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$8], ["__scopeId", "data-v-c0b45a48"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-status-bar/u-status-bar.vue"]]); + const props$2 = { + props: {} + }; + const _sfc_main$b = { + name: "u-safe-bottom", + mixins: [mpMixin, mixin, props$2], + data() { + return { + safeAreaBottomHeight: 0, + isNvue: false + }; + }, + computed: { + style() { + const style = {}; + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); + } + }, + mounted() { + } + }; + function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { + return vue.openBlock(), vue.createElementBlock( + "view", + { + class: vue.normalizeClass(["u-safe-bottom", [!$data.isNvue && "u-safe-area-inset-bottom"]]), + style: vue.normalizeStyle([$options.style]) + }, + null, + 6 + /* CLASS, STYLE */ + ); + } + const __easycom_3 = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$7], ["__scopeId", "data-v-3ec581de"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-safe-bottom/u-safe-bottom.vue"]]); + const props$1 = { + props: { + // 是否展示弹窗 + show: { + type: Boolean, + default: props$b.popup.show + }, + // 是否显示遮罩 + overlay: { + type: Boolean, + default: props$b.popup.overlay + }, + // 弹出的方向,可选值为 top bottom right left center + mode: { + type: String, + default: props$b.popup.mode + }, + // 动画时长,单位ms + duration: { + type: [String, Number], + default: props$b.popup.duration + }, + // 是否显示关闭图标 + closeable: { + type: Boolean, + default: props$b.popup.closeable + }, + // 自定义遮罩的样式 + overlayStyle: { + type: [Object, String], + default: props$b.popup.overlayStyle + }, + // 点击遮罩是否关闭弹窗 + closeOnClickOverlay: { + type: Boolean, + default: props$b.popup.closeOnClickOverlay + }, + // 层级 + zIndex: { + type: [String, Number], + default: props$b.popup.zIndex + }, + // 是否为iPhoneX留出底部安全距离 + safeAreaInsetBottom: { + type: Boolean, + default: props$b.popup.safeAreaInsetBottom + }, + // 是否留出顶部安全距离(状态栏高度) + safeAreaInsetTop: { + type: Boolean, + default: props$b.popup.safeAreaInsetTop + }, + // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角 + closeIconPos: { + type: String, + default: props$b.popup.closeIconPos + }, + // 是否显示圆角 + round: { + type: [Boolean, String, Number], + default: props$b.popup.round + }, + // mode=center,也即中部弹出时,是否使用缩放模式 + zoom: { + type: Boolean, + default: props$b.popup.zoom + }, + // 弹窗背景色,设置为transparent可去除白色背景 + bgColor: { + type: String, + default: props$b.popup.bgColor + }, + // 遮罩的透明度,0-1之间 + overlayOpacity: { + type: [Number, String], + default: props$b.popup.overlayOpacity + } + } + }; + const _sfc_main$a = { + name: "u-popup", + mixins: [mpMixin, mixin, props$1], + data() { + return { + overlayDuration: this.duration + 50 + }; + }, + watch: { + show(newValue, oldValue) { + } + }, + computed: { + transitionStyle() { + const style = { + zIndex: this.zIndex, + position: "fixed", + display: "flex" + }; + style[this.mode] = 0; + if (this.mode === "left") { + return uni.$u.deepMerge(style, { + bottom: 0, + top: 0 + }); + } else if (this.mode === "right") { + return uni.$u.deepMerge(style, { + bottom: 0, + top: 0 + }); + } else if (this.mode === "top") { + return uni.$u.deepMerge(style, { + left: 0, + right: 0 + }); + } else if (this.mode === "bottom") { + return uni.$u.deepMerge(style, { + left: 0, + right: 0 + }); + } else if (this.mode === "center") { + return uni.$u.deepMerge(style, { + alignItems: "center", + "justify-content": "center", + top: 0, + left: 0, + right: 0, + bottom: 0 + }); + } + }, + contentStyle() { + const style = {}; + uni.$u.sys(); + if (this.mode !== "center") { + style.flex = 1; + } + if (this.bgColor) { + style.backgroundColor = this.bgColor; + } + if (this.round) { + const value = uni.$u.addUnit(this.round); + if (this.mode === "top") { + style.borderBottomLeftRadius = value; + style.borderBottomRightRadius = value; + } else if (this.mode === "bottom") { + style.borderTopLeftRadius = value; + style.borderTopRightRadius = value; + } else if (this.mode === "center") { + style.borderRadius = value; + } + } + return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); + }, + position() { + if (this.mode === "center") { + return this.zoom ? "fade-zoom" : "fade"; + } + if (this.mode === "left") { + return "slide-left"; + } + if (this.mode === "right") { + return "slide-right"; + } + if (this.mode === "bottom") { + return "slide-up"; + } + if (this.mode === "top") { + return "slide-down"; + } + } + }, + emits: ["open", "close", "click"], + methods: { + // 点击遮罩 + overlayClick() { + if (this.closeOnClickOverlay) { + this.$emit("close"); + } + }, + close(e) { + this.$emit("close"); + }, + afterEnter() { + this.$emit("open"); + }, + clickHandler() { + if (this.mode === "center") { + this.overlayClick(); + } + this.$emit("click"); + } + } + }; + function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u_overlay = resolveEasycom(vue.resolveDynamicComponent("u-overlay"), __easycom_0); + const _component_u_status_bar = resolveEasycom(vue.resolveDynamicComponent("u-status-bar"), __easycom_1$2); + const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_2); + const _component_u_safe_bottom = resolveEasycom(vue.resolveDynamicComponent("u-safe-bottom"), __easycom_3); + const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); + return vue.openBlock(), vue.createElementBlock("view", { class: "u-popup" }, [ + _ctx.overlay ? (vue.openBlock(), vue.createBlock(_component_u_overlay, { + key: 0, + show: _ctx.show, + onClick: $options.overlayClick, + duration: $data.overlayDuration, + customStyle: _ctx.overlayStyle, + opacity: _ctx.overlayOpacity + }, null, 8, ["show", "onClick", "duration", "customStyle", "opacity"])) : vue.createCommentVNode("v-if", true), + vue.createVNode(_component_u_transition, { + show: _ctx.show, + customStyle: $options.transitionStyle, + mode: $options.position, + duration: _ctx.duration, + onAfterEnter: $options.afterEnter, + onClick: $options.clickHandler + }, { + default: vue.withCtx(() => [ + vue.createElementVNode( + "view", + { + class: "u-popup__content", + style: vue.normalizeStyle([$options.contentStyle]), + onClick: _cache[1] || (_cache[1] = vue.withModifiers((...args) => _ctx.noop && _ctx.noop(...args), ["stop"])) + }, + [ + _ctx.safeAreaInsetTop ? (vue.openBlock(), vue.createBlock(_component_u_status_bar, { key: 0 })) : vue.createCommentVNode("v-if", true), + vue.renderSlot(_ctx.$slots, "default", {}, void 0, true), + _ctx.closeable ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 1, + onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.close && $options.close(...args), ["stop"])), + class: vue.normalizeClass(["u-popup__content__close", ["u-popup__content__close--" + _ctx.closeIconPos]]), + "hover-class": "u-popup__content__close--hover", + "hover-stay-time": "150" + }, + [ + vue.createVNode(_component_u_icon, { + name: "close", + color: "#909399", + size: "18", + bold: "" + }) + ], + 2 + /* CLASS */ + )) : vue.createCommentVNode("v-if", true), + _ctx.safeAreaInsetBottom ? (vue.openBlock(), vue.createBlock(_component_u_safe_bottom, { key: 2 })) : vue.createCommentVNode("v-if", true) + ], + 4 + /* STYLE */ + ) + ]), + _: 3 + /* FORWARDED */ + }, 8, ["show", "customStyle", "mode", "duration", "onAfterEnter", "onClick"]) + ]); + } + const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$6], ["__scopeId", "data-v-74921bef"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-popup/u-popup.vue"]]); + const _sfc_main$9 = { + name: "u-calendar-header", + mixins: [mpMixin, mixin], + props: { + // 标题 + title: { + type: String, + default: "" + }, + // 副标题 + subtitle: { + type: String, + default: "" + }, + // 是否显示标题 + showTitle: { + type: Boolean, + default: true + }, + // 是否显示副标题 + showSubtitle: { + type: Boolean, + default: true + } + }, + data() { + return {}; + }, + methods: { + name() { + } + } + }; + function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { + return vue.openBlock(), vue.createElementBlock("view", { class: "u-calendar-header u-border-bottom" }, [ + $props.showTitle ? (vue.openBlock(), vue.createElementBlock( + "text", + { + key: 0, + class: "u-calendar-header__title" + }, + vue.toDisplayString($props.title), + 1 + /* TEXT */ + )) : vue.createCommentVNode("v-if", true), + $props.showSubtitle ? (vue.openBlock(), vue.createElementBlock( + "text", + { + key: 1, + class: "u-calendar-header__subtitle" + }, + vue.toDisplayString($props.subtitle), + 1 + /* TEXT */ + )) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("view", { class: "u-calendar-header__weekdays" }, [ + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "一"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "二"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "三"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "四"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "五"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "六"), + vue.createElementVNode("text", { class: "u-calendar-header__weekdays__weekday" }, "日") + ]) + ]); + } + const uHeader = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$5], ["__scopeId", "data-v-31c8bd61"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-calendar/header.vue"]]); + var SECONDS_A_MINUTE = 60; + var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60; + var SECONDS_A_DAY = SECONDS_A_HOUR * 24; + var SECONDS_A_WEEK = SECONDS_A_DAY * 7; + var MILLISECONDS_A_SECOND = 1e3; + var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND; + var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND; + var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND; + var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND; + var MS = "millisecond"; + var S = "second"; + var MIN = "minute"; + var H = "hour"; + var D = "day"; + var W = "week"; + var M = "month"; + var Q = "quarter"; + var Y = "year"; + var DATE = "date"; + var FORMAT_DEFAULT = "YYYY-MM-DDTHH:mm:ssZ"; + var INVALID_DATE_STRING = "Invalid Date"; + var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/; + var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g; + const en = { + name: "en", + weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + ordinal: function ordinal(n) { + var s = ["th", "st", "nd", "rd"]; + var v = n % 100; + return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; + } + }; + var padStart = function padStart2(string2, length, pad) { + var s = String(string2); + if (!s || s.length >= length) + return string2; + return "" + Array(length + 1 - s.length).join(pad) + string2; + }; + var padZoneStr = function padZoneStr2(instance) { + var negMinutes = -instance.utcOffset(); + var minutes = Math.abs(negMinutes); + var hourOffset = Math.floor(minutes / 60); + var minuteOffset = minutes % 60; + return (negMinutes <= 0 ? "+" : "-") + padStart(hourOffset, 2, "0") + ":" + padStart(minuteOffset, 2, "0"); + }; + var monthDiff = function monthDiff2(a, b) { + if (a.date() < b.date()) + return -monthDiff2(b, a); + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()); + var anchor = a.clone().add(wholeMonthDiff, M); + var c = b - anchor < 0; + var anchor2 = a.clone().add(wholeMonthDiff + (c ? -1 : 1), M); + return +(-(wholeMonthDiff + (b - anchor) / (c ? anchor - anchor2 : anchor2 - anchor)) || 0); + }; + var absFloor = function absFloor2(n) { + return n < 0 ? Math.ceil(n) || 0 : Math.floor(n); + }; + var prettyUnit = function prettyUnit2(u) { + var special = { + M, + y: Y, + w: W, + d: D, + D: DATE, + h: H, + m: MIN, + s: S, + ms: MS, + Q + }; + return special[u] || String(u || "").toLowerCase().replace(/s$/, ""); + }; + var isUndefined$1 = function isUndefined2(s) { + return s === void 0; + }; + const U = { + s: padStart, + z: padZoneStr, + m: monthDiff, + a: absFloor, + p: prettyUnit, + u: isUndefined$1 + }; + var L = "en"; + var Ls = {}; + Ls[L] = en; + var IS_DAYJS = "$isDayjsObject"; + var isDayjs = function isDayjs2(d) { + return d instanceof Dayjs || !!(d && d[IS_DAYJS]); + }; + var parseLocale = function parseLocale2(preset, object2, isLocal) { + var l; + if (!preset) + return L; + if (typeof preset === "string") { + var presetLower = preset.toLowerCase(); + if (Ls[presetLower]) { + l = presetLower; + } + if (object2) { + Ls[presetLower] = object2; + l = presetLower; + } + var presetSplit = preset.split("-"); + if (!l && presetSplit.length > 1) { + return parseLocale2(presetSplit[0]); + } + } else { + var name = preset.name; + Ls[name] = preset; + l = name; + } + if (!isLocal && l) + L = l; + return l || !isLocal && L; + }; + var dayjs = function dayjs2(date2, c) { + if (isDayjs(date2)) { + return date2.clone(); + } + var cfg = typeof c === "object" ? c : {}; + cfg.date = date2; + cfg.args = arguments; + return new Dayjs(cfg); + }; + var wrapper = function wrapper2(date2, instance) { + return dayjs(date2, { + locale: instance.$L, + utc: instance.$u, + x: instance.$x, + $offset: instance.$offset + // todo: refactor; do not use this.$offset in you code + }); + }; + var Utils = U; + Utils.l = parseLocale; + Utils.i = isDayjs; + Utils.w = wrapper; + var parseDate = function parseDate2(cfg) { + var date2 = cfg.date, utc = cfg.utc; + if (date2 === null) + return /* @__PURE__ */ new Date(NaN); + if (Utils.u(date2)) + return /* @__PURE__ */ new Date(); + if (date2 instanceof Date) + return new Date(date2); + if (typeof date2 === "string" && !/Z$/i.test(date2)) { + var d = date2.match(REGEX_PARSE); + if (d) { + var m = d[2] - 1 || 0; + var ms = (d[7] || "0").substring(0, 3); + if (utc) { + return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms)); + } + return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); + } + } + return new Date(date2); + }; + var Dayjs = /* @__PURE__ */ function() { + function Dayjs2(cfg) { + this.$L = parseLocale(cfg.locale, null, true); + this.parse(cfg); + this.$x = this.$x || cfg.x || {}; + this[IS_DAYJS] = true; + } + var _proto = Dayjs2.prototype; + _proto.parse = function parse(cfg) { + this.$d = parseDate(cfg); + this.init(); + }; + _proto.init = function init() { + var $d = this.$d; + this.$y = $d.getFullYear(); + this.$M = $d.getMonth(); + this.$D = $d.getDate(); + this.$W = $d.getDay(); + this.$H = $d.getHours(); + this.$m = $d.getMinutes(); + this.$s = $d.getSeconds(); + this.$ms = $d.getMilliseconds(); + }; + _proto.$utils = function $utils() { + return Utils; + }; + _proto.isValid = function isValid() { + return !(this.$d.toString() === INVALID_DATE_STRING); + }; + _proto.isSame = function isSame(that, units) { + var other = dayjs(that); + return this.startOf(units) <= other && other <= this.endOf(units); + }; + _proto.isAfter = function isAfter(that, units) { + return dayjs(that) < this.startOf(units); + }; + _proto.isBefore = function isBefore(that, units) { + return this.endOf(units) < dayjs(that); + }; + _proto.$g = function $g(input, get, set2) { + if (Utils.u(input)) + return this[get]; + return this.set(set2, input); + }; + _proto.unix = function unix() { + return Math.floor(this.valueOf() / 1e3); + }; + _proto.valueOf = function valueOf() { + return this.$d.getTime(); + }; + _proto.startOf = function startOf(units, _startOf) { + var _this = this; + var isStartOf = !Utils.u(_startOf) ? _startOf : true; + var unit = Utils.p(units); + var instanceFactory = function instanceFactory2(d, m) { + var ins = Utils.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this); + return isStartOf ? ins : ins.endOf(D); + }; + var instanceFactorySet = function instanceFactorySet2(method, slice) { + var argumentStart = [0, 0, 0, 0]; + var argumentEnd = [23, 59, 59, 999]; + return Utils.w(_this.toDate()[method].apply( + // eslint-disable-line prefer-spread + _this.toDate("s"), + (isStartOf ? argumentStart : argumentEnd).slice(slice) + ), _this); + }; + var $W = this.$W, $M = this.$M, $D = this.$D; + var utcPad = "set" + (this.$u ? "UTC" : ""); + switch (unit) { + case Y: + return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11); + case M: + return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1); + case W: { + var weekStart = this.$locale().weekStart || 0; + var gap = ($W < weekStart ? $W + 7 : $W) - weekStart; + return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M); + } + case D: + case DATE: + return instanceFactorySet(utcPad + "Hours", 0); + case H: + return instanceFactorySet(utcPad + "Minutes", 1); + case MIN: + return instanceFactorySet(utcPad + "Seconds", 2); + case S: + return instanceFactorySet(utcPad + "Milliseconds", 3); + default: + return this.clone(); + } + }; + _proto.endOf = function endOf(arg) { + return this.startOf(arg, false); + }; + _proto.$set = function $set(units, _int) { + var _C$D$C$DATE$C$M$C$Y$C; + var unit = Utils.p(units); + var utcPad = "set" + (this.$u ? "UTC" : ""); + var name = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit]; + var arg = unit === D ? this.$D + (_int - this.$W) : _int; + if (unit === M || unit === Y) { + var date2 = this.clone().set(DATE, 1); + date2.$d[name](arg); + date2.init(); + this.$d = date2.set(DATE, Math.min(this.$D, date2.daysInMonth())).$d; + } else if (name) + this.$d[name](arg); + this.init(); + return this; + }; + _proto.set = function set2(string2, _int2) { + return this.clone().$set(string2, _int2); + }; + _proto.get = function get(unit) { + return this[Utils.p(unit)](); + }; + _proto.add = function add(number2, units) { + var _this2 = this, _C$MIN$C$H$C$S$unit; + number2 = Number(number2); + var unit = Utils.p(units); + var instanceFactorySet = function instanceFactorySet2(n) { + var d = dayjs(_this2); + return Utils.w(d.date(d.date() + Math.round(n * number2)), _this2); + }; + if (unit === M) { + return this.set(M, this.$M + number2); + } + if (unit === Y) { + return this.set(Y, this.$y + number2); + } + if (unit === D) { + return instanceFactorySet(1); + } + if (unit === W) { + return instanceFactorySet(7); + } + var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[MIN] = MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[H] = MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[S] = MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit] || 1; + var nextTimeStamp = this.$d.getTime() + number2 * step; + return Utils.w(nextTimeStamp, this); + }; + _proto.subtract = function subtract(number2, string2) { + return this.add(number2 * -1, string2); + }; + _proto.format = function format(formatStr) { + var _this3 = this; + var locale = this.$locale(); + if (!this.isValid()) + return locale.invalidDate || INVALID_DATE_STRING; + var str = formatStr || FORMAT_DEFAULT; + var zoneStr = Utils.z(this); + var $H = this.$H, $m = this.$m, $M = this.$M; + var weekdays = locale.weekdays, months = locale.months, meridiem = locale.meridiem; + var getShort = function getShort2(arr, index2, full, length) { + return arr && (arr[index2] || arr(_this3, str)) || full[index2].slice(0, length); + }; + var get$H = function get$H2(num) { + return Utils.s($H % 12 || 12, num, "0"); + }; + var meridiemFunc = meridiem || function(hour, minute, isLowercase) { + var m = hour < 12 ? "AM" : "PM"; + return isLowercase ? m.toLowerCase() : m; + }; + var matches = function matches2(match) { + switch (match) { + case "YY": + return String(_this3.$y).slice(-2); + case "YYYY": + return Utils.s(_this3.$y, 4, "0"); + case "M": + return $M + 1; + case "MM": + return Utils.s($M + 1, 2, "0"); + case "MMM": + return getShort(locale.monthsShort, $M, months, 3); + case "MMMM": + return getShort(months, $M); + case "D": + return _this3.$D; + case "DD": + return Utils.s(_this3.$D, 2, "0"); + case "d": + return String(_this3.$W); + case "dd": + return getShort(locale.weekdaysMin, _this3.$W, weekdays, 2); + case "ddd": + return getShort(locale.weekdaysShort, _this3.$W, weekdays, 3); + case "dddd": + return weekdays[_this3.$W]; + case "H": + return String($H); + case "HH": + return Utils.s($H, 2, "0"); + case "h": + return get$H(1); + case "hh": + return get$H(2); + case "a": + return meridiemFunc($H, $m, true); + case "A": + return meridiemFunc($H, $m, false); + case "m": + return String($m); + case "mm": + return Utils.s($m, 2, "0"); + case "s": + return String(_this3.$s); + case "ss": + return Utils.s(_this3.$s, 2, "0"); + case "SSS": + return Utils.s(_this3.$ms, 3, "0"); + case "Z": + return zoneStr; + } + return null; + }; + return str.replace(REGEX_FORMAT, function(match, $1) { + return $1 || matches(match) || zoneStr.replace(":", ""); + }); + }; + _proto.utcOffset = function utcOffset() { + return -Math.round(this.$d.getTimezoneOffset() / 15) * 15; + }; + _proto.diff = function diff(input, units, _float) { + var _this4 = this; + var unit = Utils.p(units); + var that = dayjs(input); + var zoneDelta = (that.utcOffset() - this.utcOffset()) * MILLISECONDS_A_MINUTE; + var diff2 = this - that; + var getMonth = function getMonth2() { + return Utils.m(_this4, that); + }; + var result; + switch (unit) { + case Y: + result = getMonth() / 12; + break; + case M: + result = getMonth(); + break; + case Q: + result = getMonth() / 3; + break; + case W: + result = (diff2 - zoneDelta) / MILLISECONDS_A_WEEK; + break; + case D: + result = (diff2 - zoneDelta) / MILLISECONDS_A_DAY; + break; + case H: + result = diff2 / MILLISECONDS_A_HOUR; + break; + case MIN: + result = diff2 / MILLISECONDS_A_MINUTE; + break; + case S: + result = diff2 / MILLISECONDS_A_SECOND; + break; + default: + result = diff2; + break; + } + return _float ? result : Utils.a(result); + }; + _proto.daysInMonth = function daysInMonth() { + return this.endOf(M).$D; + }; + _proto.$locale = function $locale() { + return Ls[this.$L]; + }; + _proto.locale = function locale(preset, object2) { + if (!preset) + return this.$L; + var that = this.clone(); + var nextLocaleName = parseLocale(preset, object2, true); + if (nextLocaleName) + that.$L = nextLocaleName; + return that; + }; + _proto.clone = function clone2() { + return Utils.w(this.$d, this); + }; + _proto.toDate = function toDate() { + return new Date(this.valueOf()); + }; + _proto.toJSON = function toJSON() { + return this.isValid() ? this.toISOString() : null; + }; + _proto.toISOString = function toISOString() { + return this.$d.toISOString(); + }; + _proto.toString = function toString2() { + return this.$d.toUTCString(); + }; + return Dayjs2; + }(); + var proto = Dayjs.prototype; + dayjs.prototype = proto; + [["$ms", MS], ["$s", S], ["$m", MIN], ["$H", H], ["$W", D], ["$M", M], ["$y", Y], ["$D", DATE]].forEach(function(g) { + proto[g[1]] = function(input) { + return this.$g(input, g[0], g[1]); + }; + }); + dayjs.extend = function(plugin, option) { + if (!plugin.$i) { + plugin(option, Dayjs, dayjs); + plugin.$i = true; + } + return dayjs; + }; + dayjs.locale = parseLocale; + dayjs.isDayjs = isDayjs; + dayjs.unix = function(timestamp) { + return dayjs(timestamp * 1e3); + }; + dayjs.en = Ls[L]; + dayjs.Ls = Ls; + dayjs.p = {}; + const _sfc_main$8 = { + name: "u-calendar-month", + mixins: [mpMixin, mixin], + props: { + // 是否显示月份背景色 + showMark: { + type: Boolean, + default: true + }, + // 主题色,对底部按钮和选中日期有效 + color: { + type: String, + default: "#3c9cff" + }, + // 月份数据 + months: { + type: Array, + default: () => [] + }, + // 日期选择类型 + mode: { + type: String, + default: "single" + }, + // 日期行高 + rowHeight: { + type: [String, Number], + default: 58 + }, + // mode=multiple时,最多可选多少个日期 + maxCount: { + type: [String, Number], + default: Infinity + }, + // mode=range时,第一个日期底部的提示文字 + startText: { + type: String, + default: "开始" + }, + // mode=range时,最后一个日期底部的提示文字 + endText: { + type: String, + default: "结束" + }, + // 默认选中的日期,mode为multiple或range是必须为数组格式 + defaultDate: { + type: [Array, String, Date], + default: null + }, + // 最小的可选日期 + minDate: { + type: [String, Number], + default: 0 + }, + // 最大可选日期 + maxDate: { + type: [String, Number], + default: 0 + }, + // 如果没有设置maxDate,则往后推多少个月 + maxMonth: { + type: [String, Number], + default: 2 + }, + // 是否为只读状态,只读状态下禁止选择日期 + readonly: { + type: Boolean, + default: props$b.calendar.readonly + }, + // 日期区间最多可选天数,默认无限制,mode = range时有效 + maxRange: { + type: [Number, String], + default: Infinity + }, + // 范围选择超过最多可选天数时的提示文案,mode = range时有效 + rangePrompt: { + type: String, + default: "" + }, + // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 + showRangePrompt: { + type: Boolean, + default: true + }, + // 是否允许日期范围的起止时间为同一天,mode = range时有效 + allowSameDay: { + type: Boolean, + default: false + } + }, + data() { + return { + // 每个日期的宽度 + width: 0, + // 当前选中的日期item + item: {}, + selected: [] + }; + }, + watch: { + selectedChange: { + immediate: true, + handler(n) { + this.setDefaultDate(); + } + } + }, + computed: { + // 多个条件的变化,会引起选中日期的变化,这里统一管理监听 + selectedChange() { + return [this.minDate, this.maxDate, this.defaultDate]; + }, + dayStyle(index1, index2, item) { + return (index12, index22, item2) => { + const style = {}; + let week = item2.week; + const dayWidth = Number(parseFloat(this.width / 7).toFixed(3).slice(0, -1)); + style.height = uni.$u.addUnit(this.rowHeight); + if (index22 === 0) { + week = (week === 0 ? 7 : week) - 1; + style.marginLeft = uni.$u.addUnit(week * dayWidth); + } + if (this.mode === "range") { + style.paddingLeft = 0; + style.paddingRight = 0; + style.paddingBottom = 0; + style.paddingTop = 0; + } + return style; + }; + }, + daySelectStyle() { + return (index1, index2, item) => { + let date2 = dayjs(item.date).format("YYYY-MM-DD"), style = {}; + if (this.selected.some((item2) => this.dateSame(item2, date2))) { + style.backgroundColor = this.color; + } + if (this.mode === "single") { + if (date2 === this.selected[0]) { + style.borderTopLeftRadius = "3px"; + style.borderBottomLeftRadius = "3px"; + style.borderTopRightRadius = "3px"; + style.borderBottomRightRadius = "3px"; + } + } else if (this.mode === "range") { + if (this.selected.length >= 2) { + const len = this.selected.length - 1; + if (this.dateSame(date2, this.selected[0])) { + style.borderTopLeftRadius = "3px"; + style.borderBottomLeftRadius = "3px"; + } + if (this.dateSame(date2, this.selected[len])) { + style.borderTopRightRadius = "3px"; + style.borderBottomRightRadius = "3px"; + } + if (dayjs(date2).isAfter(dayjs(this.selected[0])) && dayjs(date2).isBefore(dayjs(this.selected[len]))) { + style.backgroundColor = uni.$u.colorGradient(this.color, "#ffffff", 100)[90]; + style.opacity = 0.7; + } + } else if (this.selected.length === 1) { + style.borderTopLeftRadius = "3px"; + style.borderBottomLeftRadius = "3px"; + } + } else { + if (this.selected.some((item2) => this.dateSame(item2, date2))) { + style.borderTopLeftRadius = "3px"; + style.borderBottomLeftRadius = "3px"; + style.borderTopRightRadius = "3px"; + style.borderBottomRightRadius = "3px"; + } + } + return style; + }; + }, + // 某个日期是否被选中 + textStyle() { + return (item) => { + const date2 = dayjs(item.date).format("YYYY-MM-DD"), style = {}; + if (this.selected.some((item2) => this.dateSame(item2, date2))) { + style.color = "#ffffff"; + } + if (this.mode === "range") { + const len = this.selected.length - 1; + if (dayjs(date2).isAfter(dayjs(this.selected[0])) && dayjs(date2).isBefore(dayjs(this.selected[len]))) { + style.color = this.color; + } + } + return style; + }; + }, + // 获取底部的提示文字 + getBottomInfo() { + return (index1, index2, item) => { + const date2 = dayjs(item.date).format("YYYY-MM-DD"); + const bottomInfo = item.bottomInfo; + if (this.mode === "range" && this.selected.length > 0) { + if (this.selected.length === 1) { + if (this.dateSame(date2, this.selected[0])) + return this.startText; + else + return bottomInfo; + } else { + const len = this.selected.length - 1; + if (this.dateSame(date2, this.selected[0]) && this.dateSame(date2, this.selected[1]) && len === 1) { + return `${this.startText}/${this.endText}`; + } else if (this.dateSame(date2, this.selected[0])) { + return this.startText; + } else if (this.dateSame(date2, this.selected[len])) { + return this.endText; + } else { + return bottomInfo; + } + } + } else { + return bottomInfo; + } + }; + } + }, + mounted() { + this.init(); + }, + methods: { + init() { + this.$emit("monthSelected", this.selected); + this.$nextTick(() => { + uni.$u.sleep(10).then(() => { + this.getWrapperWidth(); + this.getMonthRect(); + }); + }); + }, + // 判断两个日期是否相等 + dateSame(date1, date2) { + return dayjs(date1).isSame(dayjs(date2)); + }, + // 获取月份数据区域的宽度,因为nvue不支持百分比,所以无法通过css设置每个日期item的宽度 + getWrapperWidth() { + this.$uGetRect(".u-calendar-month-wrapper").then((size) => { + this.width = size.width; + }); + }, + getMonthRect() { + const promiseAllArr = this.months.map((item, index2) => this.getMonthRectByPromise( + `u-calendar-month-${index2}` + )); + Promise.all(promiseAllArr).then( + (sizes) => { + let height = 1; + const topArr = []; + for (let i = 0; i < this.months.length; i++) { + topArr[i] = height; + height += sizes[i].height; + } + this.$emit("updateMonthTop", topArr); + } + ); + }, + // 获取每个月份区域的尺寸 + getMonthRectByPromise(el) { + return new Promise((resolve) => { + this.$uGetRect(`.${el}`).then((size) => { + resolve(size); + }); + }); + }, + // 点击某一个日期 + clickHandler(index1, index2, item) { + if (this.readonly) { + return; + } + this.item = item; + const date2 = dayjs(item.date).format("YYYY-MM-DD"); + if (item.disabled) + return; + let selected = uni.$u.deepClone(this.selected); + if (this.mode === "single") { + selected = [date2]; + } else if (this.mode === "multiple") { + if (selected.some((item2) => this.dateSame(item2, date2))) { + const itemIndex = selected.findIndex((item2) => item2 === date2); + selected.splice(itemIndex, 1); + } else { + if (selected.length < this.maxCount) + selected.push(date2); + } + } else { + if (selected.length === 0 || selected.length >= 2) { + selected = [date2]; + } else if (selected.length === 1) { + const existsDate = selected[0]; + if (dayjs(date2).isBefore(existsDate)) { + selected = [date2]; + } else if (dayjs(date2).isAfter(existsDate)) { + if (dayjs(dayjs(date2).subtract(this.maxRange, "day")).isAfter(dayjs(selected[0])) && this.showRangePrompt) { + if (this.rangePrompt) { + uni.$u.toast(this.rangePrompt); + } else { + uni.$u.toast(`选择天数不能超过 ${this.maxRange} 天`); + } + return; + } + selected.push(date2); + const startDate = selected[0]; + const endDate = selected[1]; + const arr = []; + let i = 0; + do { + arr.push(dayjs(startDate).add(i, "day").format("YYYY-MM-DD")); + i++; + } while (dayjs(startDate).add(i, "day").isBefore(dayjs(endDate))); + arr.push(endDate); + selected = arr; + } else { + if (selected[0] === date2 && !this.allowSameDay) + return; + selected.push(date2); + } + } + } + this.setSelected(selected); + }, + // 设置默认日期 + setDefaultDate() { + if (!this.defaultDate) { + const selected = [dayjs().format("YYYY-MM-DD")]; + return this.setSelected(selected, false); + } + let defaultDate = []; + const minDate = this.minDate || dayjs().format("YYYY-MM-DD"); + const maxDate = this.maxDate || dayjs(minDate).add(this.maxMonth - 1, "month").format("YYYY-MM-DD"); + if (this.mode === "single") { + if (!uni.$u.test.array(this.defaultDate)) { + defaultDate = [dayjs(this.defaultDate).format("YYYY-MM-DD")]; + } else { + defaultDate = [this.defaultDate[0]]; + } + } else { + if (!uni.$u.test.array(this.defaultDate)) + return; + defaultDate = this.defaultDate; + } + defaultDate = defaultDate.filter((item) => { + return dayjs(item).isAfter(dayjs(minDate).subtract(1, "day")) && dayjs(item).isBefore(dayjs( + maxDate + ).add(1, "day")); + }); + this.setSelected(defaultDate, false); + }, + setSelected(selected, event = true) { + this.selected = selected; + event && this.$emit("monthSelected", this.selected); + } + } + }; + function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { + return vue.openBlock(), vue.createElementBlock( + "view", + { + class: "u-calendar-month-wrapper", + ref: "u-calendar-month-wrapper" + }, + [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($props.months, (item, index2) => { + return vue.openBlock(), vue.createElementBlock("view", { + key: index2, + class: vue.normalizeClass([`u-calendar-month-${index2}`]), + ref_for: true, + ref: `u-calendar-month-${index2}`, + id: `month-${index2}` + }, [ + index2 !== 0 ? (vue.openBlock(), vue.createElementBlock( + "text", + { + key: 0, + class: "u-calendar-month__title" + }, + vue.toDisplayString(item.year) + "年" + vue.toDisplayString(item.month) + "月", + 1 + /* TEXT */ + )) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("view", { class: "u-calendar-month__days" }, [ + $props.showMark ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "u-calendar-month__days__month-mark-wrapper" + }, [ + vue.createElementVNode( + "text", + { class: "u-calendar-month__days__month-mark-wrapper__text" }, + vue.toDisplayString(item.month), + 1 + /* TEXT */ + ) + ])) : vue.createCommentVNode("v-if", true), + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList(item.date, (item1, index1) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: vue.normalizeClass(["u-calendar-month__days__day", [item1.selected && "u-calendar-month__days__day__select--selected"]]), + key: index1, + style: vue.normalizeStyle([$options.dayStyle(index2, index1, item1)]), + onClick: ($event) => $options.clickHandler(index2, index1, item1) + }, [ + vue.createElementVNode( + "view", + { + class: "u-calendar-month__days__day__select", + style: vue.normalizeStyle([$options.daySelectStyle(index2, index1, item1)]) + }, + [ + vue.createElementVNode( + "text", + { + class: vue.normalizeClass(["u-calendar-month__days__day__select__info", [item1.disabled && "u-calendar-month__days__day__select__info--disabled"]]), + style: vue.normalizeStyle([$options.textStyle(item1)]) + }, + vue.toDisplayString(item1.day), + 7 + /* TEXT, CLASS, STYLE */ + ), + $options.getBottomInfo(index2, index1, item1) ? (vue.openBlock(), vue.createElementBlock( + "text", + { + key: 0, + class: vue.normalizeClass(["u-calendar-month__days__day__select__buttom-info", [item1.disabled && "u-calendar-month__days__day__select__buttom-info--disabled"]]), + style: vue.normalizeStyle([$options.textStyle(item1)]) + }, + vue.toDisplayString($options.getBottomInfo(index2, index1, item1)), + 7 + /* TEXT, CLASS, STYLE */ + )) : vue.createCommentVNode("v-if", true), + item1.dot ? (vue.openBlock(), vue.createElementBlock("text", { + key: 1, + class: "u-calendar-month__days__day__select__dot" + })) : vue.createCommentVNode("v-if", true) + ], + 4 + /* STYLE */ + ) + ], 14, ["onClick"]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ]) + ], 10, ["id"]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ], + 512 + /* NEED_PATCH */ + ); + } + const uMonth = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$4], ["__scopeId", "data-v-9b76ab7e"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-calendar/month.vue"]]); + const props = { + props: { + // 日历顶部标题 + title: { + type: String, + default: props$b.calendar.title + }, + // 是否显示标题 + showTitle: { + type: Boolean, + default: props$b.calendar.showTitle + }, + // 是否显示副标题 + showSubtitle: { + type: Boolean, + default: props$b.calendar.showSubtitle + }, + // 日期类型选择,single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围 + mode: { + type: String, + default: props$b.calendar.mode + }, + // mode=range时,第一个日期底部的提示文字 + startText: { + type: String, + default: props$b.calendar.startText + }, + // mode=range时,最后一个日期底部的提示文字 + endText: { + type: String, + default: props$b.calendar.endText + }, + // 自定义列表 + customList: { + type: Array, + default: props$b.calendar.customList + }, + // 主题色,对底部按钮和选中日期有效 + color: { + type: String, + default: props$b.calendar.color + }, + // 最小的可选日期 + minDate: { + type: [String, Number], + default: props$b.calendar.minDate + }, + // 最大可选日期 + maxDate: { + type: [String, Number], + default: props$b.calendar.maxDate + }, + // 默认选中的日期,mode为multiple或range是必须为数组格式 + defaultDate: { + type: [Array, String, Date, null], + default: props$b.calendar.defaultDate + }, + // mode=multiple时,最多可选多少个日期 + maxCount: { + type: [String, Number], + default: props$b.calendar.maxCount + }, + // 日期行高 + rowHeight: { + type: [String, Number], + default: props$b.calendar.rowHeight + }, + // 日期格式化函数 + formatter: { + type: [Function, null], + default: props$b.calendar.formatter + }, + // 是否显示农历 + showLunar: { + type: Boolean, + default: props$b.calendar.showLunar + }, + // 是否显示月份背景色 + showMark: { + type: Boolean, + default: props$b.calendar.showMark + }, + // 确定按钮的文字 + confirmText: { + type: String, + default: props$b.calendar.confirmText + }, + // 确认按钮处于禁用状态时的文字 + confirmDisabledText: { + type: String, + default: props$b.calendar.confirmDisabledText + }, + // 是否显示日历弹窗 + show: { + type: Boolean, + default: props$b.calendar.show + }, + // 是否允许点击遮罩关闭日历 + closeOnClickOverlay: { + type: Boolean, + default: props$b.calendar.closeOnClickOverlay + }, + // 是否为只读状态,只读状态下禁止选择日期 + readonly: { + type: Boolean, + default: props$b.calendar.readonly + }, + // 是否展示确认按钮 + showConfirm: { + type: Boolean, + default: props$b.calendar.showConfirm + }, + // 日期区间最多可选天数,默认无限制,mode = range时有效 + maxRange: { + type: [Number, String], + default: props$b.calendar.maxRange + }, + // 范围选择超过最多可选天数时的提示文案,mode = range时有效 + rangePrompt: { + type: String, + default: props$b.calendar.rangePrompt + }, + // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 + showRangePrompt: { + type: Boolean, + default: props$b.calendar.showRangePrompt + }, + // 是否允许日期范围的起止时间为同一天,mode = range时有效 + allowSameDay: { + type: Boolean, + default: props$b.calendar.allowSameDay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: props$b.calendar.round + }, + // 最多展示月份数量 + monthNum: { + type: [Number, String], + default: 3 + } + } + }; + var Calendar = { + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [ + 19416, + 19168, + 42352, + 21717, + 53856, + 55632, + 91476, + 22176, + 39632, + 21970, + // 1900-1909 + 19168, + 42422, + 42192, + 53840, + 119381, + 46400, + 54944, + 44450, + 38320, + 84343, + // 1910-1919 + 18800, + 42160, + 46261, + 27216, + 27968, + 109396, + 11104, + 38256, + 21234, + 18800, + // 1920-1929 + 25958, + 54432, + 59984, + 28309, + 23248, + 11104, + 100067, + 37600, + 116951, + 51536, + // 1930-1939 + 54432, + 120998, + 46416, + 22176, + 107956, + 9680, + 37584, + 53938, + 43344, + 46423, + // 1940-1949 + 27808, + 46416, + 86869, + 19872, + 42416, + 83315, + 21168, + 43432, + 59728, + 27296, + // 1950-1959 + 44710, + 43856, + 19296, + 43748, + 42352, + 21088, + 62051, + 55632, + 23383, + 22176, + // 1960-1969 + 38608, + 19925, + 19152, + 42192, + 54484, + 53840, + 54616, + 46400, + 46752, + 103846, + // 1970-1979 + 38320, + 18864, + 43380, + 42160, + 45690, + 27216, + 27968, + 44870, + 43872, + 38256, + // 1980-1989 + 19189, + 18800, + 25776, + 29859, + 59984, + 27480, + 23232, + 43872, + 38613, + 37600, + // 1990-1999 + 51552, + 55636, + 54432, + 55888, + 30034, + 22176, + 43959, + 9680, + 37584, + 51893, + // 2000-2009 + 43344, + 46240, + 47780, + 44368, + 21977, + 19360, + 42416, + 86390, + 21168, + 43312, + // 2010-2019 + 31060, + 27296, + 44368, + 23378, + 19296, + 42726, + 42208, + 53856, + 60005, + 54576, + // 2020-2029 + 23200, + 30371, + 38608, + 19195, + 19152, + 42192, + 118966, + 53840, + 54560, + 56645, + // 2030-2039 + 46496, + 22224, + 21938, + 18864, + 42359, + 42160, + 43600, + 111189, + 27936, + 44448, + // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 84835, + 37744, + 18936, + 18800, + 25776, + 92326, + 59984, + 27424, + 108228, + 43744, + // 2050-2059 + 41696, + 53987, + 51552, + 54615, + 54432, + 55888, + 23893, + 22176, + 42704, + 21972, + // 2060-2069 + 21200, + 43448, + 43344, + 46240, + 46758, + 44368, + 21920, + 43940, + 42416, + 21168, + // 2070-2079 + 45683, + 26928, + 29495, + 27296, + 44368, + 84821, + 19296, + 42352, + 21732, + 53600, + // 2080-2089 + 59752, + 54560, + 55968, + 92838, + 22224, + 19168, + 43476, + 41680, + 53584, + 62034, + // 2090-2099 + 54560 + ], + // 2100 + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"], + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"], + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"], + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ["小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"], + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: [ + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c3598082c95f8c965cc920f", + "97bd0b06bdb0722c965ce1cfcc920f", + "b027097bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c359801ec95f8c965cc920f", + "97bd0b06bdb0722c965ce1cfcc920f", + "b027097bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c359801ec95f8c965cc920f", + "97bd0b06bdb0722c965ce1cfcc920f", + "b027097bd097c36b0b6fc9274c91aa", + "9778397bd19801ec9210c965cc920e", + "97b6b97bd19801ec95f8c965cc920f", + "97bd09801d98082c95f8e1cfcc920f", + "97bd097bd097c36b0b6fc9210c8dc2", + "9778397bd197c36c9210c9274c91aa", + "97b6b97bd19801ec95f8c965cc920e", + "97bd09801d98082c95f8e1cfcc920f", + "97bd097bd097c36b0b6fc9210c8dc2", + "9778397bd097c36c9210c9274c91aa", + "97b6b97bd19801ec95f8c965cc920e", + "97bcf97c3598082c95f8e1cfcc920f", + "97bd097bd097c36b0b6fc9210c8dc2", + "9778397bd097c36c9210c9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c3598082c95f8c965cc920f", + "97bd097bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c3598082c95f8c965cc920f", + "97bd097bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c359801ec95f8c965cc920f", + "97bd097bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c359801ec95f8c965cc920f", + "97bd097bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf97c359801ec95f8c965cc920f", + "97bd097bd07f595b0b6fc920fb0722", + "9778397bd097c36b0b6fc9210c8dc2", + "9778397bd19801ec9210c9274c920e", + "97b6b97bd19801ec95f8c965cc920f", + "97bd07f5307f595b0b0bc920fb0722", + "7f0e397bd097c36b0b6fc9210c8dc2", + "9778397bd097c36c9210c9274c920e", + "97b6b97bd19801ec95f8c965cc920f", + "97bd07f5307f595b0b0bc920fb0722", + "7f0e397bd097c36b0b6fc9210c8dc2", + "9778397bd097c36c9210c9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bd07f1487f595b0b0bc920fb0722", + "7f0e397bd097c36b0b6fc9210c8dc2", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf7f1487f595b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf7f1487f595b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf7f1487f531b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c965cc920e", + "97bcf7f1487f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b97bd19801ec9210c9274c920e", + "97bcf7f0e47f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "9778397bd097c36b0b6fc9210c91aa", + "97b6b97bd197c36c9210c9274c920e", + "97bcf7f0e47f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "9778397bd097c36b0b6fc9210c8dc2", + "9778397bd097c36c9210c9274c920e", + "97b6b7f0e47f531b0723b0b6fb0722", + "7f0e37f5307f595b0b0bc920fb0722", + "7f0e397bd097c36b0b6fc9210c8dc2", + "9778397bd097c36b0b70c9274c91aa", + "97b6b7f0e47f531b0723b0b6fb0721", + "7f0e37f1487f595b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc9210c8dc2", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f595b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "9778397bd097c36b0b6fc9274c91aa", + "97b6b7f0e47f531b0723b0787b0721", + "7f0e27f0e47f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "9778397bd097c36b0b6fc9210c91aa", + "97b6b7f0e47f149b0723b0787b0721", + "7f0e27f0e47f531b0723b0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "9778397bd097c36b0b6fc9210c8dc2", + "977837f0e37f149b0723b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0722", + "7f0e37f5307f595b0b0bc920fb0722", + "7f0e397bd097c35b0b6fc9210c8dc2", + "977837f0e37f14998082b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e37f1487f595b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc9210c8dc2", + "977837f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "977837f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd097c35b0b6fc920fb0722", + "977837f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "977837f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "977837f0e37f14998082b0787b06bd", + "7f07e7f0e47f149b0723b0787b0721", + "7f0e27f0e47f531b0b0bb0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "977837f0e37f14998082b0723b06bd", + "7f07e7f0e37f149b0723b0787b0721", + "7f0e27f0e47f531b0723b0b6fb0722", + "7f0e397bd07f595b0b0bc920fb0722", + "977837f0e37f14898082b0723b02d5", + "7ec967f0e37f14998082b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0722", + "7f0e37f1487f595b0b0bb0b6fb0722", + "7f0e37f0e37f14898082b0723b02d5", + "7ec967f0e37f14998082b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0722", + "7f0e37f1487f531b0b0bb0b6fb0722", + "7f0e37f0e37f14898082b0723b02d5", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e37f1487f531b0b0bb0b6fb0722", + "7f0e37f0e37f14898082b072297c35", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e37f0e37f14898082b072297c35", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e37f0e366aa89801eb072297c35", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f149b0723b0787b0721", + "7f0e27f1487f531b0b0bb0b6fb0722", + "7f0e37f0e366aa89801eb072297c35", + "7ec967f0e37f14998082b0723b06bd", + "7f07e7f0e47f149b0723b0787b0721", + "7f0e27f0e47f531b0723b0b6fb0722", + "7f0e37f0e366aa89801eb072297c35", + "7ec967f0e37f14998082b0723b06bd", + "7f07e7f0e37f14998083b0787b0721", + "7f0e27f0e47f531b0723b0b6fb0722", + "7f0e37f0e366aa89801eb072297c35", + "7ec967f0e37f14898082b0723b02d5", + "7f07e7f0e37f14998082b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0722", + "7f0e36665b66aa89801e9808297c35", + "665f67f0e37f14898082b0723b02d5", + "7ec967f0e37f14998082b0787b0721", + "7f07e7f0e47f531b0723b0b6fb0722", + "7f0e36665b66a449801e9808297c35", + "665f67f0e37f14898082b0723b02d5", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e36665b66a449801e9808297c35", + "665f67f0e37f14898082b072297c35", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e26665b66a449801e9808297c35", + "665f67f0e37f1489801eb072297c35", + "7ec967f0e37f14998082b0787b06bd", + "7f07e7f0e47f531b0723b0b6fb0721", + "7f0e27f1487f531b0b0bb0b6fb0722" + ], + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ["日", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"], + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ["初", "十", "廿", "卅"], + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"], + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function(y) { + var i; + var sum = 348; + for (i = 32768; i > 8; i >>= 1) { + sum += this.lunarInfo[y - 1900] & i ? 1 : 0; + } + return sum + this.leapDays(y); + }, + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function(y) { + return this.lunarInfo[y - 1900] & 15; + }, + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function(y) { + if (this.leapMonth(y)) { + return this.lunarInfo[y - 1900] & 65536 ? 30 : 29; + } + return 0; + }, + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function(y, m) { + if (m > 12 || m < 1) { + return -1; + } + return this.lunarInfo[y - 1900] & 65536 >> m ? 30 : 29; + }, + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function(y, m) { + if (m > 12 || m < 1) { + return -1; + } + var ms = m - 1; + if (ms == 1) { + return y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 29 : 28; + } else { + return this.solarMonth[ms]; + } + }, + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function(lYear) { + var ganKey = (lYear - 3) % 10; + var zhiKey = (lYear - 3) % 12; + if (ganKey == 0) + ganKey = 10; + if (zhiKey == 0) + zhiKey = 12; + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1]; + }, + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function(cMonth, cDay) { + var s = "魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]; + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "座"; + }, + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function(offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12]; + }, + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function(y, n) { + if (y < 1900 || y > 2100) { + return -1; + } + if (n < 1 || n > 24) { + return -1; + } + var _table = this.sTermInfo[y - 1900]; + var _info = [ + parseInt("0x" + _table.substr(0, 5)).toString(), + parseInt("0x" + _table.substr(5, 5)).toString(), + parseInt("0x" + _table.substr(10, 5)).toString(), + parseInt("0x" + _table.substr(15, 5)).toString(), + parseInt("0x" + _table.substr(20, 5)).toString(), + parseInt("0x" + _table.substr(25, 5)).toString() + ]; + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ]; + return parseInt(_calday[n - 1]); + }, + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function(m) { + if (m > 12 || m < 1) { + return -1; + } + var s = this.nStr3[m - 1]; + s += "月"; + return s; + }, + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function(d) { + var s; + switch (d) { + case 10: + s = "初十"; + break; + case 20: + s = "二十"; + break; + case 30: + s = "三十"; + break; + default: + s = this.nStr2[Math.floor(d / 10)]; + s += this.nStr1[d % 10]; + } + return s; + }, + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function(y) { + return this.Animals[(y - 4) % 12]; + }, + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:__f__('log','at node_modules/uview-plus/libs/util/calendar.js:381',calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function(y, m, d) { + if (y < 1900 || y > 2100) { + return -1; + } + if (y == 1900 && m == 1 && d < 31) { + return -1; + } + if (!y) { + var objDate = /* @__PURE__ */ new Date(); + } else { + var objDate = new Date(y, parseInt(m) - 1, d); + } + var i; + var leap = 0; + var temp = 0; + var y = objDate.getFullYear(); + var m = objDate.getMonth() + 1; + var d = objDate.getDate(); + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 864e5; + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i); + offset -= temp; + } + if (offset < 0) { + offset += temp; + i--; + } + var isTodayObj = /* @__PURE__ */ new Date(); + var isToday = false; + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true; + } + var nWeek = objDate.getDay(); + var cWeek = this.nStr1[nWeek]; + if (nWeek == 0) { + nWeek = 7; + } + var year = i; + var leap = this.leapMonth(i); + var isLeap = false; + for (i = 1; i < 13 && offset > 0; i++) { + if (leap > 0 && i == leap + 1 && isLeap == false) { + --i; + isLeap = true; + temp = this.leapDays(year); + } else { + temp = this.monthDays(year, i); + } + if (isLeap == true && i == leap + 1) { + isLeap = false; + } + offset -= temp; + } + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false; + } else { + isLeap = true; + --i; + } + } + if (offset < 0) { + offset += temp; + --i; + } + var month = i; + var day = offset + 1; + var sm = m - 1; + var gzY = this.toGanZhiYear(year); + var firstNode = this.getTerm(y, m * 2 - 1); + var secondNode = this.getTerm(y, m * 2); + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11); + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12); + } + var isTerm = false; + var Term = null; + if (firstNode == d) { + isTerm = true; + Term = this.solarTerm[m * 2 - 2]; + } + if (secondNode == d) { + isTerm = true; + Term = this.solarTerm[m * 2 - 1]; + } + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 864e5 + 25567 + 10; + var gzD = this.toGanZhi(dayCyclical + d - 1); + var astro = this.toAstro(m, d); + return { "lYear": year, "lMonth": month, "lDay": day, "Animal": this.getAnimal(year), "IMonthCn": (isLeap ? "闰" : "") + this.toChinaMonth(month), "IDayCn": this.toChinaDay(day), "cYear": y, "cMonth": m, "cDay": d, "gzYear": gzY, "gzMonth": gzM, "gzDay": gzD, "isToday": isToday, "isLeap": isLeap, "nWeek": nWeek, "ncWeek": "星期" + cWeek, "isTerm": isTerm, "Term": Term, "astro": astro }; + }, + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:__f__('log','at node_modules/uview-plus/libs/util/calendar.js:500',calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function(y, m, d, isLeapMonth) { + var isLeapMonth = !!isLeapMonth; + var leapMonth = this.leapMonth(y); + this.leapDays(y); + if (isLeapMonth && leapMonth != m) { + return -1; + } + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { + return -1; + } + var day = this.monthDays(y, m); + var _day = day; + if (isLeapMonth) { + _day = this.leapDays(y, m); + } + if (y < 1900 || y > 2100 || d > _day) { + return -1; + } + var offset = 0; + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i); + } + var leap = 0; + var isAdd = false; + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y); + if (!isAdd) { + if (leap <= i && leap > 0) { + offset += this.leapDays(y); + isAdd = true; + } + } + offset += this.monthDays(y, i); + } + if (isLeapMonth) { + offset += day; + } + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0); + var calObj = new Date((offset + d - 31) * 864e5 + stmap); + var cY = calObj.getUTCFullYear(); + var cM = calObj.getUTCMonth() + 1; + var cD = calObj.getUTCDate(); + return this.solar2lunar(cY, cM, cD); + } + }; + const _sfc_main$7 = { + name: "u-calendar", + mixins: [mpMixin, mixin, props], + components: { + uHeader, + uMonth + }, + data() { + return { + // 需要显示的月份的数组 + months: [], + // 在月份滚动区域中,当前视图中月份的index索引 + monthIndex: 0, + // 月份滚动区域的高度 + listHeight: 0, + // month组件中选择的日期数组 + selected: [], + scrollIntoView: "", + scrollTop: 0, + // 过滤处理方法 + innerFormatter: (value) => value + }; + }, + watch: { + selectedChange: { + immediate: true, + handler(n) { + this.setMonth(); + } + }, + // 打开弹窗时,设置月份数据 + show: { + immediate: true, + handler(n) { + this.setMonth(); + } + } + }, + computed: { + // 由于maxDate和minDate可以为字符串(2021-10-10),或者数值(时间戳),但是dayjs如果接受字符串形式的时间戳会有问题,这里进行处理 + innerMaxDate() { + return uni.$u.test.number(this.maxDate) ? Number(this.maxDate) : this.maxDate; + }, + innerMinDate() { + return uni.$u.test.number(this.minDate) ? Number(this.minDate) : this.minDate; + }, + // 多个条件的变化,会引起选中日期的变化,这里统一管理监听 + selectedChange() { + return [this.innerMinDate, this.innerMaxDate, this.defaultDate]; + }, + subtitle() { + if (this.months.length) { + return `${this.months[this.monthIndex].year}年${this.months[this.monthIndex].month}月`; + } else { + return ""; + } + }, + buttonDisabled() { + if (this.mode === "range") { + if (this.selected.length <= 1) { + return true; + } else { + return false; + } + } else { + return false; + } + } + }, + mounted() { + this.start = Date.now(); + this.init(); + }, + emits: ["confirm", "close"], + methods: { + // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 + setFormatter(e) { + this.innerFormatter = e; + }, + // month组件内部选择日期后,通过事件通知给父组件 + monthSelected(e) { + this.selected = e; + if (!this.showConfirm) { + if (this.mode === "multiple" || this.mode === "single" || this.mode === "range" && this.selected.length >= 2) { + this.$emit("confirm", this.selected); + } + } + }, + init() { + if (this.innerMaxDate && new Date(this.innerMaxDate).getTime() <= Date.now()) { + return uni.$u.error("maxDate不能小于当前时间"); + } + this.listHeight = this.rowHeight * 5 + 30; + this.setMonth(); + }, + close() { + this.$emit("close"); + }, + // 点击确定按钮 + confirm() { + if (!this.buttonDisabled) { + this.$emit("confirm", this.selected); + } + }, + // 获得两个日期之间的月份数 + getMonths(minDate, maxDate) { + const minYear = dayjs(minDate).year(); + const minMonth = dayjs(minDate).month() + 1; + const maxYear = dayjs(maxDate).year(); + const maxMonth = dayjs(maxDate).month() + 1; + return (maxYear - minYear) * 12 + (maxMonth - minMonth) + 1; + }, + // 设置月份数据 + setMonth() { + const minDate = this.innerMinDate || dayjs().valueOf(); + const maxDate = this.innerMaxDate || dayjs(minDate).add(this.monthNum - 1, "month").valueOf(); + const months = uni.$u.range( + 1, + this.monthNum, + this.getMonths(minDate, maxDate) + ); + this.months = []; + for (let i = 0; i < months; i++) { + this.months.push({ + date: new Array( + dayjs(minDate).add(i, "month").daysInMonth() + ).fill(1).map((item, index2) => { + let day = index2 + 1; + const week = dayjs(minDate).add(i, "month").date(day).day(); + const date2 = dayjs(minDate).add(i, "month").date(day).format("YYYY-MM-DD"); + let bottomInfo = ""; + if (this.showLunar) { + const lunar = Calendar.solar2lunar( + dayjs(date2).year(), + dayjs(date2).month() + 1, + dayjs(date2).date() + ); + bottomInfo = lunar.IDayCn; + } + let config2 = { + day, + week, + // 小于最小允许的日期,或者大于最大的日期,则设置为disabled状态 + disabled: dayjs(date2).isBefore( + dayjs(minDate).format("YYYY-MM-DD") + ) || dayjs(date2).isAfter( + dayjs(maxDate).format("YYYY-MM-DD") + ), + // 返回一个日期对象,供外部的formatter获取当前日期的年月日等信息,进行加工处理 + date: new Date(date2), + bottomInfo, + dot: false, + month: dayjs(minDate).add(i, "month").month() + 1 + }; + const formatter = this.formatter || this.innerFormatter; + return formatter(config2); + }), + // 当前所属的月份 + month: dayjs(minDate).add(i, "month").month() + 1, + // 当前年份 + year: dayjs(minDate).add(i, "month").year() + }); + } + }, + // 滚动到默认设置的月份 + scrollIntoDefaultMonth(selected) { + const _index = this.months.findIndex(({ + year, + month + }) => { + month = uni.$u.padZero(month); + return `${year}-${month}` === selected; + }); + if (_index !== -1) { + this.$nextTick(() => { + this.scrollIntoView = `month-${_index}`; + }); + } + }, + // scroll-view滚动监听 + onScroll(event) { + const scrollTop = Math.max(0, event.detail.scrollTop); + for (let i = 0; i < this.months.length; i++) { + if (scrollTop >= (this.months[i].top || this.listHeight)) { + this.monthIndex = i; + } + } + }, + // 更新月份的top值 + updateMonthTop(topArr = []) { + topArr.map((item, index2) => { + this.months[index2].top = item; + }); + if (!this.defaultDate) { + const selected2 = dayjs().format("YYYY-MM"); + this.scrollIntoDefaultMonth(selected2); + return; + } + let selected = dayjs().format("YYYY-MM"); + if (!uni.$u.test.array(this.defaultDate)) { + selected = dayjs(this.defaultDate).format("YYYY-MM"); + } else { + selected = dayjs(this.defaultDate[0]).format("YYYY-MM"); + } + this.scrollIntoDefaultMonth(selected); + } + } + }; + function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { + const _component_uHeader = vue.resolveComponent("uHeader"); + const _component_uMonth = vue.resolveComponent("uMonth"); + const _component_u_button = resolveEasycom(vue.resolveDynamicComponent("u-button"), __easycom_0$1); + const _component_u_popup = resolveEasycom(vue.resolveDynamicComponent("u-popup"), __easycom_1$1); + return vue.openBlock(), vue.createBlock(_component_u_popup, { + show: _ctx.show, + mode: "bottom", + closeable: "", + onClose: $options.close, + round: _ctx.round, + closeOnClickOverlay: _ctx.closeOnClickOverlay + }, { + default: vue.withCtx(() => [ + vue.createElementVNode("view", { class: "u-calendar" }, [ + vue.createVNode(_component_uHeader, { + title: _ctx.title, + subtitle: $options.subtitle, + showSubtitle: _ctx.showSubtitle, + showTitle: _ctx.showTitle + }, null, 8, ["title", "subtitle", "showSubtitle", "showTitle"]), + vue.createElementVNode("scroll-view", { + style: vue.normalizeStyle({ + height: _ctx.$u.addUnit($data.listHeight) + }), + "scroll-y": "", + onScroll: _cache[0] || (_cache[0] = (...args) => $options.onScroll && $options.onScroll(...args)), + "scroll-top": $data.scrollTop, + scrollIntoView: $data.scrollIntoView + }, [ + vue.createVNode(_component_uMonth, { + color: _ctx.color, + rowHeight: _ctx.rowHeight, + showMark: _ctx.showMark, + months: $data.months, + mode: _ctx.mode, + maxCount: _ctx.maxCount, + startText: _ctx.startText, + endText: _ctx.endText, + defaultDate: _ctx.defaultDate, + minDate: $options.innerMinDate, + maxDate: $options.innerMaxDate, + maxMonth: _ctx.monthNum, + readonly: _ctx.readonly, + maxRange: _ctx.maxRange, + rangePrompt: _ctx.rangePrompt, + showRangePrompt: _ctx.showRangePrompt, + allowSameDay: _ctx.allowSameDay, + ref: "month", + onMonthSelected: $options.monthSelected, + onUpdateMonthTop: $options.updateMonthTop + }, null, 8, ["color", "rowHeight", "showMark", "months", "mode", "maxCount", "startText", "endText", "defaultDate", "minDate", "maxDate", "maxMonth", "readonly", "maxRange", "rangePrompt", "showRangePrompt", "allowSameDay", "onMonthSelected", "onUpdateMonthTop"]) + ], 44, ["scroll-top", "scrollIntoView"]), + _ctx.showConfirm ? vue.renderSlot(_ctx.$slots, "footer", { key: 0 }, () => [ + vue.createElementVNode("view", { class: "u-calendar__confirm" }, [ + vue.createVNode(_component_u_button, { + shape: "circle", + text: $options.buttonDisabled ? _ctx.confirmDisabledText : _ctx.confirmText, + color: _ctx.color, + onClick: $options.confirm, + disabled: $options.buttonDisabled + }, null, 8, ["text", "color", "onClick", "disabled"]) + ]) + ], true) : vue.createCommentVNode("v-if", true) + ]) + ]), + _: 3 + /* FORWARDED */ + }, 8, ["show", "onClose", "round", "closeOnClickOverlay"]); + } + const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$3], ["__scopeId", "data-v-4d01889e"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-calendar/u-calendar.vue"]]); + const _sfc_main$6 = { + __name: "plant", + setup(__props) { + const showDatePicker = vue.ref(false); + vue.reactive({ + brand: "", + variety: "" + }); + const confirm = (e) => { + formatAppLog("log", "at components/InformationAdd/plant.vue:85", e); + showDatePicker.value = false; + }; + return (_ctx, _cache) => { + const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); + const _component_up_calendar = resolveEasycom(vue.resolveDynamicComponent("up-calendar"), __easycom_1); + return vue.openBlock(), vue.createElementBlock( + vue.Fragment, + null, + [ + vue.createElementVNode("view", { class: "card" }, [ + vue.createElementVNode("view", { class: "card-li tit" }, [ + vue.createElementVNode("view", { class: "" }, " 土地 "), + vue.createElementVNode("view", { style: { "color": "#00A15E", "font-weight": "bold" } }, " 未种植 ") + ]), + vue.createElementVNode("view", { class: "card-li tit" }, [ + vue.createElementVNode("view", { class: "" }, " 面积: 10亩 ") + ]) + ]), + vue.createElementVNode("view", { class: "card" }, [ + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "card-li-tit" }, " 种植品牌 "), + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_up_input, { + placeholder: "请输入品种", + border: "surround", + modelValue: _ctx.value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.value = $event), + onChange: _ctx.change + }, null, 8, ["modelValue", "onChange"]) + ]) + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "card-li-tit" }, " 具体品种 "), + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_up_input, { + placeholder: "请输入品种", + border: "surround", + modelValue: _ctx.value, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.value = $event), + onChange: _ctx.change + }, null, 8, ["modelValue", "onChange"]) + ]) + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "card-li-tit" }, " 种子品牌 "), + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_up_input, { + placeholder: "请输入品种", + border: "surround", + modelValue: _ctx.value, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.value = $event), + onChange: _ctx.change + }, null, 8, ["modelValue", "onChange"]) + ]) + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "card-li-tit" }, " 种子收购时间 "), + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_up_input, { + placeholder: "点击输入时间", + border: "surround", + modelValue: _ctx.value, + "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.value = $event), + onFocus: _cache[4] || (_cache[4] = ($event) => showDatePicker.value = true) + }, null, 8, ["modelValue"]) + ]) + ]), + vue.createElementVNode("view", { class: "confim-btn" }, " 确认 ") + ]), + vue.createElementVNode("view", { class: "up-img confim-btn" }, " +上传播种图片 "), + vue.createElementVNode("view", { class: "today-btn confim-btn" }, " 今日播种 "), + vue.createCommentVNode(" 组件 "), + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_up_calendar, { + closeOnClickOverlay: true, + show: showDatePicker.value, + onConfirm: confirm, + onClose: _cache[5] || (_cache[5] = ($event) => showDatePicker.value = false) + }, null, 8, ["show"]) + ]) + ], + 64 + /* STABLE_FRAGMENT */ + ); + }; + } + }; + const plantadd = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-0a2913e2"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/components/InformationAdd/plant.vue"]]); + const _sfc_main$5 = { + __name: "index", + setup(__props) { + return (_ctx, _cache) => { + return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [ + vue.createVNode(plantadd) + ]); + }; + } + }; + const PagesInformationAddIndex = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-2fddea55"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/InformationAdd/index.vue"]]); + const _sfc_main$4 = {}; + function _sfc_render$2(_ctx, _cache) { + return vue.openBlock(), vue.createElementBlock("view", { class: "" }, " SADASD "); + } + const biaoge = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$2], ["__file", "D:/zmj/uniapp/TraceabilityAPP/components/biaoge/index.vue"]]); + const _sfc_main$3 = { + components: { + biaoge + }, + data() { + return { + // title: 'Hello' + data: [ + { + tit: "土壤温度", + icon: "TRWD", + dw: "℃", + cont: "soil_temperature", + flag: false + }, + { + tit: "土壤湿度", + icon: "TRSD", + dw: "%RH", + cont: "soil_moisture" + }, + { + tit: "风向", + icon: "FX", + cont: "wind_direction" + }, + { + tit: "风速", + icon: "FS", + dw: "m/s", + cont: "wind_speed" + }, + { + tit: "降雨量", + icon: "JYL", + dw: "mm", + cont: "rainfall" + }, + { + tit: "光照", + icon: "GZ", + dw: "Wlux", + cont: "illumination" + }, + { + tit: "二氧化碳", + icon: "EYHT", + dw: "ppm", + cont: "carbon_dioxide_content" + } + ], + data2: [{ + cont: "气象多要素百叶箱", + cont2: "1天/1次" + }, { + cont: "多功能控制器", + cont2: "3个小时/次" + }], + baseData: {} + }; + }, + onShow() { + companyMine({ + id: 1, + flag: 1 + }).then((res) => { + this.baseData = res.data; + }); + }, + onPullDownRefresh() { + setTimeout(() => { + uni.stopPullDownRefresh(); + }, 500); + }, + methods: { + dateFn() { + var today = /* @__PURE__ */ new Date(); + var year = today.getFullYear(); + var month = today.getMonth() + 1; + var day = today.getDate(); + var dateStr = year + "-" + month + "-" + day; + return dateStr; + }, + backFn() { + uni.navigateBack(); + }, + test() { + companyMine(); + }, + urlFn(name) { + return `/static/img/${name}.png`; + }, + img(w, h, m) { + return `width:${w}rpx;height:${h};margin:0 ${m}rpx `; + }, + navto() { + uni.navigateTo({ + url: "/pages/index2/index" + }); + } + } + }; + function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { + const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$4); + const _component_biaoge = vue.resolveComponent("biaoge"); + return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [ + vue.createElementVNode("view", { class: "head-img" }, [ + vue.createElementVNode("view", { class: "" }, [ + vue.createVNode(_component_u__image, { + src: "/static/img/GJ.jpg", + width: "693.93rpx", + height: " 394.28rpx", + alt: "" + }) + ]), + vue.createCommentVNode(' '), + vue.createElementVNode("view", { class: "poisition" }, [ + vue.createElementVNode("view", { style: { "display": "flex" } }, [ + vue.createVNode(_component_u__image, { + src: "/static/img/dw.png", + style: { "margin": "0 5rpx" }, + width: "35.05rpx", + height: "35.05rpx" + }), + vue.createTextVNode(" 分水岭大南山北326米 ") + ]) + ]) + ]), + vue.createElementVNode("view", { class: "bad-info" }, [ + vue.createElementVNode("view", { + class: "", + style: { "display": "flex", "align-items": "center" } + }, [ + vue.createVNode(_component_u__image, { + src: $options.urlFn("sj"), + style: { "margin": "0 5rpx" }, + width: "28.04rpx", + height: "28.04rpx" + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + null, + "刷新时间:" + vue.toDisplayString($options.dateFn()), + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode("view", { class: "" }, " 查看历史条件> ") + ]), + vue.createElementVNode("view", { class: "up-plant-btn" }, " 上传新的种植情况 "), + vue.createElementVNode("view", { class: "card" }, [ + vue.createElementVNode("view", { class: "tit" }, [ + vue.createElementVNode("view", { class: "" }, " 1号土地 "), + vue.createElementVNode("view", { class: "" }, " 溯源码: 12302 ") + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "" }, " 当前种植: 土豆 "), + vue.createElementVNode("view", { class: "" }, " 种植品牌: 的划分等级 ") + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "" }, " 土地面积: 20亩 "), + vue.createElementVNode("view", { class: "" }, " 种子品牌: 的划分等级 ") + ]), + vue.createElementVNode("view", { class: "card-li" }, [ + vue.createElementVNode("view", { class: "" }, " 播种时间: 2020.12.01 ") + ]) + ]), + vue.createCommentVNode(" 生长记录 "), + vue.createElementVNode("view", { class: "grow-record" }, [ + vue.createElementVNode("view", { class: "grow-record-tit" }, [ + vue.createElementVNode("view", { class: "" }, " 生长记录操作 "), + vue.createElementVNode("view", { class: "updata-btn" }, " 更新生长记录 ") + ]), + vue.createElementVNode("view", { class: "card" }, [ + vue.createVNode(_component_biaoge) + ]) + ]), + vue.createElementVNode("view", { class: "data" }, [ + vue.createElementVNode("view", { class: "tit" }, [ + vue.createElementVNode("view", { + class: "", + style: { "display": "flex", "justify-content": "space-between", "font-size": "29.79rpx" } + }, [ + vue.createElementVNode("view", { class: "" }, " 土地监测数据 "), + vue.createElementVNode("view", { class: "" }, " 查看全部检测记录> ") + ]), + vue.createElementVNode("view", { class: "tit-b" }, [ + vue.createVNode(_component_u__image, { + src: $options.urlFn("sj"), + style: { "margin": "0 5rpx" }, + width: "28.04rpx", + height: "28.04rpx" + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + null, + "刷新时间:" + vue.toDisplayString($options.dateFn()), + 1 + /* TEXT */ + ) + ]) + ]), + vue.createElementVNode("view", { class: "data-cont" }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($data.data, (item, index2) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: "data-cont-li center", + key: index2 + }, [ + vue.createElementVNode("view", { style: { "margin": "0 20rpx" } }, [ + vue.createElementVNode("view", { class: "center" }, [ + vue.createCommentVNode(` `), + vue.createVNode(_component_u__image, { + src: $options.urlFn(item.icon), + style: { "margin": "0 5rpx" }, + width: "38.55rpx", + height: "38.54rpx" + }, null, 8, ["src"]), + vue.createTextVNode( + " " + vue.toDisplayString(item.tit), + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode("view", { class: "b-cls" }, [ + vue.createElementVNode( + "view", + { + class: "", + style: vue.normalizeStyle({ color: item.flag ? "#0095FF" : "" }) + }, + [ + vue.createElementVNode( + "text", + { style: { "font-size": "70.09rpx" } }, + vue.toDisplayString($data.baseData[item.cont]), + 1 + /* TEXT */ + ), + vue.createTextVNode( + vue.toDisplayString(item.dw), + 1 + /* TEXT */ + ) + ], + 4 + /* STYLE */ + ), + item.flag ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "", + style: { "display": "flex", "align-items": "center" } + }, [ + vue.createVNode(_component_u__image, { + src: $options.urlFn("D"), + style: { "margin": "0 5rpx" }, + width: "31.54rpx", + height: "31.54rpx" + }, null, 8, ["src"]), + vue.createElementVNode("text", { style: { "color": "#0095FF" } }, "5") + ])) : vue.createCommentVNode("v-if", true) + ]) + ]) + ]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ]) + ]), + vue.createElementVNode("view", { class: "ripe-btn" }, " 标记为成熟 ") + ]); + } + const PagesDetailPlant = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$1], ["__scopeId", "data-v-3bac3d0d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/detail/plant.vue"]]); const _sfc_main$2 = { __name: "index", setup(__props) { @@ -4243,6 +8221,8 @@ This will fail in production.`); } const PagesTestIndex1 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/test/index1.vue"]]); __definePage("pages/index/index", PagesIndexIndex); + __definePage("pages/InformationAdd/index", PagesInformationAddIndex); + __definePage("pages/detail/plant", PagesDetailPlant); __definePage("pages/test/index", PagesTestIndex); __definePage("pages/test/index1", PagesTestIndex1); const _sfc_main = { @@ -4577,7 +8557,7 @@ This will fail in production.`); if (depth2 === 0) return parent2; var child; - var proto; + var proto2; if (typeof parent2 != "object") { return parent2; } @@ -4613,11 +8593,11 @@ This will fail in production.`); child = Object.create(parent2); } else { if (typeof prototype == "undefined") { - proto = Object.getPrototypeOf(parent2); - child = Object.create(proto); + proto2 = Object.getPrototypeOf(parent2); + child = Object.create(proto2); } else { child = Object.create(prototype); - proto = prototype; + proto2 = prototype; } } if (circular) { @@ -5819,7 +9799,7 @@ This will fail in production.`); throttle, mixin, mpMixin, - props: props$3, + props: props$b, ...index, color, platform: platform$1 diff --git a/unpackage/dist/dev/app-plus/app.css b/unpackage/dist/dev/app-plus/app.css index 1c403de..141bf8f 100644 --- a/unpackage/dist/dev/app-plus/app.css +++ b/unpackage/dist/dev/app-plus/app.css @@ -3087,4 +3087,18 @@ -webkit-appearance: none; background: transparent; } +.card { + position: relative; + width: 21.68531rem; + margin: auto; + background-color: #fff; + box-sizing: border-box; + padding: 0.625rem; + border-radius: 0.65719rem 0.65719rem 0.65719rem 0.65719rem; + margin-bottom: 1.25rem; + font-size: 0.93094rem; +} +.card .card-li { + margin-bottom: 0.53125rem; +} /*每个页面公共css */ \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json index bc90db2..09be9e2 100644 --- a/unpackage/dist/dev/app-plus/manifest.json +++ b/unpackage/dist/dev/app-plus/manifest.json @@ -34,6 +34,7 @@ }, "popGesture": "close", "launchwebview": { + "render": "always", "id": "1", "kernel": "WKWebview" }, @@ -78,16 +79,11 @@ "style": "dark", "background": "#F8F8F8" }, + "arguments": "{\"path\":\"pages/detail/plant\"}", "uniStatistics": { "enable": false }, "allowsInlineMediaPlayback": true, - "safearea": { - "background": "#EBF1EF", - "bottom": { - "offset": "auto" - } - }, "uni-app": { "control": "uni-v3", "vueVersion": "3", @@ -101,38 +97,6 @@ "webView": { "minUserAgentVersion": "49.0" } - }, - "tabBar": { - "position": "bottom", - "color": "#B3B3B3", - "selectedColor": "black", - "borderStyle": "rgba(255,255,255,0.4)", - "blurEffect": "none", - "fontSize": "10px", - "iconWidth": "24px", - "spacing": "3px", - "height": "50px", - "backgroundColor": "#EBF1EF", - "list": [ - { - "pagePath": "pages/index/index", - "text": "地块", - "iconPath": "/static/tabs-icon/home.png", - "selectedIconPath": "/static/img/DK.png" - }, - { - "pagePath": "pages/test/index", - "text": "数据", - "iconPath": "/static/img/SJ (1).png", - "selectedIconPath": "/static/img/SJ (1).png" - } - ], - "selectedIndex": 0, - "shown": true, - "child": [ - "lauchwebview" - ], - "selected": 0 } }, "launch_path": "__uniappview.html" diff --git a/unpackage/dist/dev/app-plus/pages/index/index.css b/unpackage/dist/dev/app-plus/pages/index/index.css index 58072c4..7cd939d 100644 --- a/unpackage/dist/dev/app-plus/pages/index/index.css +++ b/unpackage/dist/dev/app-plus/pages/index/index.css @@ -23,171 +23,6 @@ /* 垂直间距 */ /* 透明度 */ /* 文章场景相关 */ -uni-view[data-v-00752c6d], uni-scroll-view[data-v-00752c6d], uni-swiper-item[data-v-00752c6d] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-loading-icon[data-v-00752c6d] { - flex-direction: row; - align-items: center; - justify-content: center; - color: #c8c9cc; -} -.u-loading-icon__text[data-v-00752c6d] { - margin-left: 4px; - color: #606266; - font-size: 14px; - line-height: 20px; -} -.u-loading-icon__spinner[data-v-00752c6d] { - width: 30px; - height: 30px; - position: relative; - box-sizing: border-box; - max-width: 100%; - max-height: 100%; - animation: u-rotate-00752c6d 1s linear infinite; -} -.u-loading-icon__spinner--semicircle[data-v-00752c6d] { - border-width: 2px; - border-color: transparent; - border-top-right-radius: 100px; - border-top-left-radius: 100px; - border-bottom-left-radius: 100px; - border-bottom-right-radius: 100px; - border-style: solid; -} -.u-loading-icon__spinner--circle[data-v-00752c6d] { - border-top-right-radius: 100px; - border-top-left-radius: 100px; - border-bottom-left-radius: 100px; - border-bottom-right-radius: 100px; - border-width: 2px; - border-top-color: #e5e5e5; - border-right-color: #e5e5e5; - border-bottom-color: #e5e5e5; - border-left-color: #e5e5e5; - border-style: solid; -} -.u-loading-icon--vertical[data-v-00752c6d] { - flex-direction: column; -} -[data-v-00752c6d]:host { - font-size: 0px; - line-height: 1; -} -.u-loading-icon__spinner--spinner[data-v-00752c6d] { - animation-timing-function: steps(12); -} -.u-loading-icon__text[data-v-00752c6d]:empty { - display: none; -} -.u-loading-icon--vertical .u-loading-icon__text[data-v-00752c6d] { - margin: 6px 0 0; - color: #606266; -} -.u-loading-icon__dot[data-v-00752c6d] { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.u-loading-icon__dot[data-v-00752c6d]:before { - display: block; - width: 2px; - height: 25%; - margin: 0 auto; - background-color: currentColor; - border-radius: 40%; - content: " "; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(1) { - transform: rotate(30deg); - opacity: 1; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(2) { - transform: rotate(60deg); - opacity: 0.9375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(3) { - transform: rotate(90deg); - opacity: 0.875; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(4) { - transform: rotate(120deg); - opacity: 0.8125; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(5) { - transform: rotate(150deg); - opacity: 0.75; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(6) { - transform: rotate(180deg); - opacity: 0.6875; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(7) { - transform: rotate(210deg); - opacity: 0.625; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(8) { - transform: rotate(240deg); - opacity: 0.5625; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(9) { - transform: rotate(270deg); - opacity: 0.5; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(10) { - transform: rotate(300deg); - opacity: 0.4375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(11) { - transform: rotate(330deg); - opacity: 0.375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(12) { - transform: rotate(360deg); - opacity: 0.3125; -} -@keyframes u-rotate-00752c6d { -0% { - transform: rotate(0deg); -} -to { - transform: rotate(1turn); -} -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ uni-view[data-v-1c933a9a], uni-scroll-view[data-v-1c933a9a], uni-swiper-item[data-v-1c933a9a] { display: flex; flex-direction: column; @@ -277,7 +112,7 @@ uni-view[data-v-1c933a9a], uni-scroll-view[data-v-1c933a9a], uni-swiper-item[dat /* 垂直间距 */ /* 透明度 */ /* 文章场景相关 */ -uni-view[data-v-461e713c], uni-scroll-view[data-v-461e713c], uni-swiper-item[data-v-461e713c] { +uni-view[data-v-0573594d], uni-scroll-view[data-v-0573594d], uni-swiper-item[data-v-0573594d] { display: flex; flex-direction: column; flex-shrink: 0; @@ -286,153 +121,284 @@ uni-view[data-v-461e713c], uni-scroll-view[data-v-461e713c], uni-swiper-item[dat align-items: stretch; align-content: flex-start; } -.u-button[data-v-461e713c] { - width: 100%; + +/** + * vue版本动画内置的动画模式有如下: + * fade:淡入 + * zoom:缩放 + * fade-zoom:缩放淡入 + * fade-up:上滑淡入 + * fade-down:下滑淡入 + * fade-left:左滑淡入 + * fade-right:右滑淡入 + * slide-up:上滑进入 + * slide-down:下滑进入 + * slide-left:左滑进入 + * slide-right:右滑进入 + */ +.u-fade-enter-active[data-v-0573594d], +.u-fade-leave-active[data-v-0573594d] { + transition-property: opacity; } -.u-button__text[data-v-461e713c] { - white-space: nowrap; - line-height: 1; +.u-fade-enter[data-v-0573594d], +.u-fade-leave-to[data-v-0573594d] { + opacity: 0; } -.u-button[data-v-461e713c]:before { - position: absolute; - top: 50%; - left: 50%; +.u-fade-zoom-enter[data-v-0573594d], +.u-fade-zoom-leave-to[data-v-0573594d] { + transform: scale(0.95); + opacity: 0; +} +.u-fade-zoom-enter-active[data-v-0573594d], +.u-fade-zoom-leave-active[data-v-0573594d] { + transition-property: transform, opacity; +} +.u-fade-down-enter-active[data-v-0573594d], +.u-fade-down-leave-active[data-v-0573594d], +.u-fade-left-enter-active[data-v-0573594d], +.u-fade-left-leave-active[data-v-0573594d], +.u-fade-right-enter-active[data-v-0573594d], +.u-fade-right-leave-active[data-v-0573594d], +.u-fade-up-enter-active[data-v-0573594d], +.u-fade-up-leave-active[data-v-0573594d] { + transition-property: opacity, transform; +} +.u-fade-up-enter[data-v-0573594d], +.u-fade-up-leave-to[data-v-0573594d] { + transform: translate3d(0, 100%, 0); + opacity: 0; +} +.u-fade-down-enter[data-v-0573594d], +.u-fade-down-leave-to[data-v-0573594d] { + transform: translate3d(0, -100%, 0); + opacity: 0; +} +.u-fade-left-enter[data-v-0573594d], +.u-fade-left-leave-to[data-v-0573594d] { + transform: translate3d(-100%, 0, 0); + opacity: 0; +} +.u-fade-right-enter[data-v-0573594d], +.u-fade-right-leave-to[data-v-0573594d] { + transform: translate3d(100%, 0, 0); + opacity: 0; +} +.u-slide-down-enter-active[data-v-0573594d], +.u-slide-down-leave-active[data-v-0573594d], +.u-slide-left-enter-active[data-v-0573594d], +.u-slide-left-leave-active[data-v-0573594d], +.u-slide-right-enter-active[data-v-0573594d], +.u-slide-right-leave-active[data-v-0573594d], +.u-slide-up-enter-active[data-v-0573594d], +.u-slide-up-leave-active[data-v-0573594d] { + transition-property: transform; +} +.u-slide-up-enter[data-v-0573594d], +.u-slide-up-leave-to[data-v-0573594d] { + transform: translate3d(0, 100%, 0); +} +.u-slide-down-enter[data-v-0573594d], +.u-slide-down-leave-to[data-v-0573594d] { + transform: translate3d(0, -100%, 0); +} +.u-slide-left-enter[data-v-0573594d], +.u-slide-left-leave-to[data-v-0573594d] { + transform: translate3d(-100%, 0, 0); +} +.u-slide-right-enter[data-v-0573594d], +.u-slide-right-leave-to[data-v-0573594d] { + transform: translate3d(100%, 0, 0); +} +.u-zoom-enter-active[data-v-0573594d], +.u-zoom-leave-active[data-v-0573594d] { + transition-property: transform; +} +.u-zoom-enter[data-v-0573594d], +.u-zoom-leave-to[data-v-0573594d] { + transform: scale(0.95); +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +uni-view[data-v-9d58ba7c], uni-scroll-view[data-v-9d58ba7c], uni-swiper-item[data-v-9d58ba7c] { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-image[data-v-9d58ba7c] { + position: relative; + transition: opacity 0.5s ease-in-out; +} +.u-image__image[data-v-9d58ba7c] { width: 100%; height: 100%; - border: inherit; - border-radius: inherit; - transform: translate(-50%, -50%); - opacity: 0; - content: " "; - background-color: #000; - border-color: #000; } -.u-button--active[data-v-461e713c]:before { - opacity: 0.15; -} -.u-button__icon + .u-button__text[data-v-461e713c]:not(:empty), .u-button__loading-text[data-v-461e713c] { - margin-left: 4px; -} -.u-button--plain.u-button--primary[data-v-461e713c] { - color: #3c9cff; -} -.u-button--plain.u-button--info[data-v-461e713c] { - color: #909399; -} -.u-button--plain.u-button--success[data-v-461e713c] { - color: #5ac725; -} -.u-button--plain.u-button--error[data-v-461e713c] { - color: #f56c6c; -} -.u-button--plain.u-button--warning[data-v-461e713c] { - color: #f56c6c; -} -.u-button[data-v-461e713c] { - height: 40px; - position: relative; +.u-image__loading[data-v-9d58ba7c], .u-image__error[data-v-9d58ba7c] { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + + display: flex; + + flex-direction: row; align-items: center; justify-content: center; - - display: flex; - - flex-direction: row; + background-color: #f3f4f6; + color: #909193; + font-size: 1.4375rem; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.content[data-v-093aaff7] { + min-height: 90vh; + position: relative; + background-color: #EAF2EF; +} +.content .border-bgc[data-v-093aaff7] { + height: 6.25rem; + background-color: #34D190; + border-radius: 0 0 1.875rem 1.875rem; + position: absolute; + width: 23.4375rem; +} +.content .card[data-v-093aaff7] { + position: relative; + width: 21.68531rem; + margin: auto; + background-color: #fff; box-sizing: border-box; - flex-direction: row; + padding: 0.625rem; + border-radius: 0.65719rem 0.65719rem 0.65719rem 0.65719rem; + margin-bottom: 1.25rem; } -.u-button__text[data-v-461e713c] { - font-size: 15px; +.content .card .card-li[data-v-093aaff7] { + margin-bottom: 0.53125rem; } -.u-button__loading-text[data-v-461e713c] { - font-size: 15px; - margin-left: 4px; -} -.u-button--large[data-v-461e713c] { - width: 100%; - height: 50px; - padding: 0 15px; -} -.u-button--normal[data-v-461e713c] { - padding: 0 12px; - font-size: 14px; -} -.u-button--small[data-v-461e713c] { - min-width: 60px; - height: 30px; - padding: 0px 8px; - font-size: 12px; -} -.u-button--mini[data-v-461e713c] { - height: 22px; - font-size: 10px; - min-width: 50px; - padding: 0px 8px; -} -.u-button--disabled[data-v-461e713c] { - opacity: 0.5; -} -.u-button--info[data-v-461e713c] { - color: #323233; - background-color: #fff; - border-color: #ebedf0; - border-width: 1px; - border-style: solid; -} -.u-button--success[data-v-461e713c] { - color: #fff; - background-color: #5ac725; - border-color: #5ac725; - border-width: 1px; - border-style: solid; -} -.u-button--primary[data-v-461e713c] { - color: #fff; - background-color: #3c9cff; - border-color: #3c9cff; - border-width: 1px; - border-style: solid; -} -.u-button--error[data-v-461e713c] { - color: #fff; - background-color: #f56c6c; - border-color: #f56c6c; - border-width: 1px; - border-style: solid; -} -.u-button--warning[data-v-461e713c] { - color: #fff; - background-color: #f9ae3d; - border-color: #f9ae3d; - border-width: 1px; - border-style: solid; -} -.u-button--block[data-v-461e713c] { - +.content .card .tit[data-v-093aaff7] { display: flex; - - flex-direction: row; + font-size: 1.04031rem; + font-weight: bold; + justify-content: space-between; +} +.bottom[data-v-093aaff7] { + width: 23.4375rem; + height: 4.6875rem; + background-color: #EAF2EF; + position: fixed; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; +} +.bottom .add-btn[data-v-093aaff7] { + width: 7.4475rem; + height: 2.62844rem; + border: #34D190 1px solid; + border-radius: 1.31438rem 1.31438rem 1.31438rem 1.31438rem; + display: flex; + align-items: center; + color: #00A15E; + font-size: 1.04031rem; + font-weight: bold; + justify-content: center; + margin-right: 0.625rem; +} +.bottom .add[data-v-093aaff7] { + background-color: #00A15E; + color: white; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.tabbar { + z-index: 999; + background-color: #34D190; + position: fixed; + padding: 0.625rem 0; +} +.tabbar .scoll-list { + white-space: nowrap; + overflow-x: scroll; + overflow-y: hidden; width: 100%; } -.u-button--circle[data-v-461e713c] { - border-top-right-radius: 100px; - border-top-left-radius: 100px; - border-bottom-left-radius: 100px; - border-bottom-right-radius: 100px; -} -.u-button--square[data-v-461e713c] { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.u-button__icon[data-v-461e713c] { - min-width: 1em; - line-height: inherit !important; - vertical-align: top; -} -.u-button--plain[data-v-461e713c] { - background-color: #fff; -} -.u-button--hairline[data-v-461e713c] { - border-width: 0.5px !important; +.tabbar .scoll-list .scoll-list-li { + display: inline-block; + margin-right: 20px; + white-space: normal; + font-size: 1.04031rem; + transform: skewX(-10deg); } \ No newline at end of file