浏览代码

app接口联调

TANGSHIZHE 4 年之前
父节点
当前提交
4b4295d1fb

+ 11 - 1
jydocs-mobile/src/api/main.ts

@@ -48,10 +48,20 @@ export function getDetails (data: any) {
 
 // 文库购买
 export function getDocPay (data: any) {
-  //   data = qs.stringify(data)
+  data = qs.stringify(data)
   return $request({
     url: '/user/buy',
     method: 'post',
     params: data
   })
 }
+
+// 剑鱼积分详情
+export function getListDetail (data: any) {
+  data = qs.stringify(data)
+  return $request({
+    url: '/getList',
+    method: 'post',
+    params: data
+  })
+}

+ 9 - 1
jydocs-mobile/src/router/modules/main.ts

@@ -16,7 +16,7 @@ export default [
     }
   },
   {
-    path: '/purchase',
+    path: '/purchase/:id',
     name: 'purchase',
     component: () => import(/* webpackChunkName: "test" */ '@/views/purchase/purchase.vue'),
     meta: {
@@ -30,5 +30,13 @@ export default [
     meta: {
       title: '文库详情'
     }
+  },
+  {
+    path: '/onlineterm',
+    name: 'onlineterm',
+    component: () => import(/* webpackChunkName: "test" */ '@/views/purchase/onlineterm.vue'),
+    meta: {
+      title: '剑鱼标讯线上服务条款'
+    }
   }
 ]

+ 10 - 1
jydocs-mobile/src/store/modules/main.ts

@@ -6,7 +6,8 @@ import {
   getCashOutInfo,
   submitCashOutInfo,
   getDocPay,
-  getDetails
+  getDetails,
+  getListDetail
 } from '@/api/main'
 
 interface InterfaceStore<S> extends StoreOptions<S> {
@@ -156,6 +157,14 @@ const modulesOption: modulesOption = {
         console.log(res)
         return res.data
       } catch (error) {}
+    },
+    // 剑鱼积分详情
+    async getListDetail (state, data) {
+      try {
+        const res = await getListDetail(data)
+        console.log(res)
+        return res.data
+      } catch (error) {}
     }
   },
   getters: {}

+ 84 - 0
jydocs-mobile/src/views/purchase/onlineterm.vue

