Explorar o código

feat: 添加静态充值中心和协议详情页面

新增静态充值中心页面(zf_static)和协议详情页面(webview),包括相关配置和样式文件
更新app.json添加新页面路由,清理project.private.config.json中的测试配置
wanggao hai 1 mes
pai
achega
d623fec4ea

+ 3 - 1
app.json

@@ -1,5 +1,7 @@
 {
   "pages": [
+    "pages/zf_static/index",
+    "pages/webview/index",
     "pages/index/index",
     "pages/back_sand/back",
     "pages/zf/index"
@@ -12,4 +14,4 @@
   },
 
   "sitemapLocation": "sitemap.json"
-}
+}

BIN=BIN
image/coin.png


+ 8 - 0
pages/webview/index.js

@@ -0,0 +1,8 @@
+Page({
+  data: {
+    // 这里可以后续扩展动态获取协议内容
+  },
+  onLoad(options) {
+    // 不再需要解析 URL
+  },
+})

+ 3 - 0
pages/webview/index.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "协议详情"
+}

+ 58 - 0
pages/webview/index.wxml

@@ -0,0 +1,58 @@
+<view class="agreement-container">
+  <view class="title">用户充值协议</view>
+  <view class="content">
+    <view class="p">尊敬的用户您好,感谢您使用喵音Live平台充值服务(以下简称“充值服务”)。本《充值协议》(以下简称“本协议”)声擎未来(武汉)科技有限公司(以下简称“平台”或“我们”)关于您使用平台账号充值功能并接受增值服务所订立的。</view>
+
+    <view class="h3">一、协议的确认</view>
+    <view class="p">1. 喵音Live在此特别提醒您,为了保障您的权益,请在使用充值服务之前,认真阅读并充分理解本协议。请您务必审慎阅读并充分理解各条款内容,特别是免除或者减轻平台责任的条款以及管辖与法律适用条款,相关条款可能以加粗形式提示您注意。如果您对本协议的任何条款表示异议,或者无法准确理解本协议,请不要使用充值服务。您使用充值服务视为您对本协议全部内容的接受,也意味着您将接受本协议以及未来针对本协议更新版本条款的约束。本平台可能会不定期更新本协议内容,您可在本平台查阅最新版本协议条款。更新后的协议条款一旦公布即替代原来的协议条款。协议条款更新后,如您不同意接受,您应停止使用充值服务。为使用本服务,您还应当遵守 《用户协议》《个人信息保护政策》以及喵音Live平台不时公布的其它各项平台规则、制度规范。</view>
+    <view class="p">2. 您应保证您为年满18周岁的自然人,本平台将依赖您提供的个人信息判断您是否为未成年人,任何18周岁以下的未成年人均不得使用本平台的任何服务。如果您年满18周岁但存在其他不具备与您行为相适应的民事行为能力的情形,请在监护人的陪同下阅读本协议。请确保您的监护人同意您的所有行为,在此情况下,您及您的监护人应依照法律规定承担因此而导致的一切后果。</view>
+
+    <view class="h3">二、服务规则</view>
+    <view class="p">1. “钻石”是本平台向您提供的用于在本平台上进行相关消费的虚拟货币,您可使用“钻石”购买虚拟礼物等本平台认可范围内的商品或服务。如您通过本平台认可的其他平台(以下简称“第三方平台”)使用本平台服务的,购买及使用“钻石”的规则以本平台认定为准。</view>
+    <view class="p">2. “钻石”和人民币的兑换比例以您购买“钻石”时的服务页面显示为准。本平台有权根据相关法律规定、主管部门要求、业务开展情况等因素单方面变更该兑换比例。充值成功后,您可按照本平台相关规则使用充值账号内的“钻石”。一旦充值成功,除法律规定的情形外,本平台不会就账户内的“钻石”余额提供任何退还或逆向兑换(即“钻石”兑换为人民币或其他货币)服务。同时,本平台亦有权基于交易安全等方面的考虑不时设定涉及交易的相关事项,包括但不限于交易限额、交易次数等。您了解,本平台的前述设定可能对您的交易造成一定不便,您对此没有异议。</view>
+    <view class="p">3. 请您务必使用本平台指定的充值方式进行充值,若您以非法的方式,或使用非本平台所指定的充值方式进行充值,本平台不保证该充值顺利或者正确完成。若因此造成您权益受损,本平台不会做出任何补偿或赔偿,本平台同时保留随时封禁/限制账号功能及使用充值服务的权利。</view>
+    <view class="p">4. 充值时,请您务必仔细了解本协议及本平台不时公布和更新的平台规则,并根据平台操作提示,确认自己的账号并选择相关操作选项。您应确保是充值账户的权利人,可合法、有效使用充值账户且未侵害任何第三方合法权益,否则,因此造成充值账户所有人损失的,您应单独负责解决由此产生的纠纷并承担全部法律责任。</view>
+    <view class="p">5. 如果本平台发现因平台系统故障或其他任何原因导致的充值处理错误,无论有利于平台还是有利于您,本平台都有权在以平台公告或其他合理方式通知您后纠正该错误。如果该措施导致您实际收到的“钻石”数量少于您应获得的“钻石”,则您有权通知本平台。本平台在调查及确认该处理错误后会尽快将差额补足至您的账户中。如果该错误导致您实际收到的“钻石”数量多于您应获得的“钻石”,则无论错误的性质和原因如何,本平台有权从您的账户中直接扣除多得的“钻石”。</view>
+    <view class="p">6. 您可随时通过【我的-钻石充值】查看“钻石”的余额情况和充值记录。如您对该记录有异议,应立即向本平台提出,平台调查核对后确有错误的,将予以更正;否则您同意将平台上的交易记录作为“钻石”交易及余额情况的唯一有效依据。</view>
+    <view class="p">7. 您通过第三方支付平台充值时可能产生由第三方支付平台收取的手续费等费用,请您务必注意该渠道充值操作页面提示,并自行了解收费规则,相关费用须由您自行承担。在任何情况下,对于您购买“钻石”时涉及由第三方提供服务的责任由该第三方承担,本平台不承担该等责任。</view>
+    <view class="p">8. 平台向您提供服务时,可能需要您填写或授权平台使用部分识别您身份的个人信息,包括但不限于您的账号、手机号、短信校验码等,若该类信息不完整,则无法使用本服务或在使用过程中受到限制。您应确保账号及其绑定的电子邮箱、手机号和第三方支付平台支付账户均为您本人合法所有。</view>
+    <view class="p">9. 关于您个人信息的使用和保护本款未列明事项,可参考平台的《个人信息保护政策》。</view>
+    <view class="p">10. 您知悉并同意,为保证您充分享受本服务,平台可能通过电子邮件、站内信、消息、通知、手机短信、网站公告或其他方式,向您提供本服务相关信息,并向您发送促销信息或其他相关商业信息。如您不愿接受这些信息,您可以通过手机短信中提供的退订方式进行退订,若您对退订相关内容存在疑问,可以联系平台客服。</view>
+    <view class="p">11. 如您有开票相关需求,请联系平台客服进行咨询和操作,另我平台暂时没有为企业用户提供相关服务。</view>
+
+    <view class="h3">三、注意事项</view>
+    <view class="p">1. 您承诺对您充值的产品享有合法权益,保证不会侵犯任何第三方的合法权益,保证不会违反国家相关法律法规的规定。例如,您是您所充值的手机号码的合法使用人或取得了其合法使用人的授权。</view>
+    <view class="p">2. 您的个人信息是平台识别您身份的依据,请您务必妥善保管并正确提供。您在充值和使用本平台服务的过程中使用您个人信息进行的任何操作、发出的任何指令均视为您本人做出。因您的原因造成的账户、密码等信息被冒用、盗用或非法使用,由此引起的一切风险、责任、损失、费用等应由您自行承担。</view>
+    <view class="p">3. 基于不同的终端以及您的使用习惯,平台可能采取不同的验证措施识别您的身份。例如您的钻石账户在新设备首次登录的,平台可能通过密码加校验码的方式识别您的身份。</view>
+    <view class="p">4. 如您发现有他人冒用或盗用您的账号、密码,或您的手机、其他有关设备丢失等账号风险时,请您立即通过平台联系客服。</view>
+    <view class="p">5. 账号仅限您本人使用,不可转让、借用、赠与、继承,但账户内的相关财产权益可被依法继承。</view>
+    <view class="p">6. 因您自身的原因导致本平台无法提供充值服务或提供充值服务时发生任何错误而产生的任何损失,由您自行负责,本平台不提供退、换服务,亦不会作出任何补偿或赔偿,包括但不限于:(1)您未按照本协议或本平台不时公布和更新的平台规则进行充值操作;(2)因您账号失效、丢失、被封停;(3)因您自身输入账号错误、操作不当等因素造成错充账号、错选充值种类、错选充值金额;(4)因您绑定的第三方支付机构账户之原因导致的损失或责任,包括但不限您使用未经认证的第三方支付账户或使用非您本人的第三方支付账户,您的第三方支付账户被冻结、查封等;(5)因您设置或管理密码不当导致的财产损失;(6)因您个人的故意或重大过失所造成的财产损失。</view>
+    <view class="p">7. 您在使用本平台服务时,如出现违反国家法律法规、本协议约定或其他平台规则(包括但不限于《用户协议》、《用户公约》)的情形,本平台有权随时中断或终止向用户提供充值服务并且暂时或永久封禁用户的账号。账号封禁后至解禁(如有)前,用户账户上的剩余“钻石”将被暂时冻结或全部扣除,不可继续用于购买本平台上的虚拟商品或服务,同时不予返还您购买“钻石”时的现金价值。同时账号封禁也会影响到您在本平台上其他功能或权益的使用。</view>
+
+    <view class="h3">四、不可抗力及其他免责事由</view>
+    <view class="p">1. 您理解并同意,在使用本服务的过程中,可能会遇到不可抗力等风险因素,使本服务发生中断、延迟或受阻。不可抗力是指不能预见、不能克服并不能避免且对一方或双方造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、瘟疫流行和风暴等以及社会事件如战争、动乱、政府行为等。出现上述情况时,平台将努力在第一时间与相关单位配合,及时进行修复,但是由此给您造成的损失平台在法律允许的范围内免责。</view>
+    <view class="p">2. 平台作为技术服务平台仅按现状提供服务,在法律允许的范围内,平台对以下情形导致的服务中断、延迟受阻不承担责任:(1)受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;(2)用户、第三方或平台的电脑软件、系统、硬件、网络和通信线路出现故障;(3)其他平台无法控制或合理预见的情形。</view>
+    <view class="p">3. 您理解并同意,在使用本服务的过程中,可能会遇到其他网络信息或其他用户行为带来的风险,平台不对因侵权行为给您造成的损害负责。这些风险包括但不限于:(1)使用本协议项下的服务时,遭受他人误导、欺骗或其他导致或可能导致的任何心理.生理上的伤害以及经济上的损失;(2)其他因网络信息或用户行为引起的风险。</view>
+
+    <view class="h3">五、法律适用与管辖</view>
+    <view class="p">1. 本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国法律。</view>
+    <view class="p">2. 本协议签订地为中华人民共和国北京市朝阳区。</view>
+    <view class="p">3. 若您和平台之间发生任何纠纷或争议,首先应友好协商解决;协商不成的,您同意将纠纷或争议提交本协议签订地(即北京市朝阳区)有管辖权的人民法院管辖。</view>
+
+    <view class="h3">六、附则</view>
+    <view class="p">1. 本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。</view>
+    <view class="p">2. 《用户协议》、《个人信息保护政策》、《喵音Live专项治理规范与文明公约》与平台不时公示的各项规则对相关事项有约定,而本协议条款没有约定的,以各项规则约定为准。本协议部分内容被有管辖权的法院认定为违法或无效的,不影响其他内容的效力。</view>
+    <view class="p">3. 本协议所有条款的标题仅为阅读方便,不作为本协议解释的依据。</view>
+    <view class="p">4. 如有任何疑问,请您联系服务号客服:喵音Live。</view>
+
+    <view class="h3">七、充值安全提示</view>
+    <view class="p">为保护您的账号及资安全,喵音Live提示:</view>
+    <view class="p" style="font-weight: bold; color: #ff4444;">禁止非法交易账号</view>
+    <view class="p" style="font-weight: bold; color: #ff4444;">禁止参与电信诈骗等非法行为</view>
+    <view class="p" style="font-weight: bold; color: #ff4444;">禁止使用非官方渠道充值</view>
+    <view class="p" style="font-weight: bold; color: #ff4444;">谨防上当受骗</view>
+    <view class="p" style="font-weight: bold; color: #ff4444;">理性消费</view>
+    
+    <view class="footer">MewLive运营团队</view>
+  </view>
+</view>

