From ac355aaf6bad780662919571b83cccd5c197b35e Mon Sep 17 00:00:00 2001
From: merak1237 <1036673629@qq.com>
Date: Tue, 16 Sep 2025 17:27:32 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BC=9A=E8=AE=AE=E9=A2=84?=
=?UTF-8?q?=E7=BA=A6=E7=95=8C=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/config.js | 4 +-
pages/sys/workbench/meet/createMeet.vue | 270 +++++++--
pages/sys/workbench/workbench.vue | 10 +-
static/ic_check_mark.png | Bin 0 -> 962 bytes
static/ic_checkbox_border.png | Bin 0 -> 399 bytes
uni_modules/uni-popup/changelog.md | 100 ++++
.../components/uni-popup-dialog/keypress.js | 45 ++
.../uni-popup-dialog/uni-popup-dialog.vue | 327 +++++++++++
.../uni-popup-message/uni-popup-message.vue | 143 +++++
.../uni-popup-share/uni-popup-share.vue | 188 +++++++
.../components/uni-popup/i18n/en.json | 7 +
.../components/uni-popup/i18n/index.js | 8 +
.../components/uni-popup/i18n/zh-Hans.json | 7 +
.../components/uni-popup/i18n/zh-Hant.json | 7 +
.../components/uni-popup/keypress.js | 45 ++
.../uni-popup/components/uni-popup/popup.js | 26 +
.../components/uni-popup/uni-popup.uvue | 90 +++
.../components/uni-popup/uni-popup.vue | 518 ++++++++++++++++++
uni_modules/uni-popup/package.json | 107 ++++
uni_modules/uni-popup/readme.md | 17 +
uni_modules/uni-transition/changelog.md | 31 ++
.../uni-transition/createAnimation.js | 131 +++++
.../uni-transition/uni-transition.vue | 292 ++++++++++
uni_modules/uni-transition/package.json | 112 ++++
uni_modules/uni-transition/readme.md | 11 +
vue.config.js | 4 +-
26 files changed, 2438 insertions(+), 62 deletions(-)
create mode 100644 static/ic_check_mark.png
create mode 100644 static/ic_checkbox_border.png
create mode 100644 uni_modules/uni-popup/changelog.md
create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/keypress.js
create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
create mode 100644 uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
create mode 100644 uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/en.json
create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/index.js
create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
create mode 100644 uni_modules/uni-popup/components/uni-popup/keypress.js
create mode 100644 uni_modules/uni-popup/components/uni-popup/popup.js
create mode 100644 uni_modules/uni-popup/components/uni-popup/uni-popup.uvue
create mode 100644 uni_modules/uni-popup/components/uni-popup/uni-popup.vue
create mode 100644 uni_modules/uni-popup/package.json
create mode 100644 uni_modules/uni-popup/readme.md
create mode 100644 uni_modules/uni-transition/changelog.md
create mode 100644 uni_modules/uni-transition/components/uni-transition/createAnimation.js
create mode 100644 uni_modules/uni-transition/components/uni-transition/uni-transition.vue
create mode 100644 uni_modules/uni-transition/package.json
create mode 100644 uni_modules/uni-transition/readme.md
diff --git a/common/config.js b/common/config.js
index cebda09..0f5c607 100644
--- a/common/config.js
+++ b/common/config.js
@@ -28,10 +28,10 @@ const config = {
// config.baseUrl = 'http://tc.cqsznc.com:7080/api';
//本地
-// config.baseUrl = '/js';
+config.baseUrl = '/js';
//正式
-config.baseUrl = 'http://183.230.235.66:11010/api';
+// config.baseUrl = 'http://183.230.235.66:11010/api';
config.imgUrl = 'http://183.230.235.66:11010';
// config.baseUrl = 'http://378a061a.r28.cpolar.top'
export default config;
diff --git a/pages/sys/workbench/meet/createMeet.vue b/pages/sys/workbench/meet/createMeet.vue
index a4f81b8..d5b789d 100644
--- a/pages/sys/workbench/meet/createMeet.vue
+++ b/pages/sys/workbench/meet/createMeet.vue
@@ -10,8 +10,8 @@
:class="currentDate === item.date ? 'active' : ''"
@click="selectDate(item.date)"
>
- {{item.weekDay}}
- {{item.date}}
+ {{ item.weekDay }}
+ {{ item.date }}
今天
@@ -24,7 +24,8 @@
上午
-
+
下午
@@ -40,35 +41,73 @@
会议时间
-
-
+
+
选择会议室
-
-
- {{ formData.meetingRoom || '请选择会议室' }}
-
+
+ {{ formData.meetingRoom || '请选择会议室' }}
+
+
+
+
+
+
-
+
增值服务
会议物品
-
+
- {{category.name}}
+ {{ category.name }}
- {{item.name}}
- ¥{{item.price}}/{{item.unit}}
+ {{ item.name }}
+ ¥{{ item.price }}/{{ item.unit }}
-
@@ -81,7 +120,8 @@
@@ -89,9 +129,9 @@
@@ -104,7 +144,7 @@ export default {
dateList: [],
timeTab: 'afternoon',
formData: {
- time:'',
+ time: '',
peopleNum: '',
meetingRoom: '',
theme: '',
@@ -116,35 +156,41 @@ export default {
meetingRoomIndex: 0,
meetingTime: '2025-07-07 14:00-18:00',
meetingRooms: [
- { name: '3栋1号会议室 (3078)', capacity: '可容纳20人', facility: '带电视', price: 29 },
- { name: '3栋2号会议室 (5124)', capacity: '可容纳50人', facility: '带投影仪', price: 49 },
- { name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99 }
+ {name: '3栋1号会议室 (3078)', capacity: '可容纳20人', facility: '带电视', price: 29},
+ {name: '3栋2号会议室 (5124)', capacity: '可容纳50人', facility: '带投影仪', price: 49},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99},
+ {name: '1栋3号会议室 (1247)', capacity: '可容纳100人', facility: '', price: 99}
],
services: [
{
name: '茶水',
items: [
- { id: 1, name: '清茶', price: 5, unit: '杯', quantity: 0 },
- { id: 2, name: '碧螺春', price: 8, unit: '杯', quantity: 0 },
- { id: 3, name: '红茶', price: 10, unit: '杯', quantity: 0 },
- { id: 4, name: '怡宝矿泉水', price: 2, unit: '瓶', quantity: 0 }
+ {id: 1, name: '清茶', price: 5, unit: '杯', quantity: 0},
+ {id: 2, name: '碧螺春', price: 8, unit: '杯', quantity: 0},
+ {id: 3, name: '红茶', price: 10, unit: '杯', quantity: 0},
+ {id: 4, name: '怡宝矿泉水', price: 2, unit: '瓶', quantity: 0}
]
},
{
name: '会议物品',
items: [
- { id: 5, name: '纸巾', price: 1, unit: '包', quantity: 0 },
- { id: 6, name: '一次性毛巾', price: 3, unit: '个', quantity: 0 },
- { id: 7, name: '湿巾', price: 2, unit: '包', quantity: 0 },
- { id: 8, name: '文件袋', price: 5, unit: '个', quantity: 0 }
+ {id: 5, name: '纸巾', price: 1, unit: '包', quantity: 0},
+ {id: 6, name: '一次性毛巾', price: 3, unit: '个', quantity: 0},
+ {id: 7, name: '湿巾', price: 2, unit: '包', quantity: 0},
+ {id: 8, name: '文件袋', price: 5, unit: '个', quantity: 0}
]
},
{
name: '其他物品',
items: [
- { id: 9, name: '话筒', price: 10, unit: '个', quantity: 0 },
- { id: 10, name: '音乐', price: 20, unit: '场', quantity: 0 },
- { id: 11, name: '假花', price: 15, unit: '束', quantity: 0 }
+ {id: 9, name: '话筒', price: 10, unit: '个', quantity: 0},
+ {id: 10, name: '音乐', price: 20, unit: '场', quantity: 0},
+ {id: 11, name: '假花', price: 15, unit: '束', quantity: 0}
]
}
],
@@ -191,12 +237,22 @@ export default {
this.timeTab = tab;
},
- onMeetingRoomChange(e) {
- this.meetingRoomIndex = e.detail.value;
- this.formData.meetingRoom = this.meetingRooms[this.meetingRoomIndex].name;
- this.calculateTotalPrice();
- },
+ showMeetingRoomPicker() {
+ this.$refs.meetingRoomPopup.open();
+ },
+ hideMeetingRoomPicker() {
+ this.$refs.meetingRoomPopup.close();
+ },
+ selectMeetingRoom(index) {
+ this.meetingRoomIndex = index;
+ },
+ confirmMeetingRoom() {
+ const selectedRoom = this.meetingRooms[this.meetingRoomIndex];
+ this.formData.meetingRoom = `${selectedRoom.name} (¥${selectedRoom.price})`;
+ this.calculateTotalPrice();
+ this.hideMeetingRoomPicker();
+ },
adjustQuantity(catIndex, itemIndex, delta) {
const item = this.services[catIndex].items[itemIndex];
const newQuantity = item.quantity + delta;
@@ -233,7 +289,7 @@ export default {
return;
}
- uni.showLoading({ title: '提交中...' });
+ uni.showLoading({title: '提交中...'});
setTimeout(() => {
uni.hideLoading();
uni.showToast({
@@ -576,24 +632,132 @@ export default {
padding: 20rpx;
height: 180rpx;
}
-.datetime-picker {
+
+
+/* 时间选择器修改样式 */
+.custom-picker-wrapper ::v-deep .uni-date-x {
+ background-color: #F7F7F7 !important; /* 修改背景色 */
+}
+
+.custom-picker-wrapper ::v-deep .uni-date-editor--x {
+ background-color: #F7F7F7 !important; /* 修改背景色 */
+}
+
+.meeting-room-popup {
+ background: #fff;
+ border-radius: 24rpx 24rpx 0 0;
+ padding: 30rpx;
+ max-height: 70vh;
+}
+
+.popup-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 30rpx;
+}
+
+.popup-title {
+ font-size: 36rpx;
+ font-weight: bold;
+ color: #333;
+}
+
+.popup-close {
+ font-size: 48rpx;
+ color: #999;
+ padding: 0 20rpx;
+}
+
+.room-list {
+ max-height: 50vh;
+ margin-bottom: 20rpx;
+}
+
+.room-item {
+ display: flex;
+ align-items: center;
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #eee;
+ position: relative;
+}
+
+.room-icon {
+ width: 40rpx;
+ height: 40rpx;
+ background: #8A2BE2;
+ border-radius: 8rpx;
+ margin-right: 20rpx;
+}
+
+.room-info {
+ flex: 1;
+}
+
+.room-name {
+ font-size: 32rpx;
+ color: #333;
+ display: block;
+ margin-bottom: 10rpx;
+}
+
+.room-detail {
+ font-size: 26rpx;
+ color: #999;
+}
+
+.room-price {
+ font-size: 32rpx;
+ color: #FF6B00;
+ margin: 0 40rpx 0 20rpx;
+}
+
+.room-selected {
+ width: 40rpx;
+ height: 40rpx;
+ position: absolute;
+ right: 0;
+}
+
+.confirm-btn {
width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+ background: #2E93FF;
+ color: #fff;
+ font-size: 32rpx;
+ border-radius: 45rpx;
+ margin-top: 20rpx;
+}
- :deep .uni-date-x uni-date-single {
- background-color: #f31818 !important;
- border: none !important;
- height: 80rpx;
- border-radius: 8rpx;
- .uni-date__x-input {
- height: 80rpx;
- line-height: 80rpx;
- padding-left: 20rpx;
- }
+.custom-checkbox {
+ width: 36rpx;
+ height: 36rpx;
+ position: relative;
+ margin-left: 20rpx;
+}
- .uni-date__x-icon {
- right: 20rpx;
- }
- }
+.checkbox-border {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+.check-icon {
+ width: 36rpx;
+ height: 36rpx;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 2;
+}
+
+/* 会议室项悬停效果 */
+.room-item:active {
+ background-color: #f5f5f5;
}
\ No newline at end of file
diff --git a/pages/sys/workbench/workbench.vue b/pages/sys/workbench/workbench.vue
index 7cc5406..328838f 100644
--- a/pages/sys/workbench/workbench.vue
+++ b/pages/sys/workbench/workbench.vue
@@ -79,11 +79,11 @@
// text: '监控',
// url:'/pages/sys/workbench/monitor/monitors'
// },
- // {
- // icon: '/static/aaa_hy.png',
- // text: '会议管理',
- // url:'/pages/sys/workbench/meet/meet'
- // },
+ {
+ icon: '/static/aaa_hy.png',
+ text: '会议管理',
+ url:'/pages/sys/workbench/meet/meet'
+ },
{
icon: '/static/aaa_dw.png',
text: '单位管理',
diff --git a/static/ic_check_mark.png b/static/ic_check_mark.png
new file mode 100644
index 0000000000000000000000000000000000000000..7db4c107496cd54e50b6479e38311c0b28fea6c1
GIT binary patch
literal 962
zcmV;z13mnSP)j5<0Vf9srYJmZHWIx`;j+Iye1_WJ+#x}1{|&!TJ`
z|7YJRd-*SGSGtEN?fjbs)?5Nxj+DQ%I(nH$#xKg->c%RyLzJ;31lF%Pwj3!V`CR3<
zK)o_j8Lkmn^*Qz^zDPx#qfAhq)|g9eDqB
zSUVG@jfbX5@SDy3!YCQy5-x)$>POP}Dy;qhCXNx&aoZ?Pv_p@p?X3nLBnsy+hQvNU
z@{lQP-ZUa(c?AAC05?6uh{C@l>T}kZDwq!Yzc^Jrhy6A*Ooo;jFzNZ?
zK#;6G20!nC&gi~CPYPRX$pLk)^=;0ZFn3y|b1ZOfE6x_@yg*+htsikeUA;!K?l}Co
z3%a}nQJ)G)xC`y#q0ufsy#lZa&1QJA+Kt_?tfPeEkC
zu6o8Y!M5faUO16Ix`(-qy-T1i*8m+%KoUzbt!6htvgcJM6B
z-U=r>igF|geE16dX_~%&7nV*hNg|R~)788aIv){9A74-u``DSXy{F-uZE&u$P}g{Y
zucyEt?@01op^KWdn6BnW)TB6B&H-P(37T2ReP`gS&2Twtqjj{W#;A`7gCx?`yyNjA
z(LEnRx}v*$f09T{>hw&X9U)HahC^2%7WyI^;jbILYdn%SazbZ2QL{NB(y0DbL<7lm3sgH0RR8|
kRM<`c000I_L_t&o06&dDZ`!jsh5!Hn07*qoM6N<$f}4K8@Bjb+
literal 0
HcmV?d00001
diff --git a/static/ic_checkbox_border.png b/static/ic_checkbox_border.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e4293160d1dac418a810742bfea0f3a0e439e69
GIT binary patch
literal 399
zcmV;A0dW3_P)g4cVlG*g$FWJ};boO8JM`^nF>>3yy$;;I|1u9k|Vy6Wir!YcOge@3p_na$BS
zU1HH+BcnDTiu`p(g*7uy1I-pQo0?kIi|ytLl&2v(EbC|zhOnBeAZ+olv8nDZKyD-&
zyx;8!%@nqHNObwaWWQta> {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => {}
+}
+// #endif
diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
new file mode 100644
index 0000000..12ce2c9
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
diff --git a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
new file mode 100644
index 0000000..91370a8
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
diff --git a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
new file mode 100644
index 0000000..c8945d5
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json
new file mode 100644
index 0000000..7f1bd06
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/en.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "cancel",
+ "uni-popup.ok": "ok",
+ "uni-popup.placeholder": "pleace enter",
+ "uni-popup.title": "Hint",
+ "uni-popup.shareTitle": "Share to"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/uni_modules/uni-popup/components/uni-popup/i18n/index.js
new file mode 100644
index 0000000..de7509c
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/index.js
@@ -0,0 +1,8 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+export default {
+ en,
+ 'zh-Hans': zhHans,
+ 'zh-Hant': zhHant
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
new file mode 100644
index 0000000..5e3003c
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "确定",
+ "uni-popup.placeholder": "请输入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
new file mode 100644
index 0000000..13e39eb
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
@@ -0,0 +1,7 @@
+{
+ "uni-popup.cancel": "取消",
+ "uni-popup.ok": "確定",
+ "uni-popup.placeholder": "請輸入",
+ "uni-popup.title": "提示",
+ "uni-popup.shareTitle": "分享到"
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni_modules/uni-popup/components/uni-popup/keypress.js
new file mode 100644
index 0000000..62dda46
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/keypress.js
@@ -0,0 +1,45 @@
+// #ifdef H5
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, {})
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ // this.$once('hook:beforeDestroy', () => {
+ // document.removeEventListener('keyup', listener)
+ // })
+ },
+ render: () => {}
+}
+// #endif
diff --git a/uni_modules/uni-popup/components/uni-popup/popup.js b/uni_modules/uni-popup/components/uni-popup/popup.js
new file mode 100644
index 0000000..c4e5781
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/popup.js
@@ -0,0 +1,26 @@
+
+export default {
+ data() {
+ return {
+
+ }
+ },
+ created(){
+ this.popup = this.getParent()
+ },
+ methods:{
+ /**
+ * 获取父元素实例
+ */
+ getParent(name = 'uniPopup') {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name) {
+ parent = parent.$parent;
+ if (!parent) return false
+ parentName = parent.$options.name;
+ }
+ return parent;
+ },
+ }
+}
diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue b/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue
new file mode 100644
index 0000000..5eb8d5b
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue
new file mode 100644
index 0000000..5af55e0
--- /dev/null
+++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue
@@ -0,0 +1,518 @@
+
+
+
+
+
+
diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json
new file mode 100644
index 0000000..ae01918
--- /dev/null
+++ b/uni_modules/uni-popup/package.json
@@ -0,0 +1,107 @@
+{
+ "id": "uni-popup",
+ "displayName": "uni-popup 弹出层",
+ "version": "1.9.10",
+ "description": " Popup 组件,提供常用的弹层",
+ "keywords": [
+ "uni-ui",
+ "弹出层",
+ "弹窗",
+ "popup",
+ "弹框"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "",
+ "uni-app": "^4.06",
+ "uni-app-x": ""
+ },
+ "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",
+ "darkmode": "x",
+ "i18n": "x",
+ "widescreen": "x"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-transition"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "x",
+ "aliyun": "x",
+ "alipay": "x"
+ },
+ "client": {
+ "uni-app": {
+ "vue": {
+ "vue2": "√",
+ "vue3": "√"
+ },
+ "web": {
+ "safari": "√",
+ "chrome": "√"
+ },
+ "app": {
+ "vue": "√",
+ "nvue": "√",
+ "android": "√",
+ "ios": "√",
+ "harmony": "√"
+ },
+ "mp": {
+ "weixin": "√",
+ "alipay": "√",
+ "toutiao": "√",
+ "baidu": "√",
+ "kuaishou": "-",
+ "jd": "-",
+ "harmony": "-",
+ "qq": "√",
+ "lark": "-"
+ },
+ "quickapp": {
+ "huawei": "-",
+ "union": "-"
+ }
+ },
+ "uni-app-x": {
+ "web": {
+ "safari": "√",
+ "chrome": "√"
+ },
+ "app": {
+ "android": "√",
+ "ios": "√",
+ "harmony": "√"
+ },
+ "mp": {
+ "weixin": "√"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md
new file mode 100644
index 0000000..fdad4b3
--- /dev/null
+++ b/uni_modules/uni-popup/readme.md
@@ -0,0 +1,17 @@
+
+
+## Popup 弹出层
+> **组件名:uni-popup**
+> 代码块: `uPopup`
+> 关联组件:`uni-transition`
+
+
+弹出层组件,在应用中弹出一个消息提示窗口、提示框等
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
+
+
+
+
+
diff --git a/uni_modules/uni-transition/changelog.md b/uni_modules/uni-transition/changelog.md
new file mode 100644
index 0000000..01bfb58
--- /dev/null
+++ b/uni_modules/uni-transition/changelog.md
@@ -0,0 +1,31 @@
+## 1.3.6(2025-07-18)
+- 修复 nvue 页面,样式错误问题
+## 1.3.5(2025-06-11)
+- 修复 第一次执行不显示动画的问题
+## 1.3.4(2025-04-16)
+- 修复 页面数据更新到底动画复原的问题
+- 修复 示例页面打开报错的问题
+## 1.3.3(2024-04-23)
+- 修复 当元素会受变量影响自动隐藏的bug
+## 1.3.2(2023-05-04)
+- 修复 NVUE 平台报错的问题
+## 1.3.1(2021-11-23)
+- 修复 init 方法初始化问题
+## 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-transition](https://uniapp.dcloud.io/component/uniui/uni-transition)
+## 1.2.1(2021-09-27)
+- 修复 init 方法不生效的 Bug
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.1(2021-05-12)
+- 新增 示例地址
+- 修复 示例项目缺少组件的 Bug
+## 1.1.0(2021-04-22)
+- 新增 通过方法自定义动画
+- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式
+- 优化 动画触发逻辑,使动画更流畅
+- 优化 支持单独的动画类型
+- 优化 文档示例
+## 1.0.2(2021-02-05)
+- 调整为 uni_modules 目录规范
diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
new file mode 100644
index 0000000..8f89b18
--- /dev/null
+++ b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
@@ -0,0 +1,131 @@
+// const defaultOption = {
+// duration: 300,
+// timingFunction: 'linear',
+// delay: 0,
+// transformOrigin: '50% 50% 0'
+// }
+// #ifdef APP-NVUE
+const nvueAnimation = uni.requireNativePlugin('animation')
+// #endif
+class MPAnimation {
+ constructor(options, _this) {
+ this.options = options
+ // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
+ this.animation = uni.createAnimation({
+ ...options
+ })
+ this.currentStepAnimates = {}
+ this.next = 0
+ this.$ = _this
+
+ }
+
+ _nvuePushAnimates(type, args) {
+ let aniObj = this.currentStepAnimates[this.next]
+ let styles = {}
+ if (!aniObj) {
+ styles = {
+ styles: {},
+ config: {}
+ }
+ } else {
+ styles = aniObj
+ }
+ if (animateTypes1.includes(type)) {
+ if (!styles.styles.transform) {
+ styles.styles.transform = ''
+ }
+ let unit = ''
+ if(type === 'rotate'){
+ unit = 'deg'
+ }
+ styles.styles.transform += `${type}(${args+unit}) `
+ } else {
+ styles.styles[type] = `${args}`
+ }
+ this.currentStepAnimates[this.next] = styles
+ }
+ _animateRun(styles = {}, config = {}) {
+ let ref = this.$.$refs['ani'].ref
+ if (!ref) return
+ return new Promise((resolve, reject) => {
+ nvueAnimation.transition(ref, {
+ styles,
+ ...config
+ }, res => {
+ resolve()
+ })
+ })
+ }
+
+ _nvueNextAnimate(animates, step = 0, fn) {
+ let obj = animates[step]
+ if (obj) {
+ let {
+ styles,
+ config
+ } = obj
+ this._animateRun(styles, config).then(() => {
+ step += 1
+ this._nvueNextAnimate(animates, step, fn)
+ })
+ } else {
+ this.currentStepAnimates = {}
+ typeof fn === 'function' && fn()
+ this.isEnd = true
+ }
+ }
+
+ step(config = {}) {
+ // #ifndef APP-NVUE
+ this.animation.step(config)
+ // #endif
+ // #ifdef APP-NVUE
+ this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config)
+ this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin
+ this.next++
+ // #endif
+ return this
+ }
+
+ run(fn) {
+ // #ifndef APP-NVUE
+ this.$.animationData = this.animation.export()
+ this.$.timer = setTimeout(() => {
+ typeof fn === 'function' && fn()
+ }, this.$.durationTime)
+ // #endif
+ // #ifdef APP-NVUE
+ this.isEnd = false
+ let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref
+ if(!ref) return
+ this._nvueNextAnimate(this.currentStepAnimates, 0, fn)
+ this.next = 0
+ // #endif
+ }
+}
+
+
+const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d',
+ 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY',
+ 'translateZ'
+]
+const animateTypes2 = ['opacity', 'backgroundColor']
+const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom']
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => {
+ MPAnimation.prototype[type] = function(...args) {
+ // #ifndef APP-NVUE
+ this.animation[type](...args)
+ // #endif
+ // #ifdef APP-NVUE
+ this._nvuePushAnimates(type, args)
+ // #endif
+ return this
+ }
+})
+
+export function createAnimation(option, _this) {
+ if(!_this) return
+ clearTimeout(_this.timer)
+ return new MPAnimation(option, _this)
+}
diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
new file mode 100644
index 0000000..7677553
--- /dev/null
+++ b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uni-transition/package.json b/uni_modules/uni-transition/package.json
new file mode 100644
index 0000000..0542c52
--- /dev/null
+++ b/uni_modules/uni-transition/package.json
@@ -0,0 +1,112 @@
+{
+ "id": "uni-transition",
+ "displayName": "uni-transition 过渡动画",
+ "version": "1.3.6",
+ "description": "元素的简单过渡动画",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "动画",
+ "过渡",
+ "过渡动画"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "",
+ "uni-app": "^4.12",
+ "uni-app-x": ""
+ },
+ "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",
+ "darkmode": "x",
+ "i18n": "x",
+ "widescreen": "x"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "x",
+ "aliyun": "x",
+ "alipay": "x"
+ },
+ "client": {
+ "uni-app": {
+ "vue": {
+ "vue2": "√",
+ "vue3": "√"
+ },
+ "web": {
+ "safari": "√",
+ "chrome": "√"
+ },
+ "app": {
+ "vue": "√",
+ "nvue": "√",
+ "android": "√",
+ "ios": "√",
+ "harmony": "√"
+ },
+ "mp": {
+ "weixin": {
+ },
+ "alipay": {
+ },
+ "toutiao": {
+ },
+ "baidu": {
+ },
+ "kuaishou": {
+ },
+ "jd": {
+ },
+ "harmony": "-",
+ "qq": "√",
+ "lark": "-"
+ },
+ "quickapp": {
+ "huawei": "√",
+ "union": "√"
+ }
+ },
+ "uni-app-x": {
+ "web": {
+ "safari": "-",
+ "chrome": "-"
+ },
+ "app": {
+ "android": "-",
+ "ios": "-",
+ "harmony": "-"
+ },
+ "mp": {
+ "weixin": "-"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-transition/readme.md b/uni_modules/uni-transition/readme.md
new file mode 100644
index 0000000..2f8a77e
--- /dev/null
+++ b/uni_modules/uni-transition/readme.md
@@ -0,0 +1,11 @@
+
+
+## Transition 过渡动画
+> **组件名:uni-transition**
+> 代码块: `uTransition`
+
+
+元素过渡动画
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
diff --git a/vue.config.js b/vue.config.js
index 79baf67..82a9d6f 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -7,8 +7,8 @@ module.exports = {
port : 8081,
proxy : {
"/js" : {
- target : "http://183.230.235.66:11010/api",
- // target : "http://tc.cqsznc.com:7080/api",
+ // target : "http://183.230.235.66:11010/api",
+ target : "http://tc.cqsznc.com:7080/api",
changeOrigin : true,
secure : false,
pathRewrite: {