@@ -0,0 +1,84 @@
+<template>
+  <div class="onlineterm">
+    <div class="j-main">
+      <div class="content">
+          <div class="content_title">剑鱼文库线上购买及服务条款</div>
+          <div class="content_text">
+            <p>感谢使用剑鱼文库,请您仔细阅读以下条款,如果您对本协议的任何条款表示异议,您可以选择暂不进入;进入文库代表您已认可本协议下全部规定,并愿意守约。</p>
+            <p>第一章 总则</p>
+            第1条 剑鱼标讯:指由北京剑鱼信息技术有限公司运营并管理的产品,产品形态包括www.jianyu360.com网站、剑鱼标讯微信公众号、剑鱼标讯APP等,剑鱼标讯为其用户提供招标信息产品与服务。剑鱼文库所有权、经营权、管理权均属剑鱼标讯。
+            第2条 凡是注册用户和浏览用户均为剑鱼文库用户(以下统称“用户”)。
+            第3条 本服务条款是北京剑鱼信息技术有限公司及剑鱼标讯与您就剑鱼文库的相关事项所订立的有效合约。
+            <p>第二章 用户守则</p>
+            第4条 用户的言行不得违反《计算机信息网络国际联网安全保护管理办法》、《互联网信息服务管理办法》、《互联网电子公告服务管理规定》、《维护互联网安全的决定》、《互联网新闻信息服务管理规定》等相关法律规定。
+            第5条 不得在剑鱼文库传播或以其它方式传送含有下列内容之一的信息: 1) 反对宪法所确定的基本原则的; 2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的; 3) 损害国家荣誉和利益的; 4) 煽动民族仇恨、民族歧视、破坏民族团结的; 5) 破坏国家宗教政策,宣扬邪教和封建迷信的; 6) 散布谣言,扰乱社会秩序,破坏社会稳定的; 7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的; 8) 侮辱或者诽谤他人,侵害他人合法权利的; 9) 煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;10)以非法民间组织名义活动的;11)含有虚假、有害、胁迫、侵害他人隐私、骚扰、侵害、中伤、粗俗、猥亵、或其它道德上令人反感的内容; 12) 含有中国法律、法规、规章、条例以及任何具有法律效力之规范所限制或禁止的其它内容的。
+            第6条 用户应承担一切因其个人的行为而直接或间接导致的民事或刑事法律责任,因用户行为给剑鱼标讯造成损失的,用户应负责赔偿。
+            第7条 剑鱼标讯拥有对违反本协议的用户进行处理的权力,直至禁止其在剑鱼文库文库下载文档、视频、音频。
+            第8条 任何用户发现文库文档、视频、音频内容涉嫌侮辱或者诽谤他人、侵害他人合法权益的或违反文库协议的,有权到剑鱼文库客服处进行申诉下线。
+            <p>第三章 权利声明</p>
+            第9条 剑鱼文库的用户可以为介绍、评论、研究等目的,在合理的范围内适当引用他人已经发表的作品,但应当注明作者姓名、作品名称,并不得侵犯著作权人及其他权利人的合法权益。
+            第10条 当权利人发现剑鱼文库的内容侵犯其合法权益时,权利人应事先向剑鱼标讯提出异议,剑鱼文库将依据相关的法律法规对作品进行相应的处理。
+            第11条 用户从剑鱼文库中获得的信息,未经事先许可,用户不得以盈利为目的自己或提供给第三方进行使用(符合法律规定的“合理使用”条件的除外)。否则,一切法律后果由该用户或第三方自负。
+            第12条 未经剑鱼标讯事先许可,禁止使用任何机器人、蜘蛛、其他自动设备,或手动程序来监视或复制剑鱼文库网页或其所包含的任何内容。否则,剑鱼标讯有权依法追究法律责任。
+            <p>第四章 隐私保护</p>
+            第13条  您在使用剑鱼文库的过程中,不会披露任何您的个人信息和下载使用信息,但以下情况除外:
+            (1)事先获得您的授权;
+            (2)根据法律、法规、法律程序的要求或政府主管部门的强制性要求;
+            (3)在法律要求的范围内,为维护公共利益和剑鱼文库合法利益,例如查找、预防、处理欺诈或安全方面的问题;
+            (4)符合相关服务条款或使用协议的规定。
+            <p>第五章 免责声明</p>
+            第14条 鉴于剑鱼文库以非人工检索方式、根据您键入的关键字自动显示搜索内容,除剑鱼文库注明之服务条款外,其他一切因使用剑鱼文库而可能遭致的意外、疏忽、侵权及其造成的损失,剑鱼文库对其概不负责,亦不承担任何法律责任。
+            第15条 任何通过使用剑鱼文库内容,链接到第三方网页均系他人制作或提供,您可能从搜索结果获得资讯及享用服务,剑鱼文库对其合法性概不负责,亦不承担任何法律责任。
+            第16条 剑鱼文库搜索结果根据您键入的关键字自动搜索获得并生成,不代表剑鱼文库赞成搜索结果显示的内容或立场。
+            第17条 您应该对使用文库搜索的结果自行承担风险。剑鱼文库不做任何形式的保证:不保证搜索结果满足您的要求,不保证搜索服务不中断,不保证搜索结果的安全性、正确性、及时性、合法性。因网络状况、通讯线路、第三方网站等任何原因而导致您不能正常使用剑鱼文库,剑鱼文库不承担任何法律责任。
+            <p>第六章 附则</p>
+            第18条 剑鱼文库如因系统维护或升级等而需暂停服务时,将事先公告。
+            第19条 剑鱼文库有权根据中华人民共和国法律、法规及规范性文件的变化以及互联网及自身业务的发展情况,不断修改和完善包括文库协议在内的相关条款。
+            第20条 本协议未涉及的问题参见国家有关法律法规,当本协议与国家法律法规冲突时,以国家法律法规为准。
+            <p>第七章 法律适用及争议解决</p>
+            第21条 本使用条款受中华人民共和国法律管辖。
+            第22条 在执行本使用条款程中如发生纠纷,双方应及时协商解决。协商不成时,任何一方可直接向北京拓普及剑鱼标讯所在地人民法院提起诉讼。
+            第23条 在法院审理期间,除提交法院审理的事项外,本服务条款其他部分仍应继续履行。
+          </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import { Component, Vue } from 'vue-property-decorator'
+
+@Component({
+  name: 'onlineterm',
+  components: {
+  }
+})
+
+export default class extends Vue {
+}
+</script>
+
+<style lang="scss">
+  .onlineterm {
+      .content{
+          padding: 12px 16px 0 16px;
+          text-align: justify;
+          .content_title{
+            color: #171826;
+            font-weight: medium;
+            font-size: 13px;
+            line-height: 20px;
+            letter-spacing: 0px;
+            text-align: left;
+          }
+          .content_text{
+            margin-top: 12px;
+            color: #5F5E64;
+            font-weight: medium;
+            font-size: 12px;
+            line-height: normal;
+            letter-spacing: 0px;
+            text-align: left;
+          }
+      }
+  }
+</style>