+ 39 - 0
pages/webview/index.wxss

@@ -0,0 +1,39 @@
+.agreement-container {
+  padding: 20px;
+  background-color: #fff;
+  min-height: 100vh;
+}
+
+.title {
+  font-size: 20px;
+  font-weight: bold;
+  text-align: center;
+  margin-bottom: 20px;
+  color: #333;
+}
+
+.content {
+  font-size: 14px;
+  color: #666;
+  line-height: 1.8;
+}
+
+.h3 {
+  font-size: 16px;
+  font-weight: bold;
+  color: #333;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+
+.p {
+  margin-bottom: 10px;
+  text-align: justify;
+}
+
+.footer {
+  margin-top: 40px;
+  text-align: right;
+  font-weight: bold;
+  padding-bottom: 40px;
+}

+ 50 - 0
pages/zf_static/index.js

@@ -0,0 +1,50 @@
+Page({
+  data: {
+    selectedIndex: 0,
+    agreementVisible: false,
+    rechargeId: '',
+    rechargeOptions: [
+      { amount: '10万币', price: 10000 },
+      { amount: '20万币', price: 20000 },
+      { amount: '50万币', price: 50000 },
+      { amount: '100万币', price: 100000 },
+      { amount: '200万币', price: 200000 },
+      { amount: '500万币', price: 500000 },
+      { amount: '1000万币', price: 1000000 },
+      { amount: '2000万币', price: 2000000 },
+      { amount: '5000万币', price: 5000000 },
+    ],
+  },
+
+  selectOption(e) {
+    const index = e.currentTarget.dataset.index
+    this.setData({ selectedIndex: index })
+  },
+
+  handleIdInput(e) {
+    this.setData({
+      rechargeId: e.detail.value,
+    })
+  },
+
+  handleLogin() {
+    wx.showToast({
+      title: 'ID不正确',
+      icon: 'none',
+    })
+  },
+
+  showAgreement() {
+    this.setData({ agreementVisible: true })
+  },
+
+  hideAgreement() {
+    this.setData({ agreementVisible: false })
+  },
+
+  openAgreementLink() {
+    wx.navigateTo({
+      url: '/pages/webview/index',
+    })
+  },
+})

+ 4 - 0
pages/zf_static/index.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "MewLive充值中心",
+  "navigationStyle": "custom"
+}

