diff --git a/components/AreaFormPopup.vue b/components/AreaFormPopup.vue
new file mode 100644
index 0000000..3a6eeec
--- /dev/null
+++ b/components/AreaFormPopup.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
diff --git a/manifest.json b/manifest.json
index 868f952..8a47b7c 100644
--- a/manifest.json
+++ b/manifest.json
@@ -48,8 +48,7 @@
},
/* 快应用特有相关 */
"quickapp" : {},
- /* 小程序特有相关 */
- // "mp-weixin" : {
+ /* 小程序特有相关 */// "mp-weixin" : {
// "appid" : "",
// "setting" : {
// "urlCheck" : false
@@ -65,30 +64,29 @@
// "mp-toutiao" : {
// "usingComponents" : true
// },
- "mp-weixin" : {
- "appid" : "",
- "mergeVirtualHostAttributes" : true,
- "usingComponents" : true,
- "setting" : {
- "urlCheck" : false,
- "es6" : true,
- "postcss" : true,
- "minified" : true
- },
- "permission" : {
- "scope.userLocation" : {
- "desc" : "你的位置信息将用于选择隐患位置"
- }
- },
- "requiredPrivateInfos" : ["chooseLocation", "getLocation"]
- },
- "mp-toutiao" : {
- "appid" : "",
- "mergeVirtualHostAttributes" : true
- },
+ "mp-weixin" : {
+ "appid" : "wxe3533791db8a8734",
+ "mergeVirtualHostAttributes" : true,
+ "usingComponents" : true,
+ "setting" : {
+ "urlCheck" : false,
+ "es6" : true,
+ "postcss" : true,
+ "minified" : true
+ },
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "你的位置信息将用于选择隐患位置"
+ }
+ },
+ "requiredPrivateInfos" : [ "chooseLocation", "getLocation" ]
+ },
+ "mp-toutiao" : {
+ "appid" : "",
+ "mergeVirtualHostAttributes" : true
+ },
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3"
-
}
diff --git a/pages.json b/pages.json
index a7967d5..f2948dd 100644
--- a/pages.json
+++ b/pages.json
@@ -119,7 +119,7 @@
{
"path":"pages/closeout/editor",
"style": {
- "navigationBarTitleText": "编辑销号申请"
+ "navigationBarTitleText": "销号详情"
}
},
{
@@ -143,8 +143,8 @@
{
"path":"pages/personalcenter/my",
"style": {
- "navigationBarTitleText": "我的",
- "navigationStyle": "custom"
+ "navigationBarTitleText": "我的"
+ // "navigationStyle": "custom"
}
},
diff --git a/pages/Idphotomanagement/Idphotomanagement.vue b/pages/Idphotomanagement/Idphotomanagement.vue
index 2176158..064a373 100644
--- a/pages/Idphotomanagement/Idphotomanagement.vue
+++ b/pages/Idphotomanagement/Idphotomanagement.vue
@@ -1,23 +1,60 @@
- 暂无证件照记录
-
+
+
+
+
+
+
+
+ 证件编号:
+ {{ item.code || '-' }}
+
+
+ 有效期:
+ {{ item.startDate || '-' }} 至 {{ item.endDate || '-' }}
+
+
+ 法人:
+ {{ item.legalPerson || '-' }}
+
+
+
+
+
+
+
+
-
-
+
+
+ 暂无证照记录
+
+
+
+
+
+
+
@@ -75,9 +123,11 @@
@@ -88,60 +138,289 @@
-
+
-
- ✓
+
+ ✓
- {{ item }}
+ {{ item.name }}
+
+
+ 暂无部门数据
+
+
+
@@ -190,6 +531,96 @@ const handleSubmit = () => {
.page {
min-height: 100vh;
background: #EBF2FC;
+ padding-bottom: 120rpx;
+}
+
+// 证照列表样式
+.license-list {
+ padding-bottom: 20rpx;
+}
+
+.license-item {
+ background: #fff;
+ border-radius: 16rpx;
+ padding: 24rpx;
+ margin-bottom: 20rpx;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
+}
+
+.license-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 16rpx;
+ padding-bottom: 16rpx;
+ border-bottom: 1rpx solid #f0f0f0;
+}
+
+.license-type {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #333;
+}
+
+.license-actions {
+ display: flex;
+ gap: 20rpx;
+}
+
+.action-btn {
+ font-size: 28rpx;
+ padding: 8rpx 16rpx;
+}
+
+.license-detail {
+ margin-bottom: 16rpx;
+}
+
+.detail-row {
+ display: flex;
+ margin-bottom: 12rpx;
+ font-size: 28rpx;
+
+ .label {
+ color: #999;
+ width: 160rpx;
+ flex-shrink: 0;
+ }
+
+ .value {
+ color: #333;
+ flex: 1;
+ }
+}
+
+.license-photo {
+ width: 200rpx;
+ height: 150rpx;
+ border-radius: 8rpx;
+ overflow: hidden;
+
+ image {
+ width: 100%;
+ height: 100%;
+ }
+}
+
+// 空状态
+.empty-state {
+ padding: 200rpx 0;
+ text-align: center;
+}
+
+// 新增按钮
+.add-btn {
+ position: fixed;
+ bottom: 40rpx;
+ left: 30rpx;
+ right: 30rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ border-radius: 44rpx;
+ font-size: 32rpx;
}
// 弹出框样式
@@ -257,6 +688,7 @@ const handleSubmit = () => {
display: flex;
align-items: center;
justify-content: center;
+ position: relative;
}
.upload-add {
@@ -276,12 +708,33 @@ const handleSubmit = () => {
margin-top: 8rpx;
}
+.upload-preview {
+ width: 100%;
+ height: 100%;
+ position: relative;
+}
+
.upload-img {
width: 100%;
height: 100%;
border-radius: 12rpx;
}
+.upload-delete {
+ position: absolute;
+ top: -16rpx;
+ right: -16rpx;
+ width: 40rpx;
+ height: 40rpx;
+ background: #ff4d4f;
+ color: #fff;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 28rpx;
+}
+
.popup-footer {
display: flex;
justify-content: center;
diff --git a/pages/Inspectionresult/Inspectionresult.vue b/pages/Inspectionresult/Inspectionresult.vue
index e59e3bf..c9fbf78 100644
--- a/pages/Inspectionresult/Inspectionresult.vue
+++ b/pages/Inspectionresult/Inspectionresult.vue
@@ -1,5 +1,16 @@
+
+
+
+ 第 {{ checkData.currentIndex || 1 }} 个问题
+ / 共 {{ checkData.totalCount || 1 }} 个
+
+
+
+
+
+
{{ checkData?.name || '加载中...' }}
@@ -22,18 +33,169 @@
-
+
+
+
+
+
+ 检查结果为异常,需填写隐患信息
+
+
+
+
+ 填写隐患信息
+
+
+
+
+
+
+
+ 隐患来源:
+ {{ sourceOptions[hazardFormData.source]?.title || '-' }}
+
+
+ 隐患位置:
+ {{ hazardAddress || '-' }}
+
+
+ 隐患描述:
+ {{ hazardFormData.description || '-' }}
+
+
+ 附件:
+ {{ hazardFileList.length }}个文件
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
@@ -144,4 +629,342 @@
min-height: 100vh;
background: #EBF2FC;
}
-
\ No newline at end of file
+
+ // 进度显示
+ .progress-bar {
+ background: #fff;
+ border-radius: 12rpx;
+ padding: 24rpx;
+ margin-bottom: 20rpx;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
+ }
+
+ .progress-text {
+ display: flex;
+ align-items: baseline;
+ margin-bottom: 16rpx;
+
+ .current-index {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #2667E9;
+ }
+
+ .total-count {
+ font-size: 28rpx;
+ color: #999;
+ }
+ }
+
+ .progress-line {
+ height: 12rpx;
+ background: #E5E5E5;
+ border-radius: 6rpx;
+ overflow: hidden;
+ }
+
+ .progress-inner {
+ height: 100%;
+ background: linear-gradient(90deg, #2667E9, #5B9BFF);
+ border-radius: 6rpx;
+ transition: width 0.3s ease;
+ }
+
+ // 隐患信息区域
+ .hazard-section {
+ border-top: 1rpx solid #eee;
+ padding-top: 20rpx;
+ }
+
+ // 提示文字
+ .hazard-tip {
+ display: flex;
+ align-items: center;
+ padding: 16rpx 20rpx;
+ background: #FFF7E6;
+ border: 1rpx solid #FFE7BA;
+ border-radius: 8rpx;
+ margin-bottom: 20rpx;
+
+ .text-orange {
+ color: #FA8C16;
+ font-size: 26rpx;
+ }
+ }
+
+ // 填写隐患信息按钮
+ .hazard-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 88rpx;
+ border: 2rpx dashed #2667E9;
+ border-radius: 12rpx;
+ background: #F5F9FF;
+
+ .text-blue {
+ color: #2667E9;
+ font-size: 28rpx;
+ }
+ }
+
+ // 隐患信息卡片
+ .hazard-card {
+ background: #F5F9FF;
+ border: 1rpx solid #D6E4FF;
+ border-radius: 12rpx;
+ overflow: hidden;
+
+ .card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 20rpx;
+ border-bottom: 1rpx solid #E8E8E8;
+ background: #fff;
+ }
+
+ .card-body {
+ padding: 20rpx;
+
+ .info-row {
+ display: flex;
+ margin-bottom: 12rpx;
+ font-size: 26rpx;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ .text-gray {
+ flex-shrink: 0;
+ color: #999;
+ }
+
+ .description-text {
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+ }
+
+ .card-footer {
+ display: flex;
+ border-top: 1rpx solid #E8E8E8;
+ background: #fff;
+
+ button {
+ flex: 1;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ border-radius: 0;
+
+ &::after {
+ border: none;
+ }
+ }
+
+ .btn-edit {
+ background: #fff;
+ color: #2667E9;
+ border-right: 1rpx solid #E8E8E8;
+ }
+
+ .btn-clear {
+ background: #fff;
+ color: #F56C6C;
+ }
+ }
+ }
+
+ // 隐患等级标签
+ .level-tag {
+ padding: 4rpx 16rpx;
+ border-radius: 8rpx;
+ font-size: 24rpx;
+ }
+
+ .level-minor {
+ background: #F6FFED;
+ border: 2rpx solid #B7EB8F;
+ color: #52C41A;
+ }
+
+ .level-normal {
+ background: #FFF7E6;
+ border: 2rpx solid #FFD591;
+ color: #FA8C16;
+ }
+
+ .level-major {
+ background: #FFF1F0;
+ border: 2rpx solid #FFA39E;
+ color: #F5222D;
+ }
+
+ // 弹窗样式
+ .popup-content {
+ width: 600rpx;
+ background: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ }
+
+ .popup-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+
+ .popup-title {
+ font-size: 32rpx;
+ color: #333;
+ }
+
+ .popup-close {
+ font-size: 40rpx;
+ color: #999;
+ line-height: 1;
+ }
+ }
+
+ .popup-body {
+ padding: 30rpx;
+ }
+
+ .popup-footer {
+ display: flex;
+ border-top: 1rpx solid #eee;
+
+ button {
+ flex: 1;
+ height: 90rpx;
+ line-height: 90rpx;
+ border-radius: 0;
+ font-size: 30rpx;
+
+ &::after {
+ border: none;
+ }
+ }
+
+ .btn-cancel {
+ background: #fff;
+ color: #666;
+ }
+
+ .btn-confirm {
+ color: #fff;
+ }
+ }
+
+ .address-box {
+ display: flex;
+ align-items: center;
+ gap: 20rpx;
+
+ .address-input-wrapper {
+ flex: 1;
+ }
+
+ .btn-address {
+ flex-shrink: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ padding: 0 30rpx;
+ font-size: 26rpx;
+ border-radius: 8rpx;
+ color: #fff;
+
+ &::after {
+ border: none;
+ }
+ }
+ }
+
+ // 选择器触发器样式
+ .select-trigger {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: #fff;
+ border: 1rpx solid #dcdfe6;
+ border-radius: 8rpx;
+ padding: 20rpx 24rpx;
+
+ .select-value {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333;
+
+ &.placeholder {
+ color: #c0c4cc;
+ }
+ }
+ }
+
+ // 选择弹窗样式
+ .picker-popup {
+ background: #fff;
+
+ .picker-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+
+ .picker-cancel {
+ font-size: 28rpx;
+ color: #999;
+ }
+
+ .picker-title {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #333;
+ }
+
+ .picker-confirm {
+ font-size: 28rpx;
+ color: #2667E9;
+ }
+ }
+
+ .picker-body {
+ max-height: 600rpx;
+ padding: 0 30rpx;
+ }
+
+ .picker-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #f5f5f5;
+ font-size: 30rpx;
+ color: #333;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &.picker-item-active {
+ color: #2667E9;
+ }
+ }
+ }
+
+ // 区域颜色圆点
+ .area-color-dot {
+ width: 24rpx;
+ height: 24rpx;
+ border-radius: 50%;
+ margin-right: 16rpx;
+ }
+
diff --git a/pages/Inspectionwarning/Inspectionwarning.vue b/pages/Inspectionwarning/Inspectionwarning.vue
index 16c8b49..dca4643 100644
--- a/pages/Inspectionwarning/Inspectionwarning.vue
+++ b/pages/Inspectionwarning/Inspectionwarning.vue
@@ -9,173 +9,462 @@
-
-
-
+
+
- 开始日期
-
- 结束日期
-
- 公司名称
-
-
+
+
+
+ 开始日期
+
+
+ {{ searchForm.startDate || '请选择' }}
+
+
+
+
+
+
+ 结束日期
+
+
+ {{ searchForm.endDate || '请选择' }}
+
+
+
+
+
+
+
+ 公司名称
+
+
+
+
-
-
+
-
-
- 80
- 总计
+
+
+ {{ statistics.total }}
+ 总计
-
- 70
- 逾期
+
+ {{ statistics.overdue }}
+ 逾期
-
- 20
- 已完成
+
+ {{ statistics.completed }}
+ 已完成
-
- 20
- 待处理
+
+ {{ statistics.pending }}
+ 待处理
+
-
-
-
-
+
+
+
+
日常安全检查预警数据列表
-
-
- #1
- 严重逾期
+
+
+
+
+
+ {{ getStatusText(item.overdueDays, item.statusName) }}
-
- 企业名称:
- 湘西和谐云大数据产业发展有限公司
+
+
-
- 计划名称:
- 检查计划
+
+ 企业名称:
+ {{ item.deptName || '-' }}
-
- 计划周期:
- 每天一次
+
+ 计划名称:
+ {{ item.planName || '-' }}
-
- 预约检查日期:
- 2025-11-20
+
+ 计划周期:
+ {{ item.cycleName || '-' }}
-
- 实际完成时间:
- 未完成
+
+ 预约检查日期:
+ {{ item.taskDate || '-' }}
-
- 负责人:
- 符友成
+
+ 实际完成时间:
+ {{ item.finishTime || '未完成' }}
-
- 逾期天数:
- 17天
+
+ 负责人:
+ {{ item.executorName || '-' }}
+
+ 逾期天数:
+ {{ item.overdueDays || '-' }}
+
+
+
+
+
+ 暂无数据
\ No newline at end of file
diff --git a/pages/area/management.vue b/pages/area/management.vue
index e6c3efd..53cd721 100644
--- a/pages/area/management.vue
+++ b/pages/area/management.vue
@@ -1,226 +1,213 @@
-
-
-
- {{ areaData.name || '区域名称' }}
-
- 颜色:
-
- {{ areaData.color }}
+
+
+
+
+
+ {{ item.name || '区域名称' }}
+
+ 颜色:
+
+ {{ item.color }}
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+ 暂无区域数据
+
+
+
+
+
+
+
\ No newline at end of file
+// 颜色圆点
+.color-dot {
+ width: 30rpx;
+ height: 30rpx;
+ border-radius: 6rpx;
+ flex-shrink: 0;
+ margin-left: 10rpx;
+}
+
diff --git a/pages/checklist/checklist.vue b/pages/checklist/checklist.vue
index c1647ab..5ad8f2c 100644
--- a/pages/checklist/checklist.vue
+++ b/pages/checklist/checklist.vue
@@ -1,41 +1,101 @@
-
- {{ item.name }}
-
-
-
-
+
+
+ {{ item.name }}
-
+
+
+
+ 暂无检查表
+
+
+
+
\ No newline at end of file
diff --git a/pages/closeout/application.vue b/pages/closeout/application.vue
index 16d7719..eee474b 100644
--- a/pages/closeout/application.vue
+++ b/pages/closeout/application.vue
@@ -27,7 +27,7 @@
-
+
-
+
隐患
*
@@ -66,7 +66,16 @@
@close="showDatePicker = false"
>
隐患治理责任单位
-
+
+ {{ selectedDeptName || '请选择隐患治理责任单位' }}
+
+
主要负责人
主要治理内容
@@ -75,7 +84,7 @@
隐患治理责任单位自行验收的情况
-
+
diff --git a/pages/corporateInformation/corporateInformation.vue b/pages/corporateInformation/corporateInformation.vue
index a1f9c0d..91b2ccd 100644
--- a/pages/corporateInformation/corporateInformation.vue
+++ b/pages/corporateInformation/corporateInformation.vue
@@ -1,49 +1,825 @@
-
+
+
- 湘西自治州和谐网络科技有限公司
- 编辑
+ {{ enterpriseInfo.name }}
+ 编辑
-
- 所属部门:
- 湘西自治州和谐网络科技有限公司
+
+ 企业类型:
+ {{ enterpriseInfo.enterpriseTypeName }}
-
- 企业代码:
- 91433126MA4P8WWG20
+
+ 行业类型:
+ {{ enterpriseInfo.industryName }}
-
+
+ 统一社会信用代码:
+ {{ enterpriseInfo.creditCode }}
+
+
+ 注册资本:
+ {{ enterpriseInfo.registeredCapital }}万元
+
+
+ 成立时间:
+ {{ enterpriseInfo.establishDate }}
+
+
+ 员工总数:
+ {{ enterpriseInfo.employeeCount }}人
+
+
+ 主营行业:
+ {{ enterpriseInfo.mainBusiness }}
+
+
+ 主要产品/服务:
+ {{ enterpriseInfo.mainProducts }}
+
+
+ 年产值:
+ {{ enterpriseInfo.annualOutput }}万元
+
+
+ 所在地区:
+ {{ enterpriseInfo.province }}{{ enterpriseInfo.city }}
+
+
+ 详细地址:
+ {{ enterpriseInfo.address }}
+
+
联系电话:
- 13974356210
+ {{ enterpriseInfo.phone }}
-
- 企业地址:
- 湘西州文学艺术界联合会6楼
+
+ 电子邮箱:
+ {{ enterpriseInfo.email }}
+
+
+ 法定代表人:
+ {{ enterpriseInfo.legalPerson }}
+
+
+ 法人联系电话:
+ {{ enterpriseInfo.legalPersonPhone }}
+
+
+ 安全负责人:
+ {{ enterpriseInfo.safetyManager }}
+
+
+ 安全负责人电话:
+ {{ enterpriseInfo.safetyManagerPhone }}
+
+
+
+ 暂无企业信息
+
+
+
+
+
+
+
+
+ 企业名称
+ *
+
+
+
+
+
+ 企业类型
+ *
+
+
+
+ {{ selectedEnterpriseTypeName || '请选择企业类型' }}
+
+
+
+
+
+
+ 行业类型
+ *
+
+
+
+ {{ selectedIndustryName || '请选择行业类型' }}
+
+
+
+
+
+
+ 统一社会信用代码
+
+
+
+
+
+ 注册资本(万元)
+
+
+
+
+
+ 成立时间
+
+
+
+ {{ formData.establishDate || '请选择成立时间' }}
+
+
+
+
+
+
+ 员工总数
+
+
+
+
+
+ 主营行业
+
+
+
+
+
+ 主要产品/服务
+
+
+
+
+
+ 年产值(万元)
+
+
+
+
+
+ 所在省份
+
+
+
+
+
+ 所在城市
+
+
+
+
+
+ 详细地址
+
+
+
+
+
+ 联系电话
+
+
+
+
+
+ 电子邮箱
+
+
+
+
+
+ 法定代表人
+
+
+
+
+
+ 法人联系电话
+
+
+
+
+
+ 安全负责人
+
+
+
+
+
+ 安全负责人电话
+
+
+
+
+
+ 资质证书
+
+
+ 支持上传图片、PDF等文件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
+}
+
+// 选择触发器样式
+.select-trigger {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: #fff;
+ border: 1rpx solid #dcdfe6;
+ border-radius: 8rpx;
+ padding: 20rpx 24rpx;
+
+ .select-value {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333;
+
+ &.placeholder {
+ color: #c0c4cc;
+ }
+ }
+}
+
+// 选择弹窗样式
+.picker-popup {
+ background: #fff;
+
+ .picker-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+
+ .picker-cancel {
+ font-size: 28rpx;
+ color: #999;
+ }
+
+ .picker-title {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #333;
+ }
+
+ .picker-confirm {
+ font-size: 28rpx;
+ color: #2667E9;
+ }
+ }
+
+ .picker-body {
+ max-height: 600rpx;
+ padding: 0 30rpx;
+ }
+
+ .picker-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #f5f5f5;
+ font-size: 30rpx;
+ color: #333;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &.active {
+ color: #2667E9;
+ }
+ }
+}
+
diff --git a/pages/editchecklist/editchecklist.vue b/pages/editchecklist/editchecklist.vue
index 804e680..ae78184 100644
--- a/pages/editchecklist/editchecklist.vue
+++ b/pages/editchecklist/editchecklist.vue
@@ -1,104 +1,272 @@
-
-
-
- 检查表名称
- *
+
+
+
+
+
+ 检查表名称
+ *
+
+
-
-
- 分派单位
- *
+
+
+
+
+ 分派单位
+ *
+
+
+
+ {{ formData.deptName || '请选择分派单位' }}
+
+
+
+
-
- 补充说明
-
- 运行模式
-
- 部门
-
- 周期
-
- 工作日
-
-
-
+
+
+
+
+ 补充说明
+
+
- 开始日期
-
- 结束日期
-
- 已添加的检查项(31项)
-
-
- 检查库:
- 应急管理部门非煤地下矿山领域标准化检查表
+
+
+
+
+ 检查表类型
-
- 关联表名:
- 应急管理部门非煤地下矿山领域标准化检查表
+
+
+ {{ formData.typeName || '请选择检查表类型' }}
+
+
-
- 检查项数量:
- 31项
+
+
+
+
+
+
+ 运行模式
-
-
+
+
+ {{ formData.modeName || '请选择运行模式' }}
+
+
- 添加检查项
-
- 手动添加
- 从检查库添加
+
+
+
+
+
+
+ 执行人员
+
+
+
+ {{ formData.executorNames || '请选择执行人员' }}
+
+
-
-
+
+
+
+
+ 周期
+
+
+
+ {{ formData.cycleName || '请选择周期' }}
+
+
+
+
+
+
+
+
+
+ 工作日开关
+
+
+
+
+
+
+
+
+
+ 开始时间
+
+
+
+ {{ formData.startDate || '请选择开始时间' }}
+
+
+
+
+
+
+
+
+
+ 结束时间
+
+
+
+ {{ formData.endDate || '请选择结束时间' }}
+
+
+
+
+
+
+
+
+
+ 已添加的检查项({{ checkItemCount }}项)
+
+
+
+
+ 暂无检查项目,请添加
+
+
+
+
+ 第{{ index + 1 }}项
+
+
+ 检查项名称:
+ {{ item.name }}
+
+
+ 检查内容:
+ {{ item.point }}
+
+
+ 参考法规:
+ {{ item.regulationName || '-' }}
+
+
+
+
+
+
+
+
+
+
+
+ 关联表名:
+ {{ item.tableName }}
+
+
+ 检查项数量:
+ {{ item.count }}项
+
+
+
+
+
+
+
+
+
+
+
+ 添加检查项
+
+
+
+
+
+
+
+
+
+
+
+
@@ -107,501 +275,1358 @@
-
+
+
+
+
+
+
-
-
+
-
diff --git a/pages/equipmentregistration/equipmentregistration.vue b/pages/equipmentregistration/equipmentregistration.vue
index a4aec79..ee8797e 100644
--- a/pages/equipmentregistration/equipmentregistration.vue
+++ b/pages/equipmentregistration/equipmentregistration.vue
@@ -12,7 +12,7 @@
-
+
型号
@@ -64,7 +64,7 @@
备注
-
+
-
+
+
+
+
+ 新增
+
@@ -45,7 +54,7 @@
-
+
隐患图片/视频
*
@@ -77,12 +86,22 @@
-
- {{ selectedAddress || '请选择地址' }}
-
+
如:办公楼3层东侧消防通道、生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择
+
+
+
+ 隐患区域
+
+
+
+ {{ selectedAreaName || '请选择隐患区域' }}
+
+
+
+
隐患描述
*
@@ -92,13 +111,42 @@
隐患标签
可选择多个相关标签对隐患进行分类
-
+
+
+
+
+
+
@@ -120,6 +168,7 @@
getMyHiddenDangerList,
getHiddenDangerLabelList
} from '@/request/api.js'
+ import { getAreaList } from '@/request/three_one_api/area.js'
import {
baseUrl,
getToken
@@ -127,6 +176,27 @@
// 弹窗控制
const showAddPopup = ref(false);
+
+ // 获取用户角色,判断是否有验收权限(admin或manage才能验收)
+ const userRole = ref('');
+ const canAcceptance = computed(() => {
+ return userRole.value === 'admin' || userRole.value === 'manage';
+ });
+
+ // 从storage获取用户信息
+ const getUserRole = () => {
+ try {
+ const userInfoStr = uni.getStorageSync('userInfo');
+ if (userInfoStr) {
+ const userInfo = JSON.parse(userInfoStr);
+ userRole.value = userInfo.role || '';
+ console.log('当前用户角色:', userRole.value);
+ }
+ } catch (error) {
+ console.error('获取用户信息失败:', error);
+ }
+ };
+ getUserRole();
// 任务相关ID(从接口获取)
const taskId = ref('');
@@ -173,6 +243,36 @@
// 地址选择 - 调用腾讯地图
const selectedAddress = ref('');
+
+ // 区域选择相关
+ const showAreaPicker = ref(false);
+ const areaList = ref([]);
+ const selectedAreaId = ref('');
+ const selectedAreaName = ref('');
+ const tempAreaId = ref('');
+
+ // 获取区域列表
+ const fetchAreaList = async () => {
+ try {
+ const res = await getAreaList();
+ if (res.code === 0 && res.data && res.data.records) {
+ areaList.value = res.data.records;
+ }
+ } catch (error) {
+ console.error('获取区域列表失败:', error);
+ }
+ };
+ fetchAreaList();
+
+ // 确认区域选择
+ const confirmAreaSelect = () => {
+ if (tempAreaId.value) {
+ selectedAreaId.value = tempAreaId.value;
+ const selected = areaList.value.find(item => item.id === tempAreaId.value);
+ selectedAreaName.value = selected ? selected.name : '';
+ }
+ showAreaPicker.value = false;
+ };
const chooseLocation = () => {
console.log('chooseLocation called');
@@ -180,27 +280,60 @@
showAddPopup.value = false;
setTimeout(() => {
- uni.chooseLocation({
- success: (res) => {
- console.log('选择位置成功:', res);
- // 获取选择的位置信息
- selectedAddress.value = res.address + (res.name ? `(${res.name})` : '');
- lng.value = res.longitude;
- lat.value = res.latitude;
- // 重新打开弹窗
- showAddPopup.value = true;
+ // 先获取当前位置,再打开地图选择
+ uni.getLocation({
+ type: 'gcj02', // 使用国测局坐标系(腾讯地图使用)
+ success: (locationRes) => {
+ console.log('获取当前位置成功:', locationRes);
+ // 使用当前位置作为地图初始中心点
+ uni.chooseLocation({
+ latitude: locationRes.latitude,
+ longitude: locationRes.longitude,
+ success: (res) => {
+ console.log('选择位置成功:', res);
+ // 获取选择的位置信息
+ selectedAddress.value = res.address + (res.name ? `(${res.name})` : '');
+ lng.value = res.longitude;
+ lat.value = res.latitude;
+ // 重新打开弹窗
+ showAddPopup.value = true;
+ },
+ fail: (err) => {
+ console.error('选择位置失败:', err);
+ // 重新打开弹窗
+ showAddPopup.value = true;
+ // 用户取消选择不提示
+ if (err.errMsg && err.errMsg.indexOf('cancel') === -1) {
+ uni.showToast({
+ title: '选择位置失败',
+ icon: 'none'
+ });
+ }
+ }
+ });
},
fail: (err) => {
- console.error('选择位置失败:', err);
- // 重新打开弹窗
- showAddPopup.value = true;
- // 用户取消选择不提示
- if (err.errMsg && err.errMsg.indexOf('cancel') === -1) {
- uni.showToast({
- title: '选择位置失败',
- icon: 'none'
- });
- }
+ console.error('获取当前位置失败:', err);
+ // 即使获取位置失败,也打开地图选择(不带初始位置)
+ uni.chooseLocation({
+ success: (res) => {
+ console.log('选择位置成功:', res);
+ selectedAddress.value = res.address + (res.name ? `(${res.name})` : '');
+ lng.value = res.longitude;
+ lat.value = res.latitude;
+ showAddPopup.value = true;
+ },
+ fail: (chooseErr) => {
+ console.error('选择位置失败:', chooseErr);
+ showAddPopup.value = true;
+ if (chooseErr.errMsg && chooseErr.errMsg.indexOf('cancel') === -1) {
+ uni.showToast({
+ title: '选择位置失败',
+ icon: 'none'
+ });
+ }
+ }
+ });
}
});
}, 300);
@@ -250,19 +383,21 @@
// 构建请求参数
const params = {
-
title: formData.title, //标题
level: formData.level + 1, // 1.轻微隐患 2.一般隐患 3.重大隐患
lng: lng.value || 0, //经度
lat: lat.value || 0, //纬度
address: selectedAddress.value || '', //详细地址
+ areaId: selectedAreaId.value || null, //隐患区域ID
description: formData.description || '', //隐患描述
tagId: tagId, //隐患标签ID
taskId: taskId.value, //关联任务ID
checkPointId: checkPointId.value, //关联检查点ID
source: sourceOptions.value[formData.source]?.title || '', //隐患来源(随手拍、企业自查、行业互查、专家诊查)
-
+ attachments: attachments, //附件列表(图片/视频)
};
+
+ console.log('提交的参数:', params);
//
try {
const res = await addHiddenDanger(params);
@@ -278,6 +413,8 @@
formData.description = '';
formData.tagIndex = 0;
selectedAddress.value = '';
+ selectedAreaId.value = '';
+ selectedAreaName.value = '';
fileList1.value = [];
// 刷新隐患列表
fetchHiddenDangerList();
@@ -320,6 +457,7 @@
// 页面显示时刷新列表(从交办、验收页面返回时自动刷新)
onShow(() => {
fetchHiddenDangerList();
+
});
const details = (item) => {
@@ -332,6 +470,14 @@
url: `/pages/hiddendanger/rectification?hazardId=${item.hazardId}&assignId=${item.assignId}`
})
}
+
+ // 编辑整改信息(待验收状态)
+ const editRectification = (item) => {
+ uni.navigateTo({
+ url: `/pages/hiddendanger/rectification?rectifyId=${item.rectifyId}&isEdit=1`
+ })
+ }
+
const acceptance = (item) => {
uni.navigateTo({
url: `/pages/hiddendanger/acceptance?hazardId=${item.hazardId}&assignId=${item.assignId}&rectifyId=${item.rectifyId}`
@@ -476,6 +622,31 @@
.page {
min-height: 100vh;
background: #EBF2FC;
+ padding-bottom: 120rpx; // 给底部按钮留出空间
+ }
+
+ // 固定在底部的悬浮新增按钮
+ .fixed-add-btn {
+ position: fixed;
+ bottom: 40rpx;
+ left: 30rpx;
+ right: 30rpx;
+ height: 88rpx;
+ background: linear-gradient(135deg, #667eea 0%, #2668EA 100%);
+ border-radius: 44rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #fff;
+ font-size: 32rpx;
+ font-weight: 500;
+ box-shadow: 0 8rpx 24rpx rgba(38, 104, 234, 0.4);
+ z-index: 100;
+
+ .cuIcon-add {
+ margin-right: 10rpx;
+ font-size: 36rpx;
+ }
}
.list-list {
@@ -576,18 +747,8 @@
align-items: center;
gap: 20rpx;
- .address-input {
+ .address-input-wrapper {
flex: 1;
- background: #fff;
- border: 1rpx solid #F6F6F6;
- ;
- border-radius: 8rpx;
- padding: 20rpx;
- font-size: 26rpx;
- color: #333;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
}
.btn-address {
@@ -605,6 +766,87 @@
}
}
+ // 选择器触发器样式
+ .select-trigger {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: #fff;
+ border: 1rpx solid #dcdfe6;
+ border-radius: 8rpx;
+ padding: 20rpx 24rpx;
+
+ .select-value {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333;
+
+ &.placeholder {
+ color: #c0c4cc;
+ }
+ }
+ }
+
+ // 选择弹窗样式
+ .picker-popup {
+ background: #fff;
+
+ .picker-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+
+ .picker-cancel {
+ font-size: 28rpx;
+ color: #999;
+ }
+
+ .picker-title {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #333;
+ }
+
+ .picker-confirm {
+ font-size: 28rpx;
+ color: #2667E9;
+ }
+ }
+
+ .picker-body {
+ max-height: 600rpx;
+ padding: 0 30rpx;
+ }
+
+ .picker-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #f5f5f5;
+ font-size: 30rpx;
+ color: #333;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ &.picker-item-active {
+ color: #2667E9;
+ }
+ }
+ }
+
+ // 区域颜色圆点
+ .area-color-dot {
+ width: 24rpx;
+ height: 24rpx;
+ border-radius: 50%;
+ margin-right: 16rpx;
+ }
+
.address-popup {
width: 600rpx;
background: #fff;
diff --git a/pages/hiddendanger/rectification.vue b/pages/hiddendanger/rectification.vue
index 7f485ac..e2d013e 100644
--- a/pages/hiddendanger/rectification.vue
+++ b/pages/hiddendanger/rectification.vue
@@ -1,58 +1,91 @@
-
+
整改方案
*
-
+
整改完成情况
*
-
- 投资资金(计划)
+
+ 投资资金(计划)
*
-
- 投资资金(实际)
+
+ 投资资金(实际)
*
-
- 限定整改时间
+
+ 限定整改时间
*
-
+
整改人员
*
- {{ selectedUserName }}
-
+
+
+
+ {{ selectedUsers.length > 0 ? selectedUsersText : '请选择整改人员(可多选)' }}
+
+
+
-
+
+
+
+
+
+
整改图片/视频
*
-
+
\ No newline at end of file
diff --git a/pages/hiddendanger/view.vue b/pages/hiddendanger/view.vue
index f7ab6a8..8bfc1d7 100644
--- a/pages/hiddendanger/view.vue
+++ b/pages/hiddendanger/view.vue
@@ -6,9 +6,9 @@
*
-
+
-
+
暂无图片
@@ -44,7 +44,12 @@
如:办公楼3层东侧消防通道,生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择
-
+
+
+ 隐患区域
+ {{ detailData.areaName || '暂无' }}
+
+
隐患描述
*
@@ -74,6 +79,7 @@
source: '',
description: '',
address: '',
+ areaName: '', // 隐患区域名称
createdAt: '',
attachments: []
});
@@ -93,8 +99,9 @@
};
// 图片预览 - 隐患图片
- const previewImage = (attachments, index) => {
- const urls = attachments.map(item => getFullPath(item.filePath));
+ const previewHazardImage = (index) => {
+ if (!detailData.attachments || detailData.attachments.length === 0) return;
+ const urls = detailData.attachments.map(item => getFullPath(item.filePath));
uni.previewImage({
current: index,
urls: urls
@@ -116,6 +123,8 @@
const res = await getHiddenDangerDetail({ hazardId, assignId });
if (res.code === 0 && res.data) {
Object.assign(detailData, res.data);
+ console.log('隐患详情数据:', res.data);
+ console.log('隐患附件:', res.data.attachments);
// 提取整改附件:assigns[0].rectify.attachments
if (res.data.assigns && res.data.assigns.length > 0) {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 4db4581..4af78af 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -2,9 +2,9 @@
-
+
-
+
{{ userInfo.deptName || '未知部门' }}
用户:
@@ -82,7 +82,8 @@
-
+
+ 已完成
@@ -92,10 +93,13 @@
我的隐患排查
-
-
- 隐患
- #15
+
+
+
+ 隐患
+ #{{ index + 1 }}
+
+ {{item.statusName}}
标题:
@@ -111,20 +115,32 @@
隐患等级:
- {{item.levelName}}
-
-
- 隐患状态:
- {{item.statusName}}
+ {{item.levelName}}
发现时间:
{{item.createdAt}}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -133,35 +149,73 @@
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 9e5939b..d2d998a 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -18,10 +18,10 @@
-
+
@@ -32,10 +32,10 @@
登录普通成员
-->
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+ {{ item.nickName }}
+
+ {{ item.statusName }}
+
+
+
+ 手机:{{ item.phonenumber || '未设置' }}
+
+
+
-
-
- {{item.nickName}}
- {{item.statusName}}
-
-
- 手机设置:
- {{item.phonenumber}}
-
-
- 登录IP:
- 45.135.228.172
-
-
-
-
+
+
+
+
+
-
@@ -42,43 +54,49 @@
-
+
用户名*
-
+
昵称
-
+
手机号
-
+
密码*
-
+
-
+
- 主部门*
-
-
- {{ formData.department || '请选择主部门' }}
+ 角色类型*
+
+
+ {{ selectedRoleName || '请选择角色类型' }}
+
-
+
-
+
-
-
- 日期选择
-
- {{ userInfo.birthday || '请选择日期' }}
-
-
-
-
-
-
-
-
+
@@ -197,4 +265,4 @@ const handleLogout = () => {
color: #2667E9;
background: #fff;
}
-
\ No newline at end of file
+
diff --git a/pages/personalcenter/my.vue b/pages/personalcenter/my.vue
index e721836..c347ccb 100644
--- a/pages/personalcenter/my.vue
+++ b/pages/personalcenter/my.vue
@@ -1,101 +1,134 @@
-
-
- 我的
-
-
-
-
- hhhrrrr
- 17374339800
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
- 帮助中心
-
-
-
-
-
-
- 智能客服
-
-
-
-
-
-
- 账号安全
-
-
-
-
-
-
- 新消息通知
-
-
-
-
-
-
- 清除缓存
-
-
-
-
-
-
- 通用设置
-
-
-
-
-
-
- 关于
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/request/api.js b/request/api.js
index 79e9ecf..d7709ad 100644
--- a/request/api.js
+++ b/request/api.js
@@ -63,10 +63,15 @@ export function getMyHiddenDangerList(params) {
}
//获取隐患详情
export function getHiddenDangerDetail(params) {
+ // 过滤掉 assignId 为 null、undefined、'null'、空字符串的情况
+ const filteredParams = { ...params };
+ if (filteredParams.assignId == null || filteredParams.assignId === 'null' || filteredParams.assignId === '') {
+ delete filteredParams.assignId;
+ }
return requestAPI({
url: '/frontend/hazard/detail',
method: 'GET',
- data: params
+ data: filteredParams
});
}
//获取隐患排查列表
@@ -86,6 +91,25 @@ export function submitRectification(params) {
data: params
});
}
+
+//获取整改详情
+export function getRectifyDetail(params) {
+ return requestAPI({
+ url: '/frontend/hazard/rectify/detail',
+ method: 'GET',
+ data: params
+ });
+}
+
+//修改整改
+export function updateRectification(params) {
+ return requestAPI({
+ url: '/frontend/hazard/rectify/update',
+ method: 'POST',
+ data: params
+ });
+}
+
//获取隐患标签列表
export function getHiddenDangerLabelList() {
return requestAPI({
@@ -101,6 +125,15 @@ export function getDepartmentPersonUsers(params) {
data: params
});
}
+
+//获取部门人员列表(包含参与过该隐患环节下的所有部门人员)
+export function getDeptUsersWithSubordinates(params) {
+ return requestAPI({
+ url: '/frontend/hazard/dept/users/with-subordinates',
+ method: 'GET',
+ data: params
+ });
+}
//成员管理
//添加成员
export function addMember(params) {
@@ -193,4 +226,129 @@ export function getCheckTableDetail(params) {
method: 'GET',
data: params
});
+}
+
+
+// 获取企业类型下拉列表
+export function getEnterprisetype() {
+ return requestAPI({
+ url: '/frontend/enterprise/type/select',
+ method: 'GET'
+ });
+}
+
+
+
+// 获取当前部门的企业基本信息
+export function getEnterpriseinfo() {
+ return requestAPI({
+ url: '/frontend/enterprise/info',
+ method: 'GET'
+ });
+}
+
+// 新增本部门企业基本信息(需要admin或manage权限)
+export function addEnterprise(params) {
+ return requestAPI({
+ url: '/frontend/enterprise/add',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 修改本部门企业基本信息(需要admin或manage权限)
+export function updateEnterprise(params) {
+ return requestAPI({
+ url: '/frontend/enterprise/update',
+ method: 'POST',
+ data: params
+ });
+}
+
+
+// 获取行业类型下拉列表
+export function getindustry(params) {
+ return requestAPI({
+ url: '/frontend/enterprise/industry/select',
+ method: 'GET'
+ });
+}
+
+// 获取法规列表(可搜索筛选)
+export function getRegulationList(params) {
+ return requestAPI({
+ url: '/admin/regulation/list',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 新增检查项
+export function addCheckPoint(params) {
+ return requestAPI({
+ url: '/admin/oneTable/checkPoint/add',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 获取检查项详情
+export function detailcheckPoint(id) {
+ return requestAPI({
+ url: `/admin/oneTable/checkPoint/detail/${id}`,
+ method: 'POST'
+ });
+}
+
+// 删除检查点
+export function deleteCheckPoint(params) {
+ return requestAPI({
+ url: '/admin/oneTable/checkPoint/delete',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 获取检查库列表(可搜索筛选)
+export function getCheckItemList(params) {
+ return requestAPI({
+ url: '/admin/oneTable/item/list',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取检查库详情列表
+export function getCheckItemListDetail(params) {
+ return requestAPI({
+ url: '/admin/oneTable/item/listDetail',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取当前部门所有用户
+export function getDeptUsers(params) {
+ return requestAPI({
+ url: '/admin/user/dept/users',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取父级部门列表(从当前到顶层)
+export function getParentDepts() {
+ return requestAPI({
+ url: '/admin/dept/parents',
+ method: 'GET'
+ });
+}
+
+// 获取日常检查预警列表
+export function getInspectionWarningList(params) {
+ return requestAPI({
+ url: '/admin/warning/inspection/list',
+ method: 'GET',
+ data: params
+ });
}
\ No newline at end of file
diff --git a/request/request.js b/request/request.js
index 58fc448..5bbb87b 100644
--- a/request/request.js
+++ b/request/request.js
@@ -2,8 +2,8 @@ import Request from './luch-request/index.js';
// 基础的url
-// const baseUrl = 'https://xyb.hexieweb.cn/xyb100zz';
- const baseUrl = 'http://192.168.1.168:5004';
+const baseUrl = 'https://yingji.hexieapi.com/prod-api';
+ // const baseUrl = 'http://192.168.1.168:5004';
const http = new Request({
baseURL: baseUrl,
@@ -31,13 +31,15 @@ const objectToQueryString = (obj) => {
return keyValuePairs.join('&');
};
-// 提示
+// 提示(延迟显示,避免和 hideLoading 冲突)
function showToast(title) {
- uni.showToast({
- title,
- icon: 'none',
- duration: 1000,
- });
+ setTimeout(() => {
+ uni.showToast({
+ title,
+ icon: 'none',
+ duration: 2000,
+ });
+ }, 100);
}
// 请求
@@ -84,7 +86,7 @@ const requestAPI = (config) => {
// 检查业务状态码(如果后端有的话)
if (res.data && res.data.code !== undefined) {
// 支持 code === 200 或 code === 0 作为成功状态
- if (res.data.code === 200 || res.data.code === 0) {
+ if (res.data.code === 200 || res.data.code === 0 || res.code === 0) {
resolve(res.data);
} else if (res.data.code === 401) {
// token过期处理
@@ -96,10 +98,14 @@ const requestAPI = (config) => {
url: '/pages/login/login'
});
}, 1500);
- reject('401');
+ reject({ code: 401, msg: '登录已过期' });
} else {
- showToast(res.data.msg || '请求失败');
- reject(res.data.code);
+ // 支持多种错误信息字段:msg、message、error
+ const errorMsg = res.data.msg || res.data.message || res.data.error || res.msg || '请求失败';
+ console.error('接口错误:', res.data); // 打印完整错误信息便于调试
+ showToast(errorMsg);
+ // reject 时传递完整错误信息,方便页面获取
+ reject({ code: res.data.code, msg: errorMsg, data: res.data });
}
} else {
// 没有业务状态码,直接返回数据
diff --git a/request/three_one_api/area.js b/request/three_one_api/area.js
new file mode 100644
index 0000000..d67b11a
--- /dev/null
+++ b/request/three_one_api/area.js
@@ -0,0 +1,63 @@
+import { requestAPI } from '../request.js';
+
+// 获取区域下拉列表(简单列表,用于其他模块选择区域)
+export function getAreaSelect(params) {
+ return requestAPI({
+ url: '/frontend/area/select',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取企业下拉列表(用于新增/修改区域时选择企业)
+export function getEnterpriseSelect() {
+ return requestAPI({
+ url: '/frontend/area/enterprise/select',
+ method: 'GET'
+ });
+}
+
+// 删除区域(需要admin或manage角色)
+export function deleteArea(params) {
+ return requestAPI({
+ url: '/frontend/area/delete',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 修改区域(需要admin或manage角色)
+export function updateArea(params) {
+ return requestAPI({
+ url: '/frontend/area/update',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 新增区域(需要admin或manage角色)
+export function addArea(params) {
+ return requestAPI({
+ url: '/frontend/area/add',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 获取区域详情
+export function getAreaDetail(params) {
+ return requestAPI({
+ url: '/frontend/area/detail',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取区域列表(本部门企业的区域)
+export function getAreaList(params) {
+ return requestAPI({
+ url: '/frontend/area/list',
+ method: 'GET',
+ data: params
+ });
+}
diff --git a/request/three_one_api/info.js b/request/three_one_api/info.js
new file mode 100644
index 0000000..25f0954
--- /dev/null
+++ b/request/three_one_api/info.js
@@ -0,0 +1,27 @@
+import { requestAPI } from '../request.js';
+
+// 获取个人信息详情
+export function getProfileDetail() {
+ return requestAPI({
+ url: '/frontend/profile/detail',
+ method: 'GET'
+ });
+}
+
+// 修改个人信息
+export function updateProfile(params) {
+ return requestAPI({
+ url: '/frontend/profile/update',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 修改密码
+export function updatePassword(params) {
+ return requestAPI({
+ url: '/frontend/profile/password',
+ method: 'POST',
+ data: params
+ });
+}
diff --git a/request/three_one_api/license.js b/request/three_one_api/license.js
new file mode 100644
index 0000000..ad30503
--- /dev/null
+++ b/request/three_one_api/license.js
@@ -0,0 +1,54 @@
+import { requestAPI } from '../request.js';
+
+// 获取企业下拉列表
+export function getLicenseEnterpriseSelect() {
+ return requestAPI({
+ url: '/frontend/license/enterprise/select',
+ method: 'GET'
+ });
+}
+
+// 删除证照(需要admin或manage角色)
+export function deleteLicense(params) {
+ return requestAPI({
+ url: '/frontend/license/delete',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 修改证照(需要admin或manage角色)
+export function updateLicense(params) {
+ return requestAPI({
+ url: '/frontend/license/update',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 新增证照(需要admin或manage角色)
+export function addLicense(params) {
+ return requestAPI({
+ url: '/frontend/license/add',
+ method: 'POST',
+ data: params
+ });
+}
+
+// 获取证照详情
+export function getLicenseDetail(params) {
+ return requestAPI({
+ url: '/frontend/license/detail',
+ method: 'GET',
+ data: params
+ });
+}
+
+// 获取证照列表(本部门企业的证照)
+export function getLicenseList(params) {
+ return requestAPI({
+ url: '/frontend/license/list',
+ method: 'GET',
+ data: params
+ });
+}
diff --git a/static/yujin/yujin_sousuo.png b/static/yujin/yujin_sousuo.png
new file mode 100644
index 0000000..53e66da
Binary files /dev/null and b/static/yujin/yujin_sousuo.png differ
diff --git a/static/yujin/yujin_tongji.png b/static/yujin/yujin_tongji.png
new file mode 100644
index 0000000..ff29f01
Binary files /dev/null and b/static/yujin/yujin_tongji.png differ
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
deleted file mode 100644
index 92d3c9d..0000000
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
-const common_vendor = require("./common/vendor.js");
-const uni_modules_uviewPlus_index = require("./uni_modules/uview-plus/index.js");
-if (!Math) {
- "./pages/index/index.js";
- "./pages/map/map.js";
- "./pages/plandetail/plandetail.js";
- "./pages/Inspectionresult/Inspectionresult.js";
- "./pages/membermanagemen/membermanagemen.js";
- "./pages/corporateInformation/corporateInformation.js";
- "./pages/editcompanInformation/editcompanInformation.js";
- "./pages/checklist/checklist.js";
- "./pages/editchecklist/editchecklist.js";
- "./pages/Inspectionlog/Inspectionlog.js";
- "./pages/Inspectionchecklist/Inspectionchecklist.js";
- "./pages/Idphotomanagement/Idphotomanagement.js";
- "./pages/hiddendanger/Inspection.js";
- "./pages/hiddendanger/view.js";
- "./pages/hiddendanger/rectification.js";
- "./pages/hiddendanger/acceptance.js";
- "./pages/hiddendanger/assignment.js";
- "./pages/closeout/application.js";
- "./pages/closeout/editor.js";
- "./pages/equipmentregistration/equipmentregistration.js";
- "./pages/area/management.js";
- "./pages/Inspectionwarning/Inspectionwarning.js";
- "./pages/personalcenter/my.js";
- "./pages/personalcenter/helpcenter.js";
- "./pages/personalcenter/notification.js";
- "./pages/personalcenter/settings.js";
- "./pages/personalcenter/account.js";
- "./pages/personalcenter/edit.js";
- "./pages/login/login.js";
- "./pages/login/reg.js";
- "./pages/login/enterprise.js";
- "./pages/login/success.js";
- "./pages/login/forget.js";
- "./pages/login/agreement.js";
-}
-const _sfc_main = {
- onLaunch: function() {
- console.log("App Launch");
- },
- onShow: function() {
- console.log("App Show");
- },
- onHide: function() {
- console.log("App Hide");
- }
-};
-function createApp() {
- const app = common_vendor.createSSRApp(_sfc_main);
- app.use(uni_modules_uviewPlus_index.uviewPlus);
- return {
- app
- };
-}
-createApp().app.mount("#app");
-exports.createApp = createApp;
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
deleted file mode 100644
index 69e965a..0000000
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "pages": [
- "pages/index/index",
- "pages/map/map",
- "pages/plandetail/plandetail",
- "pages/Inspectionresult/Inspectionresult",
- "pages/membermanagemen/membermanagemen",
- "pages/corporateInformation/corporateInformation",
- "pages/editcompanInformation/editcompanInformation",
- "pages/checklist/checklist",
- "pages/editchecklist/editchecklist",
- "pages/Inspectionlog/Inspectionlog",
- "pages/Inspectionchecklist/Inspectionchecklist",
- "pages/Idphotomanagement/Idphotomanagement",
- "pages/hiddendanger/Inspection",
- "pages/hiddendanger/view",
- "pages/hiddendanger/rectification",
- "pages/hiddendanger/acceptance",
- "pages/hiddendanger/assignment",
- "pages/closeout/application",
- "pages/closeout/editor",
- "pages/equipmentregistration/equipmentregistration",
- "pages/area/management",
- "pages/Inspectionwarning/Inspectionwarning",
- "pages/personalcenter/my",
- "pages/personalcenter/helpcenter",
- "pages/personalcenter/notification",
- "pages/personalcenter/settings",
- "pages/personalcenter/account",
- "pages/personalcenter/edit",
- "pages/login/login",
- "pages/login/reg",
- "pages/login/enterprise",
- "pages/login/success",
- "pages/login/forget",
- "pages/login/agreement"
- ],
- "window": {
- "navigationBarTextStyle": "white",
- "navigationBarTitleText": "uni-app",
- "navigationBarBackgroundColor": "#007aff",
- "backgroundColor": "#F8F8F8"
- },
- "tabBar": {
- "color": "#999999",
- "selectedColor": "#007aff",
- "borderStyle": "black",
- "backgroundColor": "#ffffff",
- "list": [
- {
- "pagePath": "pages/index/index",
- "text": "首页",
- "iconPath": "static/tabBar/home1.png",
- "selectedIconPath": "static/tabBar/home.png"
- },
- {
- "pagePath": "pages/map/map",
- "text": "一张图",
- "iconPath": "static/tabBar/map.png",
- "selectedIconPath": "static/tabBar/map1.png"
- },
- {
- "pagePath": "pages/Inspectionwarning/Inspectionwarning",
- "text": "预警",
- "iconPath": "static/tabBar/warning.png",
- "selectedIconPath": "static/tabBar/warning1.png"
- },
- {
- "pagePath": "pages/personalcenter/my",
- "text": "我的",
- "iconPath": "static/tabBar/my.png",
- "selectedIconPath": "static/tabBar/my1.png"
- }
- ]
- },
- "permission": {
- "scope.userLocation": {
- "desc": "你的位置信息将用于选择隐患位置"
- }
- },
- "requiredPrivateInfos": [
- "chooseLocation",
- "getLocation"
- ],
- "usingComponents": {}
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/app.wxss b/unpackage/dist/dev/mp-weixin/app.wxss
deleted file mode 100644
index 318ea50..0000000
--- a/unpackage/dist/dev/mp-weixin/app.wxss
+++ /dev/null
@@ -1,8522 +0,0 @@
-/**
- * 这里是uni-app内置的常用样式变量
- *
- * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
- * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
- *
- */
-/**
- * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
- *
- * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
- */
-/* uni.scss */
-/* 颜色变量 */
-/* 行为相关颜色 */
-/* 文字基本颜色 */
-/* 背景颜色 */
-/* 边框颜色 */
-/* 尺寸变量 */
-/* 文字尺寸 */
-/* 图片尺寸 */
-/* Border Radius */
-/* 水平间距 */
-/* 垂直间距 */
-/* 透明度 */
-/* 文章场景相关 */
-/*每个页面公共css */
-/*
- ColorUi for uniApp v2.1.6 | by 文晓港 2019-05-31 10:44:24
- 仅供学习交流,如作它用所承受的法律责任一概与作者无关
-
- *使用ColorUi开发扩展与插件时,请注明基于ColorUi开发
-
- (QQ交流群:240787041)
-*/
-/* ==================
- 初始化
- ==================== */
-body {
- background-color: #f1f1f1;
- font-size: 28rpx;
- color: #333333;
- font-family: Helvetica Neue, Helvetica, sans-serif;
-}
-view,
-scroll-view,
-swiper,
-button,
-input,
-textarea,
-label,
-navigator,
-image {
- box-sizing: border-box;
-}
-.round {
- border-radius: 5000rpx;
-}
-.radius {
- border-radius: 12rpx;
-}
-/* ==================
- 图片
- ==================== */
-image {
- max-width: 100%;
- display: inline-block;
- position: relative;
- z-index: 0;
-}
-image.loading::before {
- content: "";
- background-color: #f5f5f5;
- display: block;
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: -2;
-}
-image.loading::after {
- content: "\e7f1";
- font-family: "cuIcon";
- position: absolute;
- top: 0;
- left: 0;
- width: 32rpx;
- height: 32rpx;
- line-height: 32rpx;
- right: 0;
- bottom: 0;
- z-index: -1;
- font-size: 32rpx;
- margin: auto;
- color: #ccc;
- animation: cuIcon-spin 2s infinite linear;
- display: block;
-}
-.response {
- width: 100%;
-}
-/* ==================
- 开关
- ==================== */
-switch,
-checkbox,
-radio {
- position: relative;
-}
-switch::after,
-switch::before {
- font-family: "cuIcon";
- content: "\e645";
- position: absolute;
- color: #ffffff !important;
- top: 0%;
- left: 0rpx;
- font-size: 26rpx;
- line-height: 26px;
- width: 50%;
- text-align: center;
- pointer-events: none;
- transform: scale(0, 0);
- transition: all 0.3s ease-in-out 0s;
- z-index: 9;
- bottom: 0;
- height: 26px;
- margin: auto;
-}
-switch::before {
- content: "\e646";
- right: 0;
- transform: scale(1, 1);
- left: auto;
-}
-switch[checked]::after,
-switch.checked::after {
- transform: scale(1, 1);
-}
-switch[checked]::before,
-switch.checked::before {
- transform: scale(0, 0);
-}
-radio::before,
-checkbox::before {
- font-family: "cuIcon";
- content: "\e645";
- position: absolute;
- color: #ffffff !important;
- top: 50%;
- margin-top: -8px;
- right: 5px;
- font-size: 32rpx;
- line-height: 16px;
- pointer-events: none;
- transform: scale(1, 1);
- transition: all 0.3s ease-in-out 0s;
- z-index: 9;
-}
-radio .wx-radio-input,
-checkbox .wx-checkbox-input,
-radio .uni-radio-input,
-checkbox .uni-checkbox-input {
- margin: 0;
- width: 24px;
- height: 24px;
-}
-checkbox.round .wx-checkbox-input,
-checkbox.round .uni-checkbox-input {
- border-radius: 100rpx;
-}
-switch[checked]::before {
- transform: scale(0, 0);
-}
-switch .wx-switch-input,
-switch .uni-switch-input {
- border: none;
- padding: 0 24px;
- width: 48px;
- height: 26px;
- margin: 0;
- border-radius: 100rpx;
-}
-switch .wx-switch-input:not([class*="bg-"]),
-switch .uni-switch-input:not([class*="bg-"]) {
- background: #8799a3 !important;
-}
-switch .wx-switch-input::after,
-switch .uni-switch-input::after {
- margin: auto;
- width: 26px;
- height: 26px;
- border-radius: 100rpx;
- left: 0rpx;
- top: 0rpx;
- bottom: 0rpx;
- position: absolute;
- transform: scale(0.9, 0.9);
- transition: all 0.1s ease-in-out 0s;
-}
-switch .wx-switch-input.wx-switch-input-checked::after,
-switch .uni-switch-input.uni-switch-input-checked::after {
- margin: auto;
- left: 22px;
- box-shadow: none;
- transform: scale(0.9, 0.9);
-}
-radio-group {
- display: inline-block;
-}
-switch.radius .wx-switch-input::after,
-switch.radius .wx-switch-input,
-switch.radius .wx-switch-input::before,
-switch.radius .uni-switch-input::after,
-switch.radius .uni-switch-input,
-switch.radius .uni-switch-input::before {
- border-radius: 10rpx;
-}
-switch .wx-switch-input::before,
-radio.radio::before,
-checkbox .wx-checkbox-input::before,
-radio .wx-radio-input::before,
-switch .uni-switch-input::before,
-radio.radio::before,
-checkbox .uni-checkbox-input::before,
-radio .uni-radio-input::before {
- display: none;
-}
-radio.radio[checked]::after,
-radio.radio .uni-radio-input-checked::after {
- content: "";
- background-color: transparent;
- display: block;
- position: absolute;
- width: 8px;
- height: 8px;
- z-index: 999;
- top: 0rpx;
- left: 0rpx;
- right: 0;
- bottom: 0;
- margin: auto;
- border-radius: 200rpx;
-
-
-
-
-
- border: 8px solid #ffffff !important;
-}
-.switch-sex::after {
- content: "\e71c";
-}
-.switch-sex::before {
- content: "\e71a";
-}
-.switch-sex .wx-switch-input,
-.switch-sex .uni-switch-input {
- background: #e54d42 !important;
- border-color: #e54d42 !important;
-}
-.switch-sex[checked] .wx-switch-input,
-.switch-sex.checked .uni-switch-input {
- background: #2F89E3 !important;
- border-color: #2F89E3 !important;
-}
-switch.red[checked] .wx-switch-input.wx-switch-input-checked,
-checkbox.red[checked] .wx-checkbox-input,
-radio.red[checked] .wx-radio-input,
-switch.red.checked .uni-switch-input.uni-switch-input-checked,
-checkbox.red.checked .uni-checkbox-input,
-radio.red.checked .uni-radio-input {
- background-color: #e54d42 !important;
- border-color: #e54d42 !important;
- color: #ffffff !important;
-}
-switch.orange[checked] .wx-switch-input,
-checkbox.orange[checked] .wx-checkbox-input,
-radio.orange[checked] .wx-radio-input,
-switch.orange.checked .uni-switch-input,
-checkbox.orange.checked .uni-checkbox-input,
-radio.orange.checked .uni-radio-input {
- background-color: #f37b1d !important;
- border-color: #f37b1d !important;
- color: #ffffff !important;
-}
-switch.yellow[checked] .wx-switch-input,
-checkbox.yellow[checked] .wx-checkbox-input,
-radio.yellow[checked] .wx-radio-input,
-switch.yellow.checked .uni-switch-input,
-checkbox.yellow.checked .uni-checkbox-input,
-radio.yellow.checked .uni-radio-input {
- background-color: #fbbd08 !important;
- border-color: #fbbd08 !important;
- color: #333333 !important;
-}
-switch.olive[checked] .wx-switch-input,
-checkbox.olive[checked] .wx-checkbox-input,
-radio.olive[checked] .wx-radio-input,
-switch.olive.checked .uni-switch-input,
-checkbox.olive.checked .uni-checkbox-input,
-radio.olive.checked .uni-radio-input {
- background-color: #8dc63f !important;
- border-color: #8dc63f !important;
- color: #ffffff !important;
-}
-switch.green[checked] .wx-switch-input,
-switch[checked] .wx-switch-input,
-checkbox.green[checked] .wx-checkbox-input,
-checkbox[checked] .wx-checkbox-input,
-radio.green[checked] .wx-radio-input,
-radio[checked] .wx-radio-input,
-switch.green.checked .uni-switch-input,
-switch.checked .uni-switch-input,
-checkbox.green.checked .uni-checkbox-input,
-checkbox.checked .uni-checkbox-input,
-radio.green.checked .uni-radio-input,
-radio.checked .uni-radio-input {
- background-color: #39b54a !important;
- border-color: #39b54a !important;
- color: #ffffff !important;
- border-color: #39B54A !important;
-}
-switch.cyan[checked] .wx-switch-input,
-checkbox.cyan[checked] .wx-checkbox-input,
-radio.cyan[checked] .wx-radio-input,
-switch.cyan.checked .uni-switch-input,
-checkbox.cyan.checked .uni-checkbox-input,
-radio.cyan.checked .uni-radio-input {
- background-color: #1cbbb4 !important;
- border-color: #1cbbb4 !important;
- color: #ffffff !important;
-}
-switch.blue[checked] .wx-switch-input,
-checkbox.blue[checked] .wx-checkbox-input,
-radio.blue[checked] .wx-radio-input,
-switch.blue.checked .uni-switch-input,
-checkbox.blue.checked .uni-checkbox-input,
-radio.blue.checked .uni-radio-input {
- background-color: #2F89E3 !important;
- border-color: #2F89E3 !important;
- color: #ffffff !important;
-}
-switch.purple[checked] .wx-switch-input,
-checkbox.purple[checked] .wx-checkbox-input,
-radio.purple[checked] .wx-radio-input,
-switch.purple.checked .uni-switch-input,
-checkbox.purple.checked .uni-checkbox-input,
-radio.purple.checked .uni-radio-input {
- background-color: #6739b6 !important;
- border-color: #6739b6 !important;
- color: #ffffff !important;
-}
-switch.mauve[checked] .wx-switch-input,
-checkbox.mauve[checked] .wx-checkbox-input,
-radio.mauve[checked] .wx-radio-input,
-switch.mauve.checked .uni-switch-input,
-checkbox.mauve.checked .uni-checkbox-input,
-radio.mauve.checked .uni-radio-input {
- background-color: #9c26b0 !important;
- border-color: #9c26b0 !important;
- color: #ffffff !important;
-}
-switch.pink[checked] .wx-switch-input,
-checkbox.pink[checked] .wx-checkbox-input,
-radio.pink[checked] .wx-radio-input,
-switch.pink.checked .uni-switch-input,
-checkbox.pink.checked .uni-checkbox-input,
-radio.pink.checked .uni-radio-input {
- background-color: #e03997 !important;
- border-color: #e03997 !important;
- color: #ffffff !important;
-}
-switch.brown[checked] .wx-switch-input,
-checkbox.brown[checked] .wx-checkbox-input,
-radio.brown[checked] .wx-radio-input,
-switch.brown.checked .uni-switch-input,
-checkbox.brown.checked .uni-checkbox-input,
-radio.brown.checked .uni-radio-input {
- background-color: #a5673f !important;
- border-color: #a5673f !important;
- color: #ffffff !important;
-}
-switch.grey[checked] .wx-switch-input,
-checkbox.grey[checked] .wx-checkbox-input,
-radio.grey[checked] .wx-radio-input,
-switch.grey.checked .uni-switch-input,
-checkbox.grey.checked .uni-checkbox-input,
-radio.grey.checked .uni-radio-input {
- background-color: #8799a3 !important;
- border-color: #8799a3 !important;
- color: #ffffff !important;
-}
-switch.gray[checked] .wx-switch-input,
-checkbox.gray[checked] .wx-checkbox-input,
-radio.gray[checked] .wx-radio-input,
-switch.gray.checked .uni-switch-input,
-checkbox.gray.checked .uni-checkbox-input,
-radio.gray.checked .uni-radio-input {
- background-color: #f0f0f0 !important;
- border-color: #f0f0f0 !important;
- color: #333333 !important;
-}
-switch.black[checked] .wx-switch-input,
-checkbox.black[checked] .wx-checkbox-input,
-radio.black[checked] .wx-radio-input,
-switch.black.checked .uni-switch-input,
-checkbox.black.checked .uni-checkbox-input,
-radio.black.checked .uni-radio-input {
- background-color: #333333 !important;
- border-color: #333333 !important;
- color: #ffffff !important;
-}
-switch.white[checked] .wx-switch-input,
-checkbox.white[checked] .wx-checkbox-input,
-radio.white[checked] .wx-radio-input,
-switch.white.checked .uni-switch-input,
-checkbox.white.checked .uni-checkbox-input,
-radio.white.checked .uni-radio-input {
- background-color: #ffffff !important;
- border-color: #ffffff !important;
- color: #333333 !important;
-}
-/* ==================
- 边框
- ==================== */
-/* -- 实线 -- */
-.solid,
-.solid-top,
-.solid-right,
-.solid-bottom,
-.solid-left,
-.solids,
-.solids-top,
-.solids-right,
-.solids-bottom,
-.solids-left,
-.dashed,
-.dashed-top,
-.dashed-right,
-.dashed-bottom,
-.dashed-left {
- position: relative;
-}
-.solid::after,
-.solid-top::after,
-.solid-right::after,
-.solid-bottom::after,
-.solid-left::after,
-.solids::after,
-.solids-top::after,
-.solids-right::after,
-.solids-bottom::after,
-.solids-left::after,
-.dashed::after,
-.dashed-top::after,
-.dashed-right::after,
-.dashed-bottom::after,
-.dashed-left::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border-radius: inherit;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
-}
-.solid::after {
- border: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-.solid-top::after {
- border-top: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-.solid-right::after {
- border-right: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-.solid-bottom::after {
- border-bottom: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-.solid-left::after {
- border-left: 1rpx solid rgba(0, 0, 0, 0.1);
-}
-.solids::after {
- border: 8rpx solid #eee;
-}
-.solids-top::after {
- border-top: 8rpx solid #eee;
-}
-.solids-right::after {
- border-right: 8rpx solid #eee;
-}
-.solids-bottom::after {
- border-bottom: 8rpx solid #eee;
-}
-.solids-left::after {
- border-left: 8rpx solid #eee;
-}
-/* -- 虚线 -- */
-.dashed::after {
- border: 1rpx dashed #ddd;
-}
-.dashed-top::after {
- border-top: 1rpx dashed #ddd;
-}
-.dashed-right::after {
- border-right: 1rpx dashed #ddd;
-}
-.dashed-bottom::after {
- border-bottom: 1rpx dashed #ddd;
-}
-.dashed-left::after {
- border-left: 1rpx dashed #ddd;
-}
-/* -- 阴影 -- */
-.shadow[class*='white'] {
- --ShadowSize: 0 1rpx 6rpx;
-}
-.shadow-lg {
- --ShadowSize: 0rpx 40rpx 100rpx 0rpx;
-}
-.shadow-warp {
- position: relative;
- box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.1);
-}
-.shadow-warp:before,
-.shadow-warp:after {
- position: absolute;
- content: "";
- top: 20rpx;
- bottom: 30rpx;
- left: 20rpx;
- width: 50%;
- box-shadow: 0 30rpx 20rpx rgba(0, 0, 0, 0.2);
- transform: rotate(-3deg);
- z-index: -1;
-}
-.shadow-warp:after {
- right: 20rpx;
- left: auto;
- transform: rotate(3deg);
-}
-.shadow-blur {
- position: relative;
-}
-.shadow-blur::before {
- content: "";
- display: block;
- background: inherit;
- filter: blur(10rpx);
- position: absolute;
- width: 100%;
- height: 100%;
- top: 10rpx;
- left: 10rpx;
- z-index: -1;
- opacity: 0.4;
- transform-origin: 0 0;
- border-radius: inherit;
- transform: scale(1, 1);
-}
-/* ==================
- 按钮
- ==================== */
-.cu-btn {
- position: relative;
- border: 0rpx;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- padding: 0 30rpx;
- font-size: 28rpx;
- height: 64rpx;
- line-height: 1;
- text-align: center;
- text-decoration: none;
- overflow: visible;
- margin-left: initial;
- transform: translate(0rpx, 0rpx);
- margin-right: initial;
-}
-.cu-btn::after {
- display: none;
-}
-.cu-btn:not([class*="bg-"]) {
- background-color: #f0f0f0;
-}
-.cu-btn[class*="line"] {
- background-color: transparent;
-}
-.cu-btn[class*="line"]::after {
- content: " ";
- display: block;
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border: 1rpx solid currentColor;
- transform: scale(0.5);
- transform-origin: 0 0;
- box-sizing: border-box;
- border-radius: 12rpx;
- z-index: 1;
- pointer-events: none;
-}
-.cu-btn.round[class*="line"]::after {
- border-radius: 1000rpx;
-}
-.cu-btn[class*="lines"]::after {
- border: 6rpx solid currentColor;
-}
-.cu-btn[class*="bg-"]::after {
- display: none;
-}
-.cu-btn.sm {
- padding: 0 20rpx;
- font-size: 20rpx;
- height: 48rpx;
-}
-.cu-btn.lg {
- padding: 0 40rpx;
- font-size: 32rpx;
- height: 80rpx;
-}
-.cu-btn.cuIcon.sm {
- width: 48rpx;
- height: 48rpx;
-}
-.cu-btn.cuIcon {
- width: 64rpx;
- height: 64rpx;
- border-radius: 500rpx;
- padding: 0;
-}
-button.cuIcon.lg {
- width: 80rpx;
- height: 80rpx;
-}
-.cu-btn.shadow-blur::before {
- top: 4rpx;
- left: 4rpx;
- filter: blur(6rpx);
- opacity: 0.6;
-}
-.cu-btn.button-hover {
- transform: translate(1rpx, 1rpx);
-}
-.block {
- display: block;
-}
-.cu-btn.block {
- display: flex;
-}
-.cu-btn[disabled] {
- opacity: 0.6;
- color: #ffffff;
-}
-/* ==================
- 徽章
- ==================== */
-.cu-tag {
- font-size: 24rpx;
- vertical-align: middle;
- position: relative;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- padding: 0rpx 16rpx;
- height: 48rpx;
- font-family: Helvetica Neue, Helvetica, sans-serif;
- white-space: nowrap;
-}
-.cu-tag:not([class*="bg"]):not([class*="line"]) {
- background-color: #f1f1f1;
-}
-.cu-tag[class*="line-"]::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border: 1rpx solid currentColor;
- transform: scale(0.5);
- transform-origin: 0 0;
- box-sizing: border-box;
- border-radius: inherit;
- z-index: 1;
- pointer-events: none;
-}
-.cu-tag.radius[class*="line"]::after {
- border-radius: 12rpx;
-}
-.cu-tag.round[class*="line"]::after {
- border-radius: 1000rpx;
-}
-.cu-tag[class*="line-"]::after {
- border-radius: 0;
-}
-.cu-tag+.cu-tag {
- margin-left: 10rpx;
-}
-.cu-tag.sm {
- font-size: 20rpx;
- padding: 0rpx 12rpx;
- height: 32rpx;
-}
-.cu-capsule {
- display: inline-flex;
- vertical-align: middle;
-}
-.cu-capsule+.cu-capsule {
- margin-left: 10rpx;
-}
-.cu-capsule .cu-tag {
- margin: 0;
-}
-.cu-capsule .cu-tag[class*="line-"]:last-child::after {
- border-left: 0rpx solid transparent;
-}
-.cu-capsule .cu-tag[class*="line-"]:first-child::after {
- border-right: 0rpx solid transparent;
-}
-.cu-capsule.radius .cu-tag:first-child {
- border-top-left-radius: 6rpx;
- border-bottom-left-radius: 6rpx;
-}
-.cu-capsule.radius .cu-tag:last-child::after,
-.cu-capsule.radius .cu-tag[class*="line-"] {
- border-top-right-radius: 12rpx;
- border-bottom-right-radius: 12rpx;
-}
-.cu-capsule.round .cu-tag:first-child {
- border-top-left-radius: 200rpx;
- border-bottom-left-radius: 200rpx;
- text-indent: 4rpx;
-}
-.cu-capsule.round .cu-tag:last-child::after,
-.cu-capsule.round .cu-tag:last-child {
- border-top-right-radius: 200rpx;
- border-bottom-right-radius: 200rpx;
- text-indent: -4rpx;
-}
-.cu-tag.badge {
- border-radius: 200rpx;
- position: absolute;
- top: -10rpx;
- right: -10rpx;
- font-size: 20rpx;
- padding: 0rpx 10rpx;
- height: 28rpx;
- color: #ffffff;
-}
-.cu-tag.badge:not([class*="bg-"]) {
- background-color: #dd514c;
-}
-.cu-tag:empty:not([class*="cuIcon-"]) {
- padding: 0rpx;
- width: 16rpx;
- height: 16rpx;
- top: -4rpx;
- right: -4rpx;
-}
-.cu-tag[class*="cuIcon-"] {
- width: 32rpx;
- height: 32rpx;
- top: -4rpx;
- right: -4rpx;
-}
-/* ==================
- 头像
- ==================== */
-.cu-avatar {
- font-variant: small-caps;
- margin: 0;
- padding: 0;
- display: inline-flex;
- text-align: center;
- justify-content: center;
- align-items: center;
- background-color: #ccc;
- color: #ffffff;
- white-space: nowrap;
- position: relative;
- width: 64rpx;
- height: 64rpx;
- background-size: cover;
- background-position: center;
- vertical-align: middle;
- font-size: 1.5em;
-}
-.cu-avatar.sm {
- width: 48rpx;
- height: 48rpx;
- font-size: 1em;
-}
-.cu-avatar.lg {
- width: 96rpx;
- height: 96rpx;
- font-size: 2em;
-}
-.cu-avatar.xl {
- width: 128rpx;
- height: 128rpx;
- font-size: 2.5em;
-}
-.cu-avatar .avatar-text {
- font-size: 0.4em;
-}
-.cu-avatar-group {
- direction: rtl;
- unicode-bidi: bidi-override;
- padding: 0 10rpx 0 40rpx;
- display: inline-block;
-}
-.cu-avatar-group .cu-avatar {
- margin-left: -30rpx;
- border: 4rpx solid #f1f1f1;
- vertical-align: middle;
-}
-.cu-avatar-group .cu-avatar.sm {
- margin-left: -20rpx;
- border: 1rpx solid #f1f1f1;
-}
-/* ==================
- 进度条
- ==================== */
-.cu-progress {
- overflow: hidden;
- height: 28rpx;
- background-color: #ebeef5;
- display: inline-flex;
- align-items: center;
- width: 100%;
-}
-.cu-progress+view,
-.cu-progress+text {
- line-height: 1;
-}
-.cu-progress.xs {
- height: 10rpx;
-}
-.cu-progress.sm {
- height: 20rpx;
-}
-.cu-progress view {
- width: 0;
- height: 100%;
- align-items: center;
- display: flex;
- justify-items: flex-end;
- justify-content: space-around;
- font-size: 20rpx;
- color: #ffffff;
- transition: width 0.6s ease;
-}
-.cu-progress text {
- align-items: center;
- display: flex;
- font-size: 20rpx;
- color: #333333;
- text-indent: 10rpx;
-}
-.cu-progress.text-progress {
- padding-right: 60rpx;
-}
-.cu-progress.striped view {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 72rpx 72rpx;
-}
-.cu-progress.active view {
- animation: progress-stripes 2s linear infinite;
-}
-@keyframes progress-stripes {
-from {
- background-position: 72rpx 0;
-}
-to {
- background-position: 0 0;
-}
-}
-/* ==================
- 加载
- ==================== */
-.cu-load {
- display: block;
- line-height: 3em;
- text-align: center;
-}
-.cu-load::before {
- font-family: "cuIcon";
- display: inline-block;
- margin-right: 6rpx;
-}
-.cu-load.loading::before {
- content: "\e67a";
- animation: cuIcon-spin 2s infinite linear;
-}
-.cu-load.loading::after {
- content: "加载中...";
-}
-.cu-load.over::before {
- content: "\e64a";
-}
-.cu-load.over::after {
- content: "没有更多了";
-}
-.cu-load.erro::before {
- content: "\e658";
-}
-.cu-load.erro::after {
- content: "加载失败";
-}
-.cu-load.load-cuIcon::before {
- font-size: 32rpx;
-}
-.cu-load.load-cuIcon::after {
- display: none;
-}
-.cu-load.load-cuIcon.over {
- display: none;
-}
-.cu-load.load-modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 140rpx;
- left: 0;
- margin: auto;
- width: 260rpx;
- height: 260rpx;
- background-color: #ffffff;
- border-radius: 10rpx;
- box-shadow: 0 0 0rpx 2000rpx rgba(0, 0, 0, 0.5);
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
- font-size: 28rpx;
- z-index: 9999;
- line-height: 2.4em;
-}
-.cu-load.load-modal [class*="cuIcon-"] {
- font-size: 60rpx;
-}
-.cu-load.load-modal image {
- width: 70rpx;
- height: 70rpx;
-}
-.cu-load.load-modal::after {
- content: "";
- position: absolute;
- background-color: #ffffff;
- border-radius: 50%;
- width: 200rpx;
- height: 200rpx;
- font-size: 10px;
- border-top: 6rpx solid rgba(0, 0, 0, 0.05);
- border-right: 6rpx solid rgba(0, 0, 0, 0.05);
- border-bottom: 6rpx solid rgba(0, 0, 0, 0.05);
- border-left: 6rpx solid #f37b1d;
- animation: cuIcon-spin 1s infinite linear;
- z-index: -1;
-}
-.load-progress {
- pointer-events: none;
- top: 0;
- position: fixed;
- width: 100%;
- left: 0;
- z-index: 2000;
-}
-.load-progress.hide {
- display: none;
-}
-.load-progress .load-progress-bar {
- position: relative;
- width: 100%;
- height: 4rpx;
- overflow: hidden;
- transition: all 200ms ease 0s;
-}
-.load-progress .load-progress-spinner {
- position: absolute;
- top: 10rpx;
- right: 10rpx;
- z-index: 2000;
- display: block;
-}
-.load-progress .load-progress-spinner::after {
- content: "";
- display: block;
- width: 24rpx;
- height: 24rpx;
- box-sizing: border-box;
- border: solid 4rpx transparent;
- border-top-color: inherit;
- border-left-color: inherit;
- border-radius: 50%;
- animation: load-progress-spinner 0.4s linear infinite;
-}
-@keyframes load-progress-spinner {
-0% {
- transform: rotate(0);
-}
-100% {
- transform: rotate(360deg);
-}
-}
-/* ==================
- 列表
- ==================== */
-.grayscale {
- filter: grayscale(1);
-}
-.cu-list+.cu-list {
- margin-top: 30rpx
-}
-.cu-list>.cu-item {
- transition: all .6s ease-in-out 0s;
- transform: translateX(0rpx)
-}
-.cu-list>.cu-item.move-cur {
- transform: translateX(-260rpx)
-}
-.cu-list>.cu-item .move {
- position: absolute;
- right: 0;
- display: flex;
- width: 260rpx;
- height: 100%;
- transform: translateX(100%)
-}
-.cu-list>.cu-item .move view {
- display: flex;
- flex: 1;
- justify-content: center;
- align-items: center
-}
-.cu-list.menu-avatar {
- overflow: hidden;
-}
-.cu-list.menu-avatar>.cu-item {
- position: relative;
- display: flex;
- padding-right: 10rpx;
- height: 140rpx;
- background-color: #ffffff;
- justify-content: flex-end;
- align-items: center
-}
-.cu-list.menu-avatar>.cu-item>.cu-avatar {
- position: absolute;
- left: 30rpx
-}
-.cu-list.menu-avatar>.cu-item .flex .text-cut {
- max-width: 510rpx
-}
-.cu-list.menu-avatar>.cu-item .content {
- position: absolute;
- left: 146rpx;
- width: calc(100% - 96rpx - 60rpx - 120rpx - 20rpx);
- line-height: 1.6em;
-}
-.cu-list.menu-avatar>.cu-item .content.flex-sub {
- width: calc(100% - 96rpx - 60rpx - 20rpx);
-}
-.cu-list.menu-avatar>.cu-item .content>view:first-child {
- font-size: 30rpx;
- display: flex;
- align-items: center
-}
-.cu-list.menu-avatar>.cu-item .content .cu-tag.sm {
- display: inline-block;
- margin-left: 10rpx;
- height: 28rpx;
- font-size: 16rpx;
- line-height: 32rpx
-}
-.cu-list.menu-avatar>.cu-item .action {
- width: 100rpx;
- text-align: center
-}
-.cu-list.menu-avatar>.cu-item .action view+view {
- margin-top: 10rpx
-}
-.cu-list.menu-avatar.comment>.cu-item .content {
- position: relative;
- left: 0;
- width: auto;
- flex: 1;
-}
-.cu-list.menu-avatar.comment>.cu-item {
- padding: 30rpx 30rpx 30rpx 120rpx;
- height: auto
-}
-.cu-list.menu-avatar.comment .cu-avatar {
- align-self: flex-start
-}
-.cu-list.menu>.cu-item {
- position: relative;
- display: flex;
- padding: 0 30rpx;
- min-height: 100rpx;
- background-color: #ffffff;
- justify-content: space-between;
- align-items: center
-}
-.cu-list.menu>.cu-item:last-child:after {
- border: none
-}
-.cu-list.menu-avatar>.cu-item:after,
-.cu-list.menu>.cu-item:after {
- position: absolute;
- top: 0;
- left: 0;
- box-sizing: border-box;
- width: 200%;
- height: 200%;
- border-bottom: 1rpx solid #ddd;
- border-radius: inherit;
- content: " ";
- transform: scale(.5);
- transform-origin: 0 0;
- pointer-events: none
-}
-.cu-list.menu>.cu-item.grayscale {
- background-color: #f5f5f5
-}
-.cu-list.menu>.cu-item.cur {
- background-color: #fcf7e9
-}
-.cu-list.menu>.cu-item.arrow {
- padding-right: 90rpx
-}
-.cu-list.menu>.cu-item.arrow:before {
- position: absolute;
- top: 0;
- right: 30rpx;
- bottom: 0;
- display: block;
- margin: auto;
- width: 30rpx;
- height: 30rpx;
- color: #8799a3;
- content: "\e6a3";
- text-align: center;
- font-size: 34rpx;
- font-family: cuIcon;
- line-height: 30rpx
-}
-.cu-list.menu>.cu-item button.content {
- padding: 0;
- background-color: transparent;
- justify-content: flex-start
-}
-.cu-list.menu>.cu-item button.content:after {
- display: none
-}
-.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar {
- border-color: #ffffff
-}
-.cu-list.menu>.cu-item .content>view:first-child {
- display: flex;
- align-items: center
-}
-.cu-list.menu>.cu-item .content>text[class*=cuIcon] {
- display: inline-block;
- margin-right: 10rpx;
- width: 1.6em;
- text-align: center
-}
-.cu-list.menu>.cu-item .content>image {
- display: inline-block;
- margin-right: 10rpx;
- width: 1.6em;
- height: 1.6em;
- vertical-align: middle
-}
-.cu-list.menu>.cu-item .content {
- font-size: 30rpx;
- line-height: 1.6em;
- flex: 1
-}
-.cu-list.menu>.cu-item .content .cu-tag.sm {
- display: inline-block;
- margin-left: 10rpx;
- height: 28rpx;
- font-size: 16rpx;
- line-height: 32rpx
-}
-.cu-list.menu>.cu-item .action .cu-tag:empty {
- right: 10rpx
-}
-.cu-list.menu {
- display: block;
- overflow: hidden
-}
-.cu-list.menu.sm-border>.cu-item:after {
- left: 30rpx;
- width: calc(200% - 120rpx)
-}
-.cu-list.grid>.cu-item {
- position: relative;
- display: flex;
- padding: 20rpx 0 30rpx;
- transition-duration: 0s;
- flex-direction: column
-}
-.cu-list.grid>.cu-item:after {
- position: absolute;
- top: 0;
- left: 0;
- box-sizing: border-box;
- width: 200%;
- height: 200%;
- border-right: 1px solid rgba(0, 0, 0, .1);
- border-bottom: 1px solid rgba(0, 0, 0, .1);
- border-radius: inherit;
- content: " ";
- transform: scale(.5);
- transform-origin: 0 0;
- pointer-events: none
-}
-.cu-list.grid>.cu-item text {
- display: block;
- margin-top: 10rpx;
- color: #888;
- font-size: 26rpx;
- line-height: 40rpx
-}
-.cu-list.grid>.cu-item [class*=cuIcon] {
- position: relative;
- display: block;
- margin-top: 20rpx;
- width: 100%;
- font-size: 48rpx
-}
-.cu-list.grid>.cu-item .cu-tag {
- right: auto;
- left: 50%;
- margin-left: 20rpx
-}
-.cu-list.grid {
- background-color: #ffffff;
- text-align: center
-}
-.cu-list.grid.no-border>.cu-item {
- padding-top: 10rpx;
- padding-bottom: 20rpx
-}
-.cu-list.grid.no-border>.cu-item:after {
- border: none
-}
-.cu-list.grid.no-border {
- padding: 20rpx 10rpx
-}
-.cu-list.grid.col-3>.cu-item:nth-child(3n):after,
-.cu-list.grid.col-4>.cu-item:nth-child(4n):after,
-.cu-list.grid.col-5>.cu-item:nth-child(5n):after {
- border-right-width: 0
-}
-.cu-list.card-menu {
- overflow: hidden;
- margin-right: 30rpx;
- margin-left: 30rpx;
- border-radius: 20rpx
-}
-/* ==================
- 操作条
- ==================== */
-.cu-bar {
- display: flex;
- position: relative;
- align-items: center;
- min-height: 100rpx;
- justify-content: space-between;
-}
-.cu-bar .action {
- display: flex;
- align-items: center;
- height: 100%;
- justify-content: center;
- max-width: 100%;
-}
-.cu-bar .action.border-title {
- position: relative;
- top: -10rpx;
-}
-.cu-bar .action.border-title text[class*="bg-"]:last-child {
- position: absolute;
- bottom: -0.5rem;
- min-width: 2rem;
- height: 6rpx;
- left: 0;
-}
-.cu-bar .action.sub-title {
- position: relative;
- top: -0.2rem;
-}
-.cu-bar .action.sub-title text {
- position: relative;
- z-index: 1;
-}
-.cu-bar .action.sub-title text[class*="bg-"]:last-child {
- position: absolute;
- display: inline-block;
- bottom: -0.2rem;
- border-radius: 6rpx;
- width: 100%;
- height: 0.6rem;
- left: 0.6rem;
- opacity: 0.3;
- z-index: 0;
-}
-.cu-bar .action.sub-title text[class*="text-"]:last-child {
- position: absolute;
- display: inline-block;
- bottom: -0.7rem;
- left: 0.5rem;
- opacity: 0.2;
- z-index: 0;
- text-align: right;
- font-weight: 900;
- font-size: 36rpx;
-}
-.cu-bar.justify-center .action.border-title text:last-child,
-.cu-bar.justify-center .action.sub-title text:last-child {
- left: 0;
- right: 0;
- margin: auto;
- text-align: center;
-}
-.cu-bar .action:first-child {
- margin-left: 30rpx;
- font-size: 30rpx;
-}
-.cu-bar .action text.text-cut {
- text-align: left;
- width: 100%;
-}
-.cu-bar .cu-avatar:first-child {
- margin-left: 20rpx;
-}
-.cu-bar .action:first-child>text[class*="cuIcon-"] {
- margin-left: -0.3em;
- margin-right: 0.3em;
-}
-.cu-bar .action:last-child {
- margin-right: 30rpx;
-}
-.cu-bar .action>text[class*="cuIcon-"],
-.cu-bar .action>view[class*="cuIcon-"] {
- font-size: 36rpx;
-}
-.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] {
- margin-left: 0.5em;
-}
-.cu-bar .content {
- position: absolute;
- text-align: center;
- width: calc(100% - 340rpx);
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- margin: auto;
- height: 60rpx;
- font-size: 32rpx;
- line-height: 60rpx;
- cursor: none;
- pointer-events: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-.cu-bar.ios .content {
- bottom: 7px;
- height: 30px;
- font-size: 32rpx;
- line-height: 30px;
-}
-.cu-bar.btn-group {
- justify-content: space-around;
-}
-.cu-bar.btn-group button {
- padding: 20rpx 32rpx;
-}
-.cu-bar.btn-group button {
- flex: 1;
- margin: 0 20rpx;
- max-width: 50%;
-}
-.cu-bar .search-form {
- background-color: #f5f5f5;
- line-height: 64rpx;
- height: 64rpx;
- font-size: 24rpx;
- color: #333333;
- flex: 1;
- display: flex;
- align-items: center;
- margin: 0 30rpx;
-}
-.cu-bar .search-form+.action {
- margin-right: 30rpx;
-}
-.cu-bar .search-form input {
- flex: 1;
- padding-right: 30rpx;
- height: 64rpx;
- line-height: 64rpx;
- font-size: 26rpx;
- background-color: transparent;
-}
-.cu-bar .search-form [class*="cuIcon-"] {
- margin: 0 0.5em 0 0.8em;
-}
-.cu-bar .search-form [class*="cuIcon-"]::before {
- top: 0rpx;
-}
-.cu-bar.fixed,
-.nav.fixed {
- position: fixed;
- width: 100%;
- top: 0;
- z-index: 1024;
- box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-.cu-bar.foot {
- position: fixed;
- width: 100%;
- bottom: 0;
- z-index: 1024;
- box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-.cu-bar.tabbar {
- padding: 0;
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
- padding-bottom: calc(env(safe-area-inset-bottom) / 2);
-}
-.cu-tabbar-height {
- min-height: 100rpx;
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
-}
-.cu-bar.tabbar.shadow {
- box-shadow: 0 -1rpx 6rpx rgba(0, 0, 0, 0.1);
-}
-.cu-bar.tabbar .action {
- font-size: 22rpx;
- position: relative;
- flex: 1;
- text-align: center;
- padding: 0;
- display: block;
- height: auto;
- line-height: 1;
- margin: 0;
- background-color: inherit;
- overflow: initial;
-}
-.cu-bar.tabbar.shop .action {
- width: 140rpx;
- flex: initial;
-}
-.cu-bar.tabbar .action.add-action {
- position: relative;
- z-index: 2;
- padding-top: 50rpx;
-}
-.cu-bar.tabbar .action.add-action [class*="cuIcon-"] {
- position: absolute;
- width: 70rpx;
- z-index: 2;
- height: 70rpx;
- border-radius: 50%;
- line-height: 70rpx;
- font-size: 50rpx;
- top: -35rpx;
- left: 0;
- right: 0;
- margin: auto;
- padding: 0;
-}
-.cu-bar.tabbar .action.add-action::after {
- content: "";
- position: absolute;
- width: 100rpx;
- height: 100rpx;
- top: -50rpx;
- left: 0;
- right: 0;
- margin: auto;
- box-shadow: 0 -3rpx 8rpx rgba(0, 0, 0, 0.08);
- border-radius: 50rpx;
- background-color: inherit;
- z-index: 0;
-}
-.cu-bar.tabbar .action.add-action::before {
- content: "";
- position: absolute;
- width: 100rpx;
- height: 30rpx;
- bottom: 30rpx;
- left: 0;
- right: 0;
- margin: auto;
- background-color: inherit;
- z-index: 1;
-}
-.cu-bar.tabbar .btn-group {
- flex: 1;
- display: flex;
- justify-content: space-around;
- align-items: center;
- padding: 0 10rpx;
-}
-.cu-bar.tabbar button.action::after {
- border: 0;
-}
-.cu-bar.tabbar .action [class*="cuIcon-"] {
- width: 100rpx;
- position: relative;
- display: block;
- height: auto;
- margin: 0 auto 10rpx;
- text-align: center;
- font-size: 40rpx;
-}
-.cu-bar.tabbar .action .cuIcon-cu-image {
- margin: 0 auto;
-}
-.cu-bar.tabbar .action .cuIcon-cu-image image {
- width: 50rpx;
- height: 50rpx;
- display: inline-block;
-}
-.cu-bar.tabbar .submit {
- align-items: center;
- display: flex;
- justify-content: center;
- text-align: center;
- position: relative;
- flex: 2;
- align-self: stretch;
-}
-.cu-bar.tabbar .submit:last-child {
- flex: 2.6;
-}
-.cu-bar.tabbar .submit+.submit {
- flex: 2;
-}
-.cu-bar.tabbar.border .action::before {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- transform: scale(0.5);
- transform-origin: 0 0;
- border-right: 1rpx solid rgba(0, 0, 0, 0.1);
- z-index: 3;
-}
-.cu-bar.tabbar.border .action:last-child:before {
- display: none;
-}
-.cu-bar.input {
- padding-right: 20rpx;
- background-color: #ffffff;
-}
-.cu-bar.input input {
- overflow: initial;
- line-height: 64rpx;
- height: 64rpx;
- min-height: 64rpx;
- flex: 1;
- font-size: 30rpx;
- margin: 0 20rpx;
-}
-.cu-bar.input .action {
- margin-left: 20rpx;
-}
-.cu-bar.input .action [class*="cuIcon-"] {
- font-size: 48rpx;
-}
-.cu-bar.input input+.action {
- margin-right: 20rpx;
- margin-left: 0rpx;
-}
-.cu-bar.input .action:first-child [class*="cuIcon-"] {
- margin-left: 0rpx;
-}
-.cu-custom {
- display: block;
- position: relative;
-}
-.cu-custom .cu-bar .content {
- width: calc(100% - 440rpx);
-}
-.cu-custom .cu-bar .content image {
- height: 60rpx;
- width: 240rpx;
-}
-.cu-custom .cu-bar {
- min-height: 0px;
-
- padding-right: 220rpx;
-
-
-
-
- box-shadow: 0rpx 0rpx 0rpx;
- z-index: 9999;
-}
-.cu-custom .cu-bar .border-custom {
- position: relative;
- background: rgba(0, 0, 0, 0.15);
- border-radius: 1000rpx;
- height: 30px;
-}
-.cu-custom .cu-bar .border-custom::after {
- content: " ";
- width: 200%;
- height: 200%;
- position: absolute;
- top: 0;
- left: 0;
- border-radius: inherit;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
- border: 1rpx solid #ffffff;
- opacity: 0.5;
-}
-.cu-custom .cu-bar .border-custom::before {
- content: " ";
- width: 1rpx;
- height: 110%;
- position: absolute;
- top: 22.5%;
- left: 0;
- right: 0;
- margin: auto;
- transform: scale(0.5);
- transform-origin: 0 0;
- pointer-events: none;
- box-sizing: border-box;
- opacity: 0.6;
- background-color: #ffffff;
-}
-.cu-custom .cu-bar .border-custom text {
- display: block;
- flex: 1;
- margin: auto !important;
- text-align: center;
- font-size: 34rpx;
-}
-/* ==================
- 导航栏
- ==================== */
-.nav {
- white-space: nowrap;
-}
-::-webkit-scrollbar {
- display: none;
-}
-.nav .cu-item {
- height: 90rpx;
- display: inline-block;
- line-height: 90rpx;
- margin: 0 10rpx;
- padding: 0 20rpx;
-}
-.nav .cu-item.cur {
- border-bottom: 4rpx solid;
-}
-/* ==================
- 时间轴
- ==================== */
-.cu-timeline {
- display: block;
- background-color: #ffffff;
-}
-.cu-timeline .cu-time {
- width: 120rpx;
- text-align: center;
- padding: 20rpx 0;
- font-size: 26rpx;
- color: #888;
- display: block;
-}
-.cu-timeline>.cu-item {
- padding: 30rpx 30rpx 30rpx 120rpx;
- position: relative;
- display: block;
- z-index: 0;
-}
-.cu-timeline>.cu-item:not([class*="text-"]) {
- color: #ccc;
-}
-.cu-timeline>.cu-item::after {
- content: "";
- display: block;
- position: absolute;
- width: 1rpx;
- background-color: #ddd;
- left: 60rpx;
- height: 100%;
- top: 0;
- z-index: 8;
-}
-.cu-timeline>.cu-item::before {
- font-family: "cuIcon";
- display: block;
- position: absolute;
- top: 36rpx;
- z-index: 9;
- background-color: #ffffff;
- width: 50rpx;
- height: 50rpx;
- text-align: center;
- border: none;
- line-height: 50rpx;
- left: 36rpx;
-}
-.cu-timeline>.cu-item:not([class*="cuIcon-"])::before {
- content: "\e763";
-}
-.cu-timeline>.cu-item[class*="cuIcon-"]::before {
- background-color: #ffffff;
- width: 50rpx;
- height: 50rpx;
- text-align: center;
- border: none;
- line-height: 50rpx;
- left: 36rpx;
-}
-.cu-timeline>.cu-item>.content {
- padding: 30rpx;
- border-radius: 6rpx;
- display: block;
- line-height: 1.6;
-}
-.cu-timeline>.cu-item>.content:not([class*="bg-"]) {
- background-color: #f1f1f1;
- color: #333333;
-}
-.cu-timeline>.cu-item>.content+.content {
- margin-top: 20rpx;
-}
-/* ==================
- 聊天
- ==================== */
-.cu-chat {
- display: flex;
- flex-direction: column;
-}
-.cu-chat .cu-item {
- display: flex;
- padding: 30rpx 30rpx 70rpx;
- position: relative;
-}
-.cu-chat .cu-item>.cu-avatar {
- width: 80rpx;
- height: 80rpx;
-}
-.cu-chat .cu-item>.main {
- max-width: calc(100% - 260rpx);
- margin: 0 40rpx;
- display: flex;
- align-items: center;
-}
-.cu-chat .cu-item>image {
- height: 320rpx;
-}
-.cu-chat .cu-item>.main .content {
- padding: 20rpx;
- border-radius: 6rpx;
- display: inline-flex;
- max-width: 100%;
- align-items: center;
- font-size: 30rpx;
- position: relative;
- min-height: 80rpx;
- line-height: 40rpx;
- text-align: left;
-}
-.cu-chat .cu-item>.main .content:not([class*="bg-"]) {
- background-color: #ffffff;
- color: #333333;
-}
-.cu-chat .cu-item .date {
- position: absolute;
- font-size: 24rpx;
- color: #8799a3;
- width: calc(100% - 320rpx);
- bottom: 20rpx;
- left: 160rpx;
-}
-.cu-chat .cu-item .action {
- padding: 0 30rpx;
- display: flex;
- align-items: center;
-}
-.cu-chat .cu-item>.main .content::after {
- content: "";
- top: 27rpx;
- transform: rotate(45deg);
- position: absolute;
- z-index: 100;
- display: inline-block;
- overflow: hidden;
- width: 24rpx;
- height: 24rpx;
- left: -12rpx;
- right: initial;
- background-color: inherit;
-}
-.cu-chat .cu-item.self>.main .content::after {
- left: auto;
- right: -12rpx;
-}
-.cu-chat .cu-item>.main .content::before {
- content: "";
- top: 30rpx;
- transform: rotate(45deg);
- position: absolute;
- z-index: -1;
- display: inline-block;
- overflow: hidden;
- width: 24rpx;
- height: 24rpx;
- left: -12rpx;
- right: initial;
- background-color: inherit;
- filter: blur(5rpx);
- opacity: 0.3;
-}
-.cu-chat .cu-item>.main .content:not([class*="bg-"])::before {
- background-color: #333333;
- opacity: 0.1;
-}
-.cu-chat .cu-item.self>.main .content::before {
- left: auto;
- right: -12rpx;
-}
-.cu-chat .cu-item.self {
- justify-content: flex-end;
- text-align: right;
-}
-.cu-chat .cu-info {
- display: inline-block;
- margin: 20rpx auto;
- font-size: 24rpx;
- padding: 8rpx 12rpx;
- background-color: rgba(0, 0, 0, 0.2);
- border-radius: 6rpx;
- color: #ffffff;
- max-width: 400rpx;
- line-height: 1.4;
-}
-/* ==================
- 卡片
- ==================== */
-.cu-card {
- display: block;
- overflow: hidden;
-}
-.cu-card>.cu-item {
- display: block;
- background-color: #ffffff;
- overflow: hidden;
- border-radius: 10rpx;
- margin: 30rpx;
-}
-.cu-card>.cu-item.shadow-blur {
- overflow: initial;
-}
-.cu-card.no-card>.cu-item {
- margin: 0rpx;
- border-radius: 0rpx;
-}
-.cu-card .grid.grid-square {
- margin-bottom: -20rpx;
-}
-.cu-card.case .image {
- position: relative;
-}
-.cu-card.case .image image {
- width: 100%;
-}
-.cu-card.case .image .cu-tag {
- position: absolute;
- right: 0;
- top: 0;
-}
-.cu-card.case .image .cu-bar {
- position: absolute;
- bottom: 0;
- width: 100%;
- background-color: transparent;
- padding: 0rpx 30rpx;
-}
-.cu-card.case.no-card .image {
- margin: 30rpx 30rpx 0;
- overflow: hidden;
- border-radius: 10rpx;
-}
-.cu-card.dynamic {
- display: block;
-}
-.cu-card.dynamic>.cu-item {
- display: block;
- background-color: #ffffff;
- overflow: hidden;
-}
-.cu-card.dynamic>.cu-item>.text-content {
- padding: 0 30rpx 0;
- max-height: 6.4em;
- overflow: hidden;
- font-size: 30rpx;
- margin-bottom: 20rpx;
-}
-.cu-card.dynamic>.cu-item .square-img {
- width: 100%;
- height: 200rpx;
- border-radius: 6rpx;
-}
-.cu-card.dynamic>.cu-item .only-img {
- width: 100%;
- height: 320rpx;
- border-radius: 6rpx;
-}
-/* card.dynamic>.cu-item .comment {
- padding: 20upx;
- background-color: #f1f1f1;
- margin: 0 30upx 30upx;
- border-radius: 6upx;
-} */
-.cu-card.article {
- display: block;
-}
-.cu-card.article>.cu-item {
- padding-bottom: 30rpx;
-}
-.cu-card.article>.cu-item .title {
- font-size: 30rpx;
- font-weight: 900;
- color: #333333;
- line-height: 100rpx;
- padding: 0 30rpx;
-}
-.cu-card.article>.cu-item .content {
- display: flex;
- padding: 0 30rpx;
-}
-.cu-card.article>.cu-item .content>image {
- width: 240rpx;
- height: 6.4em;
- margin-right: 20rpx;
- border-radius: 6rpx;
-}
-.cu-card.article>.cu-item .content .desc {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
-}
-.cu-card.article>.cu-item .content .text-content {
- font-size: 28rpx;
- color: #888;
- height: 4.8em;
- overflow: hidden;
-}
-/* ==================
- 表单
- ==================== */
-.cu-form-group {
- background-color: #ffffff;
- padding: 1rpx 30rpx;
- display: flex;
- align-items: center;
- min-height: 100rpx;
- justify-content: space-between;
-}
-.cu-form-group+.cu-form-group {
- border-top: 1rpx solid #eee;
-}
-.cu-form-group .title {
- text-align: justify;
- padding-right: 30rpx;
- font-size: 30rpx;
- position: relative;
- height: 60rpx;
- line-height: 60rpx;
-}
-.cu-form-group input {
- flex: 1;
- font-size: 30rpx;
- color: #555;
- padding-right: 20rpx;
-}
-.cu-form-group>text[class*="cuIcon-"] {
- font-size: 36rpx;
- padding: 0;
- box-sizing: border-box;
-}
-.cu-form-group textarea {
- margin: 32rpx 0 30rpx;
- height: 4.6em;
- width: 100%;
- line-height: 1.2em;
- flex: 1;
- font-size: 28rpx;
- padding: 0;
-}
-.cu-form-group.align-start .title {
- height: 1em;
- margin-top: 32rpx;
- line-height: 1em;
-}
-.cu-form-group picker {
- flex: 1;
- padding-right: 40rpx;
- overflow: hidden;
- position: relative;
-}
-.cu-form-group picker .picker {
- line-height: 100rpx;
- font-size: 28rpx;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- width: 100%;
- text-align: right;
-}
-.cu-form-group picker::after {
- font-family: cuIcon;
- display: block;
- content: "\e6a3";
- position: absolute;
- font-size: 34rpx;
- color: #8799a3;
- line-height: 100rpx;
- width: 60rpx;
- text-align: center;
- top: 0;
- bottom: 0;
- right: -20rpx;
- margin: auto;
-}
-.cu-form-group textarea[disabled],
-.cu-form-group textarea[disabled] .placeholder {
- color: transparent;
-}
-/* ==================
- 模态窗口
- ==================== */
-.cu-modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1110;
- opacity: 0;
- outline: 0;
- text-align: center;
- transform: scale(1.185);
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- perspective: 2000rpx;
- background: rgba(0, 0, 0, 0.6);
- transition: all 0.3s ease-in-out 0s;
- pointer-events: none;
-}
-.cu-modal::before {
- content: "\200B";
- display: inline-block;
- height: 100%;
- vertical-align: middle;
-}
-.cu-modal.show {
- opacity: 1;
- transition-duration: 0.3s;
- transform: scale(1);
- overflow-x: hidden;
- overflow-y: auto;
- pointer-events: auto;
-}
-.cu-dialog {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- margin-left: auto;
- margin-right: auto;
- width: 680rpx;
- max-width: 100%;
- background-color: #f8f8f8;
- border-radius: 10rpx;
- overflow: hidden;
-}
-.cu-modal.bottom-modal::before {
- vertical-align: bottom;
-}
-.cu-modal.bottom-modal .cu-dialog {
- width: 100%;
- border-radius: 0;
-}
-.cu-modal.bottom-modal {
- margin-bottom: -1000rpx;
-}
-.cu-modal.bottom-modal.show {
- margin-bottom: 0;
-}
-.cu-modal.drawer-modal {
- transform: scale(1);
- display: flex;
-}
-.cu-modal.drawer-modal .cu-dialog {
- height: 100%;
- min-width: 200rpx;
- border-radius: 0;
- margin: initial;
- transition-duration: 0.3s;
-}
-.cu-modal.drawer-modal.justify-start .cu-dialog {
- transform: translateX(-100%);
-}
-.cu-modal.drawer-modal.justify-end .cu-dialog {
- transform: translateX(100%);
-}
-.cu-modal.drawer-modal.show .cu-dialog {
- transform: translateX(0%);
-}
-.cu-modal .cu-dialog>.cu-bar:first-child .action{
- min-width: 100rpx;
- margin-right: 0;
- min-height: 100rpx;
-}
-/* ==================
- 轮播
- ==================== */
-swiper .a-swiper-dot {
- display: inline-block;
- width: 16rpx;
- height: 16rpx;
- background: rgba(0, 0, 0, .3);
- border-radius: 50%;
- vertical-align: middle;
-}
-swiper[class*="-dot"] .wx-swiper-dots,
-swiper[class*="-dot"] .a-swiper-dots,
-swiper[class*="-dot"] .uni-swiper-dots {
- display: flex;
- align-items: center;
- width: 100%;
- justify-content: center;
-}
-swiper.square-dot .wx-swiper-dot,
-swiper.square-dot .a-swiper-dot,
-swiper.square-dot .uni-swiper-dot {
- background-color: #ffffff;
- opacity: 0.4;
- width: 10rpx;
- height: 10rpx;
- border-radius: 20rpx;
- margin: 0 8rpx !important;
-}
-swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active,
-swiper.square-dot .a-swiper-dot.a-swiper-dot-active,
-swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active {
- opacity: 1;
- width: 30rpx;
-}
-swiper.round-dot .wx-swiper-dot,
-swiper.round-dot .a-swiper-dot,
-swiper.round-dot .uni-swiper-dot {
- width: 10rpx;
- height: 10rpx;
- position: relative;
- margin: 4rpx 8rpx !important;
-}
-swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after,
-swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after,
-swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after {
- content: "";
- position: absolute;
- width: 10rpx;
- height: 10rpx;
- top: 0rpx;
- left: 0rpx;
- right: 0;
- bottom: 0;
- margin: auto;
- background-color: #ffffff;
- border-radius: 20rpx;
-}
-swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active,
-swiper.round-dot .a-swiper-dot.a-swiper-dot-active,
-swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active {
- width: 18rpx;
- height: 18rpx;
-}
-.screen-swiper {
- min-height: 375rpx;
-}
-.screen-swiper image,
-.screen-swiper video,
-.swiper-item image,
-.swiper-item video {
- width: 100%;
- display: block;
- height: 100%;
- margin: 0;
- pointer-events: none;
-}
-.card-swiper {
- height: 420rpx !important;
-}
-.card-swiper swiper-item {
- width: 610rpx !important;
- left: 70rpx;
- box-sizing: border-box;
- padding: 40rpx 0rpx 70rpx;
- overflow: initial;
-}
-.card-swiper swiper-item .swiper-item {
- width: 100%;
- display: block;
- height: 100%;
- border-radius: 10rpx;
- transform: scale(0.9);
- transition: all 0.2s ease-in 0s;
- overflow: hidden;
-}
-.card-swiper swiper-item.cur .swiper-item {
- transform: none;
- transition: all 0.2s ease-in 0s;
-}
-.tower-swiper {
- height: 420rpx;
- position: relative;
- max-width: 750rpx;
- overflow: hidden;
-}
-.tower-swiper .tower-item {
- position: absolute;
- width: 300rpx;
- height: 380rpx;
- top: 0;
- bottom: 0;
- left: 50%;
- margin: auto;
- transition: all 0.2s ease-in 0s;
- opacity: 1;
-}
-.tower-swiper .tower-item.none {
- opacity: 0;
-}
-.tower-swiper .tower-item .swiper-item {
- width: 100%;
- height: 100%;
- border-radius: 6rpx;
- overflow: hidden;
-}
-/* ==================
- 步骤条
- ==================== */
-.cu-steps {
- display: flex;
-}
-scroll-view.cu-steps {
- display: block;
- white-space: nowrap;
-}
-scroll-view.cu-steps .cu-item {
- display: inline-block;
-}
-.cu-steps .cu-item {
- flex: 1;
- text-align: center;
- position: relative;
- min-width: 100rpx;
-}
-.cu-steps .cu-item:not([class*="text-"]) {
- color: #8799a3;
-}
-.cu-steps .cu-item [class*="cuIcon-"],
-.cu-steps .cu-item .num {
- display: block;
- font-size: 40rpx;
- line-height: 80rpx;
-}
-.cu-steps .cu-item::before,
-.cu-steps .cu-item::after,
-.cu-steps.steps-arrow .cu-item::before,
-.cu-steps.steps-arrow .cu-item::after {
- content: "";
- display: block;
- position: absolute;
- height: 0px;
- width: calc(100% - 80rpx);
- border-bottom: 1px solid #ccc;
- left: calc(0px - (100% - 80rpx) / 2);
- top: 40rpx;
- z-index: 0;
-}
-.cu-steps.steps-arrow .cu-item::before,
-.cu-steps.steps-arrow .cu-item::after {
- content: "\e6a3";
- font-family: 'cuIcon';
- height: 30rpx;
- border-bottom-width: 0px;
- line-height: 30rpx;
- top: 0;
- bottom: 0;
- margin: auto;
- color: #ccc;
-}
-.cu-steps.steps-bottom .cu-item::before,
-.cu-steps.steps-bottom .cu-item::after {
- bottom: 40rpx;
- top: initial;
-}
-.cu-steps .cu-item::after {
- border-bottom: 1px solid currentColor;
- width: 0px;
- transition: all 0.3s ease-in-out 0s;
-}
-.cu-steps .cu-item[class*="text-"]::after {
- width: calc(100% - 80rpx);
- color: currentColor;
-}
-.cu-steps .cu-item:first-child::before,
-.cu-steps .cu-item:first-child::after {
- display: none;
-}
-.cu-steps .cu-item .num {
- width: 40rpx;
- height: 40rpx;
- border-radius: 50%;
- line-height: 40rpx;
- margin: 20rpx auto;
- font-size: 24rpx;
- border: 1px solid currentColor;
- position: relative;
- overflow: hidden;
-}
-.cu-steps .cu-item[class*="text-"] .num {
- background-color: currentColor;
-}
-.cu-steps .cu-item .num::before,
-.cu-steps .cu-item .num::after {
- content: attr(data-index);
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- margin: auto;
- transition: all 0.3s ease-in-out 0s;
- transform: translateY(0rpx);
-}
-.cu-steps .cu-item[class*="text-"] .num::before {
- transform: translateY(-40rpx);
- color: #ffffff;
-}
-.cu-steps .cu-item .num::after {
- transform: translateY(40rpx);
- color: #ffffff;
- transition: all 0.3s ease-in-out 0s;
-}
-.cu-steps .cu-item[class*="text-"] .num::after {
- content: "\e645";
- font-family: 'cuIcon';
- color: #ffffff;
- transform: translateY(0rpx);
-}
-.cu-steps .cu-item[class*="text-"] .num.err::after {
- content: "\e646";
-}
-/* ==================
- 布局
- ==================== */
-/* -- flex弹性布局 -- */
-.flex {
- display: flex;
-}
-.basis-xs {
- flex-basis: 20%;
-}
-.basis-sm {
- flex-basis: 40%;
-}
-.basis-df {
- flex-basis: 50%;
-}
-.basis-lg {
- flex-basis: 60%;
-}
-.basis-xl {
- flex-basis: 80%;
-}
-.flex-sub {
- flex: 1;
-}
-.flex-twice {
- flex: 2;
-}
-.flex-treble {
- flex: 3;
-}
-.flex-direction {
- flex-direction: column;
-}
-.flex-wrap {
- flex-wrap: wrap;
-}
-.align-start {
- align-items: flex-start;
-}
-.align-end {
- align-items: flex-end;
-}
-.align-center {
- align-items: center;
-}
-.align-stretch {
- align-items: stretch;
-}
-.self-start {
- align-self: flex-start;
-}
-.self-center {
- align-self: flex-center;
-}
-.self-end {
- align-self: flex-end;
-}
-.self-stretch {
- align-self: stretch;
-}
-.align-stretch {
- align-items: stretch;
-}
-.justify-start {
- justify-content: flex-start;
-}
-.justify-end {
- justify-content: flex-end;
-}
-.justify-center {
- justify-content: center;
-}
-.justify-between {
- justify-content: space-between;
-}
-.justify-around {
- justify-content: space-around;
-}
-/* grid布局 */
-.grid {
- display: flex;
- flex-wrap: wrap;
-}
-.grid.grid-square {
- overflow: hidden;
-}
-.grid.grid-square .cu-tag {
- position: absolute;
- right: 0;
- top: 0;
- border-bottom-left-radius: 6rpx;
- padding: 6rpx 12rpx;
- height: auto;
- background-color: rgba(0, 0, 0, 0.5);
-}
-.grid.grid-square>view>text[class*="cuIcon-"] {
- font-size: 52rpx;
- position: absolute;
- color: #8799a3;
- margin: auto;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-.grid.grid-square>view {
- margin-right: 20rpx;
- margin-bottom: 20rpx;
- border-radius: 6rpx;
- position: relative;
- overflow: hidden;
-}
-.grid.grid-square>view.bg-img image {
- width: 100%;
- height: 100%;
- position: absolute;
-}
-.grid.col-1.grid-square>view {
- padding-bottom: 100%;
- height: 0;
- margin-right: 0;
-}
-.grid.col-2.grid-square>view {
- padding-bottom: calc((100% - 20rpx)/2);
- height: 0;
- width: calc((100% - 20rpx)/2);
-}
-.grid.col-3.grid-square>view {
- padding-bottom: calc((100% - 40rpx)/3);
- height: 0;
- width: calc((100% - 40rpx)/3);
-}
-.grid.col-4.grid-square>view {
- padding-bottom: calc((100% - 60rpx)/4);
- height: 0;
- width: calc((100% - 60rpx)/4);
-}
-.grid.col-5.grid-square>view {
- padding-bottom: calc((100% - 80rpx)/5);
- height: 0;
- width: calc((100% - 80rpx)/5);
-}
-.grid.col-2.grid-square>view:nth-child(2n),
-.grid.col-3.grid-square>view:nth-child(3n),
-.grid.col-4.grid-square>view:nth-child(4n),
-.grid.col-5.grid-square>view:nth-child(5n) {
- margin-right: 0;
-}
-.grid.col-1>view {
- width: 100%;
-}
-.grid.col-2>view {
- width: 50%;
-}
-.grid.col-3>view {
- width: 33.33%;
-}
-.grid.col-4>view {
- width: 25%;
-}
-.grid.col-5>view {
- width: 20%;
-}
-/* -- 内外边距 -- */
-.margin-0 {
- margin: 0;
-}
-.margin-xs {
- margin: 10rpx;
-}
-.margin-sm {
- margin: 20rpx;
-}
-.margin {
- margin: 30rpx;
-}
-.margin-lg {
- margin: 40rpx;
-}
-.margin-xl {
- margin: 50rpx;
-}
-.margin-top-xs {
- margin-top: 10rpx;
-}
-.margin-top-sm {
- margin-top: 20rpx;
-}
-.margin-top {
- margin-top: 30rpx;
-}
-.margin-top-lg {
- margin-top: 40rpx;
-}
-.margin-top-xl {
- margin-top: 50rpx;
-}
-.margin-right-xs {
- margin-right: 10rpx;
-}
-.margin-right-sm {
- margin-right: 20rpx;
-}
-.margin-right {
- margin-right: 30rpx;
-}
-.margin-right-lg {
- margin-right: 40rpx;
-}
-.margin-right-xl {
- margin-right: 50rpx;
-}
-.margin-bottom-xs {
- margin-bottom: 10rpx;
-}
-.margin-bottom-sm {
- margin-bottom: 20rpx;
-}
-.margin-bottom {
- margin-bottom: 30rpx;
-}
-.margin-bottom-lg {
- margin-bottom: 40rpx;
-}
-.margin-bottom-xl {
- margin-bottom: 50rpx;
-}
-.margin-left-xs {
- margin-left: 10rpx;
-}
-.margin-left-sm {
- margin-left: 20rpx;
-}
-.margin-left {
- margin-left: 30rpx;
-}
-.margin-left-lg {
- margin-left: 40rpx;
-}
-.margin-left-xl {
- margin-left: 50rpx;
-}
-.margin-lr-xs {
- margin-left: 10rpx;
- margin-right: 10rpx;
-}
-.margin-lr-xss {
- margin-left: 4rpx;
- margin-right: 4rpx;
-}
-.margin-lr-sm {
- margin-left: 20rpx;
- margin-right: 20rpx;
-}
-.margin-lr {
- margin-left: 30rpx;
- margin-right: 30rpx;
-}
-.margin-lr-lg {
- margin-left: 40rpx;
- margin-right: 40rpx;
-}
-.margin-lr-xl {
- margin-left: 50rpx;
- margin-right: 50rpx;
-}
-.margin-tb-xs {
- margin-top: 10rpx;
- margin-bottom: 10rpx;
-}
-.margin-tb-sm {
- margin-top: 20rpx;
- margin-bottom: 20rpx;
-}
-.margin-tb {
- margin-top: 30rpx;
- margin-bottom: 30rpx;
-}
-.margin-tb-lg {
- margin-top: 40rpx;
- margin-bottom: 40rpx;
-}
-.margin-tb-xl {
- margin-top: 50rpx;
- margin-bottom: 50rpx;
-}
-.padding-0 {
- padding: 0;
-}
-.padding-xs {
- padding: 10rpx;
-}
-.padding-sm {
- padding: 20rpx;
-}
-.padding {
- padding: 30rpx;
-}
-.padding-lg {
- padding: 40rpx;
-}
-.padding-xl {
- padding: 50rpx;
-}
-.padding-top-xs {
- padding-top: 10rpx;
-}
-.padding-top-sm {
- padding-top: 20rpx;
-}
-.padding-top {
- padding-top: 30rpx;
-}
-.padding-top-lg {
- padding-top: 40rpx;
-}
-.padding-top-xl {
- padding-top: 50rpx;
-}
-.padding-right-xs {
- padding-right: 10rpx;
-}
-.padding-right-sm {
- padding-right: 20rpx;
-}
-.padding-right {
- padding-right: 30rpx;
-}
-.padding-right-lg {
- padding-right: 40rpx;
-}
-.padding-right-xl {
- padding-right: 50rpx;
-}
-.padding-bottom-xs {
- padding-bottom: 10rpx;
-}
-.padding-bottom-sm {
- padding-bottom: 20rpx;
-}
-.padding-bottom {
- padding-bottom: 30rpx;
-}
-.padding-bottom-lg {
- padding-bottom: 40rpx;
-}
-.padding-bottom-xl {
- padding-bottom: 50rpx;
-}
-.padding-left-xs {
- padding-left: 10rpx;
-}
-.padding-left-sm {
- padding-left: 20rpx;
-}
-.padding-left {
- padding-left: 30rpx;
-}
-.padding-left-lg {
- padding-left: 40rpx;
-}
-.padding-left-xl {
- padding-left: 50rpx;
-}
-.padding-lr-xs {
- padding-left: 10rpx;
- padding-right: 10rpx;
-}
-.padding-lr-sm {
- padding-left: 20rpx;
- padding-right: 20rpx;
-}
-.padding-lr {
- padding-left: 30rpx;
- padding-right: 30rpx;
-}
-.padding-lr-lg {
- padding-left: 40rpx;
- padding-right: 40rpx;
-}
-.padding-lr-xl {
- padding-left: 50rpx;
- padding-right: 50rpx;
-}
-.padding-tb-xs {
- padding-top: 10rpx;
- padding-bottom: 10rpx;
-}
-.padding-tb-sm {
- padding-top: 20rpx;
- padding-bottom: 20rpx;
-}
-.padding-tb {
- padding-top: 30rpx;
- padding-bottom: 30rpx;
-}
-.padding-tb-lg {
- padding-top: 40rpx;
- padding-bottom: 40rpx;
-}
-.padding-tb-xl {
- padding-top: 50rpx;
- padding-bottom: 50rpx;
-}
-/* -- 浮动 -- */
-.cf::after,
-.cf::before {
- content: " ";
- display: table;
-}
-.cf::after {
- clear: both;
-}
-.fl {
- float: left;
-}
-.fr {
- float: right;
-}
-/* ==================
- 背景
- ==================== */
-.line-red::after,
-.lines-red::after {
- border-color: #e54d42;
-}
-.line-orange::after,
-.lines-orange::after {
- border-color: #f37b1d;
-}
-.line-yellow::after,
-.lines-yellow::after {
- border-color: #fbbd08;
-}
-.line-olive::after,
-.lines-olive::after {
- border-color: #8dc63f;
-}
-.line-green::after,
-.lines-green::after {
- border-color: #39b54a;
-}
-.line-cyan::after,
-.lines-cyan::after {
- border-color: #1cbbb4;
-}
-.line-blue::after,
-.lines-blue::after {
- border-color: #2F89E3;
-}
-.line-purple::after,
-.lines-purple::after {
- border-color: #6739b6;
-}
-.line-mauve::after,
-.lines-mauve::after {
- border-color: #9c26b0;
-}
-.line-pink::after,
-.lines-pink::after {
- border-color: #e03997;
-}
-.line-brown::after,
-.lines-brown::after {
- border-color: #a5673f;
-}
-.line-grey::after,
-.lines-grey::after {
- border-color: #8799a3;
-}
-.line-gray::after,
-.lines-gray::after {
- border-color: #aaaaaa;
-}
-.line-black::after,
-.lines-black::after {
- border-color: #333333;
-}
-.line-white::after,
-.lines-white::after {
- border-color: #ffffff;
-}
-.bg-red {
- background-color: #e54d42;
- color: #ffffff;
-}
-.bg-orange {
- background-color: #f37b1d;
- color: #ffffff;
-}
-.bg-yellow {
- background-color: #fbbd08;
- color: #333333;
-}
-.bg-olive {
- background-color: #8dc63f;
- color: #ffffff;
-}
-.bg-green {
- background-color: #39b54a;
- color: #ffffff;
-}
-.bg-cyan {
- background-color: #1cbbb4;
- color: #ffffff;
-}
-.bg-blue {
- background-color: #2F89E3;
- color: #ffffff;
-}
-.bg-purple {
- background-color: #6739b6;
- color: #ffffff;
-}
-.bg-mauve {
- background-color: #9c26b0;
- color: #ffffff;
-}
-.bg-pink {
- background-color: #e03997;
- color: #ffffff;
-}
-.bg-brown {
- background-color: #a5673f;
- color: #ffffff;
-}
-.bg-grey {
- background-color: #8799a3;
- color: #ffffff;
-}
-.bg-gray {
- background-color: #f0f0f0;
- color: #333333;
-}
-.bg-black {
- background-color: #333333;
- color: #ffffff;
-}
-.bg-white {
- background-color: #ffffff;
- color: #666666;
-}
-.bg-shadeTop {
- background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01));
- color: #ffffff;
-}
-.bg-shadeBottom {
- background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1));
- color: #ffffff;
-}
-.bg-red.light {
- color: #e54d42;
- background-color: #fadbd9;
-}
-.bg-orange.light {
- color: #f37b1d;
- background-color: #fde6d2;
-}
-.bg-yellow.light {
- color: #fbbd08;
- background-color: #fef2ced2;
-}
-.bg-olive.light {
- color: #8dc63f;
- background-color: #e8f4d9;
-}
-.bg-green.light {
- color: #39b54a;
- background-color: #d7f0dbff;
-}
-.bg-cyan.light {
- color: #1cbbb4;
- background-color: #d2f1f0;
-}
-.bg-blue.light {
- color: #2F89E3;
- background-color: #E4F4FF;
-}
-.bg-purple.light {
- color: #6739b6;
- background-color: #e1d7f0;
-}
-.bg-mauve.light {
- color: #9c26b0;
- background-color: #ebd4ef;
-}
-.bg-pink.light {
- color: #e03997;
- background-color: #f9d7ea;
-}
-.bg-brown.light {
- color: #a5673f;
- background-color: #ede1d9;
-}
-.bg-grey.light {
- color: #8799a3;
- background-color: #e7ebed;
-}
-.bg-gradual-red {
- background-image: linear-gradient(45deg, #f43f3b, #ec008c);
- color: #ffffff;
-}
-.bg-gradual-orange {
- background-image: linear-gradient(45deg, #ff9700, #ed1c24);
- color: #ffffff;
-}
-.bg-gradual-green {
- background-image: linear-gradient(45deg, #39b54a, #8dc63f);
- color: #ffffff;
-}
-.bg-gradual-purple {
- background-image: linear-gradient(45deg, #9000ff, #5e00ff);
- color: #ffffff;
-}
-.bg-gradual-pink {
- background-image: linear-gradient(45deg, #ec008c, #6739b6);
- color: #ffffff;
-}
-.bg-gradual-blue {
- background-image: linear-gradient(45deg, #2F89E3, #1cbbb4);
- color: #ffffff;
-}
-.shadow[class*="-red"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(204, 69, 59, 0.2);
-}
-.shadow[class*="-orange"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(217, 109, 26, 0.2);
-}
-.shadow[class*="-yellow"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(224, 170, 7, 0.2);
-}
-.shadow[class*="-olive"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(124, 173, 55, 0.2);
-}
-.shadow[class*="-green"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(48, 156, 63, 0.2);
-}
-.shadow[class*="-cyan"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(28, 187, 180, 0.2);
-}
-.shadow[class*="-blue"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(0, 102, 204, 0.2);
-}
-.shadow[class*="-purple"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(88, 48, 156, 0.2);
-}
-.shadow[class*="-mauve"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(133, 33, 150, 0.2);
-}
-.shadow[class*="-pink"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(199, 50, 134, 0.2);
-}
-.shadow[class*="-brown"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(140, 88, 53, 0.2);
-}
-.shadow[class*="-grey"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2);
-}
-.shadow[class*="-gray"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2);
-}
-.shadow[class*="-black"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(26, 26, 26, 0.2);
-}
-.shadow[class*="-white"] {
- box-shadow: 6rpx 6rpx 8rpx rgba(26, 26, 26, 0.2);
-}
-.text-shadow[class*="-red"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(204, 69, 59, 0.2);
-}
-.text-shadow[class*="-orange"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(217, 109, 26, 0.2);
-}
-.text-shadow[class*="-yellow"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(224, 170, 7, 0.2);
-}
-.text-shadow[class*="-olive"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(124, 173, 55, 0.2);
-}
-.text-shadow[class*="-green"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(48, 156, 63, 0.2);
-}
-.text-shadow[class*="-cyan"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(28, 187, 180, 0.2);
-}
-.text-shadow[class*="-blue"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(0, 102, 204, 0.2);
-}
-.text-shadow[class*="-purple"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(88, 48, 156, 0.2);
-}
-.text-shadow[class*="-mauve"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(133, 33, 150, 0.2);
-}
-.text-shadow[class*="-pink"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(199, 50, 134, 0.2);
-}
-.text-shadow[class*="-brown"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(140, 88, 53, 0.2);
-}
-.text-shadow[class*="-grey"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2);
-}
-.text-shadow[class*="-gray"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(114, 130, 138, 0.2);
-}
-.text-shadow[class*="-black"] {
- text-shadow: 6rpx 6rpx 8rpx rgba(26, 26, 26, 0.2);
-}
-.bg-img {
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
-}
-.bg-mask {
- background-color: #333333;
- position: relative;
-}
-.bg-mask::after {
- content: "";
- border-radius: inherit;
- width: 100%;
- height: 100%;
- display: block;
- background-color: rgba(0, 0, 0, 0.4);
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
-}
-.bg-mask view,
-.bg-mask cover-view {
- z-index: 5;
- position: relative;
-}
-.bg-video {
- position: relative;
-}
-.bg-video video {
- display: block;
- height: 100%;
- width: 100%;
- object-fit: cover;
- position: absolute;
- top: 0;
- z-index: 0;
- pointer-events: none;
-}
-/* ==================
- 文本
- ==================== */
-.text-xs {
- font-size: 20rpx;
-}
-.text-sm {
- font-size: 24rpx;
-}
-.text-df {
- font-size: 28rpx;
-}
-.text-lg {
- font-size: 32rpx;
-}
-.text-xl {
- font-size: 36rpx;
-}
-.text-xxl {
- font-size: 44rpx;
-}
-.text-sl {
- font-size: 80rpx;
-}
-.text-xsl {
- font-size: 120rpx;
-}
-.text-Abc {
- text-transform: Capitalize;
-}
-.text-ABC {
- text-transform: Uppercase;
-}
-.text-abc {
- text-transform: Lowercase;
-}
-.text-price::before {
- content: "¥";
- font-size: 80%;
- margin-right: 4rpx;
-}
-.text-cut {
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-}
-.text-bold {
- font-weight: bold;
-}
-.text-center {
- text-align: center;
-}
-.text-content {
- line-height: 1.6;
-}
-.text-left {
- text-align: left;
-}
-.text-right {
- text-align: right;
-}
-.text-red,
-.line-red,
-.lines-red {
- color: #e54d42;
-}
-.text-orange,
-.line-orange,
-.lines-orange {
- color: #f37b1d;
-}
-.text-yellow,
-.line-yellow,
-.lines-yellow {
- color: #fbbd08;
-}
-.text-olive,
-.line-olive,
-.lines-olive {
- color: #8dc63f;
-}
-.text-green,
-.line-green,
-.lines-green {
- color: #39b54a;
-}
-.text-cyan,
-.line-cyan,
-.lines-cyan {
- color: #1cbbb4;
-}
-.text-blue,
-.line-blue,
-.lines-blue {
- color: #2F89E3;
-}
-.text-purple,
-.line-purple,
-.lines-purple {
- color: #6739b6;
-}
-.text-mauve,
-.line-mauve,
-.lines-mauve {
- color: #9c26b0;
-}
-.text-pink,
-.line-pink,
-.lines-pink {
- color: #e03997;
-}
-.text-brown,
-.line-brown,
-.lines-brown {
- color: #a5673f;
-}
-.text-grey,
-.line-grey,
-.lines-grey {
- color: #8799a3;
-}
-.text-gray,
-.line-gray,
-.lines-gray {
- color: #aaaaaa;
-}
-.text-black,
-.line-black,
-.lines-black {
- color: #333333;
-}
-.text-white,
-.line-white,
-.lines-white {
- color: #ffffff;
-}
-@keyframes cuIcon-spin {
-0% {
- transform: rotate(0);
-}
-100% {
- transform: rotate(359deg);
-}
-}
-.cuIconfont-spin {
- animation: cuIcon-spin 2s infinite linear;
- display: inline-block;
-}
-.cuIconfont-pulse {
- animation: cuIcon-spin 1s infinite steps(8);
- display: inline-block;
-}
-[class*="cuIcon-"] {
- font-family: "cuIcon";
- font-size: inherit;
- font-style: normal;
-}
-@font-face {
- font-family: "cuIcon";
- src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831');
- /* IE9*/
- src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'),
- /* IE6-IE8 */
- url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),
- url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'),
- /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
- url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#cuIconfont') format('svg');
- /* iOS 4.1- */
-}
-.cuIcon-appreciate:before {
- content: "\e644";
-}
-.cuIcon-check:before {
- content: "\e645";
-}
-.cuIcon-close:before {
- content: "\e646";
-}
-.cuIcon-edit:before {
- content: "\e649";
-}
-.cuIcon-emoji:before {
- content: "\e64a";
-}
-.cuIcon-favorfill:before {
- content: "\e64b";
-}
-.cuIcon-favor:before {
- content: "\e64c";
-}
-.cuIcon-loading:before {
- content: "\e64f";
-}
-.cuIcon-locationfill:before {
- content: "\e650";
-}
-.cuIcon-location:before {
- content: "\e651";
-}
-.cuIcon-phone:before {
- content: "\e652";
-}
-.cuIcon-roundcheckfill:before {
- content: "\e656";
-}
-.cuIcon-roundcheck:before {
- content: "\e657";
-}
-.cuIcon-roundclosefill:before {
- content: "\e658";
-}
-.cuIcon-roundclose:before {
- content: "\e659";
-}
-.cuIcon-roundrightfill:before {
- content: "\e65a";
-}
-.cuIcon-roundright:before {
- content: "\e65b";
-}
-.cuIcon-search:before {
- content: "\e65c";
-}
-.cuIcon-taxi:before {
- content: "\e65d";
-}
-.cuIcon-timefill:before {
- content: "\e65e";
-}
-.cuIcon-time:before {
- content: "\e65f";
-}
-.cuIcon-unfold:before {
- content: "\e661";
-}
-.cuIcon-warnfill:before {
- content: "\e662";
-}
-.cuIcon-warn:before {
- content: "\e663";
-}
-.cuIcon-camerafill:before {
- content: "\e664";
-}
-.cuIcon-camera:before {
- content: "\e665";
-}
-.cuIcon-commentfill:before {
- content: "\e666";
-}
-.cuIcon-comment:before {
- content: "\e667";
-}
-.cuIcon-likefill:before {
- content: "\e668";
-}
-.cuIcon-like:before {
- content: "\e669";
-}
-.cuIcon-notificationfill:before {
- content: "\e66a";
-}
-.cuIcon-notification:before {
- content: "\e66b";
-}
-.cuIcon-order:before {
- content: "\e66c";
-}
-.cuIcon-samefill:before {
- content: "\e66d";
-}
-.cuIcon-same:before {
- content: "\e66e";
-}
-.cuIcon-deliver:before {
- content: "\e671";
-}
-.cuIcon-evaluate:before {
- content: "\e672";
-}
-.cuIcon-pay:before {
- content: "\e673";
-}
-.cuIcon-send:before {
- content: "\e675";
-}
-.cuIcon-shop:before {
- content: "\e676";
-}
-.cuIcon-ticket:before {
- content: "\e677";
-}
-.cuIcon-back:before {
- content: "\e679";
-}
-.cuIcon-cascades:before {
- content: "\e67c";
-}
-.cuIcon-discover:before {
- content: "\e67e";
-}
-.cuIcon-list:before {
- content: "\e682";
-}
-.cuIcon-more:before {
- content: "\e684";
-}
-.cuIcon-scan:before {
- content: "\e689";
-}
-.cuIcon-settings:before {
- content: "\e68a";
-}
-.cuIcon-questionfill:before {
- content: "\e690";
-}
-.cuIcon-question:before {
- content: "\e691";
-}
-.cuIcon-shopfill:before {
- content: "\e697";
-}
-.cuIcon-form:before {
- content: "\e699";
-}
-.cuIcon-pic:before {
- content: "\e69b";
-}
-.cuIcon-filter:before {
- content: "\e69c";
-}
-.cuIcon-footprint:before {
- content: "\e69d";
-}
-.cuIcon-top:before {
- content: "\e69e";
-}
-.cuIcon-pulldown:before {
- content: "\e69f";
-}
-.cuIcon-pullup:before {
- content: "\e6a0";
-}
-.cuIcon-right:before {
- content: "\e6a3";
-}
-.cuIcon-refresh:before {
- content: "\e6a4";
-}
-.cuIcon-moreandroid:before {
- content: "\e6a5";
-}
-.cuIcon-deletefill:before {
- content: "\e6a6";
-}
-.cuIcon-refund:before {
- content: "\e6ac";
-}
-.cuIcon-cart:before {
- content: "\e6af";
-}
-.cuIcon-qrcode:before {
- content: "\e6b0";
-}
-.cuIcon-remind:before {
- content: "\e6b2";
-}
-.cuIcon-delete:before {
- content: "\e6b4";
-}
-.cuIcon-profile:before {
- content: "\e6b7";
-}
-.cuIcon-home:before {
- content: "\e6b8";
-}
-.cuIcon-cartfill:before {
- content: "\e6b9";
-}
-.cuIcon-discoverfill:before {
- content: "\e6ba";
-}
-.cuIcon-homefill:before {
- content: "\e6bb";
-}
-.cuIcon-message:before {
- content: "\e6bc";
-}
-.cuIcon-addressbook:before {
- content: "\e6bd";
-}
-.cuIcon-link:before {
- content: "\e6bf";
-}
-.cuIcon-lock:before {
- content: "\e6c0";
-}
-.cuIcon-unlock:before {
- content: "\e6c2";
-}
-.cuIcon-vip:before {
- content: "\e6c3";
-}
-.cuIcon-weibo:before {
- content: "\e6c4";
-}
-.cuIcon-activity:before {
- content: "\e6c5";
-}
-.cuIcon-friendaddfill:before {
- content: "\e6c9";
-}
-.cuIcon-friendadd:before {
- content: "\e6ca";
-}
-.cuIcon-friendfamous:before {
- content: "\e6cb";
-}
-.cuIcon-friend:before {
- content: "\e6cc";
-}
-.cuIcon-goods:before {
- content: "\e6cd";
-}
-.cuIcon-selection:before {
- content: "\e6ce";
-}
-.cuIcon-explore:before {
- content: "\e6d2";
-}
-.cuIcon-present:before {
- content: "\e6d3";
-}
-.cuIcon-squarecheckfill:before {
- content: "\e6d4";
-}
-.cuIcon-square:before {
- content: "\e6d5";
-}
-.cuIcon-squarecheck:before {
- content: "\e6d6";
-}
-.cuIcon-round:before {
- content: "\e6d7";
-}
-.cuIcon-roundaddfill:before {
- content: "\e6d8";
-}
-.cuIcon-roundadd:before {
- content: "\e6d9";
-}
-.cuIcon-add:before {
- content: "\e6da";
-}
-.cuIcon-notificationforbidfill:before {
- content: "\e6db";
-}
-.cuIcon-explorefill:before {
- content: "\e6dd";
-}
-.cuIcon-fold:before {
- content: "\e6de";
-}
-.cuIcon-game:before {
- content: "\e6df";
-}
-.cuIcon-redpacket:before {
- content: "\e6e0";
-}
-.cuIcon-selectionfill:before {
- content: "\e6e1";
-}
-.cuIcon-similar:before {
- content: "\e6e2";
-}
-.cuIcon-appreciatefill:before {
- content: "\e6e3";
-}
-.cuIcon-infofill:before {
- content: "\e6e4";
-}
-.cuIcon-info:before {
- content: "\e6e5";
-}
-.cuIcon-forwardfill:before {
- content: "\e6ea";
-}
-.cuIcon-forward:before {
- content: "\e6eb";
-}
-.cuIcon-rechargefill:before {
- content: "\e6ec";
-}
-.cuIcon-recharge:before {
- content: "\e6ed";
-}
-.cuIcon-vipcard:before {
- content: "\e6ee";
-}
-.cuIcon-voice:before {
- content: "\e6ef";
-}
-.cuIcon-voicefill:before {
- content: "\e6f0";
-}
-.cuIcon-friendfavor:before {
- content: "\e6f1";
-}
-.cuIcon-wifi:before {
- content: "\e6f2";
-}
-.cuIcon-share:before {
- content: "\e6f3";
-}
-.cuIcon-wefill:before {
- content: "\e6f4";
-}
-.cuIcon-we:before {
- content: "\e6f5";
-}
-.cuIcon-lightauto:before {
- content: "\e6f6";
-}
-.cuIcon-lightforbid:before {
- content: "\e6f7";
-}
-.cuIcon-lightfill:before {
- content: "\e6f8";
-}
-.cuIcon-camerarotate:before {
- content: "\e6f9";
-}
-.cuIcon-light:before {
- content: "\e6fa";
-}
-.cuIcon-barcode:before {
- content: "\e6fb";
-}
-.cuIcon-flashlightclose:before {
- content: "\e6fc";
-}
-.cuIcon-flashlightopen:before {
- content: "\e6fd";
-}
-.cuIcon-searchlist:before {
- content: "\e6fe";
-}
-.cuIcon-service:before {
- content: "\e6ff";
-}
-.cuIcon-sort:before {
- content: "\e700";
-}
-.cuIcon-down:before {
- content: "\e703";
-}
-.cuIcon-mobile:before {
- content: "\e704";
-}
-.cuIcon-mobilefill:before {
- content: "\e705";
-}
-.cuIcon-copy:before {
- content: "\e706";
-}
-.cuIcon-countdownfill:before {
- content: "\e707";
-}
-.cuIcon-countdown:before {
- content: "\e708";
-}
-.cuIcon-noticefill:before {
- content: "\e709";
-}
-.cuIcon-notice:before {
- content: "\e70a";
-}
-.cuIcon-upstagefill:before {
- content: "\e70e";
-}
-.cuIcon-upstage:before {
- content: "\e70f";
-}
-.cuIcon-babyfill:before {
- content: "\e710";
-}
-.cuIcon-baby:before {
- content: "\e711";
-}
-.cuIcon-brandfill:before {
- content: "\e712";
-}
-.cuIcon-brand:before {
- content: "\e713";
-}
-.cuIcon-choicenessfill:before {
- content: "\e714";
-}
-.cuIcon-choiceness:before {
- content: "\e715";
-}
-.cuIcon-clothesfill:before {
- content: "\e716";
-}
-.cuIcon-clothes:before {
- content: "\e717";
-}
-.cuIcon-creativefill:before {
- content: "\e718";
-}
-.cuIcon-creative:before {
- content: "\e719";
-}
-.cuIcon-female:before {
- content: "\e71a";
-}
-.cuIcon-keyboard:before {
- content: "\e71b";
-}
-.cuIcon-male:before {
- content: "\e71c";
-}
-.cuIcon-newfill:before {
- content: "\e71d";
-}
-.cuIcon-new:before {
- content: "\e71e";
-}
-.cuIcon-pullleft:before {
- content: "\e71f";
-}
-.cuIcon-pullright:before {
- content: "\e720";
-}
-.cuIcon-rankfill:before {
- content: "\e721";
-}
-.cuIcon-rank:before {
- content: "\e722";
-}
-.cuIcon-bad:before {
- content: "\e723";
-}
-.cuIcon-cameraadd:before {
- content: "\e724";
-}
-.cuIcon-focus:before {
- content: "\e725";
-}
-.cuIcon-friendfill:before {
- content: "\e726";
-}
-.cuIcon-cameraaddfill:before {
- content: "\e727";
-}
-.cuIcon-apps:before {
- content: "\e729";
-}
-.cuIcon-paintfill:before {
- content: "\e72a";
-}
-.cuIcon-paint:before {
- content: "\e72b";
-}
-.cuIcon-picfill:before {
- content: "\e72c";
-}
-.cuIcon-refresharrow:before {
- content: "\e72d";
-}
-.cuIcon-colorlens:before {
- content: "\e6e6";
-}
-.cuIcon-markfill:before {
- content: "\e730";
-}
-.cuIcon-mark:before {
- content: "\e731";
-}
-.cuIcon-presentfill:before {
- content: "\e732";
-}
-.cuIcon-repeal:before {
- content: "\e733";
-}
-.cuIcon-album:before {
- content: "\e734";
-}
-.cuIcon-peoplefill:before {
- content: "\e735";
-}
-.cuIcon-people:before {
- content: "\e736";
-}
-.cuIcon-servicefill:before {
- content: "\e737";
-}
-.cuIcon-repair:before {
- content: "\e738";
-}
-.cuIcon-file:before {
- content: "\e739";
-}
-.cuIcon-repairfill:before {
- content: "\e73a";
-}
-.cuIcon-taoxiaopu:before {
- content: "\e73b";
-}
-.cuIcon-weixin:before {
- content: "\e612";
-}
-.cuIcon-attentionfill:before {
- content: "\e73c";
-}
-.cuIcon-attention:before {
- content: "\e73d";
-}
-.cuIcon-commandfill:before {
- content: "\e73e";
-}
-.cuIcon-command:before {
- content: "\e73f";
-}
-.cuIcon-communityfill:before {
- content: "\e740";
-}
-.cuIcon-community:before {
- content: "\e741";
-}
-.cuIcon-read:before {
- content: "\e742";
-}
-.cuIcon-calendar:before {
- content: "\e74a";
-}
-.cuIcon-cut:before {
- content: "\e74b";
-}
-.cuIcon-magic:before {
- content: "\e74c";
-}
-.cuIcon-backwardfill:before {
- content: "\e74d";
-}
-.cuIcon-playfill:before {
- content: "\e74f";
-}
-.cuIcon-stop:before {
- content: "\e750";
-}
-.cuIcon-tagfill:before {
- content: "\e751";
-}
-.cuIcon-tag:before {
- content: "\e752";
-}
-.cuIcon-group:before {
- content: "\e753";
-}
-.cuIcon-all:before {
- content: "\e755";
-}
-.cuIcon-backdelete:before {
- content: "\e756";
-}
-.cuIcon-hotfill:before {
- content: "\e757";
-}
-.cuIcon-hot:before {
- content: "\e758";
-}
-.cuIcon-post:before {
- content: "\e759";
-}
-.cuIcon-radiobox:before {
- content: "\e75b";
-}
-.cuIcon-rounddown:before {
- content: "\e75c";
-}
-.cuIcon-upload:before {
- content: "\e75d";
-}
-.cuIcon-writefill:before {
- content: "\e760";
-}
-.cuIcon-write:before {
- content: "\e761";
-}
-.cuIcon-radioboxfill:before {
- content: "\e763";
-}
-.cuIcon-punch:before {
- content: "\e764";
-}
-.cuIcon-shake:before {
- content: "\e765";
-}
-.cuIcon-move:before {
- content: "\e768";
-}
-.cuIcon-safe:before {
- content: "\e769";
-}
-.cuIcon-activityfill:before {
- content: "\e775";
-}
-.cuIcon-crownfill:before {
- content: "\e776";
-}
-.cuIcon-crown:before {
- content: "\e777";
-}
-.cuIcon-goodsfill:before {
- content: "\e778";
-}
-.cuIcon-messagefill:before {
- content: "\e779";
-}
-.cuIcon-profilefill:before {
- content: "\e77a";
-}
-.cuIcon-sound:before {
- content: "\e77b";
-}
-.cuIcon-sponsorfill:before {
- content: "\e77c";
-}
-.cuIcon-sponsor:before {
- content: "\e77d";
-}
-.cuIcon-upblock:before {
- content: "\e77e";
-}
-.cuIcon-weblock:before {
- content: "\e77f";
-}
-.cuIcon-weunblock:before {
- content: "\e780";
-}
-.cuIcon-my:before {
- content: "\e78b";
-}
-.cuIcon-myfill:before {
- content: "\e78c";
-}
-.cuIcon-emojifill:before {
- content: "\e78d";
-}
-.cuIcon-emojiflashfill:before {
- content: "\e78e";
-}
-.cuIcon-flashbuyfill:before {
- content: "\e78f";
-}
-.cuIcon-text:before {
- content: "\e791";
-}
-.cuIcon-goodsfavor:before {
- content: "\e794";
-}
-.cuIcon-musicfill:before {
- content: "\e795";
-}
-.cuIcon-musicforbidfill:before {
- content: "\e796";
-}
-.cuIcon-card:before {
- content: "\e624";
-}
-.cuIcon-triangledownfill:before {
- content: "\e79b";
-}
-.cuIcon-triangleupfill:before {
- content: "\e79c";
-}
-.cuIcon-roundleftfill-copy:before {
- content: "\e79e";
-}
-.cuIcon-font:before {
- content: "\e76a";
-}
-.cuIcon-title:before {
- content: "\e82f";
-}
-.cuIcon-recordfill:before {
- content: "\e7a4";
-}
-.cuIcon-record:before {
- content: "\e7a6";
-}
-.cuIcon-cardboardfill:before {
- content: "\e7a9";
-}
-.cuIcon-cardboard:before {
- content: "\e7aa";
-}
-.cuIcon-formfill:before {
- content: "\e7ab";
-}
-.cuIcon-coin:before {
- content: "\e7ac";
-}
-.cuIcon-cardboardforbid:before {
- content: "\e7af";
-}
-.cuIcon-circlefill:before {
- content: "\e7b0";
-}
-.cuIcon-circle:before {
- content: "\e7b1";
-}
-.cuIcon-attentionforbid:before {
- content: "\e7b2";
-}
-.cuIcon-attentionforbidfill:before {
- content: "\e7b3";
-}
-.cuIcon-attentionfavorfill:before {
- content: "\e7b4";
-}
-.cuIcon-attentionfavor:before {
- content: "\e7b5";
-}
-.cuIcon-titles:before {
- content: "\e701";
-}
-.cuIcon-icloading:before {
- content: "\e67a";
-}
-.cuIcon-full:before {
- content: "\e7bc";
-}
-.cuIcon-mail:before {
- content: "\e7bd";
-}
-.cuIcon-peoplelist:before {
- content: "\e7be";
-}
-.cuIcon-goodsnewfill:before {
- content: "\e7bf";
-}
-.cuIcon-goodsnew:before {
- content: "\e7c0";
-}
-.cuIcon-medalfill:before {
- content: "\e7c1";
-}
-.cuIcon-medal:before {
- content: "\e7c2";
-}
-.cuIcon-newsfill:before {
- content: "\e7c3";
-}
-.cuIcon-newshotfill:before {
- content: "\e7c4";
-}
-.cuIcon-newshot:before {
- content: "\e7c5";
-}
-.cuIcon-news:before {
- content: "\e7c6";
-}
-.cuIcon-videofill:before {
- content: "\e7c7";
-}
-.cuIcon-video:before {
- content: "\e7c8";
-}
-.cuIcon-exit:before {
- content: "\e7cb";
-}
-.cuIcon-skinfill:before {
- content: "\e7cc";
-}
-.cuIcon-skin:before {
- content: "\e7cd";
-}
-.cuIcon-moneybagfill:before {
- content: "\e7ce";
-}
-.cuIcon-usefullfill:before {
- content: "\e7cf";
-}
-.cuIcon-usefull:before {
- content: "\e7d0";
-}
-.cuIcon-moneybag:before {
- content: "\e7d1";
-}
-.cuIcon-redpacket_fill:before {
- content: "\e7d3";
-}
-.cuIcon-subscription:before {
- content: "\e7d4";
-}
-.cuIcon-loading1:before {
- content: "\e633";
-}
-.cuIcon-github:before {
- content: "\e692";
-}
-.cuIcon-global:before {
- content: "\e7eb";
-}
-.cuIcon-settingsfill:before {
- content: "\e6ab";
-}
-.cuIcon-back_android:before {
- content: "\e7ed";
-}
-.cuIcon-expressman:before {
- content: "\e7ef";
-}
-.cuIcon-evaluate_fill:before {
- content: "\e7f0";
-}
-.cuIcon-group_fill:before {
- content: "\e7f5";
-}
-.cuIcon-play_forward_fill:before {
- content: "\e7f6";
-}
-.cuIcon-deliver_fill:before {
- content: "\e7f7";
-}
-.cuIcon-notice_forbid_fill:before {
- content: "\e7f8";
-}
-.cuIcon-fork:before {
- content: "\e60c";
-}
-.cuIcon-pick:before {
- content: "\e7fa";
-}
-.cuIcon-wenzi:before {
- content: "\e6a7";
-}
-.cuIcon-ellipse:before {
- content: "\e600";
-}
-.cuIcon-qr_code:before {
- content: "\e61b";
-}
-.cuIcon-dianhua:before {
- content: "\e64d";
-}
-.cuIcon-cuIcon:before {
- content: "\e602";
-}
-.cuIcon-loading2:before {
- content: "\e7f1";
-}
-.cuIcon-btn:before {
- content: "\e601";
-}
-/*
- Animation 微动画
- 基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28
- */
-/* css 滤镜 控制黑白底色gif的 */
-.gif-black{
- mix-blend-mode: screen;
-}
-.gif-white{
- mix-blend-mode: multiply;
-}
-/* Animation css */
-[class*=animation-] {
- animation-duration: .5s;
- animation-timing-function: ease-out;
- animation-fill-mode: both
-}
-.animation-fade {
- animation-name: fade;
- animation-duration: .8s;
- animation-timing-function: linear
-}
-.animation-scale-up {
- animation-name: scale-up
-}
-.animation-scale-down {
- animation-name: scale-down
-}
-.animation-slide-top {
- animation-name: slide-top
-}
-.animation-slide-bottom {
- animation-name: slide-bottom
-}
-.animation-slide-left {
- animation-name: slide-left
-}
-.animation-slide-right {
- animation-name: slide-right
-}
-.animation-shake {
- animation-name: shake
-}
-.animation-reverse {
- animation-direction: reverse
-}
-@keyframes fade {
-0% {
- opacity: 0
-}
-100% {
- opacity: 1
-}
-}
-@keyframes scale-up {
-0% {
- opacity: 0;
- transform: scale(.2)
-}
-100% {
- opacity: 1;
- transform: scale(1)
-}
-}
-@keyframes scale-down {
-0% {
- opacity: 0;
- transform: scale(1.8)
-}
-100% {
- opacity: 1;
- transform: scale(1)
-}
-}
-@keyframes slide-top {
-0% {
- opacity: 0;
- transform: translateY(-100%)
-}
-100% {
- opacity: 1;
- transform: translateY(0)
-}
-}
-@keyframes slide-bottom {
-0% {
- opacity: 0;
- transform: translateY(100%)
-}
-100% {
- opacity: 1;
- transform: translateY(0)
-}
-}
-@keyframes shake {
-0%,
- 100% {
- transform: translateX(0)
-}
-10% {
- transform: translateX(-9px)
-}
-20% {
- transform: translateX(8px)
-}
-30% {
- transform: translateX(-7px)
-}
-40% {
- transform: translateX(6px)
-}
-50% {
- transform: translateX(-5px)
-}
-60% {
- transform: translateX(4px)
-}
-70% {
- transform: translateX(-3px)
-}
-80% {
- transform: translateX(2px)
-}
-90% {
- transform: translateX(-1px)
-}
-}
-@keyframes slide-left {
-0% {
- opacity: 0;
- transform: translateX(-100%)
-}
-100% {
- opacity: 1;
- transform: translateX(0)
-}
-}
-@keyframes slide-right {
-0% {
- opacity: 0;
- transform: translateX(100%)
-}
-100% {
- opacity: 1;
- transform: translateX(0)
-}
-}
-.u-line-1,
-.up-line-1 {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-.u-line-2,
-.up-line-2 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical !important;
-}
-.u-line-3,
-.up-line-3 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 3;
- -webkit-box-orient: vertical !important;
-}
-.u-line-4,
-.up-line-4 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 4;
- -webkit-box-orient: vertical !important;
-}
-.u-line-5,
-.up-line-5 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 5;
- -webkit-box-orient: vertical !important;
-}
-.u-line-6,
-.up-line-6 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 6;
- -webkit-box-orient: vertical !important;
-}
-.u-line-7,
-.up-line-7 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 7;
- -webkit-box-orient: vertical !important;
-}
-.u-line-8,
-.up-line-8 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 8;
- -webkit-box-orient: vertical !important;
-}
-.u-line-9,
-.up-line-9 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 9;
- -webkit-box-orient: vertical !important;
-}
-.u-line-10,
-.up-line-10 {
- display: -webkit-box !important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: 10;
- -webkit-box-orient: vertical !important;
-}
-.u-border,
-.up-border {
- border-width: 0.5px !important;
- border-color: #dadbde !important;
- border-style: solid;
-}
-.u-border-top,
-.up-border-top {
- border-top-width: 0.5px !important;
- border-color: #dadbde !important;
- border-top-style: solid;
-}
-.u-border-left,
-.up-border-left {
- border-left-width: 0.5px !important;
- border-color: #dadbde !important;
- border-left-style: solid;
-}
-.u-border-right,
-.up-border-right {
- border-right-width: 0.5px !important;
- border-color: #dadbde !important;
- border-right-style: solid;
-}
-.u-border-bottom,
-.up-border-bottom {
- border-bottom-width: 0.5px !important;
- border-color: #dadbde !important;
- border-bottom-style: solid;
-}
-.u-border-top-bottom,
-.up-border-top-bottom {
- border-top-width: 0.5px !important;
- border-bottom-width: 0.5px !important;
- border-color: #dadbde !important;
- border-top-style: solid;
- border-bottom-style: solid;
-}
-.u-reset-button,
-.up-reset-button {
- padding: 0;
- background-color: transparent;
- font-size: inherit;
- line-height: inherit;
- color: inherit;
-}
-.u-reset-button::after,
-.up-reset-button::after {
- border: none;
-}
-.u-hover-class,
-.up-hover-class {
- opacity: 0.7;
-}
-.u-empty,
-.u-empty__wrap,
-.u-transition,
-.u-tabs,
-.u-tabs__wrapper,
-.u-tabs__wrapper__scroll-view-wrapper,
-.u-tabs__wrapper__scroll-view,
-.u-tabs__wrapper__nav,
-.u-tabs__wrapper__nav__line,
-.up-empty,
-.up-empty__wrap,
-.up-transition,
-.up-tabs,
-.up-tabs__wrapper,
-.up-tabs__wrapper__scroll-view-wrapper,
-.up-tabs__wrapper__scroll-view,
-.up-tabs__wrapper__nav,
-.up-tabs__wrapper__nav__line {
- display: flex;
- flex-direction: column;
- flex-shrink: 0;
- flex-grow: 0;
- flex-basis: auto;
- align-items: stretch;
- align-content: flex-start;
-}
-.u-flex,
-.u-flex-row,
-.u-flex-x,
-.up-flex,
-.up-flex-row,
-.up-flex-x {
- display: flex;
- flex-direction: row;
- display: flex !important;
- flex-direction: row !important;
-}
-.u-flex-y,
-.u-flex-column,
-.up-flex-y,
-.up-flex-column {
- display: flex;
- flex-direction: column;
- display: flex !important;
- flex-direction: column !important;
-}
-.u-flex-x-center,
-.up-flex-x-center {
- display: flex;
- flex-direction: row;
- justify-content: center !important;
-}
-.u-flex-xy-center,
-.up-flex-xy-center {
- display: flex;
- flex-direction: row;
- justify-content: center !important;
- align-items: center !important;
-}
-.u-flex-y-center,
-.up-flex-y-center {
- display: flex;
- flex-direction: row;
- align-items: center !important;
-}
-.u-flex-x-left,
-.up-flex-x-left {
- display: flex;
- flex-direction: row;
-}
-.u-flex-x-reverse,
-.u-flex-row-reverse,
-.up-flex-x-reverse,
-.up-flex-row-reverse {
- flex-direction: row-reverse !important;
-}
-.u-flex-y-reverse,
-.u-flex-column-reverse,
-.up-flex-y-reverse,
-.up-flex-column-reverse {
- flex-direction: column-reverse !important;
-}
-.u-flex.u-flex-reverse,
-.u-flex-row.u-flex-reverse,
-.u-flex-x.u-flex-reverse,
-.up-flex.up-flex-reverse,
-.up-flex-row.up-flex-reverse,
-.up-flex-x.up-flex-reverse {
- flex-direction: row-reverse !important;
-}
-.u-flex-column.u-flex-reverse,
-.u-flex-y.u-flex-reverse,
-.up-flex-column.up-flex-reverse,
-.up-flex-y.up-flex-reverse {
- flex-direction: column-reverse !important;
-}
-.u-flex-fill,
-.up-flex-fill {
- flex: 1 1 auto !important;
-}
-.u-margin-top-auto,
-.u-m-t-auto,
-.up-margin-top-auto,
-.up-m-t-auto {
- margin-top: auto !important;
-}
-.u-margin-right-auto,
-.u-m-r-auto,
-.up-margin-right-auto,
-.up-m-r-auto {
- margin-right: auto !important;
-}
-.u-margin-bottom-auto,
-.u-m-b-auto,
-.up-margin-bottom-auto,
-.up-m-b-auto {
- margin-bottom: auto !important;
-}
-.u-margin-left-auto,
-.u-m-l-auto,
-.up-margin-left-auto,
-.up-m-l-auto {
- margin-left: auto !important;
-}
-.u-margin-center-auto,
-.u-m-c-auto,
-.up-margin-center-auto,
-.up-m-c-auto {
- margin-left: auto !important;
- margin-right: auto !important;
-}
-.u-margin-middle-auto,
-.u-m-m-auto,
-.up-margin-middle-auto,
-.up-m-m-auto {
- margin-top: auto !important;
- margin-bottom: auto !important;
-}
-.u-flex-wrap,
-.up-flex-wrap {
- flex-wrap: wrap !important;
-}
-.u-flex-wrap-reverse,
-.up-flex-wrap-reverse {
- flex-wrap: wrap-reverse !important;
-}
-.u-flex-start,
-.up-flex-start {
- justify-content: flex-start !important;
-}
-.u-flex-center,
-.up-flex-center {
- justify-content: center !important;
-}
-.u-flex-end,
-.up-flex-end {
- justify-content: flex-end !important;
-}
-.u-flex-between,
-.up-flex-between {
- justify-content: space-between !important;
-}
-.u-flex-around,
-.up-flex-around {
- justify-content: space-around !important;
-}
-.u-flex-items-start,
-.up-flex-items-start {
- align-items: flex-start !important;
-}
-.u-flex-items-center,
-.up-flex-items-center {
- align-items: center !important;
-}
-.u-flex-items-end,
-.up-flex-items-end {
- align-items: flex-end !important;
-}
-.u-flex-items-baseline,
-.up-flex-items-baseline {
- align-items: baseline !important;
-}
-.u-flex-items-stretch,
-.up-flex-items-stretch {
- align-items: stretch !important;
-}
-.u-flex-self-start,
-.up-flex-self-start {
- align-self: flex-start !important;
-}
-.u-flex-self-center,
-.up-flex-self-center {
- align-self: center !important;
-}
-.u-flex-self-end,
-.up-flex-self-end {
- align-self: flex-en !important;
-}
-.u-flex-self-baseline,
-.up-flex-self-baseline {
- align-self: baseline !important;
-}
-.u-flex-self-stretch,
-.up-flex-self-stretch {
- align-self: stretch !important;
-}
-.u-flex-content-start,
-.up-flex-content-start {
- align-content: flex-start !important;
-}
-.u-flex-content-center,
-.up-flex-content-center {
- align-content: center !important;
-}
-.u-flex-content-end,
-.up-flex-content-end {
- align-content: flex-end !important;
-}
-.u-flex-content-between,
-.up-flex-content-between {
- align-content: space-between !important;
-}
-.u-flex-content-around,
-.up-flex-content-around {
- align-content: space-around !important;
-}
-.u-flex-middle,
-.up-flex-middle {
- justify-content: center !important;
- align-items: center !important;
- align-self: center !important;
- align-content: center !important;
-}
-.u-flex-grow,
-.up-flex-grow {
- flex-grow: 1 !important;
-}
-.u-flex-shrink,
-.up-flex-shrink {
- flex-shrink: 1 !important;
-}
-.u-margin-0, .u-m-0,
-.up-margin-0, .up-m-0 {
- margin: 0rpx !important;
-}
-.u-padding-0, .u-p-0,
-.up-padding-0, .up-p-0 {
- padding: 0rpx !important;
-}
-.u-m-l-0,
-.up-m-l-0 {
- margin-left: 0rpx !important;
-}
-.u-p-l-0,
-.up-p-l-0 {
- padding-left: 0rpx !important;
-}
-.u-margin-left-0,
-.up-margin-left-0 {
- margin-left: 0rpx !important;
-}
-.u-padding-left-0,
-.up-padding-left-0 {
- padding-left: 0rpx !important;
-}
-.u-m-t-0,
-.up-m-t-0 {
- margin-top: 0rpx !important;
-}
-.u-p-t-0,
-.up-p-t-0 {
- padding-top: 0rpx !important;
-}
-.u-margin-top-0,
-.up-margin-top-0 {
- margin-top: 0rpx !important;
-}
-.u-padding-top-0,
-.up-padding-top-0 {
- padding-top: 0rpx !important;
-}
-.u-m-r-0,
-.up-m-r-0 {
- margin-right: 0rpx !important;
-}
-.u-p-r-0,
-.up-p-r-0 {
- padding-right: 0rpx !important;
-}
-.u-margin-right-0,
-.up-margin-right-0 {
- margin-right: 0rpx !important;
-}
-.u-padding-right-0,
-.up-padding-right-0 {
- padding-right: 0rpx !important;
-}
-.u-m-b-0,
-.up-m-b-0 {
- margin-bottom: 0rpx !important;
-}
-.u-p-b-0,
-.up-p-b-0 {
- padding-bottom: 0rpx !important;
-}
-.u-margin-bottom-0,
-.up-margin-bottom-0 {
- margin-bottom: 0rpx !important;
-}
-.u-padding-bottom-0,
-.up-padding-bottom-0 {
- padding-bottom: 0rpx !important;
-}
-.u-margin-2, .u-m-2,
-.up-margin-2, .up-m-2 {
- margin: 2rpx !important;
-}
-.u-padding-2, .u-p-2,
-.up-padding-2, .up-p-2 {
- padding: 2rpx !important;
-}
-.u-m-l-2,
-.up-m-l-2 {
- margin-left: 2rpx !important;
-}
-.u-p-l-2,
-.up-p-l-2 {
- padding-left: 2rpx !important;
-}
-.u-margin-left-2,
-.up-margin-left-2 {
- margin-left: 2rpx !important;
-}
-.u-padding-left-2,
-.up-padding-left-2 {
- padding-left: 2rpx !important;
-}
-.u-m-t-2,
-.up-m-t-2 {
- margin-top: 2rpx !important;
-}
-.u-p-t-2,
-.up-p-t-2 {
- padding-top: 2rpx !important;
-}
-.u-margin-top-2,
-.up-margin-top-2 {
- margin-top: 2rpx !important;
-}
-.u-padding-top-2,
-.up-padding-top-2 {
- padding-top: 2rpx !important;
-}
-.u-m-r-2,
-.up-m-r-2 {
- margin-right: 2rpx !important;
-}
-.u-p-r-2,
-.up-p-r-2 {
- padding-right: 2rpx !important;
-}
-.u-margin-right-2,
-.up-margin-right-2 {
- margin-right: 2rpx !important;
-}
-.u-padding-right-2,
-.up-padding-right-2 {
- padding-right: 2rpx !important;
-}
-.u-m-b-2,
-.up-m-b-2 {
- margin-bottom: 2rpx !important;
-}
-.u-p-b-2,
-.up-p-b-2 {
- padding-bottom: 2rpx !important;
-}
-.u-margin-bottom-2,
-.up-margin-bottom-2 {
- margin-bottom: 2rpx !important;
-}
-.u-padding-bottom-2,
-.up-padding-bottom-2 {
- padding-bottom: 2rpx !important;
-}
-.u-margin-4, .u-m-4,
-.up-margin-4, .up-m-4 {
- margin: 4rpx !important;
-}
-.u-padding-4, .u-p-4,
-.up-padding-4, .up-p-4 {
- padding: 4rpx !important;
-}
-.u-m-l-4,
-.up-m-l-4 {
- margin-left: 4rpx !important;
-}
-.u-p-l-4,
-.up-p-l-4 {
- padding-left: 4rpx !important;
-}
-.u-margin-left-4,
-.up-margin-left-4 {
- margin-left: 4rpx !important;
-}
-.u-padding-left-4,
-.up-padding-left-4 {
- padding-left: 4rpx !important;
-}
-.u-m-t-4,
-.up-m-t-4 {
- margin-top: 4rpx !important;
-}
-.u-p-t-4,
-.up-p-t-4 {
- padding-top: 4rpx !important;
-}
-.u-margin-top-4,
-.up-margin-top-4 {
- margin-top: 4rpx !important;
-}
-.u-padding-top-4,
-.up-padding-top-4 {
- padding-top: 4rpx !important;
-}
-.u-m-r-4,
-.up-m-r-4 {
- margin-right: 4rpx !important;
-}
-.u-p-r-4,
-.up-p-r-4 {
- padding-right: 4rpx !important;
-}
-.u-margin-right-4,
-.up-margin-right-4 {
- margin-right: 4rpx !important;
-}
-.u-padding-right-4,
-.up-padding-right-4 {
- padding-right: 4rpx !important;
-}
-.u-m-b-4,
-.up-m-b-4 {
- margin-bottom: 4rpx !important;
-}
-.u-p-b-4,
-.up-p-b-4 {
- padding-bottom: 4rpx !important;
-}
-.u-margin-bottom-4,
-.up-margin-bottom-4 {
- margin-bottom: 4rpx !important;
-}
-.u-padding-bottom-4,
-.up-padding-bottom-4 {
- padding-bottom: 4rpx !important;
-}
-.u-margin-5, .u-m-5,
-.up-margin-5, .up-m-5 {
- margin: 5rpx !important;
-}
-.u-padding-5, .u-p-5,
-.up-padding-5, .up-p-5 {
- padding: 5rpx !important;
-}
-.u-m-l-5,
-.up-m-l-5 {
- margin-left: 5rpx !important;
-}
-.u-p-l-5,
-.up-p-l-5 {
- padding-left: 5rpx !important;
-}
-.u-margin-left-5,
-.up-margin-left-5 {
- margin-left: 5rpx !important;
-}
-.u-padding-left-5,
-.up-padding-left-5 {
- padding-left: 5rpx !important;
-}
-.u-m-t-5,
-.up-m-t-5 {
- margin-top: 5rpx !important;
-}
-.u-p-t-5,
-.up-p-t-5 {
- padding-top: 5rpx !important;
-}
-.u-margin-top-5,
-.up-margin-top-5 {
- margin-top: 5rpx !important;
-}
-.u-padding-top-5,
-.up-padding-top-5 {
- padding-top: 5rpx !important;
-}
-.u-m-r-5,
-.up-m-r-5 {
- margin-right: 5rpx !important;
-}
-.u-p-r-5,
-.up-p-r-5 {
- padding-right: 5rpx !important;
-}
-.u-margin-right-5,
-.up-margin-right-5 {
- margin-right: 5rpx !important;
-}
-.u-padding-right-5,
-.up-padding-right-5 {
- padding-right: 5rpx !important;
-}
-.u-m-b-5,
-.up-m-b-5 {
- margin-bottom: 5rpx !important;
-}
-.u-p-b-5,
-.up-p-b-5 {
- padding-bottom: 5rpx !important;
-}
-.u-margin-bottom-5,
-.up-margin-bottom-5 {
- margin-bottom: 5rpx !important;
-}
-.u-padding-bottom-5,
-.up-padding-bottom-5 {
- padding-bottom: 5rpx !important;
-}
-.u-margin-6, .u-m-6,
-.up-margin-6, .up-m-6 {
- margin: 6rpx !important;
-}
-.u-padding-6, .u-p-6,
-.up-padding-6, .up-p-6 {
- padding: 6rpx !important;
-}
-.u-m-l-6,
-.up-m-l-6 {
- margin-left: 6rpx !important;
-}
-.u-p-l-6,
-.up-p-l-6 {
- padding-left: 6rpx !important;
-}
-.u-margin-left-6,
-.up-margin-left-6 {
- margin-left: 6rpx !important;
-}
-.u-padding-left-6,
-.up-padding-left-6 {
- padding-left: 6rpx !important;
-}
-.u-m-t-6,
-.up-m-t-6 {
- margin-top: 6rpx !important;
-}
-.u-p-t-6,
-.up-p-t-6 {
- padding-top: 6rpx !important;
-}
-.u-margin-top-6,
-.up-margin-top-6 {
- margin-top: 6rpx !important;
-}
-.u-padding-top-6,
-.up-padding-top-6 {
- padding-top: 6rpx !important;
-}
-.u-m-r-6,
-.up-m-r-6 {
- margin-right: 6rpx !important;
-}
-.u-p-r-6,
-.up-p-r-6 {
- padding-right: 6rpx !important;
-}
-.u-margin-right-6,
-.up-margin-right-6 {
- margin-right: 6rpx !important;
-}
-.u-padding-right-6,
-.up-padding-right-6 {
- padding-right: 6rpx !important;
-}
-.u-m-b-6,
-.up-m-b-6 {
- margin-bottom: 6rpx !important;
-}
-.u-p-b-6,
-.up-p-b-6 {
- padding-bottom: 6rpx !important;
-}
-.u-margin-bottom-6,
-.up-margin-bottom-6 {
- margin-bottom: 6rpx !important;
-}
-.u-padding-bottom-6,
-.up-padding-bottom-6 {
- padding-bottom: 6rpx !important;
-}
-.u-margin-8, .u-m-8,
-.up-margin-8, .up-m-8 {
- margin: 8rpx !important;
-}
-.u-padding-8, .u-p-8,
-.up-padding-8, .up-p-8 {
- padding: 8rpx !important;
-}
-.u-m-l-8,
-.up-m-l-8 {
- margin-left: 8rpx !important;
-}
-.u-p-l-8,
-.up-p-l-8 {
- padding-left: 8rpx !important;
-}
-.u-margin-left-8,
-.up-margin-left-8 {
- margin-left: 8rpx !important;
-}
-.u-padding-left-8,
-.up-padding-left-8 {
- padding-left: 8rpx !important;
-}
-.u-m-t-8,
-.up-m-t-8 {
- margin-top: 8rpx !important;
-}
-.u-p-t-8,
-.up-p-t-8 {
- padding-top: 8rpx !important;
-}
-.u-margin-top-8,
-.up-margin-top-8 {
- margin-top: 8rpx !important;
-}
-.u-padding-top-8,
-.up-padding-top-8 {
- padding-top: 8rpx !important;
-}
-.u-m-r-8,
-.up-m-r-8 {
- margin-right: 8rpx !important;
-}
-.u-p-r-8,
-.up-p-r-8 {
- padding-right: 8rpx !important;
-}
-.u-margin-right-8,
-.up-margin-right-8 {
- margin-right: 8rpx !important;
-}
-.u-padding-right-8,
-.up-padding-right-8 {
- padding-right: 8rpx !important;
-}
-.u-m-b-8,
-.up-m-b-8 {
- margin-bottom: 8rpx !important;
-}
-.u-p-b-8,
-.up-p-b-8 {
- padding-bottom: 8rpx !important;
-}
-.u-margin-bottom-8,
-.up-margin-bottom-8 {
- margin-bottom: 8rpx !important;
-}
-.u-padding-bottom-8,
-.up-padding-bottom-8 {
- padding-bottom: 8rpx !important;
-}
-.u-margin-10, .u-m-10,
-.up-margin-10, .up-m-10 {
- margin: 10rpx !important;
-}
-.u-padding-10, .u-p-10,
-.up-padding-10, .up-p-10 {
- padding: 10rpx !important;
-}
-.u-m-l-10,
-.up-m-l-10 {
- margin-left: 10rpx !important;
-}
-.u-p-l-10,
-.up-p-l-10 {
- padding-left: 10rpx !important;
-}
-.u-margin-left-10,
-.up-margin-left-10 {
- margin-left: 10rpx !important;
-}
-.u-padding-left-10,
-.up-padding-left-10 {
- padding-left: 10rpx !important;
-}
-.u-m-t-10,
-.up-m-t-10 {
- margin-top: 10rpx !important;
-}
-.u-p-t-10,
-.up-p-t-10 {
- padding-top: 10rpx !important;
-}
-.u-margin-top-10,
-.up-margin-top-10 {
- margin-top: 10rpx !important;
-}
-.u-padding-top-10,
-.up-padding-top-10 {
- padding-top: 10rpx !important;
-}
-.u-m-r-10,
-.up-m-r-10 {
- margin-right: 10rpx !important;
-}
-.u-p-r-10,
-.up-p-r-10 {
- padding-right: 10rpx !important;
-}
-.u-margin-right-10,
-.up-margin-right-10 {
- margin-right: 10rpx !important;
-}
-.u-padding-right-10,
-.up-padding-right-10 {
- padding-right: 10rpx !important;
-}
-.u-m-b-10,
-.up-m-b-10 {
- margin-bottom: 10rpx !important;
-}
-.u-p-b-10,
-.up-p-b-10 {
- padding-bottom: 10rpx !important;
-}
-.u-margin-bottom-10,
-.up-margin-bottom-10 {
- margin-bottom: 10rpx !important;
-}
-.u-padding-bottom-10,
-.up-padding-bottom-10 {
- padding-bottom: 10rpx !important;
-}
-.u-margin-12, .u-m-12,
-.up-margin-12, .up-m-12 {
- margin: 12rpx !important;
-}
-.u-padding-12, .u-p-12,
-.up-padding-12, .up-p-12 {
- padding: 12rpx !important;
-}
-.u-m-l-12,
-.up-m-l-12 {
- margin-left: 12rpx !important;
-}
-.u-p-l-12,
-.up-p-l-12 {
- padding-left: 12rpx !important;
-}
-.u-margin-left-12,
-.up-margin-left-12 {
- margin-left: 12rpx !important;
-}
-.u-padding-left-12,
-.up-padding-left-12 {
- padding-left: 12rpx !important;
-}
-.u-m-t-12,
-.up-m-t-12 {
- margin-top: 12rpx !important;
-}
-.u-p-t-12,
-.up-p-t-12 {
- padding-top: 12rpx !important;
-}
-.u-margin-top-12,
-.up-margin-top-12 {
- margin-top: 12rpx !important;
-}
-.u-padding-top-12,
-.up-padding-top-12 {
- padding-top: 12rpx !important;
-}
-.u-m-r-12,
-.up-m-r-12 {
- margin-right: 12rpx !important;
-}
-.u-p-r-12,
-.up-p-r-12 {
- padding-right: 12rpx !important;
-}
-.u-margin-right-12,
-.up-margin-right-12 {
- margin-right: 12rpx !important;
-}
-.u-padding-right-12,
-.up-padding-right-12 {
- padding-right: 12rpx !important;
-}
-.u-m-b-12,
-.up-m-b-12 {
- margin-bottom: 12rpx !important;
-}
-.u-p-b-12,
-.up-p-b-12 {
- padding-bottom: 12rpx !important;
-}
-.u-margin-bottom-12,
-.up-margin-bottom-12 {
- margin-bottom: 12rpx !important;
-}
-.u-padding-bottom-12,
-.up-padding-bottom-12 {
- padding-bottom: 12rpx !important;
-}
-.u-margin-14, .u-m-14,
-.up-margin-14, .up-m-14 {
- margin: 14rpx !important;
-}
-.u-padding-14, .u-p-14,
-.up-padding-14, .up-p-14 {
- padding: 14rpx !important;
-}
-.u-m-l-14,
-.up-m-l-14 {
- margin-left: 14rpx !important;
-}
-.u-p-l-14,
-.up-p-l-14 {
- padding-left: 14rpx !important;
-}
-.u-margin-left-14,
-.up-margin-left-14 {
- margin-left: 14rpx !important;
-}
-.u-padding-left-14,
-.up-padding-left-14 {
- padding-left: 14rpx !important;
-}
-.u-m-t-14,
-.up-m-t-14 {
- margin-top: 14rpx !important;
-}
-.u-p-t-14,
-.up-p-t-14 {
- padding-top: 14rpx !important;
-}
-.u-margin-top-14,
-.up-margin-top-14 {
- margin-top: 14rpx !important;
-}
-.u-padding-top-14,
-.up-padding-top-14 {
- padding-top: 14rpx !important;
-}
-.u-m-r-14,
-.up-m-r-14 {
- margin-right: 14rpx !important;
-}
-.u-p-r-14,
-.up-p-r-14 {
- padding-right: 14rpx !important;
-}
-.u-margin-right-14,
-.up-margin-right-14 {
- margin-right: 14rpx !important;
-}
-.u-padding-right-14,
-.up-padding-right-14 {
- padding-right: 14rpx !important;
-}
-.u-m-b-14,
-.up-m-b-14 {
- margin-bottom: 14rpx !important;
-}
-.u-p-b-14,
-.up-p-b-14 {
- padding-bottom: 14rpx !important;
-}
-.u-margin-bottom-14,
-.up-margin-bottom-14 {
- margin-bottom: 14rpx !important;
-}
-.u-padding-bottom-14,
-.up-padding-bottom-14 {
- padding-bottom: 14rpx !important;
-}
-.u-margin-15, .u-m-15,
-.up-margin-15, .up-m-15 {
- margin: 15rpx !important;
-}
-.u-padding-15, .u-p-15,
-.up-padding-15, .up-p-15 {
- padding: 15rpx !important;
-}
-.u-m-l-15,
-.up-m-l-15 {
- margin-left: 15rpx !important;
-}
-.u-p-l-15,
-.up-p-l-15 {
- padding-left: 15rpx !important;
-}
-.u-margin-left-15,
-.up-margin-left-15 {
- margin-left: 15rpx !important;
-}
-.u-padding-left-15,
-.up-padding-left-15 {
- padding-left: 15rpx !important;
-}
-.u-m-t-15,
-.up-m-t-15 {
- margin-top: 15rpx !important;
-}
-.u-p-t-15,
-.up-p-t-15 {
- padding-top: 15rpx !important;
-}
-.u-margin-top-15,
-.up-margin-top-15 {
- margin-top: 15rpx !important;
-}
-.u-padding-top-15,
-.up-padding-top-15 {
- padding-top: 15rpx !important;
-}
-.u-m-r-15,
-.up-m-r-15 {
- margin-right: 15rpx !important;
-}
-.u-p-r-15,
-.up-p-r-15 {
- padding-right: 15rpx !important;
-}
-.u-margin-right-15,
-.up-margin-right-15 {
- margin-right: 15rpx !important;
-}
-.u-padding-right-15,
-.up-padding-right-15 {
- padding-right: 15rpx !important;
-}
-.u-m-b-15,
-.up-m-b-15 {
- margin-bottom: 15rpx !important;
-}
-.u-p-b-15,
-.up-p-b-15 {
- padding-bottom: 15rpx !important;
-}
-.u-margin-bottom-15,
-.up-margin-bottom-15 {
- margin-bottom: 15rpx !important;
-}
-.u-padding-bottom-15,
-.up-padding-bottom-15 {
- padding-bottom: 15rpx !important;
-}
-.u-margin-16, .u-m-16,
-.up-margin-16, .up-m-16 {
- margin: 16rpx !important;
-}
-.u-padding-16, .u-p-16,
-.up-padding-16, .up-p-16 {
- padding: 16rpx !important;
-}
-.u-m-l-16,
-.up-m-l-16 {
- margin-left: 16rpx !important;
-}
-.u-p-l-16,
-.up-p-l-16 {
- padding-left: 16rpx !important;
-}
-.u-margin-left-16,
-.up-margin-left-16 {
- margin-left: 16rpx !important;
-}
-.u-padding-left-16,
-.up-padding-left-16 {
- padding-left: 16rpx !important;
-}
-.u-m-t-16,
-.up-m-t-16 {
- margin-top: 16rpx !important;
-}
-.u-p-t-16,
-.up-p-t-16 {
- padding-top: 16rpx !important;
-}
-.u-margin-top-16,
-.up-margin-top-16 {
- margin-top: 16rpx !important;
-}
-.u-padding-top-16,
-.up-padding-top-16 {
- padding-top: 16rpx !important;
-}
-.u-m-r-16,
-.up-m-r-16 {
- margin-right: 16rpx !important;
-}
-.u-p-r-16,
-.up-p-r-16 {
- padding-right: 16rpx !important;
-}
-.u-margin-right-16,
-.up-margin-right-16 {
- margin-right: 16rpx !important;
-}
-.u-padding-right-16,
-.up-padding-right-16 {
- padding-right: 16rpx !important;
-}
-.u-m-b-16,
-.up-m-b-16 {
- margin-bottom: 16rpx !important;
-}
-.u-p-b-16,
-.up-p-b-16 {
- padding-bottom: 16rpx !important;
-}
-.u-margin-bottom-16,
-.up-margin-bottom-16 {
- margin-bottom: 16rpx !important;
-}
-.u-padding-bottom-16,
-.up-padding-bottom-16 {
- padding-bottom: 16rpx !important;
-}
-.u-margin-18, .u-m-18,
-.up-margin-18, .up-m-18 {
- margin: 18rpx !important;
-}
-.u-padding-18, .u-p-18,
-.up-padding-18, .up-p-18 {
- padding: 18rpx !important;
-}
-.u-m-l-18,
-.up-m-l-18 {
- margin-left: 18rpx !important;
-}
-.u-p-l-18,
-.up-p-l-18 {
- padding-left: 18rpx !important;
-}
-.u-margin-left-18,
-.up-margin-left-18 {
- margin-left: 18rpx !important;
-}
-.u-padding-left-18,
-.up-padding-left-18 {
- padding-left: 18rpx !important;
-}
-.u-m-t-18,
-.up-m-t-18 {
- margin-top: 18rpx !important;
-}
-.u-p-t-18,
-.up-p-t-18 {
- padding-top: 18rpx !important;
-}
-.u-margin-top-18,
-.up-margin-top-18 {
- margin-top: 18rpx !important;
-}
-.u-padding-top-18,
-.up-padding-top-18 {
- padding-top: 18rpx !important;
-}
-.u-m-r-18,
-.up-m-r-18 {
- margin-right: 18rpx !important;
-}
-.u-p-r-18,
-.up-p-r-18 {
- padding-right: 18rpx !important;
-}
-.u-margin-right-18,
-.up-margin-right-18 {
- margin-right: 18rpx !important;
-}
-.u-padding-right-18,
-.up-padding-right-18 {
- padding-right: 18rpx !important;
-}
-.u-m-b-18,
-.up-m-b-18 {
- margin-bottom: 18rpx !important;
-}
-.u-p-b-18,
-.up-p-b-18 {
- padding-bottom: 18rpx !important;
-}
-.u-margin-bottom-18,
-.up-margin-bottom-18 {
- margin-bottom: 18rpx !important;
-}
-.u-padding-bottom-18,
-.up-padding-bottom-18 {
- padding-bottom: 18rpx !important;
-}
-.u-margin-20, .u-m-20,
-.up-margin-20, .up-m-20 {
- margin: 20rpx !important;
-}
-.u-padding-20, .u-p-20,
-.up-padding-20, .up-p-20 {
- padding: 20rpx !important;
-}
-.u-m-l-20,
-.up-m-l-20 {
- margin-left: 20rpx !important;
-}
-.u-p-l-20,
-.up-p-l-20 {
- padding-left: 20rpx !important;
-}
-.u-margin-left-20,
-.up-margin-left-20 {
- margin-left: 20rpx !important;
-}
-.u-padding-left-20,
-.up-padding-left-20 {
- padding-left: 20rpx !important;
-}
-.u-m-t-20,
-.up-m-t-20 {
- margin-top: 20rpx !important;
-}
-.u-p-t-20,
-.up-p-t-20 {
- padding-top: 20rpx !important;
-}
-.u-margin-top-20,
-.up-margin-top-20 {
- margin-top: 20rpx !important;
-}
-.u-padding-top-20,
-.up-padding-top-20 {
- padding-top: 20rpx !important;
-}
-.u-m-r-20,
-.up-m-r-20 {
- margin-right: 20rpx !important;
-}
-.u-p-r-20,
-.up-p-r-20 {
- padding-right: 20rpx !important;
-}
-.u-margin-right-20,
-.up-margin-right-20 {
- margin-right: 20rpx !important;
-}
-.u-padding-right-20,
-.up-padding-right-20 {
- padding-right: 20rpx !important;
-}
-.u-m-b-20,
-.up-m-b-20 {
- margin-bottom: 20rpx !important;
-}
-.u-p-b-20,
-.up-p-b-20 {
- padding-bottom: 20rpx !important;
-}
-.u-margin-bottom-20,
-.up-margin-bottom-20 {
- margin-bottom: 20rpx !important;
-}
-.u-padding-bottom-20,
-.up-padding-bottom-20 {
- padding-bottom: 20rpx !important;
-}
-.u-margin-22, .u-m-22,
-.up-margin-22, .up-m-22 {
- margin: 22rpx !important;
-}
-.u-padding-22, .u-p-22,
-.up-padding-22, .up-p-22 {
- padding: 22rpx !important;
-}
-.u-m-l-22,
-.up-m-l-22 {
- margin-left: 22rpx !important;
-}
-.u-p-l-22,
-.up-p-l-22 {
- padding-left: 22rpx !important;
-}
-.u-margin-left-22,
-.up-margin-left-22 {
- margin-left: 22rpx !important;
-}
-.u-padding-left-22,
-.up-padding-left-22 {
- padding-left: 22rpx !important;
-}
-.u-m-t-22,
-.up-m-t-22 {
- margin-top: 22rpx !important;
-}
-.u-p-t-22,
-.up-p-t-22 {
- padding-top: 22rpx !important;
-}
-.u-margin-top-22,
-.up-margin-top-22 {
- margin-top: 22rpx !important;
-}
-.u-padding-top-22,
-.up-padding-top-22 {
- padding-top: 22rpx !important;
-}
-.u-m-r-22,
-.up-m-r-22 {
- margin-right: 22rpx !important;
-}
-.u-p-r-22,
-.up-p-r-22 {
- padding-right: 22rpx !important;
-}
-.u-margin-right-22,
-.up-margin-right-22 {
- margin-right: 22rpx !important;
-}
-.u-padding-right-22,
-.up-padding-right-22 {
- padding-right: 22rpx !important;
-}
-.u-m-b-22,
-.up-m-b-22 {
- margin-bottom: 22rpx !important;
-}
-.u-p-b-22,
-.up-p-b-22 {
- padding-bottom: 22rpx !important;
-}
-.u-margin-bottom-22,
-.up-margin-bottom-22 {
- margin-bottom: 22rpx !important;
-}
-.u-padding-bottom-22,
-.up-padding-bottom-22 {
- padding-bottom: 22rpx !important;
-}
-.u-margin-24, .u-m-24,
-.up-margin-24, .up-m-24 {
- margin: 24rpx !important;
-}
-.u-padding-24, .u-p-24,
-.up-padding-24, .up-p-24 {
- padding: 24rpx !important;
-}
-.u-m-l-24,
-.up-m-l-24 {
- margin-left: 24rpx !important;
-}
-.u-p-l-24,
-.up-p-l-24 {
- padding-left: 24rpx !important;
-}
-.u-margin-left-24,
-.up-margin-left-24 {
- margin-left: 24rpx !important;
-}
-.u-padding-left-24,
-.up-padding-left-24 {
- padding-left: 24rpx !important;
-}
-.u-m-t-24,
-.up-m-t-24 {
- margin-top: 24rpx !important;
-}
-.u-p-t-24,
-.up-p-t-24 {
- padding-top: 24rpx !important;
-}
-.u-margin-top-24,
-.up-margin-top-24 {
- margin-top: 24rpx !important;
-}
-.u-padding-top-24,
-.up-padding-top-24 {
- padding-top: 24rpx !important;
-}
-.u-m-r-24,
-.up-m-r-24 {
- margin-right: 24rpx !important;
-}
-.u-p-r-24,
-.up-p-r-24 {
- padding-right: 24rpx !important;
-}
-.u-margin-right-24,
-.up-margin-right-24 {
- margin-right: 24rpx !important;
-}
-.u-padding-right-24,
-.up-padding-right-24 {
- padding-right: 24rpx !important;
-}
-.u-m-b-24,
-.up-m-b-24 {
- margin-bottom: 24rpx !important;
-}
-.u-p-b-24,
-.up-p-b-24 {
- padding-bottom: 24rpx !important;
-}
-.u-margin-bottom-24,
-.up-margin-bottom-24 {
- margin-bottom: 24rpx !important;
-}
-.u-padding-bottom-24,
-.up-padding-bottom-24 {
- padding-bottom: 24rpx !important;
-}
-.u-margin-25, .u-m-25,
-.up-margin-25, .up-m-25 {
- margin: 25rpx !important;
-}
-.u-padding-25, .u-p-25,
-.up-padding-25, .up-p-25 {
- padding: 25rpx !important;
-}
-.u-m-l-25,
-.up-m-l-25 {
- margin-left: 25rpx !important;
-}
-.u-p-l-25,
-.up-p-l-25 {
- padding-left: 25rpx !important;
-}
-.u-margin-left-25,
-.up-margin-left-25 {
- margin-left: 25rpx !important;
-}
-.u-padding-left-25,
-.up-padding-left-25 {
- padding-left: 25rpx !important;
-}
-.u-m-t-25,
-.up-m-t-25 {
- margin-top: 25rpx !important;
-}
-.u-p-t-25,
-.up-p-t-25 {
- padding-top: 25rpx !important;
-}
-.u-margin-top-25,
-.up-margin-top-25 {
- margin-top: 25rpx !important;
-}
-.u-padding-top-25,
-.up-padding-top-25 {
- padding-top: 25rpx !important;
-}
-.u-m-r-25,
-.up-m-r-25 {
- margin-right: 25rpx !important;
-}
-.u-p-r-25,
-.up-p-r-25 {
- padding-right: 25rpx !important;
-}
-.u-margin-right-25,
-.up-margin-right-25 {
- margin-right: 25rpx !important;
-}
-.u-padding-right-25,
-.up-padding-right-25 {
- padding-right: 25rpx !important;
-}
-.u-m-b-25,
-.up-m-b-25 {
- margin-bottom: 25rpx !important;
-}
-.u-p-b-25,
-.up-p-b-25 {
- padding-bottom: 25rpx !important;
-}
-.u-margin-bottom-25,
-.up-margin-bottom-25 {
- margin-bottom: 25rpx !important;
-}
-.u-padding-bottom-25,
-.up-padding-bottom-25 {
- padding-bottom: 25rpx !important;
-}
-.u-margin-26, .u-m-26,
-.up-margin-26, .up-m-26 {
- margin: 26rpx !important;
-}
-.u-padding-26, .u-p-26,
-.up-padding-26, .up-p-26 {
- padding: 26rpx !important;
-}
-.u-m-l-26,
-.up-m-l-26 {
- margin-left: 26rpx !important;
-}
-.u-p-l-26,
-.up-p-l-26 {
- padding-left: 26rpx !important;
-}
-.u-margin-left-26,
-.up-margin-left-26 {
- margin-left: 26rpx !important;
-}
-.u-padding-left-26,
-.up-padding-left-26 {
- padding-left: 26rpx !important;
-}
-.u-m-t-26,
-.up-m-t-26 {
- margin-top: 26rpx !important;
-}
-.u-p-t-26,
-.up-p-t-26 {
- padding-top: 26rpx !important;
-}
-.u-margin-top-26,
-.up-margin-top-26 {
- margin-top: 26rpx !important;
-}
-.u-padding-top-26,
-.up-padding-top-26 {
- padding-top: 26rpx !important;
-}
-.u-m-r-26,
-.up-m-r-26 {
- margin-right: 26rpx !important;
-}
-.u-p-r-26,
-.up-p-r-26 {
- padding-right: 26rpx !important;
-}
-.u-margin-right-26,
-.up-margin-right-26 {
- margin-right: 26rpx !important;
-}
-.u-padding-right-26,
-.up-padding-right-26 {
- padding-right: 26rpx !important;
-}
-.u-m-b-26,
-.up-m-b-26 {
- margin-bottom: 26rpx !important;
-}
-.u-p-b-26,
-.up-p-b-26 {
- padding-bottom: 26rpx !important;
-}
-.u-margin-bottom-26,
-.up-margin-bottom-26 {
- margin-bottom: 26rpx !important;
-}
-.u-padding-bottom-26,
-.up-padding-bottom-26 {
- padding-bottom: 26rpx !important;
-}
-.u-margin-28, .u-m-28,
-.up-margin-28, .up-m-28 {
- margin: 28rpx !important;
-}
-.u-padding-28, .u-p-28,
-.up-padding-28, .up-p-28 {
- padding: 28rpx !important;
-}
-.u-m-l-28,
-.up-m-l-28 {
- margin-left: 28rpx !important;
-}
-.u-p-l-28,
-.up-p-l-28 {
- padding-left: 28rpx !important;
-}
-.u-margin-left-28,
-.up-margin-left-28 {
- margin-left: 28rpx !important;
-}
-.u-padding-left-28,
-.up-padding-left-28 {
- padding-left: 28rpx !important;
-}
-.u-m-t-28,
-.up-m-t-28 {
- margin-top: 28rpx !important;
-}
-.u-p-t-28,
-.up-p-t-28 {
- padding-top: 28rpx !important;
-}
-.u-margin-top-28,
-.up-margin-top-28 {
- margin-top: 28rpx !important;
-}
-.u-padding-top-28,
-.up-padding-top-28 {
- padding-top: 28rpx !important;
-}
-.u-m-r-28,
-.up-m-r-28 {
- margin-right: 28rpx !important;
-}
-.u-p-r-28,
-.up-p-r-28 {
- padding-right: 28rpx !important;
-}
-.u-margin-right-28,
-.up-margin-right-28 {
- margin-right: 28rpx !important;
-}
-.u-padding-right-28,
-.up-padding-right-28 {
- padding-right: 28rpx !important;
-}
-.u-m-b-28,
-.up-m-b-28 {
- margin-bottom: 28rpx !important;
-}
-.u-p-b-28,
-.up-p-b-28 {
- padding-bottom: 28rpx !important;
-}
-.u-margin-bottom-28,
-.up-margin-bottom-28 {
- margin-bottom: 28rpx !important;
-}
-.u-padding-bottom-28,
-.up-padding-bottom-28 {
- padding-bottom: 28rpx !important;
-}
-.u-margin-30, .u-m-30,
-.up-margin-30, .up-m-30 {
- margin: 30rpx !important;
-}
-.u-padding-30, .u-p-30,
-.up-padding-30, .up-p-30 {
- padding: 30rpx !important;
-}
-.u-m-l-30,
-.up-m-l-30 {
- margin-left: 30rpx !important;
-}
-.u-p-l-30,
-.up-p-l-30 {
- padding-left: 30rpx !important;
-}
-.u-margin-left-30,
-.up-margin-left-30 {
- margin-left: 30rpx !important;
-}
-.u-padding-left-30,
-.up-padding-left-30 {
- padding-left: 30rpx !important;
-}
-.u-m-t-30,
-.up-m-t-30 {
- margin-top: 30rpx !important;
-}
-.u-p-t-30,
-.up-p-t-30 {
- padding-top: 30rpx !important;
-}
-.u-margin-top-30,
-.up-margin-top-30 {
- margin-top: 30rpx !important;
-}
-.u-padding-top-30,
-.up-padding-top-30 {
- padding-top: 30rpx !important;
-}
-.u-m-r-30,
-.up-m-r-30 {
- margin-right: 30rpx !important;
-}
-.u-p-r-30,
-.up-p-r-30 {
- padding-right: 30rpx !important;
-}
-.u-margin-right-30,
-.up-margin-right-30 {
- margin-right: 30rpx !important;
-}
-.u-padding-right-30,
-.up-padding-right-30 {
- padding-right: 30rpx !important;
-}
-.u-m-b-30,
-.up-m-b-30 {
- margin-bottom: 30rpx !important;
-}
-.u-p-b-30,
-.up-p-b-30 {
- padding-bottom: 30rpx !important;
-}
-.u-margin-bottom-30,
-.up-margin-bottom-30 {
- margin-bottom: 30rpx !important;
-}
-.u-padding-bottom-30,
-.up-padding-bottom-30 {
- padding-bottom: 30rpx !important;
-}
-.u-margin-32, .u-m-32,
-.up-margin-32, .up-m-32 {
- margin: 32rpx !important;
-}
-.u-padding-32, .u-p-32,
-.up-padding-32, .up-p-32 {
- padding: 32rpx !important;
-}
-.u-m-l-32,
-.up-m-l-32 {
- margin-left: 32rpx !important;
-}
-.u-p-l-32,
-.up-p-l-32 {
- padding-left: 32rpx !important;
-}
-.u-margin-left-32,
-.up-margin-left-32 {
- margin-left: 32rpx !important;
-}
-.u-padding-left-32,
-.up-padding-left-32 {
- padding-left: 32rpx !important;
-}
-.u-m-t-32,
-.up-m-t-32 {
- margin-top: 32rpx !important;
-}
-.u-p-t-32,
-.up-p-t-32 {
- padding-top: 32rpx !important;
-}
-.u-margin-top-32,
-.up-margin-top-32 {
- margin-top: 32rpx !important;
-}
-.u-padding-top-32,
-.up-padding-top-32 {
- padding-top: 32rpx !important;
-}
-.u-m-r-32,
-.up-m-r-32 {
- margin-right: 32rpx !important;
-}
-.u-p-r-32,
-.up-p-r-32 {
- padding-right: 32rpx !important;
-}
-.u-margin-right-32,
-.up-margin-right-32 {
- margin-right: 32rpx !important;
-}
-.u-padding-right-32,
-.up-padding-right-32 {
- padding-right: 32rpx !important;
-}
-.u-m-b-32,
-.up-m-b-32 {
- margin-bottom: 32rpx !important;
-}
-.u-p-b-32,
-.up-p-b-32 {
- padding-bottom: 32rpx !important;
-}
-.u-margin-bottom-32,
-.up-margin-bottom-32 {
- margin-bottom: 32rpx !important;
-}
-.u-padding-bottom-32,
-.up-padding-bottom-32 {
- padding-bottom: 32rpx !important;
-}
-.u-margin-34, .u-m-34,
-.up-margin-34, .up-m-34 {
- margin: 34rpx !important;
-}
-.u-padding-34, .u-p-34,
-.up-padding-34, .up-p-34 {
- padding: 34rpx !important;
-}
-.u-m-l-34,
-.up-m-l-34 {
- margin-left: 34rpx !important;
-}
-.u-p-l-34,
-.up-p-l-34 {
- padding-left: 34rpx !important;
-}
-.u-margin-left-34,
-.up-margin-left-34 {
- margin-left: 34rpx !important;
-}
-.u-padding-left-34,
-.up-padding-left-34 {
- padding-left: 34rpx !important;
-}
-.u-m-t-34,
-.up-m-t-34 {
- margin-top: 34rpx !important;
-}
-.u-p-t-34,
-.up-p-t-34 {
- padding-top: 34rpx !important;
-}
-.u-margin-top-34,
-.up-margin-top-34 {
- margin-top: 34rpx !important;
-}
-.u-padding-top-34,
-.up-padding-top-34 {
- padding-top: 34rpx !important;
-}
-.u-m-r-34,
-.up-m-r-34 {
- margin-right: 34rpx !important;
-}
-.u-p-r-34,
-.up-p-r-34 {
- padding-right: 34rpx !important;
-}
-.u-margin-right-34,
-.up-margin-right-34 {
- margin-right: 34rpx !important;
-}
-.u-padding-right-34,
-.up-padding-right-34 {
- padding-right: 34rpx !important;
-}
-.u-m-b-34,
-.up-m-b-34 {
- margin-bottom: 34rpx !important;
-}
-.u-p-b-34,
-.up-p-b-34 {
- padding-bottom: 34rpx !important;
-}
-.u-margin-bottom-34,
-.up-margin-bottom-34 {
- margin-bottom: 34rpx !important;
-}
-.u-padding-bottom-34,
-.up-padding-bottom-34 {
- padding-bottom: 34rpx !important;
-}
-.u-margin-35, .u-m-35,
-.up-margin-35, .up-m-35 {
- margin: 35rpx !important;
-}
-.u-padding-35, .u-p-35,
-.up-padding-35, .up-p-35 {
- padding: 35rpx !important;
-}
-.u-m-l-35,
-.up-m-l-35 {
- margin-left: 35rpx !important;
-}
-.u-p-l-35,
-.up-p-l-35 {
- padding-left: 35rpx !important;
-}
-.u-margin-left-35,
-.up-margin-left-35 {
- margin-left: 35rpx !important;
-}
-.u-padding-left-35,
-.up-padding-left-35 {
- padding-left: 35rpx !important;
-}
-.u-m-t-35,
-.up-m-t-35 {
- margin-top: 35rpx !important;
-}
-.u-p-t-35,
-.up-p-t-35 {
- padding-top: 35rpx !important;
-}
-.u-margin-top-35,
-.up-margin-top-35 {
- margin-top: 35rpx !important;
-}
-.u-padding-top-35,
-.up-padding-top-35 {
- padding-top: 35rpx !important;
-}
-.u-m-r-35,
-.up-m-r-35 {
- margin-right: 35rpx !important;
-}
-.u-p-r-35,
-.up-p-r-35 {
- padding-right: 35rpx !important;
-}
-.u-margin-right-35,
-.up-margin-right-35 {
- margin-right: 35rpx !important;
-}
-.u-padding-right-35,
-.up-padding-right-35 {
- padding-right: 35rpx !important;
-}
-.u-m-b-35,
-.up-m-b-35 {
- margin-bottom: 35rpx !important;
-}
-.u-p-b-35,
-.up-p-b-35 {
- padding-bottom: 35rpx !important;
-}
-.u-margin-bottom-35,
-.up-margin-bottom-35 {
- margin-bottom: 35rpx !important;
-}
-.u-padding-bottom-35,
-.up-padding-bottom-35 {
- padding-bottom: 35rpx !important;
-}
-.u-margin-36, .u-m-36,
-.up-margin-36, .up-m-36 {
- margin: 36rpx !important;
-}
-.u-padding-36, .u-p-36,
-.up-padding-36, .up-p-36 {
- padding: 36rpx !important;
-}
-.u-m-l-36,
-.up-m-l-36 {
- margin-left: 36rpx !important;
-}
-.u-p-l-36,
-.up-p-l-36 {
- padding-left: 36rpx !important;
-}
-.u-margin-left-36,
-.up-margin-left-36 {
- margin-left: 36rpx !important;
-}
-.u-padding-left-36,
-.up-padding-left-36 {
- padding-left: 36rpx !important;
-}
-.u-m-t-36,
-.up-m-t-36 {
- margin-top: 36rpx !important;
-}
-.u-p-t-36,
-.up-p-t-36 {
- padding-top: 36rpx !important;
-}
-.u-margin-top-36,
-.up-margin-top-36 {
- margin-top: 36rpx !important;
-}
-.u-padding-top-36,
-.up-padding-top-36 {
- padding-top: 36rpx !important;
-}
-.u-m-r-36,
-.up-m-r-36 {
- margin-right: 36rpx !important;
-}
-.u-p-r-36,
-.up-p-r-36 {
- padding-right: 36rpx !important;
-}
-.u-margin-right-36,
-.up-margin-right-36 {
- margin-right: 36rpx !important;
-}
-.u-padding-right-36,
-.up-padding-right-36 {
- padding-right: 36rpx !important;
-}
-.u-m-b-36,
-.up-m-b-36 {
- margin-bottom: 36rpx !important;
-}
-.u-p-b-36,
-.up-p-b-36 {
- padding-bottom: 36rpx !important;
-}
-.u-margin-bottom-36,
-.up-margin-bottom-36 {
- margin-bottom: 36rpx !important;
-}
-.u-padding-bottom-36,
-.up-padding-bottom-36 {
- padding-bottom: 36rpx !important;
-}
-.u-margin-38, .u-m-38,
-.up-margin-38, .up-m-38 {
- margin: 38rpx !important;
-}
-.u-padding-38, .u-p-38,
-.up-padding-38, .up-p-38 {
- padding: 38rpx !important;
-}
-.u-m-l-38,
-.up-m-l-38 {
- margin-left: 38rpx !important;
-}
-.u-p-l-38,
-.up-p-l-38 {
- padding-left: 38rpx !important;
-}
-.u-margin-left-38,
-.up-margin-left-38 {
- margin-left: 38rpx !important;
-}
-.u-padding-left-38,
-.up-padding-left-38 {
- padding-left: 38rpx !important;
-}
-.u-m-t-38,
-.up-m-t-38 {
- margin-top: 38rpx !important;
-}
-.u-p-t-38,
-.up-p-t-38 {
- padding-top: 38rpx !important;
-}
-.u-margin-top-38,
-.up-margin-top-38 {
- margin-top: 38rpx !important;
-}
-.u-padding-top-38,
-.up-padding-top-38 {
- padding-top: 38rpx !important;
-}
-.u-m-r-38,
-.up-m-r-38 {
- margin-right: 38rpx !important;
-}
-.u-p-r-38,
-.up-p-r-38 {
- padding-right: 38rpx !important;
-}
-.u-margin-right-38,
-.up-margin-right-38 {
- margin-right: 38rpx !important;
-}
-.u-padding-right-38,
-.up-padding-right-38 {
- padding-right: 38rpx !important;
-}
-.u-m-b-38,
-.up-m-b-38 {
- margin-bottom: 38rpx !important;
-}
-.u-p-b-38,
-.up-p-b-38 {
- padding-bottom: 38rpx !important;
-}
-.u-margin-bottom-38,
-.up-margin-bottom-38 {
- margin-bottom: 38rpx !important;
-}
-.u-padding-bottom-38,
-.up-padding-bottom-38 {
- padding-bottom: 38rpx !important;
-}
-.u-margin-40, .u-m-40,
-.up-margin-40, .up-m-40 {
- margin: 40rpx !important;
-}
-.u-padding-40, .u-p-40,
-.up-padding-40, .up-p-40 {
- padding: 40rpx !important;
-}
-.u-m-l-40,
-.up-m-l-40 {
- margin-left: 40rpx !important;
-}
-.u-p-l-40,
-.up-p-l-40 {
- padding-left: 40rpx !important;
-}
-.u-margin-left-40,
-.up-margin-left-40 {
- margin-left: 40rpx !important;
-}
-.u-padding-left-40,
-.up-padding-left-40 {
- padding-left: 40rpx !important;
-}
-.u-m-t-40,
-.up-m-t-40 {
- margin-top: 40rpx !important;
-}
-.u-p-t-40,
-.up-p-t-40 {
- padding-top: 40rpx !important;
-}
-.u-margin-top-40,
-.up-margin-top-40 {
- margin-top: 40rpx !important;
-}
-.u-padding-top-40,
-.up-padding-top-40 {
- padding-top: 40rpx !important;
-}
-.u-m-r-40,
-.up-m-r-40 {
- margin-right: 40rpx !important;
-}
-.u-p-r-40,
-.up-p-r-40 {
- padding-right: 40rpx !important;
-}
-.u-margin-right-40,
-.up-margin-right-40 {
- margin-right: 40rpx !important;
-}
-.u-padding-right-40,
-.up-padding-right-40 {
- padding-right: 40rpx !important;
-}
-.u-m-b-40,
-.up-m-b-40 {
- margin-bottom: 40rpx !important;
-}
-.u-p-b-40,
-.up-p-b-40 {
- padding-bottom: 40rpx !important;
-}
-.u-margin-bottom-40,
-.up-margin-bottom-40 {
- margin-bottom: 40rpx !important;
-}
-.u-padding-bottom-40,
-.up-padding-bottom-40 {
- padding-bottom: 40rpx !important;
-}
-.u-margin-42, .u-m-42,
-.up-margin-42, .up-m-42 {
- margin: 42rpx !important;
-}
-.u-padding-42, .u-p-42,
-.up-padding-42, .up-p-42 {
- padding: 42rpx !important;
-}
-.u-m-l-42,
-.up-m-l-42 {
- margin-left: 42rpx !important;
-}
-.u-p-l-42,
-.up-p-l-42 {
- padding-left: 42rpx !important;
-}
-.u-margin-left-42,
-.up-margin-left-42 {
- margin-left: 42rpx !important;
-}
-.u-padding-left-42,
-.up-padding-left-42 {
- padding-left: 42rpx !important;
-}
-.u-m-t-42,
-.up-m-t-42 {
- margin-top: 42rpx !important;
-}
-.u-p-t-42,
-.up-p-t-42 {
- padding-top: 42rpx !important;
-}
-.u-margin-top-42,
-.up-margin-top-42 {
- margin-top: 42rpx !important;
-}
-.u-padding-top-42,
-.up-padding-top-42 {
- padding-top: 42rpx !important;
-}
-.u-m-r-42,
-.up-m-r-42 {
- margin-right: 42rpx !important;
-}
-.u-p-r-42,
-.up-p-r-42 {
- padding-right: 42rpx !important;
-}
-.u-margin-right-42,
-.up-margin-right-42 {
- margin-right: 42rpx !important;
-}
-.u-padding-right-42,
-.up-padding-right-42 {
- padding-right: 42rpx !important;
-}
-.u-m-b-42,
-.up-m-b-42 {
- margin-bottom: 42rpx !important;
-}
-.u-p-b-42,
-.up-p-b-42 {
- padding-bottom: 42rpx !important;
-}
-.u-margin-bottom-42,
-.up-margin-bottom-42 {
- margin-bottom: 42rpx !important;
-}
-.u-padding-bottom-42,
-.up-padding-bottom-42 {
- padding-bottom: 42rpx !important;
-}
-.u-margin-44, .u-m-44,
-.up-margin-44, .up-m-44 {
- margin: 44rpx !important;
-}
-.u-padding-44, .u-p-44,
-.up-padding-44, .up-p-44 {
- padding: 44rpx !important;
-}
-.u-m-l-44,
-.up-m-l-44 {
- margin-left: 44rpx !important;
-}
-.u-p-l-44,
-.up-p-l-44 {
- padding-left: 44rpx !important;
-}
-.u-margin-left-44,
-.up-margin-left-44 {
- margin-left: 44rpx !important;
-}
-.u-padding-left-44,
-.up-padding-left-44 {
- padding-left: 44rpx !important;
-}
-.u-m-t-44,
-.up-m-t-44 {
- margin-top: 44rpx !important;
-}
-.u-p-t-44,
-.up-p-t-44 {
- padding-top: 44rpx !important;
-}
-.u-margin-top-44,
-.up-margin-top-44 {
- margin-top: 44rpx !important;
-}
-.u-padding-top-44,
-.up-padding-top-44 {
- padding-top: 44rpx !important;
-}
-.u-m-r-44,
-.up-m-r-44 {
- margin-right: 44rpx !important;
-}
-.u-p-r-44,
-.up-p-r-44 {
- padding-right: 44rpx !important;
-}
-.u-margin-right-44,
-.up-margin-right-44 {
- margin-right: 44rpx !important;
-}
-.u-padding-right-44,
-.up-padding-right-44 {
- padding-right: 44rpx !important;
-}
-.u-m-b-44,
-.up-m-b-44 {
- margin-bottom: 44rpx !important;
-}
-.u-p-b-44,
-.up-p-b-44 {
- padding-bottom: 44rpx !important;
-}
-.u-margin-bottom-44,
-.up-margin-bottom-44 {
- margin-bottom: 44rpx !important;
-}
-.u-padding-bottom-44,
-.up-padding-bottom-44 {
- padding-bottom: 44rpx !important;
-}
-.u-margin-45, .u-m-45,
-.up-margin-45, .up-m-45 {
- margin: 45rpx !important;
-}
-.u-padding-45, .u-p-45,
-.up-padding-45, .up-p-45 {
- padding: 45rpx !important;
-}
-.u-m-l-45,
-.up-m-l-45 {
- margin-left: 45rpx !important;
-}
-.u-p-l-45,
-.up-p-l-45 {
- padding-left: 45rpx !important;
-}
-.u-margin-left-45,
-.up-margin-left-45 {
- margin-left: 45rpx !important;
-}
-.u-padding-left-45,
-.up-padding-left-45 {
- padding-left: 45rpx !important;
-}
-.u-m-t-45,
-.up-m-t-45 {
- margin-top: 45rpx !important;
-}
-.u-p-t-45,
-.up-p-t-45 {
- padding-top: 45rpx !important;
-}
-.u-margin-top-45,
-.up-margin-top-45 {
- margin-top: 45rpx !important;
-}
-.u-padding-top-45,
-.up-padding-top-45 {
- padding-top: 45rpx !important;
-}
-.u-m-r-45,
-.up-m-r-45 {
- margin-right: 45rpx !important;
-}
-.u-p-r-45,
-.up-p-r-45 {
- padding-right: 45rpx !important;
-}
-.u-margin-right-45,
-.up-margin-right-45 {
- margin-right: 45rpx !important;
-}
-.u-padding-right-45,
-.up-padding-right-45 {
- padding-right: 45rpx !important;
-}
-.u-m-b-45,
-.up-m-b-45 {
- margin-bottom: 45rpx !important;
-}
-.u-p-b-45,
-.up-p-b-45 {
- padding-bottom: 45rpx !important;
-}
-.u-margin-bottom-45,
-.up-margin-bottom-45 {
- margin-bottom: 45rpx !important;
-}
-.u-padding-bottom-45,
-.up-padding-bottom-45 {
- padding-bottom: 45rpx !important;
-}
-.u-margin-46, .u-m-46,
-.up-margin-46, .up-m-46 {
- margin: 46rpx !important;
-}
-.u-padding-46, .u-p-46,
-.up-padding-46, .up-p-46 {
- padding: 46rpx !important;
-}
-.u-m-l-46,
-.up-m-l-46 {
- margin-left: 46rpx !important;
-}
-.u-p-l-46,
-.up-p-l-46 {
- padding-left: 46rpx !important;
-}
-.u-margin-left-46,
-.up-margin-left-46 {
- margin-left: 46rpx !important;
-}
-.u-padding-left-46,
-.up-padding-left-46 {
- padding-left: 46rpx !important;
-}
-.u-m-t-46,
-.up-m-t-46 {
- margin-top: 46rpx !important;
-}
-.u-p-t-46,
-.up-p-t-46 {
- padding-top: 46rpx !important;
-}
-.u-margin-top-46,
-.up-margin-top-46 {
- margin-top: 46rpx !important;
-}
-.u-padding-top-46,
-.up-padding-top-46 {
- padding-top: 46rpx !important;
-}
-.u-m-r-46,
-.up-m-r-46 {
- margin-right: 46rpx !important;
-}
-.u-p-r-46,
-.up-p-r-46 {
- padding-right: 46rpx !important;
-}
-.u-margin-right-46,
-.up-margin-right-46 {
- margin-right: 46rpx !important;
-}
-.u-padding-right-46,
-.up-padding-right-46 {
- padding-right: 46rpx !important;
-}
-.u-m-b-46,
-.up-m-b-46 {
- margin-bottom: 46rpx !important;
-}
-.u-p-b-46,
-.up-p-b-46 {
- padding-bottom: 46rpx !important;
-}
-.u-margin-bottom-46,
-.up-margin-bottom-46 {
- margin-bottom: 46rpx !important;
-}
-.u-padding-bottom-46,
-.up-padding-bottom-46 {
- padding-bottom: 46rpx !important;
-}
-.u-margin-48, .u-m-48,
-.up-margin-48, .up-m-48 {
- margin: 48rpx !important;
-}
-.u-padding-48, .u-p-48,
-.up-padding-48, .up-p-48 {
- padding: 48rpx !important;
-}
-.u-m-l-48,
-.up-m-l-48 {
- margin-left: 48rpx !important;
-}
-.u-p-l-48,
-.up-p-l-48 {
- padding-left: 48rpx !important;
-}
-.u-margin-left-48,
-.up-margin-left-48 {
- margin-left: 48rpx !important;
-}
-.u-padding-left-48,
-.up-padding-left-48 {
- padding-left: 48rpx !important;
-}
-.u-m-t-48,
-.up-m-t-48 {
- margin-top: 48rpx !important;
-}
-.u-p-t-48,
-.up-p-t-48 {
- padding-top: 48rpx !important;
-}
-.u-margin-top-48,
-.up-margin-top-48 {
- margin-top: 48rpx !important;
-}
-.u-padding-top-48,
-.up-padding-top-48 {
- padding-top: 48rpx !important;
-}
-.u-m-r-48,
-.up-m-r-48 {
- margin-right: 48rpx !important;
-}
-.u-p-r-48,
-.up-p-r-48 {
- padding-right: 48rpx !important;
-}
-.u-margin-right-48,
-.up-margin-right-48 {
- margin-right: 48rpx !important;
-}
-.u-padding-right-48,
-.up-padding-right-48 {
- padding-right: 48rpx !important;
-}
-.u-m-b-48,
-.up-m-b-48 {
- margin-bottom: 48rpx !important;
-}
-.u-p-b-48,
-.up-p-b-48 {
- padding-bottom: 48rpx !important;
-}
-.u-margin-bottom-48,
-.up-margin-bottom-48 {
- margin-bottom: 48rpx !important;
-}
-.u-padding-bottom-48,
-.up-padding-bottom-48 {
- padding-bottom: 48rpx !important;
-}
-.u-margin-50, .u-m-50,
-.up-margin-50, .up-m-50 {
- margin: 50rpx !important;
-}
-.u-padding-50, .u-p-50,
-.up-padding-50, .up-p-50 {
- padding: 50rpx !important;
-}
-.u-m-l-50,
-.up-m-l-50 {
- margin-left: 50rpx !important;
-}
-.u-p-l-50,
-.up-p-l-50 {
- padding-left: 50rpx !important;
-}
-.u-margin-left-50,
-.up-margin-left-50 {
- margin-left: 50rpx !important;
-}
-.u-padding-left-50,
-.up-padding-left-50 {
- padding-left: 50rpx !important;
-}
-.u-m-t-50,
-.up-m-t-50 {
- margin-top: 50rpx !important;
-}
-.u-p-t-50,
-.up-p-t-50 {
- padding-top: 50rpx !important;
-}
-.u-margin-top-50,
-.up-margin-top-50 {
- margin-top: 50rpx !important;
-}
-.u-padding-top-50,
-.up-padding-top-50 {
- padding-top: 50rpx !important;
-}
-.u-m-r-50,
-.up-m-r-50 {
- margin-right: 50rpx !important;
-}
-.u-p-r-50,
-.up-p-r-50 {
- padding-right: 50rpx !important;
-}
-.u-margin-right-50,
-.up-margin-right-50 {
- margin-right: 50rpx !important;
-}
-.u-padding-right-50,
-.up-padding-right-50 {
- padding-right: 50rpx !important;
-}
-.u-m-b-50,
-.up-m-b-50 {
- margin-bottom: 50rpx !important;
-}
-.u-p-b-50,
-.up-p-b-50 {
- padding-bottom: 50rpx !important;
-}
-.u-margin-bottom-50,
-.up-margin-bottom-50 {
- margin-bottom: 50rpx !important;
-}
-.u-padding-bottom-50,
-.up-padding-bottom-50 {
- padding-bottom: 50rpx !important;
-}
-.u-margin-52, .u-m-52,
-.up-margin-52, .up-m-52 {
- margin: 52rpx !important;
-}
-.u-padding-52, .u-p-52,
-.up-padding-52, .up-p-52 {
- padding: 52rpx !important;
-}
-.u-m-l-52,
-.up-m-l-52 {
- margin-left: 52rpx !important;
-}
-.u-p-l-52,
-.up-p-l-52 {
- padding-left: 52rpx !important;
-}
-.u-margin-left-52,
-.up-margin-left-52 {
- margin-left: 52rpx !important;
-}
-.u-padding-left-52,
-.up-padding-left-52 {
- padding-left: 52rpx !important;
-}
-.u-m-t-52,
-.up-m-t-52 {
- margin-top: 52rpx !important;
-}
-.u-p-t-52,
-.up-p-t-52 {
- padding-top: 52rpx !important;
-}
-.u-margin-top-52,
-.up-margin-top-52 {
- margin-top: 52rpx !important;
-}
-.u-padding-top-52,
-.up-padding-top-52 {
- padding-top: 52rpx !important;
-}
-.u-m-r-52,
-.up-m-r-52 {
- margin-right: 52rpx !important;
-}
-.u-p-r-52,
-.up-p-r-52 {
- padding-right: 52rpx !important;
-}
-.u-margin-right-52,
-.up-margin-right-52 {
- margin-right: 52rpx !important;
-}
-.u-padding-right-52,
-.up-padding-right-52 {
- padding-right: 52rpx !important;
-}
-.u-m-b-52,
-.up-m-b-52 {
- margin-bottom: 52rpx !important;
-}
-.u-p-b-52,
-.up-p-b-52 {
- padding-bottom: 52rpx !important;
-}
-.u-margin-bottom-52,
-.up-margin-bottom-52 {
- margin-bottom: 52rpx !important;
-}
-.u-padding-bottom-52,
-.up-padding-bottom-52 {
- padding-bottom: 52rpx !important;
-}
-.u-margin-54, .u-m-54,
-.up-margin-54, .up-m-54 {
- margin: 54rpx !important;
-}
-.u-padding-54, .u-p-54,
-.up-padding-54, .up-p-54 {
- padding: 54rpx !important;
-}
-.u-m-l-54,
-.up-m-l-54 {
- margin-left: 54rpx !important;
-}
-.u-p-l-54,
-.up-p-l-54 {
- padding-left: 54rpx !important;
-}
-.u-margin-left-54,
-.up-margin-left-54 {
- margin-left: 54rpx !important;
-}
-.u-padding-left-54,
-.up-padding-left-54 {
- padding-left: 54rpx !important;
-}
-.u-m-t-54,
-.up-m-t-54 {
- margin-top: 54rpx !important;
-}
-.u-p-t-54,
-.up-p-t-54 {
- padding-top: 54rpx !important;
-}
-.u-margin-top-54,
-.up-margin-top-54 {
- margin-top: 54rpx !important;
-}
-.u-padding-top-54,
-.up-padding-top-54 {
- padding-top: 54rpx !important;
-}
-.u-m-r-54,
-.up-m-r-54 {
- margin-right: 54rpx !important;
-}
-.u-p-r-54,
-.up-p-r-54 {
- padding-right: 54rpx !important;
-}
-.u-margin-right-54,
-.up-margin-right-54 {
- margin-right: 54rpx !important;
-}
-.u-padding-right-54,
-.up-padding-right-54 {
- padding-right: 54rpx !important;
-}
-.u-m-b-54,
-.up-m-b-54 {
- margin-bottom: 54rpx !important;
-}
-.u-p-b-54,
-.up-p-b-54 {
- padding-bottom: 54rpx !important;
-}
-.u-margin-bottom-54,
-.up-margin-bottom-54 {
- margin-bottom: 54rpx !important;
-}
-.u-padding-bottom-54,
-.up-padding-bottom-54 {
- padding-bottom: 54rpx !important;
-}
-.u-margin-55, .u-m-55,
-.up-margin-55, .up-m-55 {
- margin: 55rpx !important;
-}
-.u-padding-55, .u-p-55,
-.up-padding-55, .up-p-55 {
- padding: 55rpx !important;
-}
-.u-m-l-55,
-.up-m-l-55 {
- margin-left: 55rpx !important;
-}
-.u-p-l-55,
-.up-p-l-55 {
- padding-left: 55rpx !important;
-}
-.u-margin-left-55,
-.up-margin-left-55 {
- margin-left: 55rpx !important;
-}
-.u-padding-left-55,
-.up-padding-left-55 {
- padding-left: 55rpx !important;
-}
-.u-m-t-55,
-.up-m-t-55 {
- margin-top: 55rpx !important;
-}
-.u-p-t-55,
-.up-p-t-55 {
- padding-top: 55rpx !important;
-}
-.u-margin-top-55,
-.up-margin-top-55 {
- margin-top: 55rpx !important;
-}
-.u-padding-top-55,
-.up-padding-top-55 {
- padding-top: 55rpx !important;
-}
-.u-m-r-55,
-.up-m-r-55 {
- margin-right: 55rpx !important;
-}
-.u-p-r-55,
-.up-p-r-55 {
- padding-right: 55rpx !important;
-}
-.u-margin-right-55,
-.up-margin-right-55 {
- margin-right: 55rpx !important;
-}
-.u-padding-right-55,
-.up-padding-right-55 {
- padding-right: 55rpx !important;
-}
-.u-m-b-55,
-.up-m-b-55 {
- margin-bottom: 55rpx !important;
-}
-.u-p-b-55,
-.up-p-b-55 {
- padding-bottom: 55rpx !important;
-}
-.u-margin-bottom-55,
-.up-margin-bottom-55 {
- margin-bottom: 55rpx !important;
-}
-.u-padding-bottom-55,
-.up-padding-bottom-55 {
- padding-bottom: 55rpx !important;
-}
-.u-margin-56, .u-m-56,
-.up-margin-56, .up-m-56 {
- margin: 56rpx !important;
-}
-.u-padding-56, .u-p-56,
-.up-padding-56, .up-p-56 {
- padding: 56rpx !important;
-}
-.u-m-l-56,
-.up-m-l-56 {
- margin-left: 56rpx !important;
-}
-.u-p-l-56,
-.up-p-l-56 {
- padding-left: 56rpx !important;
-}
-.u-margin-left-56,
-.up-margin-left-56 {
- margin-left: 56rpx !important;
-}
-.u-padding-left-56,
-.up-padding-left-56 {
- padding-left: 56rpx !important;
-}
-.u-m-t-56,
-.up-m-t-56 {
- margin-top: 56rpx !important;
-}
-.u-p-t-56,
-.up-p-t-56 {
- padding-top: 56rpx !important;
-}
-.u-margin-top-56,
-.up-margin-top-56 {
- margin-top: 56rpx !important;
-}
-.u-padding-top-56,
-.up-padding-top-56 {
- padding-top: 56rpx !important;
-}
-.u-m-r-56,
-.up-m-r-56 {
- margin-right: 56rpx !important;
-}
-.u-p-r-56,
-.up-p-r-56 {
- padding-right: 56rpx !important;
-}
-.u-margin-right-56,
-.up-margin-right-56 {
- margin-right: 56rpx !important;
-}
-.u-padding-right-56,
-.up-padding-right-56 {
- padding-right: 56rpx !important;
-}
-.u-m-b-56,
-.up-m-b-56 {
- margin-bottom: 56rpx !important;
-}
-.u-p-b-56,
-.up-p-b-56 {
- padding-bottom: 56rpx !important;
-}
-.u-margin-bottom-56,
-.up-margin-bottom-56 {
- margin-bottom: 56rpx !important;
-}
-.u-padding-bottom-56,
-.up-padding-bottom-56 {
- padding-bottom: 56rpx !important;
-}
-.u-margin-58, .u-m-58,
-.up-margin-58, .up-m-58 {
- margin: 58rpx !important;
-}
-.u-padding-58, .u-p-58,
-.up-padding-58, .up-p-58 {
- padding: 58rpx !important;
-}
-.u-m-l-58,
-.up-m-l-58 {
- margin-left: 58rpx !important;
-}
-.u-p-l-58,
-.up-p-l-58 {
- padding-left: 58rpx !important;
-}
-.u-margin-left-58,
-.up-margin-left-58 {
- margin-left: 58rpx !important;
-}
-.u-padding-left-58,
-.up-padding-left-58 {
- padding-left: 58rpx !important;
-}
-.u-m-t-58,
-.up-m-t-58 {
- margin-top: 58rpx !important;
-}
-.u-p-t-58,
-.up-p-t-58 {
- padding-top: 58rpx !important;
-}
-.u-margin-top-58,
-.up-margin-top-58 {
- margin-top: 58rpx !important;
-}
-.u-padding-top-58,
-.up-padding-top-58 {
- padding-top: 58rpx !important;
-}
-.u-m-r-58,
-.up-m-r-58 {
- margin-right: 58rpx !important;
-}
-.u-p-r-58,
-.up-p-r-58 {
- padding-right: 58rpx !important;
-}
-.u-margin-right-58,
-.up-margin-right-58 {
- margin-right: 58rpx !important;
-}
-.u-padding-right-58,
-.up-padding-right-58 {
- padding-right: 58rpx !important;
-}
-.u-m-b-58,
-.up-m-b-58 {
- margin-bottom: 58rpx !important;
-}
-.u-p-b-58,
-.up-p-b-58 {
- padding-bottom: 58rpx !important;
-}
-.u-margin-bottom-58,
-.up-margin-bottom-58 {
- margin-bottom: 58rpx !important;
-}
-.u-padding-bottom-58,
-.up-padding-bottom-58 {
- padding-bottom: 58rpx !important;
-}
-.u-margin-60, .u-m-60,
-.up-margin-60, .up-m-60 {
- margin: 60rpx !important;
-}
-.u-padding-60, .u-p-60,
-.up-padding-60, .up-p-60 {
- padding: 60rpx !important;
-}
-.u-m-l-60,
-.up-m-l-60 {
- margin-left: 60rpx !important;
-}
-.u-p-l-60,
-.up-p-l-60 {
- padding-left: 60rpx !important;
-}
-.u-margin-left-60,
-.up-margin-left-60 {
- margin-left: 60rpx !important;
-}
-.u-padding-left-60,
-.up-padding-left-60 {
- padding-left: 60rpx !important;
-}
-.u-m-t-60,
-.up-m-t-60 {
- margin-top: 60rpx !important;
-}
-.u-p-t-60,
-.up-p-t-60 {
- padding-top: 60rpx !important;
-}
-.u-margin-top-60,
-.up-margin-top-60 {
- margin-top: 60rpx !important;
-}
-.u-padding-top-60,
-.up-padding-top-60 {
- padding-top: 60rpx !important;
-}
-.u-m-r-60,
-.up-m-r-60 {
- margin-right: 60rpx !important;
-}
-.u-p-r-60,
-.up-p-r-60 {
- padding-right: 60rpx !important;
-}
-.u-margin-right-60,
-.up-margin-right-60 {
- margin-right: 60rpx !important;
-}
-.u-padding-right-60,
-.up-padding-right-60 {
- padding-right: 60rpx !important;
-}
-.u-m-b-60,
-.up-m-b-60 {
- margin-bottom: 60rpx !important;
-}
-.u-p-b-60,
-.up-p-b-60 {
- padding-bottom: 60rpx !important;
-}
-.u-margin-bottom-60,
-.up-margin-bottom-60 {
- margin-bottom: 60rpx !important;
-}
-.u-padding-bottom-60,
-.up-padding-bottom-60 {
- padding-bottom: 60rpx !important;
-}
-.u-margin-62, .u-m-62,
-.up-margin-62, .up-m-62 {
- margin: 62rpx !important;
-}
-.u-padding-62, .u-p-62,
-.up-padding-62, .up-p-62 {
- padding: 62rpx !important;
-}
-.u-m-l-62,
-.up-m-l-62 {
- margin-left: 62rpx !important;
-}
-.u-p-l-62,
-.up-p-l-62 {
- padding-left: 62rpx !important;
-}
-.u-margin-left-62,
-.up-margin-left-62 {
- margin-left: 62rpx !important;
-}
-.u-padding-left-62,
-.up-padding-left-62 {
- padding-left: 62rpx !important;
-}
-.u-m-t-62,
-.up-m-t-62 {
- margin-top: 62rpx !important;
-}
-.u-p-t-62,
-.up-p-t-62 {
- padding-top: 62rpx !important;
-}
-.u-margin-top-62,
-.up-margin-top-62 {
- margin-top: 62rpx !important;
-}
-.u-padding-top-62,
-.up-padding-top-62 {
- padding-top: 62rpx !important;
-}
-.u-m-r-62,
-.up-m-r-62 {
- margin-right: 62rpx !important;
-}
-.u-p-r-62,
-.up-p-r-62 {
- padding-right: 62rpx !important;
-}
-.u-margin-right-62,
-.up-margin-right-62 {
- margin-right: 62rpx !important;
-}
-.u-padding-right-62,
-.up-padding-right-62 {
- padding-right: 62rpx !important;
-}
-.u-m-b-62,
-.up-m-b-62 {
- margin-bottom: 62rpx !important;
-}
-.u-p-b-62,
-.up-p-b-62 {
- padding-bottom: 62rpx !important;
-}
-.u-margin-bottom-62,
-.up-margin-bottom-62 {
- margin-bottom: 62rpx !important;
-}
-.u-padding-bottom-62,
-.up-padding-bottom-62 {
- padding-bottom: 62rpx !important;
-}
-.u-margin-64, .u-m-64,
-.up-margin-64, .up-m-64 {
- margin: 64rpx !important;
-}
-.u-padding-64, .u-p-64,
-.up-padding-64, .up-p-64 {
- padding: 64rpx !important;
-}
-.u-m-l-64,
-.up-m-l-64 {
- margin-left: 64rpx !important;
-}
-.u-p-l-64,
-.up-p-l-64 {
- padding-left: 64rpx !important;
-}
-.u-margin-left-64,
-.up-margin-left-64 {
- margin-left: 64rpx !important;
-}
-.u-padding-left-64,
-.up-padding-left-64 {
- padding-left: 64rpx !important;
-}
-.u-m-t-64,
-.up-m-t-64 {
- margin-top: 64rpx !important;
-}
-.u-p-t-64,
-.up-p-t-64 {
- padding-top: 64rpx !important;
-}
-.u-margin-top-64,
-.up-margin-top-64 {
- margin-top: 64rpx !important;
-}
-.u-padding-top-64,
-.up-padding-top-64 {
- padding-top: 64rpx !important;
-}
-.u-m-r-64,
-.up-m-r-64 {
- margin-right: 64rpx !important;
-}
-.u-p-r-64,
-.up-p-r-64 {
- padding-right: 64rpx !important;
-}
-.u-margin-right-64,
-.up-margin-right-64 {
- margin-right: 64rpx !important;
-}
-.u-padding-right-64,
-.up-padding-right-64 {
- padding-right: 64rpx !important;
-}
-.u-m-b-64,
-.up-m-b-64 {
- margin-bottom: 64rpx !important;
-}
-.u-p-b-64,
-.up-p-b-64 {
- padding-bottom: 64rpx !important;
-}
-.u-margin-bottom-64,
-.up-margin-bottom-64 {
- margin-bottom: 64rpx !important;
-}
-.u-padding-bottom-64,
-.up-padding-bottom-64 {
- padding-bottom: 64rpx !important;
-}
-.u-margin-65, .u-m-65,
-.up-margin-65, .up-m-65 {
- margin: 65rpx !important;
-}
-.u-padding-65, .u-p-65,
-.up-padding-65, .up-p-65 {
- padding: 65rpx !important;
-}
-.u-m-l-65,
-.up-m-l-65 {
- margin-left: 65rpx !important;
-}
-.u-p-l-65,
-.up-p-l-65 {
- padding-left: 65rpx !important;
-}
-.u-margin-left-65,
-.up-margin-left-65 {
- margin-left: 65rpx !important;
-}
-.u-padding-left-65,
-.up-padding-left-65 {
- padding-left: 65rpx !important;
-}
-.u-m-t-65,
-.up-m-t-65 {
- margin-top: 65rpx !important;
-}
-.u-p-t-65,
-.up-p-t-65 {
- padding-top: 65rpx !important;
-}
-.u-margin-top-65,
-.up-margin-top-65 {
- margin-top: 65rpx !important;
-}
-.u-padding-top-65,
-.up-padding-top-65 {
- padding-top: 65rpx !important;
-}
-.u-m-r-65,
-.up-m-r-65 {
- margin-right: 65rpx !important;
-}
-.u-p-r-65,
-.up-p-r-65 {
- padding-right: 65rpx !important;
-}
-.u-margin-right-65,
-.up-margin-right-65 {
- margin-right: 65rpx !important;
-}
-.u-padding-right-65,
-.up-padding-right-65 {
- padding-right: 65rpx !important;
-}
-.u-m-b-65,
-.up-m-b-65 {
- margin-bottom: 65rpx !important;
-}
-.u-p-b-65,
-.up-p-b-65 {
- padding-bottom: 65rpx !important;
-}
-.u-margin-bottom-65,
-.up-margin-bottom-65 {
- margin-bottom: 65rpx !important;
-}
-.u-padding-bottom-65,
-.up-padding-bottom-65 {
- padding-bottom: 65rpx !important;
-}
-.u-margin-66, .u-m-66,
-.up-margin-66, .up-m-66 {
- margin: 66rpx !important;
-}
-.u-padding-66, .u-p-66,
-.up-padding-66, .up-p-66 {
- padding: 66rpx !important;
-}
-.u-m-l-66,
-.up-m-l-66 {
- margin-left: 66rpx !important;
-}
-.u-p-l-66,
-.up-p-l-66 {
- padding-left: 66rpx !important;
-}
-.u-margin-left-66,
-.up-margin-left-66 {
- margin-left: 66rpx !important;
-}
-.u-padding-left-66,
-.up-padding-left-66 {
- padding-left: 66rpx !important;
-}
-.u-m-t-66,
-.up-m-t-66 {
- margin-top: 66rpx !important;
-}
-.u-p-t-66,
-.up-p-t-66 {
- padding-top: 66rpx !important;
-}
-.u-margin-top-66,
-.up-margin-top-66 {
- margin-top: 66rpx !important;
-}
-.u-padding-top-66,
-.up-padding-top-66 {
- padding-top: 66rpx !important;
-}
-.u-m-r-66,
-.up-m-r-66 {
- margin-right: 66rpx !important;
-}
-.u-p-r-66,
-.up-p-r-66 {
- padding-right: 66rpx !important;
-}
-.u-margin-right-66,
-.up-margin-right-66 {
- margin-right: 66rpx !important;
-}
-.u-padding-right-66,
-.up-padding-right-66 {
- padding-right: 66rpx !important;
-}
-.u-m-b-66,
-.up-m-b-66 {
- margin-bottom: 66rpx !important;
-}
-.u-p-b-66,
-.up-p-b-66 {
- padding-bottom: 66rpx !important;
-}
-.u-margin-bottom-66,
-.up-margin-bottom-66 {
- margin-bottom: 66rpx !important;
-}
-.u-padding-bottom-66,
-.up-padding-bottom-66 {
- padding-bottom: 66rpx !important;
-}
-.u-margin-68, .u-m-68,
-.up-margin-68, .up-m-68 {
- margin: 68rpx !important;
-}
-.u-padding-68, .u-p-68,
-.up-padding-68, .up-p-68 {
- padding: 68rpx !important;
-}
-.u-m-l-68,
-.up-m-l-68 {
- margin-left: 68rpx !important;
-}
-.u-p-l-68,
-.up-p-l-68 {
- padding-left: 68rpx !important;
-}
-.u-margin-left-68,
-.up-margin-left-68 {
- margin-left: 68rpx !important;
-}
-.u-padding-left-68,
-.up-padding-left-68 {
- padding-left: 68rpx !important;
-}
-.u-m-t-68,
-.up-m-t-68 {
- margin-top: 68rpx !important;
-}
-.u-p-t-68,
-.up-p-t-68 {
- padding-top: 68rpx !important;
-}
-.u-margin-top-68,
-.up-margin-top-68 {
- margin-top: 68rpx !important;
-}
-.u-padding-top-68,
-.up-padding-top-68 {
- padding-top: 68rpx !important;
-}
-.u-m-r-68,
-.up-m-r-68 {
- margin-right: 68rpx !important;
-}
-.u-p-r-68,
-.up-p-r-68 {
- padding-right: 68rpx !important;
-}
-.u-margin-right-68,
-.up-margin-right-68 {
- margin-right: 68rpx !important;
-}
-.u-padding-right-68,
-.up-padding-right-68 {
- padding-right: 68rpx !important;
-}
-.u-m-b-68,
-.up-m-b-68 {
- margin-bottom: 68rpx !important;
-}
-.u-p-b-68,
-.up-p-b-68 {
- padding-bottom: 68rpx !important;
-}
-.u-margin-bottom-68,
-.up-margin-bottom-68 {
- margin-bottom: 68rpx !important;
-}
-.u-padding-bottom-68,
-.up-padding-bottom-68 {
- padding-bottom: 68rpx !important;
-}
-.u-margin-70, .u-m-70,
-.up-margin-70, .up-m-70 {
- margin: 70rpx !important;
-}
-.u-padding-70, .u-p-70,
-.up-padding-70, .up-p-70 {
- padding: 70rpx !important;
-}
-.u-m-l-70,
-.up-m-l-70 {
- margin-left: 70rpx !important;
-}
-.u-p-l-70,
-.up-p-l-70 {
- padding-left: 70rpx !important;
-}
-.u-margin-left-70,
-.up-margin-left-70 {
- margin-left: 70rpx !important;
-}
-.u-padding-left-70,
-.up-padding-left-70 {
- padding-left: 70rpx !important;
-}
-.u-m-t-70,
-.up-m-t-70 {
- margin-top: 70rpx !important;
-}
-.u-p-t-70,
-.up-p-t-70 {
- padding-top: 70rpx !important;
-}
-.u-margin-top-70,
-.up-margin-top-70 {
- margin-top: 70rpx !important;
-}
-.u-padding-top-70,
-.up-padding-top-70 {
- padding-top: 70rpx !important;
-}
-.u-m-r-70,
-.up-m-r-70 {
- margin-right: 70rpx !important;
-}
-.u-p-r-70,
-.up-p-r-70 {
- padding-right: 70rpx !important;
-}
-.u-margin-right-70,
-.up-margin-right-70 {
- margin-right: 70rpx !important;
-}
-.u-padding-right-70,
-.up-padding-right-70 {
- padding-right: 70rpx !important;
-}
-.u-m-b-70,
-.up-m-b-70 {
- margin-bottom: 70rpx !important;
-}
-.u-p-b-70,
-.up-p-b-70 {
- padding-bottom: 70rpx !important;
-}
-.u-margin-bottom-70,
-.up-margin-bottom-70 {
- margin-bottom: 70rpx !important;
-}
-.u-padding-bottom-70,
-.up-padding-bottom-70 {
- padding-bottom: 70rpx !important;
-}
-.u-margin-72, .u-m-72,
-.up-margin-72, .up-m-72 {
- margin: 72rpx !important;
-}
-.u-padding-72, .u-p-72,
-.up-padding-72, .up-p-72 {
- padding: 72rpx !important;
-}
-.u-m-l-72,
-.up-m-l-72 {
- margin-left: 72rpx !important;
-}
-.u-p-l-72,
-.up-p-l-72 {
- padding-left: 72rpx !important;
-}
-.u-margin-left-72,
-.up-margin-left-72 {
- margin-left: 72rpx !important;
-}
-.u-padding-left-72,
-.up-padding-left-72 {
- padding-left: 72rpx !important;
-}
-.u-m-t-72,
-.up-m-t-72 {
- margin-top: 72rpx !important;
-}
-.u-p-t-72,
-.up-p-t-72 {
- padding-top: 72rpx !important;
-}
-.u-margin-top-72,
-.up-margin-top-72 {
- margin-top: 72rpx !important;
-}
-.u-padding-top-72,
-.up-padding-top-72 {
- padding-top: 72rpx !important;
-}
-.u-m-r-72,
-.up-m-r-72 {
- margin-right: 72rpx !important;
-}
-.u-p-r-72,
-.up-p-r-72 {
- padding-right: 72rpx !important;
-}
-.u-margin-right-72,
-.up-margin-right-72 {
- margin-right: 72rpx !important;
-}
-.u-padding-right-72,
-.up-padding-right-72 {
- padding-right: 72rpx !important;
-}
-.u-m-b-72,
-.up-m-b-72 {
- margin-bottom: 72rpx !important;
-}
-.u-p-b-72,
-.up-p-b-72 {
- padding-bottom: 72rpx !important;
-}
-.u-margin-bottom-72,
-.up-margin-bottom-72 {
- margin-bottom: 72rpx !important;
-}
-.u-padding-bottom-72,
-.up-padding-bottom-72 {
- padding-bottom: 72rpx !important;
-}
-.u-margin-74, .u-m-74,
-.up-margin-74, .up-m-74 {
- margin: 74rpx !important;
-}
-.u-padding-74, .u-p-74,
-.up-padding-74, .up-p-74 {
- padding: 74rpx !important;
-}
-.u-m-l-74,
-.up-m-l-74 {
- margin-left: 74rpx !important;
-}
-.u-p-l-74,
-.up-p-l-74 {
- padding-left: 74rpx !important;
-}
-.u-margin-left-74,
-.up-margin-left-74 {
- margin-left: 74rpx !important;
-}
-.u-padding-left-74,
-.up-padding-left-74 {
- padding-left: 74rpx !important;
-}
-.u-m-t-74,
-.up-m-t-74 {
- margin-top: 74rpx !important;
-}
-.u-p-t-74,
-.up-p-t-74 {
- padding-top: 74rpx !important;
-}
-.u-margin-top-74,
-.up-margin-top-74 {
- margin-top: 74rpx !important;
-}
-.u-padding-top-74,
-.up-padding-top-74 {
- padding-top: 74rpx !important;
-}
-.u-m-r-74,
-.up-m-r-74 {
- margin-right: 74rpx !important;
-}
-.u-p-r-74,
-.up-p-r-74 {
- padding-right: 74rpx !important;
-}
-.u-margin-right-74,
-.up-margin-right-74 {
- margin-right: 74rpx !important;
-}
-.u-padding-right-74,
-.up-padding-right-74 {
- padding-right: 74rpx !important;
-}
-.u-m-b-74,
-.up-m-b-74 {
- margin-bottom: 74rpx !important;
-}
-.u-p-b-74,
-.up-p-b-74 {
- padding-bottom: 74rpx !important;
-}
-.u-margin-bottom-74,
-.up-margin-bottom-74 {
- margin-bottom: 74rpx !important;
-}
-.u-padding-bottom-74,
-.up-padding-bottom-74 {
- padding-bottom: 74rpx !important;
-}
-.u-margin-75, .u-m-75,
-.up-margin-75, .up-m-75 {
- margin: 75rpx !important;
-}
-.u-padding-75, .u-p-75,
-.up-padding-75, .up-p-75 {
- padding: 75rpx !important;
-}
-.u-m-l-75,
-.up-m-l-75 {
- margin-left: 75rpx !important;
-}
-.u-p-l-75,
-.up-p-l-75 {
- padding-left: 75rpx !important;
-}
-.u-margin-left-75,
-.up-margin-left-75 {
- margin-left: 75rpx !important;
-}
-.u-padding-left-75,
-.up-padding-left-75 {
- padding-left: 75rpx !important;
-}
-.u-m-t-75,
-.up-m-t-75 {
- margin-top: 75rpx !important;
-}
-.u-p-t-75,
-.up-p-t-75 {
- padding-top: 75rpx !important;
-}
-.u-margin-top-75,
-.up-margin-top-75 {
- margin-top: 75rpx !important;
-}
-.u-padding-top-75,
-.up-padding-top-75 {
- padding-top: 75rpx !important;
-}
-.u-m-r-75,
-.up-m-r-75 {
- margin-right: 75rpx !important;
-}
-.u-p-r-75,
-.up-p-r-75 {
- padding-right: 75rpx !important;
-}
-.u-margin-right-75,
-.up-margin-right-75 {
- margin-right: 75rpx !important;
-}
-.u-padding-right-75,
-.up-padding-right-75 {
- padding-right: 75rpx !important;
-}
-.u-m-b-75,
-.up-m-b-75 {
- margin-bottom: 75rpx !important;
-}
-.u-p-b-75,
-.up-p-b-75 {
- padding-bottom: 75rpx !important;
-}
-.u-margin-bottom-75,
-.up-margin-bottom-75 {
- margin-bottom: 75rpx !important;
-}
-.u-padding-bottom-75,
-.up-padding-bottom-75 {
- padding-bottom: 75rpx !important;
-}
-.u-margin-76, .u-m-76,
-.up-margin-76, .up-m-76 {
- margin: 76rpx !important;
-}
-.u-padding-76, .u-p-76,
-.up-padding-76, .up-p-76 {
- padding: 76rpx !important;
-}
-.u-m-l-76,
-.up-m-l-76 {
- margin-left: 76rpx !important;
-}
-.u-p-l-76,
-.up-p-l-76 {
- padding-left: 76rpx !important;
-}
-.u-margin-left-76,
-.up-margin-left-76 {
- margin-left: 76rpx !important;
-}
-.u-padding-left-76,
-.up-padding-left-76 {
- padding-left: 76rpx !important;
-}
-.u-m-t-76,
-.up-m-t-76 {
- margin-top: 76rpx !important;
-}
-.u-p-t-76,
-.up-p-t-76 {
- padding-top: 76rpx !important;
-}
-.u-margin-top-76,
-.up-margin-top-76 {
- margin-top: 76rpx !important;
-}
-.u-padding-top-76,
-.up-padding-top-76 {
- padding-top: 76rpx !important;
-}
-.u-m-r-76,
-.up-m-r-76 {
- margin-right: 76rpx !important;
-}
-.u-p-r-76,
-.up-p-r-76 {
- padding-right: 76rpx !important;
-}
-.u-margin-right-76,
-.up-margin-right-76 {
- margin-right: 76rpx !important;
-}
-.u-padding-right-76,
-.up-padding-right-76 {
- padding-right: 76rpx !important;
-}
-.u-m-b-76,
-.up-m-b-76 {
- margin-bottom: 76rpx !important;
-}
-.u-p-b-76,
-.up-p-b-76 {
- padding-bottom: 76rpx !important;
-}
-.u-margin-bottom-76,
-.up-margin-bottom-76 {
- margin-bottom: 76rpx !important;
-}
-.u-padding-bottom-76,
-.up-padding-bottom-76 {
- padding-bottom: 76rpx !important;
-}
-.u-margin-78, .u-m-78,
-.up-margin-78, .up-m-78 {
- margin: 78rpx !important;
-}
-.u-padding-78, .u-p-78,
-.up-padding-78, .up-p-78 {
- padding: 78rpx !important;
-}
-.u-m-l-78,
-.up-m-l-78 {
- margin-left: 78rpx !important;
-}
-.u-p-l-78,
-.up-p-l-78 {
- padding-left: 78rpx !important;
-}
-.u-margin-left-78,
-.up-margin-left-78 {
- margin-left: 78rpx !important;
-}
-.u-padding-left-78,
-.up-padding-left-78 {
- padding-left: 78rpx !important;
-}
-.u-m-t-78,
-.up-m-t-78 {
- margin-top: 78rpx !important;
-}
-.u-p-t-78,
-.up-p-t-78 {
- padding-top: 78rpx !important;
-}
-.u-margin-top-78,
-.up-margin-top-78 {
- margin-top: 78rpx !important;
-}
-.u-padding-top-78,
-.up-padding-top-78 {
- padding-top: 78rpx !important;
-}
-.u-m-r-78,
-.up-m-r-78 {
- margin-right: 78rpx !important;
-}
-.u-p-r-78,
-.up-p-r-78 {
- padding-right: 78rpx !important;
-}
-.u-margin-right-78,
-.up-margin-right-78 {
- margin-right: 78rpx !important;
-}
-.u-padding-right-78,
-.up-padding-right-78 {
- padding-right: 78rpx !important;
-}
-.u-m-b-78,
-.up-m-b-78 {
- margin-bottom: 78rpx !important;
-}
-.u-p-b-78,
-.up-p-b-78 {
- padding-bottom: 78rpx !important;
-}
-.u-margin-bottom-78,
-.up-margin-bottom-78 {
- margin-bottom: 78rpx !important;
-}
-.u-padding-bottom-78,
-.up-padding-bottom-78 {
- padding-bottom: 78rpx !important;
-}
-.u-margin-80, .u-m-80,
-.up-margin-80, .up-m-80 {
- margin: 80rpx !important;
-}
-.u-padding-80, .u-p-80,
-.up-padding-80, .up-p-80 {
- padding: 80rpx !important;
-}
-.u-m-l-80,
-.up-m-l-80 {
- margin-left: 80rpx !important;
-}
-.u-p-l-80,
-.up-p-l-80 {
- padding-left: 80rpx !important;
-}
-.u-margin-left-80,
-.up-margin-left-80 {
- margin-left: 80rpx !important;
-}
-.u-padding-left-80,
-.up-padding-left-80 {
- padding-left: 80rpx !important;
-}
-.u-m-t-80,
-.up-m-t-80 {
- margin-top: 80rpx !important;
-}
-.u-p-t-80,
-.up-p-t-80 {
- padding-top: 80rpx !important;
-}
-.u-margin-top-80,
-.up-margin-top-80 {
- margin-top: 80rpx !important;
-}
-.u-padding-top-80,
-.up-padding-top-80 {
- padding-top: 80rpx !important;
-}
-.u-m-r-80,
-.up-m-r-80 {
- margin-right: 80rpx !important;
-}
-.u-p-r-80,
-.up-p-r-80 {
- padding-right: 80rpx !important;
-}
-.u-margin-right-80,
-.up-margin-right-80 {
- margin-right: 80rpx !important;
-}
-.u-padding-right-80,
-.up-padding-right-80 {
- padding-right: 80rpx !important;
-}
-.u-m-b-80,
-.up-m-b-80 {
- margin-bottom: 80rpx !important;
-}
-.u-p-b-80,
-.up-p-b-80 {
- padding-bottom: 80rpx !important;
-}
-.u-margin-bottom-80,
-.up-margin-bottom-80 {
- margin-bottom: 80rpx !important;
-}
-.u-padding-bottom-80,
-.up-padding-bottom-80 {
- padding-bottom: 80rpx !important;
-}
-.u-primary-light {
- color: #ecf5ff;
-}
-.u-warning-light {
- color: #fdf6ec;
-}
-.u-success-light {
- color: #f5fff0;
-}
-.u-error-light {
- color: #fef0f0;
-}
-.u-info-light {
- color: #f4f4f5;
-}
-.u-primary-light-bg {
- background-color: #ecf5ff;
-}
-.u-warning-light-bg {
- background-color: #fdf6ec;
-}
-.u-success-light-bg {
- background-color: #f5fff0;
-}
-.u-error-light-bg {
- background-color: #fef0f0;
-}
-.u-info-light-bg {
- background-color: #f4f4f5;
-}
-.u-primary-dark {
- color: #398ade;
-}
-.u-warning-dark {
- color: #f1a532;
-}
-.u-success-dark {
- color: #53c21d;
-}
-.u-error-dark {
- color: #e45656;
-}
-.u-info-dark {
- color: #767a82;
-}
-.u-primary-dark-bg {
- background-color: #398ade;
-}
-.u-warning-dark-bg {
- background-color: #f1a532;
-}
-.u-success-dark-bg {
- background-color: #53c21d;
-}
-.u-error-dark-bg {
- background-color: #e45656;
-}
-.u-info-dark-bg {
- background-color: #767a82;
-}
-.u-primary-disabled {
- color: #9acafc;
-}
-.u-warning-disabled {
- color: #f9d39b;
-}
-.u-success-disabled {
- color: #a9e08f;
-}
-.u-error-disabled {
- color: #f7b2b2;
-}
-.u-info-disabled {
- color: #c4c6c9;
-}
-.u-primary {
- color: #3c9cff;
-}
-.u-warning {
- color: #f9ae3d;
-}
-.u-success {
- color: #5ac725;
-}
-.u-error {
- color: #f56c6c;
-}
-.u-info {
- color: #909399;
-}
-.u-primary-bg {
- background-color: #3c9cff;
-}
-.u-warning-bg {
- background-color: #f9ae3d;
-}
-.u-success-bg {
- background-color: #5ac725;
-}
-.u-error-bg {
- background-color: #f56c6c;
-}
-.u-info-bg {
- background-color: #909399;
-}
-.u-main-color {
- color: #303133;
-}
-.u-content-color {
- color: #606266;
-}
-.u-tips-color {
- color: #909193;
-}
-.u-light-color {
- color: #c0c4cc;
-}
-.up-primary-light {
- color: #ecf5ff;
-}
-.up-warning-light {
- color: #fdf6ec;
-}
-.up-success-light {
- color: #f5fff0;
-}
-.up-error-light {
- color: #fef0f0;
-}
-.up-info-light {
- color: #f4f4f5;
-}
-.up-primary-light-bg {
- background-color: #ecf5ff;
-}
-.up-warning-light-bg {
- background-color: #fdf6ec;
-}
-.up-success-light-bg {
- background-color: #f5fff0;
-}
-.up-error-light-bg {
- background-color: #fef0f0;
-}
-.up-info-light-bg {
- background-color: #f4f4f5;
-}
-.up-primary-dark {
- color: #398ade;
-}
-.up-warning-dark {
- color: #f1a532;
-}
-.up-success-dark {
- color: #53c21d;
-}
-.up-error-dark {
- color: #e45656;
-}
-.up-info-dark {
- color: #767a82;
-}
-.up-primary-dark-bg {
- background-color: #398ade;
-}
-.up-warning-dark-bg {
- background-color: #f1a532;
-}
-.up-success-dark-bg {
- background-color: #53c21d;
-}
-.up-error-dark-bg {
- background-color: #e45656;
-}
-.up-info-dark-bg {
- background-color: #767a82;
-}
-.up-primary-disabled {
- color: #9acafc;
-}
-.up-warning-disabled {
- color: #f9d39b;
-}
-.up-success-disabled {
- color: #a9e08f;
-}
-.up-error-disabled {
- color: #f7b2b2;
-}
-.up-info-disabled {
- color: #c4c6c9;
-}
-.up-primary {
- color: #3c9cff;
-}
-.up-warning {
- color: #f9ae3d;
-}
-.up-success {
- color: #5ac725;
-}
-.up-error {
- color: #f56c6c;
-}
-.up-info {
- color: #909399;
-}
-.up-primary-bg {
- background-color: #3c9cff;
-}
-.up-warning-bg {
- background-color: #f9ae3d;
-}
-.up-success-bg {
- background-color: #5ac725;
-}
-.up-error-bg {
- background-color: #f56c6c;
-}
-.up-info-bg {
- background-color: #909399;
-}
-.up-main-color {
- color: #303133;
-}
-.up-content-color {
- color: #606266;
-}
-.up-tips-color {
- color: #909193;
-}
-.up-light-color {
- color: #c0c4cc;
-}
-.u-safe-area-inset-top,
-.up-safe-area-inset-top {
- padding-top: 0;
- padding-top: constant(safe-area-inset-top);
- padding-top: env(safe-area-inset-top);
-}
-.u-safe-area-inset-right,
-.up-safe-area-inset-right {
- padding-right: 0;
- padding-right: constant(safe-area-inset-right);
- padding-right: env(safe-area-inset-right);
-}
-.u-safe-area-inset-bottom,
-.up-safe-area-inset-bottom {
- padding-bottom: 0;
- padding-bottom: constant(safe-area-inset-bottom);
- padding-bottom: env(safe-area-inset-bottom);
-}
-.u-safe-area-inset-left,
-.up-safe-area-inset-left {
- padding-left: 0;
- padding-left: constant(safe-area-inset-left);
- padding-left: env(safe-area-inset-left);
-}
-::-webkit-scrollbar {
- display: none;
- width: 0 !important;
- height: 0 !important;
- -webkit-appearance: none;
- background: transparent;
-}page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
deleted file mode 100644
index 5ef40ef..0000000
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-const _imports_0$5 = "/static/蒙版组 273.png";
-const _imports_0$4 = "/static/my/Helpcenter.png";
-const _imports_1$2 = "/static/my/CustomerService.png";
-const _imports_2 = "/static/my/Account.png";
-const _imports_3$1 = "/static/my/Notification.png";
-const _imports_4 = "/static/my/Delete.png";
-const _imports_5 = "/static/my/Settings.png";
-const _imports_0$3 = "/static/my/Customer service.png";
-const _imports_1$1 = "/static/my/Phone.png";
-const _imports_0$2 = "/static/index/index_bg.png";
-const _imports_0$1 = "/static/index/phone.png";
-const _imports_1 = "/static/index/lock.png";
-const _imports_3 = "/static/index/photos.png";
-const _imports_0 = "/static/index/蒙版组 260.png";
-exports._imports_0 = _imports_0$5;
-exports._imports_0$1 = _imports_0$4;
-exports._imports_0$2 = _imports_0$3;
-exports._imports_0$3 = _imports_0$2;
-exports._imports_0$4 = _imports_0$1;
-exports._imports_0$5 = _imports_0;
-exports._imports_1 = _imports_1$2;
-exports._imports_1$1 = _imports_1$1;
-exports._imports_1$2 = _imports_1;
-exports._imports_2 = _imports_2;
-exports._imports_3 = _imports_3$1;
-exports._imports_3$1 = _imports_3;
-exports._imports_4 = _imports_4;
-exports._imports_5 = _imports_5;
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
deleted file mode 100644
index e2beea0..0000000
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ /dev/null
@@ -1,7829 +0,0 @@
-"use strict";
-const _export_sfc = (sfc, props) => {
- const target = sfc.__vccOpts || sfc;
- for (const [key, val] of props) {
- target[key] = val;
- }
- return target;
-};
-/**
-* @vue/shared v3.4.21
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/
-function makeMap(str, expectsLowerCase) {
- const set2 = new Set(str.split(","));
- return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val);
-}
-const EMPTY_OBJ = Object.freeze({});
-const EMPTY_ARR = Object.freeze([]);
-const NOOP = () => {
-};
-const NO = () => false;
-const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
-(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
-const isModelListener = (key) => key.startsWith("onUpdate:");
-const extend = Object.assign;
-const remove = (arr, el) => {
- const i = arr.indexOf(el);
- if (i > -1) {
- arr.splice(i, 1);
- }
-};
-const hasOwnProperty$1 = Object.prototype.hasOwnProperty;
-const hasOwn = (val, key) => hasOwnProperty$1.call(val, key);
-const isArray = Array.isArray;
-const isMap = (val) => toTypeString(val) === "[object Map]";
-const isSet = (val) => toTypeString(val) === "[object Set]";
-const isFunction = (val) => typeof val === "function";
-const isString = (val) => typeof val === "string";
-const isSymbol = (val) => typeof val === "symbol";
-const isObject = (val) => val !== null && typeof val === "object";
-const isPromise = (val) => {
- return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
-};
-const objectToString = Object.prototype.toString;
-const toTypeString = (value) => objectToString.call(value);
-const toRawType = (value) => {
- return toTypeString(value).slice(8, -1);
-};
-const isPlainObject = (val) => toTypeString(val) === "[object Object]";
-const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
-const isReservedProp = /* @__PURE__ */ makeMap(
- // the leading comma is intentional so empty string "" is also included
- ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
-);
-const isBuiltInDirective = /* @__PURE__ */ makeMap(
- "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"
-);
-const cacheStringFunction = (fn) => {
- const cache = /* @__PURE__ */ Object.create(null);
- return (str) => {
- const hit = cache[str];
- return hit || (cache[str] = fn(str));
- };
-};
-const camelizeRE = /-(\w)/g;
-const camelize = cacheStringFunction((str) => {
- return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
-});
-const hyphenateRE = /\B([A-Z])/g;
-const hyphenate = cacheStringFunction(
- (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
-);
-const capitalize = cacheStringFunction((str) => {
- return str.charAt(0).toUpperCase() + str.slice(1);
-});
-const toHandlerKey = cacheStringFunction((str) => {
- const s2 = str ? `on${capitalize(str)}` : ``;
- return s2;
-});
-const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
-const invokeArrayFns$1 = (fns, arg) => {
- for (let i = 0; i < fns.length; i++) {
- fns[i](arg);
- }
-};
-const def = (obj, key, value) => {
- Object.defineProperty(obj, key, {
- configurable: true,
- enumerable: false,
- value
- });
-};
-const looseToNumber = (val) => {
- const n2 = parseFloat(val);
- return isNaN(n2) ? val : n2;
-};
-let _globalThis;
-const getGlobalThis = () => {
- return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
-};
-function normalizeStyle(value) {
- if (isArray(value)) {
- const res = {};
- for (let i = 0; i < value.length; i++) {
- const item = value[i];
- const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
- if (normalized) {
- for (const key in normalized) {
- res[key] = normalized[key];
- }
- }
- }
- return res;
- } else if (isString(value) || isObject(value)) {
- return value;
- }
-}
-const listDelimiterRE = /;(?![^(]*\))/g;
-const propertyDelimiterRE = /:([^]+)/;
-const styleCommentRE = /\/\*[^]*?\*\//g;
-function parseStringStyle(cssText) {
- const ret = {};
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
- if (item) {
- const tmp = item.split(propertyDelimiterRE);
- tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
- }
- });
- return ret;
-}
-function normalizeClass(value) {
- let res = "";
- if (isString(value)) {
- res = value;
- } else if (isArray(value)) {
- for (let i = 0; i < value.length; i++) {
- const normalized = normalizeClass(value[i]);
- if (normalized) {
- res += normalized + " ";
- }
- }
- } else if (isObject(value)) {
- for (const name in value) {
- if (value[name]) {
- res += name + " ";
- }
- }
- }
- return res.trim();
-}
-const toDisplayString = (val) => {
- return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
-};
-const replacer = (_key, val) => {
- if (val && val.__v_isRef) {
- return replacer(_key, val.value);
- } else if (isMap(val)) {
- return {
- [`Map(${val.size})`]: [...val.entries()].reduce(
- (entries, [key, val2], i) => {
- entries[stringifySymbol(key, i) + " =>"] = val2;
- return entries;
- },
- {}
- )
- };
- } else if (isSet(val)) {
- return {
- [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
- };
- } else if (isSymbol(val)) {
- return stringifySymbol(val);
- } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {
- return String(val);
- }
- return val;
-};
-const stringifySymbol = (v, i = "") => {
- var _a;
- return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
-};
-const SLOT_DEFAULT_NAME = "d";
-const ON_SHOW = "onShow";
-const ON_HIDE = "onHide";
-const ON_LAUNCH = "onLaunch";
-const ON_ERROR = "onError";
-const ON_THEME_CHANGE = "onThemeChange";
-const ON_PAGE_NOT_FOUND = "onPageNotFound";
-const ON_UNHANDLE_REJECTION = "onUnhandledRejection";
-const ON_EXIT = "onExit";
-const ON_LOAD = "onLoad";
-const ON_READY = "onReady";
-const ON_UNLOAD = "onUnload";
-const ON_INIT = "onInit";
-const ON_SAVE_EXIT_STATE = "onSaveExitState";
-const ON_RESIZE = "onResize";
-const ON_BACK_PRESS = "onBackPress";
-const ON_PAGE_SCROLL = "onPageScroll";
-const ON_TAB_ITEM_TAP = "onTabItemTap";
-const ON_REACH_BOTTOM = "onReachBottom";
-const ON_PULL_DOWN_REFRESH = "onPullDownRefresh";
-const ON_SHARE_TIMELINE = "onShareTimeline";
-const ON_SHARE_CHAT = "onShareChat";
-const ON_ADD_TO_FAVORITES = "onAddToFavorites";
-const ON_SHARE_APP_MESSAGE = "onShareAppMessage";
-const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = "onNavigationBarSearchInputClicked";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = "onNavigationBarSearchInputChanged";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = "onNavigationBarSearchInputConfirmed";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = "onNavigationBarSearchInputFocusChanged";
-function hasLeadingSlash(str) {
- return str.indexOf("/") === 0;
-}
-function addLeadingSlash(str) {
- return hasLeadingSlash(str) ? str : "/" + str;
-}
-const invokeArrayFns = (fns, arg) => {
- let ret;
- for (let i = 0; i < fns.length; i++) {
- ret = fns[i](arg);
- }
- return ret;
-};
-function once(fn, ctx = null) {
- let res;
- return (...args) => {
- if (fn) {
- res = fn.apply(ctx, args);
- fn = null;
- }
- return res;
- };
-}
-function getValueByDataPath(obj, path) {
- if (!isString(path)) {
- return;
- }
- path = path.replace(/\[(\d+)\]/g, ".$1");
- const parts = path.split(".");
- let key = parts[0];
- if (!obj) {
- obj = {};
- }
- if (parts.length === 1) {
- return obj[key];
- }
- return getValueByDataPath(obj[key], parts.slice(1).join("."));
-}
-function sortObject(obj) {
- let sortObj = {};
- if (isPlainObject(obj)) {
- Object.keys(obj).sort().forEach((key) => {
- const _key = key;
- sortObj[_key] = obj[_key];
- });
- }
- return !Object.keys(sortObj) ? obj : sortObj;
-}
-const customizeRE = /:/g;
-function customizeEvent(str) {
- return camelize(str.replace(customizeRE, "-"));
-}
-const encode = encodeURIComponent;
-function stringifyQuery(obj, encodeStr = encode) {
- const res = obj ? Object.keys(obj).map((key) => {
- let val = obj[key];
- if (typeof val === void 0 || val === null) {
- val = "";
- } else if (isPlainObject(val)) {
- val = JSON.stringify(val);
- }
- return encodeStr(key) + "=" + encodeStr(val);
- }).filter((x) => x.length > 0).join("&") : null;
- return res ? `?${res}` : "";
-}
-const PAGE_HOOKS = [
- ON_INIT,
- ON_LOAD,
- ON_SHOW,
- ON_HIDE,
- ON_UNLOAD,
- ON_BACK_PRESS,
- ON_PAGE_SCROLL,
- ON_TAB_ITEM_TAP,
- ON_REACH_BOTTOM,
- ON_PULL_DOWN_REFRESH,
- ON_SHARE_TIMELINE,
- ON_SHARE_APP_MESSAGE,
- ON_SHARE_CHAT,
- ON_ADD_TO_FAVORITES,
- ON_SAVE_EXIT_STATE,
- ON_NAVIGATION_BAR_BUTTON_TAP,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED
-];
-function isRootHook(name) {
- return PAGE_HOOKS.indexOf(name) > -1;
-}
-const UniLifecycleHooks = [
- ON_SHOW,
- ON_HIDE,
- ON_LAUNCH,
- ON_ERROR,
- ON_THEME_CHANGE,
- ON_PAGE_NOT_FOUND,
- ON_UNHANDLE_REJECTION,
- ON_EXIT,
- ON_INIT,
- ON_LOAD,
- ON_READY,
- ON_UNLOAD,
- ON_RESIZE,
- ON_BACK_PRESS,
- ON_PAGE_SCROLL,
- ON_TAB_ITEM_TAP,
- ON_REACH_BOTTOM,
- ON_PULL_DOWN_REFRESH,
- ON_SHARE_TIMELINE,
- ON_ADD_TO_FAVORITES,
- ON_SHARE_APP_MESSAGE,
- ON_SHARE_CHAT,
- ON_SAVE_EXIT_STATE,
- ON_NAVIGATION_BAR_BUTTON_TAP,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,
- ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED
-];
-const MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /* @__PURE__ */ (() => {
- return {
- onPageScroll: 1,
- onShareAppMessage: 1 << 1,
- onShareTimeline: 1 << 2
- };
-})();
-function isUniLifecycleHook(name, value, checkType = true) {
- if (checkType && !isFunction(value)) {
- return false;
- }
- if (UniLifecycleHooks.indexOf(name) > -1) {
- return true;
- } else if (name.indexOf("on") === 0) {
- return true;
- }
- return false;
-}
-let vueApp;
-const createVueAppHooks = [];
-function onCreateVueApp(hook) {
- if (vueApp) {
- return hook(vueApp);
- }
- createVueAppHooks.push(hook);
-}
-function invokeCreateVueAppHook(app) {
- vueApp = app;
- createVueAppHooks.forEach((hook) => hook(app));
-}
-const invokeCreateErrorHandler = once((app, createErrorHandler2) => {
- if (isFunction(app._component.onError)) {
- return createErrorHandler2(app);
- }
-});
-const E = function() {
-};
-E.prototype = {
- _id: 1,
- on: function(name, callback, ctx) {
- var e2 = this.e || (this.e = {});
- (e2[name] || (e2[name] = [])).push({
- fn: callback,
- ctx,
- _id: this._id
- });
- return this._id++;
- },
- once: function(name, callback, ctx) {
- var self2 = this;
- function listener() {
- self2.off(name, listener);
- callback.apply(ctx, arguments);
- }
- listener._ = callback;
- return this.on(name, listener, ctx);
- },
- emit: function(name) {
- var data = [].slice.call(arguments, 1);
- var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
- var i = 0;
- var len = evtArr.length;
- for (i; i < len; i++) {
- evtArr[i].fn.apply(evtArr[i].ctx, data);
- }
- return this;
- },
- off: function(name, event) {
- var e2 = this.e || (this.e = {});
- var evts = e2[name];
- var liveEvents = [];
- if (evts && event) {
- for (var i = evts.length - 1; i >= 0; i--) {
- if (evts[i].fn === event || evts[i].fn._ === event || evts[i]._id === event) {
- evts.splice(i, 1);
- break;
- }
- }
- liveEvents = evts;
- }
- liveEvents.length ? e2[name] = liveEvents : delete e2[name];
- return this;
- }
-};
-var E$1 = E;
-const LOCALE_ZH_HANS = "zh-Hans";
-const LOCALE_ZH_HANT = "zh-Hant";
-const LOCALE_EN = "en";
-const LOCALE_FR = "fr";
-const LOCALE_ES = "es";
-function include(str, parts) {
- return !!parts.find((part) => str.indexOf(part) !== -1);
-}
-function startsWith(str, parts) {
- return parts.find((part) => str.indexOf(part) === 0);
-}
-function normalizeLocale(locale, messages) {
- if (!locale) {
- return;
- }
- locale = locale.trim().replace(/_/g, "-");
- if (messages && messages[locale]) {
- return locale;
- }
- locale = locale.toLowerCase();
- if (locale === "chinese") {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("zh") === 0) {
- if (locale.indexOf("-hans") > -1) {
- return LOCALE_ZH_HANS;
- }
- if (locale.indexOf("-hant") > -1) {
- return LOCALE_ZH_HANT;
- }
- if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) {
- return LOCALE_ZH_HANT;
- }
- return LOCALE_ZH_HANS;
- }
- let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
- if (messages && Object.keys(messages).length > 0) {
- locales = Object.keys(messages);
- }
- const lang = startsWith(locale, locales);
- if (lang) {
- return lang;
- }
-}
-function getBaseSystemInfo() {
- return wx.getSystemInfoSync();
-}
-function validateProtocolFail(name, msg) {
- console.warn(`${name}: ${msg}`);
-}
-function validateProtocol(name, data, protocol, onFail) {
- if (!onFail) {
- onFail = validateProtocolFail;
- }
- for (const key in protocol) {
- const errMsg = validateProp$1(key, data[key], protocol[key], !hasOwn(data, key));
- if (isString(errMsg)) {
- onFail(name, errMsg);
- }
- }
-}
-function validateProtocols(name, args, protocol, onFail) {
- if (!protocol) {
- return;
- }
- if (!isArray(protocol)) {
- return validateProtocol(name, args[0] || /* @__PURE__ */ Object.create(null), protocol, onFail);
- }
- const len = protocol.length;
- const argsLen = args.length;
- for (let i = 0; i < len; i++) {
- const opts = protocol[i];
- const data = /* @__PURE__ */ Object.create(null);
- if (argsLen > i) {
- data[opts.name] = args[i];
- }
- validateProtocol(name, data, { [opts.name]: opts }, onFail);
- }
-}
-function validateProp$1(name, value, prop, isAbsent) {
- if (!isPlainObject(prop)) {
- prop = { type: prop };
- }
- const { type, required, validator } = prop;
- if (required && isAbsent) {
- return 'Missing required args: "' + name + '"';
- }
- if (value == null && !required) {
- return;
- }
- if (type != null) {
- let isValid = false;
- const types = isArray(type) ? type : [type];
- const expectedTypes = [];
- for (let i = 0; i < types.length && !isValid; i++) {
- const { valid, expectedType } = assertType$1(value, types[i]);
- expectedTypes.push(expectedType || "");
- isValid = valid;
- }
- if (!isValid) {
- return getInvalidTypeMessage$1(name, value, expectedTypes);
- }
- }
- if (validator) {
- return validator(value);
- }
-}
-const isSimpleType$1 = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol");
-function assertType$1(value, type) {
- let valid;
- const expectedType = getType$1(type);
- if (isSimpleType$1(expectedType)) {
- const t2 = typeof value;
- valid = t2 === expectedType.toLowerCase();
- if (!valid && t2 === "object") {
- valid = value instanceof type;
- }
- } else if (expectedType === "Object") {
- valid = isObject(value);
- } else if (expectedType === "Array") {
- valid = isArray(value);
- } else {
- {
- valid = value instanceof type;
- }
- }
- return {
- valid,
- expectedType
- };
-}
-function getInvalidTypeMessage$1(name, value, expectedTypes) {
- let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(capitalize).join(", ")}`;
- const expectedType = expectedTypes[0];
- const receivedType = toRawType(value);
- const expectedValue = styleValue$1(value, expectedType);
- const receivedValue = styleValue$1(value, receivedType);
- if (expectedTypes.length === 1 && isExplicable$1(expectedType) && !isBoolean$1(expectedType, receivedType)) {
- message += ` with value ${expectedValue}`;
- }
- message += `, got ${receivedType} `;
- if (isExplicable$1(receivedType)) {
- message += `with value ${receivedValue}.`;
- }
- return message;
-}
-function getType$1(ctor) {
- const match = ctor && ctor.toString().match(/^\s*function (\w+)/);
- return match ? match[1] : "";
-}
-function styleValue$1(value, type) {
- if (type === "String") {
- return `"${value}"`;
- } else if (type === "Number") {
- return `${Number(value)}`;
- } else {
- return `${value}`;
- }
-}
-function isExplicable$1(type) {
- const explicitTypes = ["string", "number", "boolean"];
- return explicitTypes.some((elem) => type.toLowerCase() === elem);
-}
-function isBoolean$1(...args) {
- return args.some((elem) => elem.toLowerCase() === "boolean");
-}
-function tryCatch(fn) {
- return function() {
- try {
- return fn.apply(fn, arguments);
- } catch (e2) {
- console.error(e2);
- }
- };
-}
-let invokeCallbackId = 1;
-const invokeCallbacks = {};
-function addInvokeCallback(id, name, callback, keepAlive = false) {
- invokeCallbacks[id] = {
- name,
- keepAlive,
- callback
- };
- return id;
-}
-function invokeCallback(id, res, extras) {
- if (typeof id === "number") {
- const opts = invokeCallbacks[id];
- if (opts) {
- if (!opts.keepAlive) {
- delete invokeCallbacks[id];
- }
- return opts.callback(res, extras);
- }
- }
- return res;
-}
-const API_SUCCESS = "success";
-const API_FAIL = "fail";
-const API_COMPLETE = "complete";
-function getApiCallbacks(args) {
- const apiCallbacks = {};
- for (const name in args) {
- const fn = args[name];
- if (isFunction(fn)) {
- apiCallbacks[name] = tryCatch(fn);
- delete args[name];
- }
- }
- return apiCallbacks;
-}
-function normalizeErrMsg(errMsg, name) {
- if (!errMsg || errMsg.indexOf(":fail") === -1) {
- return name + ":ok";
- }
- return name + errMsg.substring(errMsg.indexOf(":fail"));
-}
-function createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {
- if (!isPlainObject(args)) {
- args = {};
- }
- const { success, fail, complete } = getApiCallbacks(args);
- const hasSuccess = isFunction(success);
- const hasFail = isFunction(fail);
- const hasComplete = isFunction(complete);
- const callbackId = invokeCallbackId++;
- addInvokeCallback(callbackId, name, (res) => {
- res = res || {};
- res.errMsg = normalizeErrMsg(res.errMsg, name);
- isFunction(beforeAll) && beforeAll(res);
- if (res.errMsg === name + ":ok") {
- isFunction(beforeSuccess) && beforeSuccess(res, args);
- hasSuccess && success(res);
- } else {
- hasFail && fail(res);
- }
- hasComplete && complete(res);
- });
- return callbackId;
-}
-const HOOK_SUCCESS = "success";
-const HOOK_FAIL = "fail";
-const HOOK_COMPLETE = "complete";
-const globalInterceptors = {};
-const scopedInterceptors = {};
-function wrapperHook(hook, params) {
- return function(data) {
- return hook(data, params) || data;
- };
-}
-function queue$2(hooks, data, params) {
- let promise = false;
- for (let i = 0; i < hooks.length; i++) {
- const hook = hooks[i];
- if (promise) {
- promise = Promise.resolve(wrapperHook(hook, params));
- } else {
- const res = hook(data, params);
- if (isPromise(res)) {
- promise = Promise.resolve(res);
- }
- if (res === false) {
- return {
- then() {
- },
- catch() {
- }
- };
- }
- }
- }
- return promise || {
- then(callback) {
- return callback(data);
- },
- catch() {
- }
- };
-}
-function wrapperOptions(interceptors2, options = {}) {
- [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {
- const hooks = interceptors2[name];
- if (!isArray(hooks)) {
- return;
- }
- const oldCallback = options[name];
- options[name] = function callbackInterceptor(res) {
- queue$2(hooks, res, options).then((res2) => {
- return isFunction(oldCallback) && oldCallback(res2) || res2;
- });
- };
- });
- return options;
-}
-function wrapperReturnValue(method, returnValue) {
- const returnValueHooks = [];
- if (isArray(globalInterceptors.returnValue)) {
- returnValueHooks.push(...globalInterceptors.returnValue);
- }
- const interceptor = scopedInterceptors[method];
- if (interceptor && isArray(interceptor.returnValue)) {
- returnValueHooks.push(...interceptor.returnValue);
- }
- returnValueHooks.forEach((hook) => {
- returnValue = hook(returnValue) || returnValue;
- });
- return returnValue;
-}
-function getApiInterceptorHooks(method) {
- const interceptor = /* @__PURE__ */ Object.create(null);
- Object.keys(globalInterceptors).forEach((hook) => {
- if (hook !== "returnValue") {
- interceptor[hook] = globalInterceptors[hook].slice();
- }
- });
- const scopedInterceptor = scopedInterceptors[method];
- if (scopedInterceptor) {
- Object.keys(scopedInterceptor).forEach((hook) => {
- if (hook !== "returnValue") {
- interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
- }
- });
- }
- return interceptor;
-}
-function invokeApi(method, api, options, params) {
- const interceptor = getApiInterceptorHooks(method);
- if (interceptor && Object.keys(interceptor).length) {
- if (isArray(interceptor.invoke)) {
- const res = queue$2(interceptor.invoke, options);
- return res.then((options2) => {
- return api(wrapperOptions(getApiInterceptorHooks(method), options2), ...params);
- });
- } else {
- return api(wrapperOptions(interceptor, options), ...params);
- }
- }
- return api(options, ...params);
-}
-function hasCallback(args) {
- if (isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) {
- return true;
- }
- return false;
-}
-function handlePromise(promise) {
- return promise;
-}
-function promisify$1(name, fn) {
- return (args = {}, ...rest) => {
- if (hasCallback(args)) {
- return wrapperReturnValue(name, invokeApi(name, fn, args, rest));
- }
- return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => {
- invokeApi(name, fn, extend(args, { success: resolve2, fail: reject }), rest);
- })));
- };
-}
-function formatApiArgs(args, options) {
- args[0];
- {
- return;
- }
-}
-function invokeSuccess(id, name, res) {
- const result = {
- errMsg: name + ":ok"
- };
- return invokeCallback(id, extend(res || {}, result));
-}
-function invokeFail(id, name, errMsg, errRes = {}) {
- const errMsgPrefix = name + ":fail";
- let apiErrMsg = "";
- if (!errMsg) {
- apiErrMsg = errMsgPrefix;
- } else if (errMsg.indexOf(errMsgPrefix) === 0) {
- apiErrMsg = errMsg;
- } else {
- apiErrMsg = errMsgPrefix + " " + errMsg;
- }
- {
- delete errRes.errCode;
- }
- let res = extend({ errMsg: apiErrMsg }, errRes);
- return invokeCallback(id, res);
-}
-function beforeInvokeApi(name, args, protocol, options) {
- {
- validateProtocols(name, args, protocol);
- }
- const errMsg = formatApiArgs(args);
- if (errMsg) {
- return errMsg;
- }
-}
-function parseErrMsg(errMsg) {
- if (!errMsg || isString(errMsg)) {
- return errMsg;
- }
- if (errMsg.stack) {
- if (typeof globalThis === "undefined" || !globalThis.harmonyChannel) {
- console.error(errMsg.message + "\n" + errMsg.stack);
- }
- return errMsg.message;
- }
- return errMsg;
-}
-function wrapperTaskApi(name, fn, protocol, options) {
- return (args) => {
- const id = createAsyncApiCallback(name, args, options);
- const errMsg = beforeInvokeApi(name, [args], protocol);
- if (errMsg) {
- return invokeFail(id, name, errMsg);
- }
- return fn(args, {
- resolve: (res) => invokeSuccess(id, name, res),
- reject: (errMsg2, errRes) => invokeFail(id, name, parseErrMsg(errMsg2), errRes)
- });
- };
-}
-function wrapperSyncApi(name, fn, protocol, options) {
- return (...args) => {
- const errMsg = beforeInvokeApi(name, args, protocol);
- if (errMsg) {
- throw new Error(errMsg);
- }
- return fn.apply(null, args);
- };
-}
-function wrapperAsyncApi(name, fn, protocol, options) {
- return wrapperTaskApi(name, fn, protocol, options);
-}
-function defineSyncApi(name, fn, protocol, options) {
- return wrapperSyncApi(name, fn, protocol);
-}
-function defineAsyncApi(name, fn, protocol, options) {
- return promisify$1(name, wrapperAsyncApi(name, fn, protocol, options));
-}
-const API_UPX2PX = "upx2px";
-const Upx2pxProtocol = [
- {
- name: "upx",
- type: [Number, String],
- required: true
- }
-];
-const EPS = 1e-4;
-const BASE_DEVICE_WIDTH = 750;
-let isIOS = false;
-let deviceWidth = 0;
-let deviceDPR = 0;
-function checkDeviceWidth() {
- const { platform, pixelRatio, windowWidth } = getBaseSystemInfo();
- deviceWidth = windowWidth;
- deviceDPR = pixelRatio;
- isIOS = platform === "ios";
-}
-const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {
- if (deviceWidth === 0) {
- checkDeviceWidth();
- }
- number = Number(number);
- if (number === 0) {
- return 0;
- }
- let width = newDeviceWidth || deviceWidth;
- let result = number / BASE_DEVICE_WIDTH * width;
- if (result < 0) {
- result = -result;
- }
- result = Math.floor(result + EPS);
- if (result === 0) {
- if (deviceDPR === 1 || !isIOS) {
- result = 1;
- } else {
- result = 0.5;
- }
- }
- return number < 0 ? -result : result;
-}, Upx2pxProtocol);
-const API_ADD_INTERCEPTOR = "addInterceptor";
-const API_REMOVE_INTERCEPTOR = "removeInterceptor";
-const AddInterceptorProtocol = [
- {
- name: "method",
- type: [String, Object],
- required: true
- }
-];
-const RemoveInterceptorProtocol = AddInterceptorProtocol;
-function mergeInterceptorHook(interceptors2, interceptor) {
- Object.keys(interceptor).forEach((hook) => {
- if (isFunction(interceptor[hook])) {
- interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]);
- }
- });
-}
-function removeInterceptorHook(interceptors2, interceptor) {
- if (!interceptors2 || !interceptor) {
- return;
- }
- Object.keys(interceptor).forEach((name) => {
- const hooks = interceptors2[name];
- const hook = interceptor[name];
- if (isArray(hooks) && isFunction(hook)) {
- remove(hooks, hook);
- }
- });
-}
-function mergeHook(parentVal, childVal) {
- const res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;
- return res ? dedupeHooks(res) : res;
-}
-function dedupeHooks(hooks) {
- const res = [];
- for (let i = 0; i < hooks.length; i++) {
- if (res.indexOf(hooks[i]) === -1) {
- res.push(hooks[i]);
- }
- }
- return res;
-}
-const addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {
- if (isString(method) && isPlainObject(interceptor)) {
- mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);
- } else if (isPlainObject(method)) {
- mergeInterceptorHook(globalInterceptors, method);
- }
-}, AddInterceptorProtocol);
-const removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {
- if (isString(method)) {
- if (isPlainObject(interceptor)) {
- removeInterceptorHook(scopedInterceptors[method], interceptor);
- } else {
- delete scopedInterceptors[method];
- }
- } else if (isPlainObject(method)) {
- removeInterceptorHook(globalInterceptors, method);
- }
-}, RemoveInterceptorProtocol);
-const interceptors = {};
-const API_ON = "$on";
-const OnProtocol = [
- {
- name: "event",
- type: String,
- required: true
- },
- {
- name: "callback",
- type: Function,
- required: true
- }
-];
-const API_ONCE = "$once";
-const OnceProtocol = OnProtocol;
-const API_OFF = "$off";
-const OffProtocol = [
- {
- name: "event",
- type: [String, Array]
- },
- {
- name: "callback",
- type: [Function, Number]
- }
-];
-const API_EMIT = "$emit";
-const EmitProtocol = [
- {
- name: "event",
- type: String,
- required: true
- }
-];
-class EventBus {
- constructor() {
- this.$emitter = new E$1();
- }
- on(name, callback) {
- return this.$emitter.on(name, callback);
- }
- once(name, callback) {
- return this.$emitter.once(name, callback);
- }
- off(name, callback) {
- if (!name) {
- this.$emitter.e = {};
- return;
- }
- this.$emitter.off(name, callback);
- }
- emit(name, ...args) {
- this.$emitter.emit(name, ...args);
- }
-}
-const eventBus = new EventBus();
-const $on = defineSyncApi(API_ON, (name, callback) => {
- eventBus.on(name, callback);
- return () => eventBus.off(name, callback);
-}, OnProtocol);
-const $once = defineSyncApi(API_ONCE, (name, callback) => {
- eventBus.once(name, callback);
- return () => eventBus.off(name, callback);
-}, OnceProtocol);
-const $off = defineSyncApi(API_OFF, (name, callback) => {
- if (!isArray(name))
- name = name ? [name] : [];
- name.forEach((n2) => eventBus.off(n2, callback));
-}, OffProtocol);
-const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
- eventBus.emit(name, ...args);
-}, EmitProtocol);
-let cid;
-let cidErrMsg;
-let enabled;
-function normalizePushMessage(message) {
- try {
- return JSON.parse(message);
- } catch (e2) {
- }
- return message;
-}
-function invokePushCallback(args) {
- if (args.type === "enabled") {
- enabled = true;
- } else if (args.type === "clientId") {
- cid = args.cid;
- cidErrMsg = args.errMsg;
- invokeGetPushCidCallbacks(cid, args.errMsg);
- } else if (args.type === "pushMsg") {
- const message = {
- type: "receive",
- data: normalizePushMessage(args.message)
- };
- for (let i = 0; i < onPushMessageCallbacks.length; i++) {
- const callback = onPushMessageCallbacks[i];
- callback(message);
- if (message.stopped) {
- break;
- }
- }
- } else if (args.type === "click") {
- onPushMessageCallbacks.forEach((callback) => {
- callback({
- type: "click",
- data: normalizePushMessage(args.message)
- });
- });
- }
-}
-const getPushCidCallbacks = [];
-function invokeGetPushCidCallbacks(cid2, errMsg) {
- getPushCidCallbacks.forEach((callback) => {
- callback(cid2, errMsg);
- });
- getPushCidCallbacks.length = 0;
-}
-const API_GET_PUSH_CLIENT_ID = "getPushClientId";
-const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: resolve2, reject }) => {
- Promise.resolve().then(() => {
- if (typeof enabled === "undefined") {
- enabled = false;
- cid = "";
- cidErrMsg = "uniPush is not enabled";
- }
- getPushCidCallbacks.push((cid2, errMsg) => {
- if (cid2) {
- resolve2({ cid: cid2 });
- } else {
- reject(errMsg);
- }
- });
- if (typeof cid !== "undefined") {
- invokeGetPushCidCallbacks(cid, cidErrMsg);
- }
- });
-});
-const onPushMessageCallbacks = [];
-const onPushMessage = (fn) => {
- if (onPushMessageCallbacks.indexOf(fn) === -1) {
- onPushMessageCallbacks.push(fn);
- }
-};
-const offPushMessage = (fn) => {
- if (!fn) {
- onPushMessageCallbacks.length = 0;
- } else {
- const index2 = onPushMessageCallbacks.indexOf(fn);
- if (index2 > -1) {
- onPushMessageCallbacks.splice(index2, 1);
- }
- }
-};
-const SYNC_API_RE = /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/;
-const CONTEXT_API_RE = /^create|Manager$/;
-const CONTEXT_API_RE_EXC = ["createBLEConnection"];
-const ASYNC_API = ["createBLEConnection"];
-const CALLBACK_API_RE = /^on|^off/;
-function isContextApi(name) {
- return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;
-}
-function isSyncApi(name) {
- return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;
-}
-function isCallbackApi(name) {
- return CALLBACK_API_RE.test(name) && name !== "onPush";
-}
-function shouldPromise(name) {
- if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) {
- return false;
- }
- return true;
-}
-if (!Promise.prototype.finally) {
- Promise.prototype.finally = function(onfinally) {
- const promise = this.constructor;
- return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => {
- throw reason;
- }));
- };
-}
-function promisify(name, api) {
- if (!shouldPromise(name)) {
- return api;
- }
- if (!isFunction(api)) {
- return api;
- }
- return function promiseApi(options = {}, ...rest) {
- if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) {
- return wrapperReturnValue(name, invokeApi(name, api, options, rest));
- }
- return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => {
- invokeApi(name, api, extend({}, options, {
- success: resolve2,
- fail: reject
- }), rest);
- })));
- };
-}
-const CALLBACKS = ["success", "fail", "cancel", "complete"];
-function initWrapper(protocols2) {
- function processCallback(methodName, method, returnValue) {
- return function(res) {
- return method(processReturnValue(methodName, res, returnValue));
- };
- }
- function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {
- if (isPlainObject(fromArgs)) {
- const toArgs = keepFromArgs === true ? fromArgs : {};
- if (isFunction(argsOption)) {
- argsOption = argsOption(fromArgs, toArgs) || {};
- }
- for (const key in fromArgs) {
- if (hasOwn(argsOption, key)) {
- let keyOption = argsOption[key];
- if (isFunction(keyOption)) {
- keyOption = keyOption(fromArgs[key], fromArgs, toArgs);
- }
- if (!keyOption) {
- console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`);
- } else if (isString(keyOption)) {
- toArgs[keyOption] = fromArgs[key];
- } else if (isPlainObject(keyOption)) {
- toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;
- }
- } else if (CALLBACKS.indexOf(key) !== -1) {
- const callback = fromArgs[key];
- if (isFunction(callback)) {
- toArgs[key] = processCallback(methodName, callback, returnValue);
- }
- } else {
- if (!keepFromArgs && !hasOwn(toArgs, key)) {
- toArgs[key] = fromArgs[key];
- }
- }
- }
- return toArgs;
- } else if (isFunction(fromArgs)) {
- fromArgs = processCallback(methodName, fromArgs, returnValue);
- }
- return fromArgs;
- }
- function processReturnValue(methodName, res, returnValue, keepReturnValue = false) {
- if (isFunction(protocols2.returnValue)) {
- res = protocols2.returnValue(methodName, res);
- }
- return processArgs(methodName, res, returnValue, {}, keepReturnValue);
- }
- return function wrapper(methodName, method) {
- if (!hasOwn(protocols2, methodName)) {
- return method;
- }
- const protocol = protocols2[methodName];
- if (!protocol) {
- return function() {
- console.error(`微信小程序 暂不支持${methodName}`);
- };
- }
- return function(arg1, arg2) {
- let options = protocol;
- if (isFunction(protocol)) {
- options = protocol(arg1);
- }
- arg1 = processArgs(methodName, arg1, options.args, options.returnValue);
- const args = [arg1];
- if (typeof arg2 !== "undefined") {
- args.push(arg2);
- }
- const returnValue = wx[options.name || methodName].apply(wx, args);
- if (isSyncApi(methodName)) {
- return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));
- }
- return returnValue;
- };
- };
-}
-const getLocale = () => {
- const app = isFunction(getApp) && getApp({ allowDefault: true });
- if (app && app.$vm) {
- return app.$vm.$locale;
- }
- return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;
-};
-const setLocale = (locale) => {
- const app = isFunction(getApp) && getApp();
- if (!app) {
- return false;
- }
- const oldLocale = app.$vm.$locale;
- if (oldLocale !== locale) {
- app.$vm.$locale = locale;
- onLocaleChangeCallbacks.forEach((fn) => fn({ locale }));
- return true;
- }
- return false;
-};
-const onLocaleChangeCallbacks = [];
-const onLocaleChange = (fn) => {
- if (onLocaleChangeCallbacks.indexOf(fn) === -1) {
- onLocaleChangeCallbacks.push(fn);
- }
-};
-if (typeof global !== "undefined") {
- global.getLocale = getLocale;
-}
-const UUID_KEY = "__DC_STAT_UUID";
-let deviceId;
-function useDeviceId(global2 = wx) {
- return function addDeviceId(_, toRes) {
- deviceId = deviceId || global2.getStorageSync(UUID_KEY);
- if (!deviceId) {
- deviceId = Date.now() + "" + Math.floor(Math.random() * 1e7);
- wx.setStorage({
- key: UUID_KEY,
- data: deviceId
- });
- }
- toRes.deviceId = deviceId;
- };
-}
-function addSafeAreaInsets(fromRes, toRes) {
- if (fromRes.safeArea) {
- const safeArea = fromRes.safeArea;
- toRes.safeAreaInsets = {
- top: safeArea.top,
- left: safeArea.left,
- right: fromRes.windowWidth - safeArea.right,
- bottom: fromRes.screenHeight - safeArea.bottom
- };
- }
-}
-function getOSInfo(system, platform) {
- let osName = "";
- let osVersion = "";
- if (platform && false) {
- osName = platform;
- osVersion = system;
- } else {
- osName = system.split(" ")[0] || "";
- osVersion = system.split(" ")[1] || "";
- }
- return {
- osName: osName.toLocaleLowerCase(),
- osVersion
- };
-}
-function populateParameters(fromRes, toRes) {
- const { brand = "", model = "", system = "", language = "", theme, version: version2, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation } = fromRes;
- const { osName, osVersion } = getOSInfo(system, platform);
- let hostVersion = version2;
- let deviceType = getGetDeviceType(fromRes, model);
- let deviceBrand = getDeviceBrand(brand);
- let _hostName = getHostName(fromRes);
- let _deviceOrientation = deviceOrientation;
- let _devicePixelRatio = pixelRatio;
- let _SDKVersion = SDKVersion;
- const hostLanguage = language.replace(/_/g, "-");
- const parameters = {
- appId: "__UNI__91B71D4",
- appName: "sanchayibaoguang",
- appVersion: "1.0.0",
- appVersionCode: "100",
- appLanguage: getAppLanguage(hostLanguage),
- uniCompileVersion: "4.36",
- uniCompilerVersion: "4.36",
- uniRuntimeVersion: "4.36",
- uniPlatform: "mp-weixin",
- deviceBrand,
- deviceModel: model,
- deviceType,
- devicePixelRatio: _devicePixelRatio,
- deviceOrientation: _deviceOrientation,
- osName,
- osVersion,
- hostTheme: theme,
- hostVersion,
- hostLanguage,
- hostName: _hostName,
- hostSDKVersion: _SDKVersion,
- hostFontSizeSetting: fontSizeSetting,
- windowTop: 0,
- windowBottom: 0,
- // TODO
- osLanguage: void 0,
- osTheme: void 0,
- ua: void 0,
- hostPackageName: void 0,
- browserName: void 0,
- browserVersion: void 0,
- isUniAppX: false
- };
- extend(toRes, parameters);
-}
-function getGetDeviceType(fromRes, model) {
- let deviceType = fromRes.deviceType || "phone";
- {
- const deviceTypeMaps = {
- ipad: "pad",
- windows: "pc",
- mac: "pc"
- };
- const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);
- const _model = model.toLocaleLowerCase();
- for (let index2 = 0; index2 < deviceTypeMapsKeys.length; index2++) {
- const _m = deviceTypeMapsKeys[index2];
- if (_model.indexOf(_m) !== -1) {
- deviceType = deviceTypeMaps[_m];
- break;
- }
- }
- }
- return deviceType;
-}
-function getDeviceBrand(brand) {
- let deviceBrand = brand;
- if (deviceBrand) {
- deviceBrand = deviceBrand.toLocaleLowerCase();
- }
- return deviceBrand;
-}
-function getAppLanguage(defaultLanguage) {
- return getLocale ? getLocale() : defaultLanguage;
-}
-function getHostName(fromRes) {
- const _platform = "WeChat";
- let _hostName = fromRes.hostName || _platform;
- {
- if (fromRes.environment) {
- _hostName = fromRes.environment;
- } else if (fromRes.host && fromRes.host.env) {
- _hostName = fromRes.host.env;
- }
- }
- return _hostName;
-}
-const getSystemInfo = {
- returnValue: (fromRes, toRes) => {
- addSafeAreaInsets(fromRes, toRes);
- useDeviceId()(fromRes, toRes);
- populateParameters(fromRes, toRes);
- }
-};
-const getSystemInfoSync = getSystemInfo;
-const redirectTo = {};
-const previewImage = {
- args(fromArgs, toArgs) {
- let currentIndex = parseInt(fromArgs.current);
- if (isNaN(currentIndex)) {
- return;
- }
- const urls = fromArgs.urls;
- if (!isArray(urls)) {
- return;
- }
- const len = urls.length;
- if (!len) {
- return;
- }
- if (currentIndex < 0) {
- currentIndex = 0;
- } else if (currentIndex >= len) {
- currentIndex = len - 1;
- }
- if (currentIndex > 0) {
- toArgs.current = urls[currentIndex];
- toArgs.urls = urls.filter((item, index2) => index2 < currentIndex ? item !== urls[currentIndex] : true);
- } else {
- toArgs.current = urls[0];
- }
- return {
- indicator: false,
- loop: false
- };
- }
-};
-const showActionSheet = {
- args(fromArgs, toArgs) {
- toArgs.alertText = fromArgs.title;
- }
-};
-const getDeviceInfo = {
- returnValue: (fromRes, toRes) => {
- const { brand, model, system = "", platform = "" } = fromRes;
- let deviceType = getGetDeviceType(fromRes, model);
- let deviceBrand = getDeviceBrand(brand);
- useDeviceId()(fromRes, toRes);
- const { osName, osVersion } = getOSInfo(system, platform);
- toRes = sortObject(extend(toRes, {
- deviceType,
- deviceBrand,
- deviceModel: model,
- osName,
- osVersion
- }));
- }
-};
-const getAppBaseInfo = {
- returnValue: (fromRes, toRes) => {
- const { version: version2, language, SDKVersion, theme } = fromRes;
- let _hostName = getHostName(fromRes);
- let hostLanguage = language.replace(/_/g, "-");
- toRes = sortObject(extend(toRes, {
- hostVersion: version2,
- hostLanguage,
- hostName: _hostName,
- hostSDKVersion: SDKVersion,
- hostTheme: theme,
- appId: "__UNI__91B71D4",
- appName: "sanchayibaoguang",
- appVersion: "1.0.0",
- appVersionCode: "100",
- appLanguage: getAppLanguage(hostLanguage),
- isUniAppX: false,
- uniPlatform: "mp-weixin",
- uniCompileVersion: "4.36",
- uniCompilerVersion: "4.36",
- uniRuntimeVersion: "4.36"
- }));
- }
-};
-const getWindowInfo = {
- returnValue: (fromRes, toRes) => {
- addSafeAreaInsets(fromRes, toRes);
- toRes = sortObject(extend(toRes, {
- windowTop: 0,
- windowBottom: 0
- }));
- }
-};
-const getAppAuthorizeSetting = {
- returnValue: function(fromRes, toRes) {
- const { locationReducedAccuracy } = fromRes;
- toRes.locationAccuracy = "unsupported";
- if (locationReducedAccuracy === true) {
- toRes.locationAccuracy = "reduced";
- } else if (locationReducedAccuracy === false) {
- toRes.locationAccuracy = "full";
- }
- }
-};
-const baseApis = {
- $on,
- $off,
- $once,
- $emit,
- upx2px,
- interceptors,
- addInterceptor,
- removeInterceptor,
- onCreateVueApp,
- invokeCreateVueAppHook,
- getLocale,
- setLocale,
- onLocaleChange,
- getPushClientId,
- onPushMessage,
- offPushMessage,
- invokePushCallback
-};
-function initUni(api, protocols2, platform = wx) {
- const wrapper = initWrapper(protocols2);
- const UniProxyHandlers = {
- get(target, key) {
- if (hasOwn(target, key)) {
- return target[key];
- }
- if (hasOwn(api, key)) {
- return promisify(key, api[key]);
- }
- if (hasOwn(baseApis, key)) {
- return promisify(key, baseApis[key]);
- }
- return promisify(key, wrapper(key, platform[key]));
- }
- };
- return new Proxy({}, UniProxyHandlers);
-}
-function initGetProvider(providers) {
- return function getProvider2({ service, success, fail, complete }) {
- let res;
- if (providers[service]) {
- res = {
- errMsg: "getProvider:ok",
- service,
- provider: providers[service]
- };
- isFunction(success) && success(res);
- } else {
- res = {
- errMsg: "getProvider:fail:服务[" + service + "]不存在"
- };
- isFunction(fail) && fail(res);
- }
- isFunction(complete) && complete(res);
- };
-}
-const objectKeys = [
- "qy",
- "env",
- "error",
- "version",
- "lanDebug",
- "cloud",
- "serviceMarket",
- "router",
- "worklet",
- "__webpack_require_UNI_MP_PLUGIN__"
-];
-const singlePageDisableKey = ["lanDebug", "router", "worklet"];
-const launchOption = wx.getLaunchOptionsSync ? wx.getLaunchOptionsSync() : null;
-function isWxKey(key) {
- if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {
- return false;
- }
- return objectKeys.indexOf(key) > -1 || typeof wx[key] === "function";
-}
-function initWx() {
- const newWx = {};
- for (const key in wx) {
- if (isWxKey(key)) {
- newWx[key] = wx[key];
- }
- }
- if (typeof globalThis !== "undefined" && typeof requireMiniProgram === "undefined") {
- globalThis.wx = newWx;
- }
- return newWx;
-}
-const mocks$1 = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"];
-const getProvider = initGetProvider({
- oauth: ["weixin"],
- share: ["weixin"],
- payment: ["wxpay"],
- push: ["weixin"]
-});
-function initComponentMocks(component) {
- const res = /* @__PURE__ */ Object.create(null);
- mocks$1.forEach((name) => {
- res[name] = component[name];
- });
- return res;
-}
-function createSelectorQuery() {
- const query = wx$2.createSelectorQuery();
- const oldIn = query.in;
- query.in = function newIn(component) {
- return oldIn.call(this, initComponentMocks(component));
- };
- return query;
-}
-const wx$2 = initWx();
-let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();
-if (!baseInfo) {
- baseInfo = wx$2.getSystemInfoSync();
-}
-const host = baseInfo ? baseInfo.host : null;
-const shareVideoMessage = host && host.env === "SAAASDK" ? wx$2.miniapp.shareVideoMessage : wx$2.shareVideoMessage;
-var shims = /* @__PURE__ */ Object.freeze({
- __proto__: null,
- createSelectorQuery,
- getProvider,
- shareVideoMessage
-});
-const compressImage = {
- args(fromArgs, toArgs) {
- if (fromArgs.compressedHeight && !toArgs.compressHeight) {
- toArgs.compressHeight = fromArgs.compressedHeight;
- }
- if (fromArgs.compressedWidth && !toArgs.compressWidth) {
- toArgs.compressWidth = fromArgs.compressedWidth;
- }
- }
-};
-var protocols = /* @__PURE__ */ Object.freeze({
- __proto__: null,
- compressImage,
- getAppAuthorizeSetting,
- getAppBaseInfo,
- getDeviceInfo,
- getSystemInfo,
- getSystemInfoSync,
- getWindowInfo,
- previewImage,
- redirectTo,
- showActionSheet
-});
-const wx$1 = initWx();
-var index = initUni(shims, protocols, wx$1);
-new Set(
- /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
-);
-function toRaw$1(observed) {
- const raw = observed && observed["__v_raw"];
- return raw ? toRaw$1(raw) : observed;
-}
-function isRef$1(r2) {
- return !!(r2 && r2.__v_isRef === true);
-}
-/**
-* @vue/runtime-core v3.4.21
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/
-const stack$1 = [];
-function pushWarningContext$1(vnode) {
- stack$1.push(vnode);
-}
-function popWarningContext$1() {
- stack$1.pop();
-}
-function warn$1$1(msg, ...args) {
- const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;
- const appWarnHandler = instance && instance.appContext.config.warnHandler;
- const trace = getComponentTrace$1();
- if (appWarnHandler) {
- callWithErrorHandling$1(
- appWarnHandler,
- instance,
- 11,
- [
- msg + args.map((a) => {
- var _a, _b;
- return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
- }).join(""),
- instance && instance.proxy,
- trace.map(
- ({ vnode }) => `at <${formatComponentName$1(instance, vnode.type)}>`
- ).join("\n"),
- trace
- ]
- );
- } else {
- const warnArgs = [`[Vue warn]: ${msg}`, ...args];
- if (trace.length && // avoid spamming console during tests
- true) {
- warnArgs.push(`
-`, ...formatTrace$1(trace));
- }
- console.warn(...warnArgs);
- }
-}
-function getComponentTrace$1() {
- let currentVNode = stack$1[stack$1.length - 1];
- if (!currentVNode) {
- return [];
- }
- const normalizedStack = [];
- while (currentVNode) {
- const last = normalizedStack[0];
- if (last && last.vnode === currentVNode) {
- last.recurseCount++;
- } else {
- normalizedStack.push({
- vnode: currentVNode,
- recurseCount: 0
- });
- }
- const parentInstance = currentVNode.component && currentVNode.component.parent;
- currentVNode = parentInstance && parentInstance.vnode;
- }
- return normalizedStack;
-}
-function formatTrace$1(trace) {
- const logs = [];
- trace.forEach((entry, i) => {
- logs.push(...i === 0 ? [] : [`
-`], ...formatTraceEntry$1(entry));
- });
- return logs;
-}
-function formatTraceEntry$1({ vnode, recurseCount }) {
- const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
- const isRoot = vnode.component ? vnode.component.parent == null : false;
- const open = ` at <${formatComponentName$1(
- vnode.component,
- vnode.type,
- isRoot
- )}`;
- const close = `>` + postfix;
- return vnode.props ? [open, ...formatProps$1(vnode.props), close] : [open + close];
-}
-function formatProps$1(props) {
- const res = [];
- const keys = Object.keys(props);
- keys.slice(0, 3).forEach((key) => {
- res.push(...formatProp$1(key, props[key]));
- });
- if (keys.length > 3) {
- res.push(` ...`);
- }
- return res;
-}
-function formatProp$1(key, value, raw) {
- if (isString(value)) {
- value = JSON.stringify(value);
- return raw ? value : [`${key}=${value}`];
- } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
- return raw ? value : [`${key}=${value}`];
- } else if (isRef$1(value)) {
- value = formatProp$1(key, toRaw$1(value.value), true);
- return raw ? value : [`${key}=Ref<`, value, `>`];
- } else if (isFunction(value)) {
- return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
- } else {
- value = toRaw$1(value);
- return raw ? value : [`${key}=`, value];
- }
-}
-const ErrorTypeStrings$1 = {
- ["sp"]: "serverPrefetch hook",
- ["bc"]: "beforeCreate hook",
- ["c"]: "created hook",
- ["bm"]: "beforeMount hook",
- ["m"]: "mounted hook",
- ["bu"]: "beforeUpdate hook",
- ["u"]: "updated",
- ["bum"]: "beforeUnmount hook",
- ["um"]: "unmounted hook",
- ["a"]: "activated hook",
- ["da"]: "deactivated hook",
- ["ec"]: "errorCaptured hook",
- ["rtc"]: "renderTracked hook",
- ["rtg"]: "renderTriggered hook",
- [0]: "setup function",
- [1]: "render function",
- [2]: "watcher getter",
- [3]: "watcher callback",
- [4]: "watcher cleanup function",
- [5]: "native event handler",
- [6]: "component event handler",
- [7]: "vnode hook",
- [8]: "directive hook",
- [9]: "transition hook",
- [10]: "app errorHandler",
- [11]: "app warnHandler",
- [12]: "ref function",
- [13]: "async component loader",
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
-};
-function callWithErrorHandling$1(fn, instance, type, args) {
- try {
- return args ? fn(...args) : fn();
- } catch (err) {
- handleError$1(err, instance, type);
- }
-}
-function handleError$1(err, instance, type, throwInDev = true) {
- const contextVNode = instance ? instance.vnode : null;
- if (instance) {
- let cur = instance.parent;
- const exposedInstance = instance.proxy;
- const errorInfo = ErrorTypeStrings$1[type];
- while (cur) {
- const errorCapturedHooks = cur.ec;
- if (errorCapturedHooks) {
- for (let i = 0; i < errorCapturedHooks.length; i++) {
- if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
- return;
- }
- }
- }
- cur = cur.parent;
- }
- const appErrorHandler = instance.appContext.config.errorHandler;
- if (appErrorHandler) {
- callWithErrorHandling$1(
- appErrorHandler,
- null,
- 10,
- [err, exposedInstance, errorInfo]
- );
- return;
- }
- }
- logError$1(err, type, contextVNode, throwInDev);
-}
-function logError$1(err, type, contextVNode, throwInDev = true) {
- {
- const info = ErrorTypeStrings$1[type];
- if (contextVNode) {
- pushWarningContext$1(contextVNode);
- }
- warn$1$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
- if (contextVNode) {
- popWarningContext$1();
- }
- if (throwInDev) {
- throw err;
- } else {
- console.error(err);
- }
- }
-}
-let isFlushing$1 = false;
-let isFlushPending$1 = false;
-const queue$1 = [];
-let flushIndex$1 = 0;
-const pendingPostFlushCbs$1 = [];
-let activePostFlushCbs$1 = null;
-let postFlushIndex$1 = 0;
-const resolvedPromise$1 = /* @__PURE__ */ Promise.resolve();
-const RECURSION_LIMIT$1 = 100;
-function findInsertionIndex$1(id) {
- let start = flushIndex$1 + 1;
- let end = queue$1.length;
- while (start < end) {
- const middle = start + end >>> 1;
- const middleJob = queue$1[middle];
- const middleJobId = getId$1(middleJob);
- if (middleJobId < id || middleJobId === id && middleJob.pre) {
- start = middle + 1;
- } else {
- end = middle;
- }
- }
- return start;
-}
-function queueJob$1(job) {
- if (!queue$1.length || !queue$1.includes(
- job,
- isFlushing$1 && job.allowRecurse ? flushIndex$1 + 1 : flushIndex$1
- )) {
- if (job.id == null) {
- queue$1.push(job);
- } else {
- queue$1.splice(findInsertionIndex$1(job.id), 0, job);
- }
- queueFlush$1();
- }
-}
-function queueFlush$1() {
- if (!isFlushing$1 && !isFlushPending$1) {
- isFlushPending$1 = true;
- resolvedPromise$1.then(flushJobs$1);
- }
-}
-function queuePostFlushCb$1(cb) {
- if (!isArray(cb)) {
- if (!activePostFlushCbs$1 || !activePostFlushCbs$1.includes(
- cb,
- cb.allowRecurse ? postFlushIndex$1 + 1 : postFlushIndex$1
- )) {
- pendingPostFlushCbs$1.push(cb);
- }
- } else {
- pendingPostFlushCbs$1.push(...cb);
- }
- queueFlush$1();
-}
-function flushPostFlushCbs$1(seen) {
- if (pendingPostFlushCbs$1.length) {
- const deduped = [...new Set(pendingPostFlushCbs$1)].sort(
- (a, b) => getId$1(a) - getId$1(b)
- );
- pendingPostFlushCbs$1.length = 0;
- if (activePostFlushCbs$1) {
- activePostFlushCbs$1.push(...deduped);
- return;
- }
- activePostFlushCbs$1 = deduped;
- {
- seen = seen || /* @__PURE__ */ new Map();
- }
- for (postFlushIndex$1 = 0; postFlushIndex$1 < activePostFlushCbs$1.length; postFlushIndex$1++) {
- if (checkRecursiveUpdates$1(seen, activePostFlushCbs$1[postFlushIndex$1])) {
- continue;
- }
- activePostFlushCbs$1[postFlushIndex$1]();
- }
- activePostFlushCbs$1 = null;
- postFlushIndex$1 = 0;
- }
-}
-const getId$1 = (job) => job.id == null ? Infinity : job.id;
-const comparator$1 = (a, b) => {
- const diff2 = getId$1(a) - getId$1(b);
- if (diff2 === 0) {
- if (a.pre && !b.pre)
- return -1;
- if (b.pre && !a.pre)
- return 1;
- }
- return diff2;
-};
-function flushJobs$1(seen) {
- isFlushPending$1 = false;
- isFlushing$1 = true;
- {
- seen = seen || /* @__PURE__ */ new Map();
- }
- queue$1.sort(comparator$1);
- const check = (job) => checkRecursiveUpdates$1(seen, job);
- try {
- for (flushIndex$1 = 0; flushIndex$1 < queue$1.length; flushIndex$1++) {
- const job = queue$1[flushIndex$1];
- if (job && job.active !== false) {
- if (check(job)) {
- continue;
- }
- callWithErrorHandling$1(job, null, 14);
- }
- }
- } finally {
- flushIndex$1 = 0;
- queue$1.length = 0;
- flushPostFlushCbs$1(seen);
- isFlushing$1 = false;
- if (queue$1.length || pendingPostFlushCbs$1.length) {
- flushJobs$1(seen);
- }
- }
-}
-function checkRecursiveUpdates$1(seen, fn) {
- if (!seen.has(fn)) {
- seen.set(fn, 1);
- } else {
- const count = seen.get(fn);
- if (count > RECURSION_LIMIT$1) {
- const instance = fn.ownerInstance;
- const componentName = instance && getComponentName$1(instance.type);
- handleError$1(
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
- null,
- 10
- );
- return true;
- } else {
- seen.set(fn, count + 1);
- }
- }
-}
-const hmrDirtyComponents = /* @__PURE__ */ new Set();
-{
- getGlobalThis().__VUE_HMR_RUNTIME__ = {
- createRecord: tryWrap(createRecord),
- rerender: tryWrap(rerender),
- reload: tryWrap(reload)
- };
-}
-const map = /* @__PURE__ */ new Map();
-function createRecord(id, initialDef) {
- if (map.has(id)) {
- return false;
- }
- map.set(id, {
- initialDef: normalizeClassComponent(initialDef),
- instances: /* @__PURE__ */ new Set()
- });
- return true;
-}
-function normalizeClassComponent(component) {
- return isClassComponent$1(component) ? component.__vccOpts : component;
-}
-function rerender(id, newRender) {
- const record = map.get(id);
- if (!record) {
- return;
- }
- record.initialDef.render = newRender;
- [...record.instances].forEach((instance) => {
- if (newRender) {
- instance.render = newRender;
- normalizeClassComponent(instance.type).render = newRender;
- }
- instance.renderCache = [];
- instance.effect.dirty = true;
- instance.update();
- });
-}
-function reload(id, newComp) {
- const record = map.get(id);
- if (!record)
- return;
- newComp = normalizeClassComponent(newComp);
- updateComponentDef(record.initialDef, newComp);
- const instances = [...record.instances];
- for (const instance of instances) {
- const oldComp = normalizeClassComponent(instance.type);
- if (!hmrDirtyComponents.has(oldComp)) {
- if (oldComp !== record.initialDef) {
- updateComponentDef(oldComp, newComp);
- }
- hmrDirtyComponents.add(oldComp);
- }
- instance.appContext.propsCache.delete(instance.type);
- instance.appContext.emitsCache.delete(instance.type);
- instance.appContext.optionsCache.delete(instance.type);
- if (instance.ceReload) {
- hmrDirtyComponents.add(oldComp);
- instance.ceReload(newComp.styles);
- hmrDirtyComponents.delete(oldComp);
- } else if (instance.parent) {
- instance.parent.effect.dirty = true;
- queueJob$1(instance.parent.update);
- } else if (instance.appContext.reload) {
- instance.appContext.reload();
- } else if (typeof window !== "undefined") {
- window.location.reload();
- } else {
- console.warn(
- "[HMR] Root or manually mounted instance modified. Full reload required."
- );
- }
- }
- queuePostFlushCb$1(() => {
- for (const instance of instances) {
- hmrDirtyComponents.delete(
- normalizeClassComponent(instance.type)
- );
- }
- });
-}
-function updateComponentDef(oldComp, newComp) {
- extend(oldComp, newComp);
- for (const key in oldComp) {
- if (key !== "__file" && !(key in newComp)) {
- delete oldComp[key];
- }
- }
-}
-function tryWrap(fn) {
- return (id, arg) => {
- try {
- return fn(id, arg);
- } catch (e2) {
- console.error(e2);
- console.warn(
- `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`
- );
- }
- };
-}
-{
- const g = getGlobalThis();
- const registerGlobalSetter = (key, setter) => {
- let setters;
- if (!(setters = g[key]))
- setters = g[key] = [];
- setters.push(setter);
- return (v) => {
- if (setters.length > 1)
- setters.forEach((set2) => set2(v));
- else
- setters[0](v);
- };
- };
- registerGlobalSetter(
- `__VUE_INSTANCE_SETTERS__`,
- (v) => v
- );
- registerGlobalSetter(
- `__VUE_SSR_SETTERS__`,
- (v) => v
- );
-}
-const classifyRE$1 = /(?:^|[-_])(\w)/g;
-const classify$1 = (str) => str.replace(classifyRE$1, (c2) => c2.toUpperCase()).replace(/[-_]/g, "");
-function getComponentName$1(Component2, includeInferred = true) {
- return isFunction(Component2) ? Component2.displayName || Component2.name : Component2.name || includeInferred && Component2.__name;
-}
-function formatComponentName$1(instance, Component2, isRoot = false) {
- let name = getComponentName$1(Component2);
- if (!name && Component2.__file) {
- const match = Component2.__file.match(/([^/\\]+)\.\w+$/);
- if (match) {
- name = match[1];
- }
- }
- if (!name && instance && instance.parent) {
- const inferFromRegistry = (registry) => {
- for (const key in registry) {
- if (registry[key] === Component2) {
- return key;
- }
- }
- };
- name = inferFromRegistry(
- instance.components || instance.parent.type.components
- ) || inferFromRegistry(instance.appContext.components);
- }
- return name ? classify$1(name) : isRoot ? `App` : `Anonymous`;
-}
-function isClassComponent$1(value) {
- return isFunction(value) && "__vccOpts" in value;
-}
-/**
-* @dcloudio/uni-mp-vue v3.4.21
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/
-function warn$2(msg, ...args) {
- console.warn(`[Vue warn] ${msg}`, ...args);
-}
-let activeEffectScope;
-class EffectScope {
- constructor(detached = false) {
- this.detached = detached;
- this._active = true;
- this.effects = [];
- this.cleanups = [];
- this.parent = activeEffectScope;
- if (!detached && activeEffectScope) {
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
- this
- ) - 1;
- }
- }
- get active() {
- return this._active;
- }
- run(fn) {
- if (this._active) {
- const currentEffectScope = activeEffectScope;
- try {
- activeEffectScope = this;
- return fn();
- } finally {
- activeEffectScope = currentEffectScope;
- }
- } else {
- warn$2(`cannot run an inactive effect scope.`);
- }
- }
- /**
- * This should only be called on non-detached scopes
- * @internal
- */
- on() {
- activeEffectScope = this;
- }
- /**
- * This should only be called on non-detached scopes
- * @internal
- */
- off() {
- activeEffectScope = this.parent;
- }
- stop(fromParent) {
- if (this._active) {
- let i, l;
- for (i = 0, l = this.effects.length; i < l; i++) {
- this.effects[i].stop();
- }
- for (i = 0, l = this.cleanups.length; i < l; i++) {
- this.cleanups[i]();
- }
- if (this.scopes) {
- for (i = 0, l = this.scopes.length; i < l; i++) {
- this.scopes[i].stop(true);
- }
- }
- if (!this.detached && this.parent && !fromParent) {
- const last = this.parent.scopes.pop();
- if (last && last !== this) {
- this.parent.scopes[this.index] = last;
- last.index = this.index;
- }
- }
- this.parent = void 0;
- this._active = false;
- }
- }
-}
-function recordEffectScope(effect2, scope = activeEffectScope) {
- if (scope && scope.active) {
- scope.effects.push(effect2);
- }
-}
-function getCurrentScope() {
- return activeEffectScope;
-}
-let activeEffect;
-class ReactiveEffect2 {
- constructor(fn, trigger2, scheduler, scope) {
- this.fn = fn;
- this.trigger = trigger2;
- this.scheduler = scheduler;
- this.active = true;
- this.deps = [];
- this._dirtyLevel = 4;
- this._trackId = 0;
- this._runnings = 0;
- this._shouldSchedule = false;
- this._depsLength = 0;
- recordEffectScope(this, scope);
- }
- get dirty() {
- if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
- this._dirtyLevel = 1;
- pauseTracking();
- for (let i = 0; i < this._depsLength; i++) {
- const dep = this.deps[i];
- if (dep.computed) {
- triggerComputed(dep.computed);
- if (this._dirtyLevel >= 4) {
- break;
- }
- }
- }
- if (this._dirtyLevel === 1) {
- this._dirtyLevel = 0;
- }
- resetTracking();
- }
- return this._dirtyLevel >= 4;
- }
- set dirty(v) {
- this._dirtyLevel = v ? 4 : 0;
- }
- run() {
- this._dirtyLevel = 0;
- if (!this.active) {
- return this.fn();
- }
- let lastShouldTrack = shouldTrack;
- let lastEffect = activeEffect;
- try {
- shouldTrack = true;
- activeEffect = this;
- this._runnings++;
- preCleanupEffect(this);
- return this.fn();
- } finally {
- postCleanupEffect(this);
- this._runnings--;
- activeEffect = lastEffect;
- shouldTrack = lastShouldTrack;
- }
- }
- stop() {
- var _a;
- if (this.active) {
- preCleanupEffect(this);
- postCleanupEffect(this);
- (_a = this.onStop) == null ? void 0 : _a.call(this);
- this.active = false;
- }
- }
-}
-function triggerComputed(computed2) {
- return computed2.value;
-}
-function preCleanupEffect(effect2) {
- effect2._trackId++;
- effect2._depsLength = 0;
-}
-function postCleanupEffect(effect2) {
- if (effect2.deps.length > effect2._depsLength) {
- for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
- cleanupDepEffect(effect2.deps[i], effect2);
- }
- effect2.deps.length = effect2._depsLength;
- }
-}
-function cleanupDepEffect(dep, effect2) {
- const trackId = dep.get(effect2);
- if (trackId !== void 0 && effect2._trackId !== trackId) {
- dep.delete(effect2);
- if (dep.size === 0) {
- dep.cleanup();
- }
- }
-}
-let shouldTrack = true;
-let pauseScheduleStack = 0;
-const trackStack = [];
-function pauseTracking() {
- trackStack.push(shouldTrack);
- shouldTrack = false;
-}
-function resetTracking() {
- const last = trackStack.pop();
- shouldTrack = last === void 0 ? true : last;
-}
-function pauseScheduling() {
- pauseScheduleStack++;
-}
-function resetScheduling() {
- pauseScheduleStack--;
- while (!pauseScheduleStack && queueEffectSchedulers.length) {
- queueEffectSchedulers.shift()();
- }
-}
-function trackEffect(effect2, dep, debuggerEventExtraInfo) {
- var _a;
- if (dep.get(effect2) !== effect2._trackId) {
- dep.set(effect2, effect2._trackId);
- const oldDep = effect2.deps[effect2._depsLength];
- if (oldDep !== dep) {
- if (oldDep) {
- cleanupDepEffect(oldDep, effect2);
- }
- effect2.deps[effect2._depsLength++] = dep;
- } else {
- effect2._depsLength++;
- }
- {
- (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
- }
- }
-}
-const queueEffectSchedulers = [];
-function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
- var _a;
- pauseScheduling();
- for (const effect2 of dep.keys()) {
- let tracking;
- if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
- effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
- effect2._dirtyLevel = dirtyLevel;
- }
- if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
- {
- (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
- }
- effect2.trigger();
- if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
- effect2._shouldSchedule = false;
- if (effect2.scheduler) {
- queueEffectSchedulers.push(effect2.scheduler);
- }
- }
- }
- }
- resetScheduling();
-}
-const createDep = (cleanup, computed2) => {
- const dep = /* @__PURE__ */ new Map();
- dep.cleanup = cleanup;
- dep.computed = computed2;
- return dep;
-};
-const targetMap = /* @__PURE__ */ new WeakMap();
-const ITERATE_KEY = Symbol("iterate");
-const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate");
-function track(target, type, key) {
- if (shouldTrack && activeEffect) {
- let depsMap = targetMap.get(target);
- if (!depsMap) {
- targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
- }
- let dep = depsMap.get(key);
- if (!dep) {
- depsMap.set(key, dep = createDep(() => depsMap.delete(key)));
- }
- trackEffect(
- activeEffect,
- dep,
- {
- target,
- type,
- key
- }
- );
- }
-}
-function trigger(target, type, key, newValue, oldValue, oldTarget) {
- const depsMap = targetMap.get(target);
- if (!depsMap) {
- return;
- }
- let deps = [];
- if (type === "clear") {
- deps = [...depsMap.values()];
- } else if (key === "length" && isArray(target)) {
- const newLength = Number(newValue);
- depsMap.forEach((dep, key2) => {
- if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) {
- deps.push(dep);
- }
- });
- } else {
- if (key !== void 0) {
- deps.push(depsMap.get(key));
- }
- switch (type) {
- case "add":
- if (!isArray(target)) {
- deps.push(depsMap.get(ITERATE_KEY));
- if (isMap(target)) {
- deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
- }
- } else if (isIntegerKey(key)) {
- deps.push(depsMap.get("length"));
- }
- break;
- case "delete":
- if (!isArray(target)) {
- deps.push(depsMap.get(ITERATE_KEY));
- if (isMap(target)) {
- deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
- }
- }
- break;
- case "set":
- if (isMap(target)) {
- deps.push(depsMap.get(ITERATE_KEY));
- }
- break;
- }
- }
- pauseScheduling();
- for (const dep of deps) {
- if (dep) {
- triggerEffects(
- dep,
- 4,
- {
- target,
- type,
- key,
- newValue,
- oldValue,
- oldTarget
- }
- );
- }
- }
- resetScheduling();
-}
-const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
-const builtInSymbols = new Set(
- /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
-);
-const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
-function createArrayInstrumentations() {
- const instrumentations = {};
- ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
- instrumentations[key] = function(...args) {
- const arr = toRaw(this);
- for (let i = 0, l = this.length; i < l; i++) {
- track(arr, "get", i + "");
- }
- const res = arr[key](...args);
- if (res === -1 || res === false) {
- return arr[key](...args.map(toRaw));
- } else {
- return res;
- }
- };
- });
- ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
- instrumentations[key] = function(...args) {
- pauseTracking();
- pauseScheduling();
- const res = toRaw(this)[key].apply(this, args);
- resetScheduling();
- resetTracking();
- return res;
- };
- });
- return instrumentations;
-}
-function hasOwnProperty(key) {
- const obj = toRaw(this);
- track(obj, "has", key);
- return obj.hasOwnProperty(key);
-}
-class BaseReactiveHandler2 {
- constructor(_isReadonly = false, _isShallow = false) {
- this._isReadonly = _isReadonly;
- this._isShallow = _isShallow;
- }
- get(target, key, receiver) {
- const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
- if (key === "__v_isReactive") {
- return !isReadonly2;
- } else if (key === "__v_isReadonly") {
- return isReadonly2;
- } else if (key === "__v_isShallow") {
- return isShallow2;
- } else if (key === "__v_raw") {
- if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
- // this means the reciever is a user proxy of the reactive proxy
- Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
- return target;
- }
- return;
- }
- const targetIsArray = isArray(target);
- if (!isReadonly2) {
- if (targetIsArray && hasOwn(arrayInstrumentations, key)) {
- return Reflect.get(arrayInstrumentations, key, receiver);
- }
- if (key === "hasOwnProperty") {
- return hasOwnProperty;
- }
- }
- const res = Reflect.get(target, key, receiver);
- if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
- return res;
- }
- if (!isReadonly2) {
- track(target, "get", key);
- }
- if (isShallow2) {
- return res;
- }
- if (isRef(res)) {
- return targetIsArray && isIntegerKey(key) ? res : res.value;
- }
- if (isObject(res)) {
- return isReadonly2 ? readonly(res) : reactive(res);
- }
- return res;
- }
-}
-class MutableReactiveHandler2 extends BaseReactiveHandler2 {
- constructor(isShallow2 = false) {
- super(false, isShallow2);
- }
- set(target, key, value, receiver) {
- let oldValue = target[key];
- if (!this._isShallow) {
- const isOldValueReadonly = isReadonly(oldValue);
- if (!isShallow(value) && !isReadonly(value)) {
- oldValue = toRaw(oldValue);
- value = toRaw(value);
- }
- if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
- if (isOldValueReadonly) {
- return false;
- } else {
- oldValue.value = value;
- return true;
- }
- }
- }
- const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
- const result = Reflect.set(target, key, value, receiver);
- if (target === toRaw(receiver)) {
- if (!hadKey) {
- trigger(target, "add", key, value);
- } else if (hasChanged(value, oldValue)) {
- trigger(target, "set", key, value, oldValue);
- }
- }
- return result;
- }
- deleteProperty(target, key) {
- const hadKey = hasOwn(target, key);
- const oldValue = target[key];
- const result = Reflect.deleteProperty(target, key);
- if (result && hadKey) {
- trigger(target, "delete", key, void 0, oldValue);
- }
- return result;
- }
- has(target, key) {
- const result = Reflect.has(target, key);
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
- track(target, "has", key);
- }
- return result;
- }
- ownKeys(target) {
- track(
- target,
- "iterate",
- isArray(target) ? "length" : ITERATE_KEY
- );
- return Reflect.ownKeys(target);
- }
-}
-class ReadonlyReactiveHandler2 extends BaseReactiveHandler2 {
- constructor(isShallow2 = false) {
- super(true, isShallow2);
- }
- set(target, key) {
- {
- warn$2(
- `Set operation on key "${String(key)}" failed: target is readonly.`,
- target
- );
- }
- return true;
- }
- deleteProperty(target, key) {
- {
- warn$2(
- `Delete operation on key "${String(key)}" failed: target is readonly.`,
- target
- );
- }
- return true;
- }
-}
-const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler2();
-const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler2();
-const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler2(
- true
-);
-const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler2(true);
-const toShallow = (value) => value;
-const getProto = (v) => Reflect.getPrototypeOf(v);
-function get(target, key, isReadonly2 = false, isShallow2 = false) {
- target = target["__v_raw"];
- const rawTarget = toRaw(target);
- const rawKey = toRaw(key);
- if (!isReadonly2) {
- if (hasChanged(key, rawKey)) {
- track(rawTarget, "get", key);
- }
- track(rawTarget, "get", rawKey);
- }
- const { has: has2 } = getProto(rawTarget);
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
- if (has2.call(rawTarget, key)) {
- return wrap(target.get(key));
- } else if (has2.call(rawTarget, rawKey)) {
- return wrap(target.get(rawKey));
- } else if (target !== rawTarget) {
- target.get(key);
- }
-}
-function has(key, isReadonly2 = false) {
- const target = this["__v_raw"];
- const rawTarget = toRaw(target);
- const rawKey = toRaw(key);
- if (!isReadonly2) {
- if (hasChanged(key, rawKey)) {
- track(rawTarget, "has", key);
- }
- track(rawTarget, "has", rawKey);
- }
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
-}
-function size(target, isReadonly2 = false) {
- target = target["__v_raw"];
- !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
- return Reflect.get(target, "size", target);
-}
-function add(value) {
- value = toRaw(value);
- const target = toRaw(this);
- const proto = getProto(target);
- const hadKey = proto.has.call(target, value);
- if (!hadKey) {
- target.add(value);
- trigger(target, "add", value, value);
- }
- return this;
-}
-function set$1(key, value) {
- value = toRaw(value);
- const target = toRaw(this);
- const { has: has2, get: get2 } = getProto(target);
- let hadKey = has2.call(target, key);
- if (!hadKey) {
- key = toRaw(key);
- hadKey = has2.call(target, key);
- } else {
- checkIdentityKeys(target, has2, key);
- }
- const oldValue = get2.call(target, key);
- target.set(key, value);
- if (!hadKey) {
- trigger(target, "add", key, value);
- } else if (hasChanged(value, oldValue)) {
- trigger(target, "set", key, value, oldValue);
- }
- return this;
-}
-function deleteEntry(key) {
- const target = toRaw(this);
- const { has: has2, get: get2 } = getProto(target);
- let hadKey = has2.call(target, key);
- if (!hadKey) {
- key = toRaw(key);
- hadKey = has2.call(target, key);
- } else {
- checkIdentityKeys(target, has2, key);
- }
- const oldValue = get2 ? get2.call(target, key) : void 0;
- const result = target.delete(key);
- if (hadKey) {
- trigger(target, "delete", key, void 0, oldValue);
- }
- return result;
-}
-function clear() {
- const target = toRaw(this);
- const hadItems = target.size !== 0;
- const oldTarget = isMap(target) ? new Map(target) : new Set(target);
- const result = target.clear();
- if (hadItems) {
- trigger(target, "clear", void 0, void 0, oldTarget);
- }
- return result;
-}
-function createForEach(isReadonly2, isShallow2) {
- return function forEach(callback, thisArg) {
- const observed = this;
- const target = observed["__v_raw"];
- const rawTarget = toRaw(target);
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
- !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
- return target.forEach((value, key) => {
- return callback.call(thisArg, wrap(value), wrap(key), observed);
- });
- };
-}
-function createIterableMethod(method, isReadonly2, isShallow2) {
- return function(...args) {
- const target = this["__v_raw"];
- const rawTarget = toRaw(target);
- const targetIsMap = isMap(rawTarget);
- const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
- const isKeyOnly = method === "keys" && targetIsMap;
- const innerIterator = target[method](...args);
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
- !isReadonly2 && track(
- rawTarget,
- "iterate",
- isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
- );
- return {
- // iterator protocol
- next() {
- const { value, done } = innerIterator.next();
- return done ? { value, done } : {
- value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
- done
- };
- },
- // iterable protocol
- [Symbol.iterator]() {
- return this;
- }
- };
- };
-}
-function createReadonlyMethod(type) {
- return function(...args) {
- {
- const key = args[0] ? `on key "${args[0]}" ` : ``;
- warn$2(
- `${capitalize(type)} operation ${key}failed: target is readonly.`,
- toRaw(this)
- );
- }
- return type === "delete" ? false : type === "clear" ? void 0 : this;
- };
-}
-function createInstrumentations() {
- const mutableInstrumentations2 = {
- get(key) {
- return get(this, key);
- },
- get size() {
- return size(this);
- },
- has,
- add,
- set: set$1,
- delete: deleteEntry,
- clear,
- forEach: createForEach(false, false)
- };
- const shallowInstrumentations2 = {
- get(key) {
- return get(this, key, false, true);
- },
- get size() {
- return size(this);
- },
- has,
- add,
- set: set$1,
- delete: deleteEntry,
- clear,
- forEach: createForEach(false, true)
- };
- const readonlyInstrumentations2 = {
- get(key) {
- return get(this, key, true);
- },
- get size() {
- return size(this, true);
- },
- has(key) {
- return has.call(this, key, true);
- },
- add: createReadonlyMethod("add"),
- set: createReadonlyMethod("set"),
- delete: createReadonlyMethod("delete"),
- clear: createReadonlyMethod("clear"),
- forEach: createForEach(true, false)
- };
- const shallowReadonlyInstrumentations2 = {
- get(key) {
- return get(this, key, true, true);
- },
- get size() {
- return size(this, true);
- },
- has(key) {
- return has.call(this, key, true);
- },
- add: createReadonlyMethod("add"),
- set: createReadonlyMethod("set"),
- delete: createReadonlyMethod("delete"),
- clear: createReadonlyMethod("clear"),
- forEach: createForEach(true, true)
- };
- const iteratorMethods = [
- "keys",
- "values",
- "entries",
- Symbol.iterator
- ];
- iteratorMethods.forEach((method) => {
- mutableInstrumentations2[method] = createIterableMethod(method, false, false);
- readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
- shallowInstrumentations2[method] = createIterableMethod(method, false, true);
- shallowReadonlyInstrumentations2[method] = createIterableMethod(
- method,
- true,
- true
- );
- });
- return [
- mutableInstrumentations2,
- readonlyInstrumentations2,
- shallowInstrumentations2,
- shallowReadonlyInstrumentations2
- ];
-}
-const [
- mutableInstrumentations,
- readonlyInstrumentations,
- shallowInstrumentations,
- shallowReadonlyInstrumentations
-] = /* @__PURE__ */ createInstrumentations();
-function createInstrumentationGetter(isReadonly2, shallow) {
- const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
- return (target, key, receiver) => {
- if (key === "__v_isReactive") {
- return !isReadonly2;
- } else if (key === "__v_isReadonly") {
- return isReadonly2;
- } else if (key === "__v_raw") {
- return target;
- }
- return Reflect.get(
- hasOwn(instrumentations, key) && key in target ? instrumentations : target,
- key,
- receiver
- );
- };
-}
-const mutableCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(false, false)
-};
-const shallowCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(false, true)
-};
-const readonlyCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(true, false)
-};
-const shallowReadonlyCollectionHandlers = {
- get: /* @__PURE__ */ createInstrumentationGetter(true, true)
-};
-function checkIdentityKeys(target, has2, key) {
- const rawKey = toRaw(key);
- if (rawKey !== key && has2.call(target, rawKey)) {
- const type = toRawType(target);
- warn$2(
- `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
- );
- }
-}
-const reactiveMap = /* @__PURE__ */ new WeakMap();
-const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
-const readonlyMap = /* @__PURE__ */ new WeakMap();
-const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
-function targetTypeMap(rawType) {
- switch (rawType) {
- case "Object":
- case "Array":
- return 1;
- case "Map":
- case "Set":
- case "WeakMap":
- case "WeakSet":
- return 2;
- default:
- return 0;
- }
-}
-function getTargetType(value) {
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
-}
-function reactive(target) {
- if (isReadonly(target)) {
- return target;
- }
- return createReactiveObject(
- target,
- false,
- mutableHandlers,
- mutableCollectionHandlers,
- reactiveMap
- );
-}
-function shallowReactive(target) {
- return createReactiveObject(
- target,
- false,
- shallowReactiveHandlers,
- shallowCollectionHandlers,
- shallowReactiveMap
- );
-}
-function readonly(target) {
- return createReactiveObject(
- target,
- true,
- readonlyHandlers,
- readonlyCollectionHandlers,
- readonlyMap
- );
-}
-function shallowReadonly(target) {
- return createReactiveObject(
- target,
- true,
- shallowReadonlyHandlers,
- shallowReadonlyCollectionHandlers,
- shallowReadonlyMap
- );
-}
-function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
- if (!isObject(target)) {
- {
- warn$2(`value cannot be made reactive: ${String(target)}`);
- }
- return target;
- }
- if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
- return target;
- }
- const existingProxy = proxyMap.get(target);
- if (existingProxy) {
- return existingProxy;
- }
- const targetType = getTargetType(target);
- if (targetType === 0) {
- return target;
- }
- const proxy = new Proxy(
- target,
- targetType === 2 ? collectionHandlers : baseHandlers
- );
- proxyMap.set(target, proxy);
- return proxy;
-}
-function isReactive(value) {
- if (isReadonly(value)) {
- return isReactive(value["__v_raw"]);
- }
- return !!(value && value["__v_isReactive"]);
-}
-function isReadonly(value) {
- return !!(value && value["__v_isReadonly"]);
-}
-function isShallow(value) {
- return !!(value && value["__v_isShallow"]);
-}
-function isProxy(value) {
- return isReactive(value) || isReadonly(value);
-}
-function toRaw(observed) {
- const raw = observed && observed["__v_raw"];
- return raw ? toRaw(raw) : observed;
-}
-function markRaw(value) {
- if (Object.isExtensible(value)) {
- def(value, "__v_skip", true);
- }
- return value;
-}
-const toReactive = (value) => isObject(value) ? reactive(value) : value;
-const toReadonly = (value) => isObject(value) ? readonly(value) : value;
-const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;
-class ComputedRefImpl {
- constructor(getter, _setter, isReadonly2, isSSR) {
- this.getter = getter;
- this._setter = _setter;
- this.dep = void 0;
- this.__v_isRef = true;
- this["__v_isReadonly"] = false;
- this.effect = new ReactiveEffect2(
- () => getter(this._value),
- () => triggerRefValue(
- this,
- this.effect._dirtyLevel === 2 ? 2 : 3
- )
- );
- this.effect.computed = this;
- this.effect.active = this._cacheable = !isSSR;
- this["__v_isReadonly"] = isReadonly2;
- }
- get value() {
- const self2 = toRaw(this);
- if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) {
- triggerRefValue(self2, 4);
- }
- trackRefValue(self2);
- if (self2.effect._dirtyLevel >= 2) {
- if (this._warnRecursive) {
- warn$2(COMPUTED_SIDE_EFFECT_WARN, `
-
-getter: `, this.getter);
- }
- triggerRefValue(self2, 2);
- }
- return self2._value;
- }
- set value(newValue) {
- this._setter(newValue);
- }
- // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x
- get _dirty() {
- return this.effect.dirty;
- }
- set _dirty(v) {
- this.effect.dirty = v;
- }
- // #endregion
-}
-function computed$1(getterOrOptions, debugOptions, isSSR = false) {
- let getter;
- let setter;
- const onlyGetter = isFunction(getterOrOptions);
- if (onlyGetter) {
- getter = getterOrOptions;
- setter = () => {
- warn$2("Write operation failed: computed value is readonly");
- };
- } else {
- getter = getterOrOptions.get;
- setter = getterOrOptions.set;
- }
- const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
- if (debugOptions && !isSSR) {
- cRef.effect.onTrack = debugOptions.onTrack;
- cRef.effect.onTrigger = debugOptions.onTrigger;
- }
- return cRef;
-}
-function trackRefValue(ref2) {
- var _a;
- if (shouldTrack && activeEffect) {
- ref2 = toRaw(ref2);
- trackEffect(
- activeEffect,
- (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
- () => ref2.dep = void 0,
- ref2 instanceof ComputedRefImpl ? ref2 : void 0
- ),
- {
- target: ref2,
- type: "get",
- key: "value"
- }
- );
- }
-}
-function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
- ref2 = toRaw(ref2);
- const dep = ref2.dep;
- if (dep) {
- triggerEffects(
- dep,
- dirtyLevel,
- {
- target: ref2,
- type: "set",
- key: "value",
- newValue: newVal
- }
- );
- }
-}
-function isRef(r2) {
- return !!(r2 && r2.__v_isRef === true);
-}
-function ref(value) {
- return createRef(value, false);
-}
-function createRef(rawValue, shallow) {
- if (isRef(rawValue)) {
- return rawValue;
- }
- return new RefImpl(rawValue, shallow);
-}
-class RefImpl {
- constructor(value, __v_isShallow) {
- this.__v_isShallow = __v_isShallow;
- this.dep = void 0;
- this.__v_isRef = true;
- this._rawValue = __v_isShallow ? value : toRaw(value);
- this._value = __v_isShallow ? value : toReactive(value);
- }
- get value() {
- trackRefValue(this);
- return this._value;
- }
- set value(newVal) {
- const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
- newVal = useDirectValue ? newVal : toRaw(newVal);
- if (hasChanged(newVal, this._rawValue)) {
- this._rawValue = newVal;
- this._value = useDirectValue ? newVal : toReactive(newVal);
- triggerRefValue(this, 4, newVal);
- }
- }
-}
-function unref(ref2) {
- return isRef(ref2) ? ref2.value : ref2;
-}
-const shallowUnwrapHandlers = {
- get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
- set: (target, key, value, receiver) => {
- const oldValue = target[key];
- if (isRef(oldValue) && !isRef(value)) {
- oldValue.value = value;
- return true;
- } else {
- return Reflect.set(target, key, value, receiver);
- }
- }
-};
-function proxyRefs(objectWithRefs) {
- return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
-}
-const stack = [];
-function pushWarningContext(vnode) {
- stack.push(vnode);
-}
-function popWarningContext() {
- stack.pop();
-}
-function warn$1(msg, ...args) {
- pauseTracking();
- const instance = stack.length ? stack[stack.length - 1].component : null;
- const appWarnHandler = instance && instance.appContext.config.warnHandler;
- const trace = getComponentTrace();
- if (appWarnHandler) {
- callWithErrorHandling(
- appWarnHandler,
- instance,
- 11,
- [
- msg + args.map((a) => {
- var _a, _b;
- return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
- }).join(""),
- instance && instance.proxy,
- trace.map(
- ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
- ).join("\n"),
- trace
- ]
- );
- } else {
- const warnArgs = [`[Vue warn]: ${msg}`, ...args];
- if (trace.length && // avoid spamming console during tests
- true) {
- warnArgs.push(`
-`, ...formatTrace(trace));
- }
- console.warn(...warnArgs);
- }
- resetTracking();
-}
-function getComponentTrace() {
- let currentVNode = stack[stack.length - 1];
- if (!currentVNode) {
- return [];
- }
- const normalizedStack = [];
- while (currentVNode) {
- const last = normalizedStack[0];
- if (last && last.vnode === currentVNode) {
- last.recurseCount++;
- } else {
- normalizedStack.push({
- vnode: currentVNode,
- recurseCount: 0
- });
- }
- const parentInstance = currentVNode.component && currentVNode.component.parent;
- currentVNode = parentInstance && parentInstance.vnode;
- }
- return normalizedStack;
-}
-function formatTrace(trace) {
- const logs = [];
- trace.forEach((entry, i) => {
- logs.push(...i === 0 ? [] : [`
-`], ...formatTraceEntry(entry));
- });
- return logs;
-}
-function formatTraceEntry({ vnode, recurseCount }) {
- const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
- const isRoot = vnode.component ? vnode.component.parent == null : false;
- const open = ` at <${formatComponentName(
- vnode.component,
- vnode.type,
- isRoot
- )}`;
- const close = `>` + postfix;
- return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
-}
-function formatProps(props) {
- const res = [];
- const keys = Object.keys(props);
- keys.slice(0, 3).forEach((key) => {
- res.push(...formatProp(key, props[key]));
- });
- if (keys.length > 3) {
- res.push(` ...`);
- }
- return res;
-}
-function formatProp(key, value, raw) {
- if (isString(value)) {
- value = JSON.stringify(value);
- return raw ? value : [`${key}=${value}`];
- } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
- return raw ? value : [`${key}=${value}`];
- } else if (isRef(value)) {
- value = formatProp(key, toRaw(value.value), true);
- return raw ? value : [`${key}=Ref<`, value, `>`];
- } else if (isFunction(value)) {
- return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
- } else {
- value = toRaw(value);
- return raw ? value : [`${key}=`, value];
- }
-}
-const ErrorTypeStrings = {
- ["sp"]: "serverPrefetch hook",
- ["bc"]: "beforeCreate hook",
- ["c"]: "created hook",
- ["bm"]: "beforeMount hook",
- ["m"]: "mounted hook",
- ["bu"]: "beforeUpdate hook",
- ["u"]: "updated",
- ["bum"]: "beforeUnmount hook",
- ["um"]: "unmounted hook",
- ["a"]: "activated hook",
- ["da"]: "deactivated hook",
- ["ec"]: "errorCaptured hook",
- ["rtc"]: "renderTracked hook",
- ["rtg"]: "renderTriggered hook",
- [0]: "setup function",
- [1]: "render function",
- [2]: "watcher getter",
- [3]: "watcher callback",
- [4]: "watcher cleanup function",
- [5]: "native event handler",
- [6]: "component event handler",
- [7]: "vnode hook",
- [8]: "directive hook",
- [9]: "transition hook",
- [10]: "app errorHandler",
- [11]: "app warnHandler",
- [12]: "ref function",
- [13]: "async component loader",
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
-};
-function callWithErrorHandling(fn, instance, type, args) {
- try {
- return args ? fn(...args) : fn();
- } catch (err) {
- handleError(err, instance, type);
- }
-}
-function callWithAsyncErrorHandling(fn, instance, type, args) {
- if (isFunction(fn)) {
- const res = callWithErrorHandling(fn, instance, type, args);
- if (res && isPromise(res)) {
- res.catch((err) => {
- handleError(err, instance, type);
- });
- }
- return res;
- }
- const values = [];
- for (let i = 0; i < fn.length; i++) {
- values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
- }
- return values;
-}
-function handleError(err, instance, type, throwInDev = true) {
- const contextVNode = instance ? instance.vnode : null;
- if (instance) {
- let cur = instance.parent;
- const exposedInstance = instance.proxy;
- const errorInfo = ErrorTypeStrings[type] || type;
- while (cur) {
- const errorCapturedHooks = cur.ec;
- if (errorCapturedHooks) {
- for (let i = 0; i < errorCapturedHooks.length; i++) {
- if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
- return;
- }
- }
- }
- cur = cur.parent;
- }
- const appErrorHandler = instance.appContext.config.errorHandler;
- if (appErrorHandler) {
- callWithErrorHandling(
- appErrorHandler,
- null,
- 10,
- [err, exposedInstance, errorInfo]
- );
- return;
- }
- }
- logError(err, type, contextVNode, throwInDev);
-}
-function logError(err, type, contextVNode, throwInDev = true) {
- {
- const info = ErrorTypeStrings[type] || type;
- if (contextVNode) {
- pushWarningContext(contextVNode);
- }
- warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
- if (contextVNode) {
- popWarningContext();
- }
- if (throwInDev) {
- console.error(err);
- } else {
- console.error(err);
- }
- }
-}
-let isFlushing = false;
-let isFlushPending = false;
-const queue = [];
-let flushIndex = 0;
-const pendingPostFlushCbs = [];
-let activePostFlushCbs = null;
-let postFlushIndex = 0;
-const resolvedPromise = /* @__PURE__ */ Promise.resolve();
-let currentFlushPromise = null;
-const RECURSION_LIMIT = 100;
-function nextTick$1(fn) {
- const p2 = currentFlushPromise || resolvedPromise;
- return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
-}
-function findInsertionIndex(id) {
- let start = flushIndex + 1;
- let end = queue.length;
- while (start < end) {
- const middle = start + end >>> 1;
- const middleJob = queue[middle];
- const middleJobId = getId(middleJob);
- if (middleJobId < id || middleJobId === id && middleJob.pre) {
- start = middle + 1;
- } else {
- end = middle;
- }
- }
- return start;
-}
-function queueJob(job) {
- if (!queue.length || !queue.includes(
- job,
- isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex
- )) {
- if (job.id == null) {
- queue.push(job);
- } else {
- queue.splice(findInsertionIndex(job.id), 0, job);
- }
- queueFlush();
- }
-}
-function queueFlush() {
- if (!isFlushing && !isFlushPending) {
- isFlushPending = true;
- currentFlushPromise = resolvedPromise.then(flushJobs);
- }
-}
-function hasQueueJob(job) {
- return queue.indexOf(job) > -1;
-}
-function invalidateJob(job) {
- const i = queue.indexOf(job);
- if (i > flushIndex) {
- queue.splice(i, 1);
- }
-}
-function queuePostFlushCb(cb) {
- if (!isArray(cb)) {
- if (!activePostFlushCbs || !activePostFlushCbs.includes(
- cb,
- cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex
- )) {
- pendingPostFlushCbs.push(cb);
- }
- } else {
- pendingPostFlushCbs.push(...cb);
- }
- queueFlush();
-}
-function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
- {
- seen = seen || /* @__PURE__ */ new Map();
- }
- for (; i < queue.length; i++) {
- const cb = queue[i];
- if (cb && cb.pre) {
- if (checkRecursiveUpdates(seen, cb)) {
- continue;
- }
- queue.splice(i, 1);
- i--;
- cb();
- }
- }
-}
-function flushPostFlushCbs(seen) {
- if (pendingPostFlushCbs.length) {
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
- (a, b) => getId(a) - getId(b)
- );
- pendingPostFlushCbs.length = 0;
- if (activePostFlushCbs) {
- activePostFlushCbs.push(...deduped);
- return;
- }
- activePostFlushCbs = deduped;
- {
- seen = seen || /* @__PURE__ */ new Map();
- }
- for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
- if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
- continue;
- }
- activePostFlushCbs[postFlushIndex]();
- }
- activePostFlushCbs = null;
- postFlushIndex = 0;
- }
-}
-const getId = (job) => job.id == null ? Infinity : job.id;
-const comparator = (a, b) => {
- const diff2 = getId(a) - getId(b);
- if (diff2 === 0) {
- if (a.pre && !b.pre)
- return -1;
- if (b.pre && !a.pre)
- return 1;
- }
- return diff2;
-};
-function flushJobs(seen) {
- isFlushPending = false;
- isFlushing = true;
- {
- seen = seen || /* @__PURE__ */ new Map();
- }
- queue.sort(comparator);
- const check = (job) => checkRecursiveUpdates(seen, job);
- try {
- for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
- const job = queue[flushIndex];
- if (job && job.active !== false) {
- if (check(job)) {
- continue;
- }
- callWithErrorHandling(job, null, 14);
- }
- }
- } finally {
- flushIndex = 0;
- queue.length = 0;
- flushPostFlushCbs(seen);
- isFlushing = false;
- currentFlushPromise = null;
- if (queue.length || pendingPostFlushCbs.length) {
- flushJobs(seen);
- }
- }
-}
-function checkRecursiveUpdates(seen, fn) {
- if (!seen.has(fn)) {
- seen.set(fn, 1);
- } else {
- const count = seen.get(fn);
- if (count > RECURSION_LIMIT) {
- const instance = fn.ownerInstance;
- const componentName = instance && getComponentName(instance.type);
- handleError(
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
- null,
- 10
- );
- return true;
- } else {
- seen.set(fn, count + 1);
- }
- }
-}
-let devtools;
-let buffer = [];
-let devtoolsNotInstalled = false;
-function emit$1(event, ...args) {
- if (devtools) {
- devtools.emit(event, ...args);
- } else if (!devtoolsNotInstalled) {
- buffer.push({ event, args });
- }
-}
-function setDevtoolsHook(hook, target) {
- var _a, _b;
- devtools = hook;
- if (devtools) {
- devtools.enabled = true;
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
- buffer = [];
- } else if (
- // handle late devtools injection - only do this if we are in an actual
- // browser environment to avoid the timer handle stalling test runner exit
- // (#4815)
- typeof window !== "undefined" && // some envs mock window but not fully
- window.HTMLElement && // also exclude jsdom
- !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom"))
- ) {
- const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
- replay.push((newHook) => {
- setDevtoolsHook(newHook, target);
- });
- setTimeout(() => {
- if (!devtools) {
- target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
- devtoolsNotInstalled = true;
- buffer = [];
- }
- }, 3e3);
- } else {
- devtoolsNotInstalled = true;
- buffer = [];
- }
-}
-function devtoolsInitApp(app, version2) {
- emit$1("app:init", app, version2, {
- Fragment,
- Text,
- Comment,
- Static
- });
-}
-const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(
- "component:added"
- /* COMPONENT_ADDED */
-);
-const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(
- "component:updated"
- /* COMPONENT_UPDATED */
-);
-const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
- "component:removed"
- /* COMPONENT_REMOVED */
-);
-const devtoolsComponentRemoved = (component) => {
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
- !devtools.cleanupBuffer(component)) {
- _devtoolsComponentRemoved(component);
- }
-};
-/*! #__NO_SIDE_EFFECTS__ */
-// @__NO_SIDE_EFFECTS__
-function createDevtoolsComponentHook(hook) {
- return (component) => {
- emit$1(
- hook,
- component.appContext.app,
- component.uid,
- // fixed by xxxxxx
- // 为 0 是 App,无 parent 是 Page 指向 App
- component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,
- component
- );
- };
-}
-const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(
- "perf:start"
- /* PERFORMANCE_START */
-);
-const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(
- "perf:end"
- /* PERFORMANCE_END */
-);
-function createDevtoolsPerformanceHook(hook) {
- return (component, type, time) => {
- emit$1(hook, component.appContext.app, component.uid, component, type, time);
- };
-}
-function devtoolsComponentEmit(component, event, params) {
- emit$1(
- "component:emit",
- component.appContext.app,
- component,
- event,
- params
- );
-}
-function emit(instance, event, ...rawArgs) {
- if (instance.isUnmounted)
- return;
- const props = instance.vnode.props || EMPTY_OBJ;
- {
- const {
- emitsOptions,
- propsOptions: [propsOptions]
- } = instance;
- if (emitsOptions) {
- if (!(event in emitsOptions) && true) {
- if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
- warn$1(
- `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
- );
- }
- } else {
- const validator = emitsOptions[event];
- if (isFunction(validator)) {
- const isValid = validator(...rawArgs);
- if (!isValid) {
- warn$1(
- `Invalid event arguments: event validation failed for event "${event}".`
- );
- }
- }
- }
- }
- }
- let args = rawArgs;
- const isModelListener2 = event.startsWith("update:");
- const modelArg = isModelListener2 && event.slice(7);
- if (modelArg && modelArg in props) {
- const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`;
- const { number, trim } = props[modifiersKey] || EMPTY_OBJ;
- if (trim) {
- args = rawArgs.map((a) => isString(a) ? a.trim() : a);
- }
- if (number) {
- args = rawArgs.map(looseToNumber);
- }
- }
- {
- devtoolsComponentEmit(instance, event, args);
- }
- {
- const lowerCaseEvent = event.toLowerCase();
- if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
- warn$1(
- `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
- instance,
- instance.type
- )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(
- event
- )}" instead of "${event}".`
- );
- }
- }
- let handlerName;
- let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
- props[handlerName = toHandlerKey(camelize(event))];
- if (!handler && isModelListener2) {
- handler = props[handlerName = toHandlerKey(hyphenate(event))];
- }
- if (handler) {
- callWithAsyncErrorHandling(
- handler,
- instance,
- 6,
- args
- );
- }
- const onceHandler = props[handlerName + `Once`];
- if (onceHandler) {
- if (!instance.emitted) {
- instance.emitted = {};
- } else if (instance.emitted[handlerName]) {
- return;
- }
- instance.emitted[handlerName] = true;
- callWithAsyncErrorHandling(
- onceHandler,
- instance,
- 6,
- args
- );
- }
-}
-function normalizeEmitsOptions(comp, appContext, asMixin = false) {
- const cache = appContext.emitsCache;
- const cached = cache.get(comp);
- if (cached !== void 0) {
- return cached;
- }
- const raw = comp.emits;
- let normalized = {};
- let hasExtends = false;
- if (!isFunction(comp)) {
- const extendEmits = (raw2) => {
- const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
- if (normalizedFromExtend) {
- hasExtends = true;
- extend(normalized, normalizedFromExtend);
- }
- };
- if (!asMixin && appContext.mixins.length) {
- appContext.mixins.forEach(extendEmits);
- }
- if (comp.extends) {
- extendEmits(comp.extends);
- }
- if (comp.mixins) {
- comp.mixins.forEach(extendEmits);
- }
- }
- if (!raw && !hasExtends) {
- if (isObject(comp)) {
- cache.set(comp, null);
- }
- return null;
- }
- if (isArray(raw)) {
- raw.forEach((key) => normalized[key] = null);
- } else {
- extend(normalized, raw);
- }
- if (isObject(comp)) {
- cache.set(comp, normalized);
- }
- return normalized;
-}
-function isEmitListener(options, key) {
- if (!options || !isOn(key)) {
- return false;
- }
- key = key.slice(2).replace(/Once$/, "");
- return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
-}
-let currentRenderingInstance = null;
-function setCurrentRenderingInstance(instance) {
- const prev = currentRenderingInstance;
- currentRenderingInstance = instance;
- instance && instance.type.__scopeId || null;
- return prev;
-}
-const COMPONENTS = "components";
-function resolveComponent(name, maybeSelfReference) {
- return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
-}
-function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
- const instance = currentRenderingInstance || currentInstance;
- if (instance) {
- const Component2 = instance.type;
- if (type === COMPONENTS) {
- const selfName = getComponentName(
- Component2,
- false
- );
- if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
- return Component2;
- }
- }
- const res = (
- // local registration
- // check instance[type] first which is resolved for options API
- resolve(instance[type] || Component2[type], name) || // global registration
- resolve(instance.appContext[type], name)
- );
- if (!res && maybeSelfReference) {
- return Component2;
- }
- if (warnMissing && !res) {
- const extra = type === COMPONENTS ? `
-If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
- warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
- }
- return res;
- } else {
- warn$1(
- `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
- );
- }
-}
-function resolve(registry, name) {
- return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
-}
-const INITIAL_WATCHER_VALUE = {};
-function watch(source, cb, options) {
- if (!isFunction(cb)) {
- warn$1(
- `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
- );
- }
- return doWatch(source, cb, options);
-}
-function doWatch(source, cb, {
- immediate,
- deep,
- flush,
- once: once2,
- onTrack,
- onTrigger
-} = EMPTY_OBJ) {
- if (cb && once2) {
- const _cb = cb;
- cb = (...args) => {
- _cb(...args);
- unwatch();
- };
- }
- if (deep !== void 0 && typeof deep === "number") {
- warn$1(
- `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`
- );
- }
- if (!cb) {
- if (immediate !== void 0) {
- warn$1(
- `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
- );
- }
- if (deep !== void 0) {
- warn$1(
- `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
- );
- }
- if (once2 !== void 0) {
- warn$1(
- `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
- );
- }
- }
- const warnInvalidSource = (s2) => {
- warn$1(
- `Invalid watch source: `,
- s2,
- `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
- );
- };
- const instance = currentInstance;
- const reactiveGetter = (source2) => deep === true ? source2 : (
- // for deep: false, only traverse root-level properties
- traverse(source2, deep === false ? 1 : void 0)
- );
- let getter;
- let forceTrigger = false;
- let isMultiSource = false;
- if (isRef(source)) {
- getter = () => source.value;
- forceTrigger = isShallow(source);
- } else if (isReactive(source)) {
- getter = () => reactiveGetter(source);
- forceTrigger = true;
- } else if (isArray(source)) {
- isMultiSource = true;
- forceTrigger = source.some((s2) => isReactive(s2) || isShallow(s2));
- getter = () => source.map((s2) => {
- if (isRef(s2)) {
- return s2.value;
- } else if (isReactive(s2)) {
- return reactiveGetter(s2);
- } else if (isFunction(s2)) {
- return callWithErrorHandling(s2, instance, 2);
- } else {
- warnInvalidSource(s2);
- }
- });
- } else if (isFunction(source)) {
- if (cb) {
- getter = () => callWithErrorHandling(source, instance, 2);
- } else {
- getter = () => {
- if (cleanup) {
- cleanup();
- }
- return callWithAsyncErrorHandling(
- source,
- instance,
- 3,
- [onCleanup]
- );
- };
- }
- } else {
- getter = NOOP;
- warnInvalidSource(source);
- }
- if (cb && deep) {
- const baseGetter = getter;
- getter = () => traverse(baseGetter());
- }
- let cleanup;
- let onCleanup = (fn) => {
- cleanup = effect2.onStop = () => {
- callWithErrorHandling(fn, instance, 4);
- cleanup = effect2.onStop = void 0;
- };
- };
- let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
- const job = () => {
- if (!effect2.active || !effect2.dirty) {
- return;
- }
- if (cb) {
- const newValue = effect2.run();
- if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {
- if (cleanup) {
- cleanup();
- }
- callWithAsyncErrorHandling(cb, instance, 3, [
- newValue,
- // pass undefined as the old value when it's changed for the first time
- oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
- onCleanup
- ]);
- oldValue = newValue;
- }
- } else {
- effect2.run();
- }
- };
- job.allowRecurse = !!cb;
- let scheduler;
- if (flush === "sync") {
- scheduler = job;
- } else if (flush === "post") {
- scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);
- } else {
- job.pre = true;
- if (instance)
- job.id = instance.uid;
- scheduler = () => queueJob(job);
- }
- const effect2 = new ReactiveEffect2(getter, NOOP, scheduler);
- const scope = getCurrentScope();
- const unwatch = () => {
- effect2.stop();
- if (scope) {
- remove(scope.effects, effect2);
- }
- };
- {
- effect2.onTrack = onTrack;
- effect2.onTrigger = onTrigger;
- }
- if (cb) {
- if (immediate) {
- job();
- } else {
- oldValue = effect2.run();
- }
- } else if (flush === "post") {
- queuePostRenderEffect$1(
- effect2.run.bind(effect2),
- instance && instance.suspense
- );
- } else {
- effect2.run();
- }
- return unwatch;
-}
-function instanceWatch(source, value, options) {
- const publicThis = this.proxy;
- const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
- let cb;
- if (isFunction(value)) {
- cb = value;
- } else {
- cb = value.handler;
- options = value;
- }
- const reset = setCurrentInstance(this);
- const res = doWatch(getter, cb.bind(publicThis), options);
- reset();
- return res;
-}
-function createPathGetter(ctx, path) {
- const segments = path.split(".");
- return () => {
- let cur = ctx;
- for (let i = 0; i < segments.length && cur; i++) {
- cur = cur[segments[i]];
- }
- return cur;
- };
-}
-function traverse(value, depth, currentDepth = 0, seen) {
- if (!isObject(value) || value["__v_skip"]) {
- return value;
- }
- if (depth && depth > 0) {
- if (currentDepth >= depth) {
- return value;
- }
- currentDepth++;
- }
- seen = seen || /* @__PURE__ */ new Set();
- if (seen.has(value)) {
- return value;
- }
- seen.add(value);
- if (isRef(value)) {
- traverse(value.value, depth, currentDepth, seen);
- } else if (isArray(value)) {
- for (let i = 0; i < value.length; i++) {
- traverse(value[i], depth, currentDepth, seen);
- }
- } else if (isSet(value) || isMap(value)) {
- value.forEach((v) => {
- traverse(v, depth, currentDepth, seen);
- });
- } else if (isPlainObject(value)) {
- for (const key in value) {
- traverse(value[key], depth, currentDepth, seen);
- }
- }
- return value;
-}
-function validateDirectiveName(name) {
- if (isBuiltInDirective(name)) {
- warn$1("Do not use built-in directive ids as custom directive id: " + name);
- }
-}
-function createAppContext() {
- return {
- app: null,
- config: {
- isNativeTag: NO,
- performance: false,
- globalProperties: {},
- optionMergeStrategies: {},
- errorHandler: void 0,
- warnHandler: void 0,
- compilerOptions: {}
- },
- mixins: [],
- components: {},
- directives: {},
- provides: /* @__PURE__ */ Object.create(null),
- optionsCache: /* @__PURE__ */ new WeakMap(),
- propsCache: /* @__PURE__ */ new WeakMap(),
- emitsCache: /* @__PURE__ */ new WeakMap()
- };
-}
-let uid$1 = 0;
-function createAppAPI(render, hydrate) {
- return function createApp2(rootComponent, rootProps = null) {
- if (!isFunction(rootComponent)) {
- rootComponent = extend({}, rootComponent);
- }
- if (rootProps != null && !isObject(rootProps)) {
- warn$1(`root props passed to app.mount() must be an object.`);
- rootProps = null;
- }
- const context = createAppContext();
- const installedPlugins = /* @__PURE__ */ new WeakSet();
- const app = context.app = {
- _uid: uid$1++,
- _component: rootComponent,
- _props: rootProps,
- _container: null,
- _context: context,
- _instance: null,
- version,
- get config() {
- return context.config;
- },
- set config(v) {
- {
- warn$1(
- `app.config cannot be replaced. Modify individual options instead.`
- );
- }
- },
- use(plugin2, ...options) {
- if (installedPlugins.has(plugin2)) {
- warn$1(`Plugin has already been applied to target app.`);
- } else if (plugin2 && isFunction(plugin2.install)) {
- installedPlugins.add(plugin2);
- plugin2.install(app, ...options);
- } else if (isFunction(plugin2)) {
- installedPlugins.add(plugin2);
- plugin2(app, ...options);
- } else {
- warn$1(
- `A plugin must either be a function or an object with an "install" function.`
- );
- }
- return app;
- },
- mixin(mixin) {
- {
- if (!context.mixins.includes(mixin)) {
- context.mixins.push(mixin);
- } else {
- warn$1(
- "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
- );
- }
- }
- return app;
- },
- component(name, component) {
- {
- validateComponentName(name, context.config);
- }
- if (!component) {
- return context.components[name];
- }
- if (context.components[name]) {
- warn$1(`Component "${name}" has already been registered in target app.`);
- }
- context.components[name] = component;
- return app;
- },
- directive(name, directive) {
- {
- validateDirectiveName(name);
- }
- if (!directive) {
- return context.directives[name];
- }
- if (context.directives[name]) {
- warn$1(`Directive "${name}" has already been registered in target app.`);
- }
- context.directives[name] = directive;
- return app;
- },
- // fixed by xxxxxx
- mount() {
- },
- // fixed by xxxxxx
- unmount() {
- },
- provide(key, value) {
- if (key in context.provides) {
- warn$1(
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
- );
- }
- context.provides[key] = value;
- return app;
- },
- runWithContext(fn) {
- const lastApp = currentApp;
- currentApp = app;
- try {
- return fn();
- } finally {
- currentApp = lastApp;
- }
- }
- };
- return app;
- };
-}
-let currentApp = null;
-function provide(key, value) {
- if (!currentInstance) {
- {
- warn$1(`provide() can only be used inside setup().`);
- }
- } else {
- let provides = currentInstance.provides;
- const parentProvides = currentInstance.parent && currentInstance.parent.provides;
- if (parentProvides === provides) {
- provides = currentInstance.provides = Object.create(parentProvides);
- }
- provides[key] = value;
- if (currentInstance.type.mpType === "app") {
- currentInstance.appContext.app.provide(key, value);
- }
- }
-}
-function inject(key, defaultValue, treatDefaultAsFactory = false) {
- const instance = currentInstance || currentRenderingInstance;
- if (instance || currentApp) {
- const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
- if (provides && key in provides) {
- return provides[key];
- } else if (arguments.length > 1) {
- return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
- } else {
- warn$1(`injection "${String(key)}" not found.`);
- }
- } else {
- warn$1(`inject() can only be used inside setup() or functional components.`);
- }
-}
-const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
-function onActivated(hook, target) {
- registerKeepAliveHook(hook, "a", target);
-}
-function onDeactivated(hook, target) {
- registerKeepAliveHook(hook, "da", target);
-}
-function registerKeepAliveHook(hook, type, target = currentInstance) {
- const wrappedHook = hook.__wdc || (hook.__wdc = () => {
- let current = target;
- while (current) {
- if (current.isDeactivated) {
- return;
- }
- current = current.parent;
- }
- return hook();
- });
- injectHook(type, wrappedHook, target);
- if (target) {
- let current = target.parent;
- while (current && current.parent) {
- if (isKeepAlive(current.parent.vnode)) {
- injectToKeepAliveRoot(wrappedHook, type, target, current);
- }
- current = current.parent;
- }
- }
-}
-function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
- const injected = injectHook(
- type,
- hook,
- keepAliveRoot,
- true
- /* prepend */
- );
- onUnmounted(() => {
- remove(keepAliveRoot[type], injected);
- }, target);
-}
-function injectHook(type, hook, target = currentInstance, prepend = false) {
- if (target) {
- if (isRootHook(type)) {
- target = target.root;
- }
- const hooks = target[type] || (target[type] = []);
- const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
- if (target.isUnmounted) {
- return;
- }
- pauseTracking();
- const reset = setCurrentInstance(target);
- const res = callWithAsyncErrorHandling(hook, target, type, args);
- reset();
- resetTracking();
- return res;
- });
- if (prepend) {
- hooks.unshift(wrappedHook);
- } else {
- hooks.push(wrappedHook);
- }
- return wrappedHook;
- } else {
- const apiName = toHandlerKey(
- (ErrorTypeStrings[type] || type.replace(/^on/, "")).replace(/ hook$/, "")
- );
- warn$1(
- `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().`
- );
- }
-}
-const createHook$1 = (lifecycle) => (hook, target = currentInstance) => (
- // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
- (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target)
-);
-const onBeforeMount = createHook$1("bm");
-const onMounted = createHook$1("m");
-const onBeforeUpdate = createHook$1("bu");
-const onUpdated = createHook$1("u");
-const onBeforeUnmount = createHook$1("bum");
-const onUnmounted = createHook$1("um");
-const onServerPrefetch = createHook$1("sp");
-const onRenderTriggered = createHook$1(
- "rtg"
-);
-const onRenderTracked = createHook$1(
- "rtc"
-);
-function onErrorCaptured(hook, target = currentInstance) {
- injectHook("ec", hook, target);
-}
-const getPublicInstance = (i) => {
- if (!i)
- return null;
- if (isStatefulComponent(i))
- return getExposeProxy(i) || i.proxy;
- return getPublicInstance(i.parent);
-};
-const publicPropertiesMap = (
- // Move PURE marker to new line to workaround compiler discarding it
- // due to type annotation
- /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
- $: (i) => i,
- // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的
- // $el: i => i.vnode.el,
- $el: (i) => i.__$el || (i.__$el = {}),
- $data: (i) => i.data,
- $props: (i) => shallowReadonly(i.props),
- $attrs: (i) => shallowReadonly(i.attrs),
- $slots: (i) => shallowReadonly(i.slots),
- $refs: (i) => shallowReadonly(i.refs),
- $parent: (i) => getPublicInstance(i.parent),
- $root: (i) => getPublicInstance(i.root),
- $emit: (i) => i.emit,
- $options: (i) => resolveMergedOptions(i),
- $forceUpdate: (i) => i.f || (i.f = () => {
- i.effect.dirty = true;
- queueJob(i.update);
- }),
- // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx
- $watch: (i) => instanceWatch.bind(i)
- })
-);
-const isReservedPrefix = (key) => key === "_" || key === "$";
-const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
-const PublicInstanceProxyHandlers = {
- get({ _: instance }, key) {
- const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
- if (key === "__isVue") {
- return true;
- }
- let normalizedProps;
- if (key[0] !== "$") {
- const n2 = accessCache[key];
- if (n2 !== void 0) {
- switch (n2) {
- case 1:
- return setupState[key];
- case 2:
- return data[key];
- case 4:
- return ctx[key];
- case 3:
- return props[key];
- }
- } else if (hasSetupBinding(setupState, key)) {
- accessCache[key] = 1;
- return setupState[key];
- } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
- accessCache[key] = 2;
- return data[key];
- } else if (
- // only cache other properties when instance has declared (thus stable)
- // props
- (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)
- ) {
- accessCache[key] = 3;
- return props[key];
- } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
- accessCache[key] = 4;
- return ctx[key];
- } else if (shouldCacheAccess) {
- accessCache[key] = 0;
- }
- }
- const publicGetter = publicPropertiesMap[key];
- let cssModule, globalProperties;
- if (publicGetter) {
- if (key === "$attrs") {
- track(instance, "get", key);
- } else if (key === "$slots") {
- track(instance, "get", key);
- }
- return publicGetter(instance);
- } else if (
- // css module (injected by vue-loader)
- (cssModule = type.__cssModules) && (cssModule = cssModule[key])
- ) {
- return cssModule;
- } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
- accessCache[key] = 4;
- return ctx[key];
- } else if (
- // global properties
- globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)
- ) {
- {
- return globalProperties[key];
- }
- } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading
- // to infinite warning loop
- key.indexOf("__v") !== 0)) {
- if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
- warn$1(
- `Property ${JSON.stringify(
- key
- )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
- );
- } else if (instance === currentRenderingInstance) {
- warn$1(
- `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
- );
- }
- }
- },
- set({ _: instance }, key, value) {
- const { data, setupState, ctx } = instance;
- if (hasSetupBinding(setupState, key)) {
- setupState[key] = value;
- return true;
- } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
- warn$1(`Cannot mutate