diff --git a/App.vue b/App.vue
index e920460..b7cc57b 100644
--- a/App.vue
+++ b/App.vue
@@ -1,276 +1,263 @@
\ No newline at end of file
+/*每个页面公共css */
+@import '@/static/css/common.css';
+
+/* App.vue全局style */
+page,
+html,
+body {
+ -webkit-text-size-adjust: 100% !important;
+ text-size-adjust: 100% !important;
+}
+
diff --git a/CHANGE_RECORD.md b/CHANGE_RECORD.md
new file mode 100644
index 0000000..58c3eda
--- /dev/null
+++ b/CHANGE_RECORD.md
@@ -0,0 +1,92 @@
+# 改动记录
+
+## 2026-06-12
+
+### 后台长时间运行后首页登录态不同步
+
+问题现象:
+
+- APP 后台运行较长时间后再次进入。
+- 商家首页显示未登录或无法及时获取商家信息。
+- “我的”页面仍显示已登录。
+- 从“我的”页面切回首页后,首页才能正常获取商家信息。
+
+涉及文件:
+
+- `App.vue`
+- `pages/home/home.vue`
+- `utils/request.js`
+
+改动内容:
+
+- `App.vue`
+ - 在全局 `onShow` 中新增 `uni.$emit('appShowRefresh')`。
+ - APP 从后台恢复前台时主动通知页面刷新状态,避免只依赖页面级 `onShow`。
+
+- `pages/home/home.vue`
+ - 新增 `refreshPageState` 方法,统一处理首页登录态刷新。
+ - `onShow`、下拉刷新、APP 前台恢复事件都调用同一套刷新逻辑。
+ - `onLoad` 注册 `appShowRefresh` 事件。
+ - `onUnload` 解除 `appShowRefresh` 事件,避免重复监听。
+ - 有 token 时主动重新请求 `/sj/user/getUser`。
+ - 无 token 时清空 `userInfo`、`authDetails`、`sjId`,并重置 `isUserInfoLoaded`。
+ - `getUserInfo` 请求成功后显式设置 `isLogin = true` 和 `isUserInfoLoaded = true`。
+ - `getUserInfo` 请求失败时,如果本地 token 已被清理,则同步首页为未登录状态。
+
+- `utils/request.js`
+ - `refreshToken` 兼容后端返回结构:
+ - 支持 token 在 `res.access_token`。
+ - 支持 token 在 `res.data.access_token`。
+ - 刷新 token 成功后同步更新:
+ - `accessToken`
+ - `refreshToken`
+ - `refresh_token_expries`
+ - 如果刷新接口成功但没有返回 `access_token`,主动抛错,避免写入 `undefined` token。
+
+验证情况:
+
+- 已检查相关 diff,未做全文件重构。
+- `pages/home/home.vue` 原文件为 CRLF 行尾;为避免整文件行尾改造造成大面积 diff,本次保留原行尾。
+- 项目 `package.json` 未配置 build/lint 脚本,未执行完整构建校验。
+
+### 订单详情顾客头像被挤压
+
+问题现象:
+
+- `pages/shop/SellerDetail` 页面“顾客信息”一栏中,客户头像在部分图片比例下显示被拉伸或挤压。
+
+涉及文件:
+
+- `pages/shop/SellerDetail.vue`
+
+改动内容:
+
+- 给顾客头像 `` 增加 `mode="aspectFill"`,按头像容器比例裁剪填充,避免原图比例不一致时被拉伸。
+- 为 `.shop_photo` 增加 `min-width` 和 `min-height`,在 flex 布局中进一步锁定头像为固定正方形尺寸。
+
+验证情况:
+
+- 已执行 `pages/shop/SellerDetail.vue` 与 `CHANGE_RECORD.md` 的空白格式检查。
+
+### 核销成功后工时/工位订单详情跳转错误
+
+问题现象:
+
+- 商家扫码核销或输入核销码核销成功后,工时订单和工位订单跳转到详情页时参数或页面类型不正确。
+- 工时订单会进入工位详情链路,工位订单会落到普通订单详情链路。
+
+涉及文件:
+
+- `pages/shop/verify/verify-order-detail.vue`
+
+改动内容:
+
+- 新增 `getOrderDetailUrl`,统一按 `order_type` 生成核销成功后的详情页地址。
+- `order_type=3` 工时订单跳转到 `/pages/shop/SellerDetail?order_id=...&identity=1`,使用手艺人工时订单详情链路。
+- `order_type=4` 工位订单跳转到 `/pages/shop/SellerDetail?order_id=...`,使用商家工位订单详情链路。
+- `order_type=6` 自营订单跳转普通订单详情并携带 `serviceType=2`。
+- 其他普通订单跳转普通订单详情,不再误携带自营参数。
+
+验证情况:
+
+- 已执行 `pages/shop/verify/verify-order-detail.vue` 与 `CHANGE_RECORD.md` 的空白格式检查。
diff --git a/components/MyTabBar.vue b/components/MyTabBar.vue
index 8f4b0e6..54c8af2 100644
--- a/components/MyTabBar.vue
+++ b/components/MyTabBar.vue
@@ -95,7 +95,7 @@ export default {
color: #999;
}
.tab-text.active {
- color: #E8101E; /* 选中颜色 */
+ color: #FF4767; /* 选中颜色 */
}
.tab-badge {
position: absolute;
diff --git a/components/circle-progress/circle-progress.vue b/components/circle-progress/circle-progress.vue
index b683442..ea989e3 100644
--- a/components/circle-progress/circle-progress.vue
+++ b/components/circle-progress/circle-progress.vue
@@ -43,7 +43,7 @@ export default {
// 圆环颜色
color: {
type: String,
- default: '#E8101E'
+ default: '#FF4767'
},
// 背景圆环颜色
backgroundColor: {
diff --git a/components/common/CommonFilter.vue b/components/common/CommonFilter.vue
index 8e06ee6..406a915 100644
--- a/components/common/CommonFilter.vue
+++ b/components/common/CommonFilter.vue
@@ -402,7 +402,7 @@ export default {
}
.time-option.active .time-text {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -413,7 +413,7 @@ export default {
.time-discount {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
padding: 4rpx 12rpx;
background-color: #fff5f6;
border-radius: 20rpx;
@@ -444,7 +444,7 @@ export default {
color: #666;
}
.active {
- color: #E8101E; /* 选中态主题色 */
+ color: #FF4767; /* 选中态主题色 */
}
/* 服务时间按钮专属:控制下拉图标尺寸 */
diff --git a/components/common/service-first-tab.vue b/components/common/service-first-tab.vue
index cd5dbac..e911c06 100644
--- a/components/common/service-first-tab.vue
+++ b/components/common/service-first-tab.vue
@@ -52,7 +52,7 @@ export default {
// 已定义的激活色props(无需修改)
activeColor: {
type: String,
- default: "#E8101E",
+ default: "#FF4767",
},
// 已定义的非激活色props(无需修改)
inactiveColor: {
diff --git a/components/common/service-second-icon-tab.vue b/components/common/service-second-icon-tab.vue
index f5c689d..757650b 100644
--- a/components/common/service-second-icon-tab.vue
+++ b/components/common/service-second-icon-tab.vue
@@ -59,7 +59,7 @@ export default {
// 激活状态的颜色
activeColor: {
type: String,
- default: "#E8101E",
+ default: "#FF4767",
},
// 非激活状态的颜色
inactiveColor: {
@@ -129,7 +129,7 @@ export default {
left: 0;
right: 0;
bottom: 0;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 48rpx;
}
@@ -143,6 +143,6 @@ export default {
}
.icon-item.active .icon-text {
- color: #E8101E;
+ color: #FF4767;
}
diff --git a/components/filter-popup/filter-popup.vue b/components/filter-popup/filter-popup.vue
index 4189288..9db6136 100644
--- a/components/filter-popup/filter-popup.vue
+++ b/components/filter-popup/filter-popup.vue
@@ -208,7 +208,7 @@ export default {
padding-left: 30rpx;
position: relative;
&__point {
- background-color: #E8101E;
+ background-color: #FF4767;
height: 6rpx;
width: 6rpx;
border-radius: 50%;
@@ -221,7 +221,7 @@ export default {
}
.active {
background: #ffffff;
- color: #E8101E;
+ color: #FF4767;
}
}
&__right {
@@ -295,17 +295,17 @@ export default {
height: 82rpx;
font-weight: 400;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 42rpx;
text-align: left;
font-style: normal;
}
&__sure {
border-radius: 41rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
&__reset {
- background: #E8101E;
+ background: #FF4767;
border-radius: 41rpx;
color: #ffffff;
}
diff --git a/components/filterCard/filterCard.vue b/components/filterCard/filterCard.vue
index 9c203e5..3ef8b7d 100644
--- a/components/filterCard/filterCard.vue
+++ b/components/filterCard/filterCard.vue
@@ -114,8 +114,8 @@ export default {
}
.active {
background: rgba(252, 67, 124, 0.1);
- color: #E8101E;
- border: 1rpx solid #E8101E;
+ color: #FF4767;
+ border: 1rpx solid #FF4767;
}
}
diff --git a/components/hao-indexList/hao-indexList/hao-indexList.vue b/components/hao-indexList/hao-indexList/hao-indexList.vue
index eff530a..aabce58 100644
--- a/components/hao-indexList/hao-indexList/hao-indexList.vue
+++ b/components/hao-indexList/hao-indexList/hao-indexList.vue
@@ -548,7 +548,7 @@
width: 690rpx;
height: 68rpx;
background: #FFFFFF;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
background-color: #fafafa;
display: flex;
align-items: center;
diff --git a/components/hot-card/hot-card.vue b/components/hot-card/hot-card.vue
index 47f3f6e..7bc0b2d 100644
--- a/components/hot-card/hot-card.vue
+++ b/components/hot-card/hot-card.vue
@@ -121,7 +121,7 @@ export default {
border: 1rpx solid #fba9bb;
font-weight: 500;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: left;
font-style: normal;
}
@@ -197,7 +197,7 @@ export default {
margin-top: 10rpx;
font-weight: 500;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
diff --git a/components/noData/noLogin.vue b/components/noData/noLogin.vue
index 5c3b06c..47e85de 100644
--- a/components/noData/noLogin.vue
+++ b/components/noData/noLogin.vue
@@ -59,7 +59,7 @@ export default {
.loginBtn {
width: 262rpx;
height: 86rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 43rpx;
text-align: center;
line-height: 86rpx;
diff --git a/components/select-time-page/select-time-page.vue b/components/select-time-page/select-time-page.vue
index 9636437..5e39ee0 100644
--- a/components/select-time-page/select-time-page.vue
+++ b/components/select-time-page/select-time-page.vue
@@ -408,11 +408,11 @@ export default {
.isActive {
background: rgba(252, 67, 124, 0.08);
- color: #e8101e !important;
+ color: #FF4767 !important;
}
.isActive .time-picker-content__time__list__item__text {
- color: #e8101e !important;
+ color: #FF4767 !important;
}
/* 选中样式前后弧度 */
@@ -433,7 +433,7 @@ border-radius: 0rpx 51rpx 51rpx 0rpx}
.time-picker-content__time__sure__box {
width: 648rpx;
height: 94rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 48rpx;
display: flex;
align-items: center;
diff --git a/components/select-time-page/select-time-page2.vue b/components/select-time-page/select-time-page2.vue
index c9b03bd..e8fdd4a 100644
--- a/components/select-time-page/select-time-page2.vue
+++ b/components/select-time-page/select-time-page2.vue
@@ -467,8 +467,8 @@
.isActive {
background: rgba(252, 67, 124, 0.08);
border-radius: 10rpx;
- border: 1rpx solid #E8101E;
- color: #E8101E;
+ border: 1rpx solid #FF4767;
+ color: #FF4767;
/* 选中状态 */
}
@@ -493,7 +493,7 @@
&__box {
width: 648rpx;
height: 94rpx;
- background: linear-gradient(140deg, #fa4e9a 0%, #E8101E 100%);
+ background: linear-gradient(140deg, #fa4e9a 0%, #FF4767 100%);
border-radius: 48rpx;
display: flex;
align-items: center;
diff --git a/components/service-code-input/service-code-input.vue b/components/service-code-input/service-code-input.vue
index 37cb524..9c49111 100644
--- a/components/service-code-input/service-code-input.vue
+++ b/components/service-code-input/service-code-input.vue
@@ -1,30 +1,19 @@
-
+
开始服务
请输入服务码
-
{{ code[idx] }}
-
+
×
@@ -33,210 +22,212 @@
\ No newline at end of file
diff --git a/components/service-grid/service-grid.vue b/components/service-grid/service-grid.vue
index 16b665c..a7e55ec 100644
--- a/components/service-grid/service-grid.vue
+++ b/components/service-grid/service-grid.vue
@@ -181,7 +181,7 @@
position: absolute;
top: 0rpx;
left: 0rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
color: #FFFFFF;
font-size: 24rpx;
padding: 6rpx 14rpx;
@@ -247,7 +247,7 @@
.price-symbol {
font-weight: 500;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
@@ -256,7 +256,7 @@
.price-value {
font-weight: 500;
font-size: 36rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
@@ -332,12 +332,12 @@
.price-symbol {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-value {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
margin-right: 12rpx;
}
diff --git a/components/shop-list/shop-list.vue b/components/shop-list/shop-list.vue
index a7b2a0b..f6f4458 100644
--- a/components/shop-list/shop-list.vue
+++ b/components/shop-list/shop-list.vue
@@ -336,7 +336,7 @@
.price-text{
font-weight: 500;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
@@ -345,7 +345,7 @@
.price-symbol {
font-weight: 500;
font-size: 20rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
@@ -354,7 +354,7 @@
.price-value {
font-weight: 500;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
diff --git a/components/step-tab/step-tab.vue b/components/step-tab/step-tab.vue
index 1615bfe..7b9b60f 100644
--- a/components/step-tab/step-tab.vue
+++ b/components/step-tab/step-tab.vue
@@ -1,63 +1,54 @@
-
-
- 1
+ 1
1
- 入驻协议
+ 入驻协议
-
-
+
-
-
+
-
- 2
+ 2
2
-
- {{ identity === 1 ? '个人信息' : '资质信息' }}
-
+ 基本信息
-
-
+
-
-
+
-
- 3
+ 3
3
-
- {{ identity === 1 ? '资质信息' : '门店信息' }}
-
+ 资质认证
@@ -67,32 +58,23 @@
export default {
name: "StepTab",
props: {
- // 当前步骤索引 (0, 1, 2)
- currentStep: {
+ mappedStep: {
type: Number,
default: 0
- },
- // 身份类型:1-手艺人,2-商家
- identity: {
- type: Number,
- default: 2
}
},
data() {
return {
- prevStep: 0, // 记录上一步骤
- line1Active: false, // 第一条线激活状态
- line2Active: false, // 第二条线激活状态
- line1Deactivating: false, // 第一条线正在取消激活
- line2Deactivating: false // 第二条线正在取消激活
+ prevStep: 0,
+ line1Active: false,
+ line2Active: false,
+ line1Deactivating: false,
+ line2Deactivating: false
};
},
watch: {
- // 监听currentStep变化,处理线条动画
- currentStep(newVal, oldVal) {
+ mappedStep(newVal, oldVal) {
this.prevStep = oldVal;
-
- // 处理前进动画
if (newVal > oldVal) {
if (newVal >= 1) {
this.line1Active = true;
@@ -102,38 +84,34 @@ export default {
this.line2Active = true;
this.line2Deactivating = false;
}
- }
- // 处理返回动画
- else if (newVal < oldVal) {
+ } else if (newVal < oldVal) {
if (newVal < 2) {
this.line2Deactivating = true;
setTimeout(() => {
this.line2Active = false;
this.line2Deactivating = false;
- }, 300); // 与动画持续时间匹配
+ }, 300);
}
if (newVal < 1) {
this.line1Deactivating = true;
setTimeout(() => {
this.line1Active = false;
this.line1Deactivating = false;
- }, 300); // 与动画持续时间匹配
+ }, 300);
}
}
}
},
mounted() {
- // 初始化线条状态
- this.line1Active = this.currentStep >= 1;
- this.line2Active = this.currentStep >= 2;
+ this.line1Active = this.mappedStep >= 1;
+ this.line2Active = this.mappedStep >= 2;
},
methods: {
- // 获取步骤的CSS类名
getStepClass(stepIndex) {
- if (stepIndex === this.currentStep) {
+ if (stepIndex === this.mappedStep) {
return 'active';
}
- else if (stepIndex < this.currentStep) {
+ else if (stepIndex < this.mappedStep) {
return 'completed';
}
return '';
@@ -206,7 +184,7 @@ export default {
justify-content: center;
align-items: center;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
transition: all 0.3s ease;
box-shadow: inset 0 0 4rpx rgba(232, 16, 30, 0.2);
@@ -259,35 +237,16 @@ export default {
transform-origin: left center;
}
-/* 激活状态的线条 - 前进动画 */
.line-progress.active {
width: 100%;
- background-color: #E8101E;
+ background-color: #FF4767;
transition: width 0.3s ease;
}
-/* 取消激活状态的线条 - 返回动画 */
.line-progress.deactivating {
width: 0%;
- background-color: #E8101E;
+ background-color: #FF4767;
transition: width 0.3s ease;
transform-origin: right center;
}
-
-/* 响应式调整 */
-@media (max-width: 750rpx) {
- .step-container {
- /* padding: 5rpx 40rpx; */
- }
-
- .line-segment {
- /* width: 100rpx; */
- }
-
- /* .line-1,
- .line-2 {
- margin-left: 15rpx;
- margin-right: 15rpx;
- } */
-}
-
\ No newline at end of file
+
diff --git a/components/tabbar/tabbar.vue b/components/tabbar/tabbar.vue
index 6bbe3f5..32b9d65 100644
--- a/components/tabbar/tabbar.vue
+++ b/components/tabbar/tabbar.vue
@@ -1,123 +1,209 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/time-picker/time-date-picker.vue b/components/time-picker/time-date-picker.vue
index 3e40274..965f575 100644
--- a/components/time-picker/time-date-picker.vue
+++ b/components/time-picker/time-date-picker.vue
@@ -383,7 +383,7 @@
justify-content: center;
width: 690rpx;
height: 80rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 38rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/components/time-picker/time-picker.vue b/components/time-picker/time-picker.vue
index 1cc688b..641a639 100644
--- a/components/time-picker/time-picker.vue
+++ b/components/time-picker/time-picker.vue
@@ -169,7 +169,7 @@ export default {
justify-content: center;
width: 690rpx;
height: 80rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 38rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/components/upload-app/upload-app.vue b/components/upload-app/upload-app.vue
index 917bbaf..c0ff40e 100644
--- a/components/upload-app/upload-app.vue
+++ b/components/upload-app/upload-app.vue
@@ -307,7 +307,7 @@ export default {
&__text {
font-weight: 400;
font-size: 18rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 25rpx;
text-align: left;
font-style: normal;
@@ -371,7 +371,7 @@ export default {
&__immediately {
width: 236rpx;
height: 78rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 39rpx;
display: flex;
align-items: center;
@@ -405,7 +405,7 @@ export default {
&__active {
height: 28rpx;
- background: linear-gradient(270deg, #fe78b3 0%, #E8101E 100%);
+ background: linear-gradient(270deg, #fe78b3 0%, #FF4767 100%);
border-radius: 39rpx;
}
diff --git a/manifest.json b/manifest.json
index 584ecdc..52bd228 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,14 +2,21 @@
"name" : "美融融商家",
"appid" : "__UNI__BBE6285",
"description" : "同城便捷到家美业“技术外卖”服务、同城预约到店服务平台美融融为同城爱美人群提供更优质的更全面的服务。",
- "versionName" : "1.0.09",
- "versionCode" : 1009,
+ "versionName" : "1.0.22",
+ "versionCode" : 1022,
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
+ "screenOrientation" : [
+ //可选,字符串数组类型,应用支持的横竖屏
+ "portrait-primary", //可选,字符串类型,支持竖屏
+ "portrait-secondary", //可选,字符串类型,支持反向竖屏
+ "landscape-primary", //可选,字符串类型,支持横屏
+ "landscape-secondary" //可选,字符串类型,支持反向横屏
+ ],
"compatible" : {
"ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持
},
@@ -34,7 +41,8 @@
"Payment" : {},
"VideoPlayer" : {},
"OAuth" : {},
- "Camera" : {}
+ "Camera" : {},
+ "Barcode" : {}
},
/* 应用发布信息 */
"distribute" : {
@@ -69,6 +77,7 @@
},
/* ios打包配置 */
"ios" : {
+ "UIRequiresFullScreen" : false, // 允许非全屏模式
"urlschemewhitelist" : [ "iosmap" ],
"dSYMs" : false,
"plistcmds" : [
diff --git a/pages.json b/pages.json
index b63a79f..f3b2606 100644
--- a/pages.json
+++ b/pages.json
@@ -31,6 +31,20 @@
"enablePullDownRefresh": true
}
},
+ {
+ "path": "pages/home/growth-package",
+ "style": {
+ "navigationBarTitleText": "",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/home/growth-package-result",
+ "style": {
+ "navigationBarTitleText": "支付结果",
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/message/message",
"style": {
@@ -89,8 +103,12 @@
"path": "pages/order/userorder-list",
"style": {
"navigationBarTitleText": "订单",
- "navigationBarBackgroundColor": "#FFFFFF"
+ "navigationBarBackgroundColor": "#FFFFFF",
+ "app-plus": {
+ "softinputNavBar": "none"
+ }
}
+
},
{
"path": "pages/order/userorder-detail",
@@ -150,7 +168,13 @@
}
},
{
- "path": "pages/add/add",
+ "path": "pages/notice/notice_list",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/notice/detail",
"style": {
"navigationStyle": "custom"
}
@@ -221,6 +245,12 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "pages/search_common/search",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/settings/index",
"style": {
@@ -584,6 +614,30 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "pages/shop/verify/verify-order",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/shop/verify/manual-verify",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/shop/verify/verify-fail",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/shop/verify/verify-order-detail",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/shop/photoAlbum/photoManage",
"style": {
@@ -596,6 +650,14 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "pages/shop/photoAlbum/videoplayer",
+ "style": {
+ "navigationBarTitleText": "全屏视频播放",
+ "pageOrientation": "auto",
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/shop/photoAlbum/videoList",
"style": {
@@ -943,6 +1005,43 @@
"style": {
"navigationBarTitleText": "拍摄技巧"
}
+ },
+ {
+ "path": "pages/my/myFavorite",
+ "style": {
+ "navigationBarTitleText": "我的收藏",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/jingxuan/selected-skills",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/jingxuan/selected-brands",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/jingxuan/brand-detail",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/jingxuan/skill-detail",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/ruzhu/successruzhu",
+ "style": {
+ "navigationBarTitleText": "入驻成功"
+ }
}
@@ -955,7 +1054,7 @@
},
"tabBar": {
"color": "#999",
- "selectedColor": "#E8101E",
+ "selectedColor": "#FF4767",
"backgroundColor": "#fff",
"list": [{
"iconPath": "/static/images/tabbar/home_icon_dis.png",
@@ -963,10 +1062,17 @@
"selectedIconPath": "/static/images/tabbar/home_icon_active.png",
"pagePath": "pages/home/home"
},
- { "iconPath": "/static/images/tabbar/new_message_gray.png",
- "text": "消息",
- "selectedIconPath": "/static/images/tabbar/new_message.png",
- "pagePath": "pages/message/message"
+ {
+ "iconPath": "/static/images/tabbar/new_order_gray.png",
+ "text": "订单",
+ "selectedIconPath": "/static/images/tabbar/new_order.png",
+ "pagePath": "pages/order/userorder-list"
+ },
+ {
+ "iconPath": "/static/images/tabbar/new_message_gray.png",
+ "text": "消息",
+ "selectedIconPath": "/static/images/tabbar/new_message.png",
+ "pagePath": "pages/message/message"
},
{
"iconPath": "/static/images/tabbar/my_icon_dis.png",
@@ -977,4 +1083,4 @@
]
},
"uniIdRouter": {}
-}
\ No newline at end of file
+}
diff --git a/pages/address/add.nvue b/pages/address/add.nvue
index 4fe7123..2e2a5d5 100644
--- a/pages/address/add.nvue
+++ b/pages/address/add.nvue
@@ -55,7 +55,7 @@
设为默认地址
-
+
@@ -622,7 +622,7 @@
.save-btn {
width: 630rpx;
height: 96rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 44rpx;
display: flex;
justify-content: center;
diff --git a/pages/address/list.vue b/pages/address/list.vue
index 8d7fa59..bbe9d94 100644
--- a/pages/address/list.vue
+++ b/pages/address/list.vue
@@ -261,7 +261,7 @@
/* .tag {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
background-color: rgba(252, 67, 124, 0.08);
padding: 6rpx 16rpx;
border-radius: 6rpx;
@@ -370,7 +370,7 @@
width: 690rpx;
height: 78rpx;
border-radius: 39rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
text-align: center;
line-height: 64rpx;
display: flex;
@@ -383,7 +383,7 @@
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 42rpx;
text-align: left;
font-style: normal;
diff --git a/pages/address/newSearch.nvue b/pages/address/newSearch.nvue
index b0d7c08..4194541 100644
--- a/pages/address/newSearch.nvue
+++ b/pages/address/newSearch.nvue
@@ -7,7 +7,7 @@
@@ -858,7 +858,7 @@
flex: 1;
height: 68rpx;
background: #FFFFFF;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 60rpx;
position: relative;
@@ -936,7 +936,7 @@
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: center;
font-style: normal;
@@ -1124,7 +1124,7 @@
width: 48rpx;
height: 26rpx;
border-radius: 6rpx;
- background: #E8101E;
+ background: #FF4767;
margin-right: 10rpx;
&__text {
diff --git a/pages/address/revise.nvue b/pages/address/revise.nvue
index 86bbf04..d535b87 100644
--- a/pages/address/revise.nvue
+++ b/pages/address/revise.nvue
@@ -55,7 +55,7 @@
设为默认地址
-
+
@@ -614,7 +614,7 @@
.save-btn {
width: 630rpx;
height: 96rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 44rpx;
display: flex;
justify-content: center;
diff --git a/pages/address/search-副本.nvue b/pages/address/search-副本.nvue
index 6cc05bc..81f7f5d 100644
--- a/pages/address/search-副本.nvue
+++ b/pages/address/search-副本.nvue
@@ -666,7 +666,7 @@
flex: 1;
height: 68rpx;
background: #FFFFFF;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 60rpx;
position: relative;
diff --git a/pages/address/search.vue b/pages/address/search.vue
index 49fb62c..4f803a5 100644
--- a/pages/address/search.vue
+++ b/pages/address/search.vue
@@ -1,86 +1,78 @@
-
-
-
+
+
+
-
-
- {{ city.name }}
-
-
+
+
+ {{ city.name }}
+
+
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
- {{ hasRawContent ? '一键清空' : '粘贴' }}
-
-
- {{ smartBtnText }}
-
-
-
+
+
+
+
+
+
+
+ {{ hasRawContent ? '一键清空' : '粘贴' }}
+
+
+ {{ smartBtnText }}
+
+
+
-
-
-
- 所在地区
-
- {{ currentRegion || "请选择"}}
-
-
-
-
-
- 详细地址
-
-
-
-
+
+
+
+ 所在地区
+
+ {{ currentRegion || "请选择"}}
+
+
+
+
+
+ 详细地址
+
+
+
+
-
-
-
- 确认
-
-
-
+
+
+
+ 确认
+
+
+
-
+
-
+
+
\ No newline at end of file
diff --git a/pages/address/selectAddress.vue b/pages/address/selectAddress.vue
index 22ea79b..5c31a9d 100644
--- a/pages/address/selectAddress.vue
+++ b/pages/address/selectAddress.vue
@@ -274,7 +274,7 @@
flex: 1;
height: 68rpx;
background: #FFFFFF;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
background-color: #fafafa;
display: flex;
align-items: center;
diff --git a/pages/address/selectCity.vue b/pages/address/selectCity.vue
index 0deb358..930e821 100644
--- a/pages/address/selectCity.vue
+++ b/pages/address/selectCity.vue
@@ -8,7 +8,7 @@
>
-
-
-
-
-
-
-
-
-
-
-
-
- {{ videoInfo_0.src }}
- 评分 4.8
-
-
- {{videoInfo_0.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 珍草品汇理疗馆珍馆服务流程11订单
- 评分 4.8
-
-
- {{videoInfo_1.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 珍草品汇理疗馆珍馆服务流程11订单
- 评分 4.8
-
-
- {{videoInfo_2.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 珍草品汇理疗馆珍馆服务流程11订单
- 评分 4.8
-
-
- {{videoInfo_3.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 珍草品汇理疗馆珍馆服务流程11订单
- 评分 4.8
-
-
- {{videoInfo_4.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ videoIndex+1 }}/{{ videoListLength }}
-
-
+
+
+
+
+
+
+
-
\ No newline at end of file
diff --git a/pages/album/components/videoplayer.vue b/pages/album/components/videoplayer.vue
new file mode 100644
index 0000000..9ae18ef
--- /dev/null
+++ b/pages/album/components/videoplayer.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/album/index.nvue b/pages/album/index.nvue
index 0dda008..5fc2123 100644
--- a/pages/album/index.nvue
+++ b/pages/album/index.nvue
@@ -1,52 +1,59 @@
-
@@ -68,6 +75,23 @@
title: "主图",
id: 1
},
+ {
+ title: "作品",
+ id: 3
+ },
+ {
+ title: "其他",
+ id: 4
+ }
+ ],
+ 2: [{
+ title: "全部",
+ id: 0
+ },
+ {
+ title: "主图",
+ id: 1
+ },
{
title: "环境",
id: 2
@@ -94,7 +118,7 @@
inactiveStyle: {
fontWeight: 500,
fontSize: "32rpx",
- color: "#666666",
+ color: "#333333",
},
current: 1,
statusBarHeight: 0,
@@ -108,6 +132,7 @@
};
},
async onLoad(options) {
+
// 获取状态栏高度
const systemInfo = await uni.getSystemInfoSync()
this.systemInfo = systemInfo
@@ -120,6 +145,12 @@
this.getVideoList()
}
},
+ onShow() {
+ // // #ifdef APP-PLUS
+ // plus.screen.unlockOrientation(); //解除屏幕方向的锁定,但是不一定是竖屏;
+ // plus.screen.lockOrientation('portrait'); //锁死屏幕方向为竖屏
+ // // #endif
+ },
computed: {
// 计算swiper的样式
swiperStyle() {
@@ -128,68 +159,82 @@
// 注意:100vh 是视口高度,需要先转数值计算,再拼接单位
let viewportHeight = this.pxToRpx(this.systemInfo.windowHeight || window?.innerHeight || document
- ?.documentElement?.clientHeight|| 0, screenWidth ) ;
- let height = viewportHeight - 88 - this.statusBarHeight;
+ ?.documentElement?.clientHeight || 0, screenWidth);
+ let height = viewportHeight - 100 - this.statusBarHeight;
return {
height: `${height}rpx`
};
}
return {
- height: `${this.viewportHeight}rpx`
+ height: `${this.viewportHeight - 100 - this.statusBarHeight}rpx`
};
},
swiperStyle2() {
if (this.current == 1) {
return {
- marginTop: `${88 + this.statusBarHeight + 100}rpx`,
- height: `${this.viewportHeight-88-this.statusBarHeight-100}rpx`
+ height: `${this.viewportHeight-100-this.statusBarHeight-100}rpx`
};
}
return {
- height: `${this.viewportHeight}rpx`
+ height: `${this.viewportHeight - 100 - this.statusBarHeight}rpx`
+ };
+ },
+ swiperStyle3() {
+ if (this.current == 1) {
+ return {
+ width: `750rpx`,
+ height: `${200 + this.statusBarHeight}rpx`,
+ };
+ }
+ return {
+ width: `750rpx`,
+ height: `${100 + this.statusBarHeight}rpx`,
};
},
viewportHeight() {
let screenWidth = this.systemInfo.screenWidth;
// 注意:100vh 是视口高度,需要先转数值计算,再拼接单位
let viewportHeight = this.pxToRpx(this.systemInfo.windowHeight || window?.innerHeight || document
- ?.documentElement?.clientHeight|| 0, screenWidth) ;
+ ?.documentElement?.clientHeight || 0, screenWidth);
return viewportHeight
},
},
methods: {
+ goBack() {
+ uni.navigateBack(-1)
+ },
+ toimg(item) {
+ console.log(item, 'item');
+ uni.previewImage({
+ urls: [item.url], // 外面加 [] 变成数组
+ current: 0 // 可选,默认第一张
+ })
+ },
+ tovideo(item) {
+ uni.navigateTo({
+ url: '/pages/album/components/videoplayer?url=' + item.url
+ })
+ },
clickTab(item) {
this.cardListIndex = item.id
},
tabsClick(e) {
- this.$nextTick(() => {
-
- this.current = e.index
- if(this.current==1){
- this.activeStyle.color = "#333333"
- this.inactiveStyle.color = "#666666"
- this.$refs.ideoSlideRrf.nowStopVideo()
- }
- if(this.current==0){
- this.activeStyle.color = "#fff"
- this.inactiveStyle.color = "#ccc"
- this.$refs.ideoSlideRrf.nowPlayVideo()
- }
- })
+ console.log('12312312312');
+ this.current = e.index
+ this.activeStyle.color = "#333333"
+ this.inactiveStyle.color = "#666666"
},
swiperChange(e) {
this.$nextTick(() => {
this.current = e.detail.current
- if(this.current==1){
+ if (this.current == 1) {
this.activeStyle.color = "#333333"
this.inactiveStyle.color = "#666666"
- this.$refs.ideoSlideRrf.nowStopVideo()
}
- if(this.current==0){
- this.activeStyle.color = "#fff"
- this.inactiveStyle.color = "#ccc"
- this.$refs.ideoSlideRrf.nowPlayVideo()
+ if (this.current == 0) {
+ this.activeStyle.color = "#333333"
+ this.inactiveStyle.color = "#666666"
}
})
@@ -208,12 +253,17 @@
type: 1
}).then(res => {
if (res.code == 200) {
- this.imagObj = res.data.list[1]
- let all = []
- for (let key in res.data.list[1]) {
- all = [...all, ...res.data.list[1][key]]
+ if (res.data.list.length != 0) {
+ this.imagObj = res.data.list[1]
+ let all = []
+ for (let key in res.data.list[1]) {
+ all = [...all, ...res.data.list[1][key]]
+ }
+ this.imagObj[0] = all
+ } else {
+ this.imagObj[0] = []
}
- this.imagObj[0] = all
+
}
})
},
@@ -224,8 +274,17 @@
type: 2
}).then(res => {
if (res.code == 200) {
- for (let key in res.data.list[2]) {
- this.videoList = [...this.videoList, ...res.data.list[2][key]]
+ if (res.data.list.length != 0) {
+ console.log(res.data, 'res.data');
+ for (let key in res.data.list[2]) {
+ this.videoList = [...this.videoList, ...res.data.list[2][key]]
+ this.videoList.forEach((item) => {
+ item.img = item.url +
+ '?x-oss-process=video/snapshot,t_1000,m_fast,f_jpg,w_600,ar_auto'
+ })
+ }
+ } else {
+ this.videoList = []
}
}
})
@@ -249,7 +308,7 @@
z-index: 9999;
background: #f5f5f5;
padding: 0 24rpx;
-
+
.left-area {
display: flex;
align-items: center;
@@ -266,10 +325,12 @@
}
}
}
- .videoTop{
+
+ .videoTop {
background: transparent;
- ::v-deep .uv-tabs__wrapper__nav__line{
- background: #fff!important;
+
+ ::v-deep .uv-tabs__wrapper__nav__line {
+ background: #fff !important;
}
}
@@ -296,7 +357,7 @@
.container-tab-text {
font-weight: 400;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 40rpx;
text-align: left;
font-style: normal;
@@ -306,6 +367,7 @@
.container-content {
z-index: 1000;
+
.swiper {
background: #fff;
@@ -349,6 +411,47 @@
}
}
+ .swiper-items3 {
+ flex-wrap: wrap;
+ flex-direction: row;
+ display: flex;
+ padding-bottom: 20rpx;
+
+ .swiper-item3 {
+ width: 370rpx;
+ height: 370rpx;
+ margin-top: 10rpx;
+ overflow: hidden;
+ position: relative;
+ box-sizing: border-box;
+ border-radius: 20rpx;
+
+ .swiper-item3-video {
+ width: 370rpx;
+ height: 370rpx;
+ }
+
+ .swiper-item3-title {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 33rpx;
+ padding: 0 8rpx;
+ background: rgba(0, 0, 0, 0.5);
+ border-radius: 0rpx 0rpx 10rpx 0rpx;
+ width: fit-content;
+
+ .swiper-item3-title-text {
+ font-weight: 400;
+ font-size: 18rpx;
+ color: #FFFFFF;
+ line-height: 33rpx;
+
+ }
+ }
+ }
+ }
+
.item2Left {
margin-right: 9rpx;
}
@@ -398,6 +501,4 @@
align-items: flex-end;
justify-content: space-between;
}
-
-
\ No newline at end of file
diff --git a/pages/artisan/add-service.vue b/pages/artisan/add-service.vue
index bbba759..1d8dc24 100644
--- a/pages/artisan/add-service.vue
+++ b/pages/artisan/add-service.vue
@@ -86,7 +86,7 @@
? "门店下单购买后,您需到上门至门店进行服务,门店端展示价格为"
: ""
}}
- {{
+ {{
shopPrice
}}
{{ showShopPrice ? "元。" : "" }}
@@ -364,19 +364,6 @@
>
-
-
-
-
@@ -402,7 +389,6 @@ export default {
},
data() {
return {
- showReminderPopup: false,
artisanType: getApp().globalData.artisanType,
nowQer: "xc",
progress: 0,
@@ -474,11 +460,6 @@ export default {
this.serviceTypes = this.serviceTypes.concat(res.data);
});
}
- // 判断是否显示上门提醒弹窗
- const notShow = uni.getStorageSync('addServiceReminderNotShow');
- if (!notShow) {
- this.showReminderPopup = true;
- }
this.getUserInfo();
},
computed: {
@@ -575,14 +556,6 @@ export default {
return true;
},
-
- closeReminderPopup(notShowAgain) {
- console.log('关闭弹窗,不再提示:', notShowAgain);
- if (notShowAgain) {
- uni.setStorageSync('addServiceReminderNotShow', true);
- }
- this.showReminderPopup = false;
- },
goImgAndText() {
uni.navigateTo({
url: `/pages/shop/add-img-text?list=${this.formData.graphic_details}`,
@@ -1234,13 +1207,13 @@ export default {
.btn-draft {
background-color: #ffffff;
- color: #e8101e;
- border: 2rpx solid #e8101e;
+ color: #FF4767;
+ border: 2rpx solid #FF4767;
box-sizing: border-box;
}
.btn-submit {
- background-color: #e8101e;
+ background-color: #FF4767;
color: #ffffff;
}
@@ -1512,13 +1485,13 @@ export default {
}
.popup-btn-know {
- background-color: #e8101e;
+ background-color: #FF4767;
color: #ffffff;
}
.popup-btn-notshow {
background-color: #ffffff;
- color: #e8101e;
- border: 1rpx #e8101e solid;
+ color: #FF4767;
+ border: 1rpx #FF4767 solid;
}
diff --git a/pages/artisan/belong_shop.vue b/pages/artisan/belong_shop.vue
index 9abb429..e38624d 100644
--- a/pages/artisan/belong_shop.vue
+++ b/pages/artisan/belong_shop.vue
@@ -1204,7 +1204,7 @@ export default {
}
.change-info-btn, .view-change-btn, .resubmit-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -1225,7 +1225,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
@@ -1257,7 +1257,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 7rpx;
border-radius: 5rpx;
}
@@ -1405,7 +1405,7 @@ export default {
width: 60rpx;
height: 60rpx;
border: 4rpx solid #fff;
- border-top: 4rpx solid #E8101E;
+ border-top: 4rpx solid #FF4767;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 16rpx;
@@ -1470,8 +1470,8 @@ export default {
}
.radio.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.radio-icon-image {
@@ -1640,7 +1640,7 @@ export default {
display: flex;
align-items: center;
justify-content: center;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
.popup-btn .btn-text {
@@ -1659,7 +1659,7 @@ export default {
}
.confirm-text {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -1771,13 +1771,13 @@ export default {
}
.tip-btn.cancel {
- border: #E8101E 2rpx solid;
+ border: #FF4767 2rpx solid;
background-color: transparent;
- color: #e8101e;
+ color: #FF4767;
}
.tip-btn.confirm {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
color: #FFFFFF;
}
diff --git a/pages/artisan/index.vue b/pages/artisan/index.vue
index 7d3d163..3aac651 100644
--- a/pages/artisan/index.vue
+++ b/pages/artisan/index.vue
@@ -165,7 +165,7 @@ export default {
timeRange: '7days',
count: 0,
chartOpts: {
- color: ["#E8101E"],
+ color: ["#FF4767"],
padding: [15, 15, 0, 15],
enableScroll: false,
legend: false,
@@ -657,7 +657,7 @@ page {
}
.time-filter .active {
- color: #E8101E;
+ color: #FF4767;
}
.chart-container {
@@ -676,7 +676,7 @@ page {
width: 214rpx;
height: 56rpx;
background-color: #FFFFFF;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
border-radius: 8rpx;
display: flex;
justify-content: center;
@@ -687,7 +687,7 @@ page {
.type-name {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.type-count {
@@ -708,7 +708,7 @@ page {
background-color: #F53F3F;
}
.order-type-item.active {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.order-type-item.active .type-name {
color: #FFFFFF;
@@ -800,7 +800,7 @@ page {
}
.action-btn.verify .action-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
}
.nothings-box {
diff --git a/pages/artisan/my.vue b/pages/artisan/my.vue
index fdf0dce..02a83a9 100644
--- a/pages/artisan/my.vue
+++ b/pages/artisan/my.vue
@@ -249,7 +249,7 @@ page {
flex-flow: row nowrap;
justify-content: center;
align-items: center;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background-color: #FFF1F1;
border-radius: 22rpx;
box-sizing: border-box;
@@ -267,7 +267,7 @@ page {
}
.verified-text {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.verified-text.no {
color: #666666;
diff --git a/pages/artisan/profile.vue b/pages/artisan/profile.vue
index e73858c..46ca4a2 100644
--- a/pages/artisan/profile.vue
+++ b/pages/artisan/profile.vue
@@ -1,768 +1,990 @@
-
-
-
-
-
-
-
- 我的资料
-
-
-
-
-
-
-
-
-
-
-
-
-
- 店铺信息将影响顾客到店消费体验,请确保信息准确。
-
-
-
-
-
-
-
- {{ identity == '2' ? '营业时间' : '服务时间' }}
-
-
-
-
-
-
-
- 服务技能
-
-
-
-
-
-
-
-
- 门店信息
-
-
-
-
-
-
-
-
- 服务区域
-
-
-
-
-
-
-
-
- 个人信息
-
-
-
-
-
-
-
-
- 相册管理
-
-
-
-
-
-
-
-
- 视频管理
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 资质信息
-
-
-
-
-
-
-
-
- 所属门店
-
-
-
-
-
-
-
-
-
-
+ onLoad() {
+ // 页面显示时重新加载身份信息,确保数据最新
+ this.loadIdentity()
+ console.log('当前身份:', this.identity)
+ // 加载用户信息
+ this.loadUserInfo()
+ },
+ onShow() {
+ // 页面显示时也重新加载,确保数据最新
+ this.loadIdentity()
+ this.loadUserInfo()
+ },
+ methods: {
+ // 返回按钮处理
+ handleBack() {
+ uni.navigateBack()
+ },
+
+ // 分享到微信
+ handleShareWechat() {
+ console.log('分享到微信')
+
+ this.handleShareProcess()
+ },
+
+ async handleShareProcess() {
+ // 如果正在分享中,防止重复点击
+ if (this.sharing) {
+ return;
+ }
+
+ // 设置分享状态
+ this.sharing = true;
+
+ try {
+ // 显示加载提示
+ uni.showLoading({
+ title: '正在准备分享...',
+ mask: true
+ });
+
+ // 确保用户信息已加载
+ if (!this.currentUserId) {
+ await this.loadUserInfo()
+ }
+
+ // 检查是否已加载用户信息
+ if (!this.currentUserId) {
+ uni.showToast({
+ title: '无法获取用户信息',
+ icon: 'none'
+ })
+ return
+ }
+
+ // 根据环境处理
+ // #ifdef APP-PLUS
+ this.handleAppAutoShare()
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ this.handleMpAutoShare()
+ // #endif
+
+ // #ifdef H5
+ this.handleH5Share()
+ // #endif
+ } catch (error) {
+ console.error('分享过程出错:', error);
+ uni.hideLoading();
+ this.sharing = false;
+ uni.showToast({
+ title: '分享失败,请重试',
+ icon: 'none'
+ });
+ }
+ },
+
+ // H5环境分享
+ handleH5Share() {
+ // 在H5环境,通常使用浏览器的分享功能或复制链接
+ const shareUrl = window.location.href
+ uni.showModal({
+ title: '分享提示',
+ // content: `请复制链接分享给好友:${shareUrl}`,
+ content: `请在美融融Plus APP 环境下使用此功能`,
+
+ showCancel: false,
+ confirmText: '好的',
+ success: (res) => {
+ if (res.confirm) {
+ // // 复制链接到剪贴板
+ // uni.setClipboardData({
+ // data: shareUrl,
+ // success: () => {
+ // uni.showToast({
+ // title: '链接已复制',
+ // icon: 'success'
+ // })
+ // }
+ // })
+ }
+ }
+ })
+ },
+
+ // 小程序环境处理
+ handleMpAutoShare() {
+ // 小程序无法自动触发分享,跳转后提示用户手动操作
+ const url = this.identity == '2' ?
+ `/pages/user/store-detail?id=${this.currentUserId}` :
+ `/pages/user/syr-detail?id=${this.currentUserId}`;
+
+ uni.navigateTo({
+ url: url,
+ success: () => {
+ setTimeout(() => {
+ uni.showToast({
+ title: '请点击右上角分享',
+ icon: 'none',
+ duration: 2000
+ });
+ }, 500);
+ }
+ });
+ },
+
+ // APP环境自动分享
+ handleAppAutoShare() {
+ if (!this.currentUserId) {
+ uni.showToast({
+ title: '无法获取用户信息',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 清除旧的分享标记
+ uni.removeStorage({
+ key: 'share_success'
+ });
+
+ // 跳转到店铺主页并自动触发分享
+ const url = this.identity == '2' ?
+ `/pages/user/store-detail?id=${this.currentUserId}&autoShare=1` :
+ `/pages/user/syr-detail?id=${this.currentUserId}&autoShare=1`;
+
+ uni.navigateTo({
+ url: url,
+ success: () => {
+ console.log('跳转成功,将自动触发分享');
+ // 跳转成功后立即隐藏loading,避免页面闪烁
+ setTimeout(() => {
+ uni.hideLoading();
+ this.sharing = false;
+ }, 200);
+ },
+ fail: () => {
+ console.log('跳转失败:', err);
+ uni.hideLoading();
+ this.sharing = false;
+ this.showManualShareOption();
+ }
+ });
+ },
+
+ // 执行APP分享
+ executeAppShare(imageUrl) {
+ // 备用图片地址
+ const backupImageUrl =
+ "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/yh/1756713709528-717.png?x-oss-process=image/resize,p_40"
+
+ // 根据身份设置不同的分享标题
+ const shareTitle = this.identity == '2' ?
+ "好友刚推了个超赞商家!点开认识TA ~" :
+ "好友刚推了个超赞手艺人!点开认识TA ~"
+
+ // 生成分享配置
+ const shareConfig = {
+ provider: "weixin",
+ scene: "WXSceneSession",
+ type: 5,
+ title: shareTitle,
+ miniProgram: {
+ id: "gh_89c92e18b70b", // 小程序原始ID
+ path: this.getSharePath(), // 动态分享路径
+ type: 0, // 正式版
+ webUrl: "https://www.baidu.com/", // 降级网页地址
+ },
+ imageUrl: imageUrl,
+ success: (res) => {
+ console.log("分享成功:", JSON.stringify(res))
+ uni.showToast({
+ title: '分享成功',
+ icon: 'success'
+ })
+ },
+ fail: (err) => {
+ console.log("分享失败:", JSON.stringify(err))
+ // 尝试使用备用图片
+ if (imageUrl !== backupImageUrl) {
+ console.log("尝试使用备用图片分享...")
+ this.executeAppShare(backupImageUrl)
+ } else {
+ uni.showToast({
+ title: '分享失败',
+ icon: 'none'
+ })
+ }
+ }
+ }
+
+ // 检查是否支持分享API
+ if (uni.share) {
+ uni.share(shareConfig)
+ } else {
+ uni.showToast({
+ title: '当前环境不支持分享',
+ icon: 'none'
+ })
+ }
+ },
+
+ // 获取分享路径
+ getSharePath() {
+ // 根据身份生成不同的分享路径
+ if (this.identity == '2') {
+ // 商家分享店铺详情页
+ return `/pages/user/store-detail?id=${this.currentUserId || ''}`
+ } else {
+ // 手艺人分享个人主页
+ return `/pages/user/syr-detail?id=${this.currentUserId || ''}`
+ }
+ },
+
+ // 查看店铺
+ async handleViewShop() {
+ console.log('查看店铺')
+
+ // 确保用户信息已加载
+ if (!this.currentUserId) {
+ await this.loadUserInfo()
+ }
+
+ // 如果仍然没有用户ID,提示用户手动输入或联系客服
+ if (!this.currentUserId) {
+ uni.showModal({
+ title: '提示',
+ content: '无法获取用户信息,请联系客服或稍后重试',
+ showCancel: false,
+ confirmText: '确定'
+ })
+ return
+ }
+
+ // 根据身份跳转到不同的页面
+ if (this.identity == '2') {
+ // 商家跳转到店铺主页
+ uni.navigateTo({
+ url: '/pages/user/store-detail?id=' + this.currentUserId
+ })
+ } else {
+ // 手艺人跳转到个人主页
+ uni.navigateTo({
+ url: '/pages/user/syr-detail?id=' + this.currentUserId
+ })
+ }
+ },
+
+ // 加载用户信息 - 主要使用接口获取
+ async loadUserInfo() {
+ try {
+ // 根据身份设置type参数(参考个人中心页面的逻辑)
+ let type = 1 // 默认值
+ if (this.identity == '1') {
+ type = 2 // 手艺人
+ } else if (this.identity == '2') {
+ type = 3 // 商家
+ }
+
+ console.log('调用接口获取用户信息,type:', type)
+
+ // 调用接口获取用户信息
+ const result = await request.post('/sj/user/getUser', {
+ type
+ })
+
+ if (result.data && result.data.id) {
+ this.userInfo = result.data
+ this.currentUserId = result.data.id
+ this.fetchServiceSkillApplyDetails()
+ this.fetchQualificationApplyDetails()
+ if (this.isSettled()) {
+ this.fetchAuthDetails()
+ } else {
+ this.authDetails = null
+ }
-
\ No newline at end of file
+
+
+
diff --git a/pages/artisan/profile_bk.vue b/pages/artisan/profile_bk.vue
index 3d92880..1097b5d 100644
--- a/pages/artisan/profile_bk.vue
+++ b/pages/artisan/profile_bk.vue
@@ -1544,7 +1544,7 @@ export default {
.tag {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 14rpx;
}
.textarea {
@@ -1655,7 +1655,7 @@ export default {
.save-btn {
width: 702rpx;
height: 64rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 32rpx;
display: flex;
align-items: center;
@@ -1762,8 +1762,8 @@ export default {
}
.checkbox.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.check-icon {
@@ -1796,7 +1796,7 @@ export default {
}
.popup-btn.confirm {
- background: linear-gradient(90deg, #E8101E 0%, #FF618F 100%);
+ background: linear-gradient(90deg, #FF4767 0%, #FF618F 100%);
}
.popup-btn .btn-text {
@@ -1834,7 +1834,7 @@ export default {
}
.region-tab.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -1846,7 +1846,7 @@ export default {
transform: translateX(-50%);
width: 40rpx;
height: 4rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 2rpx;
}
@@ -1907,7 +1907,7 @@ export default {
.confirm-text {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -1949,7 +1949,7 @@ export default {
}
.time-block.active .time-value {
- color: #E8101E;
+ color: #FF4767;
}
.time-separator {
diff --git a/pages/artisan/qualification_syr_change.vue b/pages/artisan/qualification_syr_change.vue
index c25553b..3bfb332 100644
--- a/pages/artisan/qualification_syr_change.vue
+++ b/pages/artisan/qualification_syr_change.vue
@@ -43,7 +43,7 @@
@@ -52,7 +52,7 @@
@@ -1292,7 +1292,7 @@ export default {
}
.change-info-btn, .view-change-btn, .resubmit-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -1313,7 +1313,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
@@ -1345,7 +1345,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 7rpx;
border-radius: 5rpx;
}
@@ -1472,8 +1472,8 @@ export default {
}
.radio.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.radio-icon-image {
diff --git a/pages/artisan/service-area.vue b/pages/artisan/service-area.vue
index 3911adf..f57ff1b 100644
--- a/pages/artisan/service-area.vue
+++ b/pages/artisan/service-area.vue
@@ -104,7 +104,7 @@
@click="toggleDistrictSelect(index)"
>
-
+
{{district.area}}
@@ -752,7 +752,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 10rpx;
border-radius: 5rpx;
}
@@ -854,7 +854,7 @@ export default {
.limit-text {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
/* 区域选择器样式 */
@@ -942,7 +942,7 @@ export default {
}
.region-tab.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -954,7 +954,7 @@ export default {
transform: translateX(-50%);
width: 40rpx;
height: 4rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 2rpx;
}
@@ -994,8 +994,8 @@ export default {
}
.checkbox.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.check-icon {
@@ -1035,7 +1035,7 @@ export default {
}
.popup-btn.confirm {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
.popup-btn .btn-text {
@@ -1075,11 +1075,11 @@ export default {
}
.change-info-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
.view-change-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -1100,7 +1100,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
diff --git a/pages/artisan/service-skills.vue b/pages/artisan/service-skills.vue
index ac46be0..8b1b4dd 100644
--- a/pages/artisan/service-skills.vue
+++ b/pages/artisan/service-skills.vue
@@ -25,7 +25,7 @@
@@ -45,7 +45,7 @@
@@ -721,7 +721,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 10rpx;
border-radius: 5rpx;
}
@@ -790,8 +790,8 @@ export default {
}
.checkbox.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.check-icon {
@@ -827,12 +827,12 @@ export default {
.change-info-btn {
margin-top: 20rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
.view-change-btn {
margin-top: 20rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -853,7 +853,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
diff --git a/pages/artisan/service-time.vue b/pages/artisan/service-time.vue
index 0687a71..badd4d2 100644
--- a/pages/artisan/service-time.vue
+++ b/pages/artisan/service-time.vue
@@ -371,7 +371,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 10rpx;
border-radius: 5rpx;
}
@@ -410,7 +410,7 @@ export default {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 40rpx;
text-align: left;
font-style: normal;
@@ -476,7 +476,7 @@ export default {
.confirm-text {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -526,7 +526,7 @@ export default {
}
.time-block.active .time-value-picker {
- color: #E8101E;
+ color: #FF4767;
}
.time-separator {
@@ -572,7 +572,7 @@ export default {
border: none;
width: 290rpx;
height: 86rpx;
- background: linear-gradient( 180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient( 180deg, #F52540 0%, #FF4767 100%, #FF4767 100%);
border-radius: 43rpx;
}
@@ -592,7 +592,7 @@ export default {
}
.btn-confirm-large {
- background: #E8101E;
+ background: #FF4767;
color: white;
}
\ No newline at end of file
diff --git a/pages/artisan/syr-info-change.vue b/pages/artisan/syr-info-change.vue
index 399e22c..6224f8d 100644
--- a/pages/artisan/syr-info-change.vue
+++ b/pages/artisan/syr-info-change.vue
@@ -100,13 +100,13 @@
-
+
长久有效
-
+
指定日期有效
@@ -1813,7 +1813,7 @@ export default {
}
.change-info-btn, .view-change-btn, .resubmit-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -1834,7 +1834,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
@@ -1866,7 +1866,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 7rpx;
border-radius: 5rpx;
}
@@ -2029,7 +2029,7 @@ export default {
width: 60rpx;
height: 60rpx;
border: 4rpx solid #fff;
- border-top: 4rpx solid #E8101E;
+ border-top: 4rpx solid #FF4767;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 16rpx;
@@ -2115,8 +2115,8 @@ export default {
}
.radio.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.radio-icon-image {
@@ -2291,7 +2291,7 @@ export default {
.confirm-text {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -2321,7 +2321,7 @@ export default {
}
.popup-btn.confirm {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
.popup-btn .btn-text {
@@ -2431,13 +2431,13 @@ export default {
}
.tip-btn.cancel {
- border: #E8101E 2rpx solid;
+ border: #FF4767 2rpx solid;
background-color: transparent;
- color: #e8101e;
+ color: #FF4767;
}
.tip-btn.confirm {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
color: #FFFFFF;
}
diff --git a/pages/artisan/unavailable-time.vue b/pages/artisan/unavailable-time.vue
index 685339f..576d088 100644
--- a/pages/artisan/unavailable-time.vue
+++ b/pages/artisan/unavailable-time.vue
@@ -326,7 +326,7 @@ export default {
.add-icon {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
margin-right: 8rpx;
}
@@ -367,7 +367,7 @@ export default {
}
.confirm-btn {
- color: #E8101E;
+ color: #FF4767;
}
.title {
diff --git a/pages/blogPopup/blogPopup.vue b/pages/blogPopup/blogPopup.vue
index c5ee426..46d706b 100644
--- a/pages/blogPopup/blogPopup.vue
+++ b/pages/blogPopup/blogPopup.vue
@@ -934,7 +934,7 @@
.get-code-btn {
font-weight: 400;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 42rpx;
text-align: center;
font-style: normal;
@@ -959,7 +959,7 @@
.input-error {
display: block;
font-size: 24rpx;
- color: #e8101e;
+ color: #FF4767;
margin-left: 30rpx;
margin-top: -20rpx;
margin-bottom: 20rpx;
diff --git a/pages/complaint/detail.vue b/pages/complaint/detail.vue
index f41697a..2813423 100644
--- a/pages/complaint/detail.vue
+++ b/pages/complaint/detail.vue
@@ -132,7 +132,7 @@ import request from '../../utils/request';
.state {
height: 60rpx;
line-height: 60rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
padding: 0 24rpx;
}
.state-text {
diff --git a/pages/contact/contact.vue b/pages/contact/contact.vue
index 19c433a..51f7179 100644
--- a/pages/contact/contact.vue
+++ b/pages/contact/contact.vue
@@ -132,7 +132,7 @@ export default {
color: #91908F;
}
.btn-box {
- background: linear-gradient( 180deg, #F52540 0%, #E8101E 100%);
+ background: linear-gradient( 180deg, #F52540 0%, #FF4767 100%);
height: 88rpx;
border-radius: 43rpx;
font-weight: 500;
diff --git a/pages/evaluate/components/evaluationDetail.nvue b/pages/evaluate/components/evaluationDetail.nvue
index cf22188..d47e4fb 100644
--- a/pages/evaluate/components/evaluationDetail.nvue
+++ b/pages/evaluate/components/evaluationDetail.nvue
@@ -226,7 +226,7 @@
.score {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
}
diff --git a/pages/evaluate/components/evaluationDetail.vue b/pages/evaluate/components/evaluationDetail.vue
index 7cc6076..e12cd55 100644
--- a/pages/evaluate/components/evaluationDetail.vue
+++ b/pages/evaluate/components/evaluationDetail.vue
@@ -251,7 +251,7 @@
.score {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
diff --git a/pages/evaluate/evaluationDetails.vue b/pages/evaluate/evaluationDetails.vue
index 698b4a7..2ad5aa2 100644
--- a/pages/evaluate/evaluationDetails.vue
+++ b/pages/evaluate/evaluationDetails.vue
@@ -279,7 +279,7 @@
.score {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
diff --git a/pages/evaluate/evaluationList.vue b/pages/evaluate/evaluationList.vue
index c41ac4f..5a92678 100644
--- a/pages/evaluate/evaluationList.vue
+++ b/pages/evaluate/evaluationList.vue
@@ -177,7 +177,7 @@
}
.active {
- color: #E8101E;
+ color: #FF4767;
}
}
diff --git a/pages/home/components/brand-card.vue b/pages/home/components/brand-card.vue
new file mode 100644
index 0000000..0a73cfd
--- /dev/null
+++ b/pages/home/components/brand-card.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+ {{ tag.text }}
+ ›
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/home/components/filters.vue b/pages/home/components/filters.vue
index 0c62060..8bd2c80 100644
--- a/pages/home/components/filters.vue
+++ b/pages/home/components/filters.vue
@@ -156,6 +156,7 @@
weChatRefund: "/sj/workSeatOrder/weChatRefund",
aliRefund: "/sj/workSeatOrder/aliRefund",
startOrder: "/sj/workSeatOrder/start",
+ sureOrder:"/sj/workSeatOrder/sure",
endOrder: "/sj/workSeatOrder/end",
ordernum: "/sj/workSeatOrder/orderNum",
list: "/sj/workSeatOrder/list",
@@ -209,7 +210,7 @@
secondTabs() {
if (this.activeFirstId == 1 || this.activeFirstId == 2) {
return [{
- title: `待服务(${this.numInfo.noservernum})`,
+ title: `待开始(${this.numInfo.noservernum})`,
id: 3
},
{
@@ -405,6 +406,7 @@
return;
}
this.clickType = true;
+ console.log(111,this.activeFirstId,this.urls)
request
.post(this.urls[this.activeFirstId].sureOrder, {
id: order.id,
@@ -414,7 +416,7 @@
.then((res) => {
if (res.state != 1 || res.code != 200) {
uni.showToast({
- title: res.msg,
+ title: "开始服务",
icon: "none",
});
} else {
@@ -459,7 +461,7 @@
console.log(res);
if (res.state == 1 || res.code == 200) {
uni.showToast({
- title: res.msg,
+ title: "开始服务",
icon: "none",
});
this.searchList();
@@ -513,27 +515,27 @@
if (this.idType == 1) {
if (this.activeFirstId == 1) {
uni.navigateTo({
- url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}`,
+ url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}&haveButton=${this.haveButton}`,
});
}
if (this.activeFirstId == 2) {
uni.navigateTo({
- url: `/pages/shop/userorder-detail?order_id=${order.id}&serviceType=2`,
+ url: `/pages/shop/userorder-detail?order_id=${order.id}&serviceType=2&haveButton=${this.haveButton}`,
});
}
if (this.activeFirstId == 3) {
uni.navigateTo({
- url: `/pages/shop/SellerDetail?order_id=${order.id}`,
+ url: `/pages/shop/SellerDetail?order_id=${order.id}&haveButton=${this.haveButton}`,
});
}
if (this.activeFirstId == 4) {
uni.navigateTo({
- url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}`,
+ url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}&haveButton=${this.haveButton}`,
});
}
if (this.activeFirstId == 5) {
uni.navigateTo({
- url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}&serviceType=2`,
+ url: `/pages/shop/userorder-detail?order_id=${order.id}&order_kind=${order.order_kind}&serviceType=2&haveButton=${this.haveButton}`,
});
}
}
@@ -576,7 +578,7 @@
// 选中状态样式
&.active {
- color: #e8101e; // 选中文字颜色
+ color: #FF4767; // 选中文字颜色
font-weight: 600; // 选中时加粗(可选,根据图片效果)
// 横条效果:通过伪元素实现
@@ -590,8 +592,8 @@
bottom: -6rpx; // 距离文字底部的距离(可调整)
height: 6rpx; // 横条高度
background: linear-gradient(306deg,
- #e8101e 0%,
- #e8101e 100%); // 横条颜色(与文字颜色一致)
+ #FF4767 0%,
+ #FF4767 100%); // 横条颜色(与文字颜色一致)
border-radius: 3rpx; // 横条圆角(可选,更柔和)
}
}
@@ -626,7 +628,7 @@
// 选中状态样式
&.active {
- color: #e8101e; // 选中颜色
+ color: #FF4767; // 选中颜色
background: rgba(252, 67, 124, 0.1); // 可选:选中时背景色变化
font-weight: 600; // 可选:选中时加粗
}
diff --git a/pages/home/components/notice-card.vue b/pages/home/components/notice-card.vue
new file mode 100644
index 0000000..bfcbdf0
--- /dev/null
+++ b/pages/home/components/notice-card.vue
@@ -0,0 +1,101 @@
+
+
+
+ {{ item.title }}
+
+ 发布时间:{{ formattedTime }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/home/components/orderCard2.vue b/pages/home/components/orderCard2.vue
index eb096fa..6049cee 100644
--- a/pages/home/components/orderCard2.vue
+++ b/pages/home/components/orderCard2.vue
@@ -171,6 +171,7 @@
},
emitStart() {
this.$emit("start");
+
},
emitDone() {
this.$emit("done");
@@ -181,8 +182,8 @@
diff --git a/pages/home/components/workOrderCard.vue b/pages/home/components/workOrderCard.vue
index 14bdcdf..b4e560d 100644
--- a/pages/home/components/workOrderCard.vue
+++ b/pages/home/components/workOrderCard.vue
@@ -6,7 +6,7 @@
+ }" v-if="showState">
{{ stateText }}
@@ -18,8 +18,8 @@
{{
- dataItem.title
- }}
+ dataItem.title
+ }}
下单时间:{{ dataItem.add_time }}
@@ -45,299 +45,260 @@
\ No newline at end of file
diff --git a/pages/home/growth-package-result.vue b/pages/home/growth-package-result.vue
new file mode 100644
index 0000000..8dc9008
--- /dev/null
+++ b/pages/home/growth-package-result.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ resultInfo.title }}
+ {{ resultInfo.desc }}
+ {{ isFail ? "重新支付" : "返回首页" }}
+
+
+
+
+
+
+
diff --git a/pages/home/growth-package.vue b/pages/home/growth-package.vue
new file mode 100644
index 0000000..723f526
--- /dev/null
+++ b/pages/home/growth-package.vue
@@ -0,0 +1,348 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 65b041a..81d957a 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -1,430 +1,1659 @@
-
-
-
-
-
-
-
- {{ nameText }}
- 营业设置
-
-
- {{ nameText }}
- 营业设置
-
- {{ nameText }}
- {{ tipText }}
-
-
-
-
-
-
- (secondLength = e)"
- >
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发布服务请完善以下资料:
+
+
+
+
+
+
+
+ 营业时间未配置
+ 请完善店铺的营业时间
+
+
+ 去配置
+
+
+
+
+
+
+
+ 服务技能未配置
+ 请完善服务技能
+
+
+ 去配置
+
+
+
+
+
+
+
+
+ {{ isUnderReview ?
+ '资质认证中' : '资质未认证' }}
+ 请完成资质认证
+
+
+
+
+ {{ isUnderReview ? '查看进度' : '去认证' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+ {{ orderBasic.waitStart }}
+ 待开始
+
+
+ {{ orderBasic.waitFinish }}
+ 待完成
+
+
+ {{ orderBasic.finished }}
+ 已取消
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ displayScore.toFixed(1) }}
+
+
+
+
+
+ 访问人数
+ {{ orderDetail.visitors }} 人
+ 昨日{{ orderDetail.yVisitors }}人
+
+
+ 下单量
+ {{ orderDetail.orders }} 单
+ 昨日{{ orderDetail.yOrders }}单
+
+
+ 成交金额
+
+ {{ formattedAmount.val }}
+ {{ formattedAmount.unit }}
+
+ 昨日{{ formattedYAmount.val }}{{ formattedYAmount.unit }}
+
+
+
+
+
+
+
+
+
+
+ {{ msg.title }}
+
+
+ 点击查看
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/jingxuan/brand-detail.vue b/pages/jingxuan/brand-detail.vue
new file mode 100644
index 0000000..826ee7a
--- /dev/null
+++ b/pages/jingxuan/brand-detail.vue
@@ -0,0 +1,1369 @@
+
+
+
+
+
+
+ ★
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentBannerIndex + 1 }} / {{ bannerList.length }}
+
+
+
+
+
+
+
+
+
+ 品牌介绍
+
+
+
+
+ {{ isExpanded ? '收起查看' : '展开查看' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ activeTabKey === 'student' ? '立即咨询' : '在线留言' }}
+
+
+
+ *姓名
+
+
+
+
+ *手机号码
+
+
+
+
+ *所在城市
+
+
+
+ {{ cityNameText || '请选择省、市/区' }}
+
+
+
+
+
+
+ *意向
+
+
+ {{ intentionText || '请选择您的意向' }}
+
+
+
+
+
+
+ *其他意向
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tipsText }}
+
+
+
+
+
+
+
+
diff --git a/pages/jingxuan/selected-brands.vue b/pages/jingxuan/selected-brands.vue
new file mode 100644
index 0000000..5065c9a
--- /dev/null
+++ b/pages/jingxuan/selected-brands.vue
@@ -0,0 +1,544 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+ 发布时间
+
+
+
+
+
+
+
+ 浏览量
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/jingxuan/selected-skills.vue b/pages/jingxuan/selected-skills.vue
new file mode 100644
index 0000000..f01ed2a
--- /dev/null
+++ b/pages/jingxuan/selected-skills.vue
@@ -0,0 +1,579 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/jingxuan/skill-detail.vue b/pages/jingxuan/skill-detail.vue
new file mode 100644
index 0000000..3b810f2
--- /dev/null
+++ b/pages/jingxuan/skill-detail.vue
@@ -0,0 +1,768 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ article.title }}
+
+
+
+ {{ article.authorName }}
+ {{ article.date }}
+
+
+
+
+ {{ isFavorite ? '已收藏' : '收藏' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tipsText }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
index f036a6b..3367646 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -405,7 +405,7 @@
.login {
width: 630rpx;
height: 96rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
color: #fff;
font-size: 40rpx;
line-height: 96rpx;
diff --git a/pages/message/active_setting.vue b/pages/message/active_setting.vue
index 27cb9df..3a44ad2 100644
--- a/pages/message/active_setting.vue
+++ b/pages/message/active_setting.vue
@@ -18,7 +18,7 @@
-
+
@@ -34,7 +34,7 @@
{{ item.text }}
-
+
@@ -267,7 +267,7 @@
}
.color-red {
- color: #E8101E !important;
+ color: #FF4767 !important;
}
/* 弹窗样式 */
@@ -324,7 +324,7 @@
.dialog-btn {
width: 476rpx;
height: 86rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 44rpx;
display: flex;
align-items: center;
diff --git a/pages/message/message.vue b/pages/message/message.vue
index 2e1dd3c..8f68ef9 100644
--- a/pages/message/message.vue
+++ b/pages/message/message.vue
@@ -332,7 +332,7 @@
width: 16rpx;
height: 16rpx;
border-radius: 50%;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-left: 8rpx;
}
diff --git a/pages/message/message_setting.vue b/pages/message/message_setting.vue
index 60f9d48..22d0fee 100644
--- a/pages/message/message_setting.vue
+++ b/pages/message/message_setting.vue
@@ -18,7 +18,7 @@
-
@@ -35,7 +35,7 @@
{{ item.text }}
-
@@ -289,7 +289,7 @@
}
.color-red {
- color: #E8101E !important;
+ color: #FF4767 !important;
}
/* 弹窗样式 */
@@ -346,7 +346,7 @@
.dialog-btn {
width: 476rpx;
height: 86rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 44rpx;
display: flex;
align-items: center;
@@ -437,7 +437,7 @@
width: 300rpx;
height: 80rpx;
line-height: 80rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 40rpx;
margin: 0 auto;
}
diff --git a/pages/message/settings.vue b/pages/message/settings.vue
index a4b1e58..d2de657 100644
--- a/pages/message/settings.vue
+++ b/pages/message/settings.vue
@@ -29,7 +29,7 @@
开启语音提示避免落单
-
+
@@ -292,7 +292,7 @@
}
.color-red {
- color: #E8101E !important;
+ color: #FF4767 !important;
}
// 弹窗遮罩
@@ -348,7 +348,7 @@
.dialog-btn {
width: 400rpx;
height: 88rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 44rpx;
display: flex;
align-items: center;
diff --git a/pages/my/my.vue b/pages/my/my.vue
index ba8c00a..dd29df4 100644
--- a/pages/my/my.vue
+++ b/pages/my/my.vue
@@ -1,1451 +1,1895 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- userInfo.name || userInfo.nick_name || ""
- }}
-
-
-
- 资料编辑
-
-
- 美融融小程序欢迎您
-
-
-
-
-
-
- 钱包余额:{{ userInfo.money }}元
-
-
-
-
-
-
-
- 申请成为平台商家
-
-
-
-
-
- 您有{{ inviteList.length }}条商家邀请
-
-
-
-
-
-
-
-
-
-
- 请点击登录
- 美融融商家欢迎您
-
-
-
-
-
-
-
-
- {{ card.title }}
-
-
-
-
-
- {{ item.text }}
-
-
-
-
- {{ card.title }}
-
-
-
-
-
-
-
-
- {{ card.title }}
-
-
-
- {{ card.title }}
-
-
- 入驻成功啦!
- 下一步:等待专属门店商家邀约绑定,解锁订单资源与服
- 务通道,开启高效变现、共创共赢的新旅程~
-
-
-
-
-
-
- {{ tipsText }}
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ userInfo.name || userInfo.nick_name || ""
+ }}
+
+
+
+
+ {{ (userInfo.credentials_state === 2 || (userInfo.id_type > 0 &&
+ userInfo.credentials_state === 0)) ? '认证通过' : userInfo.credentials_state === 1 ?
+ '资质审核中' : '资质待认证' }}
+
+
+
+
+
+
+
+
+
+ 钱包余额:{{ userInfo.money }}元
+
+
+
+
+
+
+
+ 申请成为平台商家
+
+
+
+
+
+ 您有{{ inviteList.length }}条商家邀请
+
+
+
+
+
+
+
+
+
+
+ 请点击登录
+ 美融融商家欢迎您
+
+
+
+
+
+
+
+
+ {{ card.title }}
+
+
+
+
+
+ {{ item.text }}
+
+
+
+
+ {{ card.title }}
+
+
+
+
+
+
+
+
+ {{ card.title }}
+
+
+
+ {{ card.title }}
+
+
+ {{ item.title }}
+ {{ item.text }}
+
+
+
+ {{ card.title }}
+
+
+ 入驻成功啦!
+ 下一步:等待专属门店商家邀约绑定,解锁订单资源与服
+ 务通道,开启高效变现、共创共赢的新旅程~
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发布服务请完善以下资料:
+
+
+
+
+
+
+
+ 营业时间未配置
+ 请完善店铺的营业时间
+
+
+ 去配置
+
+
+
+
+
+
+
+
+
+ 服务技能未配置
+ 请完善服务技能
+
+
+ 去配置
+
+
+
+
+
+
+
+
+
+ {{ isUnderReview ?
+ '资质认证中' : '资质未认证' }}
+ 请完成资质认证
+
+
+
+ {{ isUnderReview ? '查看进度' : '去认证' }}
+
+
+
+
+
+
+
+
+
+
+ {{ tipsText }}
+
+
+
+
+
+
+
+
diff --git a/pages/my/myFavorite.vue b/pages/my/myFavorite.vue
new file mode 100644
index 0000000..011c506
--- /dev/null
+++ b/pages/my/myFavorite.vue
@@ -0,0 +1,670 @@
+
+
+
+
+
+
+
+
+
+
+ 收藏的品牌
+
+
+ 收藏的课程
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ group.title }}
+
+
+ {{ sub.title }}
+
+
+
+
+
+
+
+ 平台课程
+
+
+ 品牌课程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/my/profile.vue b/pages/my/profile.vue
index d2b5fad..9bc603f 100644
--- a/pages/my/profile.vue
+++ b/pages/my/profile.vue
@@ -400,7 +400,7 @@ export default {
left: 60rpx;
width: 630rpx;
height: 96rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 58rpx;
display: flex;
align-items: center;
@@ -499,7 +499,7 @@ export default {
}
.region-tab.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -511,7 +511,7 @@ export default {
transform: translateX(-50%);
width: 40rpx;
height: 4rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 2rpx;
}
@@ -552,7 +552,7 @@ export default {
}
.popup-btn.confirm {
- background: linear-gradient(90deg, #E8101E 0%, #FF618F 100%);
+ background: linear-gradient(90deg, #FF4767 0%, #FF618F 100%);
}
.popup-btn .btn-text {
diff --git a/pages/notice/detail.vue b/pages/notice/detail.vue
new file mode 100644
index 0000000..ab31e7f
--- /dev/null
+++ b/pages/notice/detail.vue
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+
+
+
+ {{ detailData.title }}
+
+
+
+ 时间:{{ formatTime(detailData.create_time) }}
+ {{ detailData.browse_num }}
+
+
+
+
+
+
+
+
+
+
+
+ 公告不存在或已删除
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/notice/notice_list.vue b/pages/notice/notice_list.vue
new file mode 100644
index 0000000..bc6c0b9
--- /dev/null
+++ b/pages/notice/notice_list.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+
+
+
+
+
+
+ 加载更多...
+
+
+ 没有更多了
+
+
+
+
+
+ 暂无公告通知
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/order/all-orders.vue b/pages/order/all-orders.vue
index 84d416c..0d6d70b 100644
--- a/pages/order/all-orders.vue
+++ b/pages/order/all-orders.vue
@@ -275,18 +275,18 @@ export default {
.rating-score {
font-size: 16rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 68rpx;
}
.currency {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.amount {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -328,7 +328,7 @@ export default {
}
.load-date {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.load-text {
diff --git a/pages/order/artisanorder-detail.vue b/pages/order/artisanorder-detail.vue
index 258b92c..e5377c4 100644
--- a/pages/order/artisanorder-detail.vue
+++ b/pages/order/artisanorder-detail.vue
@@ -716,7 +716,7 @@ page {
.real-price {
font-size: 32rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
/* 订单信息卡片 */
.order-card {
@@ -788,13 +788,13 @@ page {
margin-left: 20rpx;
}
.btn-border {
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background-color: #fff;
box-sizing: border-box;
margin-left: 20rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
font-size: 28rpx;
@@ -804,7 +804,7 @@ page {
.btn-border .button-text {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
/* APP适配 */
/* #ifdef APP-PLUS */
diff --git a/pages/order/pay.vue b/pages/order/pay.vue
index 8edf58c..3f58277 100644
--- a/pages/order/pay.vue
+++ b/pages/order/pay.vue
@@ -24,7 +24,7 @@
{{ item.name }}
-
+
@@ -494,7 +494,7 @@
::v-deep .uv-count-down__text {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;;
+ color: #FF4767;;
line-height: 37rpx;
text-align: center;
font-style: normal;
@@ -559,13 +559,13 @@
.total-amount .symbol {
font-size: 24rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.total-amount .amount {
font-size: 28rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.amount-lable {
@@ -576,7 +576,7 @@
.pay-btn {
width: 680rpx;
height: 88rpx;
- background: linear-gradient( 180deg, #F52540 0%, #E8101E 100%);
+ background: linear-gradient( 180deg, #F52540 0%, #FF4767 100%);
border-radius: 43rpx;
font-weight: 500;
font-size: 30rpx;
diff --git a/pages/order/submit.vue b/pages/order/submit.vue
index 747777c..36d5abd 100644
--- a/pages/order/submit.vue
+++ b/pages/order/submit.vue
@@ -623,7 +623,7 @@ export default {
height: 28rpx;
border: 3rpx;
margin-right: 16rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
}
.service-item {
@@ -766,7 +766,7 @@ export default {
.price-total .price {
font-size: 28rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.amount-lable {
@@ -777,7 +777,7 @@ export default {
.submit-btn {
width: 492rpx;
height: 64rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 32rpx;
color: #ffffff;
font-size: 28rpx;
@@ -984,8 +984,8 @@ export default {
.isActive {
background: rgba(252, 67, 124, 0.08);
border-radius: 10rpx;
- border: 1rpx solid #E8101E;
- color: #E8101E;
+ border: 1rpx solid #FF4767;
+ color: #FF4767;
/* 选中状态 */
}
@@ -1010,7 +1010,7 @@ export default {
&__box {
width: 648rpx;
height: 94rpx;
- background: linear-gradient(140deg, #fa4e9a 0%, #E8101E 100%);
+ background: linear-gradient(140deg, #fa4e9a 0%, #FF4767 100%);
border-radius: 48rpx;
display: flex;
align-items: center;
diff --git a/pages/order/userorder-detail.vue b/pages/order/userorder-detail.vue
index c0b9355..b046130 100644
--- a/pages/order/userorder-detail.vue
+++ b/pages/order/userorder-detail.vue
@@ -18,7 +18,7 @@
参团成功,需邀请{{orderInfo.team_buy.person_num - orderInfo.team_buy.pay_person_num}}人才可完成拼团
+ style="color: #FF4767">{{orderInfo.team_buy.person_num - orderInfo.team_buy.pay_person_num}}人才可完成拼团
参团成功,已拼团成功!
@@ -266,16 +266,16 @@
formatPriceNumber(this.orderInfo.cost_money-this.orderInfo.order_money),
18,
2
- )}rpx;color: #E8101E;line-height: 25rpx;text-align: left;font-style: normal;`" />
+ )}rpx;color: #FF4767;line-height: 25rpx;text-align: left;font-style: normal;`" />
+ css="font-weight: 500;font-size: 26rpx;color: #FF4767;line-height: 48rpx;text-align: left;font-style: normal;" />
+ )}rpx;color: #FF4767;line-height: 34rpx;text-align: left;font-style: normal;`" />
-
-
-
-
-
-
- {{tab.title}}
-
-
-
-
-
-
- {{tab.title}}
-
-
-
+
+
+
+
+
+ {{ item.title }}
+
+
+
-
-
-
-
-
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
- {{order.server_title}}
-
+
+
+
+
-
-
-
- 下单时间:{{order.reservation_time }}
-
-
-
- 下单时间:{{order.add_time}}
-
-
-
- 到家地址:{{Object.assign({},order.reservation_address_arr).server_address}}
-
-
-
- 下单时间:{{ order.add_time }}
-
-
- 团购价:{{ order.order_money }}
-
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
- 取消订单
- 申请退款
- 联系客服
- 立即支付
-
- 再来一单
- 投诉
- 查看投诉
- 立即评价
- 已评价
-
-
-
-
-
- 加载中...
- 暂无数据哦~
-
-
-
-
-
-
-
- 美融融plus 对拨打电话权限申请说明
- 当您需要联系商家或平台客服的时候,需要获取拨打电话权限。
-
-
-
-
-
-
- 前去登录
-
-
-
-
-
-
+
+
-
\ No newline at end of file
+.status-gap {
+ background-color: #FAFAFA;
+ height: 20rpx;
+}
+
diff --git a/pages/promotion/components/serveList.vue b/pages/promotion/components/serveList.vue
index 4944d73..1febc7b 100644
--- a/pages/promotion/components/serveList.vue
+++ b/pages/promotion/components/serveList.vue
@@ -15,7 +15,7 @@
{{item.title}}
¥{{item.server_price}} {{' '}}|
+ style="color: #FF4767;font-weight: 500;">¥{{item.server_price}} {{' '}}|
{{item.server_time}}分钟
diff --git a/pages/promotion/effect.vue b/pages/promotion/effect.vue
index b79bf9a..4106206 100644
--- a/pages/promotion/effect.vue
+++ b/pages/promotion/effect.vue
@@ -25,7 +25,7 @@
{{ item.server_title }}
下单时间:{{ item.pay_time }}
- 订单状态:{{ getDescriptionByNumber(item.state) }}
+ 订单状态:{{ getDescriptionByNumber(item.state) }}
diff --git a/pages/promotion/promotion.vue b/pages/promotion/promotion.vue
index 6337d93..6b7dc5d 100644
--- a/pages/promotion/promotion.vue
+++ b/pages/promotion/promotion.vue
@@ -1,7 +1,7 @@
@@ -224,7 +224,7 @@
\ No newline at end of file
diff --git a/pages/ruzhu/qualification_sj.vue b/pages/ruzhu/qualification_sj.vue
index 921f2f0..b00858f 100644
--- a/pages/ruzhu/qualification_sj.vue
+++ b/pages/ruzhu/qualification_sj.vue
@@ -1,1963 +1,1751 @@
-
-
-
-
-
-
- 营业执照
-
-
-
-
- 资质照片
- 请保证图片上的文字清晰、无遮挡、证件边角可见
-
-
-
-
-
-
-
-
-
- 请上传营业执照原件
-
-
-
-
-
-
- 商户类型
-
-
-
-
-
-
-
- 证件号码
-
-
-
-
-
-
-
- 企业名称
-
-
-
-
-
-
-
-
-
-
- 法人信息
-
-
-
-
-
-
- 身份证照片
- 请保证图片上的文字清晰、无遮挡、证件边角可见
-
-
-
-
-
-
-
-
-
-
-
-
- 请上传身份证正面(人像面)
-
-
-
-
-
-
-
-
-
-
-
-
- 请上传身份证反面(国徽面)
-
-
-
-
-
-
-
-
- 法人代表
-
-
-
-
-
-
- 法人联系方式
-
-
-
-
- 法人身份证号
-
-
-
-
-
- 身份证有效期至
-
-
-
-
-
- 长久有效
-
-
-
-
-
- 指定日期有效
-
-
-
-
-
-
-
-
- 开始日期
-
-
- {{formatDateForDisplay(formData.idcard_start_date) || '请选择日期'}}
-
-
-
-
-
-
- 结束日期
-
-
- {{formatDateForDisplay(formData.idcard_end_date) || '请选择日期'}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/ruzhu/ruzhu.vue b/pages/ruzhu/ruzhu.vue
index 39f2433..f8ef887 100644
--- a/pages/ruzhu/ruzhu.vue
+++ b/pages/ruzhu/ruzhu.vue
@@ -1,960 +1,868 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 我已阅读并同意以上协议
-
-
- 下一步,填写资质信息
-
-
-
-
-
-
-
- 上一步
-
-
- 下一步,填写门店信息
-
-
-
-
-
-
-
-
- 上一步
-
-
- 提交申请
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/ruzhu/sj-info.vue b/pages/ruzhu/sj-info.vue
index 39037df..0c4a4c6 100644
--- a/pages/ruzhu/sj-info.vue
+++ b/pages/ruzhu/sj-info.vue
@@ -1,2076 +1,1650 @@
-
-
-
-
-
- 门店信息
-
-
-
-
-
- 店铺logo
-
-
-
-
-
-
-
-
-
-
-
-
-
- 店铺名称
-
-
-
-
-
-
-
- 营业时间
-
-
- {{formData.business_time || '请输入营业时间'}}
-
-
-
-
-
-
-
- 服务技能(多选)
-
-
- {{selectedServicesText || '请选择'}}
-
-
-
-
-
-
-
- 门店所在地:
-
-
- {{formData.dependency || '请选择'}}
-
-
-
-
-
-
-
- 门店详细地址:
-
-
- {{formData.address || '请选择'}}
-
-
-
-
-
-
-
-
- 其他信息
-
-
-
-
-
-
-
-
-
- 邀请码
-
-
-
-
-
-
-
-
-
-
-
- 请填写邀请人的邀请码,若没有邀请人请填写13131313
-
-
-
-
- 验证中...
-
-
-
-
- 邀请码无效
-
-
-
-
- 请填写邀请人的邀请码,若没有邀请人请填写13131313
-
-
-
-
- 邀请人:
- {{ inviterInfo.name || inviterInfo.nick_name }}
- /
- {{ inviterInfo.account }}
-
-
-
-
- 邀请码无效
-
-
-
-
-
-
- 专业经验:
-
-
- {{experienceText || '请选择'}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+ 营业执照
+
+
+
+ 资质照片
+ 请保证照片上的文字清晰、无遮挡、证件边角可见
+
+
+
+
+
+
+ 请上传营业执照原件
+
+
+
+ 商户类型
+
+
+
+
+
+ 证件号码
+
+
+
+
+
+
+
+ 企业名称
+
+
+
+
+
+
+ 注册地区
+
+
+ {{ formData.uscc_dependency || '请选择' }}
+
+
+
+
+
+
+ 注册详细地址
+
+
+ {{ formData.uscc_address || '请选择' }}
+
+
+
+
+
+
+
+
+
+ 法人信息
+
+
+
+ 身份证照片
+ 请保证照片上的文字清晰、无遮挡、证件边角可见
+
+
+
+
+
+
+ 请上传身份证正面(人像面)
+
+
+
+
+
+
+
+ 请上传身份证反面(国徽面)
+
+
+
+
+
+ 法人代表
+
+
+
+
+
+
+ 法人联系方式
+
+
+
+
+ 法人身份证号
+
+
+
+
+ 身份证有效期:
+
+
+
+
+
+ 永久有效
+
+
+
+
+
+ 指定日期有效
+
+
+
+
+
+ 开始日期
+
+
+ {{ formData.legal_idcard_expiry_start || '选择日期' }}
+
+
+
+
+
+ 结束日期
+
+
+ {{ formData.legal_idcard_expiry_end || '选择日期' }}
+
+
+
+
+
+
+
+
+
+
+
+ 其他信息
+
+
+
+ 行业资质
+
+
+
+ ×
+
+
+
+ 添加照片
+
+
+ 其他资质
+
+
+
+ ×
+
+
+
+ 添加照片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/ruzhu/stopuse.vue b/pages/ruzhu/stopuse.vue
index 35d8ad8..1de2e1b 100644
--- a/pages/ruzhu/stopuse.vue
+++ b/pages/ruzhu/stopuse.vue
@@ -73,7 +73,7 @@
}
.btn-wallet {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
margin-top: 40rpx;
}
.btn-contact {
diff --git a/pages/ruzhu/submitres.vue b/pages/ruzhu/submitres.vue
index 3e1ec69..c43127c 100644
--- a/pages/ruzhu/submitres.vue
+++ b/pages/ruzhu/submitres.vue
@@ -135,31 +135,30 @@ export default {
return;
}
- // 重新确定 type 值
- let type;
- if (this.identity == 1) {
- type = 2; // 手艺人
- } else if (this.identity == 2) {
- type = 3; // 商家
- } else {
- console.error('未知的用户类型identity:', this.identity);
- this.backMag = '用户类型错误,请联系客服';
- return;
- }
-
- console.log('请求参数 type:', type);
-
- request.post('/user/getuser', {type}).then(result => {
- console.log('接口返回数据:', result);
- if (result.data && result.data.back_text) {
- this.backMag = result.data.back_text;
- console.log('设置backMag为:', this.backMag);
+ request.post('/sj/userSjAuth/details', {
+ type: this.identity // 1=手艺人,2=商家
+ }).then(result => {
+ console.log('申请详情接口返回数据:', result);
+ if (result.code === 200) {
+ if (result.data) {
+ if (result.data.back_text) {
+ this.backMag = result.data.back_text;
+ console.log('设置backMag为:', this.backMag);
+ } else {
+ this.backMag = '未知原因,请联系客服';
+ console.log('接口返回无back_text字段');
+ }
+ } else {
+ // 接口返回成功但数据为空,可能没有申请记录
+ console.log('接口返回成功但data为空');
+ this.backMag = '暂无驳回原因信息';
+ }
} else {
- this.backMag = '未知原因,请联系客服';
- console.log('接口返回无back_text字段');
+ this.backMag = '获取驳回原因失败,请联系客服';
+ console.log('接口返回错误:', result?.msg || '未知错误');
}
}).catch(err => {
- console.error('获取用户信息失败:', err);
+ console.error('获取申请详情失败:', err);
this.backMag = '获取驳回原因失败,请联系客服';
}).finally(() => {
console.log('getUserInfo执行完成');
@@ -248,7 +247,7 @@ export default {
.btn-back {
width: 630rpx;
height: 96rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 48rpx;
display: flex;
align-items: center;
@@ -268,11 +267,11 @@ export default {
display: flex;
align-items: center;
justify-content: center;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
margin-top: 32rpx;
}
.fail-back-btn .btn-text {
- color: #E8101E;
+ color: #FF4767;
}
.submitres-page /deep/ .back-btn {
diff --git a/pages/ruzhu/successruzhu.vue b/pages/ruzhu/successruzhu.vue
new file mode 100644
index 0000000..901b8f6
--- /dev/null
+++ b/pages/ruzhu/successruzhu.vue
@@ -0,0 +1,131 @@
+
+
+
+ {{ infoData.title }}
+ {{ infoData.notice }}
+
+
+
+
+ 扫码联系专属客服
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/search/components/confirm-modal.vue b/pages/search/components/confirm-modal.vue
index 05347c5..a370d78 100644
--- a/pages/search/components/confirm-modal.vue
+++ b/pages/search/components/confirm-modal.vue
@@ -116,6 +116,6 @@ export default {
}
.delete {
- color: #e8101e;
+ color: #FF4767;
}
diff --git a/pages/search/components/filter.vue b/pages/search/components/filter.vue
index ae2ef4b..6e5c5fb 100644
--- a/pages/search/components/filter.vue
+++ b/pages/search/components/filter.vue
@@ -279,10 +279,10 @@
getIconColor(index) {
if (this.activeIndex === index) {
- return '#E8101E';
+ return '#FF4767';
}
if (this.hasValue(this.filterTabs[index].key)) {
- return '#E8101E';
+ return '#FF4767';
}
return '#666';
},
@@ -527,7 +527,7 @@
}
&.active {
- color: #E8101E;
+ color: #FF4767;
}
.check-icon {
@@ -567,7 +567,7 @@
}
&.active {
background: #FFECF0;
- color: #E8101E;
+ color: #FF4767;
}
}
@@ -620,7 +620,7 @@
height: 100%;
.custom-price-container.active & {
- color: #E8101E;
+ color: #FF4767;
}
}
diff --git a/pages/search/components/search-box.vue b/pages/search/components/search-box.vue
index 7753540..e47bb5d 100644
--- a/pages/search/components/search-box.vue
+++ b/pages/search/components/search-box.vue
@@ -192,7 +192,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
background-size: cover;
color: #fff;
font-size: 26rpx;
diff --git a/pages/search/components/search_box_result.vue b/pages/search/components/search_box_result.vue
index 0f84257..368d17a 100644
--- a/pages/search/components/search_box_result.vue
+++ b/pages/search/components/search_box_result.vue
@@ -52,7 +52,7 @@ export default {
},
bgClor: {
type: String,
- default: "linear-gradient(134deg, #f52540 0%, #e8101e 100%)",
+ default: "linear-gradient(134deg, #f52540 0%, #FF4767 100%)",
},
},
data() {
@@ -126,7 +126,7 @@ export default {
justify-content: center;
align-items: center;
position: relative;
- background: linear-gradient(134deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(134deg, #f52540 0%, #FF4767 100%);
transform: translateY(0rpx);
}
@@ -197,7 +197,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
background-size: cover;
color: #fff;
font-size: 26rpx;
diff --git a/pages/search/components/serviceCardList.vue b/pages/search/components/serviceCardList.vue
index 3f37322..186a368 100644
--- a/pages/search/components/serviceCardList.vue
+++ b/pages/search/components/serviceCardList.vue
@@ -309,7 +309,7 @@
padding: 0 8rpx;
height: 38rpx;
line-height: 38rpx;
- background: linear-gradient(124deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(124deg, #f52540 0%, #FF4767 100%);
border-radius: 12rpx 2rpx 12rpx 2rpx;
font-size: 22rpx;
color: #ffffff;
@@ -405,7 +405,7 @@
.price {
font-weight: 700;
font-size: 26rpx;
- color: #e8101e;
+ color: #FF4767;
font-family: DINPro, DINPro;
}
@@ -454,7 +454,7 @@
line-height: 60rpx;
height: 60rpx;
padding: 0rpx 20rpx;
- background: linear-gradient(107deg, #f84c63 0%, #e8101e 100%);
+ background: linear-gradient(107deg, #f84c63 0%, #FF4767 100%);
border-radius: 30rpx;
text-align: center;
color: #fff;
diff --git a/pages/search/components/shopCard.vue b/pages/search/components/shopCard.vue
index cfea6ba..eea4a8c 100644
--- a/pages/search/components/shopCard.vue
+++ b/pages/search/components/shopCard.vue
@@ -131,7 +131,7 @@
&__tip {
padding: 0 8rpx;
- background: linear-gradient(160deg, #fc5e72 0%, #e8101e 100%);
+ background: linear-gradient(160deg, #fc5e72 0%, #FF4767 100%);
border-radius: 6rpx;
font-weight: 500;
font-size: 20rpx;
@@ -147,7 +147,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 26rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
diff --git a/pages/search/components/syrCardList.vue b/pages/search/components/syrCardList.vue
index da60a08..dc88cad 100644
--- a/pages/search/components/syrCardList.vue
+++ b/pages/search/components/syrCardList.vue
@@ -229,7 +229,7 @@ export default {
background: #fdf3f5;
border-radius: 20rpx;
font-size: 22rpx;
- color: #e8101e;
+ color: #FF4767;
padding: 2rpx 12rpx;
}
@@ -246,7 +246,7 @@ export default {
padding: 0rpx 30rpx;
height: 60rpx;
line-height: 60rpx;
- background: linear-gradient(107deg, #f84c63 0%, #e8101e 100%);
+ background: linear-gradient(107deg, #f84c63 0%, #FF4767 100%);
border-radius: 30rpx;
text-align: center;
color: #fff;
diff --git a/pages/search/search-result.vue b/pages/search/search-result.vue
index 3b1b2e1..608d86a 100644
--- a/pages/search/search-result.vue
+++ b/pages/search/search-result.vue
@@ -2,7 +2,7 @@
@@ -859,7 +859,7 @@
.tabItem_active {
font-weight: 500;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 42rpx;
text-align: left;
font-style: normal;
@@ -875,7 +875,7 @@
transform: translateX(-50%);
width: 34rpx;
height: 6rpx;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
border-radius: 2rpx;
}
}
@@ -902,7 +902,7 @@
width: 60rpx;
height: 60rpx;
border: 4rpx solid #f3f3f3;
- border-top: 4rpx solid #E8101E;
+ border-top: 4rpx solid #FF4767;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 24rpx;
diff --git a/pages/search_common/search.vue b/pages/search_common/search.vue
new file mode 100644
index 0000000..d4e3393
--- /dev/null
+++ b/pages/search_common/search.vue
@@ -0,0 +1,454 @@
+
+
+
+
+
+
+
+
+
+
+ 发布时间
+
+
+
+
+
+
+
+ 浏览量
+
+
+
+
+
+
+
+ 加载中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 未搜索到相关内容哦~
+
+
+
+ 正在加载更多...
+ 没有更多了
+
+
+
+
+
+
+
+
+
diff --git a/pages/selfOperated/addWe.vue b/pages/selfOperated/addWe.vue
index e8afceb..16049e6 100644
--- a/pages/selfOperated/addWe.vue
+++ b/pages/selfOperated/addWe.vue
@@ -337,7 +337,7 @@
.agreement-btn {
width: 690rpx;
height: 78rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 798rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/pages/selfOperated/agreement.vue b/pages/selfOperated/agreement.vue
index 2696aca..9bf64d8 100644
--- a/pages/selfOperated/agreement.vue
+++ b/pages/selfOperated/agreement.vue
@@ -180,7 +180,7 @@
.agreement-btn {
width: 690rpx;
height: 78rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 798rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/pages/selfOperated/components/select-adress.vue b/pages/selfOperated/components/select-adress.vue
index 5f52d8a..d783e54 100644
--- a/pages/selfOperated/components/select-adress.vue
+++ b/pages/selfOperated/components/select-adress.vue
@@ -372,7 +372,7 @@
padding-right: 20rpx;
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
diff --git a/pages/selfOperated/components/self-card-list.vue b/pages/selfOperated/components/self-card-list.vue
index a68c39e..8b460d1 100644
--- a/pages/selfOperated/components/self-card-list.vue
+++ b/pages/selfOperated/components/self-card-list.vue
@@ -68,7 +68,7 @@ export default {
width: 80rpx;
height: 49rpx;
z-index: 1;
- background: linear-gradient( 124deg, #F52540 0%, #E8101E 100%);
+ background: linear-gradient( 124deg, #F52540 0%, #FF4767 100%);
border-radius: 20rpx 2rpx 20rpx 2rpx;
font-weight: 400;
font-size: 26rpx;
@@ -109,7 +109,7 @@ export default {
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 36rpx;
text-align: left;
font-style: normal;
diff --git a/pages/selfOperated/components/self-pay.vue b/pages/selfOperated/components/self-pay.vue
index 3e75a88..94ecd97 100644
--- a/pages/selfOperated/components/self-pay.vue
+++ b/pages/selfOperated/components/self-pay.vue
@@ -89,7 +89,7 @@
{{ item.name }}
-
@@ -770,7 +770,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 52rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 67rpx;
text-align: left;
font-style: normal;
@@ -780,7 +780,7 @@
.pop-submit-btn {
width: 226rpx;
height: 82rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 41rpx;
.pop-submit-btn-text {
diff --git a/pages/selfOperated/detail.nvue b/pages/selfOperated/detail.nvue
index e1936e9..6a331e9 100644
--- a/pages/selfOperated/detail.nvue
+++ b/pages/selfOperated/detail.nvue
@@ -1091,7 +1091,7 @@
margin: 27rpx;
width: 130rpx;
height: 56rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
display: flex;
flex-flow: row nowrap;
justify-content: center;
@@ -1101,7 +1101,7 @@
.look-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
}
/* 评论区域 */
@@ -1170,7 +1170,7 @@
font-size: 16rpx;
padding: 0 8rpx;
border-radius: 12rpx;
- color: #E8101E;
+ color: #FF4767;
background-color: rgba(255, 148, 180, 0.50);
margin-right: 8rpx;
}
@@ -1289,7 +1289,7 @@
.submit-btn {
width: 670rpx;
height: 86rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 50rpx;
font-weight: 400;
font-size: 34rpx;
@@ -1303,7 +1303,7 @@
.disabled-btn {
opacity: 0.5 !important;
- background-color: #E8101E; /* 保持原有颜色,只是降低透明度 */
+ background-color: #FF4767; /* 保持原有颜色,只是降低透明度 */
}
.cannot-submit {
diff --git a/pages/selfOperated/list.vue b/pages/selfOperated/list.vue
index 3899988..59589e8 100644
--- a/pages/selfOperated/list.vue
+++ b/pages/selfOperated/list.vue
@@ -4,7 +4,7 @@
title="平台自营服务列表"
:leftImg="'/static/images/whiteBack.png'"
:showUser="true"
- backgroundColor="linear-gradient( 134deg, #F52540 0%, #E8101E 100%)"
+ backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)"
headleSrc="/static/images/recruit/guide.png"
:showHeadle="true"
titleColor="#fff"
@@ -218,7 +218,7 @@ export default {
/* 预先设置透明边框,防止切换时布局跳动 */
&.active {
- color: #e8101e;
+ color: #FF4767;
font-weight: 500;
position: relative;
@@ -232,7 +232,7 @@ export default {
/* 激活时显示红色边框 */
width: 34rpx;
height: 6rpx;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
border-radius: 3rpx;
}
}
@@ -279,10 +279,10 @@ export default {
width: 246rpx;
height: 80rpx;
border-radius: 40rpx;
- border: 2rpx solid #e8101e;
+ border: 2rpx solid #FF4767;
font-weight: 500;
font-size: 28rpx;
- color: #e8101e;
+ color: #FF4767;
text-align: left;
font-style: normal;
display: flex;
@@ -292,7 +292,7 @@ export default {
.pop-content-sure {
width: 246rpx;
height: 80rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 40rpx;
font-weight: 500;
font-size: 28rpx;
@@ -347,7 +347,7 @@ export default {
.list-item-left-price-text {
font-weight: 500;
font-size: 40rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 48rpx;
text-align: left;
font-style: normal;
diff --git a/pages/selfOperated/selectSyr.vue b/pages/selfOperated/selectSyr.vue
index b7ff011..9ba0760 100644
--- a/pages/selfOperated/selectSyr.vue
+++ b/pages/selfOperated/selectSyr.vue
@@ -1,7 +1,7 @@
@@ -575,7 +575,7 @@
margin: 0 21rpx;
width: 648rpx;
height: 94rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #f52540 0%, #FF4767 100%);
border-radius: 48rpx;
font-weight: 400;
font-size: 30rpx;
@@ -794,7 +794,7 @@
/* 选中状态样式 */
.sj-pop-item.active {
- color: #E8101E ;
+ color: #FF4767 ;
}
}
diff --git a/pages/selfOperated/serveList.vue b/pages/selfOperated/serveList.vue
index b438936..04cbce1 100644
--- a/pages/selfOperated/serveList.vue
+++ b/pages/selfOperated/serveList.vue
@@ -56,7 +56,7 @@
+ activeColor="#FF4767" @tab-click="tabClick">
@@ -12,7 +12,7 @@
diff --git a/pages/service/class.vue b/pages/service/class.vue
index c8e438c..43e1bcb 100644
--- a/pages/service/class.vue
+++ b/pages/service/class.vue
@@ -1,8 +1,8 @@
-
+ backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)" titleColor="#fff">
+
@@ -253,11 +253,11 @@
}
.icon-tab.active .icon-text {
- color: #E8101E;
+ color: #FF4767;
}
.icon-tab.active .icon-img {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
::v-deep .list-scroll{
diff --git a/pages/service/components/filter.vue b/pages/service/components/filter.vue
index ae2ef4b..6e5c5fb 100644
--- a/pages/service/components/filter.vue
+++ b/pages/service/components/filter.vue
@@ -279,10 +279,10 @@
getIconColor(index) {
if (this.activeIndex === index) {
- return '#E8101E';
+ return '#FF4767';
}
if (this.hasValue(this.filterTabs[index].key)) {
- return '#E8101E';
+ return '#FF4767';
}
return '#666';
},
@@ -527,7 +527,7 @@
}
&.active {
- color: #E8101E;
+ color: #FF4767;
}
.check-icon {
@@ -567,7 +567,7 @@
}
&.active {
background: #FFECF0;
- color: #E8101E;
+ color: #FF4767;
}
}
@@ -620,7 +620,7 @@
height: 100%;
.custom-price-container.active & {
- color: #E8101E;
+ color: #FF4767;
}
}
diff --git a/pages/service/components/intmentFilter.vue b/pages/service/components/intmentFilter.vue
index 63490d9..0ad411e 100644
--- a/pages/service/components/intmentFilter.vue
+++ b/pages/service/components/intmentFilter.vue
@@ -267,7 +267,7 @@
&.active {
background-color: #ffecf0;
font-weight: 500;
- color: #e8101e;
+ color: #FF4767;
border-color: @primary-color;
}
}
diff --git a/pages/service/components/search-box.vue b/pages/service/components/search-box.vue
index 0f84257..368d17a 100644
--- a/pages/service/components/search-box.vue
+++ b/pages/service/components/search-box.vue
@@ -52,7 +52,7 @@ export default {
},
bgClor: {
type: String,
- default: "linear-gradient(134deg, #f52540 0%, #e8101e 100%)",
+ default: "linear-gradient(134deg, #f52540 0%, #FF4767 100%)",
},
},
data() {
@@ -126,7 +126,7 @@ export default {
justify-content: center;
align-items: center;
position: relative;
- background: linear-gradient(134deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(134deg, #f52540 0%, #FF4767 100%);
transform: translateY(0rpx);
}
@@ -197,7 +197,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
background-size: cover;
color: #fff;
font-size: 26rpx;
diff --git a/pages/service/components/self-pay.vue b/pages/service/components/self-pay.vue
index d8c1a8c..ccb18d4 100644
--- a/pages/service/components/self-pay.vue
+++ b/pages/service/components/self-pay.vue
@@ -89,7 +89,7 @@
{{ item.name }}
-
@@ -793,7 +793,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 52rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 67rpx;
text-align: left;
font-style: normal;
@@ -803,7 +803,7 @@
.pop-submit-btn {
width: 226rpx;
height: 82rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 41rpx;
.pop-submit-btn-text {
diff --git a/pages/service/components/shopCard.vue b/pages/service/components/shopCard.vue
index 4e2cfd5..218660b 100644
--- a/pages/service/components/shopCard.vue
+++ b/pages/service/components/shopCard.vue
@@ -165,7 +165,7 @@ export default {
font-style: normal;
&__tip {
padding: 0 8rpx;
- background: linear-gradient(160deg, #fc5e72 0%, #e8101e 100%);
+ background: linear-gradient(160deg, #fc5e72 0%, #FF4767 100%);
border-radius: 6rpx;
font-weight: 500;
font-size: 20rpx;
@@ -180,7 +180,7 @@ export default {
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 26rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
diff --git a/pages/service/detail.nvue b/pages/service/detail.nvue
index 80e19e7..ef223f5 100644
--- a/pages/service/detail.nvue
+++ b/pages/service/detail.nvue
@@ -985,14 +985,14 @@
margin: 27rpx;
padding: 0 18rpx;
height: 56rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
border-radius: 28rpx;
}
.look-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 56rpx;
}
@@ -1062,7 +1062,7 @@
font-size: 16rpx;
padding: 0 8rpx;
border-radius: 12rpx;
- color: #E8101E;
+ color: #FF4767;
background-color: rgba(255, 148, 180, 0.50);
margin-right: 8rpx;
}
diff --git a/pages/service/store-list.vue b/pages/service/store-list.vue
index 10a4bb6..599e8d4 100644
--- a/pages/service/store-list.vue
+++ b/pages/service/store-list.vue
@@ -4,7 +4,7 @@
title="附近门店"
:leftImg="'/static/images/whiteBack.png'"
:showUser="true"
- backgroundColor="linear-gradient( 134deg, #F52540 0%, #E8101E 100%)"
+ backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)"
titleColor="#fff"
borderBottom="none"
>
@@ -12,7 +12,7 @@
diff --git a/pages/settings/password.vue b/pages/settings/password.vue
index 298518c..88d79af 100644
--- a/pages/settings/password.vue
+++ b/pages/settings/password.vue
@@ -8,7 +8,7 @@
- 登录密码用于美融融商家登录,密码至少6个字符,不能全是字母或者数字
+ 登录密码用于美融融商家登录,密码至少6个字符,不能全是字母或者数字
@@ -286,7 +286,7 @@
.pwd-error {
display: block;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 30rpx;
margin-top: 10rpx;
line-height: 1.2;
@@ -319,7 +319,7 @@
}
.active {
- background: #E8101E;
+ background: #FF4767;
&:active {
opacity: 0.9; // 点击反馈
diff --git a/pages/settings/paypsd.vue b/pages/settings/paypsd.vue
index b024be0..cfb4fa9 100644
--- a/pages/settings/paypsd.vue
+++ b/pages/settings/paypsd.vue
@@ -133,7 +133,7 @@ page {
.code-btn {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
.pay-cont {
padding-top: 168rpx;
diff --git a/pages/share/syrandsjshare.vue b/pages/share/syrandsjshare.vue
index 167eed3..3fcd6bc 100644
--- a/pages/share/syrandsjshare.vue
+++ b/pages/share/syrandsjshare.vue
@@ -141,7 +141,7 @@ import request from '../../utils/request'
width: 360rpx;
height: 360rpx;
border-radius: 16rpx;
- border: 6rpx solid #E8101E;
+ border: 6rpx solid #FF4767;
margin-top: 34rpx;
}
.invite-lists {
diff --git a/pages/share/usershare.vue b/pages/share/usershare.vue
index a84ba66..179ccf4 100644
--- a/pages/share/usershare.vue
+++ b/pages/share/usershare.vue
@@ -107,7 +107,7 @@ import request from '../../utils/request'
width: 360rpx;
height: 360rpx;
border-radius: 16rpx;
- border: 6rpx solid #E8101E;
+ border: 6rpx solid #FF4767;
margin-top: 34rpx;
background-color: #fff;
}
diff --git a/pages/shop/SellerDetail.vue b/pages/shop/SellerDetail.vue
index 740c86b..50a056e 100644
--- a/pages/shop/SellerDetail.vue
+++ b/pages/shop/SellerDetail.vue
@@ -25,11 +25,11 @@
}}
×1
- {{identity==0?'使用场景':'服务范围'}}:{{
+
单价:{{ orderInfo.price }}元/10分钟
@@ -74,7 +74,7 @@
顾客信息
店铺信息
-
+
{{ orderInfo.name }}
@@ -131,7 +131,7 @@
支付时间
@@ -240,7 +240,7 @@
}
if (options.identity) {
- this.identity = options.identity;
+ this.identity = parseInt(options.identity);
}
if (options.order_id) {
// 请求订单详情
@@ -377,15 +377,17 @@
})
.then((res) => {
if (this.identity == 0) {
+ const userSyr = res.data.user_syr || {}; // 避免 null 展开报错
this.orderInfo = res.data ? {
...res.data.order,
...res.data.work_seat,
- ...res.data.user_syr,
+ ...userSyr,
work_hour_id: res.data.work_seat.id,
order_id: res.data.order.id,
- user_sj_id: res.data.user_syr.id,
+ syr_id: userSyr.id, // 用于判断是否有手艺人/顾客信息
} : {};
} else if (this.identity == 1) {
+ // 手艺人视角
this.orderInfo = res.data ? {
...res.data.order,
...res.data.work_hour,
@@ -547,6 +549,7 @@
server_code: code,
})
.then((res) => {
+ console.log('API Response:', res);
if (res.code == 200) {
uni.showToast({
title: res.msg,
@@ -559,10 +562,19 @@
prevPage.$vm.getOrderNumber();
prevPage.$vm.getOrderList();
}
+ } else if (res.state == 1) {
+ uni.showToast({
+ title: res.msg,
+ icon: "none"
+ });
+ this.getOrderDetail();
+ const pages = getCurrentPages();
+ const prevPage = pages[pages.length - 2];
+ if (prevPage) {
+ prevPage.$vm.getOrderNumber();
+ prevPage.$vm.getOrderList();
+ }
}
- // else if (res.state == 2) {
- // uni.showToast({ title: res.msg, icon: "none" });
- // }
this.handelOrder = {};
}).finally(() => {
this.clickType = false
@@ -837,7 +849,7 @@
.real-price {
font-size: 42rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
transform: translateY(-5rpx);
.icon {
@@ -894,6 +906,8 @@
.shop_photo {
width: 70rpx;
height: 70rpx;
+ min-width: 70rpx;
+ min-height: 70rpx;
border-radius: 50%;
flex-shrink: 0;
}
@@ -1016,14 +1030,14 @@
}
.btn-border {
- border: 1rpx solid #979797;
+ border: 2rpx solid #979797;
background-color: #fff;
box-sizing: border-box;
margin-left: 30rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
@@ -1061,4 +1075,4 @@
.mt_10 {
margin-top: 10rpx;
}
-
\ No newline at end of file
+
diff --git a/pages/shop/add-img-text.vue b/pages/shop/add-img-text.vue
index 97f24fc..0627272 100644
--- a/pages/shop/add-img-text.vue
+++ b/pages/shop/add-img-text.vue
@@ -12,7 +12,8 @@
{{ item.value }}
-
+
2) {
+ value = parts[0] + '.' + parts.slice(1).join('');
+ }
// 2. 确保只有一个小数点
const parts = value.split('.');
if (parts.length > 2) {
@@ -464,6 +471,27 @@ export default {
that.$set(that.formData, 'line_price', value);
},
// 服务简介部分
+ initDetailForm(detail = []) {
+ // 先重置 detailForm 为空
+ this.detailForm = {
+ effect: "",
+ crowd: "",
+ product: "",
+ scope: "",
+ tips: "",
+ };
+ this.detailOtherList = [];
+ // 3. 限制小数点后最多一位
+ if (parts.length > 1) {
+ value = parts[0] + '.' + parts[1].slice(0, 2);
+ }
+ // 4. 如果以小数点开头,前面补0
+ if (value.startsWith('.')) {
+ value = '0' + value;
+ }
+ that.$set(that.formData, 'line_price', value);
+ },
+ // 服务简介部分
initDetailForm(detail = []) {
// 先重置 detailForm 为空
this.detailForm = {
@@ -475,6 +503,12 @@ export default {
};
this.detailOtherList = [];
+ // 优先从后端返回的新字段赋值
+ if (this.formData.efficacy) this.detailForm.effect = this.formData.efficacy;
+ if (this.formData.crowd) this.detailForm.crowd = this.formData.crowd;
+ if (this.formData.product) this.detailForm.product = this.formData.product;
+ if (this.formData.scope) this.detailForm.scope = this.formData.scope;
+ if (this.formData.prompt) this.detailForm.tips = this.formData.prompt;
// 优先从后端返回的新字段赋值
if (this.formData.efficacy) this.detailForm.effect = this.formData.efficacy;
if (this.formData.crowd) this.detailForm.crowd = this.formData.crowd;
@@ -718,9 +752,16 @@ export default {
let that = this;
let value = e.detail.value;
+ // 1. 移除非数字和小数点
+ value = value.replace(/[^\d.]/g, "");
// 1. 移除非数字和小数点
value = value.replace(/[^\d.]/g, "");
+ // 2. 确保只有一个小数点
+ const parts = value.split(".");
+ if (parts.length > 2) {
+ value = parts[0] + "." + parts.slice(1).join("");
+ }
// 2. 确保只有一个小数点
const parts = value.split(".");
if (parts.length > 2) {
@@ -764,6 +805,10 @@ export default {
this.nowQer = val;
},
+ // 删除视频
+ deleteVideo() {
+ this.formData.video = "";
+ },
// 删除视频
deleteVideo() {
this.formData.video = "";
@@ -804,259 +849,301 @@ export default {
}
return !value;
});
-
- if (isEmpty) {
- uni.showToast({
- title: "请至少填写一项内容",
- icon: "none",
+ // 保存草稿
+ saveDraft: debounce(function () {
+ if (this.isDraft) return;
+ this.syncDetailForm();
+ const {
+ title,
+ server_price,
+ line_price,
+ server_time,
+ first_class_id,
+ second_class_id,
+ detail,
+ process,
+ video,
+ photo,
+ } = this.formData;
+ let item = {
+ title,
+ server_price,
+ line_price,
+ server_time,
+ first_class_id,
+ second_class_id,
+ detail,
+ process,
+ video,
+ photo,
+ };
+ // 检查是否所有字段都为空
+ const isEmpty = Object.values(item).every((value) => {
+ if (Array.isArray(value)) {
+ return value.length === 0;
+ }
+ return !value;
});
- return;
- }
- // 实现保存草稿逻辑
- this.formData.state = 0;
- const submitData = this.buildSubmitData();
- submitData.state = 0;
- let url = null;
- if (!this.formData.id) {
- url = "/user/serveradd";
- } else {
- url = "/user/serverchange";
- }
- request.post(url, submitData).then((res) => {
- if (res.state == 1) {
- this.isDraft = true;
- const pages = getCurrentPages();
- const prevPage = pages[pages.length - 2]; // 上一个页面
+ if (isEmpty) {
uni.showToast({
- title: res.msg,
- icon: "success",
- duration: 1000,
- });
- setTimeout(() => {
- uni.navigateBack({
- delta: 1,
- success: () => {
- prevPage.$vm.currentTab = 3;
- prevPage.$vm.state = 0;
- prevPage.$vm.getServicesList(); // 直接调用上个页面的刷新方法
- },
- });
- }, 500);
- } else {
- uni.showToast({
- title: res.msg,
+ title: "请至少填写一项内容",
icon: "none",
});
- this.isDraft = false;
+ return;
}
- });
- }, 500),
-
- // 验证动态表单字段
- validateDynamicForm() {
- // 遍历 formGroups(分组结构)按顺序验证必填项
- for (let i = 0; i < this.formFields.length; i++) {
- const group = this.formFields[i];
- const fieldsToCheck = [];
- if (group.type === 'single' && group.field) {
- fieldsToCheck.push(group.field);
- } else if (group.type === 'section' && group.fields) {
- fieldsToCheck.push(...group.fields);
+ if (isEmpty) {
+ uni.showToast({
+ title: "请至少填写一项内容",
+ icon: "none",
+ });
+ return;
}
- for (let j = 0; j < fieldsToCheck.length; j++) {
- const field = fieldsToCheck[j];
- if (!field.is_required) continue;
-
- const value = this.formData[field.key];
- const isEmpty = value === undefined || value === null || value === '' ||
- (Array.isArray(value) && value.length === 0);
-
- if (isEmpty) {
- // 根据字段类型显示不同的提示语
- const prefix = (field.type === 'image_multi' || field.type === 'video') ? '请上传' : '请输入';
+ // 实现保存草稿逻辑
+ this.formData.state = 0;
+ const submitData = this.buildSubmitData();
+ submitData.state = 0;
+ let url = null;
+ if (!this.formData.id) {
+ url = "/user/serveradd";
+ } else {
+ url = "/user/serverchange";
+ }
+ request.post(url, submitData).then((res) => {
+ if (res.state == 1) {
+ this.isDraft = true;
+ const pages = getCurrentPages();
+ const prevPage = pages[pages.length - 2]; // 上一个页面
uni.showToast({
- title: `${prefix}${field.label}`,
+ title: res.msg,
+ icon: "success",
+ duration: 1000,
+ });
+ setTimeout(() => {
+ uni.navigateBack({
+ delta: 1,
+ success: () => {
+ prevPage.$vm.currentTab = 3;
+ prevPage.$vm.state = 0;
+ prevPage.$vm.getServicesList(); // 直接调用上个页面的刷新方法
+ },
+ });
+ }, 500);
+ } else {
+ uni.showToast({
+ title: res.msg,
icon: "none",
});
- return false;
+ this.isDraft = false;
+ }
+ });
+ }, 500),
+
+ // 验证动态表单字段
+ validateDynamicForm() {
+ // 遍历 formGroups(分组结构)按顺序验证必填项
+ for (let i = 0; i < this.formFields.length; i++) {
+ const group = this.formFields[i];
+ const fieldsToCheck = [];
+ if (group.type === 'single' && group.field) {
+ fieldsToCheck.push(group.field);
+ } else if (group.type === 'section' && group.fields) {
+ fieldsToCheck.push(...group.fields);
}
- // 服务时长特殊验证
- if (field.key === 'server_time') {
- if (value < 10) {
+ for (let j = 0; j < fieldsToCheck.length; j++) {
+ const field = fieldsToCheck[j];
+ if (!field.is_required) continue;
+
+ const value = this.formData[field.key];
+ const isEmpty = value === undefined || value === null || value === '' ||
+ (Array.isArray(value) && value.length === 0);
+
+ if (isEmpty) {
+ // 根据字段类型显示不同的提示语
+ const prefix = (field.type === 'image_multi' || field.type === 'video') ? '请上传' : '请输入';
uni.showToast({
- title: "服务时长最短为10分钟",
+ title: `${prefix}${field.label}`,
icon: "none",
});
return false;
}
- if (value > 240) {
- uni.showToast({
- title: "服务时长最长为240分钟",
- icon: "none",
- });
- return false;
+
+ // 服务时长特殊验证
+ if (field.key === 'server_time') {
+ if (value < 10) {
+ uni.showToast({
+ title: "服务时长最短为10分钟",
+ icon: "none",
+ });
+ return false;
+ }
+ if (value > 240) {
+ uni.showToast({
+ title: "服务时长最长为240分钟",
+ icon: "none",
+ });
+ return false;
+ }
}
}
}
- }
- return true;
- },
- // 构建提交数据:有key的字段直接作为参数,没有key的字段放入intro数组
- buildSubmitData() {
- const submitData = {};
- const introArr = [];
- console.log(this.formData, '=-=-=-=-=-=');
- // 添加固定字段
- if (this.formData.publish_user_id) {
- if (this.formData.id) {
- submitData.id = this.formData.id;
+ return true;
+ },
+ // 构建提交数据:有key的字段直接作为参数,没有key的字段放入intro数组
+ buildSubmitData() {
+ const submitData = {};
+ const introArr = [];
+ console.log(this.formData, '=-=-=-=-=-=');
+ // 添加固定字段
+ if (this.formData.publish_user_id) {
+ if (this.formData.id) {
+ submitData.id = this.formData.id;
+ }
+ submitData.publish_user_id = this.formData.publish_user_id || uni.getStorageSync('userId') || '';
+ submitData.first_class_id = this.formData.first_class_id || '';
+ submitData.second_class_id = this.formData.second_class_id || '';
+ submitData.server_kind = this.formData.server_kind || getApp().globalData.artisanType;
}
- submitData.publish_user_id = this.formData.publish_user_id || uni.getStorageSync('userId') || '';
- submitData.first_class_id = this.formData.first_class_id || '';
- submitData.second_class_id = this.formData.second_class_id || '';
- submitData.server_kind = this.formData.server_kind || getApp().globalData.artisanType;
- }
- // 视频字段(独立上传组件)
- if (this.formData.video) {
- submitData.video = this.formData.video;
- }
-
- // 遍历分组,按顺序处理字段
- for (let i = 0; i < this.formFields.length; i++) {
- const group = this.formFields[i];
- let fieldsToProcess = [];
- if (group.type === 'single' && group.field) {
- fieldsToProcess.push(group.field);
- } else if (group.type === 'section' && group.fields) {
- fieldsToProcess = group.fields;
+ // 视频字段(独立上传组件)
+ if (this.formData.video) {
+ submitData.video = this.formData.video;
}
- for (let j = 0; j < fieldsToProcess.length; j++) {
- const field = fieldsToProcess[j];
- const value = this.formData[field.key];
- if (value === undefined || value === null || value === '') continue;
- if (Array.isArray(value) && value.length === 0) continue;
- if (field._hasOriginalKey) {
- // 有key的字段直接作为请求参数
- // 图片字段确保为纯URL字符串数组
- if (field.type === 'image_multi' && Array.isArray(value)) {
- submitData[field.key] = value.map(function (item) {
- return typeof item === 'string' ? item : (item && item.url ? item.url : item);
- });
+ // 遍历分组,按顺序处理字段
+ for (let i = 0; i < this.formFields.length; i++) {
+ const group = this.formFields[i];
+ let fieldsToProcess = [];
+ if (group.type === 'single' && group.field) {
+ fieldsToProcess.push(group.field);
+ } else if (group.type === 'section' && group.fields) {
+ fieldsToProcess = group.fields;
+ }
+ for (let j = 0; j < fieldsToProcess.length; j++) {
+ const field = fieldsToProcess[j];
+ const value = this.formData[field.key];
+ if (value === undefined || value === null || value === '') continue;
+ if (Array.isArray(value) && value.length === 0) continue;
+
+ if (field._hasOriginalKey) {
+ // 有key的字段直接作为请求参数
+ // 图片字段确保为纯URL字符串数组
+ if (field.type === 'image_multi' && Array.isArray(value)) {
+ submitData[field.key] = value.map(function (item) {
+ return typeof item === 'string' ? item : (item && item.url ? item.url : item);
+ });
+ } else {
+ submitData[field.key] = value;
+ }
} else {
- submitData[field.key] = value;
+ // 没有key的字段放入intro数组
+ introArr.push({
+ id: field._original ? field._original.id : field.key,
+ title: field.label,
+ type: field._fieldType || field.type,
+ value: value,
+ });
}
- } else {
- // 没有key的字段放入intro数组
- introArr.push({
- id: field._original ? field._original.id : field.key,
- title: field.label,
- type: field._fieldType || field.type,
- value: value,
- });
}
}
- }
- if (introArr.length > 0) {
- submitData.intro = JSON.stringify(introArr);
- }
+ if (introArr.length > 0) {
+ submitData.intro = JSON.stringify(introArr);
+ }
- // 服务步骤:有key时作为独立参数,无key时放入intro数组
- if (this.formData.process && this.formData.process.length > 0) {
- const processArr = this.formData.process
- .filter(item => item.text && item.text.trim())
- .map(item => ({ text: item.text.trim() }));
- if (processArr.length > 0) {
- if (this.processFieldKey) {
- submitData[this.processFieldKey] = JSON.stringify(processArr);
- } else {
- let introList = [];
- try {
- introList = submitData.intro ? JSON.parse(submitData.intro) : [];
- } catch (e) {
- introList = [];
+ // 服务步骤:有key时作为独立参数,无key时放入intro数组
+ if (this.formData.process && this.formData.process.length > 0) {
+ const processArr = this.formData.process
+ .filter(item => item.text && item.text.trim())
+ .map(item => ({ text: item.text.trim() }));
+ if (processArr.length > 0) {
+ if (this.processFieldKey) {
+ submitData[this.processFieldKey] = JSON.stringify(processArr);
+ } else {
+ let introList = [];
+ try {
+ introList = submitData.intro ? JSON.parse(submitData.intro) : [];
+ } catch (e) {
+ introList = [];
+ }
+ introList.push({
+ id: 'service_step',
+ title: '服务流程',
+ value: processArr,
+ });
+ submitData.intro = JSON.stringify(introList);
}
- introList.push({
- id: 'service_step',
- title: '服务流程',
- value: processArr,
- });
- submitData.intro = JSON.stringify(introList);
}
}
- }
- return submitData;
- },
+ return submitData;
+ },
- // 提交表单
- submitForm: debounce(function () {
- if (this.isAdd) return;
+ // 提交表单
+ submitForm: debounce(function () {
+ if (this.isAdd) return;
- // 先同步服务简介数据到formData
- this.syncDetailForm();
+ // 先同步服务简介数据到formData
+ this.syncDetailForm();
- // 验证动态表单字段
- if (!this.validateDynamicForm()) {
- return;
- }
+ // 验证动态表单字段
+ if (!this.validateDynamicForm()) {
+ return;
+ }
- if (this.artisanType == 2) {
- delete this.formData.sj_see;
- }
- // 提交表单逻辑
- delete this.formData.state;
- let url = null;
- if (!this.formData.id) {
- url = "/user/serveradd";
- } else {
- url = "/user/serverupdate";
- }
- console.log(this.formData, '-0-0-0-0-0-');
- const submitData = this.buildSubmitData();
- submitData.publish_user_id = this.formData.publish_user_id;
- submitData.second_class_id = this.formData.second_class_id;
- submitData.photo = Object.values(this.formData.photo || {});
- console.log(submitData, 'submitData');
- submitData.publish_user_id = this.postid
- submitData.server_kind = 2
- submitData.first_class_id = this.formData.first_class_id
-
- request.post(url, submitData).then((res) => {
- if (res.state == 1) {
- const pages = getCurrentPages();
- const prevPage = pages[pages.length - 2]; // 上一个页面
- uni.showToast({
- title: res.msg,
- icon: "success",
- duration: 600,
- mask: true,
- });
- this.isAdd = true;
- setTimeout(() => {
- uni.navigateBack({
- delta: 1,
- success: () => {
- prevPage.$vm.currentTab = 1;
- prevPage.$vm.state = 1;
- prevPage.$vm.getServicesList(); // 直接调用上个页面的刷新方法
- },
- });
- }, 500);
+ if (this.artisanType == 2) {
+ delete this.formData.sj_see;
+ }
+ // 提交表单逻辑
+ delete this.formData.state;
+ let url = null;
+ if (!this.formData.id) {
+ url = "/user/serveradd";
} else {
- uni.showToast({
- title: res.msg,
- icon: "none",
- });
- this.isAdd = false;
+ url = "/user/serverupdate";
}
- });
- }, 500),
+ console.log(this.formData, '-0-0-0-0-0-');
+ const submitData = this.buildSubmitData();
+ submitData.publish_user_id = this.formData.publish_user_id;
+ submitData.second_class_id = this.formData.second_class_id;
+ submitData.photo = Object.values(this.formData.photo || {});
+ console.log(submitData, 'submitData');
+ submitData.publish_user_id = this.postid
+ submitData.server_kind = 2
+ submitData.first_class_id = this.formData.first_class_id
+
+ request.post(url, submitData).then((res) => {
+ if (res.state == 1) {
+ const pages = getCurrentPages();
+ const prevPage = pages[pages.length - 2]; // 上一个页面
+ uni.showToast({
+ title: res.msg,
+ icon: "success",
+ duration: 600,
+ mask: true,
+ });
+ this.isAdd = true;
+ setTimeout(() => {
+ uni.navigateBack({
+ delta: 1,
+ success: () => {
+ prevPage.$vm.currentTab = 1;
+ prevPage.$vm.state = 1;
+ prevPage.$vm.getServicesList(); // 直接调用上个页面的刷新方法
+ },
+ });
+ }, 500);
+ } else {
+ uni.showToast({
+ title: res.msg,
+ icon: "none",
+ });
+ this.isAdd = false;
+ }
+ });
+ }, 500),
},
};
@@ -1067,6 +1154,15 @@ export default {
box-sizing: border-box;
}
+.add-service {
+ padding: 24rpx 24rpx 0;
+ box-sizing: border-box;
+}
+
+.form-container {
+ margin-top: 20rpx;
+}
+
.form-container {
margin-top: 20rpx;
}
@@ -1083,10 +1179,37 @@ export default {
margin-bottom: 24rpx;
}
+.form-item {
+ background-color: #fff;
+ padding: 24rpx;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ align-items: center;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+ margin-bottom: 24rpx;
+}
+
.price-tip {
width: 100%;
margin-top: 40rpx;
+ .price-tip {
+ width: 100%;
+ margin-top: 40rpx;
+
+ .price-tip-card {
+ padding: 8rpx 12rpx;
+ background: #FDF0F0;
+ border-radius: 8rpx;
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #EE4853;
+ line-height: 33rpx;
+ }
+ }
+
.price-tip-card {
padding: 8rpx 12rpx;
background: #FDF0F0;
@@ -1104,6 +1227,20 @@ export default {
align-items: space-between;
}
+.shopsale-box {
+ flex-flow: column;
+ justify-content: space-between;
+ align-items: space-between;
+}
+
+.shopsale-change {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 24rpx;
+}
+
.shopsale-change {
display: flex;
flex-flow: row nowrap;
@@ -1119,6 +1256,17 @@ export default {
align-items: center;
}
+.shopsale-option {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: center;
+ align-items: center;
+}
+
+.shopsale-option:last-child {
+ margin-left: 220rpx;
+}
+
.shopsale-option:last-child {
margin-left: 220rpx;
}
@@ -1127,6 +1275,22 @@ export default {
padding-left: 16rpx;
}
+.option-text {
+ padding-left: 16rpx;
+}
+
+.form-item-up {
+ background-color: #fff;
+ padding: 24rpx;
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
+ align-items: flex-start;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+ margin-bottom: 24rpx;
+}
+
.form-item-up {
background-color: #fff;
padding: 24rpx;
@@ -1144,6 +1308,11 @@ export default {
color: #333333;
}
+.form-label {
+ font-size: 28rpx;
+ color: #333333;
+}
+
.form-input {
flex: 1;
height: 40rpx;
@@ -1153,6 +1322,21 @@ export default {
text-align: center;
}
+.form-input {
+ flex: 1;
+ height: 40rpx;
+ font-size: 28rpx;
+ color: #333333;
+ align-items: center;
+ text-align: center;
+}
+
+.form-right {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
.form-right {
display: flex;
justify-content: space-between;
@@ -1183,10 +1367,29 @@ export default {
color: #999999;
}
+.placeholder {
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #999999;
+}
+
.textarea-item {
padding-bottom: 30rpx;
}
+.textarea-item {
+ padding-bottom: 30rpx;
+}
+
+.form-textarea {
+ flex: 1;
+ height: 198rpx;
+ font-size: 28rpx;
+ color: #333333;
+ line-height: 1.5;
+ margin-left: 32rpx;
+}
+
.form-textarea {
flex: 1;
height: 198rpx;
@@ -1200,6 +1403,16 @@ export default {
padding-bottom: 30rpx;
}
+.upload-item {
+ padding-bottom: 30rpx;
+}
+
+.upload-tip {
+ font-size: 24rpx;
+ color: #999999;
+ margin-left: 10rpx;
+}
+
.upload-tip {
font-size: 24rpx;
color: #999999;
@@ -1211,6 +1424,26 @@ export default {
position: relative;
}
+.upload-content {
+ margin-top: 20rpx;
+ position: relative;
+}
+
+.progress-box {
+ width: 204rpx;
+ height: 204rpx;
+ background-color: rgba(0, 0, 0, 0.5);
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 99;
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: center;
+ align-items: center;
+}
+
.progress-box {
width: 204rpx;
height: 204rpx;
@@ -1232,11 +1465,30 @@ export default {
font-weight: 500;
}
+.progress-text {
+ font-size: 42rpx;
+ color: #ffffff;
+ font-weight: 500;
+}
+
.progress-lable {
font-size: 28rpx;
color: #ffffff;
}
+.progress-lable {
+ font-size: 28rpx;
+ color: #ffffff;
+}
+
+.progress-box progress {
+ /* width: 204rpx; */
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
.progress-box progress {
/* width: 204rpx; */
position: absolute;
@@ -1255,6 +1507,23 @@ export default {
position: relative;
}
+.video-preview,
+.image-preview,
+.upload-btn {
+ width: 200rpx;
+ height: 200rpx;
+ margin-right: 10rpx;
+ margin-bottom: 20rpx;
+ position: relative;
+}
+
+.preview-video,
+.preview-image {
+ width: 200rpx;
+ height: 200rpx;
+ border-radius: 8rpx;
+}
+
.preview-video,
.preview-image {
width: 200rpx;
@@ -1270,6 +1539,19 @@ export default {
align-items: center;
}
+.upload-btn {
+ border: 2rpx dashed #dddddd;
+ border-radius: 8rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.plus-icon {
+ font-size: 60rpx;
+ color: #999999;
+}
+
.plus-icon {
font-size: 60rpx;
color: #999999;
@@ -1290,6 +1572,23 @@ export default {
font-size: 32rpx;
}
+.delete-btn {
+ position: absolute;
+ top: -20rpx;
+ right: -20rpx;
+ width: 40rpx;
+ height: 40rpx;
+ background-color: rgba(0, 0, 0, 0.5);
+ border-radius: 50%;
+ color: #ffffff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 32rpx;
+}
+
+.bottom-buttons {
+ /* position: fixed;
.bottom-buttons {
/* position: fixed;
left: 0;
@@ -1304,6 +1603,26 @@ export default {
align-items: center;
}
+height: 100rpx;
+padding: 40rpx 0 64rpx;
+box-sizing: border-box;
+display: flex;
+flex-flow: row nowrap;
+justify-content: space-between;
+align-items: center;
+}
+
+.btn-draft,
+.btn-submit {
+ width: 334rpx;
+ height: 76rpx;
+ line-height: 76rpx;
+ text-align: center;
+ font-size: 28rpx;
+ border-radius: 40rpx;
+ margin: 0 24rpx;
+}
+
.btn-draft,
.btn-submit {
width: 334rpx;
@@ -1334,10 +1653,27 @@ export default {
margin-bottom: 24rpx;
}
+.form-step {
+ background-color: #fff;
+ margin-bottom: 24rpx;
+}
+
.form-step .form-item {
margin-bottom: 0;
}
+.form-step .form-item {
+ margin-bottom: 0;
+}
+
+.step {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 24rpx 24rpx;
+}
+
.step {
display: flex;
flex-flow: row nowrap;
@@ -1355,6 +1691,25 @@ export default {
background-color: rgba(230, 230, 230, 0.5);
}
+.step-inp {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333333;
+ margin-left: 38rpx;
+ padding: 0 24rpx;
+ background-color: rgba(230, 230, 230, 0.5);
+}
+
+.step-textarea {
+ font-size: 24rpx;
+ flex: 1;
+ height: 70rpx;
+ border-radius: 6rpx;
+ margin-left: 38rpx;
+ padding: 24rpx;
+ background-color: rgba(230, 230, 230, 0.5);
+}
+
.step-textarea {
font-size: 24rpx;
flex: 1;
@@ -1376,6 +1731,22 @@ export default {
margin-bottom: 24rpx;
}
+/* 选择器触发按钮样式 */
+.picker-trigger {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 24rpx 32rpx;
+ background-color: #ffffff;
+ border-radius: 12rpx;
+ margin-bottom: 24rpx;
+}
+
+.picker-label {
+ font-size: 28rpx;
+ color: #333333;
+}
+
.picker-label {
font-size: 28rpx;
color: #333333;
@@ -1386,6 +1757,17 @@ export default {
color: #666666;
}
+.picker-value {
+ font-size: 28rpx;
+ color: #666666;
+}
+
+.picker-arrow {
+ width: 32rpx;
+ height: 32rpx;
+ margin-left: 16rpx;
+}
+
.picker-arrow {
width: 32rpx;
height: 32rpx;
@@ -1398,6 +1780,16 @@ export default {
margin-left: 24rpx;
}
+.delete-icon {
+ width: 32rpx;
+ height: 32rpx;
+ margin-left: 24rpx;
+}
+
+.form-detail {
+ position: relative;
+}
+
.form-detail {
position: relative;
}
@@ -1408,6 +1800,17 @@ export default {
margin-right: 4rpx;
}
+.required::before {
+ content: "*";
+ color: #ff0000;
+ margin-right: 4rpx;
+}
+
+.step-inp,
+.form-input {
+ height: 60rpx;
+}
+
.step-inp,
.form-input {
height: 60rpx;
@@ -1423,10 +1826,31 @@ export default {
overflow: hidden;
}
+// 服务简介相关
+.detail-card {
+ background: #ffffff;
+ border-radius: 20rpx;
+ padding: 0 24rpx 8rpx;
+ margin-bottom: 24rpx;
+ box-sizing: border-box;
+ overflow: hidden;
+}
+
.detail-title {
padding: 24rpx 0 25rpx;
}
+.detail-title {
+ padding: 24rpx 0 25rpx;
+}
+
+.detail-title .form-label {
+ font-size: 30rpx;
+ font-weight: 500;
+ color: #333;
+ line-height: 40rpx;
+}
+
.detail-title .form-label {
font-size: 30rpx;
font-weight: 500;
@@ -1438,6 +1862,16 @@ export default {
padding: 0 0 36rpx;
}
+.detail-row {
+ padding: 0 0 36rpx;
+}
+
+.detail-row .form-label {
+ display: block;
+ margin-bottom: 20rpx;
+ line-height: 40rpx;
+}
+
.detail-row .form-label {
display: block;
margin-bottom: 20rpx;
@@ -1452,6 +1886,28 @@ export default {
box-sizing: border-box;
}
+.detail-textarea-wrap {
+ position: relative;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ padding: 24rpx 24rpx 52rpx;
+ box-sizing: border-box;
+}
+
+.detail-textarea {
+ width: 100%;
+ height: 108rpx;
+ min-height: 108rpx;
+ margin: 0;
+ padding: 0;
+ background: transparent;
+ border: 0;
+ font-size: 28rpx;
+ line-height: 40rpx;
+ color: #333333;
+ box-sizing: border-box;
+}
+
.detail-textarea {
width: 100%;
height: 108rpx;
@@ -1475,8 +1931,24 @@ export default {
line-height: 32rpx;
}
+.detail-count {
+ position: absolute;
+ right: 24rpx;
+ bottom: 16rpx;
+ font-size: 22rpx;
+ color: #999999;
+ line-height: 32rpx;
+}
+
/* 平台特定样式 */
/* #ifdef H5 */
+/* 平台特定样式 */
+/* #ifdef H5 */
+
+.form-input,
+.form-textarea {
+ outline: none;
+}
.form-input,
.form-textarea {
@@ -1487,7 +1959,17 @@ export default {
cursor: pointer;
}
+.upload-btn {
+ cursor: pointer;
+}
+
/* #endif */
+/* #endif */
+
+/* #ifdef APP-PLUS */
+.form-input {
+ height: 90rpx;
+}
/* #ifdef APP-PLUS */
.form-input {
@@ -1500,6 +1982,13 @@ export default {
visibility: visible;
}
+.permission.transform {
+ top: calc(var(--status-bar-height) + 88rpx + 30rpx);
+ opacity: 1;
+ visibility: visible;
+}
+
+/* #endif */
/* #endif */
/* #ifdef MP-WEIXIN */
@@ -1507,6 +1996,15 @@ export default {
height: 80rpx;
}
+/* #ifdef MP-WEIXIN */
+.form-input {
+ height: 80rpx;
+}
+
+.bottom-buttons {
+ padding-bottom: env(safe-area-inset-bottom);
+}
+
.bottom-buttons {
padding-bottom: env(safe-area-inset-bottom);
}
@@ -1522,7 +2020,27 @@ export default {
text-align: left;
font-style: normal;
- text-align: center;
+ /* #endif */
+ .tip {
+ padding: 20rpx 30rpx;
+ background: #feefec;
+ font-weight: 400;
+ font-size: 30rpx;
+ color: #f31d2f;
+ line-height: 42rpx;
+ text-align: left;
+ font-style: normal;
+
+ text-align: center;
+ text-align: center;
+
+ .tip-icon {
+ width: 34rpx;
+ height: 34rpx;
+ margin-right: 10rpx;
+ transform: translateY(6rpx);
+ }
+ }
.tip-icon {
width: 34rpx;
@@ -1538,11 +2056,35 @@ export default {
transition: opacity 0.3s;
}
+/* 淡入淡出动画 */
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.3s;
+}
+
.fade-enter,
.fade-leave-to {
opacity: 0;
}
+.fade-enter,
+.fade-leave-to {
+ opacity: 0;
+}
+
+.popup-mask2 {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba(0, 0, 0, 0.5);
+ // z-index: 1000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
.popup-mask2 {
position: fixed;
top: 0;
@@ -1565,6 +2107,23 @@ export default {
box-sizing: border-box;
}
+.popup-content2 {
+ width: 600rpx;
+ background-color: #ffffff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ padding: 40rpx 30rpx;
+ box-sizing: border-box;
+}
+
+.popup-title {
+ font-size: 36rpx;
+ font-weight: 600;
+ color: #333333;
+ text-align: center;
+ margin-bottom: 20rpx;
+}
+
.popup-title {
font-size: 36rpx;
font-weight: 600;
@@ -1582,6 +2141,15 @@ export default {
line-height: 1.5;
}
+.popup-message {
+ font-size: 30rpx;
+ color: #666666;
+ text-align: center;
+ margin-top: 40rpx;
+ margin-bottom: 30rpx;
+ line-height: 1.5;
+}
+
.popup-buttons {
display: flex;
flex-flow: row nowrap;
@@ -1590,6 +2158,23 @@ export default {
gap: 60rpx;
}
+.popup-buttons {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ padding: 20rpx 0 0 0;
+ gap: 60rpx;
+}
+
+.popup-btn {
+ flex: 1;
+ height: 80rpx;
+ line-height: 80rpx;
+ text-align: center;
+ font-size: 26rpx;
+ border-radius: 40rpx;
+}
+
.popup-btn {
flex: 1;
height: 80rpx;
diff --git a/pages/shop/business-time.vue b/pages/shop/business-time.vue
index fdc0739..a1563e1 100644
--- a/pages/shop/business-time.vue
+++ b/pages/shop/business-time.vue
@@ -1,31 +1,116 @@
-
-
-
-
+
+
-
-
-
- 取消订单
- 申请退款
- 联系客服
- 立即支付
- 评价
-
+ 取消订单
+
+
+ 申请退款
+
+
+
+ 立即支付
+
+
+ 评价
+
+ 再来一单
-
- 查看投诉
+ @click="orderAgain(order)">
+ 再次购买
+
+
+ 查看投诉
+
@@ -86,14 +101,13 @@
+
前去登录
-
-
@@ -104,6 +118,7 @@
import {
debounce
} from '@/utils/debounce.js'
+
export default {
data() {
return {
@@ -131,7 +146,6 @@
id: 7,
title: '已取消'
}],
- // ,{id: 6,title: '待评价'}
currentTab: 0,
isRefreshing: false,
hasMore: true,
@@ -145,7 +159,6 @@
},
onLoad() {
// this.loadOrders();
-
},
async onShow() {
this.isLogin = uni.getStorageSync('accessToken') ? true : false;
@@ -160,12 +173,42 @@
this.loadOrders();
},
methods: {
+ getPeriodTime(order) {
+ const reservationTime = order.reservation_time;
+ const serverTime = order.server_time;
+
+ if (!reservationTime || !serverTime) {
+ return order.create_time || order.createtime || order.add_time || '';
+ }
+
+ // 兼容 iOS:将 "2026-04-29 15:50:00" 转换为 "2026/04/29 15:50:00"
+ const formattedTime = reservationTime.replace(/-/g, '/');
+ const startDate = new Date(formattedTime);
+
+ if (isNaN(startDate.getTime())) {
+ return order.create_time || order.createtime || order.add_time || '';
+ }
+
+ // 格式化开始时间
+ const year = startDate.getFullYear();
+ const month = String(startDate.getMonth() + 1).padStart(2, '0');
+ const day = String(startDate.getDate()).padStart(2, '0');
+ const startHour = String(startDate.getHours()).padStart(2, '0');
+ const startMinute = String(startDate.getMinutes()).padStart(2, '0');
+
+ // 计算结束时间
+ const endDate = new Date(startDate.getTime() + serverTime * 60 * 1000);
+ const endHour = String(endDate.getHours()).padStart(2, '0');
+ const endMinute = String(endDate.getMinutes()).padStart(2, '0');
+
+ // 返回格式:YYYY-MM-DD HH:mm - HH:mm
+ return `${year}-${month}-${day} ${startHour}:${startMinute} - ${endHour}:${endMinute}`;
+ },
// 切换标签
switchTab(index) {
this.currentTab = index;
this.orderList = [];
this.formData.page = 1;
- // TODO: 根据当前标签加载对应订单数据
if (this.currentTab != 0) {
this.formData.state = this.currentTab;
} else {
@@ -193,13 +236,13 @@
this.isRefreshing = true
this.formData.page = 1;
this.orderList = [];
+ this.hasMore = true;
this.loadOrders()
},
// 加载更多
loadMore() {
if (!this.hasMore) return
- // TODO: 加载更多订单数据
this.loadOrders();
},
@@ -211,6 +254,45 @@
})
},
+ getStatusText(state) {
+ const map = {
+ 1: '待支付',
+ 2: '待接单',
+ 3: '待服务',
+ 4: '服务中',
+ 5: '已完成',
+ 6: '待评价',
+ 7: '已取消'
+ }
+ return map[state] || ''
+ },
+
+ getDisplayTime(order) {
+ return order.create_time || order.createtime || order.add_time || order.reservation_time || ''
+ },
+
+ getDisplayPrice(order) {
+ const price = Number(order.pay_money) || Number(order.order_money) || 0
+
+ return Number(price).toFixed(2)
+ },
+
+ getOriginalPrice(order) {
+ const orderMoney = Number(order.order_money || 0)
+ const payMoney = Number(order.pay_money || 0)
+ if (orderMoney > 0 && payMoney > 0 && orderMoney !== payMoney) {
+ return orderMoney.toFixed(2)
+ }
+ return ''
+ },
+
+ getFullAddress(order) {
+ const arr = order.reservation_address_arr || {}
+ const dependency = arr.dependency || ''
+ const address = arr.address || ''
+ return `${dependency}${address}`
+ },
+
// 删除订单
deleteOrder: debounce(async function(order) {
uni.showModal({
@@ -218,7 +300,6 @@
content: '确定要删除该订单吗?',
success: (res) => {
if (res.confirm) {
- // TODO: 删除订单
request.post('/sj/deleteorder', {
id: order.id,
sjid: this.sjid
@@ -229,6 +310,7 @@
})
this.formData.page = 1;
this.orderList = [];
+ this.hasMore = true;
this.loadOrders();
})
}
@@ -249,63 +331,14 @@
});
});
},
+
// 联系客服
async contactService(phone) {
- // TODO: 实现联系客服功能
uni.navigateTo({
url: '/pages/contact/contact'
})
- // const systemInfo = uni.getSystemInfoSync()
- // if(systemInfo.platform === 'ios') {
- // uni.makePhoneCall({
- // phoneNumber: phone //仅为示例
- // })
- // }else {
- // let permission = '';
- // if(systemInfo.platform === 'ios') {
- // permission = 'phone'
- // }else {
- // permission = 'android.permission.CALL_PHONE'
- // }
- // this.isShowPer = true;
- // const firstRequest = !plus.storage.getItem(`perm_${permission}`)
- // if(firstRequest) {
- // this.isShowPer = true;
- // }
- // // 1. 检查权限
- // const { granted } = await permissionUtils.checkPermission('phone', '需要拨打电话权限,方便您联系商家或平台');
- // if (granted) {
- // this.isShowPer = false;
- // uni.makePhoneCall({
- // phoneNumber: phone //仅为示例
- // })
- // return;
- // }
- // this.isShowPer = false;
- // // 2. 显示权限说明弹窗
- // const confirm = await this.showPermissionDialog(
- // '拨打电话权限申请',
- // '我们需要拨打电话权限,方便您联系商家或平台'
- // );
-
- // if (!confirm) return;
-
- // // 3. 请求权限
- // const result = await permissionUtils.requestPermission('phone', '需要拨打电话权限,方便您联系商家或平台');
- // console.log('result',result)
- // if (result) {
- // uni.makePhoneCall({
- // phoneNumber: phone //仅为示例
- // })
- // return;
- // } else {
- // locationService.openAppSettings();
- // return;
- // // uni.showToast({ title: '相机权限被拒绝', icon: 'none' });
- // }
- // }
-
},
+
// 取消订单
async cancelService(order) {
console.log(order)
@@ -314,7 +347,6 @@
content: '确定要取消该订单吗?',
success: (res) => {
if (res.confirm) {
- // TODO: 取消订单
let data = {
orderNo: order.number,
amount: order.pay_money,
@@ -327,6 +359,7 @@
})
this.formData.page = 1;
this.orderList = [];
+ this.hasMore = true;
this.loadOrders();
}).catch(err => {
console.log(err)
@@ -335,6 +368,7 @@
}
})
},
+
// 申请退款
async refoundService(order) {
uni.showModal({
@@ -342,7 +376,6 @@
content: '确定申请退款?退款后则订单取消!',
success: (res) => {
if (res.confirm) {
- // TODO: 申请退款
let data = {
orderNo: order.number,
amount: order.pay_money,
@@ -365,6 +398,7 @@
})
this.formData.page = 1;
this.orderList = [];
+ this.hasMore = true;
this.loadOrders();
}).catch(err => {
console.log(err)
@@ -376,7 +410,6 @@
// 支付订单
payOrder(order) {
- // TODO: 实现支付功能
uni.navigateTo({
url: `/pages/shop/pay-order?id=${order.id}&money=${order.order_money}&title=${order.server_title}&number=${order.number}`
})
@@ -391,25 +424,26 @@
// 再次下单
orderAgain(order) {
- // TODO: 实现再次下单功能
uni.navigateTo({
url: '/pages/shop/service-detail?id=' + order.server_id
})
},
+
// 投诉
addComplaint(order) {
uni.navigateTo({
url: '/pages/complaint/add-complaint?number=' + order.number
})
},
+
// 查看投诉
lookComplaint(order) {
uni.navigateTo({
url: '/pages/complaint/detail?number=' + order.number
})
},
+
goLogin() {
- // uni.oprPresentLogin()
uni.navigateTo({
url: '/pages/blogPopup/blogPopup'
});
@@ -457,7 +491,7 @@
left: 50%;
bottom: 0;
transform: translateX(-50%);
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
@@ -471,113 +505,155 @@
.order-item {
background-color: #FFFFFF;
- border-radius: 16rpx;
+ border-radius: 20rpx;
margin-bottom: 24rpx;
padding: 24rpx;
box-sizing: border-box;
+ position: relative;
}
- .order-header {
- display: flex;
- align-items: center;
- margin-bottom: 34rpx;
- }
-
- .order-tag {
- width: 74rpx;
- height: 38rpx;
- display: flex;
- flex-flow: row nowrap;
- justify-content: center;
- align-items: center;
- border-radius: 19rpx;
- margin-right: 8rpx;
- background-color: rgba(232, 16, 30, 0.2);
- }
-
- .order-tag-text {
- color: #E8101E;
- font-size: 24rpx;
+ .order-top {
+ position: relative;
+ padding-right: 120rpx;
+ min-height: 40rpx;
}
.order-number {
- flex: 1;
- font-size: 24rpx;
- color: #666666;
- }
-
- .order-status {
+ display: block;
font-size: 28rpx;
- font-weight: 500;
- background-image: url('https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/5349af61-d67a-4ecf-91ce-6e4f05ad5edb.png');
+ color: #333333;
+ line-height: 40rpx;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .order-status-badge {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #FF4767;
+ text-align: left;
+ font-style: normal;
+ position: absolute;
+ right: -24rpx;
+ top: -24rpx;
+ background-image: url("/static/images/icons/tabBj.png");
+ background-size: 100% auto;
+ background-position: center top;
background-repeat: no-repeat;
- background-size: 100%;
- height: 49rpx;
width: 128rpx;
- padding-left: 30rpx;
+ height: 49rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-sizing: border-box;
}
- .status-pending {
- color: #E8101E;
+ .order-status-badge2 {
+ background-image: url("/static/images/icons/tabBj2.png");
+ color: #333333;
}
- .status-cancelled {
- color: #E8101E;
- }
-
- .status-completed {
- color: #E8101E;
+ .order-status-badge3 {
+ background-image: url("/static/images/icons/tabBj2.png");
+ color: #999999 !important;
}
.order-content {
display: flex;
- margin-bottom: 24rpx;
+ align-items: flex-start;
+ margin-top: 20rpx;
}
.service-image {
- width: 182rpx;
- height: 182rpx;
- border-radius: 16rpx;
- margin-right: 24rpx;
- background-color: #000000;
+ width: 162rpx;
+ height: 162rpx;
+ border-radius: 24rpx;
+ margin-right: 20rpx;
+ background-color: #F5F5F5;
+ flex-shrink: 0;
}
.service-info {
flex: 1;
+ min-width: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
}
.service-name {
- font-size: 24rpx;
+ font-size: 30rpx;
color: #333333;
- font-weight: 500;
+ line-height: 42rpx;
+ margin-bottom: 12rpx;
+ word-break: break-all;
}
- .service-time,
- .service-address {
+ .service-time {
display: flex;
align-items: center;
font-size: 24rpx;
+ line-height: 34rpx;
+ margin-bottom: 8rpx;
+ }
+
+ .label-text {
+ color: #666666;
+ }
+
+ .value-text {
color: #999999;
- font-weight: 500;
- margin-top: 8rpx;
+ margin-left: 8rpx;
+ }
+
+ .service-address {
+ display: flex;
align-items: flex-start;
+ margin-bottom: 10rpx;
}
- .text-overflow-1 {
- white-space: normal !important;
- word-break: break-word !important;
- overflow: visible !important;
- text-overflow: clip !important;
- flex: 1;
- }
-
- .time-icon,
.location-icon {
width: 24rpx;
height: 24rpx;
- margin-right: 4rpx;
- flex-shrink: 0;
+ margin-right: 6rpx;
margin-top: 4rpx;
+ flex-shrink: 0;
+ }
+
+ .address-text {
+ font-size: 24rpx;
+ color: #999999;
+ line-height: 34rpx;
+ word-break: break-all;
+ }
+
+ .price-row {
+ display: flex;
+ align-items: baseline;
+ margin-top: 6rpx;
+ }
+
+ .price-symbol {
+ font-size: 24rpx;
+ color: #FF0037;
+ line-height: 1;
+ }
+
+ .price-now {
+ font-size: 36rpx;
+ font-weight: 500;
+ color: #FF0037;
+ line-height: 1;
+ margin-left: 2rpx;
+ }
+
+ .price-old {
+ font-size: 22rpx;
+ color: #999999;
+ text-decoration: line-through;
+ margin-left: 10rpx;
+ line-height: 1;
}
.order-actions {
@@ -586,6 +662,12 @@
align-items: center;
border-top: 1rpx solid #EEEEEE;
padding-top: 24rpx;
+ margin-top: 24rpx;
+ }
+
+ .action-left {
+ display: flex;
+ align-items: center;
}
.delete-icon {
@@ -596,41 +678,33 @@
.action-right {
display: flex;
align-items: center;
+ flex-wrap: wrap;
+ justify-content: flex-end;
}
.action-btn {
- display: inline-block;
- width: 128rpx;
- height: 48rpx;
- line-height: 48rpx;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 128rpx;
+ height: 60rpx;
+ padding: 0 28rpx;
margin-left: 16rpx;
- text-align: center;
- font-size: 28rpx;
- border-radius: 24rpx;
+ border-radius: 30rpx;
font-size: 24rpx;
+ box-sizing: border-box;
}
- .action-btn.contact {
+ .gray-btn {
background-color: #FFFFFF;
border: 1rpx solid #999999;
color: #333333;
}
- .action-btn.primary {
- background-color: #E8101E;
- color: #FFFFFF;
- }
-
- .action-btn.review {
- background-color: rgba(252, 67, 124, 0.40);
- border: 1rpx solid #E8101E;
- color: #FFFFFF;
- }
-
- .action-btn.again {
+ .red-btn {
background-color: #FFFFFF;
- border: 1rpx solid #999999;
- color: #666666;
+ border: 1rpx solid #FF4767;
+ color: #FF4767;
}
.nologin_part {
@@ -688,10 +762,11 @@
}
/* #endif */
+
/* 平台适配 */
/* #ifdef H5 */
/* .order-list {
- padding-bottom: env(safe-area-inset-bottom);
-} */
+ padding-bottom: env(safe-area-inset-bottom);
+ } */
/* #endif */
\ No newline at end of file
diff --git a/pages/shop/buy-service.vue b/pages/shop/buy-service.vue
index a2918dc..714cc1a 100644
--- a/pages/shop/buy-service.vue
+++ b/pages/shop/buy-service.vue
@@ -523,7 +523,7 @@
}
.main-tab.active .tab-text {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -535,7 +535,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 3rpx;
}
@@ -570,11 +570,11 @@
}
.icon-tab.active .icon-text {
- color: #E8101E;
+ color: #FF4767;
}
.icon-tab.active .icon-img {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
.service-list {
@@ -633,7 +633,7 @@
}
.time-option.active .time-text {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -644,7 +644,7 @@
.time-discount {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
padding: 4rpx 12rpx;
background-color: #fff5f6;
border-radius: 20rpx;
@@ -685,7 +685,7 @@
}
.filter-item.active .filter-item-text {
- color: #E8101E;
+ color: #FF4767;
}
.sq-icon {
@@ -750,7 +750,7 @@
text-align: center;
line-height: 50rpx;
border-radius: 26rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
font-size: 24rpx;
color: #3d3d3d;
box-sizing: border-box;
@@ -759,9 +759,9 @@
.price-tag.active,
.sort-tag.active,
.star-tag.active {
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
- border-color: #E8101E;
+ border-color: #FF4767;
}
.price-input {
@@ -776,7 +776,7 @@
height: 52rpx;
line-height: 50rpx;
text-align: center;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
border-radius: 26rpx;
font-size: 24rpx;
color: #3d3d3d;
@@ -806,12 +806,12 @@
.reset-btn {
background-color: #ffffff;
- border: 1rpx solid #E8101E;
- color: #E8101E;
+ border: 1rpx solid #FF4767;
+ color: #FF4767;
}
.confirm-btn {
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
}
diff --git a/pages/shop/buyorder-detail.vue b/pages/shop/buyorder-detail.vue
index 3e9439d..3a4a8b3 100644
--- a/pages/shop/buyorder-detail.vue
+++ b/pages/shop/buyorder-detail.vue
@@ -1,851 +1,1044 @@
-
-
-
-
-
-
- {{orderInfo.state == 1 ? '待支付' : orderInfo.state == 2 ? '待接单' : orderInfo.state == 3 ? '待服务' : orderInfo.state == 4 ? '待完成' : orderInfo.state == 5 ? '已完成' : orderInfo.state == 6 ? '待评价' : orderInfo.state == 7 ? '已取消' : ''}}
-
-
-
-
-
-
-
-
- {{userInfo.name}}
- {{userInfo.account}}
-
- {{userInfo.dependency}}{{userInfo.address}}
-
-
-
-
-
-
- {{user_syr.name}}
-
-
+
+
+
+
+
+ {{ orderInfo.server_code }}
+
+
+
+
+
+ {{ stateItem.text }}
+ {{
+ ` (${getGroupType(orderInfo.team_buy_order_state)})`
+ }}
+ ,请上门/到店后出示服务码
+
+
+
+
+
+ {{ stateItem.text }}
+ {{
+ ` (${getGroupType(orderInfo.team_buy_order_state)})`
+ }}
+
+
+
+
+
+
+
+
+
+ {{userInfo.name}}
+ {{userInfo.account}}
+
+ {{userInfo.dependency}}{{userInfo.address}}
+
+
+
+
+
+
+ {{user_syr.name}}
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{orderInfo.server_title}}
- ¥{{orderInfo.order_money}}
-
- ×1
-
-
- 实际支付金额:
- ¥{{orderInfo.pay_money}}
-
-
-
-
-
- 订单信息
-
- 服务码
- {{orderInfo.server_code}}
-
-
- 订单编号
- {{orderInfo.number}}
-
-
- 下单时间
- {{orderInfo.add_time}}
-
-
- 开始服务时间
- {{orderInfo.server_start_time}}
-
-
- 服务完成时间
- {{orderInfo.server_end_time}}
-
-
-
-
-
-
-
-
-
- 取消订单
-
-
- 申请退款
-
-
- 立即支付
-
-
- 评价
-
-
- 再来一单
-
-
-
-
-
- 美融融plus 对拨打电话权限申请说明
- 当您需要联系商家或平台客服的时候,需要获取拨打电话权限。
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+ {{orderInfo.server_title}}
+ ¥{{orderInfo.order_money}}
+
+ ×1
+
+
+ 应付金额:
+ ¥{{orderInfo.order_money}}
+
+
+ 实际支付金额:
+ ¥{{orderInfo.pay_money}}
+
+
+
+
+
+ 订单信息
+
+ 订单编号
+ {{orderInfo.number}}
+
+
+ 下单时间
+ {{orderInfo.add_time}}
+
+
+ 服务时长
+ {{ orderInfo.server_time }}分钟
+
+
+ 支付方式
+ {{
+ orderInfo.pay_kind == 1
+ ? "账户余额"
+ : orderInfo.pay_kind == 2
+ ? "微信支付"
+ : orderInfo.pay_kind == 3
+ ? "支付宝支付"
+ : ""
+ }}
+
+
+ 支付时间
+ {{ orderInfo.pay_time }}
+
+
+ 接单时间
+ {{ orderInfo.get_time }}
+
+
+ 开始服务时间
+ {{orderInfo.server_start_time}}
+
+
+ 服务完成时间
+ {{orderInfo.server_end_time}}
+
+
+
+
+
+
+
+
+
+ 取消订单
+
+
+ 申请退款
+
+
+ 立即支付
+
+
+ 评价
+
+
+ 再次购买
+
+
+
+
+
+ 美融融plus 对拨打电话权限申请说明
+ 当您需要联系商家或平台客服的时候,需要获取拨打电话权限。
+
+
+
-
\ No newline at end of file
+ .shop-logo {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 48rpx;
+ margin-right: 18rpx;
+ }
+
+ .shop-name {
+ font-size: 24rpx;
+ font-weight: 500;
+ color: #3D3D3D;
+ }
+
+ .shop-info2 {
+ display: flex;
+ flex-flow: column wrap;
+ justify-content: flex-start;
+ align-items: flex-start;
+ margin-top: 16rpx;
+ }
+
+ .shop-time {
+ margin-bottom: 8rpx;
+ }
+
+ .shop-time,
+ .shop-address {
+ font-size: 24rpx;
+ color: #999999;
+ }
+
+ .shop-btns {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-end;
+ align-items: center;
+ }
+
+ .btn-map,
+ .btn-phone {
+ width: 64rpx;
+ height: 64rpx;
+ }
+
+ .btn-map {
+ margin-right: 48rpx;
+ }
+
+ /* 预约信息卡片 */
+ .booking-card {
+ margin: 24rpx;
+ background-color: #FFFFFF;
+ border-radius: 16rpx;
+ padding: 24rpx;
+ box-shadow: 0 4rpx 16rpx 0 rgba(210, 213, 224, 0.50);
+ }
+
+ .card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 24rpx;
+ }
+
+ .card-title {
+ font-size: 32rpx;
+ color: #333333;
+ font-weight: 500;
+ }
+
+ .update-time {
+ font-size: 28rpx;
+ color: #333333;
+ padding-right: 4rpx;
+ }
+
+ .update-change {
+ font-size: 28rpx;
+ color: #666666;
+ }
+
+ .service-item {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ align-items: center;
+ margin-bottom: 24rpx;
+ }
+
+ .service-image {
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 16rpx;
+ margin-right: 24rpx;
+ background-color: #e2e2e2;
+ }
+
+ .service-info {
+ flex: 1;
+ height: 160rpx;
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
+ align-items: flex-start;
+ margin-right: 24rpx;
+ }
+
+ .service-name {
+ font-size: 28rpx;
+ color: #333333;
+ margin-bottom: 8rpx;
+ }
+
+ .service-price {
+ font-size: 32rpx;
+ color: #FF4D6B;
+ font-weight: 500;
+ }
+
+ .service-count {
+ font-size: 28rpx;
+ color: #666666;
+ }
+
+ .service-real {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: flex-end;
+ align-items: baseline;
+ padding-top: 24rpx;
+ border-top: 1rpx solid rgba(0, 0, 0, 0.05);
+ }
+
+ .real-lable {
+ font-size: 24rpx;
+ color: #333333;
+ }
+
+ .real-price {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #FF4767;
+ }
+
+ /* 订单信息卡片 */
+ .order-card {
+ margin: 24rpx;
+ background-color: #FFFFFF;
+ border-radius: 16rpx;
+ padding: 24rpx;
+ box-shadow: 0 4rpx 16rpx 0 rgba(210, 213, 224, 0.50);
+ }
+
+ .info-item {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 16rpx;
+ }
+
+ .label {
+ font-size: 28rpx;
+ color: #999999;
+ }
+
+ .value {
+ font-size: 28rpx;
+ color: #333333;
+ }
+
+ /* 底部按钮 */
+ .bottom-buttons {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 128rpx;
+ background-color: #FFFFFF;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ justify-content: space-between;
+ box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.05);
+ padding: 0 24rpx 0 78rpx;
+ /* #ifdef H5 */
+ padding-bottom: env(safe-area-inset-bottom);
+ /* #endif */
+ z-index: 999;
+ }
+
+ .contact-button {
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .contact-text {
+ font-size: 24rpx;
+ color: #666666;
+ }
+
+ .tell-icon {
+ width: 36rpx;
+ height: 36rpx;
+ margin-right: 8rpx;
+ }
+
+ .handel-button {
+ width: 240rpx;
+ height: 64rpx;
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: center;
+ align-items: center;
+ border-radius: 32rpx;
+ }
+
+ .btn-border {
+ border: 1rpx solid #FF4767;
+ background-color: #fff;
+ box-sizing: border-box;
+ margin-left: 20rpx;
+ }
+
+ .btn-bg {
+ background-color: #FF4767;
+ }
+
+ .button-text {
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+
+ .btn-border .button-text {
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #FF4767;
+ }
+
+ /* APP适配 */
+ /* #ifdef APP-PLUS */
+ .permission.transform {
+ top: calc(var(--status-bar-height) + 88rpx + 20rpx);
+ opacity: 1;
+ visibility: visible;
+ }
+
+ .detail-page {
+ padding-bottom: 140rpx;
+ }
+
+ /* #endif */
+ /* 平台适配 */
+ /* #ifdef H5 */
+ .detail-page {
+ padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
+ }
+
+ /* #endif */
+
+ /* #ifdef MP-WEIXIN */
+ .custom-nav {
+ padding-top: calc(var(--status-bar-height) + constant(safe-area-inset-top));
+ padding-top: calc(var(--status-bar-height) + env(safe-area-inset-top));
+ }
+
+ /* #endif */
+
\ No newline at end of file
diff --git a/pages/shop/components/orderCard.vue b/pages/shop/components/orderCard.vue
index 9194278..3abeb1b 100644
--- a/pages/shop/components/orderCard.vue
+++ b/pages/shop/components/orderCard.vue
@@ -3,39 +3,33 @@
订单编号:{{ dataItem.number }}
-
- {{ stateText }}
-
-
+
+
-
-
+
+
- {{getGroupType}}
+ {{ getGroupType }}
{{ dataItem.server_title }}
- 下单时间: {{ dataItem.add_time }}
+ 下单时间:
+ {{ dataItem.add_time }}
-
- {{`团购价: `}}¥{{ dataItem.order_money }}
- {{ dataItem.line_money }}
+
+ {{ `团购价: ` }}¥{{
+ dataItem.order_money }}
+ {{ dataItem.line_money }}
@@ -61,358 +55,378 @@
\ No newline at end of file
diff --git a/pages/shop/components/orderCard2.vue b/pages/shop/components/orderCard2.vue
index 57602ea..bcd9f68 100644
--- a/pages/shop/components/orderCard2.vue
+++ b/pages/shop/components/orderCard2.vue
@@ -205,7 +205,7 @@
.stateText {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: left;
font-style: normal;
position: absolute;
@@ -255,7 +255,7 @@
.service-price {
font-weight: 500;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -291,7 +291,7 @@
letter-spacing: 2px;
text-align: left;
font-style: normal;
- background: linear-gradient(166deg, #FC5E72 0%, #E8101E 100%);
+ background: linear-gradient(166deg, #FC5E72 0%, #FF4767 100%);
border-radius: 6rpx;
padding: 4rpx 4rpx 4rpx 8rpx;
margin-right: 13rpx;
@@ -387,8 +387,8 @@
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
.order-address {
diff --git a/pages/shop/create-order.vue b/pages/shop/create-order.vue
index c900ed6..7052a2e 100644
--- a/pages/shop/create-order.vue
+++ b/pages/shop/create-order.vue
@@ -500,7 +500,7 @@ export default {
height: 28rpx;
border: 3rpx;
margin-right: 16rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
}
.service-item {
padding-top: 24rpx;
@@ -636,7 +636,7 @@ export default {
.price-total .price {
font-size: 28rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.amount-lable {
@@ -646,7 +646,7 @@ export default {
.submit-btn {
width: 492rpx;
height: 64rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 32rpx;
color: #ffffff;
font-size: 28rpx;
diff --git a/pages/shop/groupBuying/addGroupBuying.vue b/pages/shop/groupBuying/addGroupBuying.vue
index 8a6b0a1..043b1a5 100644
--- a/pages/shop/groupBuying/addGroupBuying.vue
+++ b/pages/shop/groupBuying/addGroupBuying.vue
@@ -67,7 +67,7 @@
-
+
@@ -77,7 +77,7 @@
-
+
-
+
-
+
-
+
{{info.title}}
¥{{info.server_price}} {{' '}}|
+ style="color: #FF4767;font-weight: 500;">¥{{info.server_price}} {{' '}}|
{{info.server_time}}分钟
diff --git a/pages/shop/groupBuying/list.vue b/pages/shop/groupBuying/list.vue
index 7084609..678dfad 100644
--- a/pages/shop/groupBuying/list.vue
+++ b/pages/shop/groupBuying/list.vue
@@ -62,11 +62,11 @@
:sureText="'确定'"
>
您当前操作为结束拼团活动您当前操作为结束拼团活动,根据平台规则,此操作需提交平台审核(审核通过后方可生效),请问您是否确认发起该申请?
您当前操作为结束拼团活动您当前操作为结束拼团活动,请问您是否确认此操作吗?
@@ -413,7 +413,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/shop/groupBuying/selectServe.vue b/pages/shop/groupBuying/selectServe.vue
index 2cc7816..8aca99f 100644
--- a/pages/shop/groupBuying/selectServe.vue
+++ b/pages/shop/groupBuying/selectServe.vue
@@ -89,7 +89,7 @@ export default {
&__btn {
width: 690rpx;
height: 78rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 798rpx;
display: flex;
align-items: center;
diff --git a/pages/shop/manHour/addManHour.vue b/pages/shop/manHour/addManHour.vue
index 7dbbd57..d3f5976 100644
--- a/pages/shop/manHour/addManHour.vue
+++ b/pages/shop/manHour/addManHour.vue
@@ -698,13 +698,13 @@ export default {
.btn-draft {
background-color: #ffffff;
- color: #E8101E;
- border: 2rpx solid #E8101E;
+ color: #FF4767;
+ border: 2rpx solid #FF4767;
box-sizing: border-box;
}
.btn-submit {
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
}
.form-step {
@@ -854,7 +854,7 @@ export default {
/* #endif */
.redTip {
- color: #E8101E;
+ color: #FF4767;
font-size: 24rpx;
margin-left: 10rpx;
}
diff --git a/pages/shop/manHour/buyManHour.vue b/pages/shop/manHour/buyManHour.vue
index c1107bd..e8aebc6 100644
--- a/pages/shop/manHour/buyManHour.vue
+++ b/pages/shop/manHour/buyManHour.vue
@@ -713,7 +713,7 @@ export default {
.filter__left__select__item.active {
.filter__left__select__item__title {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -819,7 +819,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 3rpx;
}
@@ -855,11 +855,11 @@ export default {
}
.icon-tab.active .icon-text {
- color: #E8101E;
+ color: #FF4767;
}
.icon-tab.active .icon-img {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
.service-list {
diff --git a/pages/shop/manHour/components/buyOrderCard.vue b/pages/shop/manHour/components/buyOrderCard.vue
index 19e4a4d..7c2df91 100644
--- a/pages/shop/manHour/components/buyOrderCard.vue
+++ b/pages/shop/manHour/components/buyOrderCard.vue
@@ -146,14 +146,14 @@
justify-content: center;
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
width: 160rpx;
height: 58rpx;
border-radius: 32rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
}
}
diff --git a/pages/shop/manHour/components/class_select.vue b/pages/shop/manHour/components/class_select.vue
index 72ec610..597c3e8 100644
--- a/pages/shop/manHour/components/class_select.vue
+++ b/pages/shop/manHour/components/class_select.vue
@@ -184,7 +184,7 @@ export default {
color: #333333;
}
.activeText {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -212,9 +212,9 @@ export default {
border: 2rpx solid transparent;
}
.secondClassItemActive {
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background: rgba(252, 67, 124, 0.1);
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -224,7 +224,7 @@ export default {
margin-top: 30rpx;
font-size: 26rpx;
.red {
- color: #E8101E;
+ color: #FF4767;
}
}
.fixBottomBtn {
@@ -241,10 +241,10 @@ export default {
.btn {
width: 100%;
height: 39rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 39rpx;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
}
}
diff --git a/pages/shop/manHour/components/manHourCard.vue b/pages/shop/manHour/components/manHourCard.vue
index d14b856..1933485 100644
--- a/pages/shop/manHour/components/manHourCard.vue
+++ b/pages/shop/manHour/components/manHourCard.vue
@@ -272,7 +272,7 @@ export default {
top: 0;
width: 160rpx;
height: 100%;
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
display: flex;
justify-content: center;
@@ -326,17 +326,17 @@ export default {
.price-symbol {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-value {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-unit {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.status-tag {
@@ -356,7 +356,7 @@ export default {
background-color: rgba(255, 0, 55, 0.2);
}
.status-tag.state2 .status-text {
- color: #E8101E;
+ color: #FF4767;
}
/* 审核中 */
.status-tag.state1 {
diff --git a/pages/shop/manHour/components/orderCard.vue b/pages/shop/manHour/components/orderCard.vue
index f130e57..a2cada2 100644
--- a/pages/shop/manHour/components/orderCard.vue
+++ b/pages/shop/manHour/components/orderCard.vue
@@ -40,6 +40,8 @@
+
+ 上门地址:{{ dataItem.user_sj.address }}
@@ -193,7 +195,7 @@
.stateText {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: left;
font-style: normal;
position: absolute;
@@ -281,7 +283,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 36rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -304,6 +306,16 @@
font-style: normal;
}
+ .order-address {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #666666;
+ line-height: 34rpx;
+ text-align: left;
+ font-style: normal;
+ margin-top: 24rpx;
+ }
+
/* 时间信息 */
.time-info {
font-weight: 400;
@@ -321,7 +333,7 @@
display: flex;
justify-content: flex-end;
gap: 30rpx;
- padding-top: 20rpx;
+ // padding-top: 20rpx;
padding-bottom: 30rpx;
}
@@ -355,7 +367,7 @@
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
\ No newline at end of file
diff --git a/pages/shop/manHour/list.vue b/pages/shop/manHour/list.vue
index 469437c..4f5a91f 100644
--- a/pages/shop/manHour/list.vue
+++ b/pages/shop/manHour/list.vue
@@ -310,7 +310,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/shop/manHour/manHourDetail.vue b/pages/shop/manHour/manHourDetail.vue
index 294a88d..b4660cd 100644
--- a/pages/shop/manHour/manHourDetail.vue
+++ b/pages/shop/manHour/manHourDetail.vue
@@ -167,7 +167,7 @@ export default {
&__price {
font-weight: 500;
font-size: 36rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 50rpx;
text-align: left;
font-style: normal;
@@ -247,10 +247,10 @@ export default {
width: 696rpx;
height: 78rpx;
border-radius: 798rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
font-weight: 400;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 39rpx;
text-align: right;
font-style: normal;
diff --git a/pages/shop/manHour/manHourOrder.vue b/pages/shop/manHour/manHourOrder.vue
index 70200f4..25c05d1 100644
--- a/pages/shop/manHour/manHourOrder.vue
+++ b/pages/shop/manHour/manHourOrder.vue
@@ -236,7 +236,7 @@ export default {
margin-top: 38rpx;
font-weight: 500;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -289,7 +289,7 @@ export default {
&__price {
font-weight: 500;
font-size: 42rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 59rpx;
font-style: normal;
}
@@ -297,7 +297,7 @@ export default {
&__right {
width: 188rpx;
height: 68rpx;
- background: linear-gradient(73deg, #fe78b3 0%, #E8101E 100%);
+ background: linear-gradient(73deg, #fe78b3 0%, #FF4767 100%);
border-radius: 798rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/pages/shop/manHour/saleList.vue b/pages/shop/manHour/saleList.vue
index 1a6741a..f7d0b45 100644
--- a/pages/shop/manHour/saleList.vue
+++ b/pages/shop/manHour/saleList.vue
@@ -57,10 +57,10 @@ export default {
text: "全部",
},
- // {
- // id: 1,
- // text: "待支付",
- // },
+ {
+ id: 1,
+ text: "待支付",
+ },
{
id: 2,
text: "待接单",
@@ -290,7 +290,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/shop/manHourDetail.vue b/pages/shop/manHourDetail.vue
index 100bdd9..5d9d04a 100644
--- a/pages/shop/manHourDetail.vue
+++ b/pages/shop/manHourDetail.vue
@@ -5,7 +5,22 @@
:backgroundColor="backgroundColor">
-
+
+
+ {{ orderInfo.server_code }}
+
+
+
+
+
+ {{ stateItem.text }}
+ ,请上门/到店后出示服务码
+
+
+
+
{{ stateItem.text }}
@@ -119,7 +134,7 @@
支付时间
@@ -396,13 +411,14 @@
})
.then((res) => {
if (this.identity == 0) {
+ const userSyr = res.data.user_syr || {}; // 避免 null 展开报错
this.orderInfo = res.data ? {
...res.data.order,
...res.data.work_hour,
- ...res.data.user_syr,
+ ...userSyr, // 有手艺人就展开,没有就是空对象
work_hour_id: res.data.work_hour.id,
order_id: res.data.order.id,
- user_sj_id: res.data.user_syr.id,
+ syr_id: userSyr.id, // 手艺人ID(无手艺人时为 undefined)
} : {};
console.log(this.orderInfo, '----------------------------------')
} else if (this.identity == 1) {
@@ -686,6 +702,69 @@
font-weight: 600;
}
+ /* 服务码状态区域 */
+ .status-section2 {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding-top: 55rpx;
+ padding-bottom: 20rpx;
+ gap: 20rpx;
+
+ .status-row {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: auto;
+ }
+
+ .status-section-image {
+ width: 27rpx;
+ margin-right: 6rpx;
+ margin-top: -4rpx;
+ }
+
+ .service-code {
+ display: flex;
+ align-items: baseline;
+ justify-content: center;
+ width: auto;
+ padding-bottom: 20rpx;
+
+ .service-code-label {
+ width: 96rpx;
+ height: 41rpx;
+ margin-left: 6rpx;
+ position: relative;
+ top: -45rpx;
+ }
+
+ .service-code-value {
+ font-family: DINPro, DINPro;
+ font-weight: bold;
+ font-size: 80rpx;
+ color: #333333;
+ line-height: 103rpx;
+ text-align: left;
+ font-style: normal;
+ }
+ }
+
+ .status-text-red {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #DC232F;
+ line-height: 37rpx;
+ text-align: left;
+ font-style: normal;
+ }
+
+ .status-text-normal {
+ color: #333333;
+ }
+ }
+
/* 预约手艺人信息卡片 */
.syr-card {
margin: 30rpx;
@@ -844,7 +923,7 @@
.real-price {
font-size: 42rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
transform: translateY(-5rpx);
.icon {
@@ -988,14 +1067,14 @@
}
.btn-border {
- border: 1rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
background-color: #fff;
box-sizing: border-box;
margin-left: 60rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
@@ -1007,7 +1086,7 @@
.btn-border .button-text {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
/* 权限提示 */
diff --git a/pages/shop/pay-order.vue b/pages/shop/pay-order.vue
index 06887d8..94a2717 100644
--- a/pages/shop/pay-order.vue
+++ b/pages/shop/pay-order.vue
@@ -330,13 +330,13 @@ export default {
.symbol {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
.value {
font-size: 40rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 700;
}
@@ -392,13 +392,13 @@ export default {
.total-amount .symbol {
font-size: 24rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.total-amount .amount {
font-size: 28rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.amount-lable {
font-size: 24rpx;
@@ -407,7 +407,7 @@ export default {
.pay-btn {
width: 492rpx;
height: 64rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 32rpx;
color: #FFFFFF;
font-size: 28rpx;
diff --git a/pages/shop/pay.vue b/pages/shop/pay.vue
index 9d76ba8..1e07185 100644
--- a/pages/shop/pay.vue
+++ b/pages/shop/pay.vue
@@ -24,7 +24,7 @@
{{ item.name }}
-
@@ -267,7 +267,7 @@
console.log("查询状态", err);
});
},
- fail: function(err) {
+ fail: function(err) {
console.log(err,'erererererer');
uni.showModal({
title: "提示",
@@ -530,13 +530,13 @@
.total-amount .symbol {
font-size: 24rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.total-amount .amount {
font-size: 28rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
}
.amount-lable {
@@ -547,7 +547,7 @@
.pay-btn {
width: 680rpx;
height: 88rpx;
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%);
+ background: linear-gradient(180deg, #F52540 0%, #FF4767 100%);
border-radius: 43rpx;
font-weight: 500;
font-size: 30rpx;
diff --git a/pages/shop/photoAlbum/addPhoto.vue b/pages/shop/photoAlbum/addPhoto.vue
index 6c36e5c..3746216 100644
--- a/pages/shop/photoAlbum/addPhoto.vue
+++ b/pages/shop/photoAlbum/addPhoto.vue
@@ -12,7 +12,7 @@
- 审核成功、线上展示中
+ 审核成功、线上展示中
@@ -220,14 +220,16 @@
// uni.navigateTo({
// url: `/pages/album/list?urls=${encodeURIComponent(JSON.stringify(urls))}`
// });
- this.videoPlay = true; // 显示播放盒子
- this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
- this.videoUrl = this.formData.url;
- this.videoContext.requestFullScreen({
- direction: 90
- });
- this.videoContext.play();
-
+ // this.videoPlay = true; // 显示播放盒子
+ // this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
+ // this.videoUrl = this.formData.url;
+ // this.videoContext.requestFullScreen({
+ // direction: 90
+ // });
+ // this.videoContext.play();
+ uni.navigateTo({
+ url: '/pages/shop/photoAlbum/videoplayer?url=' + this.formData.url
+ })
},
async submitPhoto() {
@@ -408,9 +410,9 @@
let res = null
try {
- uni.showLoading({
- title: '上传中'
- })
+ // uni.showLoading({
+ // title: '上传中'
+ // })
console.log(this.formData, '=============================');
if (this.formData.type == 1) {
res = await uploadImage.handleUpload(this.userInfo.id, 3);
@@ -421,11 +423,19 @@
console.log('上传单张图片', res)
this.formData.url = res;
} catch (err) {
- console.log(err)
- uni.showToast({
- title: '上传失败',
- icon: 'none'
- }); // 新增:上传失败提示
+ if (err.errMsg && (err.errMsg.includes('cancel')||err.errMsg.includes('取消'))) {
+ uni.showToast({
+ title: '取消上传',
+ icon: 'none'
+ });
+ } else {
+ console.error('上传失败:', err.errMsg);
+ uni.showToast({
+ title: err.errMsg || '上传失败',
+ icon: 'none'
+ }); // 新增:上传失败提示
+ }
+
} finally {
uni.hideLoading(); // 移到这里,必执行
}
@@ -523,7 +533,7 @@
.review-title-text {
font-weight: 500;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 40rpx;
text-align: left;
font-style: normal;
@@ -714,10 +724,10 @@
width: 278rpx;
height: 98rpx;
border-radius: 49rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
font-weight: 400;
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: center;
font-style: normal;
}
@@ -725,7 +735,7 @@
.container-buttons-sure {
width: 278rpx;
height: 98rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 32rpx;
@@ -737,7 +747,7 @@
.container-buttons-sure2 {
width: 710rpx;
height: 98rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 38rpx;
diff --git a/pages/shop/photoAlbum/photoManage.vue b/pages/shop/photoAlbum/photoManage.vue
index 3bf736b..6d3d7a6 100644
--- a/pages/shop/photoAlbum/photoManage.vue
+++ b/pages/shop/photoAlbum/photoManage.vue
@@ -5,7 +5,7 @@
- 商家相册
+ {{ titleList[type].title2 }}
展示位置及拍摄技巧
@@ -112,6 +112,16 @@
}
],
},
+ titleList: {
+ 1: {
+ title: "商家图片",
+ title2: "商家相册"
+ },
+ 2: {
+ title: "视频作品",
+ title2: "商家视频"
+ },
+ },
imgVideoList: {
},
@@ -136,8 +146,11 @@
methods: {
todetail() {
console.log('详情');
+ // uni.navigateTo({
+ // url: '/pages/shop/skill-detail'
+ // })
uni.navigateTo({
- url: '/pages/shop/skill-detail'
+ url: `/pages/agreement/agreement?type=${this.type==1?22:23}&title=${this.type==1?`相册配置说明`:`视频配置说明`}`
})
},
getItem(item) {
@@ -154,7 +167,7 @@
}
if (item.id == 0) {
obj.url = item.url || item.auth_url
- obj.name = item.name || item.auth_name
+ obj.name = item.name || item.name
}
if (item.type == 2) {
obj.url = obj.url + `?x-oss-process=video/snapshot,t_1000,m_fast,f_jpg,w_600,ar_auto`
@@ -176,25 +189,28 @@
// });
},
goAdd(id, item) {
- if (this.type == 1) {
- if (this.imgVideoList[id] && this.imgVideoList[id].length >= 21) {
- uni.showToast({
- title: '最多上传20张图片',
- icon: 'none',
- duration: 2000
- });
- return
- }
- } else if (this.type == 2) {
- if (this.imgVideoList[id] && this.imgVideoList[id].length >= 11) {
- uni.showToast({
- title: '最多上个10张视频',
- icon: 'none',
- duration: 2000
- });
- return
+ if (!item) {
+ if (this.type == 1) {
+ if (this.imgVideoList[id] && this.imgVideoList[id].length >= 20) {
+ uni.showToast({
+ title: '最多上传20张图片',
+ icon: 'none',
+ duration: 2000
+ });
+ return
+ }
+ } else if (this.type == 2) {
+ if (this.imgVideoList[id] && this.imgVideoList[id].length >= 10) {
+ uni.showToast({
+ title: '最多上个10张视频',
+ icon: 'none',
+ duration: 2000
+ });
+ return
+ }
}
}
+
// 1. 原有逻辑:分类id为空,拦截提示
if (!id) {
uni.showToast({
@@ -259,7 +275,7 @@
.titles-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 10rpx;
border-radius: 5rpx;
}
diff --git a/pages/shop/photoAlbum/videoList.vue b/pages/shop/photoAlbum/videoList.vue
index e2445bb..0d11f06 100644
--- a/pages/shop/photoAlbum/videoList.vue
+++ b/pages/shop/photoAlbum/videoList.vue
@@ -24,7 +24,7 @@
@click="isManage ? toggleSelect(index2) : goAdd(class_type,item2)">
+ :src="selectedItems.includes(index2) ? '/static/images/agree_y.png' : '/static/images/icons/no_icon2.png'">
@@ -47,7 +47,7 @@
v-if="imgVideoList" @click="isManage ? toggleSelect(index2) : goAdd(class_type,item2)">
+ :src="selectedItems.includes(index2) ? '/static/images/agree_y.png' : '/static/images/icons/no_icon2.png'">
@@ -171,25 +171,28 @@
},
goAdd(id, item) {
if (this.isManage) return; // 管理模式下禁止跳转
- if (this.type == 1) {
- if (this.imgVideoList.length >= 21) {
- uni.showToast({
- title: '最多上传20张图片',
- icon: 'none',
- duration: 2000
- });
- return
- }
- } else if (this.type == 2) {
- if (this.imgVideoList.length >= 11) {
- uni.showToast({
- title: '最多上10个视频',
- icon: 'none',
- duration: 2000
- });
- return
+ if(!item){
+ if (this.type == 1) {
+ if (this.imgVideoList.length >= 20) {
+ uni.showToast({
+ title: '最多上传20张图片',
+ icon: 'none',
+ duration: 2000
+ });
+ return
+ }
+ } else if (this.type == 2) {
+ if (this.imgVideoList.length >= 10) {
+ uni.showToast({
+ title: '最多上10个视频',
+ icon: 'none',
+ duration: 2000
+ });
+ return
+ }
}
}
+
if (!id) {
uni.showToast({
title: '参数异常,无法上传',
@@ -471,10 +474,10 @@
width: 278rpx;
height: 98rpx;
border-radius: 49rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
font-weight: 400;
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: center;
font-style: normal;
}
@@ -482,7 +485,7 @@
.container-buttons-sure {
width: 278rpx;
height: 98rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 32rpx;
@@ -494,7 +497,7 @@
.container-buttons-sure2 {
width: 710rpx;
height: 98rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 38rpx;
diff --git a/pages/shop/photoAlbum/videoplayer.vue b/pages/shop/photoAlbum/videoplayer.vue
new file mode 100644
index 0000000..9ae18ef
--- /dev/null
+++ b/pages/shop/photoAlbum/videoplayer.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/qualification_sj_change.vue b/pages/shop/qualification_sj_change.vue
index 96630ee..b028216 100644
--- a/pages/shop/qualification_sj_change.vue
+++ b/pages/shop/qualification_sj_change.vue
@@ -6,7 +6,7 @@
请变更您需要变更的信息
-
+
@@ -23,8 +23,11 @@
-
-
+
+
请上传营业执照原件
@@ -36,27 +39,57 @@
商户类型
-
+
证件号码
-
+
-
+
企业名称
-
+
+
+
+
+
+
+
+ 注册地区
+
+
+
+ {{ displayData.uscc_dependency || '请选择' }}
+
+
+
+
+
+
+
+ 注册详细地址
+
+
+
+ {{ displayData.uscc_address || '请选择' }}
+
+
-
@@ -73,25 +106,31 @@
身份证照片
请保证图片上的文字清晰、无遮挡、证件边角可见
-
+
-
-
+
+
请上传身份证正面(人像面)
-
+
-
-
+
+
请上传身份证反面(国徽面)
@@ -104,22 +143,24 @@
法人代表
-
+
-
+
法人联系方式
-
+
法人身份证号
-
+
@@ -128,13 +169,15 @@
-
+
长久有效
-
+
指定日期有效
@@ -148,30 +191,72 @@
开始日期
- {{formatDateForDisplay(displayData.idcard_start_date) || '请选择日期'}}
+ {{ formatDateForDisplay(displayData.idcard_start_date) || '请选择日期' }}
-
+
结束日期
-
+
- {{formatDateForDisplay(displayData.idcard_end_date) || '请选择日期'}}
+ {{ formatDateForDisplay(displayData.idcard_end_date) || '请选择日期' }}
-
-
+
+
+
+
+
+ 其他信息
+
+
+
+ 行业资质
+
+
+
+ ×
+
+
+
+ 添加照片
+
+
+ 其他资质
+
+
+
+ ×
+
+
+
+ 添加照片
+
+
+
+
+
@@ -180,7 +265,7 @@
- 您的提交已驳回
+ 您的变更申请已被驳回
驳回原因:{{ backText }}
@@ -223,12 +308,13 @@
-
+
-
+
- {{item.label}}
+ {{ item.label }}
@@ -250,16 +336,16 @@
确定
-
+
- {{year}}年
+ {{ year }}年
- {{month}}月
+ {{ month }}月
- {{day}}日
+ {{ day }}日
@@ -271,8 +357,10 @@
+
+
+
+
- 美融融plus 对储存空间/照片权限申请说明
- 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中读取相册和文件内容。
+ 美融融plus 对储存空间/照片权限申请说明
+ 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中读取相册和文件内容。
- 美融融plus 对相机拍摄权限申请说明
- 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中所需内容。
+ 美融融plus 对相机拍摄权限申请说明
+ 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中所需内容。
@@ -310,15 +438,16 @@ import uploadImage from '../../utils/uploadImage';
import permissionUtils from '../../utils/per';
import locationService from '../../utils/locationService';
import { recognizeIdCard, recognizeBusinessLicense, formatDateFromNumber, parseValidPeriod } from '../../utils/orc';
+import ChinaCitys from '../../static/data/ChinaCitys.json';
export default {
data() {
const currentDate = new Date();
const currentYear = new Date().getFullYear();
- const years = Array.from({length: 130}, (_, i) => 1970 + i);
- const months = Array.from({length: 12}, (_, i) => i + 1);
- const days = Array.from({length: 31}, (_, i) => i + 1);
-
+ const years = Array.from({ length: 130 }, (_, i) => 1970 + i);
+ const months = Array.from({ length: 12 }, (_, i) => i + 1);
+ const days = Array.from({ length: 31 }, (_, i) => i + 1);
+
return {
// 页面状态
editable: false,
@@ -331,7 +460,7 @@ export default {
buttonAreaHeight: 120,
backText: '',
hasResubmitted: false,
-
+
// 数据管理
originalData: {},
pendingData: {},
@@ -364,6 +493,14 @@ export default {
isShowStoragePer: false,
isShowCameraPer: false,
+
+ showRegionPopupFlag: false,
+ ChinaCitys: ChinaCitys,
+ regionCitys: [],
+ regionAreas: [],
+ regionValue: [0, 0, 0],
+ addressListener: null,
+ sjAddressListener: null,
}
},
computed: {
@@ -374,10 +511,15 @@ export default {
onLoad(options) {
console.log('资质信息变更页面开始加载...');
this.identity = getApp().globalData.artisanType;
-
+
this.hasResubmitted = false;
this.backText = '';
-
+
+ this.regionCitys = this.ChinaCitys[0].citys;
+ this.regionAreas = this.regionCitys[0].areas;
+
+ this.setupAddressListener();
+
this.getUserInfo().then(() => {
this.loadApplyDetails();
});
@@ -386,19 +528,18 @@ export default {
this.getButtonAreaHeight();
},
onShow() {
- // 只有在非编辑状态下才重新加载数据
+ this.checkAddressData();
if (!this.editable) {
- console.log('非编辑状态,刷新数据');
this.loadApplyDetails();
-
if (this.auditStatus !== 3) {
this.backText = '';
this.hasResubmitted = false;
}
- } else {
- console.log('编辑状态,保持当前状态不刷新');
}
},
+ onUnload() {
+ this.removeAddressListener();
+ },
methods: {
/**
* 识别营业执照
@@ -407,7 +548,7 @@ export default {
try {
this.isRecognizing = true;
this.recognizeType = 'business_license';
-
+
// 调用OCR接口
const result = await recognizeBusinessLicense(imageUrl);
console.log('营业执照识别结果:', result);
@@ -422,7 +563,7 @@ export default {
this.isRecognizing = false;
return;
}
-
+
// 填充营业执照信息
let recognizedFields = 0;
@@ -434,12 +575,12 @@ export default {
// 如果是"无"或空值,设置为空字符串
this.displayData.uscc_name = '';
}
-
+
if (result.uscc_num && result.uscc_num.trim()) {
this.displayData.uscc_num = result.uscc_num;
recognizedFields++;
}
-
+
// if (result.legal_name && result.legal_name.trim()) {
// this.displayData.legal_name = result.legal_name;
// recognizedFields++;
@@ -460,14 +601,14 @@ export default {
duration: 3000
});
}
-
+
} catch (error) {
uni.showToast({
title: error.message || '识别失败,请手动填写',
icon: 'none',
});
console.error('营业执照识别失败:', error);
-
+
} finally {
this.isRecognizing = false;
}
@@ -476,16 +617,16 @@ export default {
// 检查营业执照识别结果是否有效
checkBusinessLicenseRecognition(result) {
const requiredFields = ['uscc_num', 'uscc_name', 'legal_name', 'uscc_type'];
-
+
for (const field of requiredFields) {
if (result[field] && result[field].trim()) {
return true;
}
}
-
+
return false;
},
-
+
/**
* 识别身份证正面
*/
@@ -493,18 +634,18 @@ export default {
try {
this.isRecognizing = true;
this.recognizeType = 'idcard_front';
-
+
uni.showLoading({
title: '正在识别身份证正面...',
mask: true
});
-
+
// 调用OCR接口
const result = await recognizeIdCard(imageUrl, 1);
// 验证是否真的识别到了数据
const hasRecognizedData = this.checkIdCardFrontRecognition(result);
-
+
if (!hasRecognizedData) {
uni.hideLoading();
uni.showToast({
@@ -515,22 +656,22 @@ export default {
this.isRecognizing = false;
return;
}
-
+
// 填充身份证正面信息
if (result.name) {
this.displayData.legal_name = result.name;
}
-
+
if (result.id_number) {
this.displayData.legal_idcard_num = result.id_number;
}
-
+
uni.hideLoading();
uni.showToast({
title: '身份证正面识别成功',
icon: 'none'
});
-
+
} catch (error) {
console.error('身份证正面识别失败:', error);
uni.hideLoading();
@@ -548,7 +689,7 @@ export default {
checkIdCardFrontRecognition(result) {
return (result.name && result.name.trim()) || (result.id_number && result.id_number.trim());
},
-
+
/**
* 识别身份证反面
*/
@@ -556,18 +697,18 @@ export default {
try {
this.isRecognizing = true;
this.recognizeType = 'idcard_back';
-
+
uni.showLoading({
title: '正在识别身份证反面...',
mask: true
});
-
+
// 调用OCR接口
const result = await recognizeIdCard(imageUrl, 2);
// 验证是否真的识别到了数据
const hasRecognizedData = this.checkIdCardBackRecognition(result);
-
+
if (!hasRecognizedData) {
uni.hideLoading();
uni.showToast({
@@ -578,15 +719,15 @@ export default {
this.isRecognizing = false;
return;
}
-
+
// 解析有效期
const validPeriod = parseValidPeriod(result.start_date, result.end_date);
-
+
// 填充有效期数据
if (validPeriod.startDate) {
this.displayData.idcard_start_date = validPeriod.startDate;
}
-
+
if (validPeriod.isPermanent) {
this.displayData.legal_idcard_expiry_type = 1;
this.displayData.idcard_end_date = '长久有效';
@@ -594,20 +735,20 @@ export default {
this.displayData.legal_idcard_expiry_type = 2;
this.displayData.idcard_end_date = validPeriod.endDate;
}
-
+
// 如果是长期有效,自动选择对应的选项
if (validPeriod.isPermanent) {
this.setIdcardValidType('permanent');
} else {
this.setIdcardValidType('date');
}
-
+
uni.hideLoading();
uni.showToast({
title: '身份证反面识别成功',
icon: 'none'
});
-
+
} catch (error) {
console.error('身份证反面识别失败:', error);
uni.hideLoading();
@@ -623,8 +764,8 @@ export default {
// 检查身份证反面识别结果是否有效
checkIdCardBackRecognition(result) {
- return (result.start_date && result.start_date.trim()) ||
- (result.end_date && result.end_date.trim());
+ return (result.start_date && result.start_date.trim()) ||
+ (result.end_date && result.end_date.trim());
},
// 获取商户类型文本
@@ -637,11 +778,11 @@ export default {
getUserInfo() {
return new Promise((resolve, reject) => {
const userType = 3;
- request.post('/user/getuser', { type: userType }).then(result => {
+ request.post('/sj/user/getUser', { type: userType }).then(result => {
if (result.state === 1) {
this.userId = result.data.id;
console.log('用户ID获取成功:', this.userId);
-
+
this.populateFormDataFromUserInfo(result.data);
resolve(this.userId);
} else {
@@ -658,13 +799,20 @@ export default {
// 从用户信息中填充表单数据
populateFormDataFromUserInfo(userData) {
console.log('从用户信息填充表单数据:', userData);
-
+
// 初始化老数据
this.originalData = {
- uscc_type: userData.uscc_type ? String(userData.uscc_type) : null, // 转换为字符串
+ uscc_type: userData.uscc_type ? String(userData.uscc_type) : null,
uscc_photo: userData.uscc_photo || '',
uscc_num: userData.uscc_num || '',
uscc_name: userData.uscc_name || '',
+ uscc_dependency: userData.uscc_dependency || '',
+ uscc_address: userData.uscc_address || '',
+ uscc_province: userData.uscc_province || '',
+ uscc_city: userData.uscc_city || '',
+ uscc_area: userData.uscc_area || '',
+ longitude: userData.longitude || '',
+ latitude: userData.latitude || '',
uscc_expiry_type: userData.uscc_expiry_type || null,
uscc_expiry: userData.uscc_expiry || '',
license_start_date: '',
@@ -677,15 +825,30 @@ export default {
idcard_start_date: '',
idcard_end_date: '',
legal_idcard_positive: userData.legal_idcard_positive || '',
- legal_idcard_negative: userData.legal_idcard_negative || ''
+ legal_idcard_negative: userData.legal_idcard_negative || '',
+ qualifications_sector: [],
+ qualifications_other: []
};
- // 处理营业执照有效期显示
+ if (userData.qualifications_sector) {
+ try {
+ this.originalData.qualifications_sector = typeof userData.qualifications_sector === 'string' ? JSON.parse(userData.qualifications_sector) : userData.qualifications_sector;
+ } catch (e) {
+ this.originalData.qualifications_sector = [];
+ }
+ }
+ if (userData.qualifications_other) {
+ try {
+ this.originalData.qualifications_other = typeof userData.qualifications_other === 'string' ? JSON.parse(userData.qualifications_other) : userData.qualifications_other;
+ } catch (e) {
+ this.originalData.qualifications_other = [];
+ }
+ }
+
if (this.originalData.uscc_expiry) {
this.processLicenseExpiry(this.originalData.uscc_expiry, this.originalData);
}
- // 处理身份证有效期显示
if (this.originalData.legal_idcard_expiry) {
this.processIdcardExpiry(this.originalData.legal_idcard_expiry, this.originalData);
}
@@ -704,18 +867,18 @@ export default {
// 处理营业执照有效期
processLicenseExpiry(expiry, targetData) {
if (!expiry) return;
-
+
console.log('处理营业执照有效期:', expiry);
-
+
// 处理多种可能的分隔符
if (expiry.includes('——') || expiry.includes('--') || expiry.includes('-')) {
const separator = expiry.includes('——') ? '——' : (expiry.includes('--') ? '--' : '-');
const [startStr, endStr] = expiry.split(separator);
const startDate = startStr.trim();
const endDate = endStr.trim();
-
+
console.log('营业执照开始日期:', startDate, '结束日期:', endDate);
-
+
if (endDate === '长久' || !endDate) {
targetData.uscc_expiry_type = 1;
targetData.license_start_date = this.formatDateFromBackend(startDate);
@@ -734,18 +897,18 @@ export default {
// 处理身份证有效期
processIdcardExpiry(expiry, targetData) {
if (!expiry) return;
-
+
console.log('处理身份证有效期:', expiry);
-
+
// 处理多种可能的分隔符
if (expiry.includes('——') || expiry.includes('--') || expiry.includes('-')) {
const separator = expiry.includes('——') ? '——' : (expiry.includes('--') ? '--' : '-');
const [startStr, endStr] = expiry.split(separator);
const startDate = startStr.trim();
const endDate = endStr.trim();
-
+
console.log('身份证开始日期:', startDate, '结束日期:', endDate);
-
+
if (endDate === '长久' || !endDate) {
targetData.legal_idcard_expiry_type = 1;
targetData.idcard_start_date = this.formatDateFromBackend(startDate);
@@ -780,19 +943,19 @@ export default {
});
console.log('资质信息申请详情接口返回:', res);
-
+
if (res.code === 200) {
if (res.data) {
const detail = res.data;
console.log('找到申请记录:', detail);
-
+
const statusCheck = this.intelligentStatusCheck(detail);
-
+
if (statusCheck.isValid) {
this.applyId = detail.id;
this.auditStatus = statusCheck.status;
this.backText = statusCheck.backText;
-
+
console.log('申请记录状态:', {
auditStatus: this.auditStatus,
backText: this.backText
@@ -803,9 +966,9 @@ export default {
this.backText = '';
this.hasResubmitted = false;
}
-
+
this.updatePendingDataFromDetail(detail);
-
+
if (this.auditStatus === 2) {
this.originalData = { ...this.pendingData };
console.log('审核通过,同步originalData到pendingData');
@@ -832,10 +995,10 @@ export default {
this.backText = '';
this.applyId = null;
}
-
+
await this.refreshUserData();
this.updatePageStatus();
-
+
} catch (error) {
console.error('加载申请详情失败:', error);
this.backText = '';
@@ -847,12 +1010,19 @@ export default {
// 从申请记录详情更新 pendingData
updatePendingDataFromDetail(detail) {
console.log('从申请记录更新pendingData:', detail);
-
+
this.pendingData = {
uscc_type: detail.uscc_type ? String(detail.uscc_type) : this.originalData.uscc_type,
uscc_photo: detail.uscc_photo || this.originalData.uscc_photo,
uscc_num: detail.uscc_num || this.originalData.uscc_num,
uscc_name: detail.uscc_name || this.originalData.uscc_name,
+ uscc_dependency: detail.uscc_dependency || this.originalData.uscc_dependency,
+ uscc_address: detail.uscc_address || this.originalData.uscc_address,
+ uscc_province: detail.uscc_province || this.originalData.uscc_province,
+ uscc_city: detail.uscc_city || this.originalData.uscc_city,
+ uscc_area: detail.uscc_area || this.originalData.uscc_area,
+ longitude: detail.longitude || this.originalData.longitude || '',
+ latitude: detail.latitude || this.originalData.latitude || '',
uscc_expiry_type: detail.uscc_expiry_type || this.originalData.uscc_expiry_type,
uscc_expiry: detail.uscc_expiry || this.originalData.uscc_expiry,
license_start_date: '',
@@ -865,9 +1035,26 @@ export default {
idcard_start_date: '',
idcard_end_date: '',
legal_idcard_positive: detail.legal_idcard_positive || this.originalData.legal_idcard_positive,
- legal_idcard_negative: detail.legal_idcard_negative || this.originalData.legal_idcard_negative
+ legal_idcard_negative: detail.legal_idcard_negative || this.originalData.legal_idcard_negative,
+ qualifications_sector: this.originalData.qualifications_sector || [],
+ qualifications_other: this.originalData.qualifications_other || []
};
+ if (detail.qualifications_sector) {
+ try {
+ this.pendingData.qualifications_sector = typeof detail.qualifications_sector === 'string' ? JSON.parse(detail.qualifications_sector) : detail.qualifications_sector;
+ } catch (e) {
+ this.pendingData.qualifications_sector = this.originalData.qualifications_sector || [];
+ }
+ }
+ if (detail.qualifications_other) {
+ try {
+ this.pendingData.qualifications_other = typeof detail.qualifications_other === 'string' ? JSON.parse(detail.qualifications_other) : detail.qualifications_other;
+ } catch (e) {
+ this.pendingData.qualifications_other = this.originalData.qualifications_other || [];
+ }
+ }
+
console.log('处理前的pendingData日期字段:', {
uscc_expiry: this.pendingData.uscc_expiry,
legal_idcard_expiry: this.pendingData.legal_idcard_expiry
@@ -891,14 +1078,14 @@ export default {
try {
console.log('刷新商家最新数据...');
const userType = 3;
- const result = await request.post('/user/getuser', { type: userType });
+ const result = await request.post('/sj/user/getUser', { type: userType });
if (result.state === 1 && result.data) {
const userData = result.data;
console.log('获取到商家最新数据:', userData);
-
+
this.updateOriginalDataFromUser(userData);
-
+
// 只有在审核通过时才同步 pendingData 到 originalData
if (this.auditStatus === 2) {
this.pendingData = { ...this.originalData };
@@ -906,7 +1093,7 @@ export default {
} else {
console.log('非审核通过状态,保持pendingData不变');
}
-
+
console.log('刷新后的数据状态:', {
originalData: this.originalData,
pendingData: this.pendingData,
@@ -930,12 +1117,19 @@ export default {
// 从用户数据更新原始数据
updateOriginalDataFromUser(userData) {
console.log('从用户数据更新原始数据:', userData);
-
+
this.originalData = {
uscc_type: userData.uscc_type ? String(userData.uscc_type) : null,
uscc_photo: userData.uscc_photo || '',
uscc_num: userData.uscc_num || '',
uscc_name: userData.uscc_name || '',
+ uscc_dependency: userData.uscc_dependency || '',
+ uscc_address: userData.uscc_address || '',
+ uscc_province: userData.uscc_province || '',
+ uscc_city: userData.uscc_city || '',
+ uscc_area: userData.uscc_area || '',
+ longitude: userData.longitude || '',
+ latitude: userData.latitude || '',
uscc_expiry_type: userData.uscc_expiry_type || null,
uscc_expiry: userData.uscc_expiry || '',
license_start_date: '',
@@ -948,15 +1142,30 @@ export default {
idcard_start_date: '',
idcard_end_date: '',
legal_idcard_positive: userData.legal_idcard_positive || '',
- legal_idcard_negative: userData.legal_idcard_negative || ''
+ legal_idcard_negative: userData.legal_idcard_negative || '',
+ qualifications_sector: [],
+ qualifications_other: []
};
- // 处理营业执照有效期显示
+ if (userData.qualifications_sector) {
+ try {
+ this.originalData.qualifications_sector = typeof userData.qualifications_sector === 'string' ? JSON.parse(userData.qualifications_sector) : userData.qualifications_sector;
+ } catch (e) {
+ this.originalData.qualifications_sector = [];
+ }
+ }
+ if (userData.qualifications_other) {
+ try {
+ this.originalData.qualifications_other = typeof userData.qualifications_other === 'string' ? JSON.parse(userData.qualifications_other) : userData.qualifications_other;
+ } catch (e) {
+ this.originalData.qualifications_other = [];
+ }
+ }
+
if (this.originalData.uscc_expiry) {
this.processLicenseExpiry(this.originalData.uscc_expiry, this.originalData);
}
- // 处理身份证有效期显示
if (this.originalData.legal_idcard_expiry) {
this.processIdcardExpiry(this.originalData.legal_idcard_expiry, this.originalData);
}
@@ -976,12 +1185,12 @@ export default {
backText: ''
};
}
-
+
if (detail.apply_time) {
const applyDate = new Date(detail.apply_time);
const now = new Date();
const daysDiff = (now - applyDate) / (1000 * 60 * 60 * 24);
-
+
if (daysDiff > 7 && this.originalData.uscc_name !== detail.uscc_name) {
console.log('智能判断:申请记录已过期,忽略历史记录');
return {
@@ -991,7 +1200,7 @@ export default {
};
}
}
-
+
return {
isValid: true,
status: detail.apply_state,
@@ -1043,7 +1252,7 @@ export default {
}
this.updateNavTitle();
-
+
console.log('最终页面状态:', {
auditStatus: this.auditStatus,
backText: this.backText,
@@ -1067,7 +1276,7 @@ export default {
startChange() {
this.editable = true;
this.buttonType = 'edit';
- this.displayData = { ...this.pendingData };
+ this.displayData = { ...this.pendingData };
this.updateNavTitle();
},
@@ -1083,7 +1292,7 @@ export default {
togglePendingData() {
this.showPendingData = !this.showPendingData;
console.log('切换显示待审核数据:', this.showPendingData);
-
+
if (this.showPendingData) {
// 显示待审核数据
this.displayData = { ...this.pendingData };
@@ -1099,11 +1308,11 @@ export default {
// 提交变更
async submitChange() {
console.log('开始提交资质信息变更...');
-
+
if (!this.validateForm()) {
return;
}
-
+
try {
uni.showLoading({
title: '提交中...'
@@ -1114,7 +1323,7 @@ export default {
name: this.displayData.legal_name,
idcard: this.displayData.legal_idcard_num
});
-
+
if (checkRes.Code == '401') {
uni.hideLoading();
uni.showToast({
@@ -1123,7 +1332,7 @@ export default {
});
return;
}
-
+
if (checkRes.ResultObject?.BizCode != '1') {
uni.hideLoading();
uni.showToast({
@@ -1132,13 +1341,18 @@ export default {
});
return;
}
-
+
const submitData = {
apply_type: this.applyType,
uscc_type: this.displayData.uscc_type,
uscc_photo: this.displayData.uscc_photo,
uscc_num: this.displayData.uscc_num,
uscc_name: this.displayData.uscc_name,
+ uscc_dependency: this.displayData.uscc_dependency,
+ uscc_address: this.displayData.uscc_address,
+ uscc_province: this.displayData.uscc_province,
+ uscc_city: this.displayData.uscc_city,
+ uscc_area: this.displayData.uscc_area,
uscc_expiry_type: this.displayData.uscc_expiry_type,
uscc_expiry: this.displayData.uscc_expiry,
legal_name: this.displayData.legal_name,
@@ -1147,7 +1361,9 @@ export default {
legal_idcard_expiry_type: this.displayData.legal_idcard_expiry_type,
legal_idcard_expiry: this.displayData.legal_idcard_expiry,
legal_idcard_positive: this.displayData.legal_idcard_positive,
- legal_idcard_negative: this.displayData.legal_idcard_negative
+ legal_idcard_negative: this.displayData.legal_idcard_negative,
+ qualifications_sector: JSON.stringify(this.displayData.qualifications_sector || []),
+ qualifications_other: JSON.stringify(this.displayData.qualifications_other || [])
};
// 处理营业执照有效期
@@ -1169,17 +1385,17 @@ export default {
}
console.log('提交的数据:', submitData);
-
+
const res = await request.post('/sj/userSjAuth/apply', submitData);
-
+
uni.hideLoading();
-
+
if (res.code === 200) {
uni.showToast({
title: '提交成功',
icon: 'none'
});
-
+
// 先更新 pendingData,再设置其他状态
this.pendingData = { ...this.displayData };
console.log('提交成功,更新pendingData:', this.pendingData);
@@ -1188,21 +1404,21 @@ export default {
this.backText = '';
this.hasResubmitted = true;
this.applyId = res.data?.id || this.applyId;
-
+
console.log('申请ID:', this.applyId);
-
+
this.editable = false;
this.buttonType = 'view';
this.showAuditTip = true;
this.showPendingData = false;
this.displayData = { ...this.originalData };
-
+
this.updateNavTitle();
-
+
setTimeout(() => {
this.loadApplyDetails();
}, 1500);
-
+
} else {
uni.showToast({
title: res.msg || '提交失败',
@@ -1220,16 +1436,95 @@ export default {
},
showPermissionDialog(title, content) {
- return new Promise((resolve) => {
- uni.showModal({
- title,
- content,
- confirmText: '去开启',
- success(res) {
- resolve(res.confirm);
- }
- });
+ return new Promise((resolve) => {
+ uni.showModal({
+ title,
+ content,
+ confirmText: '去开启',
+ success(res) {
+ resolve(res.confirm);
+ }
});
+ });
+ },
+
+ showRegionPicker() {
+ this.regionCitys = this.ChinaCitys[0].citys;
+ this.regionAreas = this.regionCitys[0].areas;
+ this.showRegionPopupFlag = true;
+ },
+
+ hideRegionPopup() {
+ this.showRegionPopupFlag = false;
+ },
+
+ bindChangeRegion(e) {
+ this.regionValue = e.detail.value;
+ let index1 = e.detail.value[0] || 0;
+ let index2 = e.detail.value[1] || 0;
+ this.regionCitys = this.ChinaCitys[index1].citys;
+ this.regionAreas = this.regionCitys[index2].areas;
+ },
+
+ confirmRegionSelect() {
+ let valueArr = this.regionValue;
+ let index1 = valueArr[0] || 0;
+ let index2 = valueArr[1] || 0;
+ let index3 = valueArr[2] || 0;
+ let province = this.ChinaCitys[index1].province;
+ let city = this.regionCitys[index2].city;
+ let area = this.regionAreas[index3].area;
+ this.$set(this.displayData, 'uscc_dependency', province + '-' + city + '-' + area);
+ if (this.ChinaCitys[index1] && this.ChinaCitys[index1].code) {
+ this.$set(this.displayData, 'uscc_province', String(this.ChinaCitys[index1].code).substring(0, 6));
+ }
+ if (this.regionCitys[index2] && this.regionCitys[index2].code) {
+ this.$set(this.displayData, 'uscc_city', String(this.regionCitys[index2].code).substring(0, 6));
+ }
+ if (this.regionAreas[index3] && this.regionAreas[index3].code) {
+ this.$set(this.displayData, 'uscc_area', String(this.regionAreas[index3].code).substring(0, 6));
+ }
+ this.$set(this.displayData, 'uscc_address', '');
+ this.$set(this.displayData, 'longitude', '');
+ this.$set(this.displayData, 'latitude', '');
+ this.hideRegionPopup();
+ },
+
+ chooseMultiImage(type) {
+ const current = this.displayData[type] || [];
+ const remaining = 9 - current.length;
+ if (remaining <= 0) {
+ uni.showToast({ title: '最多上传9张图片', icon: 'none' });
+ return;
+ }
+ uni.chooseImage({
+ count: remaining,
+ sizeType: ['compressed'],
+ sourceType: ['album', 'camera'],
+ success: async (res) => {
+ if (!res.tempFilePaths || res.tempFilePaths.length === 0) return;
+ uni.showLoading({ title: '上传中...' });
+ for (const tempFilePath of res.tempFilePaths) {
+ const file = { path: tempFilePath, size: 0 };
+ try {
+ const url = await this.directUpload(file, this.userId, 3, type);
+ if (url) {
+ current.push(url);
+ }
+ } catch (e) {
+ console.error('上传失败:', e);
+ }
+ }
+ this.$set(this.displayData, type, [...current]);
+ uni.hideLoading();
+ }
+ });
+ },
+
+ removeImage(type, index) {
+ const list = [...(this.displayData[type] || [])];
+ list.splice(index, 1);
+ this.$set(this.displayData, type, list);
},
// 表单验证
@@ -1239,18 +1534,20 @@ export default {
{ field: 'uscc_type', message: '请输入商户类型' },
{ field: 'uscc_num', message: '请输入营业执照号码' },
{ field: 'uscc_name', message: '请输入企业名称' },
+ { field: 'uscc_dependency', message: '请选择注册地区' },
+ { field: 'uscc_address', message: '请输入注册详细地址' },
{ field: 'legal_idcard_positive', message: '请上传身份证正面照片' },
{ field: 'legal_idcard_negative', message: '请上传身份证反面照片' },
{ field: 'legal_name', message: '请输入法人代表' },
{ field: 'legal_phone', message: '请输入法人联系方式' },
{ field: 'legal_idcard_num', message: '请输入法人身份证号' },
- {
- condition: () => !this.displayData.legal_idcard_expiry_type,
- message: '请选择身份证有效期类型'
+ {
+ condition: () => !this.displayData.legal_idcard_expiry_type,
+ message: '请选择身份证有效期类型'
},
- {
- condition: () => !this.displayData.idcard_start_date,
- message: '请选择身份证开始日期'
+ {
+ condition: () => !this.displayData.idcard_start_date,
+ message: '请选择身份证开始日期'
},
{
condition: () => {
@@ -1260,14 +1557,14 @@ export default {
// 如果选择长久有效,则不需要结束日期
return false;
},
- message: '请选择身份证结束日期'
+ message: '请选择身份证结束日期'
},
];
for (let rule of validationRules) {
let isValid = true;
-
+
if (rule.field) {
if (!this.displayData[rule.field]) {
isValid = false;
@@ -1277,7 +1574,7 @@ export default {
isValid = false;
}
}
-
+
if (!isValid) {
uni.showToast({
title: rule.message,
@@ -1286,7 +1583,7 @@ export default {
return false;
}
}
-
+
// 验证手机号格式
if (!/^1[3-9]\d{9}$/.test(this.displayData.legal_phone)) {
uni.showToast({
@@ -1295,7 +1592,7 @@ export default {
});
return false;
}
-
+
// 验证身份证格式
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.displayData.legal_idcard_num)) {
uni.showToast({
@@ -1304,7 +1601,7 @@ export default {
});
return false;
}
-
+
return true;
},
@@ -1332,7 +1629,7 @@ export default {
}
}
},
-
+
// 设置身份证有效期类型
setIdcardValidType(type) {
if (type === 'permanent') {
@@ -1350,12 +1647,12 @@ export default {
formatDateForDisplay(dateStr) {
if (!dateStr) return '';
if (dateStr === '长久有效') return '长久有效';
-
+
if (dateStr.includes('-')) {
const [year, month, day] = dateStr.split('-');
return `${year}年${parseInt(month)}月${parseInt(day)}日`;
}
-
+
return dateStr;
},
@@ -1363,7 +1660,7 @@ export default {
formatDateForBackend(dateStr) {
if (!dateStr) return '';
if (dateStr === '长久有效') return '';
-
+
const match = dateStr.match(/(\d+)年(\d+)月(\d+)日/);
if (match) {
const year = match[1];
@@ -1371,17 +1668,17 @@ export default {
const day = match[3].padStart(2, '0');
return `${year}-${month}-${day}`;
}
-
+
return dateStr;
},
// 打开日期选择器
openDatePicker(field) {
this.currentDateField = field;
-
+
const currentDate = new Date();
let initialDate = currentDate;
-
+
if (this.displayData[field] && this.displayData[field] !== '长久有效') {
const dateStr = this.displayData[field];
const match = dateStr.match(/(\d+)年(\d+)月(\d+)日/);
@@ -1389,28 +1686,28 @@ export default {
initialDate = new Date(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]));
}
}
-
+
const yearIndex = this.years.indexOf(initialDate.getFullYear());
const monthIndex = initialDate.getMonth();
const dayIndex = initialDate.getDate() - 1;
-
+
this.dateValue = [
yearIndex >= 0 ? yearIndex : 0,
monthIndex,
dayIndex
];
-
+
this.showDatePickerFlag = true;
},
-
+
hideDatePicker() {
this.showDatePickerFlag = false;
},
-
+
bindDateChange(e) {
this.dateValue = e.detail.value;
},
-
+
confirmDate() {
const [yearIndex, monthIndex, dayIndex] = this.dateValue;
const year = this.years[yearIndex];
@@ -1420,7 +1717,7 @@ export default {
const selectedDate = new Date(year, month - 1, day);
const today = new Date();
today.setHours(0, 0, 0, 0);
-
+
if (this.currentDateField.endsWith('_start_date')) {
if (selectedDate > today) {
uni.showToast({
@@ -1429,7 +1726,7 @@ export default {
});
return;
}
-
+
const relatedEndField = this.currentDateField.replace('_start_date', '_end_date');
if (this.displayData[relatedEndField] && this.displayData[relatedEndField] !== '长久有效') {
const endDateStr = this.displayData[relatedEndField];
@@ -1445,7 +1742,7 @@ export default {
}
}
}
-
+
// 如果是身份证开始日期,自动计算20年后的结束日期
if (this.currentDateField === 'idcard_start_date') {
const endYear = year + 20;
@@ -1478,7 +1775,7 @@ export default {
}
}
}
-
+
this.displayData[this.currentDateField] = dateStr;
this.hideDatePicker();
},
@@ -1487,15 +1784,15 @@ export default {
showMerchantTypePicker() {
this.showMerchantTypePickerFlag = true;
},
-
+
hideMerchantTypePicker() {
this.showMerchantTypePickerFlag = false;
},
-
+
selectMerchantType(item) {
this.displayData.uscc_type = item.value;
},
-
+
confirmMerchantType() {
this.hideMerchantTypePicker();
},
@@ -1516,7 +1813,7 @@ export default {
image: 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/24859872-da37-4beb-8e33-7743813bb5a1'
}
};
-
+
if (tipConfig[field]) {
this.tipTitle = tipConfig[field].title;
this.tipImage = tipConfig[field].image;
@@ -1528,6 +1825,163 @@ export default {
this.showTipPopupFlag = false;
},
+ buildRegionTextForSearch() {
+ const dependency = String(this.displayData.uscc_dependency || '').trim();
+ if (!dependency) return '';
+ const parts = dependency.split('-');
+ const province = parts[0] || '';
+ const city = parts[1] || '';
+ const district = parts[2] || '';
+ let regionText = '';
+ if (province) regionText += province;
+ if (city && city !== province) regionText += city;
+ if (district) regionText += district;
+ return regionText;
+ },
+
+ getAddressValueForSearch() {
+ const rawAddress = String(this.displayData.uscc_address || '').trim();
+ if (!rawAddress) return '';
+ const dependencyText = String(this.displayData.uscc_dependency || '').trim();
+ const regionText = this.buildRegionTextForSearch();
+ let detail = rawAddress;
+ if (regionText && detail.indexOf(regionText) === 0) {
+ detail = detail.slice(regionText.length).trim();
+ } else if (dependencyText && detail.indexOf(dependencyText) === 0) {
+ detail = detail.slice(dependencyText.length).trim();
+ }
+ detail = detail.replace(/^[\s,-]+/, '').trim();
+ return detail || rawAddress;
+ },
+
+ getAddressInfo() {
+ const dependency = String(this.displayData.uscc_dependency || '').trim();
+ const dependencyCode = String(this.displayData.uscc_area || '').trim();
+ const address = this.getAddressValueForSearch();
+ const longitude = String(this.displayData.longitude || '').trim();
+ const latitude = String(this.displayData.latitude || '').trim();
+
+ const hasDependency = !!dependency;
+ const hasAddress = !!address;
+ const hasLocation = !!(longitude && latitude);
+
+ let params = 'source=sj_change';
+
+ if (hasDependency) {
+ params += `&dependency=${encodeURIComponent(dependency)}`;
+ if (dependencyCode) {
+ params += `&dependency_code=${dependencyCode}`;
+ }
+ }
+ if (hasAddress) {
+ params += `&address=${encodeURIComponent(address)}`;
+ }
+ if (hasLocation) {
+ params += `&longitude=${longitude}&latitude=${latitude}`;
+ }
+ if (!hasDependency && !hasAddress && !hasLocation) {
+ params += '&init_current_location=1&silent_locate=1';
+ }
+
+ uni.navigateTo({
+ url: `/pages/address/search?${params}`
+ });
+ },
+
+ setupAddressListener() {
+ this.addressListener = (addressData) => {
+ this.handleAddressSelected(addressData);
+ };
+ this.sjAddressListener = (addressData) => {
+ this.handleAddressSelected(addressData);
+ };
+ uni.$on('address-selected', this.addressListener);
+ uni.$on('address-selected-for-sj', this.sjAddressListener);
+ },
+
+ removeAddressListener() {
+ if (this.addressListener) {
+ uni.$off('address-selected', this.addressListener);
+ this.addressListener = null;
+ }
+ if (this.sjAddressListener) {
+ uni.$off('address-selected-for-sj', this.sjAddressListener);
+ this.sjAddressListener = null;
+ }
+ },
+
+ checkAddressData() {
+ try {
+ const storedAddress = uni.getStorageSync('sj_selected_address');
+ if (storedAddress) {
+ this.handleAddressSelected(storedAddress);
+ uni.removeStorageSync('sj_selected_address');
+ return;
+ }
+ } catch (e) { }
+
+ if (getApp().globalData && getApp().globalData.selectedAddress) {
+ this.handleAddressSelected(getApp().globalData.selectedAddress);
+ delete getApp().globalData.selectedAddress;
+ }
+
+ try {
+ const selectedAddress = uni.getStorageSync('selectedAddress');
+ if (selectedAddress) {
+ this.handleAddressSelected(selectedAddress);
+ uni.removeStorageSync('selectedAddress');
+ }
+ } catch (e) { }
+ },
+
+ handleAddressSelected(addressData) {
+ if (!addressData) return;
+
+ let detailAddress = '';
+ if (addressData.address) {
+ detailAddress = String(addressData.address).trim();
+ } else if (addressData.name) {
+ detailAddress = String(addressData.name).trim();
+ const regionParts = [];
+ if (addressData.pname) regionParts.push(addressData.pname);
+ if (addressData.cityname && addressData.cityname !== addressData.pname) regionParts.push(addressData.cityname);
+ if (addressData.adname) regionParts.push(addressData.adname);
+ const regionText = regionParts.join('');
+ if (regionText && detailAddress.indexOf(regionText) === 0) {
+ detailAddress = detailAddress.slice(regionText.length).trim();
+ }
+ detailAddress = detailAddress.replace(/^[\s,-]+/, '').trim();
+ }
+
+ this.$set(this.displayData, 'uscc_address', detailAddress);
+
+ if (addressData.location) {
+ const [longitude, latitude] = String(addressData.location).split(',');
+ this.$set(this.displayData, 'longitude', longitude || '');
+ this.$set(this.displayData, 'latitude', latitude || '');
+ }
+
+ if (addressData.pname || addressData.cityname || addressData.adname) {
+ const locationParts = [];
+ if (addressData.pname) locationParts.push(addressData.pname);
+ if (addressData.cityname) locationParts.push(addressData.cityname);
+ if (addressData.adname) locationParts.push(addressData.adname);
+ this.$set(this.displayData, 'uscc_dependency', locationParts.join('-'));
+ }
+
+ if (addressData.provinceCode) {
+ this.$set(this.displayData, 'uscc_province', String(addressData.provinceCode).substring(0, 6));
+ }
+ if (addressData.cityCode) {
+ this.$set(this.displayData, 'uscc_city', String(addressData.cityCode).substring(0, 6));
+ }
+ if (addressData.districtCode) {
+ this.$set(this.displayData, 'uscc_area', String(addressData.districtCode).substring(0, 6));
+ }
+
+ this.$forceUpdate();
+ },
+
// 图片上传方法
async chooseImage(type) {
if (!this.editable) return;
@@ -1626,12 +2080,12 @@ export default {
console.log('_openCamera - 开始上传图片,字段类型:', type, '用户ID:', this.userId);
const result = await this.directUpload(file, this.userId, 3, type);
-
+
uni.hideLoading();
if (result) {
this.displayData[type] = result;
-
+
// 上传成功后自动识别
if (type === 'uscc_photo') {
await this.recognizeBusinessLicense(result);
@@ -1644,7 +2098,7 @@ export default {
} catch (err) {
uni.hideLoading();
console.log('上传图片错误:', err);
-
+
if (!err.errMsg || !err.errMsg.includes('cancel')) {
uni.showToast({
title: '上传失败,请重试',
@@ -1661,7 +2115,7 @@ export default {
let artisan = type == 1 ? 'yh' : type == 2 ? 'syr' : type == 3 ? 'sj' : '';
console.log('directUpload - artisan类型:', artisan, '原始type:', type);
-
+
let fileExtension = 'jpg';
if (file.path.includes('.')) {
let parts = file.path.split('.');
@@ -1670,15 +2124,15 @@ export default {
fileExtension = ext;
}
}
-
+
// 添加时间戳确保文件名唯一
const timestamp = Date.now();
const random = Math.floor(Math.random() * 10000);
let name = `${userId}_${artisan}_${fieldName}_${timestamp}_${random}.${fileExtension}`;
console.log('唯一文件名(包含时间戳):', name);
- const ossConfig = await request.post('/user/getalioss', {type: type, kind: 1});
-
+ const ossConfig = await request.post('/user/getalioss', { type: type, kind: 1 });
+
return await new Promise((resolve, reject) => {
uni.uploadFile({
url: ossConfig.host,
@@ -1703,7 +2157,7 @@ export default {
fail: reject
});
});
-
+
} catch (error) {
console.error('直接上传失败:', error);
throw error;
@@ -1795,7 +2249,7 @@ export default {
.title-bar {
width: 6rpx;
height: 30rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
margin-right: 7rpx;
border-radius: 5rpx;
}
@@ -1948,7 +2402,7 @@ export default {
width: 60rpx;
height: 60rpx;
border: 4rpx solid #fff;
- border-top: 4rpx solid #E8101E;
+ border-top: 4rpx solid #FF4767;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 16rpx;
@@ -1960,8 +2414,13 @@ export default {
}
@keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
}
.picker-content {
@@ -2049,8 +2508,8 @@ export default {
}
.radio.checked {
- background-color: #E8101E;
- border-color: #E8101E;
+ background-color: #FF4767;
+ border-color: #FF4767;
}
.radio-icon-image {
@@ -2149,8 +2608,10 @@ export default {
margin-top: 20rpx;
}
-.change-info-btn, .view-change-btn, .resubmit-btn {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+.change-info-btn,
+.view-change-btn,
+.resubmit-btn {
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
}
/* 双按钮行样式 */
@@ -2171,7 +2632,7 @@ export default {
}
.submit-btn {
- background: linear-gradient(180deg, #F52540 0%, #E8101E 100%, #E8101E 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 43rpx;
padding: 0 15rpx;
}
@@ -2260,24 +2721,42 @@ export default {
.popup-footer {
margin-top: 32rpx;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 28rpx;
}
.popup-btn {
+ width: 280rpx;
height: 88rpx;
border-radius: 44rpx;
display: flex;
align-items: center;
justify-content: center;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
}
-.popup-btn .btn-text {
+.popup-btn.confirm {
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
+}
+
+.popup-btn.cancel {
+ border: 2rpx solid #FF4767;
+}
+
+.popup-btn.confirm .btn-text {
font-size: 32rpx;
font-weight: 500;
color: #FFFFFF;
}
-.cancel-text, .confirm-text {
+.popup-btn.cancel .btn-text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #FF4767;
+}
+
+.cancel-text,
+.confirm-text {
font-size: 32rpx;
padding: 16rpx;
}
@@ -2287,7 +2766,7 @@ export default {
}
.confirm-text {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -2392,13 +2871,13 @@ export default {
}
.tip-btn.cancel {
- border: #E8101E 2rpx solid;
+ border: #FF4767 2rpx solid;
background-color: transparent;
- color: #e8101e;
+ color: #FF4767;
}
.tip-btn.confirm {
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
color: #FFFFFF;
}
@@ -2407,8 +2886,83 @@ export default {
}
.permission.transform {
- top: calc(var(--status-bar-height) + 88rpx + 20rpx);
- opacity: 1;
- visibility: visible;
+ top: calc(var(--status-bar-height) + 88rpx + 20rpx);
+ opacity: 1;
+ visibility: visible;
+}
+
+.image-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 16rpx;
+ margin-top: 16rpx;
+}
+
+.image-item {
+ position: relative;
+ width: 200rpx;
+ height: 200rpx;
+}
+
+.qualification-image {
+ width: 200rpx;
+ height: 200rpx;
+ border-radius: 12rpx;
+}
+
+.image-delete {
+ position: absolute;
+ top: -10rpx;
+ right: -10rpx;
+ width: 36rpx;
+ height: 36rpx;
+ background: #FF4767;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #FFFFFF;
+ font-size: 28rpx;
+}
+
+.image-add {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ border: 2rpx dashed #DDDDDD;
+ width: 214rpx;
+ height: 214rpx;
+ background: #F5F5F5;
+ border-radius: 20rpx;
+}
+
+.upload-icon-small {
+ width: 48rpx;
+ height: 48rpx;
+ margin-bottom: 8rpx;
+}
+
+.add-text {
+ font-size: 22rpx;
+ color: #999999;
+}
+
+.region-body {
+ margin-top: 20rpx;
+}
+
+.region-body .picker-scroll {
+ height: 400rpx;
+}
+
+.form-item-image-box {
+ display: flex;
+ flex-direction: column;
+ padding: 24rpx;
+}
+
+.form-item-image-box .label {
+ margin-bottom: 16rpx;
}
\ No newline at end of file
diff --git a/pages/shop/service-detail.nvue b/pages/shop/service-detail.nvue
index c92093e..17e7151 100644
--- a/pages/shop/service-detail.nvue
+++ b/pages/shop/service-detail.nvue
@@ -527,14 +527,14 @@
.price-symbol {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
margin-right: 2rpx;
}
.price-value {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -655,7 +655,7 @@
.look-btn {
width: 130rpx;
height: 56rpx;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
display: flex;
flex-flow: row nowrap;
justify-content: center;
@@ -665,7 +665,7 @@
.look-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
}
/* 评论区域 */
@@ -734,7 +734,7 @@
font-size: 16rpx;
padding: 0 8rpx;
border-radius: 12rpx;
- color: #E8101E;
+ color: #FF4767;
background-color: rgba(255, 148, 180, 0.50);
margin-right: 8rpx;
}
@@ -852,7 +852,7 @@
.submit-btn {
width: 410rpx;
height: 64rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 32rpx;
color: #FFFFFF;
font-size: 28rpx;
diff --git a/pages/shop/service-skills.vue b/pages/shop/service-skills.vue
index 8b49c83..2075f04 100644
--- a/pages/shop/service-skills.vue
+++ b/pages/shop/service-skills.vue
@@ -1,820 +1,956 @@
-
-
-
+
+
+
-
-
-
-
-
- 请选择服务技能
+
+
+
+
+
+ 请选择服务技能
-
-
-
-
-
-
-
-
-
- {{ skill.title }}
-
-
+
+
+
+
+
+
+
+
+
+ {{ skill.title }}
+
+
-
-
-
-
-
-
-
-
-
- {{ skill.title }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ skill.title }}
+
+
+
-
-
-
-
- 您的提交已驳回
- 驳回原因:{{ backText }}
-
-
-
- 您的提交变更正在审核中...
-
+
+
+ 专业经验:
+
+
+ {{ displayExperienceText || '请选择' }}
+
+
+
+
+
+
-
-
- 去变更信息
-
+
+
+
+
+ 您的提交已驳回
+ 驳回原因:{{ backText }}
+
+
+
+ 您的提交变更正在审核中...
+
-
-
-
- 取消
-
-
- 提交
-
-
+
+
+ 去变更信息
+
+
+
+
+
+ 取消
+
+
+ 提交
+
+
-
-
- {{ showPendingSkills ? '返回' : '查看我的变更' }}
-
-
-
+
+
+ {{ showPendingSkills ? '返回' : '查看我的变更' }}
+
+
+
\ No newline at end of file
+
diff --git a/pages/shop/servicesyr-home.nvue b/pages/shop/servicesyr-home.nvue
index 7dd7841..a5aa9df 100644
--- a/pages/shop/servicesyr-home.nvue
+++ b/pages/shop/servicesyr-home.nvue
@@ -427,7 +427,7 @@ export default {
}
.tab-item.active .tab-lable {
- color: #E8101E;
+ color: #FF4767;
}
.tab-line {
width: 32rpx;
@@ -437,7 +437,7 @@ export default {
}
.tab-item.active .tab-line {
- background: #E8101E;
+ background: #FF4767;
}
.info-content {
@@ -455,7 +455,7 @@ export default {
.check-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 12rpx;
}
diff --git a/pages/shop/set.vue b/pages/shop/set.vue
index 79214c1..98539f4 100644
--- a/pages/shop/set.vue
+++ b/pages/shop/set.vue
@@ -139,7 +139,7 @@ page {
font-weight: 500;
&.btn_change_yes {
box-sizing: border-box;
- background: #e8101e;
+ background: #FF4767;
color: #ffffff;
text-align: left;
padding-left: 15rpx;
diff --git a/pages/shop/sj-info-change.vue b/pages/shop/sj-info-change.vue
index b4e0bfd..0bb9192 100644
--- a/pages/shop/sj-info-change.vue
+++ b/pages/shop/sj-info-change.vue
@@ -1,1725 +1,1701 @@
-
-
-
-
-
- 请变更您需要变更的信息
-
+
+
+
+
+
+ 请变更您需要变更的信息
+
-
-
-
-
-
- 门店信息
-
+
+
+
+
+
+ 门店信息
+
-
-
-
- 店铺logo
-
-
-
-
-
-
-
-
-
+
+
+
+ 店铺logo
+
+
+
+
+
+
+
+
+
-
-
-
- 店铺名称
-
-
-
-
+
+
+
+ 店铺名称
+
+
+
+
-
-
- 门店所在地:
-
-
- {{displayData.dependency || '请选择'}}
-
-
-
-
+
+
+ 门店所在地:
+
+
+ {{displayData.dependency || '请选择'}}
+
+
+
+
-
-
- 门店详细地址:
-
-
- {{displayData.address || '请选择'}}
-
-
-
-
+
+
+ 门店详细地址:
+
+
+ {{displayData.address || '请选择'}}
+
+
+
+
+
-
-
-
- 其他信息
-
+
+
+
+
+ 您的提交已驳回
+ 驳回原因:{{ backText }}
+
+
+
+ 您的提交变更正在审核中...
+
-
-
- 专业经验:
-
-
- {{displayData.experienceText || '请选择'}}
-
-
-
-
-
+
+
+ 变更信息
+
-
-
-
-
- 您的提交已驳回
- 驳回原因:{{ backText }}
-
-
-
- 您的提交变更正在审核中...
-
+
+
+
+ 取消
+
+
+ 提交
+
+
-
-
- 变更信息
-
+
+
+ {{ showPendingData ? '返回' : '查看我的变更' }}
+
-
-
-
- 取消
-
-
- 提交
-
-
+
+
+ 重新提交
+
+
-
-
- {{ showPendingData ? '返回' : '查看我的变更' }}
-
+
+
-
-
- 重新提交
-
-
+
+
-
-
-
-
-
-
-
-
- 美融融plus 对储存空间/照片权限申请说明
- 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中读取相册和文件内容。
-
-
-
- 美融融plus 对相机拍摄权限申请说明
- 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中所需内容。
-
-
-
- 美融融plus 对精确定位权限申请说明
- 便于您使用该功能获取您附近的手艺人以及店铺下的服务内容。
-
-
+
+
+ 美融融plus 对储存空间/照片权限申请说明
+ 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中读取相册和文件内容。
+
+
+
+ 美融融plus 对相机拍摄权限申请说明
+ 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中所需内容。
+
+
+
+ 美融融plus 对精确定位权限申请说明
+ 便于您使用该功能获取您附近的手艺人以及店铺下的服务内容。
+
+
-
\ No newline at end of file
+
diff --git a/pages/shop/staff/addStaff.vue b/pages/shop/staff/addStaff.vue
index 4aa767b..140607d 100644
--- a/pages/shop/staff/addStaff.vue
+++ b/pages/shop/staff/addStaff.vue
@@ -1,7 +1,7 @@
-
+
@@ -9,17 +9,17 @@
-
+
-
+
- {{ sryDetail.name }}
+ {{ sryDisplayName }}
进入详情
@@ -27,7 +27,7 @@
-
+
@@ -36,7 +36,7 @@
服务项目
-
+
请选服务项目
@@ -58,7 +58,7 @@
温馨提示:
- 门店商家主动邀请入驻的
+ 门店商家主动邀请入驻的
合作型服务从业者,需线下达成合作协议后,邀请员工入驻成为挂靠手艺人后,再进行添加操作。
@@ -68,419 +68,426 @@
门店商家主动邀请入驻的合作型服务从业者,需线下达成合作协议后,
- 员工入驻成为门店手艺人后(搜索美融融手艺人)
+ 员工入驻成为门店手艺人后(搜索美融融手艺人)
,再进行添加操作。
-
\ No newline at end of file
+::v-deep .navbar-content .title {
+ margin-left: 20rpx !important;
+}
+
diff --git a/pages/shop/staff/components/orderCard.vue b/pages/shop/staff/components/orderCard.vue
index bf5c4b8..0e03f0b 100644
--- a/pages/shop/staff/components/orderCard.vue
+++ b/pages/shop/staff/components/orderCard.vue
@@ -176,7 +176,7 @@
.stateText {
font-size: 28rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 39rpx;
}
@@ -212,7 +212,7 @@
.service-price {
font-weight: 500;
font-size: 24rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -240,7 +240,7 @@
letter-spacing: 2px;
text-align: left;
font-style: normal;
- background: linear-gradient(166deg, #fc5e72 0%, #e8101e 100%);
+ background: linear-gradient(166deg, #fc5e72 0%, #FF4767 100%);
border-radius: 6rpx;
padding: 4rpx 4rpx 4rpx 8rpx;
margin-right: 13rpx;
@@ -298,7 +298,7 @@
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #e8101e;
- color: #e8101e;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
\ No newline at end of file
diff --git a/pages/shop/staff/components/search-box.vue b/pages/shop/staff/components/search-box.vue
index 0e93444..1554e91 100644
--- a/pages/shop/staff/components/search-box.vue
+++ b/pages/shop/staff/components/search-box.vue
@@ -44,7 +44,7 @@
},
bgClor: {
type: String,
- default: "linear-gradient(134deg, #f52540 0%, #e8101e 100%)",
+ default: "linear-gradient(134deg, #f52540 0%, #FF4767 100%)",
},
showAdd: {
type: Boolean,
@@ -123,7 +123,7 @@
justify-content: center;
align-items: center;
position: relative;
- background: linear-gradient(134deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(134deg, #f52540 0%, #FF4767 100%);
transform: translateY(0rpx);
}
@@ -195,7 +195,7 @@
display: flex;
justify-content: center;
align-items: center;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
background-size: cover;
color: #fff;
font-size: 26rpx;
diff --git a/pages/shop/staff/detail.vue b/pages/shop/staff/detail.vue
index c878ed9..c3f38a1 100644
--- a/pages/shop/staff/detail.vue
+++ b/pages/shop/staff/detail.vue
@@ -486,7 +486,7 @@
height: 52rpx;
line-height: 52rpx;
border-radius: 26rpx;
- background-color: #e8101e;
+ background-color: #FF4767;
display: flex;
flex-flow: row nowrap;
justify-content: center;
@@ -552,7 +552,7 @@
// 选中态样式
&.active {
- color: #e8101e; // 红色文字(匹配设计)
+ color: #FF4767; // 红色文字(匹配设计)
&::after {
content: "";
@@ -562,7 +562,7 @@
transform: translateX(-50%);
width: 28rpx;
height: 6rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 3rpx;
}
}
@@ -597,7 +597,7 @@
// 选中态样式
&.active {
- color: #e8101e;
+ color: #FF4767;
background-color: #fee5e7; // 深粉色(更贴近设计的选中色)
}
}
@@ -618,7 +618,7 @@
margin: 20rpx auto;
width: 710rpx;
height: 98rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 38rpx;
diff --git a/pages/shop/staff/distribution-service.vue b/pages/shop/staff/distribution-service.vue
index 034b965..4e56cf1 100644
--- a/pages/shop/staff/distribution-service.vue
+++ b/pages/shop/staff/distribution-service.vue
@@ -1,7 +1,8 @@
+ backgroundColor="linear-gradient( 134deg, #F52540 0%, #FF4767 100%)" titleColor="#fff"
+ borderBottom="none">
@@ -21,9 +22,9 @@
{{ item.title }}
- ¥
- {{ item.server_price }}
+ ¥
+ {{
+ item.server_price }}
@@ -43,156 +44,156 @@
\ No newline at end of file
diff --git a/pages/shop/staff/manage.vue b/pages/shop/staff/manage.vue
index 09037aa..419eab0 100644
--- a/pages/shop/staff/manage.vue
+++ b/pages/shop/staff/manage.vue
@@ -1,11 +1,11 @@
-
+
@@ -20,20 +20,22 @@
:listScrollHeight="`calc(100vh - ${statusBarHeight + 350}rpx)`">
-
+
- {{ typName(item.state) }}
+ {{
+ typName(item.state) }}
{{ item.syr.name }}
- 接单
+ :class="{ disswitch: item.sj_state != 1 }" v-if="item.state == 1">
+ 接单
- 不接单
+ 不接单
绑定时间: {{ item.bind_time }}
@@ -75,428 +77,430 @@
\ No newline at end of file
diff --git a/pages/shop/staff/record.vue b/pages/shop/staff/record.vue
index 7465cf5..71b5c1f 100644
--- a/pages/shop/staff/record.vue
+++ b/pages/shop/staff/record.vue
@@ -160,7 +160,7 @@
}
.tab-item.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -172,7 +172,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
@@ -192,7 +192,7 @@
.stateText {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: left;
font-style: normal;
position: absolute;
@@ -269,7 +269,7 @@
.reason-label {
font-weight: 400;
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 33rpx;
text-align: left;
font-style: normal;
diff --git a/pages/shop/staff/selectSyr.vue b/pages/shop/staff/selectSyr.vue
index b4b2ca3..0f5e2db 100644
--- a/pages/shop/staff/selectSyr.vue
+++ b/pages/shop/staff/selectSyr.vue
@@ -1,7 +1,7 @@
@@ -205,7 +205,7 @@
/* 预先设置透明边框,防止切换时布局跳动 */
&.active {
- color: #e8101e;
+ color: #FF4767;
font-weight: 500;
position: relative;
@@ -219,7 +219,7 @@
/* 激活时显示红色边框 */
width: 34rpx;
height: 6rpx;
- background: linear-gradient(306deg, #e8101e 0%, #fc563b 100%);
+ background: linear-gradient(306deg, #FF4767 0%, #fc563b 100%);
border-radius: 3rpx;
}
}
@@ -303,7 +303,7 @@
margin: 0 20rpx;
width: 710rpx;
height: 98rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 49rpx;
font-weight: 400;
font-size: 38rpx;
diff --git a/pages/shop/staff/serviceList.vue b/pages/shop/staff/serviceList.vue
index 2b55c91..63cb10b 100644
--- a/pages/shop/staff/serviceList.vue
+++ b/pages/shop/staff/serviceList.vue
@@ -1,9 +1,9 @@
-
+
@@ -15,9 +15,9 @@
{{ item.title }}
- ¥
+ ¥
{{ item.server_price }}
+ style="color: #FF4767; font-size: 28rpx">{{ item.server_price }}
{{ item.server_time }}分钟
@@ -142,6 +142,7 @@
background-color: #fff;
margin: 20rpx 20rpx 26rpx 20rpx;
border-radius: 10rpx;
+ padding-bottom: 150rpx;
.service-item {
padding-top: 20rpx;
@@ -218,7 +219,7 @@
width: 670rpx;
height: 86rpx;
border-radius: 100rpx;
- background: #e8101e;
+ background: #FF4767;
font-weight: 400;
font-size: 34rpx;
color: #ffffff;
diff --git a/pages/shop/staff/staffDetail.vue b/pages/shop/staff/staffDetail.vue
index 857ede7..6e77b00 100644
--- a/pages/shop/staff/staffDetail.vue
+++ b/pages/shop/staff/staffDetail.vue
@@ -165,7 +165,7 @@
border: 2rpx solid rgba(232, 16, 30, 0.28);
font-weight: 400;
font-size: 24rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 32rpx;
text-align: right;
font-style: normal;
diff --git a/pages/shop/staff/unbundleList.vue b/pages/shop/staff/unbundleList.vue
index 1c49b87..9a015ad 100644
--- a/pages/shop/staff/unbundleList.vue
+++ b/pages/shop/staff/unbundleList.vue
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
-
-
- {{ stateItem.text }}
- {{
- ` (${getGroupType(orderInfo.team_buy_order_state)})`
- }}
-
-
-
-
-
-
-
-
-
-
- 顾客信息
-
-
-
- {{ reservation_address_arr.name }}
- {{
- reservation_address_arr.call_phone
- }}
-
-
-
- 联系客户
-
-
-
-
- 上门地址:{{ reservation_address_arr.server_address
- }}{{ reservation_address_arr.house_number }}
-
-
-
-
-
-
-
-
-
-
-
- 服务时段
-
- 预约开始时间: {{ formatDateAndAddMinutes(orderInfo.reservation_time).original }}
-
-
- 预约结束时间: {{ formatDateAndAddMinutes(orderInfo.reservation_time,orderInfo.server_time).afterAddingMinutes }}
-
-
-
-
-
- 预约信息
-
-
-
- {{ orderInfo.server_title }}
- ×1
-
-
-
- 团购价:¥{{
- orderInfo.order_money
- }}
-
- ¥
- {{ orderInfo.order_money }}
-
-
-
-
-
- 服务售价
-
-
- ¥{{orderInfo.line_money}}
- ¥{{orderInfo.cost_money}}
-
-
-
-
-
- 用户实付
- ¥{{orderInfo.pay_money}}
-
-
-
-
- 平台补贴
- ¥{{orderInfo.butie_zonge}}
-
-
-
- 商家结算基数
-
- ¥
- {{ orderInfo.jiesuan_jine_yiju?orderInfo.jiesuan_jine_yiju:0 }}
-
-
-
-
-
-
-
-
-
-
-
- 订单信息
-
- 订单编号
- {{orderInfo.number}}
-
-
- 到家时间
- {{orderInfo.reservation_time}}
-
-
- 下单时间
- {{orderInfo.add_time}}
-
-
- 服务时长
- {{orderInfo.server_time}}分钟
-
-
-
- 支付方式
- {{orderInfo.pay_kind == 1 ? '账户余额' : orderInfo.pay_kind == 2 ? '微信支付' : orderInfo.pay_kind == 3 ? '支付宝支付' : ''}}
-
-
- 支付时间
- {{orderInfo.pay_time}}
-
-
- 接单时间
- {{ orderInfo.get_time }}
-
-
-
- 开始服务时间
- {{ orderInfo.server_start_time }}
-
-
-
- 完成服务时间
- {{ orderInfo.server_end_time }}
-
-
-
-
-
- 团购活动
-
- 活动编号
- {{orderInfo.team_buy_number}}
-
-
- 活动名称
- {{orderInfo.team_buy_title}}
-
-
- 团单编号
- {{orderInfo.team_buy_order_number}}
-
-
-
- 优惠券信息
-
-
- 优惠券
- {{orderInfo.coupon_info.title}}
-
-
- 券码
- {{orderInfo.coupon_info.code_num}}
-
-
- 优惠金额
- {{orderInfo.coupon_info.reduce_money}}元
-
-
-
-
-
-
-
-
-
-
- 取消订单
-
-
- 开始服务
-
-
- 服务完成
-
-
-
-
-
-
-
- 美融融plus 对拨打电话权限申请说明
- 当您需要联系商家或平台客服的时候,需要获取拨打电话权限。
-
-
-
-
- 美融融plus 对位置权限申请说明
- 当您需要查看商家位置或打开地图时,需要获取您的位置权限。
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/shop/userorders.vue b/pages/shop/userorders.vue
index aff94d4..f30cdd0 100644
--- a/pages/shop/userorders.vue
+++ b/pages/shop/userorders.vue
@@ -256,7 +256,7 @@
console.log(res);
if (res.state == 1 || res.code == 200) {
uni.showToast({
- title: res.msg,
+ title: "开始服务",
icon: "none",
});
this.$refs.groupRef.manualRefresh(this.listQuery);
@@ -272,10 +272,10 @@
// 去订单详情
goOrderDetail(item) {
let path = "";
- path = `/pages/shop/userorder-detail?order_id=${item.id}&order_kind=${item.order_kind}`;
+ path = `/pages/shop/userorder-detail?order_id=${item.id}&order_kind=${item.order_kind}&haveButton=${this.haveButton}`;
if (item.table_source == "order_self") {
//如果是自营订单
- path = `/pages/shop/userorder-detail?order_id=${item.id}&serviceType=2&order_kind=${item.order_kind}`;
+ path = `/pages/shop/userorder-detail?order_id=${item.id}&serviceType=2&order_kind=${item.order_kind}&haveButton=${this.haveButton}`;
}
uni.navigateTo({
url: path,
@@ -342,7 +342,7 @@
}
.tab-item.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -354,7 +354,7 @@
left: 50%;
bottom: 0;
transform: translateX(-50%);
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
@@ -383,7 +383,7 @@
}
.tab-item2.active {
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
background: #FEE5E7;
}
@@ -450,7 +450,7 @@
.rating-score {
font-size: 16rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 68rpx;
}
@@ -504,7 +504,7 @@
.load-date {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.load-text {
diff --git a/pages/shop/verify/manual-verify.vue b/pages/shop/verify/manual-verify.vue
new file mode 100644
index 0000000..9a5be51
--- /dev/null
+++ b/pages/shop/verify/manual-verify.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+ 请输入6位核销码
+
+
+
+ {{ code[i - 1] || '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/verify/verify-fail.vue b/pages/shop/verify/verify-fail.vue
new file mode 100644
index 0000000..7a9f822
--- /dev/null
+++ b/pages/shop/verify/verify-fail.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ 核销未成功
+ 未找到订单信息,请核对二维码是否正确!
+
+
+
+ 重新扫码验券
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/verify/verify-order-detail.vue b/pages/shop/verify/verify-order-detail.vue
new file mode 100644
index 0000000..a25db76
--- /dev/null
+++ b/pages/shop/verify/verify-order-detail.vue
@@ -0,0 +1,573 @@
+
+
+
+
+
+
+
+
+
+ 顾客信息
+
+ {{ orderData.customerName || '--' }}
+ {{ orderData.customerPhone || '--' }}
+
+
+
+
+ 预约信息
+
+
+
+
+ {{ orderData.goodsName || '--' }}
+ x{{ orderData.goodsNum || 1 }}
+
+ ¥{{ formatPrice(orderData.goodsPrice) }}
+
+
+
+
+ 服务售价
+
+ ¥{{ formatPrice(orderData.originalPrice) }}
+ ¥{{ formatPrice(orderData.actualPrice) }}
+
+
+
+ 用户实付
+ ¥{{ formatPrice(orderData.payPrice) }}
+
+
+
+
+
+ 商家结算基数
+ ¥{{ formatPrice(orderData.settlePrice) }}
+
+
+
+
+
+
+
+
+ {{ isVerified ? '核销成功,返回首页' : (isVerifying ? '核销中...' : '确认核销') }}
+
+
+
+
+
+
+
+
diff --git a/pages/shop/verify/verify-order.nvue b/pages/shop/verify/verify-order.nvue
new file mode 100644
index 0000000..38c8286
--- /dev/null
+++ b/pages/shop/verify/verify-order.nvue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 扫码验券
+
+
+
+
+
+
+ 输入核销码
+
+
+
+
+ 相册
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/shop/workSpace/addWorkSpace.vue b/pages/shop/workSpace/addWorkSpace.vue
index 41b3b07..ce7194f 100644
--- a/pages/shop/workSpace/addWorkSpace.vue
+++ b/pages/shop/workSpace/addWorkSpace.vue
@@ -707,8 +707,8 @@ font-style: normal;
.btn-draft {
background-color: #ffffff;
- color: #E8101E;
- border: 2rpx solid #E8101E;
+ color: #FF4767;
+ border: 2rpx solid #FF4767;
box-sizing: border-box;
}
@@ -717,7 +717,7 @@ font-style: normal;
}
.btn-submit {
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
}
.form-step {
@@ -867,7 +867,7 @@ font-style: normal;
/* #endif */
.redTip {
- color: #E8101E;
+ color: #FF4767;
font-size: 24rpx;
margin-left: 10rpx;
}
diff --git a/pages/shop/workSpace/components/class_select.vue b/pages/shop/workSpace/components/class_select.vue
index 0c3065b..89ebbf5 100644
--- a/pages/shop/workSpace/components/class_select.vue
+++ b/pages/shop/workSpace/components/class_select.vue
@@ -186,7 +186,7 @@ export default {
color: #333333;
}
.activeText {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -214,9 +214,9 @@ export default {
border: 2rpx solid transparent;
}
.secondClassItemActive {
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background: rgba(252, 67, 124, 0.1);
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -226,7 +226,7 @@ export default {
margin-top: 30rpx;
font-size: 26rpx;
.red {
- color: #E8101E;
+ color: #FF4767;
}
}
.fixBottomBtn {
@@ -243,10 +243,10 @@ export default {
.btn {
width: 100%;
height: 39rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 39rpx;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
}
}
diff --git a/pages/shop/workSpace/components/orderCard.vue b/pages/shop/workSpace/components/orderCard.vue
index 659c20f..9f440b4 100644
--- a/pages/shop/workSpace/components/orderCard.vue
+++ b/pages/shop/workSpace/components/orderCard.vue
@@ -2,7 +2,9 @@
- 订单编号:{{ dataItem.number }}
+
+ 服务时段:{{ useTime }}
+
服务时段:{{ useTime }}
+
+ 工位地址:{{ dataItem.user_sj.address }}
取消订单
接单
- 开始订单
+ 开始服务
完成订单
@@ -126,7 +129,7 @@
"待支付",
"待接单",
"待开始",
- "进行中",
+ "待完成",
"已完成",
"已评价",
"已取消",
@@ -181,7 +184,7 @@
.stateText {
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
text-align: left;
font-style: normal;
position: absolute;
@@ -269,7 +272,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 36rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -305,6 +308,16 @@
padding-bottom: 20rpx;
margin-top: 28rpx;
}
+ .address {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #999;
+ line-height: 34rpx;
+ text-align: left;
+ font-style: normal;
+ padding-bottom: 20rpx;
+ margin-top: 28rpx;
+ }
/* 按钮组 */
.button-group {
@@ -344,7 +357,7 @@
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
\ No newline at end of file
diff --git a/pages/shop/workSpace/components/workSpaceCard.vue b/pages/shop/workSpace/components/workSpaceCard.vue
index 388aacb..d48c182 100644
--- a/pages/shop/workSpace/components/workSpaceCard.vue
+++ b/pages/shop/workSpace/components/workSpaceCard.vue
@@ -282,7 +282,7 @@ export default {
top: 0;
width: 160rpx;
height: 100%;
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
display: flex;
justify-content: center;
@@ -336,17 +336,17 @@ export default {
.price-symbol {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-value {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-unit {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.status-tag {
@@ -367,7 +367,7 @@ export default {
.status-tag.state2 .status-text {
font-weight: 400;
font-size: 26rpx;
-color: #E8101E;
+color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
diff --git a/pages/shop/workSpace/list.vue b/pages/shop/workSpace/list.vue
index c9a83ac..fc4b36f 100644
--- a/pages/shop/workSpace/list.vue
+++ b/pages/shop/workSpace/list.vue
@@ -348,7 +348,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/shop/workSpace/saleList.vue b/pages/shop/workSpace/saleList.vue
index 64bd9f9..b17345b 100644
--- a/pages/shop/workSpace/saleList.vue
+++ b/pages/shop/workSpace/saleList.vue
@@ -229,7 +229,18 @@
server_code: code,
})
.then((res) => {
+ console.log('API Response:', res);
if (res.code == 200) {
+ uni.showToast({
+ title: res.msg,
+ icon: "none"
+ });
+ this.getServicesList();
+ } else if (res.state == 1) {
+ uni.showToast({
+ title: res.msg,
+ icon: "none"
+ });
this.getServicesList();
}
}).finally(() => {
@@ -309,7 +320,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/syr/components/orderCard.vue b/pages/syr/components/orderCard.vue
index 4da2ca8..996c782 100644
--- a/pages/syr/components/orderCard.vue
+++ b/pages/syr/components/orderCard.vue
@@ -189,7 +189,7 @@
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
\ No newline at end of file
diff --git a/pages/syr/home.vue b/pages/syr/home.vue
index 52d3d38..dc092de 100644
--- a/pages/syr/home.vue
+++ b/pages/syr/home.vue
@@ -179,7 +179,7 @@
},
],
chartOpts: {
- color: ["#E8101E"],
+ color: ["#FF4767"],
padding: [15, 15, 0, 15],
enableScroll: false,
legend: false,
@@ -671,7 +671,7 @@
height: 52rpx;
line-height: 52rpx;
border-radius: 26rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
display: flex;
flex-flow: row nowrap;
justify-content: center;
@@ -761,7 +761,7 @@
width: 70rpx;
height: 6rpx;
border-radius: 4rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
position: absolute;
bottom: -10rpx;
z-index: 99;
@@ -833,7 +833,7 @@
}
.order-state-item.active {
- background: linear-gradient(43deg, #f52540 0%, #E8101E 100%);
+ background: linear-gradient(43deg, #f52540 0%, #FF4767 100%);
}
.order-state-item.active .state-name,
@@ -935,7 +935,7 @@
.action-btn.verify .action-text {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
}
.nothings-box {
diff --git a/pages/syr/manHour/addManHour.vue b/pages/syr/manHour/addManHour.vue
index facc2b1..470bd44 100644
--- a/pages/syr/manHour/addManHour.vue
+++ b/pages/syr/manHour/addManHour.vue
@@ -711,13 +711,13 @@ font-style: normal;
.btn-draft {
background-color: #ffffff;
- color: #E8101E;
- border: 2rpx solid #E8101E;
+ color: #FF4767;
+ border: 2rpx solid #FF4767;
box-sizing: border-box;
}
.btn-submit {
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
}
.form-step {
@@ -867,7 +867,7 @@ font-style: normal;
/* #endif */
.redTip {
- color: #E8101E;
+ color: #FF4767;
font-size: 24rpx;
margin-left: 10rpx;
}
diff --git a/pages/syr/manHour/components/class_select.vue b/pages/syr/manHour/components/class_select.vue
index bcb2bf3..3c90b56 100644
--- a/pages/syr/manHour/components/class_select.vue
+++ b/pages/syr/manHour/components/class_select.vue
@@ -184,7 +184,7 @@ export default {
color: #333333;
}
.activeText {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -212,9 +212,9 @@ export default {
border: 2rpx solid transparent;
}
.secondClassItemActive {
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background: rgba(252, 67, 124, 0.1);
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -224,7 +224,7 @@ export default {
margin-top: 30rpx;
font-size: 26rpx;
.red {
- color: #E8101E;
+ color: #FF4767;
}
}
.fixBottomBtn {
@@ -241,10 +241,10 @@ export default {
.btn {
width: 100%;
height: 39rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
border-radius: 39rpx;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
}
}
diff --git a/pages/syr/manHour/components/manHourCard.vue b/pages/syr/manHour/components/manHourCard.vue
index 54ba73c..48b73d0 100644
--- a/pages/syr/manHour/components/manHourCard.vue
+++ b/pages/syr/manHour/components/manHourCard.vue
@@ -282,7 +282,7 @@ export default {
top: 0;
width: 160rpx;
height: 100%;
- background-color: #E8101E;
+ background-color: #FF4767;
color: #ffffff;
display: flex;
justify-content: center;
@@ -336,17 +336,17 @@ export default {
.price-symbol {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-value {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.price-unit {
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
}
.status-tag {
@@ -367,7 +367,7 @@ export default {
.status-tag.state2 .status-text {
font-weight: 400;
font-size: 26rpx;
-color: #E8101E;
+color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
diff --git a/pages/syr/manHour/components/orderCard.vue b/pages/syr/manHour/components/orderCard.vue
index 1eb482d..7e76749 100644
--- a/pages/syr/manHour/components/orderCard.vue
+++ b/pages/syr/manHour/components/orderCard.vue
@@ -166,7 +166,7 @@ export default {
margin-bottom: 40rpx;
.stateText {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 39rpx;
}
}
@@ -213,7 +213,7 @@ export default {
.service-price {
font-weight: 500;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
}
}
@@ -275,7 +275,7 @@ font-style: normal;
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
diff --git a/pages/syr/manHour/list.vue b/pages/syr/manHour/list.vue
index 5bd9828..1e373a3 100644
--- a/pages/syr/manHour/list.vue
+++ b/pages/syr/manHour/list.vue
@@ -351,7 +351,7 @@ font-style: normal;
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/syr/manHour/saleList.vue b/pages/syr/manHour/saleList.vue
index 47fd849..5ecdc07 100644
--- a/pages/syr/manHour/saleList.vue
+++ b/pages/syr/manHour/saleList.vue
@@ -309,7 +309,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/syr/manHourDetail.vue b/pages/syr/manHourDetail.vue
index 905323e..3542ca0 100644
--- a/pages/syr/manHourDetail.vue
+++ b/pages/syr/manHourDetail.vue
@@ -80,7 +80,7 @@
支付小计
- {{ orderInfo.order_money }}元
@@ -723,13 +723,13 @@ page {
margin-left: 60rpx;
}
.btn-border {
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background-color: #fff;
box-sizing: border-box;
margin-left: 60rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
font-size: 28rpx;
@@ -739,7 +739,7 @@ page {
.btn-border .button-text {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
/* 权限提示 */
diff --git a/pages/syr/migration.vue b/pages/syr/migration.vue
index 7ac9c6f..ddfc88e 100644
--- a/pages/syr/migration.vue
+++ b/pages/syr/migration.vue
@@ -236,7 +236,7 @@
.jump-button {
width: 100%;
height: 100rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 60rpx;
display: flex;
align-items: center;
diff --git a/pages/syr/my.vue b/pages/syr/my.vue
index e0293fb..3447801 100644
--- a/pages/syr/my.vue
+++ b/pages/syr/my.vue
@@ -314,7 +314,7 @@
flex-flow: row nowrap;
justify-content: center;
align-items: center;
- border: 1rpx solid #E8101E;
+ border: 1rpx solid #FF4767;
background-color: #FFF1F1;
border-radius: 22rpx;
box-sizing: border-box;
@@ -334,7 +334,7 @@
.verified-text {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.verified-text.no {
@@ -401,7 +401,7 @@
line-height: 30rpx;
text-align: left;
font-style: normal;
- color: #E8101E;
+ color: #FF4767;
}
.function-list {
diff --git a/pages/syr/shoporder-detail.vue b/pages/syr/shoporder-detail.vue
index c8ba45a..54ab2e5 100644
--- a/pages/syr/shoporder-detail.vue
+++ b/pages/syr/shoporder-detail.vue
@@ -890,7 +890,7 @@
.real-price {
font-size: 32rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
.icon {
font-size: 20rpx;
@@ -1001,14 +1001,14 @@
}
.btn-border {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
background-color: #fff;
box-sizing: border-box;
margin-left: 60rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
@@ -1020,7 +1020,7 @@
.btn-border .button-text {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
/* APP适配 */
diff --git a/pages/syr/shoporders.vue b/pages/syr/shoporders.vue
index a3ae68c..8165090 100644
--- a/pages/syr/shoporders.vue
+++ b/pages/syr/shoporders.vue
@@ -261,18 +261,18 @@ export default {
.rating-score {
font-size: 16rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 68rpx;
}
.currency {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.amount {
font-size: 32rpx;
- color: #E8101E;
+ color: #FF4767;
font-weight: 500;
}
@@ -314,7 +314,7 @@ export default {
}
.load-date {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.load-text {
diff --git a/pages/syr/userorder-detail.vue b/pages/syr/userorder-detail.vue
index 81c10fb..f670994 100644
--- a/pages/syr/userorder-detail.vue
+++ b/pages/syr/userorder-detail.vue
@@ -899,7 +899,7 @@
.real-price {
font-size: 32rpx;
font-weight: 500;
- color: #E8101E;
+ color: #FF4767;
.icon {
font-size: 20rpx;
@@ -1010,14 +1010,14 @@
}
.btn-border {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
background-color: #fff;
box-sizing: border-box;
margin-left: 60rpx;
}
.btn-bg {
- background-color: #E8101E;
+ background-color: #FF4767;
}
.button-text {
@@ -1029,7 +1029,7 @@
.btn-border .button-text {
font-size: 28rpx;
font-weight: 400;
- color: #E8101E;
+ color: #FF4767;
}
/* APP适配 */
diff --git a/pages/syr/userorders.vue b/pages/syr/userorders.vue
index ae934c2..6dd6e49 100644
--- a/pages/syr/userorders.vue
+++ b/pages/syr/userorders.vue
@@ -326,7 +326,7 @@
.rating-score {
font-size: 16rpx;
- color: #E8101E;
+ color: #FF4767;
margin-left: 68rpx;
}
@@ -380,7 +380,7 @@
.load-date {
font-size: 24rpx;
- color: #E8101E;
+ color: #FF4767;
}
.load-text {
diff --git a/pages/syr/workstation/buyList.vue b/pages/syr/workstation/buyList.vue
index af5b825..aba63ac 100644
--- a/pages/syr/workstation/buyList.vue
+++ b/pages/syr/workstation/buyList.vue
@@ -281,7 +281,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 3rpx;
}
diff --git a/pages/syr/workstation/buyWorkstation.vue b/pages/syr/workstation/buyWorkstation.vue
index bf2cc2c..9dd7620 100644
--- a/pages/syr/workstation/buyWorkstation.vue
+++ b/pages/syr/workstation/buyWorkstation.vue
@@ -633,7 +633,7 @@
.filter__left__select__item.active {
.filter__left__select__item__title {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -736,7 +736,7 @@
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 3rpx;
}
@@ -771,11 +771,11 @@
}
.icon-tab.active .icon-text {
- color: #E8101E;
+ color: #FF4767;
}
.icon-tab.active .icon-img {
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
.service-list {
diff --git a/pages/syr/workstation/components/buyOrderCard.vue b/pages/syr/workstation/components/buyOrderCard.vue
index 48a8e06..635c68e 100644
--- a/pages/syr/workstation/components/buyOrderCard.vue
+++ b/pages/syr/workstation/components/buyOrderCard.vue
@@ -141,14 +141,14 @@ export default {
justify-content: center;
font-weight: 400;
font-size: 26rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 37rpx;
text-align: left;
font-style: normal;
width: 160rpx;
height: 58rpx;
border-radius: 32rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
}
}
}
diff --git a/pages/syr/workstation/components/orderCard.vue b/pages/syr/workstation/components/orderCard.vue
index 6ae4f3f..d3d7a04 100644
--- a/pages/syr/workstation/components/orderCard.vue
+++ b/pages/syr/workstation/components/orderCard.vue
@@ -181,7 +181,7 @@ export default {
margin-bottom: 40rpx;
.stateText {
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 39rpx;
}
}
@@ -228,7 +228,7 @@ export default {
.service-price {
font-weight: 500;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
}
}
@@ -289,7 +289,7 @@ font-style: normal;
/* 接单按钮 */
.accept-btn {
- border: 2rpx solid #E8101E;
- color: #E8101E;
+ border: 2rpx solid #FF4767;
+ color: #FF4767;
}
diff --git a/pages/syr/workstation/workstationDetail.vue b/pages/syr/workstation/workstationDetail.vue
index ed0b5ef..6cfaf02 100644
--- a/pages/syr/workstation/workstationDetail.vue
+++ b/pages/syr/workstation/workstationDetail.vue
@@ -234,7 +234,7 @@ export default {
&__price {
font-weight: 500;
font-size: 36rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 50rpx;
text-align: left;
font-style: normal;
@@ -332,10 +332,10 @@ font-style: normal;
width: 696rpx;
height: 78rpx;
border-radius: 798rpx;
- border: 2rpx solid #E8101E;
+ border: 2rpx solid #FF4767;
font-weight: 400;
font-size: 30rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 39rpx;
text-align: right;
font-style: normal;
diff --git a/pages/syr/workstation/workstationOrder.vue b/pages/syr/workstation/workstationOrder.vue
index a808314..3f05714 100644
--- a/pages/syr/workstation/workstationOrder.vue
+++ b/pages/syr/workstation/workstationOrder.vue
@@ -238,7 +238,7 @@ export default {
margin-top: 38rpx;
font-weight: 500;
font-size: 28rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 34rpx;
text-align: left;
font-style: normal;
@@ -291,7 +291,7 @@ export default {
&__price {
font-weight: 500;
font-size: 42rpx;
- color: #E8101E;
+ color: #FF4767;
line-height: 59rpx;
font-style: normal;
}
@@ -299,7 +299,7 @@ export default {
&__right {
width: 188rpx;
height: 68rpx;
- background: linear-gradient(73deg, #fe78b3 0%, #E8101E 100%);
+ background: linear-gradient(73deg, #fe78b3 0%, #FF4767 100%);
border-radius: 798rpx;
font-weight: 400;
font-size: 30rpx;
diff --git a/pages/user/components/project-tabs.vue b/pages/user/components/project-tabs.vue
index cb50375..6e3f47e 100644
--- a/pages/user/components/project-tabs.vue
+++ b/pages/user/components/project-tabs.vue
@@ -157,7 +157,7 @@ export default {
height: 18rpx;
}
.active {
- color: #e8101e;
+ color: #FF4767;
}
.tab-active-indicator {
position: absolute;
@@ -166,7 +166,7 @@ export default {
transform: translateX(-50%);
width: 32rpx;
height: 6rpx;
- background: linear-gradient(107deg, #f84c63 0%, #e8101e 100%);
+ background: linear-gradient(107deg, #f84c63 0%, #FF4767 100%);
border-radius: 10rpx;
}
}
@@ -212,7 +212,7 @@ export default {
}
.active {
background: #ffecf0;
- color: #e8101e;
+ color: #FF4767;
font-weight: 500;
transform: scale(1.05);
}
diff --git a/pages/user/components/serviceCardList.vue b/pages/user/components/serviceCardList.vue
index b0f6063..f8d43c4 100644
--- a/pages/user/components/serviceCardList.vue
+++ b/pages/user/components/serviceCardList.vue
@@ -157,7 +157,7 @@ export default {
padding: 0 8rpx;
height: 38rpx;
line-height: 38rpx;
- background: linear-gradient(124deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(124deg, #f52540 0%, #FF4767 100%);
border-radius: 12rpx 2rpx 12rpx 2rpx;
font-size: 22rpx;
color: #ffffff;
@@ -225,7 +225,7 @@ export default {
.price {
font-weight: 500;
font-size: 26rpx;
- color: #e8101e;
+ color: #FF4767;
}
.service_time {
font-size: 26rpx;
@@ -264,7 +264,7 @@ export default {
width: 144rpx;
height: 60rpx;
line-height: 60rpx;
- background: linear-gradient(107deg, #f84c63 0%, #e8101e 100%);
+ background: linear-gradient(107deg, #f84c63 0%, #FF4767 100%);
border-radius: 30rpx;
text-align: center;
color: #fff;
diff --git a/pages/user/employee-detail.vue b/pages/user/employee-detail.vue
index 410e326..a0bfc02 100644
--- a/pages/user/employee-detail.vue
+++ b/pages/user/employee-detail.vue
@@ -1024,7 +1024,7 @@
width: 448rpx;
height: 86rpx;
margin-left: 240rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 43rpx;
display: flex;
align-items: center;
diff --git a/pages/user/store-detail.vue b/pages/user/store-detail.vue
index 334df00..e7de41f 100644
--- a/pages/user/store-detail.vue
+++ b/pages/user/store-detail.vue
@@ -1313,7 +1313,7 @@
transition: all 0.3s ease;
&.active {
- color: #E8101E;
+ color: #FF4767;
}
}
}
@@ -1442,7 +1442,7 @@
.showcase-tag {
font-size: 20rpx;
- color: #E8101E;
+ color: #FF4767;
background: rgba(232, 16, 30, 0.1);
border-radius: 15rpx;
padding: 4rpx 12rpx;
diff --git a/pages/user/syr-detail.vue b/pages/user/syr-detail.vue
index b707045..55eaf51 100644
--- a/pages/user/syr-detail.vue
+++ b/pages/user/syr-detail.vue
@@ -648,14 +648,14 @@
align-items: center;
background: #ffffff;
border-radius: 8rpx;
- border: 2rpx solid #e8101e;
+ border: 2rpx solid #FF4767;
padding-right: 10rpx;
&__text {
font-family: DINPro, DINPro;
font-weight: bold;
font-size: 20rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 24rpx;
text-align: left;
font-style: normal;
@@ -672,7 +672,7 @@
justify-content: center;
font-weight: 500;
font-size: 20rpx;
- color: #e8101e;
+ color: #FF4767;
text-align: left;
font-style: normal;
}
diff --git a/pages/wallet/alipay.vue b/pages/wallet/alipay.vue
index 900eeaf..45e3e87 100644
--- a/pages/wallet/alipay.vue
+++ b/pages/wallet/alipay.vue
@@ -417,7 +417,7 @@ button {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 22rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 30rpx;
text-align: left;
font-style: normal;
diff --git a/pages/wallet/alipayAccount.vue b/pages/wallet/alipayAccount.vue
index 248ae34..e396139 100644
--- a/pages/wallet/alipayAccount.vue
+++ b/pages/wallet/alipayAccount.vue
@@ -377,10 +377,10 @@ export default {
width: 666rpx;
height: 84rpx;
border-radius: 69rpx;
- border: 2rpx solid #e8101e;
+ border: 2rpx solid #FF4767;
font-weight: 500;
font-size: 32rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 45rpx;
text-align: left;
font-style: normal;
diff --git a/pages/wallet/components/addPop.vue b/pages/wallet/components/addPop.vue
index 3488642..1070379 100644
--- a/pages/wallet/components/addPop.vue
+++ b/pages/wallet/components/addPop.vue
@@ -80,10 +80,10 @@ export default {
width: 666rpx;
height: 84rpx;
border-radius: 69rpx;
- border: 2rpx solid #e8101e;
+ border: 2rpx solid #FF4767;
font-weight: 500;
font-size: 32rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 45rpx;
text-align: left;
font-style: normal;
diff --git a/pages/wallet/components/cashPop.vue b/pages/wallet/components/cashPop.vue
index c471439..d560fe3 100644
--- a/pages/wallet/components/cashPop.vue
+++ b/pages/wallet/components/cashPop.vue
@@ -171,7 +171,7 @@ export default {
font-style: normal;
}
.popRed {
- color: #e8101e;
+ color: #FF4767;
}
}
.pop-btn {
@@ -181,7 +181,7 @@ export default {
justify-content: center;
width: 672rpx;
height: 96rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #f52540 0%, #FF4767 100%);
border-radius: 48rpx;
font-weight: 500;
font-size: 34rpx;
diff --git a/pages/wallet/wallet.vue b/pages/wallet/wallet.vue
index 7d87de1..80d5710 100644
--- a/pages/wallet/wallet.vue
+++ b/pages/wallet/wallet.vue
@@ -315,7 +315,7 @@
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 36rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 46rpx;
text-align: left;
font-style: normal;
@@ -357,7 +357,7 @@
margin-top: 69rpx;
width: 614rpx;
height: 88rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #ff8e9d 0%, #FF4767 100%);
border-radius: 44rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
@@ -414,14 +414,14 @@
.tabActive {
font-weight: 500;
- color: #e8101e;
+ color: #FF4767;
}
.walletDetailTab.tabActive::after {
content: "";
width: 56rpx;
height: 8rpx;
- background: #e8101e;
+ background: #FF4767;
border-radius: 5rpx;
position: absolute;
left: 50%;
@@ -469,7 +469,7 @@
justify-content: center;
width: 430rpx;
height: 86rpx;
- background: linear-gradient(181deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(181deg, #f52540 0%, #FF4767 100%);
border-radius: 43rpx;
font-weight: 400;
font-size: 36rpx;
diff --git a/pages/wallet/withdrawCash.vue b/pages/wallet/withdrawCash.vue
index 4b699a8..67e3ea0 100644
--- a/pages/wallet/withdrawCash.vue
+++ b/pages/wallet/withdrawCash.vue
@@ -431,7 +431,7 @@ export default {
.cash-card-text1 {
font-weight: 400;
font-size: 30rpx;
- color: #e8101e;
+ color: #FF4767;
line-height: 42rpx;
text-align: left;
font-style: normal;
@@ -512,7 +512,7 @@ export default {
justify-content: center;
width: 710rpx;
height: 108rpx;
- background: linear-gradient(180deg, #f52540 0%, #e8101e 100%);
+ background: linear-gradient(180deg, #f52540 0%, #FF4767 100%);
border-radius: 55rpx;
font-weight: 400;
font-size: 42rpx;
diff --git a/static/css/common.css b/static/css/common.css
index 997106c..15c3944 100644
--- a/static/css/common.css
+++ b/static/css/common.css
@@ -575,7 +575,7 @@ page {
height: 64rpx;
text-align: center;
line-height: 64rpx;
- background-color: #E8101E;
+ background-color: #FF4767;
border-radius: 32rpx;
position: fixed;
left: 24rpx;
@@ -607,7 +607,7 @@ page {
}
.fixed-btn {
height: 80rpx;
- background: #E8101E;
+ background: #FF4767;
border-radius: 40rpx;
display: flex;
align-items: center;
diff --git a/static/images/agree_y.png b/static/images/agree_y.png
index 811e97f..e53c94b 100644
Binary files a/static/images/agree_y.png and b/static/images/agree_y.png differ
diff --git a/static/images/home/banner.png b/static/images/home/banner.png
new file mode 100644
index 0000000..3883597
Binary files /dev/null and b/static/images/home/banner.png differ
diff --git a/static/images/home/growth-package/action-success.png b/static/images/home/growth-package/action-success.png
new file mode 100644
index 0000000..a37a75e
Binary files /dev/null and b/static/images/home/growth-package/action-success.png differ
diff --git a/static/images/home/growth-package/action.png b/static/images/home/growth-package/action.png
new file mode 100644
index 0000000..83700b1
Binary files /dev/null and b/static/images/home/growth-package/action.png differ
diff --git a/static/images/home/growth-package/deal-1.png b/static/images/home/growth-package/deal-1.png
new file mode 100644
index 0000000..b01a5a5
Binary files /dev/null and b/static/images/home/growth-package/deal-1.png differ
diff --git a/static/images/home/growth-package/deal-2.png b/static/images/home/growth-package/deal-2.png
new file mode 100644
index 0000000..23e5d6c
Binary files /dev/null and b/static/images/home/growth-package/deal-2.png differ
diff --git a/static/images/home/growth-package/deal-3.png b/static/images/home/growth-package/deal-3.png
new file mode 100644
index 0000000..695215a
Binary files /dev/null and b/static/images/home/growth-package/deal-3.png differ
diff --git a/static/images/home/growth-package/deal.png b/static/images/home/growth-package/deal.png
new file mode 100644
index 0000000..939f305
Binary files /dev/null and b/static/images/home/growth-package/deal.png differ
diff --git a/static/images/home/growth-package/intro.png b/static/images/home/growth-package/intro.png
new file mode 100644
index 0000000..31c4429
Binary files /dev/null and b/static/images/home/growth-package/intro.png differ
diff --git a/static/images/home/growth-package/plan.png b/static/images/home/growth-package/plan.png
new file mode 100644
index 0000000..47e72d8
Binary files /dev/null and b/static/images/home/growth-package/plan.png differ
diff --git a/static/images/tabbar/new_home.png b/static/images/tabbar/new_home.png
index b53545b..d7b21fa 100644
Binary files a/static/images/tabbar/new_home.png and b/static/images/tabbar/new_home.png differ
diff --git a/static/images/tabbar/new_home_gray.png b/static/images/tabbar/new_home_gray.png
index 96f2b0f..3e86ab4 100644
Binary files a/static/images/tabbar/new_home_gray.png and b/static/images/tabbar/new_home_gray.png differ
diff --git a/static/images/tabbar/new_message.png b/static/images/tabbar/new_message.png
index d78e893..4467983 100644
Binary files a/static/images/tabbar/new_message.png and b/static/images/tabbar/new_message.png differ
diff --git a/static/images/tabbar/new_message_gray.png b/static/images/tabbar/new_message_gray.png
index ad69144..2f7eaf3 100644
Binary files a/static/images/tabbar/new_message_gray.png and b/static/images/tabbar/new_message_gray.png differ
diff --git a/static/images/tabbar/new_my.png b/static/images/tabbar/new_my.png
index 797ed38..c6a2563 100644
Binary files a/static/images/tabbar/new_my.png and b/static/images/tabbar/new_my.png differ
diff --git a/static/images/tabbar/new_my_gray.png b/static/images/tabbar/new_my_gray.png
index 6db8a24..85bce0e 100644
Binary files a/static/images/tabbar/new_my_gray.png and b/static/images/tabbar/new_my_gray.png differ
diff --git a/static/images/tabbar/new_order.png b/static/images/tabbar/new_order.png
index 54d44a3..356dacf 100644
Binary files a/static/images/tabbar/new_order.png and b/static/images/tabbar/new_order.png differ
diff --git a/static/images/tabbar/new_order_gray.png b/static/images/tabbar/new_order_gray.png
index baebf74..697f86c 100644
Binary files a/static/images/tabbar/new_order_gray.png and b/static/images/tabbar/new_order_gray.png differ
diff --git a/store/index.js b/store/index.js
index 35999ac..2daceb7 100644
--- a/store/index.js
+++ b/store/index.js
@@ -6,40 +6,43 @@ Vue.use(Vuex);
const store = new Vuex.Store({
state: {
- messageNum: 0,//底部消息数量
- sjServiceList:{},//商家分配手艺人时服务数据shop/staff
- tabbarList: [], //底部设置
- reservationTime: {}, // 预约时刻信息
- reservationSyr: {}, // 预约手艺人人信息
- reservationAddress: {}, // 预约地址信息
- selectStore: {}, //选择的门店信息
- wxShareType: 0, // 正式版:0,测试版:1,体验版:2
- //公共的变量,这里的变量不能随便修改,只能通过触发mutations的方法才能改变
+ messageNum: 0, // 底部消息数量
+ // ========== 新增:全局当前选中的 tab 索引 ==========
+ currentTabIndex: 0, // 用于自定义 tabbar 高亮
+ // ============================================
+ sjServiceList: {}, // 商家分配手艺人时服务数据shop/staff
+ tabbarList: [], // 底部设置
+ reservationTime: {}, // 预约时刻信息
+ reservationSyr: {}, // 预约手艺人人信息
+ reservationAddress: {}, // 预约地址信息
+ selectStore: {}, // 选择的门店信息
+ wxShareType: 0, // 正式版:0,测试版:1,体验版:2
searchCity: {
center: "117.330043,38.372266",
name: "黄骅",
},
- systemInfo: uni.getSystemInfoSync(), //设备信息
- //是否有定位权限
+ systemInfo: uni.getSystemInfoSync(),
isLocation: false,
- //路由
baseUrl: "",
- //手机和app信息
version: {
VersionCode: "",
DeviceBrand: "",
DeviceType: "",
},
- //商家信息
sjInfo: {},
- workSpaceSJClassList: [], //商家工位分类列表
- workHourSJClassList: [], //商家工时分类列表
+ workSpaceSJClassList: [],
+ workHourSJClassList: [],
},
mutations: {
- //写入底部消息数量
+ // 写入底部消息数量
setMessageNum(state, newval) {
state.messageNum = newval;
},
+ // ========== 新增:设置全局当前选中 tab 索引 ==========
+ SET_CURRENT_TAB_INDEX(state, index) {
+ state.currentTabIndex = index;
+ },
+ // ==============================================
clearServiceState(state) {
state.reservationTime = {};
state.reservationSyr = {};
diff --git a/utils/albumUploadImage.js b/utils/albumUploadImage.js
index 2f17212..fda5fca 100644
--- a/utils/albumUploadImage.js
+++ b/utils/albumUploadImage.js
@@ -67,6 +67,7 @@ const handleUpload = async (userId, type, sourceType = ['album', 'camera'], uplo
// ========== 【核心新增:图片比例校验 结束】 ==========
} else if (uploadType == 'video') {
const res = await uni.chooseVideo({
+ maxDuration:60,
count: 1,
sourceType: ['album', 'camera'],
compressed: false
@@ -77,6 +78,22 @@ const handleUpload = async (userId, type, sourceType = ['album', 'camera'], uplo
// #ifdef APP-PLUS || MP-WEIXIN
file = res;
// #endif
+ console.log(res,'resresres');
+ const duration = res.duration;
+ if (duration < 3) {
+ uni.showToast({
+ title: "视频时长不能少于3秒",
+ icon: "none",
+ });
+ return null;
+ }
+ if (duration > 61) {
+ uni.showToast({
+ title: "视频时长不能超过1分钟",
+ icon: "none",
+ });
+ return null;
+ }
}
@@ -87,10 +104,10 @@ const handleUpload = async (userId, type, sourceType = ['album', 'camera'], uplo
console.error('上传出错:', error)
// 如果是用户取消操作,不抛出错误,返回 null
- if (error.errMsg && error.errMsg.includes('cancel')) {
- console.log('用户取消了操作')
- return null
- }
+ // if (error.errMsg && error.errMsg.includes('cancel')) {
+ // console.log('用户取消了操作')
+ // return null
+ // }
throw error
} finally {
@@ -149,23 +166,15 @@ const uploadFile = async (file, userId, type, uploadType) => {
console.log('file=======', file)
console.log('userId=======', userId)
// 检查文件大小
- if (uploadType == 'image') {
- if (file.size > 5 * 1024 * 1024) {
- uni.showToast({
- title: `文件大小不能超过5MB`,
- icon: 'none'
- })
- return Promise.reject(new Error('文件大小超出限制'))
- }
- } else if (uploadType == 'video') {
- if (file.size > 100 * 1024 * 1024) {
- uni.showToast({
- title: `文件大小不能超过100MB`,
- icon: 'none'
- })
- return Promise.reject(new Error('文件大小超出限制'))
- }
- }
+ if (uploadType == "image") {
+ if (file.size > 5 * 1024 * 1024) {
+ return Promise.reject({errMsg: "文件大小不能超过5MB"});
+ }
+ } else if (uploadType == "video") {
+ if (file.size > 500 * 1024 * 1024) {
+ return Promise.reject({errMsg: "文件大小不能超过500MB"});
+ }
+ }
let date = new Date().getTime()
console.log('file', file)
@@ -217,7 +226,7 @@ const getOssConfig = async (type) => {
// 上传到OSS
const uploadToOss = (file, ossConfig, name, uploadType) => {
- console.log(ossConfig)
+
return new Promise((resolve, reject) => {
// #ifdef H5
const formData = new FormData()
@@ -274,6 +283,10 @@ const uploadToOss = (file, ossConfig, name, uploadType) => {
path = file.tempFilePath
// #endif
}
+
+ uni.showLoading({
+ title: '上传中'
+ })
uni.uploadFile({
url: ossConfig.host,
@@ -288,9 +301,12 @@ const uploadToOss = (file, ossConfig, name, uploadType) => {
},
success(res) {
resolve(`${ossConfig.host}/${ossConfig.dir}${name}`)
+ uni.hideLoading();
},
complete(err) {
console.log('err', err)
+ uni.hideLoading();
+
}
});
// #endif
diff --git a/utils/appBackBase.js b/utils/appBackBase.js
new file mode 100644
index 0000000..8146010
--- /dev/null
+++ b/utils/appBackBase.js
@@ -0,0 +1 @@
+export const APP_BACK_BASE_URL = "http://test.mrrwlkj.top";
diff --git a/utils/request.js b/utils/request.js
index 7fd430b..74a52a1 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -175,7 +175,16 @@ const request = async (options, isUpdate) => {
uni.hideLoading();
}
// #endif
- resolve(responseInterceptor(options, res, resolve, reject));
+ try {
+ const result = responseInterceptor(options, res, resolve, reject);
+ if (result && typeof result.then === "function") {
+ result.then((data) => resolve(data)).catch((err) => reject(err));
+ } else {
+ resolve(result);
+ }
+ } catch (err) {
+ reject(err);
+ }
},
fail: (err) => {
// #ifdef H5
@@ -204,6 +213,7 @@ const request = async (options, isUpdate) => {
// 处理 401 未授权
async function handleUnauthorized(originalRequest, resolve, reject) {
if (!getToken()) {
+ reject(new Error("未登录"));
return redirectToLogin();
}
// 如果正在刷新 Token,将请求加入队列
@@ -229,7 +239,7 @@ async function handleUnauthorized(originalRequest, resolve, reject) {
} catch (error) {
removeToken();
redirectToLogin();
- // reject(error)
+ reject(error);
return error;
} finally {
isRefreshing = false;
@@ -252,9 +262,21 @@ async function refreshToken() {
});
if (res.state == 1 || res.code == 200) {
- uni.setStorageSync("accessToken", res.access_token);
- uni.setStorageSync("refreshToken", res.refresh_token);
- return res.access_token;
+ const tokenData = res.data || res;
+ if (!tokenData.access_token) {
+ throw new Error("Refresh token response missing access_token");
+ }
+ uni.setStorageSync("accessToken", tokenData.access_token);
+ if (tokenData.refresh_token) {
+ uni.setStorageSync("refreshToken", tokenData.refresh_token);
+ }
+ if (tokenData.refresh_token_expries) {
+ uni.setStorageSync(
+ "refresh_token_expries",
+ tokenData.refresh_token_expries,
+ );
+ }
+ return tokenData.access_token;
}
throw new Error("Refresh token failed");
diff --git a/utils/ui-config.js b/utils/ui-config.js
index 28c229e..a8f2f8a 100644
--- a/utils/ui-config.js
+++ b/utils/ui-config.js
@@ -694,9 +694,9 @@ function buildSheet() {
conectTexts: "[' ',' ',' ']",
baseColor: "#898989 ", //协议文案非协议部分颜色
//operatorColor: "#FFB5C5", //单独设置运营商协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
- oneColor: "#E8101E", //单独设置第一个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
- twoColor: "#E8101E", //单独设置第二个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
- threeColor: "#E8101E", //单独设置第三个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
+ oneColor: "#FF4767", //单独设置第一个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
+ twoColor: "#FF4767", //单独设置第二个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
+ threeColor: "#FF4767", //单独设置第三个协议富文本颜色,该字段优先级最高,设置了该字段之后protocolColor字段设置的将失效,若该字段不设置,则采用protocolColor的值
},
setAppPrivacyOne: {
title: '《用户注册协议》',
diff --git a/utils/version.js b/utils/version.js
index 2c6fff1..63bb7d7 100644
--- a/utils/version.js
+++ b/utils/version.js
@@ -1,4 +1,6 @@
+import { APP_BACK_BASE_URL } from './appBackBase.js'
+
let VersionCode = '';
let DeviceType = '';
let platform = '';
@@ -60,30 +62,6 @@ export function setVersion() {
}
export async function getBaseUrl() {
- let version = uni.getStorageSync('setVersion')
- await uni.request({
- url: 'https://api.mrrwlkj.top/api/openPuc/getSjApiUrl', // 接口地址
- method: 'GET', // 请求方法(默认 GET)
- header: {
- 'Content-Type': 'application/json', // 请求头
- 'VersionCode': version.VersionCode,
- 'DeviceBrand': version.DeviceBrand,
- 'DeviceType': version.DeviceType
- },
- success: (res) => {
- if (res.data.code == 200) {
- uni.setStorageSync('baseUrl', res.data.data.url)
- // store.commit('setBaseUrl', res.data.data.url)
- }
- return res.data.data.url;
- console.log('请求成功', res.data);
- },
- fail: (err) => {
- console.log('请求失败', err);
- return 'http://60.247.146.5:93';
- },
- complete: () => {
- console.log('请求完成(无论成功失败都会执行)');
- }
- });
-}
\ No newline at end of file
+ uni.setStorageSync('baseUrl', APP_BACK_BASE_URL)
+ return APP_BACK_BASE_URL
+}