+ 84 - 0
pages/zf_static/index.wxml

@@ -0,0 +1,84 @@
+<view class="container">
+  <!-- Header Title -->
+  <view class="header-title">MewLive充值中心</view>
+
+  <!-- Logo -->
+  <view class="logo-section">
+    <image class="logo-icon" src="/image/logo.png" mode="aspectFit"></image>
+    <text class="logo-text">MewLive</text>
+  </view>
+
+  <!-- ID Input -->
+  <view class="input-section">
+    <input 
+      class="id-input" 
+      type="text" 
+      placeholder="请输入要充值的ID" 
+      placeholder-style="color: #999;"
+      bindinput="handleIdInput"
+      value="{{rechargeId}}"
+    />
+  </view>
+
+  <!-- Recharge Options -->
+  <view class="recharge-section">
+    <view class="section-title">选择要充值的金币数量</view>
+    <view class="recharge-grid">
+      <view 
+        class="recharge-item {{selectedIndex === index ? 'active' : ''}}" 
+        wx:for="{{rechargeOptions}}" 
+        wx:key="index"
+        bindtap="selectOption"
+        data-index="{{index}}"
+      >
+        <view class="coin-icon">
+          <image class="coin-img" src="/image/coin.png" mode="aspectFit"></image>
+        </view>
+        <view class="amount">{{item.amount}}</view>
+        <view class="price">¥{{item.price}}</view>
+      </view>
+    </view>
+  </view>
+
+  <!-- Login Button -->
+  <view class="action-section">
+    <button class="login-btn" bindtap="handleLogin">确认充值</button>
+    <view class="agreement-text">
+      我已阅读并同意 <text class="link" bindtap="showAgreement">《用户充值协议》</text>
+    </view>
+  </view>
+
+  <!-- Tips -->
+  <view class="tips-section">
+    <view class="tips-title">温馨提示:</view>
+    <view class="tips-content">
+      <view class="tip-line">1. 充值前请确定您已满 18 周岁并具有完全民事行为能力。</view>
+      <view class="tip-line">2. 安全账号转账、理赔转账、刷单、代充均为骗局,请认真核实并确认</view>
+      <view class="tip-line">3. 大额充值,请确保支付账户余额充足</view>
+      <view class="tip-line">4. 如有疑问,请联系服务号客服</view>
+    </view>
+  </view>
+
+  <!-- Agreement Popup (Page Container) -->
+  <page-container 
+    show="{{agreementVisible}}" 
+    round="true" 
+    overlay="true" 
+    position="bottom" 
+    custom-style="height: 80%; background: #fff;"
+    bind:clickoverlay="hideAgreement"
+  >
+    <view class="agreement-popup">
+      <view class="popup-header">
+        <text>用户充值协议</text>
+        <view class="close-btn" bindtap="hideAgreement">×</view>
+      </view>
+      <view class="agreement-content">
+         <text style="padding: 20px 0; display: block; text-align: center; color: #666; font-size: 14px;">
+           点击下方按钮查看《用户充值协议》
+         </text>
+         <button bindtap="openAgreementLink" type="primary" style="width: 80%;">查看协议详情</button>
+      </view>
+    </view>
+  </page-container>
+</view>