+ 84 - 8
jydocs-mobile/src/views/purchase/purchase.vue

@@ -19,6 +19,20 @@
           </div>
         </div>
       </div>
+      <div class="rechargehave_pay_content">
+        <div class="pay_title">
+          支付方式
+        </div>
+        <div class="jianyu_pay">
+          <div class="jy_pay_left">
+            <span class="jy_money">剑鱼币</span>
+            <span class="jy_tip">(剩余{{response.balance}}剑鱼币)</span>
+          </div>
+          <div class="jy_pay_icon">
+            <img src="../../assets/icon/checked.png" class="icon_right_option" />
+          </div>
+        </div>
+      </div>
       <div class="docs_phone">
         <!-- <van-cell-group>
           <van-field v-model="tel" type="number" label="手机号码" placeholder="请输入手机号码" />
@@ -45,7 +59,7 @@
         </div>
       </div>
       <div class="readly">
-        <van-checkbox v-model="checked" checked-color="#2ABED1" >我已阅读,理解并接受<a href="javascript:;" class="clause" @click="clause()">《剑鱼伙伴服务条款》</a></van-checkbox>
+        <van-checkbox v-model="checked" checked-color="#2ABED1" >我已阅读并同意<a href="javascript:;" class="clause" @click="clause()">《剑鱼文库线上购买及服务条款》</a><a href="javascript:;" class="clause" @click="clause2()">《剑鱼标讯产品与服务线上购买服务条款》</a></van-checkbox>
       </div>
       <div class="apply_footer">
         <button class="apply_button" :disabled="!this.checked" @click="exchange()">确定兑换</button>
@@ -71,15 +85,18 @@ const regPhoneExg = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|1
   methods: {
     ...mapActions({
       getDocPay: 'main/getDocPay',
-      getDetails: 'main/getDetails'
+      getDetails: 'main/getDetails',
+      getListDetail: 'main/getListDetail'
     })
   }
 })
 export default class extends Vue {
   protected getDocPay!: any
   protected getDetails!: any
+  protected getListDetail!: any
   checked = false
   tel = ''
+  query: any
   $router: any
   response = {
     docName: '',
@@ -87,16 +104,19 @@ export default class extends Vue {
     downTimes: '',
     docFileSize: '',
     docPageSize: '',
-    previewImgId: ''
+    previewImgId: '',
+    balance: ''
   }
 
   created () {
+    this.query = location.href.split('/')[location.href.split('/').length - 1] // 获取id
+    console.log(this.query)
     this.getWordInfor()
   }
 
   // 文档信息
-  getWordInfor () {
-    this.getDetails({ docId: '4f6c00ba-8882-11eb-8699-0050568f51e7' }).then((res: any) => {
+  async getWordInfor () {
+    this.getDetails({ docId: this.query }).then((res: any) => {
       console.log(res)
       const item = res.data.detail
       if (res.error_code === 0) {
@@ -108,13 +128,21 @@ export default class extends Vue {
         this.response.previewImgId = item.previewImgId
       }
     })
+
+    this.getListDetail({ B: true }).then((res) => {
+      console.log(res)
+      if (res.error_code === 0) {
+        this.response.balance = res.points.balance
+      }
+    })
   }
 
   // 确定兑换
   exchange () {
-    this.getDocPay({ docId: '4f6c00ba-8882-11eb-8699-0050568f51e7', phone: '18439509554' }).then((res: any) => {
+    this.getDocPay({ docId: this.query, phone: this.tel }).then((res: any) => {
       console.log(res)
-      if (res.data === 'success') {
+      if (res.error_code === 0) {
+        sessionStorage.setItem('paydata', JSON.stringify(res.data))
         this.$router.push('/purchasesuccess')
       }
     })
@@ -132,9 +160,16 @@ export default class extends Vue {
     message: '手机号格式错误'
   }]
 
-  // 剑鱼标讯服务条款
+  // 剑鱼文库线上购买及服务条款
   clause () {
+    this.$router.push('/onlineterm')
+  }
+
+  // 剑鱼标讯产品与服务线上购买服务条款
+  clause2 () {
+    // app:https://app-a2.jianyu360.com/jyapp/front/staticPage/dataExport_serviceterms.html
     // this.$router.push('/readme')
+    // wx:https://www.jianyu360.com/front/staticPage/wx-serviceterms.html
   }
 }
 </script>
@@ -202,6 +237,47 @@ export default class extends Vue {
           }
         }
       }
+      .rechargehave_pay_content{
+        padding: 0 16px;
+        margin-top: 8px;
+        width: 100%;
+        height: 100px;
+        box-sizing: border-box;
+        border-bottom: 1px solid rgba($color: #000000, $alpha: 0.05);
+        background: #ffffff;
+        .pay_title{
+          margin-top: 16px;
+          width: 100%;
+          height: 24px;
+          color: #171826;
+          font-size: 16px;
+          line-height: 24px;
+        }
+        .jianyu_pay{
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+          margin-top: 24px;
+          width: 100%;
+          height: 20px;
+          color: #171826;
+          font-size: 14px;
+          line-height: 20px;
+          .jy_pay_left{
+              .jy_tip{
+                  color: #2abed1;
+              }
+          }
+          .jy_pay_icon{
+              width: 24px;
+              height: 24px;
+              .icon_right_option{
+                  width: 100%;
+                  height: 100%;
+              }
+          }
+        }
+      }
       .docs_phone {
         padding: 15px 0;
         width: 100%;

+ 38 - 4
jydocs-mobile/src/views/purchase/purchasesuccess.vue

@@ -16,15 +16,15 @@
         <div class="infor_group">
           <div class="infor_cell">
             <div class="infor_title">支付方式</div>
-            <div class="infor_value">剑鱼币支付</div>
+            <div class="infor_value">{{payinfor.payWay}}支付</div>
           </div>
           <div class="infor_cell">
             <div class="infor_title">兑换时间</div>
-            <div class="infor_value">2019/07/31 16:29:57</div>
+            <div class="infor_value">{{payinfor.payTime}}</div>
           </div>
           <div class="infor_cell">
             <div class="infor_title">流水编号</div>
-            <div class="infor_value">6489798765465465</div>
+            <div class="infor_value">{{payinfor.code}}</div>
           </div>
         </div>
       </div>
@@ -37,6 +37,7 @@
 
 <script lang="ts">
 import { Component, Vue } from 'vue-property-decorator'
+import { dateFormatter } from '../../utils/globalFunctions'
 // import { mapState } from 'vuex'
 
 @Component({
@@ -48,11 +49,29 @@ export default class extends Vue {
   count = 3
   timer: any
   $router: any
+  payinfor = {
+    payTime: '',
+    payWay: '',
+    code: ''
+  }
 
   created () {
     this.setCountDown()
+    this.setSession()
+  }
+
+  setSession () {
+    let paydata = sessionStorage.getItem('paydata')
+    console.log(paydata)
+    if (paydata) {
+      paydata = JSON.parse(paydata)
+      this.payinfor.payTime = dateFormatter(paydata.payTime * 1000, 'yyyy-MM-dd HH:mm:ss')
+      this.payinfor.payWay = paydata.payWay
+      this.payinfor.code = paydata.code
+    }
   }
 
+  // 倒计时
   setCountDown () {
     if (!this.timer) {
       this.timer = setInterval(() => {
@@ -61,11 +80,26 @@ export default class extends Vue {
         } else {
           clearInterval(this.timer)
           this.timer = null
-          this.$router.push('/home')
+          this.$router.replace({
+            name: 'details',
+            params: {
+              id: this.payinfor.code
+            }
+          })
         }
       }, 1000)
     }
   }
+
+  // 查看文档按钮
+  complete () {
+    this.$router.replace({
+      name: 'details',
+      params: {
+        id: this.payinfor.code
+      }
+    })
+  }
 }
 </script>
 <style lang="scss">

+ 2 - 1
jydocs-pc/src/views/purchase/purchase.vue

@@ -120,7 +120,8 @@ export default {
       console.log(111)
       getDocPays({ docId: '4f6c00ba-8882-11eb-8699-0050568f51e7', phone: '18439509554' }).then((res) => {
         console.log(res)
-        if (res.data === 'success') {
+        if (res.error_code === 0) {
+          sessionStorage.setItem('paydata',JSON.stringify(res.data))
           this.$router.push('/purchasesuccess')
         }
       })