Browse Source

权益功能优化

@dongkboy 1 month ago
parent
commit
a61a32d459

+ 630 - 622
pages.json

@@ -1,627 +1,635 @@
 {
-  "easycom": {
-    "^uni-(.*)": "@/components/uni-$1/uni-$1.vue", // 匹配components目录内的vue文件
-    "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
-  },
-  "pages": [
-    //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
-    {
-      "path": "pages/index/index",
-      "style": {
-        "enablePullDownRefresh": false, //是否开启下拉刷新功能
-        "navigationBarTitleText": "首页",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/login/login", //登录页
-      "style": {
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/login/forgotPassword", //登录页
-      "style": {
-        "navigationBarTitleText": "忘记密码",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/login/bindPhoneNumber", //登录页
-      "style": {
-        "navigationBarTitleText": "绑定手机号",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/login/smsCode", //登录页
-      "style": {
-        "navigationBarTitleText": "短信验证码",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
+	"easycom": {
+		"^uni-(.*)": "@/components/uni-$1/uni-$1.vue", // 匹配components目录内的vue文件
+		"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
+	},
+	"pages": [
+		//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"enablePullDownRefresh": false, //是否开启下拉刷新功能
+				"navigationBarTitleText": "首页",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/login/login", //登录页
+			"style": {
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/login/forgotPassword", //登录页
+			"style": {
+				"navigationBarTitleText": "忘记密码",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/login/bindPhoneNumber", //登录页
+			"style": {
+				"navigationBarTitleText": "绑定手机号",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/login/smsCode", //登录页
+			"style": {
+				"navigationBarTitleText": "短信验证码",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
 
-    {
-      "path": "pages/message/message",
-      "style": {
-        "navigationBarTitleText": "消息",
-        "onReachBottomDistance": 100
-      }
-    },
-    {
-      "path": "pages/orders/orders",
-      "style": {
-        "navigationBarTitleText": "订单",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/orders/orders1",
-      "style": {
-        "navigationBarTitleText": "订单",
-        "onReachBottomDistance": 50,
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/my/my",
-      "style": {
-        "navigationBarTitleText": "我的",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quoteInfo",
-      "style": {
-        "navigationBarTitleText": "完善报价信息",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/selectInsuranceCompany",
-      "style": {
-        "navigationBarTitleText": "投保车型",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/premiumCalc",
-      "style": {
-        "navigationBarTitleText": "保费计算",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/premiumCalc1",
-      "style": {
-        "navigationBarTitleText": "保费计算",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/chooseOption",
-      "style": {
-        "navigationBarTitleText": "选择方案"
-      }
-    },
-    {
-      "path": "pages/quote/chooseOption1",
-      "style": {
-        "navigationBarTitleText": "报价方案",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/selectDriving",
-      "style": {
-        "navigationBarTitleText": "选择驾意险",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/manualUnderwritingPage",
-      "style": {
-        "navigationBarTitleText": "核保转人工过渡页",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    //权益
-    {
-      "path": "pages/reward/customerBenefit",
-      "style": {
-        "navigationBarTitleText": "客户权益",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/reward/benefitPackage",
-      "style": {
-        "navigationBarTitleText": "权益套餐",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/reward/locationFilter",
-      "style": {
-        "navigationBarTitleText": "位置筛选",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/set/set",
-      "style": {
-        "navigationBarTitleText": "设置"
-      }
-    },
-    {
-      //账号与安全
-      "path": "pages/set/accountSet",
-      "style": {
-        "navigationBarTitleText": "设置"
-      }
-    },
-    {
-      "path": "pages/set/aboutSet",
-      "style": {
-        "navigationBarTitleText": "关于晋掌柜"
-      }
-    },
-    {
-      "path": "pages/set/linkedAccountSet",
-      "style": {
-        "navigationBarTitleText": "第三方账号"
-      }
-    },
-    {
-      "path": "pages/my/userInfo",
-      "style": {
-        "navigationBarTitleText": "个人信息"
-      }
-    },
-    {
-      "path": "pages/my/realNameAuth",
-      "style": {
-        "navigationBarTitleText": "实名认证" //实名认证
-      }
-    },
-    {
-      "path": "pages/my/authStatusPage",
-      "style": {
-        "navigationBarTitleText": "实名认证" //认证状态页
-      }
-    },
-    {
-      "path": "pages/registr/h5Registr",
-      "style": {
-        "navigationBarTitleText": "邀请你加入", //h5注册页
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/registr/appPromoPage",
-      "style": {
-        "navigationBarTitleText": "邀请你加入" //h5宣传页
-      }
-    },
-    {
-      "path": "pages/wallet/myWallet",
-      "style": {
-        "navigationBarTitleText": "我的钱包"
-      }
-    },
-    {
-      "path": "pages/wallet/incomeExpenseRecord",
-      "style": {
-        "navigationBarTitleText": "收支记录"
-      }
-    },
-    {
-      "path": "pages/wallet/billDetails",
-      "style": {
-        "navigationBarTitleText": "账单详情"
-      }
-    },
-    {
-      "path": "pages/wallet/addBankCard",
-      "style": {
-        "navigationBarTitleText": "我的银行卡"
-      }
-    },
-    {
-      "path": "pages/wallet/bankCardDetails",
-      "style": {
-        "navigationBarTitleText": "银行卡详情"
-      }
-    },
-    {
-      "path": "pages/wallet/withdrawal",
-      "style": {
-        "navigationBarTitleText": "提现"
-      }
-    },
+		{
+			"path": "pages/message/message",
+			"style": {
+				"navigationBarTitleText": "消息",
+				"onReachBottomDistance": 100
+			}
+		},
+		{
+			"path": "pages/orders/orders",
+			"style": {
+				"navigationBarTitleText": "订单",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/orders/orders1",
+			"style": {
+				"navigationBarTitleText": "订单",
+				"onReachBottomDistance": 50,
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/my/my",
+			"style": {
+				"navigationBarTitleText": "我的",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quoteInfo",
+			"style": {
+				"navigationBarTitleText": "完善报价信息",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/selectInsuranceCompany",
+			"style": {
+				"navigationBarTitleText": "投保车型",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/premiumCalc",
+			"style": {
+				"navigationBarTitleText": "保费计算",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/premiumCalc1",
+			"style": {
+				"navigationBarTitleText": "保费计算",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/chooseOption",
+			"style": {
+				"navigationBarTitleText": "选择方案"
+			}
+		},
+		{
+			"path": "pages/quote/chooseOption1",
+			"style": {
+				"navigationBarTitleText": "报价方案",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/selectDriving",
+			"style": {
+				"navigationBarTitleText": "选择驾意险",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/manualUnderwritingPage",
+			"style": {
+				"navigationBarTitleText": "核保转人工过渡页",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		//权益
+		{
+			"path": "pages/reward/customerBenefit",
+			"style": {
+				"navigationBarTitleText": "客户权益",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/reward/benefitPackage",
+			"style": {
+				"navigationBarTitleText": "权益套餐",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/reward/benefitSingleItem",
+			"style": {
+				"navigationBarTitleText": "权益单品",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/reward/locationFilter",
+			"style": {
+				"navigationBarTitleText": "详情页",
+				"app-plus": {
+					"scrollIndicator": "none" //隐藏滚动条
+				}
+			}
+		},
+		{
+			"path": "pages/set/set",
+			"style": {
+				"navigationBarTitleText": "设置"
+			}
+		},
+		{
+			//账号与安全
+			"path": "pages/set/accountSet",
+			"style": {
+				"navigationBarTitleText": "设置"
+			}
+		},
+		{
+			"path": "pages/set/aboutSet",
+			"style": {
+				"navigationBarTitleText": "关于晋掌柜"
+			}
+		},
+		{
+			"path": "pages/set/linkedAccountSet",
+			"style": {
+				"navigationBarTitleText": "第三方账号"
+			}
+		},
+		{
+			"path": "pages/my/userInfo",
+			"style": {
+				"navigationBarTitleText": "个人信息"
+			}
+		},
+		{
+			"path": "pages/my/realNameAuth",
+			"style": {
+				"navigationBarTitleText": "实名认证" //实名认证
+			}
+		},
+		{
+			"path": "pages/my/authStatusPage",
+			"style": {
+				"navigationBarTitleText": "实名认证" //认证状态页
+			}
+		},
+		{
+			"path": "pages/registr/h5Registr",
+			"style": {
+				"navigationBarTitleText": "邀请你加入", //h5注册页
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/registr/appPromoPage",
+			"style": {
+				"navigationBarTitleText": "邀请你加入" //h5宣传页
+			}
+		},
+		{
+			"path": "pages/wallet/myWallet",
+			"style": {
+				"navigationBarTitleText": "我的钱包"
+			}
+		},
+		{
+			"path": "pages/wallet/incomeExpenseRecord",
+			"style": {
+				"navigationBarTitleText": "收支记录"
+			}
+		},
+		{
+			"path": "pages/wallet/billDetails",
+			"style": {
+				"navigationBarTitleText": "账单详情"
+			}
+		},
+		{
+			"path": "pages/wallet/addBankCard",
+			"style": {
+				"navigationBarTitleText": "我的银行卡"
+			}
+		},
+		{
+			"path": "pages/wallet/bankCardDetails",
+			"style": {
+				"navigationBarTitleText": "银行卡详情"
+			}
+		},
+		{
+			"path": "pages/wallet/withdrawal",
+			"style": {
+				"navigationBarTitleText": "提现"
+			}
+		},
 
-    {
-      "path": "pages/my/identityInfo",
-      "style": {
-        "navigationBarTitleText": "身份信息" //身份信息
-      }
-    },
+		{
+			"path": "pages/my/identityInfo",
+			"style": {
+				"navigationBarTitleText": "身份信息" //身份信息
+			}
+		},
 
-    {
-      "path": "pages/my/replacePhone",
-      "style": {
-        "navigationBarTitleText": "更换手机号" //实名信息
-      }
-    },
-    {
-      "path": "pages/my/changePhoneNumber",
-      "style": {
-        "navigationBarTitleText": "更换手机号" //实名信息
-      }
-    },
-    {
-      "path": "pages/my/passwordValidation",
-      "style": {
-        "navigationBarTitleText": "密码校验" //实名信息
-      }
-    },
+		{
+			"path": "pages/my/replacePhone",
+			"style": {
+				"navigationBarTitleText": "更换手机号" //实名信息
+			}
+		},
+		{
+			"path": "pages/my/changePhoneNumber",
+			"style": {
+				"navigationBarTitleText": "更换手机号" //实名信息
+			}
+		},
+		{
+			"path": "pages/my/passwordValidation",
+			"style": {
+				"navigationBarTitleText": "密码校验" //实名信息
+			}
+		},
 
-    {
-      "path": "pages/set/resetPassword",
-      "style": {
-        "navigationBarTitleText": "重置密码"
-      }
-    },
-    {
-      "path": "pages/set/accountCancellation",
-      "style": {
-        "navigationBarTitleText": "注销账号"
-      }
-    },
-    {
-      "path": "pages/tool/distributionCenter",
-      "style": {
-        "navigationBarTitleText": "分销中心"
-      }
-    },
-    {
-      "path": "pages/tool/distributeTeam",
-      "style": {
-        "navigationBarTitleText": "分销团队"
-      }
-    },
-    {
-      "path": "pages/tool/distributorDetails",
-      "style": {
-        "navigationBarTitleText": "分销员详情"
-      }
-    },
-    {
-      "path": "pages/tool/distributionOrders",
-      "style": {
-        "navigationBarTitleText": "分销订单"
-      }
-    },
-    {
-      "path": "pages/tool/helpAndSupport",
-      "style": {
-        "navigationBarTitleText": "帮助与客服"
-      }
-    },
-    {
-      "path": "pages/tool/selfReport",
-      "style": {
-        "navigationBarTitleText": "自助报案"
-      }
-    },
-    {
-      "path": "pages/tool/invitationCode",
-      "style": {
-        "navigationBarTitleText": "邀请码"
-      }
-    },
-    {
-      "path": "pages/tool/poster",
-      "style": {
-        "navigationBarTitleText": "海报管理"
-      }
-    },
-    {
-      "path": "pages/my/idPhoto",
-      "style": {
-        "navigationBarTitleText": "证件照片"
-      }
-    },
-    {
-      "path": "pages/my/businessLicense",
-      "style": {
-        "navigationBarTitleText": "展业资格证"
-      }
-    },
-    {
-      "path": "pages/set/logoutAgreement",
-      "style": {
-        "navigationBarTitleText": "注销协议"
-      }
-    },
-    {
-      "path": "pages/tool/poster",
-      "style": {
-        "navigationBarTitleText": "注销协议"
-      }
-    },
-    {
-      "path": "pages/my/avatarCropper",
-      "style": {
-        "navigationBarTitleText": "裁剪",
-        "app-plus": {
-          "titleNView": false,
-          "scrollIndicator": "none",
-          "bounce": "none"
-        }
-      }
-    },
-    {
-      "path": "pages/quote/ePolicy",
-      "style": {
-        "navigationBarTitleText": "电子保单",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quoteDetail",
-      "style": {
-        "navigationBarTitleText": "订单详情页",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/imageGalleryPage",
-      "style": {
-        "navigationBarTitleText": "影像资料",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/specialAgreementPage",
-      "style": {
-        "navigationBarTitleText": "特别约定",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quotation",
-      "style": {
-        "navigationBarTitleText": "报价单",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/paymentCode",
-      "style": {
-        "navigationBarTitleText": "付款码",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/queryVehicleModel",
-      "style": {
-        "navigationBarTitleText": "车型列表",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quoteRecords",
-      "style": {
-        "navigationBarTitleText": "报价记录",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quoteRecordSearch",
-      "style": {
-        "navigationBarTitleText": "报价记录搜索页",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/quote/quoteRecordDetail",
-      "style": {
-        "navigationBarTitleText": "报价记录搜索页",
-        "app-plus": {
-          "scrollIndicator": "none", //隐藏滚动条
-          "bounce": "none", //关闭反弹效果
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/chat/chat",
-      "style": {
-        "navigationBarTitleText": "掌柜在线客服",
-        "app-plus": {
-          "scrollIndicator": "none",
-          "bounce": "none"
-        }
-      }
-    },
-    {
-      "path": "pages/orders/orderSearch",
-      "style": {
-        "navigationBarTitleText": "订单搜索页",
-        "app-plus": {
-          "scrollIndicator": "none",
-          "bounce": "none",
-          "titleNView": false
-        }
-      }
-    },
-    {
-      "path": "pages/lottery/index",
-      "style": {
-        "navigationBarTitleText": "抽奖",
-        "app-plus": {
-          "scrollIndicator": "none",
-          "bounce": "none",
-          "titleNView": false
-        }
-      }
-    }
-  ],
-  "globalStyle": {
-    "navigationBarTextStyle": "black",
-    "navigationBarTitleText": "晋掌柜",
-    "navigationBarBackgroundColor": "#fff",
-    // "navigationStyle": "custom",
-    "backgroundColor": "#FFFFFF",
-    "rpxCalcMaxDeviceWidth": 0,
-    // rpx 计算所支持的最大设备宽度,单位 px,默认值为 960
-    "rpxCalcBaseDeviceWidth": 375,
-    "rpxCalcIncludeWidth": 750,
-    "pageOrientation": "portrait"
-  },
-  "tabBar": {
-    "color": "#666",
-    "selectedColor": "#333",
-    "borderStyle": "white",
-    "backgroundColor": "#fdfcf4",
-    "list": [
-      {
-        "pagePath": "pages/index/index",
-        "iconPath": "static/icon/tab/icon_index.png",
-        "selectedIconPath": "/static/icon/tab/icon_index_c.png",
-        "text": "首页"
-      },
-      {
-        "pagePath": "pages/orders/orders1",
-        "iconPath": "static/icon/tab/icon_orders.png",
-        "selectedIconPath": "/static/icon/tab/icon_orders_c.png",
-        "text": "订单"
-      },
-      {
-        "pagePath": "pages/message/message",
-        "iconPath": "/static/icon/tab/icon_message.png",
-        "selectedIconPath": "/static/icon/tab/icon_message_c.png",
-        "text": "消息"
-      },
-      {
-        "pagePath": "pages/my/my",
-        "iconPath": "static/icon/tab/icon_my.png",
-        "selectedIconPath": "/static/icon/tab/icon_my_c.png",
-        "text": "我的"
-      }
-    ]
-  }
-}
+		{
+			"path": "pages/set/resetPassword",
+			"style": {
+				"navigationBarTitleText": "重置密码"
+			}
+		},
+		{
+			"path": "pages/set/accountCancellation",
+			"style": {
+				"navigationBarTitleText": "注销账号"
+			}
+		},
+		{
+			"path": "pages/tool/distributionCenter",
+			"style": {
+				"navigationBarTitleText": "分销中心"
+			}
+		},
+		{
+			"path": "pages/tool/distributeTeam",
+			"style": {
+				"navigationBarTitleText": "分销团队"
+			}
+		},
+		{
+			"path": "pages/tool/distributorDetails",
+			"style": {
+				"navigationBarTitleText": "分销员详情"
+			}
+		},
+		{
+			"path": "pages/tool/distributionOrders",
+			"style": {
+				"navigationBarTitleText": "分销订单"
+			}
+		},
+		{
+			"path": "pages/tool/helpAndSupport",
+			"style": {
+				"navigationBarTitleText": "帮助与客服"
+			}
+		},
+		{
+			"path": "pages/tool/selfReport",
+			"style": {
+				"navigationBarTitleText": "自助报案"
+			}
+		},
+		{
+			"path": "pages/tool/invitationCode",
+			"style": {
+				"navigationBarTitleText": "邀请码"
+			}
+		},
+		{
+			"path": "pages/tool/poster",
+			"style": {
+				"navigationBarTitleText": "海报管理"
+			}
+		},
+		{
+			"path": "pages/my/idPhoto",
+			"style": {
+				"navigationBarTitleText": "证件照片"
+			}
+		},
+		{
+			"path": "pages/my/businessLicense",
+			"style": {
+				"navigationBarTitleText": "展业资格证"
+			}
+		},
+		{
+			"path": "pages/set/logoutAgreement",
+			"style": {
+				"navigationBarTitleText": "注销协议"
+			}
+		},
+		{
+			"path": "pages/tool/poster",
+			"style": {
+				"navigationBarTitleText": "注销协议"
+			}
+		},
+		{
+			"path": "pages/my/avatarCropper",
+			"style": {
+				"navigationBarTitleText": "裁剪",
+				"app-plus": {
+					"titleNView": false,
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/quote/ePolicy",
+			"style": {
+				"navigationBarTitleText": "电子保单",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quoteDetail",
+			"style": {
+				"navigationBarTitleText": "订单详情页",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/imageGalleryPage",
+			"style": {
+				"navigationBarTitleText": "影像资料",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/specialAgreementPage",
+			"style": {
+				"navigationBarTitleText": "特别约定",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quotation",
+			"style": {
+				"navigationBarTitleText": "报价单",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/paymentCode",
+			"style": {
+				"navigationBarTitleText": "付款码",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/queryVehicleModel",
+			"style": {
+				"navigationBarTitleText": "车型列表",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quoteRecords",
+			"style": {
+				"navigationBarTitleText": "报价记录",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quoteRecordSearch",
+			"style": {
+				"navigationBarTitleText": "报价记录搜索页",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/quote/quoteRecordDetail",
+			"style": {
+				"navigationBarTitleText": "报价记录搜索页",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none", //关闭反弹效果
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/chat/chat",
+			"style": {
+				"navigationBarTitleText": "掌柜在线客服",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none"
+				}
+			}
+		},
+		{
+			"path": "pages/orders/orderSearch",
+			"style": {
+				"navigationBarTitleText": "订单搜索页",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none",
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/lottery/index",
+			"style": {
+				"navigationBarTitleText": "抽奖",
+				"app-plus": {
+					"scrollIndicator": "none",
+					"bounce": "none",
+					"titleNView": false
+				}
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "晋掌柜",
+		"navigationBarBackgroundColor": "#fff",
+		// "navigationStyle": "custom",
+		"backgroundColor": "#FFFFFF",
+		"rpxCalcMaxDeviceWidth": 0,
+		// rpx 计算所支持的最大设备宽度,单位 px,默认值为 960
+		"rpxCalcBaseDeviceWidth": 375,
+		"rpxCalcIncludeWidth": 750,
+		"pageOrientation": "portrait"
+	},
+	"tabBar": {
+		"color": "#666",
+		"selectedColor": "#333",
+		"borderStyle": "white",
+		"backgroundColor": "#fdfcf4",
+		"list": [{
+				"pagePath": "pages/index/index",
+				"iconPath": "static/icon/tab/icon_index.png",
+				"selectedIconPath": "/static/icon/tab/icon_index_c.png",
+				"text": "首页"
+			},
+			{
+				"pagePath": "pages/orders/orders1",
+				"iconPath": "static/icon/tab/icon_orders.png",
+				"selectedIconPath": "/static/icon/tab/icon_orders_c.png",
+				"text": "订单"
+			},
+			{
+				"pagePath": "pages/message/message",
+				"iconPath": "/static/icon/tab/icon_message.png",
+				"selectedIconPath": "/static/icon/tab/icon_message_c.png",
+				"text": "消息"
+			},
+			{
+				"pagePath": "pages/my/my",
+				"iconPath": "static/icon/tab/icon_my.png",
+				"selectedIconPath": "/static/icon/tab/icon_my_c.png",
+				"text": "我的"
+			}
+		]
+	}
+}

+ 2 - 2
pages/quote/modules/insuranceInfo.vue

@@ -126,12 +126,12 @@
 					</view>
 				</view>
 				<!-- 客户权益 -->
-				<view class="customerRights dis a-c " @click="customerRightsDetail">
+				<view class="customerRights dis a-c mt-2" @click="customerRightsDetail">
 					<text class="title">客户权益</text>
 					<text class="customerRights-price">¥{{insFeeOrders.availableAmount}}</text>
 					<u-icon name="arrow-right" color="#2B313D" size="14"></u-icon>
 				</view>
-				<view class="specialAgreement dis a-c j-s mt-3">
+				<view class="specialAgreement dis a-c j-s mt-2">
 					<image :src="specialAgreementimg" mode="" style="width: 115rpx;height: 26rpx;">
 					</image>
 					<view class="btn dis a-c j-s">

+ 4 - 4
pages/quote/quoteDetail.vue

@@ -355,7 +355,7 @@
 					name: '影像资料'
 				}],
 				current: 0,
-				orderStatus: '7',
+				orderStatus: '',
 				statusList: [{
 						label: '订单已提交',
 						value: 0,
@@ -445,7 +445,7 @@
 				let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + options.ordersNo);
 				if (res.code == 200) {
 					this.insCompanyVo = res.data.insCompanyVo[0]; //保险公司信息
-					// this.orderStatus = res.data.order.orderStatus; //订单状态
+					this.orderStatus = res.data.order.orderStatus; //订单状态
 					this.companyName = res.data.order.companyName; //保险公司简称
 					this.ordersNo = res.data.order.ordersNo; //订单号
 					this.quoteNo = res.data.order.quoteNo; //报价号
@@ -521,7 +521,7 @@
 					insOrderRightsInfoVo: this.insOrderRightsInfoVo,
 				}
 				uni.navigateTo({
-					url: '/pages/reward/customerBenefit?info=' + JSON.stringify(params)
+					url: '/pages/reward/customerBenefit?info=' + JSON.stringify(params) + '&readOnly=1'
 				})
 			},
 			//更多操作
@@ -1052,7 +1052,7 @@
 	.back {
 		width: 100%;
 		height: 492rpx;
-		position: fixed;
+		position: absolute;
 		top: 0;
 		left: 0;
 		z-index: 0;

+ 16 - 5
pages/quote/quoteRecordDetail.vue

@@ -48,13 +48,13 @@
 			</view>
 			<!--客户权益 -->
 			<view class="customerRights" v-if="insFeeOrders && insFeeOrders.availableAmount">
-				<view class="header  dis a-c j-s ">
+				<view class="header  dis a-c j-s mb-2">
 					<text>客户权益</text>
 					<view class="btn" @click="selectedBenefits">
 						选择权益
 					</view>
 				</view>
-				<text class=" customerRights-content">您可使用本次订单优惠金额为客户选择价值{{insFeeOrders.availableAmount}}元的客户权益</text>
+				<text class=" customerRights-content">可用{{insFeeOrders.availableAmount}}元购买服务赠送客户</text>
 			</view>
 			<view class="view " :class="{ 'collapsed': !isExpanded1 }">
 				<view class="header-title">基本信息</view>
@@ -574,7 +574,7 @@
 <script>
 	import {
 		turnBase64Image,
-		dictionaryMatch
+		dictionaryMatch····
 	} from '@/plugins/utils.js';
 	import Mixin from './Mixin.js';
 	export default {
@@ -631,7 +631,9 @@
 				isFromShare: "",
 			}
 		},
-		onShow() {},
+		onShow() {
+			console.log(this.insOrderRightsInfoDto);
+		},
 		async onLoad(options) {
 			this.loadingShow = true;
 			try {
@@ -731,7 +733,14 @@
 					await this.uploadRetry();
 				}
 				let images = await this.$http.post('/unify/order/imagesUpload', {
-					order: this.order,
+					order: {
+						ordersNo: this.order.ordersNo,
+						quoteNo: this.order.quoteNo
+					},
+					imageVoList: [...this.carImageListId, ...this.ownerImageListId, ...this
+						.policyHolderImageListId, ...this.insuredPersonImageListId
+					]
+
 				}); //影像提交保险公司
 				if (images.code == '200') { //核保
 					// specialAppointmentsVos=[]   特约
@@ -875,6 +884,7 @@
 					this.insOrderRightsInfoVo = res.data.insOrderRightsInfoVo; //权益详情
 					this.imageVoList = res.data.imageVoList;
 					this.order = res.data.order;
+					this.imageEcho(res.data.imageVoList) // 影像获取完毕
 					this.carInfoVo.carNatureCode = dictionaryMatch(this.car_nature_codeoptions, res
 						.data.carInfoVo
 						.carNatureCode)
@@ -901,6 +911,7 @@
 						.data
 						.carInfoVo
 						.energyTypeCode)
+
 				}
 			},
 			//右上角分享

+ 40 - 164
pages/reward/benefitPackage.vue

@@ -2,15 +2,8 @@
 	<view class="page">
 		<!-- 头部切换 -->
 		<u-sticky zIndex="999" customNavHeight="0">
-			<uni-NavBar headerTitle="报价详情" background="#fff" :isSlot="true" :rightSlot="true"
+			<uni-NavBar headerTitle="权益套餐" background="#fff" :isSlot="false" :rightSlot="true"
 				borderBottom="1rpx solid #eee">
-				<template #search>
-					<view class="reward-tabs dis a-c j-c">
-						<u-tabs :list="statusList" @click="tabClick" :current="statusCurrent" :scrollable="true"
-							lineWidth="32" :activeStyle="{ color: '#333', fontWeight: 'bold', fontSize: '36rpx' }"
-							:inactiveStyle="{ color: '#999' }" :itemStyle="{ height: '48rpx' }"></u-tabs>
-					</view>
-				</template>
 			</uni-NavBar>
 			<uni-dropdown :close-on-click-mask="mask" ref="uDropdown" :activeColor="activeColor" border-radius="10"
 				menuIcon="arrow-down-fill" :borderBottom="borderBottom" @menuClick="menuClick">
@@ -65,7 +58,7 @@
 			</uni-dropdown>
 		</u-sticky>
 		<!-- 内容 -->
-		<view class="content-body" v-if="statusCurrent == 0">
+		<view class="content-body">
 			<!-- 权益列表 -->
 			<view class="view-card dis f-c " v-for="(item, index) in benefitPackageList" :key="index"
 				v-if="benefitPackageList.length">
@@ -107,10 +100,9 @@
 				<!-- 明细列表 -->
 				<view class="Detail-list"
 					v-if="item.vehicleTaxIsExpanded && item.rightsDetailsList && item.rightsDetailsList.length > 0">
-					<view class="Detail-header"></view>
 					<view class="view">
 						<view class="dis view-header" v-for="(DetailsItem, DetailsIndex) in item.rightsDetailsList"
-							:key="DetailsIndex">
+							:key="DetailsIndex" @click="details(DetailsItem)">
 							<image class="image" :src="DetailsItem.rightsPicture" mode=""
 								style="height: 116rpx;width: 116rpx;">
 							</image>
@@ -120,47 +112,10 @@
 								<view class="sum dis a-c  mt-1 mb-1">
 									<text class="marketPrice">市场价 {{ DetailsItem.marketPrice }}</text>
 								</view>
-								<text class="plice">¥{{ DetailsItem.settlePrice }}</text>
+								<text class="plice">¥{{ DetailsItem.contractRate }}</text>
 							</view>
 						</view>
 					</view>
-
-					<view class="Detail-footer"></view>
-				</view>
-			</view>
-		</view>
-		<view class="content-body" v-if="statusCurrent == 1">
-			<!-- 权益列表 -->
-			<view class="view-card dis f-c " v-for="(item, index) in privilegeItem" :key="index"
-				v-if="privilegeItem.length">
-				<!-- 权益信息 -->
-				<view class="dis view-header">
-					<!-- 图片 -->
-					<image class="image" :src="item.rightsPicture" mode=""></image>
-					<view class="content dis f-c j-s">
-						<u--text :lines="1" :text="item.rightsName" color="#333" size="16" :bold="true"
-							style="line-height: 1;flex:0  auto;"></u--text>
-						<view class="sum dis a-c  ">
-							<!-- 市场价/ 券数量 -->
-							<text class="marketPrice">市场价 {{ item.marketPrice }}</text>
-							<u-number-box v-model="item.rightsCount" :min="0" style="margin-left: auto;"
-								@change="val => onRightsCountChange(val, index, 'privilegeItem', 'settlePrice')"
-								:asyncChange="true">
-								<view slot="minus" class="numberBoxMinus dis a-c j-c ">
-									<u-icon name="minus" size="12" color="#333" bold></u-icon>
-								</view>
-								<text slot="input" class="numberBoxInput">
-									{{ item.rightsCount }}
-								</text>
-								<view slot="plus" class="numberBoxPlus dis a-c j-c ">
-									<u-icon name="plus" color="#333" size="12" bold></u-icon>
-								</view>
-							</u-number-box>
-						</view>
-						<view class=" dis a-c j-s ">
-							<text class="plice">¥{{ item.settlePrice }}</text>
-						</view>
-					</view>
 				</view>
 			</view>
 		</view>
@@ -187,7 +142,7 @@
 				<text class="marketPrice">市场价:{{ totalMarketPriceCount }}</text>
 			</view>
 			<view class="footer-btn" @click="userRightsSubmit">
-				确认选择
+				立即发放
 			</view>
 		</view>
 		<!-- 省市区组件 -->
@@ -209,7 +164,7 @@
 	export default {
 		data() {
 			return {
-				availableAmount: 20, //可用金额
+				availableAmount: 500, //可用金额
 				loadingShow: true, //加载
 				loadingText: '加载中', //加载提示文字
 				vehicleTaxIsExpanded: false, //明细 展开收起
@@ -242,6 +197,7 @@
 						name: "权益单品",
 					},
 				],
+
 				// 排序
 				sortOrderOptions: [{
 						label: '默认排序',
@@ -296,11 +252,13 @@
 				}
 				// 获取定位城市信息
 				const locationData = await LocationService.initLocation();
-				console.log(locationData);
-				this.queryInfo.countryAll =
-					`${locationData.provinceCode},${locationData.cityCode},${locationData.districtCode}`; //
-				this.location.cityName =
-					`${locationData.provinceName}-${locationData.cityName}-${locationData.districtName}`;
+				if (locationData.provinceCode) {
+					this.queryInfo.countryAll =
+						`${locationData.provinceCode},${locationData.cityCode},${locationData.districtCode}`; //
+					this.location.cityName =
+						`${locationData.provinceName}-${locationData.cityName}-${locationData.districtName}`;
+				}
+
 				await this.getbenefitPackageList(); //权益套餐列表
 				await this.getprivilegeItem(); //权益单品列表
 				this.loadingShow = false;
@@ -316,11 +274,7 @@
 					(sum, item) => sum.plus(new Decimal(item.rightsCount)),
 					new Decimal(0)
 				);
-				const total1 = this.privilegeItem.reduce(
-					(sum, item) => sum.plus(new Decimal(item.rightsCount)),
-					new Decimal(0)
-				);
-				const sum = new Decimal(total).plus(total1);
+				const sum = new Decimal(total);
 				return sum.toString();
 			},
 			//选中售价总和
@@ -334,16 +288,7 @@
 					},
 					new Decimal(0) // 初始值
 				);
-				const total1 = this.privilegeItem.reduce(
-					(sum, item) => {
-						// 计算当前项的 packagePrice * quantity(高精度乘法)
-						const itemTotal = new Decimal(item.settlePrice).times(new Decimal(item.rightsCount));
-						// 累加到总和
-						return sum.plus(itemTotal);
-					},
-					new Decimal(0) // 初始值
-				);
-				const sum = new Decimal(total).plus(total1);
+				const sum = new Decimal(total);
 				return sum.toString(); // 返回字符串
 			},
 			//选中市场价总和
@@ -357,21 +302,17 @@
 					},
 					new Decimal(0) // 初始值
 				);
-				const total1 = this.privilegeItem.reduce(
-					(sum, item) => {
-						// 计算当前项的 packagePrice * quantity(高精度乘法)
-						const itemTotal = new Decimal(item.marketPrice).times(new Decimal(item.rightsCount));
-						// 累加到总和
-						return sum.plus(itemTotal);
-					},
-					new Decimal(0) // 初始值
-				);
-				const sum = new Decimal(total).plus(total1);
+				const sum = new Decimal(total);
 				return sum.toString(); // 返回字符串
 			}
 
 		},
 		methods: {
+			details(item) {
+				// uni.navigateTo({
+				// 	url: '/pages/reward/locationFilter?id=' + item.id,
+				// })
+			},
 			// 权益数量变化监听
 			onRightsCountChange(e, index, name, field) {
 				// 获取当前项
@@ -415,30 +356,9 @@
 				// 收集选择的权益套餐
 				const selectedPackages = this.benefitPackageList
 					.filter(item => item.rightsCount > 0)
-
-
-				// 收集选择的权益单品
-				const selectedItems = this.privilegeItem
-					.filter(item => item.rightsCount > 0)
-
-				// let underwriting = await this.$http.post('/unify/order/underwriting', {
-				// 	order: {
-				// 		ordersNo: '2035985154403934208',
-				// 	},
-				// 	insOrderRightsInfoDto: {
-				// 		insOrderRightsPackageList: [...selectedPackages],
-				// 		insOrderRightsList: [...selectedItems],
-				// 		rightsGrantReceiverDTO: {
-				// 			receiverType: 1,
-				// 			receiverName: "董铠",
-				// 			receiverMobile: 'l8335592986'
-				// 		}
-				// 	}
-				// });
 				let pages = getCurrentPages(); //获取所有页面栈实例列表
 				let prevPage = pages[pages.length - 2]; //上一页页面实例
 				prevPage.$vm.insOrderRightsPackageList = selectedPackages; //选中权益列表
-				prevPage.$vm.insOrderRightsList = selectedItems; //选中权益列表
 				uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
 					delta: 1
 				});
@@ -452,13 +372,12 @@
 						return val;
 					})
 					this.benefitPackageList = res.data.records;
-
 				}
 			},
 			// 获取权益明细
 			async rightsDetails(item, index) {
 				if (!item.rightsDetailsList) {
-					let res = await this.$http.get(`/rightsGrant/package/detail/${item.rightsId}`);
+					let res = await this.$http.get(`/rightsGrant/package/detail/${item.id}`);
 					if (res.code == 200) {
 						this.benefitPackageList[index].rightsDetailsList = res.data; //群益明细赋值对应套餐
 						this.benefitPackageList[index].vehicleTaxIsExpanded = !this.benefitPackageList[index]
@@ -470,16 +389,10 @@
 				}
 
 			},
-			//获取权益单品列表
-			async getprivilegeItem() {
-				let res = await this.$http.post('/rightsGrant/rights/list', this.queryInfo);
-				if (res.code == 200) {
-					this.privilegeItem = res.data.records;
-				}
-			},
+
 			// 省市区选择回调
 			async addressConfirm(e) {
-				this.queryInfo.countryAll = e.codes.join(',');
+				this.queryInfo.countryAll = e.codes.join(',') || "";
 				this.location.cityName = e.fullAddress;
 				this.addressPickershow = false;
 				this.$refs.uDropdown.close();
@@ -492,11 +405,8 @@
 			async querySearch() {
 				console.log(this.statusCurrent);
 				this.$refs.uDropdown.close();
-				if (this.statusCurrent) {
-					await this.getprivilegeItem();
-				} else {
-					await this.getbenefitPackageList();
-				}
+
+				await this.getbenefitPackageList();
 			},
 			//清空价格区间
 			async clearForm() {
@@ -504,11 +414,7 @@
 				this.queryInfo.maxPrice = 1000;
 				this.priceRangeName = "";
 				this.$refs.uDropdown.close();
-				if (this.statusCurrent) {
-					await this.getprivilegeItem();
-				} else {
-					await this.getbenefitPackageList();
-				}
+				await this.getbenefitPackageList();
 			},
 			filterCriteriaClick(item) {
 				this.priceRangeName = item.label;
@@ -519,11 +425,7 @@
 			async sortItem(value) {
 				this.queryInfo.sortType = value;
 				this.$refs.uDropdown.close();
-				if (this.statusCurrent) {
-					await this.getprivilegeItem();
-				} else {
-					await this.getbenefitPackageList();
-				}
+				await this.getbenefitPackageList();
 			},
 			// 价格区间选择
 			onChange(values) {
@@ -543,22 +445,7 @@
 				this.addressPickershow = false;
 				this.$refs.uDropdown.close();
 			},
-			// tabs状态切换
-			async tabClick(e) {
-				this.statusCurrent = e.index;
-				if (this.statusCurrent) {
-					await this.getprivilegeItem();
-				} else {
-					await this.getbenefitPackageList();
-				}
-				if (this.scrollTop > 0) {
-					uni.pageScrollTo({
-						selector: 'content-body', // 滚动到顶部
-						duration: 100, // 动画时长(ms)
-					});
-				}
 
-			},
 		}
 	}
 </script>
@@ -593,8 +480,6 @@
 		font-size: 32rpx;
 	}
 
-
-
 	.slotArea {
 		background-color: #FFFFFF;
 		border-top: 1rpx solid #eee;
@@ -774,30 +659,15 @@
 				padding: 0 30rpx 25rpx;
 				box-sizing: border-box;
 
-
-
-				.Detail-header {
-					width: 100%;
-					height: 30rpx;
-					background: linear-gradient(0deg, #FFFCEA 0%, #FFFFFF 100%);
-					border-radius: 6rpx 6rpx 0rpx 0rpx;
-					border-top: 1rpx solid #FFE1A4;
-				}
-
-				.Detail-footer {
-					width: 100%;
-					height: 30rpx;
-					background: linear-gradient(0deg, #FFFCEA 0%, #FFFFFF 100%);
-					border-radius: 6rpx 6rpx 0rpx 0rpx;
-					border-bottom: 1rpx solid #FFE1A4;
-				}
-
 				.view {
+					background-color: #f8f8f8;
+					border-radius: 6rpx;
+					padding: 10rpx 20rpx;
+
 					.view-header {
-						padding: 0 20rpx 20rpx;
+						padding: 20rpx 0;
 						box-sizing: border-box;
 						border-bottom: 1rpx solid #eee;
-						margin: 20rpx 0;
 					}
 
 					.view-header:last-child {
@@ -895,6 +765,12 @@
 		}
 	}
 
+	.tabView {
+		padding: 20rpx 0;
+		box-sizing: border-box;
+		background-color: #fff;
+	}
+
 	.u-empty {
 		position: absolute;
 		top: 50%;

+ 1099 - 0
pages/reward/benefitSingleItem.vue

@@ -0,0 +1,1099 @@
+<template>
+	<view class="page">
+		<!-- 头部切换 -->
+		<u-sticky zIndex="999" customNavHeight="0" style="position: relative;">
+			<uni-NavBar headerTitle="权益单品" background="#fff" :isSlot="false" :rightSlot="true"
+				borderBottom="1rpx solid #eee">
+			</uni-NavBar>
+			<uni-dropdown :close-on-click-mask="mask" ref="uDropdown" :activeColor="activeColor" border-radius="10"
+				menuIcon="arrow-down-fill" :borderBottom="borderBottom" @menuClick="menuClick">
+				<uni-dropdown-item :title="location.cityName || '地区'"></uni-dropdown-item>
+				<uni-dropdown-item title="价格区间">
+					<view class="slotArea">
+						<view class="p-3">
+							<!-- 双边滑动选择器 -->
+							<view class="slider-header dis a-c j-s ">
+								<text>价值</text>
+								<text>{{ queryInfo.minPrice }}-{{ queryInfo.maxPrice }}元</text>
+							</view>
+							<view style="padding: 0 40rpx;">
+								<uni-tianzai-slider-range :step="50" :min="0" :max="1000"
+									:value="[queryInfo.minPrice, queryInfo.maxPrice]" @change="onChange" @end="onEnd">
+								</uni-tianzai-slider-range>
+							</view>
+							<view class="options dis a-c f-wrap mt-3">
+								<view class="options-card  dis a-c j-c"
+									:class="item.label == priceRangeName ? 'active' : ''"
+									v-for="(item, index) in priceRangeOptions" :key="index"
+									@click="filterCriteriaClick(item)">
+									{{ item.label }}
+								</view>
+							</view>
+						</view>
+						<!-- 按钮 -->
+						<view class="slider-btn dis a-c j-s">
+							<view class="btn dis a-c j-c mr-3" @click="clearForm">
+								清空
+							</view>
+							<view class="btn btns dis a-c j-c" @click="querySearch">
+								确定
+							</view>
+						</view>
+					</view>
+				</uni-dropdown-item>
+				<uni-dropdown-item title="默认排序">
+					<view class="slotArea">
+						<view class="sort">
+							<view class="item dis a-c  " @click="sortItem(item.value)"
+								v-for="(item, index) in sortOrderOptions" :key="index">
+								<text class="text" :class="{ 'sort-active': item.value === queryInfo.sortType }">{{
+									item.label }}</text>
+								<view class="slice dis a-c j-c " v-if="item.value === queryInfo.sortType">
+									<u-icon name="checkmark" color="#333" size="11" :bold="true"></u-icon>
+								</view>
+							</view>
+						</view>
+					</view>
+				</uni-dropdown-item>
+			</uni-dropdown>
+			<view class="tabView">
+				<u-tabs :list="tabsList" @click="tabClick" :current="statusCurrent" :scrollable="true" lineWidth="32"
+					:activeStyle="{ color: '#333', fontWeight: 'bold', fontSize: '30rpx' }"
+					:inactiveStyle="{ color: '#999', fontSize: '30rpx' }" :itemStyle="{ height: '48rpx' }">
+					<view slot="right" class="moreFilters dis a-c j-c" @tap="toggleFilterPanel">
+						<text>更多</text>
+						<u-icon name="list" size="21" color="#999"></u-icon>
+					</view>
+				</u-tabs>
+			</view>
+			<!-- 下拉筛选内容 -->
+			<view class="dropdown-content" :class="{ 'show': showFilterPanel }">
+				<view class="p-3" style="position: relative;">
+					<!-- 筛选条件 -->
+					<view class="overflow-content">
+						<view class="filterCriteria-item mb-3" v-for="(item, index) in tabsList" :key="index">
+							<view class="header dis a-c ">
+								<image src="/static/icon/equity/Tabler.png" mode=""></image>
+								<text class="title">{{ item.name }}</text>
+							</view>
+							<view class="content">
+								<view class="options dis a-c f-wrap mt-3" :class="{ 'collapsed': !item.isExpanded }">
+									<view class="options-card dis a-c j-c" :class="childrenitem.active ? 'active' : ''"
+										v-for="(childrenitem, childrenindex) in item.children" :key="childrenindex"
+										@click="filterOptionClick(childrenitem)">
+										{{ childrenitem.name }}
+									</view>
+								</view>
+								<view class="Collapse dis a-c j-c" @click="toggleExpand(item)">
+									<image src="/static/icon/equity/Vector.png" mode=""
+										:style="{ transform: `rotate(${item.isExpanded ? 180 : 0}deg)` }"></image>
+								</view>
+							</view>
+						</view>
+
+					</view>
+					<view class="backgroundBlur"></view>
+				</view>
+				<view class="dropdown-footer">
+					<view class="btn btns dis a-c j-c" @click="confirmFilter">
+						确认
+					</view>
+				</view>
+			</view>
+			<!-- 下拉遮罩 -->
+			<view class="overlay-mask" :class="{ 'show': showFilterPanel }" @click="closeFilterPanel"></view>
+		</u-sticky>
+		<!-- 内容 -->
+		<view class="content-body">
+			<!-- 权益列表 -->
+			<view class="view-card dis f-c " v-for="(item, index) in privilegeItem" :key="index"
+				v-if="privilegeItem.length">
+				<!-- 权益信息 -->
+				<view class="dis view-header" @click="rightsDetails(item)">
+					<!-- 图片 -->
+					<image class="image" :src="item.rightsPicture" mode=""></image>
+					<view class="content dis f-c j-s">
+						<u--text :lines="1" :text="item.rightsName" color="#333" size="16" :bold="true"
+							style="line-height: 1;flex:0  auto;"></u--text>
+						<view class="sum dis a-c  ">
+							<!-- 市场价/ 券数量 -->
+							<text class="marketPrice">市场价 {{ item.marketPrice }}</text>
+							<u-number-box v-model="item.rightsCount" :min="0" style="margin-left: auto;"
+								@change="val => onRightsCountChange(val, index, 'privilegeItem', 'contractRate')"
+								:asyncChange="true">
+								<view slot="minus" class="numberBoxMinus dis a-c j-c ">
+									<u-icon name="minus" size="12" color="#333" bold></u-icon>
+								</view>
+								<text slot="input" class="numberBoxInput">
+									{{ item.rightsCount }}
+								</text>
+								<view slot="plus" class="numberBoxPlus dis a-c j-c ">
+									<u-icon name="plus" color="#333" size="12" bold></u-icon>
+								</view>
+							</u-number-box>
+						</view>
+						<view class=" dis a-c j-s ">
+							<text class="plice">¥{{ item.contractRate }}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<u-empty v-if="privilegeItem.length == 0" mode="car" icon="/static/image/Empty1.png" text="没有可用的权益券,换个地区试试~"
+			width="120" height="120">
+		</u-empty>
+		<!-- 底部样式 -->
+		<view class="footer dis a-c">
+			<!-- 图标 -->
+			<view class="icon-view dis f-c a-c ">
+				<view class="">
+					<image src="/static/icon/balance/balance.png" mode=""></image>
+					<u-badge numberType="overflow" :max="99" :value="selectedCount" :absolute="true" color="#fff"
+						bgColor="#FF4545" :offset="[-5, -5]" style="font-size: 18rpx;"></u-badge>
+				</view>
+				<text>已选</text>
+			</view>
+			<!-- 价格 -->
+			<view class="dis f-c a-start">
+				<view class="price">
+					<text>¥</text>
+					<text>{{ totalPriceCount }}</text>
+				</view>
+				<text class="marketPrice">市场价:{{ totalMarketPriceCount }}</text>
+			</view>
+			<view class="footer-btn" @click="userRightsSubmit">
+				立即发放
+			</view>
+		</view>
+		<!-- 省市区组件 -->
+		<uni-areaCascadePicker :show="addressPickershow" @confirm="addressConfirm" @close="areaCascadeClose"
+			@cancel="addressPickershow = false"></uni-areaCascadePicker>
+		<!-- 自定义加载动画 -->
+		<u-overlay :show="loadingShow" style="background-color: rgba(255, 255, 255, 0.6);">
+			<view class="dis f-c a-c j-c " style="height: 100%;">
+				<u-loading-icon></u-loading-icon>
+				<text style="color: #909399;" class="mt-1">{{ loadingText }}</text>
+			</view>
+		</u-overlay>
+	</view>
+</template>
+
+<script>
+	import LocationService from '@/utils/location';
+	import Decimal from 'decimal.js';
+	export default {
+		data() {
+			return {
+				availableAmount: 0, //可用金额
+				loadingShow: true, //加载
+				loadingText: '加载中', //加载提示文字
+				vehicleTaxIsExpanded: false, //明细 展开收起
+				// 位置信息
+				location: {
+					cityName: "",
+				},
+				privilegeItem: [], //权益单品列表
+				// 页面初始化查询信息
+				queryInfo: {
+					countryAll: "", //省市区
+					minPrice: 0,
+					maxPrice: 1000,
+					sortType: 0, //排序  0 默认 1低价  2高价
+					classifyList: [],
+					pageNo: 1,
+					pageSize: 20,
+				},
+				addressPickershow: false, //省市区组件
+				mask: true, //点遮罩关闭
+				borderBottom: true,
+				activeColor: '#333', //下拉菜单选中激活项
+				doubleResult: null,
+				singleResult: null,
+				statusCurrent: 0, //状态tabs切换
+				showFilterPanel: false, //更多筛选面板显示控制
+
+				// 筛选选项
+				filterOptions: [{
+						label: '选项1',
+						value: 1,
+						active: false
+					},
+					{
+						label: '选项2',
+						value: 2,
+						active: false
+					},
+					{
+						label: '选项3',
+						value: 3,
+						active: false
+					},
+					{
+						label: '选项4',
+						value: 4,
+						active: false
+					},
+				],
+
+				// 分类tab列表
+				tabsList: [],
+				// 排序
+				sortOrderOptions: [{
+						label: '默认排序',
+						value: 0,
+					},
+					{
+						label: '低价优先',
+						value: 1,
+					},
+					{
+						label: '高价优先',
+						value: 2,
+					}
+				],
+				priceRangeName: "", //区间选中
+				// 价格区间列表
+				priceRangeOptions: [{
+						label: "100元以下",
+						value: [0, 100]
+					},
+					{
+						label: "100-200元",
+						value: [100, 200]
+					},
+					{
+						label: "200-300元",
+						value: [200, 300]
+					},
+					{
+						label: "300-400元",
+						value: [300, 400]
+					},
+					{
+						label: "400-500元",
+						value: [400, 500]
+					},
+					{
+						label: "500-1000元",
+						value: [500, 1000]
+					},
+				],
+			}
+		},
+		onShow() {
+
+		},
+		async onLoad(options) {
+			this.loadingShow = true;
+			try {
+				if (options) {
+					this.availableAmount = options.availableAmount;
+				}
+				// 获取定位城市信息
+				const locationData = await LocationService.initLocation();
+				console.log(locationData);
+				if (locationData.provinceCode) {
+					this.queryInfo.countryAll =
+						`${locationData.provinceCode},${locationData.cityCode},${locationData.districtCode}`; //
+					this.location.cityName =
+						`${locationData.provinceName}-${locationData.cityName}-${locationData.districtName}`;
+				}
+
+				await this.getequityClassification(); //权益分类
+				await this.getprivilegeItem(); //权益单品列表
+				console.log();
+				this.loadingShow = false;
+			} catch (error) {
+				this.loadingShow = false;
+			}
+
+
+		},
+		computed: {
+			selectedCount() {
+				const total = this.privilegeItem.reduce(
+					(sum, item) => sum.plus(new Decimal(item.rightsCount)),
+					new Decimal(0)
+				);
+				const sum = new Decimal(total);
+				return sum.toString();
+			},
+			//选中售价总和
+			totalPriceCount() {
+				const total = this.privilegeItem.reduce(
+					(sum, item) => {
+						// 计算当前项的 packagePrice * quantity(高精度乘法)
+						const itemTotal = new Decimal(item.contractRate).times(new Decimal(item.rightsCount));
+						// 累加到总和
+						return sum.plus(itemTotal);
+					},
+					new Decimal(0) // 初始值
+				);
+				const sum = new Decimal(total);
+				return sum.toString(); // 返回字符串
+			},
+			//选中市场价总和
+			totalMarketPriceCount() {
+				const total = this.privilegeItem.reduce(
+					(sum, item) => {
+						// 计算当前项的 packagePrice * quantity(高精度乘法)
+						const itemTotal = new Decimal(item.marketPrice).times(new Decimal(item.rightsCount));
+						// 累加到总和
+						return sum.plus(itemTotal);
+					},
+					new Decimal(0) // 初始值
+				);
+				const sum = new Decimal(total);
+				return sum.toString(); // 返回字符串
+			}
+
+		},
+		methods: {
+
+			//权益商品详情
+			async rightsDetails(item) {
+				await this.$http.post('/rightsGrant/get/product', {
+					rightsId: item.id
+				}).then(res => {
+					if (res.code == 200) {}
+				});
+			},
+			// 获取权益分类
+			async getequityClassification() {
+				// 递归添加 active 字段
+				const addActiveField = (data) => {
+					if (!data || !Array.isArray(data)) return;
+
+					data.forEach(item => {
+						item.active = false;
+						item.isExpanded = false;
+						if (item.children && Array.isArray(item.children)) {
+							addActiveField(item.children);
+						}
+					});
+				};
+				await this.$http.post('/rightsGrant/get/category').then(res => {
+					if (res.code == 200) {
+						addActiveField(res.data);
+						this.tabsList = res.data;
+						this.queryInfo.classifyList = [this.tabsList[0].id];
+					}
+				});
+			},
+
+			// 权益数量变化监听
+			onRightsCountChange(e, index, name, field) {
+				// 获取当前项
+				const item = this[name][index];
+				// 获取当前数量和新数量
+				const currentCount = item.rightsCount;
+				const newCount = e.value;
+
+				// 计算价格
+				const price = parseFloat(item[field]);
+				// 计算当前总价
+				const currentTotalPrice = parseFloat(this.totalPriceCount);
+
+				// 计算数量变化和价格变化
+				const countChange = newCount - currentCount;
+				const priceChange = countChange * price;
+				// 计算新总价
+				const newTotalPrice = currentTotalPrice + priceChange;
+
+				// 如果是增加数量,检查是否超过可用金额
+				if (countChange > 0 && newTotalPrice > this.availableAmount) {
+					uni.showToast({
+						title: `权益总价不能超过可用金额${this.availableAmount}元`,
+						icon: 'none'
+					});
+				} else {
+					// 无论是减少数量还是增加数量且未超过限制,都允许更新
+					item.rightsCount = newCount;
+				}
+			},
+			// 确认选择
+			async userRightsSubmit() {
+				// 验证是否有选择权益
+				if (parseInt(this.selectedCount) === 0) {
+					uni.showToast({
+						title: '请至少选择一项权益',
+						icon: 'none'
+					});
+					return;
+				}
+				// 收集选择的权益单品
+				const selectedItems = this.privilegeItem
+					.filter(item => item.rightsCount > 0)
+				let pages = getCurrentPages(); //获取所有页面栈实例列表
+				let prevPage = pages[pages.length - 2]; //上一页页面实例
+				console.log(selectedItems);
+				prevPage.$vm.insOrderRightsList = selectedItems; //选中权益列表
+				uni.navigateBack({ //uni.navigateTo跳转的返回,默认1为返回上一级
+					delta: 1
+				});
+			},
+			//获取权益单品列表
+			async getprivilegeItem() {
+				let res = await this.$http.post('/rightsGrant/rights/list', this.queryInfo);
+				if (res.code == 200) {
+					this.privilegeItem = res.data.records;
+				}
+			},
+			// 省市区选择回调
+			async addressConfirm(e) {
+				console.log(e);
+				this.queryInfo.countryAll = e.codes.join(',') || "";
+				this.location.cityName = e.fullAddress;
+				this.addressPickershow = false;
+				this.$refs.uDropdown.close();
+				await this.getprivilegeItem();
+			},
+			// 查看明细
+			detailClick() {
+
+			},
+			async querySearch() {
+				this.$refs.uDropdown.close();
+				await this.getprivilegeItem();
+			},
+			//清空价格区间
+			async clearForm() {
+				this.queryInfo.minPrice = 0;
+				this.queryInfo.maxPrice = 1000;
+				this.priceRangeName = "";
+				this.$refs.uDropdown.close();
+
+				await this.getprivilegeItem();
+			},
+			filterCriteriaClick(item) {
+				this.priceRangeName = item.label;
+				this.queryInfo.minPrice = item.value[0];
+				this.queryInfo.maxPrice = item.value[1];
+			},
+			//排序选择
+			async sortItem(value) {
+				this.queryInfo.sortType = value;
+				this.$refs.uDropdown.close();
+				await this.getprivilegeItem();
+			},
+			// 价格区间选择
+			onChange(values) {
+				this.queryInfo.minPrice = values[0];
+				this.queryInfo.maxPrice = values[1];
+			},
+			// 下拉菜单选项事件
+			menuClick(value) {
+				if (value == 0) {
+					this.addressPickershow = true;
+				}
+			},
+			onEnd(event) {
+				console.log('最终选择:', event.values);
+			},
+			areaCascadeClose() {
+				this.addressPickershow = false;
+				this.$refs.uDropdown.close();
+			},
+			// tabs状态切换
+			async tabClick(e) {
+				console.log(e);
+				this.statusCurrent = e.index;
+				this.queryInfo.classifyList = [e.id];
+				await this.getprivilegeItem();
+				if (this.scrollTop > 0) {
+					uni.pageScrollTo({
+						selector: 'content-body', // 滚动到顶部
+						duration: 100, // 动画时长(ms)
+					});
+				}
+
+			},
+			// 切换筛选面板
+			toggleFilterPanel() {
+				this.showFilterPanel = !this.showFilterPanel;
+			},
+			// 关闭筛选面板
+			closeFilterPanel() {
+				this.showFilterPanel = false;
+			},
+			// 筛选选项点击
+			filterOptionClick(item) {
+				item.active = !item.active;
+				if (item.active) {
+					// 选中:添加到 classifyList
+					if (!this.queryInfo.classifyList.includes(item.id)) {
+						this.queryInfo.classifyList.push(item.id);
+					}
+				} else {
+					// 取消选中:从 classifyList 中删除
+					const index = this.queryInfo.classifyList.indexOf(item.id);
+					if (index > -1) {
+						this.queryInfo.classifyList.splice(index, 1);
+					}
+				}
+			},
+			// 展开收起
+			toggleExpand(item) {
+				console.log(item);
+				item.isExpanded = !item.isExpanded;
+			},
+			// 重置筛选
+			resetFilter() {
+				this.filterOptions.forEach(item => {
+					item.active = false;
+				});
+				this.$u.toast('已重置筛选条件');
+			},
+			// 确认筛选
+			async confirmFilter() {
+				// 获取选中的筛选项
+				const selectedFilters = this.filterOptions.filter(item => item.active);
+				console.log('选中的筛选条件:', selectedFilters);
+				this.closeFilterPanel();
+				await this.getprivilegeItem();
+				this.$u.toast('筛选成功');
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		background-color: #F8F8F8;
+		height: 100vh;
+	}
+
+	.container {
+		padding: 20rpx;
+	}
+
+	.dropdown-title {
+		font-size: 32rpx;
+		color: #333;
+	}
+
+	.reward-tabs {
+		margin-right: 48rpx;
+		flex: 1;
+	}
+
+	/* 自定义tab滑块样式 */
+	::v-deep .u-tabs__wrapper__nav__line {
+		background-color: transparent !important;
+		font-size: 30px;
+	}
+
+	::v-deep .u-tabs__wrapper__nav__item__text {
+		font-size: 32rpx;
+	}
+
+	/* 自定义tab滑块样式 */
+	::v-deep .u-tabs__wrapper__nav__line {
+		background: linear-gradient(90deg, #FDE935 10%, rgba(253, 233, 53, 0.1) 100%) !important;
+		border-radius: 6rpx;
+	}
+
+
+
+	.slotArea {
+		background-color: #FFFFFF;
+		border-top: 1rpx solid #eee;
+
+		.slider-header {
+			text:first-child {
+				font-size: 30rpx;
+				color: #333;
+				font-weight: bold;
+			}
+
+			text:last-child {
+				font-size: 28rpx;
+				color: #333;
+			}
+		}
+
+		.slider-btn {
+			background: #FFFFFF;
+			border-radius: 0rpx 0rpx 20rpx 20rpx;
+			border-top: 1rpx solid #EEEEEE;
+			padding: 30rpx 44rpx;
+			box-sizing: border-box;
+
+			.btn {
+				padding: 18rpx 30rpx;
+				box-sizing: border-box;
+				width: 50%;
+				border-radius: 50rpx 50rpx 50rpx 50rpx;
+				border: 1rpx solid #FDE935;
+				font-size: 30rpx;
+				color: #333;
+			}
+
+			.btns {
+				width: 50%;
+				background: #FDE935;
+				border-radius: 50rpx 50rpx 50rpx 50rpx;
+			}
+		}
+
+		.sort {
+			padding: 30rpx;
+			box-sizing: border-box;
+			display: grid;
+			grid-template-columns: repeat(1, 1fr);
+			grid-template-rows: auto;
+			row-gap: 30rpx;
+
+			.item {
+				text {
+					font-size: 30rpx;
+					color: #333;
+				}
+
+				.slice {
+					margin-left: auto;
+					width: 32rpx;
+					height: 32rpx;
+					background: #FDE935;
+					border-radius: 20rpx 20rpx 20rpx 20rpx;
+				}
+
+			}
+
+			.sort-active {
+				font-weight: bold;
+			}
+
+		}
+
+		.item-box {
+			margin-bottom: 50rpx;
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				border: 1px solid #f2f2f2;
+				color: #333;
+				padding: 8rpx 40rpx;
+				border-radius: 100rpx;
+				margin-top: 30rpx;
+			}
+
+			.active {
+				color: #FFFFFF;
+				background-color: #000;
+			}
+		}
+
+		.options {
+			display: grid;
+			/* 启用网格布局 */
+			grid-template-columns: repeat(3, 1fr);
+			/* 3 列,每列等宽 */
+			grid-template-rows: auto;
+			/* 行高自适应 */
+			row-gap: 30rpx;
+			/* 只设置行间距(上下) */
+			column-gap: 20rpx;
+			/* 列间距设为 0(可选) */
+		}
+
+		.options-card {
+			padding: 11rpx 24rpx;
+			box-sizing: border-box;
+			border-radius: 4rpx 4rpx 4rpx 4rpx;
+			border: 1rpx solid #EEEEEE;
+			font-size: 28rpx;
+			color: #666;
+		}
+
+		.active {
+			background-color: rgba(253, 233, 53, 0.2);
+			border: 1rpx solid #FDE935;
+			color: #333;
+		}
+	}
+
+	.content-body {
+		padding: 20rpx 30rpx 166rpx;
+		box-sizing: border-box;
+		position: relative;
+
+		.view-card {
+			background-color: #fff;
+			border-radius: 10rpx;
+			margin-bottom: 20rpx;
+
+			.view-header {
+				padding: 25rpx 30rpx;
+				box-sizing: border-box;
+
+				.image {
+					width: 136rpx;
+					height: 136rpx;
+					border-radius: 10rpx;
+					flex-shrink: 0;
+					margin-right: 20rpx;
+				}
+
+				.content {
+					flex: 1;
+					min-width: 0;
+					line-height: 1;
+
+					.sum {
+						text {
+							font-size: 24rpx;
+							color: #666;
+						}
+					}
+
+					.plice {
+						font-size: 30rpx;
+						color: #FF540A;
+						font-weight: bold;
+						line-height: 1;
+					}
+
+					.Detail {
+						font-size: 26rpx;
+						color: #FFAC1D;
+						line-height: 1.4;
+
+						text {
+							margin-right: 5rpx;
+						}
+					}
+				}
+			}
+
+
+
+			.Detail-list {
+				padding: 0 30rpx 25rpx;
+				box-sizing: border-box;
+
+
+
+				.Detail-header {
+					width: 100%;
+					height: 30rpx;
+					background: linear-gradient(0deg, #FFFCEA 0%, #FFFFFF 100%);
+					border-radius: 6rpx 6rpx 0rpx 0rpx;
+					border-top: 1rpx solid #FFE1A4;
+				}
+
+				.Detail-footer {
+					width: 100%;
+					height: 30rpx;
+					background: linear-gradient(0deg, #FFFCEA 0%, #FFFFFF 100%);
+					border-radius: 6rpx 6rpx 0rpx 0rpx;
+					border-bottom: 1rpx solid #FFE1A4;
+				}
+
+				.view {
+					.view-header {
+						padding: 0 20rpx 20rpx;
+						box-sizing: border-box;
+						border-bottom: 1rpx solid #eee;
+						margin: 20rpx 0;
+					}
+
+					.view-header:last-child {
+						border-bottom: none;
+					}
+				}
+			}
+		}
+	}
+
+	// 步进器自定义样式
+	.numberBoxMinus {
+		width: 32rpx;
+		height: 32rpx;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		border: 1rpx solid #FDE935;
+	}
+
+	.numberBoxInput {
+		font-size: 30rpx;
+		color: #333;
+		padding: 0 20rpx;
+		box-sizing: border-box;
+		text-align: center;
+	}
+
+	.numberBoxPlus {
+		width: 32rpx;
+		height: 32rpx;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		background-color: #FDE935;
+		border: 1rpx solid #FDE935;
+	}
+
+	.footer {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		padding: 25rpx 30rpx 55rpx;
+		box-sizing: border-box;
+		background: linear-gradient(0deg, #FFFFFF 0%, rgba(255, 254, 245, 0.7) 100%);
+		border-radius: 0rpx 0rpx 0rpx 0rpx;
+		backdrop-filter: blur(12rpx);
+
+		.icon-view {
+			margin-right: 30rpx;
+
+			>view {
+				position: relative;
+
+				image {
+					width: 48rpx;
+					height: 48rpx;
+				}
+			}
+
+
+
+			text {
+				font-size: 20rpx;
+				color: #333;
+			}
+		}
+
+		.price {
+			text:nth-child(1) {
+				font-size: 28rpx;
+				color: #FF540A;
+			}
+
+			text:nth-child(2) {
+				font-size: 42rpx;
+				color: #FF540A;
+			}
+
+		}
+
+		.marketPrice {
+			font-size: 20rpx;
+			color: #999;
+			letter-spacing: 1rpx;
+			margin-left: 4rpx;
+		}
+
+		.footer-btn {
+			padding: 20rpx 68rpx;
+			box-sizing: border-box;
+			background: #FDE935;
+			border-radius: 58rpx 58rpx 58rpx 58rpx;
+			font-size: 36rpx;
+			color: #1F1F1F;
+			font-weight: bold;
+			margin-left: auto;
+		}
+	}
+
+	.tabView {
+		padding: 13rpx 30rpx;
+		box-sizing: border-box;
+		background-color: #fff;
+	}
+
+	.u-empty {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -50%);
+		/* 反向偏移自身宽高的50% */
+	}
+
+	.moreFilters {
+		font-size: 30rpx;
+		color: #999;
+	}
+
+	/* 下拉筛选内容 */
+	.dropdown-content {
+		position: fixed;
+		top: 182rpx;
+		left: 0;
+		right: 0;
+		height: 0px;
+		background: white;
+		overflow: hidden;
+		z-index: 100;
+		transition: height 0.4s ease;
+		border-radius: 0 0 20rpx 20rpx;
+
+		.overflow-content {
+			overflow-y: auto;
+			height: 926rpx;
+			padding-bottom: 45rpx;
+			box-sizing: border-box;
+
+		}
+
+		.backgroundBlur {
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			right: 0;
+			width: 100%;
+			height: 115rpx;
+			background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 40%, #FFFFFF 100%);
+			backdrop-filter: blur(12rpx);
+			-webkit-backdrop-filter: blur(12rpx);
+
+			mask-image: linear-gradient(to top,
+					rgba(0, 0, 0, 1) 0%,
+					rgba(0, 0, 0, 0.6) 60%,
+					rgba(0, 0, 0, 0) 100%);
+			-webkit-mask-image: linear-gradient(to top,
+					rgba(0, 0, 0, 1) 0%,
+					rgba(0, 0, 0, 0.6) 60%,
+					rgba(0, 0, 0, 0) 100%);
+		}
+
+
+		// 筛选条件
+		.filterCriteria-item {
+			>.header {
+				image {
+					width: 32rpx;
+					height: 32rpx;
+					margin-right: 6rpx;
+				}
+
+				.title {
+					flex: 1;
+					font-size: 30rpx;
+					color: #333;
+					font-weight: bold;
+				}
+			}
+
+			.content {
+				display: flex;
+				align-items: start;
+				justify-content: space-between;
+
+				.options {
+					display: grid;
+					grid-template-columns: repeat(3, 1fr);
+					grid-template-rows: auto;
+					row-gap: 30rpx;
+					column-gap: 20rpx;
+					transition: all 0.3s ease; // 添加这行
+
+					&.collapsed {
+						// 添加这个嵌套样式
+						overflow: hidden;
+						max-height: 160rpx; // 两行的高度,可以根据实际效果调整
+					}
+
+					>.options-card {
+						padding: 11rpx 40rpx;
+						box-sizing: border-box;
+						background: #F5F5F5;
+						border-radius: 4rpx;
+						font-size: 28rpx;
+						color: #333;
+					}
+
+					.active {
+						background: #FDE935;
+					}
+				}
+
+				.Collapse {
+					margin-top: 30rpx;
+					width: 50rpx;
+					height: 50rpx;
+					background: #F5F5F5;
+					border-radius: 50%;
+
+					image {
+						width: 20rpx;
+						height: 12rpx;
+					}
+
+				}
+			}
+
+		}
+
+		// 底部按钮
+		.footer {
+			padding: 30rpx 0;
+			border-top: 1rpx solid #eee;
+
+			.btn {
+				padding: 18rpx 30rpx;
+				box-sizing: border-box;
+				width: 50%;
+				border-radius: 50rpx;
+				border: 1rpx solid #FDE935;
+				font-size: 30rpx;
+				color: #333;
+			}
+
+			.btns {
+				width: 50%;
+				background: #FDE935;
+				border-radius: 50rpx;
+			}
+		}
+	}
+
+	.dropdown-content.show {
+		opacity: 1;
+		height: 1126rpx;
+		overflow: auto;
+	}
+
+	/* 下拉区域底部按钮 */
+	.dropdown-footer {
+		position: absolute;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		padding: 30rpx 44rpx;
+		box-sizing: border-box;
+		border-top: 1rpx solid #eee;
+		background-color: #fff;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.btn {
+			padding: 18rpx 30rpx;
+			box-sizing: border-box;
+			width: 100%;
+			border-radius: 50rpx;
+			border: 1rpx solid #FDE935;
+			font-size: 30rpx;
+			color: #1f1f1f;
+			background: #FDE935;
+		}
+
+
+	}
+
+	/* 遮罩层 */
+	.overlay-mask {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: rgba(0, 0, 0, 0.6);
+		display: none;
+		z-index: 99;
+	}
+
+	.overlay-mask.show {
+		display: block;
+	}
+</style>

+ 243 - 62
pages/reward/customerBenefit.vue

@@ -5,42 +5,64 @@
 				borderBottom="1rpx solid #eee" @backKeyChange="backKeyChange">
 			</uni-NavBar>
 			<!-- 客户信息 -->
-			<view class="customerInfo dis a-c " @click="receiverShow=true">
-				<text class="title">接收客户</text>
-				<text class="phone">{{customerInfo.name}}-{{customerInfo.mobile}}</text>
-				<u-icon name="arrow-right" color="#333" size="12" :bold="true"></u-icon>
-			</view>
-			<view class="customerInfo dis a-c " @click="adjustDiscountAmount">
-				<text class="title">可用金额</text>
-				<text class="phone">{{insFeeOrders.availableAmount}}</text>
-				<u-icon v-if="insFeeOrders.totalExportKeepPointPremium==0" name="arrow-right" color="#333" size="12"
-					:bold="true"></u-icon>
-			</view>
-			<view class="promptText">
-				<text>您可使用本次订单优惠金额为客户选择价值{{insFeeOrders.availableAmount}}元的客户权益</text>
+			<view class="" style="background-color: #f8f8f8;">
+				<view class="customerInfo dis a-c " @click="readOnly=='1'?'':receiverShow=true">
+					<text class="title">接收客户</text>
+					<text class="phone">{{customerInfo.name}}-{{customerInfo.mobile}}</text>
+					<u-icon name="arrow-right" color="#333" size="12" :bold="true"></u-icon>
+				</view>
+				<view class="customerInfo  mt-2">
+					<view class="dis a-c">
+						<text class="title">出单费用</text>
+						<text class="phone">¥{{insFeeOrders.totalExportPremium}}</text>
+					</view>
+					<view class="dis a-c" style="margin: 24rpx 0 ;">
+						<text class="title">本次使用</text>
+						<view class="editTag dis a-c " v-if="insFeeOrders.totalExportKeepPointPremium==0 &&  !readOnly"
+							@click="adjustDiscountAmount">
+							<image src="/static/icon/edit.png" mode=""></image>
+							<text>修改</text>
+						</view>
+						<text class="phone">¥{{insFeeOrders.availableAmount}}</text>
+					</view>
+					<view class="dis a-c" style="margin-bottom: 24rpx;">
+						<text class="title">已使用</text>
+						<text class="phone">¥{{insFeeOrders.usedAmount}}</text>
+					</view>
+					<view class="dis a-c mb-1">
+						<text class="title">剩余金额</text>
+						<text class="phone">¥{{insFeeOrders.remainingAmount}}</text>
+					</view>
+					<text class="noteText">出单后,计算出可使用金额,录入本次使用金额,可使用该金额为用户购买权益,剩余金额会返回到钱包,可提现。</text>
+				</view>
 			</view>
 		</u-sticky>
 		<!-- 选中权益 -->
 		<view class="" style="padding-bottom: 226rpx;">
 			<view class="content-body mt-2">
-				<view class="header dis a-c j-s ">
-					<text class="title">客户权益</text>
-					<view class="select-btn" @click="selectedBenefits">去选择</view>
+				<view class="header dis a-c j-s mb-2">
+					<text class="title">权益套餐</text>
+					<view class="select-btn" v-if="!readOnly" @click="selectedBenefits('insOrderRightsList',1)">去选择
+					</view>
 				</view>
+				<text class="noteText">使用可用金额,可为接收人选购权益套餐 和 权益单品,2选1</text>
 				<!-- 权益列表 -->
-				<view class="view-card dis f-c " v-for="(item,index) in benefitPackageList" :key="index">
+				<view class="view-card dis f-c " v-for="(item,index) in insOrderRightsPackageList" :key="index">
 					<!-- 权益信息 -->
 					<view class="dis view-item">
 						<!-- 图片 -->
-						<image class="image" :src="item.packageImage || item.rightsPicture" mode=""></image>
+						<image class="image" src="/static/image/banner.png" mode=""></image>
 						<view class="content dis f-c j-s">
-							<u--text :lines="1" :text="item.equityPackageName || item.rightsName" color="#333" size="16"
-								:bold="true" style="line-height: 1;flex:0  auto;"></u--text>
+							<u--text :lines="1" :text="item.equityPackageName" color="#333" size="16" :bold="true"
+								style="line-height: 1;flex:0  auto;"></u--text>
 							<view class="sum dis a-c  ">
 								<!-- 市场价/ 券数量 -->
 								<text class="couponCount mr-2" v-if="item.totalNumber">券数量{{item.totalNumber}}张</text>
-								<text class="marketPrice">市场价 {{item.totalPackagePrice || item.marketPrice}}</text>
-								<u-number-box v-model="item.rightsCount" :min="0" style="margin-left: auto;">
+								<text class="marketPrice">市场价 {{item.totalPackagePrice}}</text>
+								<u-number-box v-if="!readOnly" v-model="item.rightsCount" :min="0"
+									style="margin-left: auto;"
+									@change="val => onRightsCountChange(val, index, 'insOrderRightsPackageList', 'packagePrice',1)"
+									:asyncChange="true">
 									<view slot="minus" class="numberBoxMinus dis a-c j-c ">
 										<u-icon name="minus" size="12" color="#333" bold></u-icon>
 									</view>
@@ -51,11 +73,12 @@
 										<u-icon name="plus" color="#333" size="12" bold></u-icon>
 									</view>
 								</u-number-box>
+								<text v-else
+									style="margin-left: auto;font-size: 30rpx;color: #333;">x{{item.rightsCount}}</text>
 							</view>
 							<view class=" dis a-c j-s ">
-								<text class="plice">¥{{item.packagePrice || item.settlePrice}}</text>
-								<view class="Detail  dis a-c "
-									@click="item.vehicleTaxIsExpanded=!item.vehicleTaxIsExpanded">
+								<text class="plice">¥{{item.packagePrice}}</text>
+								<view class="Detail  dis a-c " @click="rightsDetails(item,index)">
 									<text>查看明细</text>
 									<u-icon :name="item.vehicleTaxIsExpanded?'arrow-up':'arrow-down'" color="#FFAC1D"
 										size="12"></u-icon>
@@ -64,6 +87,71 @@
 						</view>
 					</view>
 					<!-- 明细列表 -->
+					<view class="Detail-list"
+						v-if="item.vehicleTaxIsExpanded && item.rightsDetailsList && item.rightsDetailsList.length > 0">
+						<view class="content">
+							<view class="dis view-item" v-for="(DetailsItem, DetailsIndex) in item.rightsDetailsList"
+								:key="DetailsIndex">
+								<image class="image" :src="DetailsItem.rightsPicture" mode=""
+									style="height: 116rpx;width: 116rpx;">
+								</image>
+								<view class="content dis f-c j-s ">
+									<u--text :lines="1" :text="DetailsItem.rightsName" color="#333" size="16"
+										:bold="true" style="line-height: 1;flex:0  auto;"></u--text>
+									<view class="sum dis a-c  mt-1 mb-1">
+										<text class="marketPrice">市场价 {{DetailsItem.marketPrice}}</text>
+									</view>
+									<text class="plice">¥{{DetailsItem.contractRate}}</text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="content-body mt-2">
+				<view class="header dis a-c j-s mb-2">
+					<text class="title">权益单品</text>
+					<view class="select-btn" v-if="!readOnly" @click="selectedBenefits('insOrderRightsPackageList',2)">
+						去选择</view>
+				</view>
+				<text class="noteText">使用可用金额,可为接收人选购权益套餐 和 权益单品,2选1</text>
+				<!-- 权益列表 -->
+				<view class="view-card dis f-c " v-for="(item,index) in insOrderRightsList" :key="index">
+					<!-- 权益信息 -->
+					<view class="dis view-item">
+						<!-- 图片 -->
+						<image class="image" :src="item.rightsPicture" mode=""></image>
+						<view class="content dis f-c j-s">
+							<u--text :lines="1" :text="item.rightsName" color="#333" size="16" :bold="true"
+								style="line-height: 1;flex:0  auto;"></u--text>
+							<view class="sum dis a-c  ">
+								<!-- 市场价/ 券数量 -->
+								<text class="couponCount mr-2" v-if="item.totalNumber">券数量{{item.totalNumber}}张</text>
+								<text class="marketPrice">市场价 {{ item.marketPrice}}</text>
+								<u-number-box v-if="!readOnly" v-model="item.rightsCount" :min="0"
+									style="margin-left: auto;"
+									@change="val => onRightsCountChange(val, index, 'insOrderRightsList', 'contractRate',2)"
+									:asyncChange="true">
+									<view slot="minus" class="numberBoxMinus dis a-c j-c ">
+										<u-icon name="minus" size="12" color="#333" bold></u-icon>
+									</view>
+									<text slot="input" class="numberBoxInput">
+										{{ item.rightsCount }}
+									</text>
+									<view slot="plus" class="numberBoxPlus dis a-c j-c ">
+										<u-icon name="plus" color="#333" size="12" bold></u-icon>
+									</view>
+								</u-number-box>
+
+							</view>
+							<view class=" dis a-c j-s ">
+								<text class="plice">¥{{item.contractRate}}</text>
+								<text v-if="readOnly"
+									style="margin-left: auto;font-size: 30rpx;color: #333;">x{{item.rightsCount}}</text>
+							</view>
+						</view>
+					</view>
+					<!-- 明细列表 -->
 					<view class="Detail-list"
 						v-if="item.vehicleTaxIsExpanded && item.rightsDetailsList && item.rightsDetailsList.length > 0">
 						<view class="Detail-header"></view>
@@ -79,7 +167,7 @@
 									<view class="sum dis a-c  mt-1 mb-1">
 										<text class="marketPrice">市场价 {{DetailsItem.marketPrice}}</text>
 									</view>
-									<text class="plice">¥{{DetailsItem.settlePrice}}</text>
+									<text class="plice">¥{{DetailsItem.contractRate}}</text>
 								</view>
 							</view>
 						</view>
@@ -111,25 +199,10 @@
 
 			</template>
 		</uni-Popup>
-		<!-- 底部样式 -->
-		<view class="footer dis f-c ">
-			<!-- 图标 -->
-			<view class="footer-item dis a-c ">
-				<text>优惠价</text>
-				<text>¥{{insFeeOrders.availableAmount}}</text>
-			</view>
-			<view class="footer-item dis a-c mt-2 mb-2">
-				<text>已使用</text>
-				<text>-¥{{insFeeOrders.usedAmount}}</text>
-			</view>
-			<view class="footer-item dis a-c ">
-				<text>剩余</text>
-				<text>{{insFeeOrders.remainingAmount}}</text>
-			</view>
-		</view>
 		<!-- 权益优惠金额弹窗 -->
-		<uni-Popup :show="discountAmountShow" @close="discountAmountShow=false" :closeable="false" headerTitle="优惠金额"
-			overflow="auto" :headerStyle="{fontSize:'36rpx'}" maxHeight="980rpx" mode="center" width="90%">
+		<uni-Popup :show="discountAmountShow" @close="discountAmountShow=false" :closeable="false"
+			:headerTitle="`优惠金额(可用${insFeeOrders.availableAmount})`" overflow="auto" :headerStyle="{fontSize:'36rpx'}"
+			maxHeight="980rpx" mode="center" width="90%">
 			<template #content>
 				<view class="discountAmount">
 					<text class="text ">本次订单共计优惠 <text
@@ -166,6 +239,7 @@
 </template>
 
 <script>
+	import Decimal from 'decimal.js';
 	export default {
 		data() {
 			return {
@@ -207,26 +281,56 @@
 				insOrderRightsList: [], //权益单品
 				insFeeOrders: {}, //费用信息
 				ordersNo: "",
+				readOnly: "",
 			}
 		},
 		onShow() {
 
 		},
 		computed: {
-			benefitPackageList() {
-				const list = [...this.insOrderRightsPackageList, ...this.insOrderRightsList]
-				return list
-			}
+			//选中套餐售价总和
+			totalPriceCount() {
+				const total = this.insOrderRightsPackageList.reduce(
+					(sum, item) => {
+						// 计算当前项的 packagePrice * quantity(高精度乘法)
+						const itemTotal = new Decimal(item.packagePrice).times(new Decimal(item.rightsCount));
+						// 累加到总和
+						return sum.plus(itemTotal);
+					},
+					new Decimal(0) // 初始值
+				);
+				const sum = new Decimal(total);
+				return sum.toString(); // 返回字符串
+			},
+			//选中单品售价总和
+			totalPriceCount1() {
+				const total = this.insOrderRightsList.reduce(
+					(sum, item) => {
+						// 计算当前项的 packagePrice * quantity(高精度乘法)
+						const itemTotal = new Decimal(item.contractRate).times(new Decimal(item.rightsCount));
+						// 累加到总和
+						return sum.plus(itemTotal);
+					},
+					new Decimal(0) // 初始值
+				);
+				const sum = new Decimal(total);
+				return sum.toString(); // 返回字符串
+			},
 		},
 		onLoad(options) {
 			this.loadingShow = true;
 			try {
 				if (options) {
+					console.log(options);
+					if (options.readOnly && options.readOnly == 1) { //等于1页面只读
+						this.readOnly = options.readOnly;
+					}
 					let data = JSON.parse(options.info)
 					console.log(data);
 					this.insFeeOrders = data.insFeeOrders;
 					this.ordersNo = data.ordersNo;
 					this.insOrderRightsPackageList = data.insOrderRightsInfoVo.insOrderRightsPackageList;
+
 					this.insOrderRightsList = data.insOrderRightsInfoVo.insOrderRightsList;
 					this.recipientList = [{
 						title: '车主',
@@ -247,6 +351,55 @@
 
 		},
 		methods: {
+			// 权益数量变化监听
+			onRightsCountChange(e, index, name, field, type) {
+				if (e.value == 0) {
+					return this[name].splice(index, 1);
+				}
+				// 获取当前项
+				const item = this[name][index];
+				// 获取当前数量和新数量
+				const currentCount = item.rightsCount;
+				const newCount = e.value;
+
+				// 计算价格
+				const price = parseFloat(item[field]);
+				// 计算当前总价
+				const currentTotalPrice = parseFloat(type == 1 ? this.totalPriceCount : this.totalPriceCount1);
+				// 计算数量变化和价格变化
+				const countChange = newCount - currentCount;
+				const priceChange = countChange * price;
+				// 计算新总价
+				const newTotalPrice = currentTotalPrice + priceChange;
+
+				// 如果是增加数量,检查是否超过可用金额
+				if (countChange > 0 && newTotalPrice > this.insFeeOrders.availableAmount) {
+					uni.showToast({
+						title: `权益总价不能超过可用金额${this.insFeeOrders.availableAmount}元`,
+						icon: 'none'
+					});
+				} else {
+					// 无论是减少数量还是增加数量且未超过限制,都允许更新
+					item.rightsCount = newCount;
+				}
+			},
+
+			// 获取权益明细
+			async rightsDetails(item, index) {
+				if (!item.rightsDetailsList) {
+					let res = await this.$http.get(`/rightsGrant/package/detail/${item.id}`);
+					if (res.code == 200) {
+						this.insOrderRightsPackageList[index].rightsDetailsList = res.data; //群益明细赋值对应套餐
+						this.insOrderRightsPackageList[index].vehicleTaxIsExpanded = !this.insOrderRightsPackageList[
+								index]
+							.vehicleTaxIsExpanded; //展开收起
+					}
+				} else {
+					this.insOrderRightsPackageList[index].vehicleTaxIsExpanded = !this.insOrderRightsPackageList[index]
+						.vehicleTaxIsExpanded; //展开收起
+				}
+
+			},
 			async adjustAmount() {
 				this.$refs.uForm.validate().then(async formRes => {
 					let res = await this.$http.post('/insFeeOrder/updateAvailableAmount', {
@@ -264,7 +417,7 @@
 
 			},
 			adjustDiscountAmount() {
-				if (this.insFeeOrders.totalExportKeepPointPremium != 0) {
+				if (this.insFeeOrders.totalExportKeepPointPremium == 0) {
 					this.discountAmountShow = true
 				}
 			},
@@ -287,9 +440,15 @@
 				});
 			},
 			// 选择权益
-			selectedBenefits() {
+			selectedBenefits(type, index) {
+				if (this[type].length > 0) {
+					return uni.showToast({
+						title: '套餐和单品只能选择其中1种',
+						icon: 'none'
+					})
+				}
 				uni.navigateTo({
-					url: '/pages/reward/benefitPackage?availableAmount=' + this.insFeeOrders.availableAmount,
+					url: `/pages/reward/${index==1?'benefitPackage':'benefitSingleItem'}?availableAmount=${this.insFeeOrders.availableAmount}`,
 				})
 			},
 			recipientchange(item) {
@@ -330,18 +489,30 @@
 		.u-icon {
 			margin-top: 4rpx;
 		}
-	}
 
-	.customerInfo:last-child {
-		border-top: 1rpx solid #eee;
+		.editTag {
+			padding: 4rpx 20rpx;
+			box-sizing: border-box;
+			font-size: 24rpx;
+			margin-right: 4rpx;
+			color: #333;
+			background: rgba(253, 233, 53, 0.2);
+			border-radius: 30rpx 30rpx 30rpx 30rpx;
+			border: 1rpx solid #FDE935;
+
+			image {
+				width: 24rpx;
+				height: 24rpx;
+				margin-right: 10rpx;
+			}
+		}
+
 	}
 
-	.promptText {
-		padding: 10rpx 30rpx;
-		box-sizing: border-box;
-		font-size: 26rpx;
-		color: #333;
-		background-color: #FFFCE4;
+	.noteText {
+		font-size: 24rpx;
+		color: #999;
+
 	}
 
 	.content-body {
@@ -421,14 +592,20 @@
 
 
 			.Detail-list {
-				padding: 0 30rpx 25rpx;
+				padding: 10rpx 20rpx;
 				box-sizing: border-box;
+				margin-top: 20rpx;
+				background-color: #f8f8f8;
+				border-radius: 6rpx;
 
 				.content {
+
+
 					.view-item {
-						padding: 0 20rpx 20rpx;
+						padding: 20rpx 0;
 						box-sizing: border-box;
 						border-bottom: 1rpx solid #eee;
+
 					}
 
 					/* 为最后一个view-item去掉边框 */
@@ -457,6 +634,10 @@
 
 		.view-card:last-child {
 			border-bottom: none;
+
+			>.view-item {
+				padding-bottom: 0;
+			}
 		}
 	}
 

+ 5 - 4
pages/reward/locationFilter.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
-
+		<web-view
+			src="https://life.baoxianzhanggui.com/custh5/#/packageF/pages/home/details-food-channel?productId=2069610944385826817"></web-view>
 	</view>
 </template>
 
@@ -8,14 +9,14 @@
 	export default {
 		data() {
 			return {
-
+				categoryId: "",
 			}
 		},
 		onShow() {
 
 		},
-		onLoad() {
-
+		onLoad(options) {
+			this.categoryId = options.id;
 		},
 		methods: {
 

+ 9 - 3
pages/tool/invitationCode.vue

@@ -18,12 +18,12 @@
 					</image>
 					<text class="mt-3 mb-5" style="font-size: 28rpx;color: #666;">扫描二维码,加入我的团队</text>
 				</view>
-				<view class="operation  dis a-c ">
+				<view class="operation  dis a-c j-c">
 					<view class="dis f-c a-c" @click="saveImage">
 						<image src="/static/icon/tool/saveImg.png" mode=""></image>
 						<text class="mt-1">保存图片</text>
 					</view>
-					<view class="dis f-c a-c" @click="shareLink(recommendUrl)" style="margin: 0 85rpx;">
+					<view class="dis f-c a-c" @click="shareLink(recommendUrl)" >
 						<image src="/static/icon/tool/link.png" mode=""></image>
 						<text class="mt-1">复制链接</text>
 					</view>
@@ -36,7 +36,7 @@
 				</view>
 			</view>
 		</view>
-		<text @click="arr">注册</text>
+		<!-- <text @click="arr">注册</text> -->
 	</view>
 </template>
 
@@ -257,6 +257,12 @@
 		}
 
 		.operation {
+			width: 100%;
+			display: grid;
+			grid-template-columns: repeat(3, 1fr);
+			grid-template-rows: auto;
+			row-gap: 30rpx;
+			column-gap: 20rpx;
 			margin-bottom: 50rpx;
 
 			view {

BIN
static/icon/equity/Tabler.png


BIN
static/icon/equity/Vector.png