+ 196 - 0
pages/zf_static/index.wxss

@@ -0,0 +1,196 @@
+page {
+  background-color: #F5F7FA;
+  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
+}
+
+.container {
+  padding: 16px;
+  min-height: 100vh;
+  box-sizing: border-box;
+}
+
+.header-title {
+  text-align: center;
+  font-size: 18px;
+  font-weight: 500;
+  color: #000;
+  margin-bottom: 20px;
+  margin-top: 10px;
+}
+
+.logo-section {
+  display: flex;
+  align-items: center;
+  margin-bottom: 20px;
+  justify-content: flex-start;
+}
+
+.logo-icon {
+  width: 24px;
+  height: 24px;
+  margin-right: 8px;
+  border-radius: 4px;
+}
+
+.logo-text {
+  font-size: 20px;
+  font-weight: 700;
+  color: #1a1a2e;
+  font-style: italic;
+}
+
+.input-section {
+  width: 100%;
+  background-color: #fff;
+  border-radius: 12px;
+  padding: 20px 16px;
+  margin-bottom: 24px;
+  box-shadow: 0 2px 8px rgba(0,0,0,0.02);
+}
+
+.id-input {
+  width: 100%;
+  height: 48px;
+  background-color: #F5F7FA;
+  border-radius: 8px;
+  padding: 0 16px;
+  box-sizing: border-box;
+  font-size: 16px;
+  color: #333;
+  text-align: center;
+}
+
+.recharge-section {
+  margin-bottom: 32px;
+}
+
+.section-title {
+  font-size: 14px;
+  color: #666;
+  margin-bottom: 12px;
+}
+
+.recharge-grid {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+
+.recharge-item {
+  width: 31%;
+  background-color: #fff;
+  border-radius: 12px;
+  padding: 16px 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  border: 1px solid #eee;
+  position: relative;
+  overflow: hidden;
+  margin-bottom: 10px;
+  box-sizing: border-box;
+}
+
+.recharge-item.active {
+  border-color: #7B68EE;
+  background-color: #F8F6FF;
+}
+
+.coin-icon {
+  margin-bottom: 8px;
+}
+
+.coin-img {
+  width: 20px;
+  height: 20px;
+}
+
+.amount {
+  font-size: 20px;
+  font-weight: bold;
+  color: #333;
+  margin-bottom: 4px;
+}
+
+.price {
+  font-size: 14px;
+  color: #666;
+}
+
+.action-section {
+  width: 100%;
+  padding: 12px;
+  margin-bottom: 40px;
+}
+
+.login-btn {
+  background: linear-gradient(90deg, #9F7FFF, #7B68EE);
+  color: white;
+  border: none;
+  height: 48px;
+  line-height: 48px;
+  font-size: 16px;
+  border-radius: 24px;
+  margin-bottom: 12px;
+  box-shadow: 0 4px 12px rgba(123, 104, 238, 0.3);
+}
+
+.agreement-text {
+  text-align: center;
+  font-size: 12px;
+  color: #999;
+}
+
+.link {
+  color: #7B68EE;
+}
+
+.tips-section {
+  padding-bottom: 30px;
+}
+
+.tips-title {
+  font-size: 16px;
+  font-weight: 500;
+  color: #333;
+  margin-bottom: 12px;
+}
+
+.tips-content {
+  font-size: 12px;
+  color: #888;
+  line-height: 1.8;
+}
+
+.tip-line {
+  margin-bottom: 4px;
+}
+
+/* Popup Styles */
+.agreement-popup {
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+}
+
+.popup-header {
+  padding: 16px;
+  text-align: center;
+  font-weight: bold;
+  border-bottom: 1px solid #eee;
+  position: relative;
+}
+
+.close-btn {
+  position: absolute;
+  right: 16px;
+  top: 16px;
+  font-size: 20px;
+  color: #999;
+}
+
+.agreement-content {
+  flex: 1;
+  padding: 16px;
+  overflow-y: auto;
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 100
project.config.json


+ 2 - 21
project.private.config.json

@@ -19,26 +19,7 @@
     "bigPackageSizeSupport": false,
     "useIsolateContext": false
   },
-  "condition": {
-    "miniprogram": {
-      "list": [
-        {
-          "name": "pages/zf/index",
-          "pathName": "pages/zf/index",
-          "query": "orderNo=1136771751015669719",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "pages/zf/index",
-          "pathName": "pages/zf/index",
-          "query": "orderNo=1141431750957944924",
-          "launchMode": "default",
-          "scene": null
-        }
-      ]
-    }
-  },
-  "projectname": "%E5%85%A8%E6%94%AF%E4%BB%98%E6%94%B6%E9%93%B6%E5%8F%B0",
+  "condition": {},
+  "projectname": "wxminipay",
   "libVersion": "3.8.9"
 }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio