xgwangman 4 gadi atpakaļ
vecāks
revīzija
acdbd084d1

+ 29 - 0
jydocs-mobile/src/api/main.ts

@@ -45,3 +45,32 @@ export function getDetails (data: any) {
     data
     data
   })
   })
 }
 }
+
+export function getAdd (data: any) {
+  console.log(data)
+  // data = qs.stringify(data)
+  return $request({
+    url: '/userCollectAdd',
+    method: 'post',
+    data
+  })
+}
+
+export function getRemove (data: any) {
+  console.log(data)
+  // data = qs.stringify(data)
+  return $request({
+    url: '/userCollectRemove',
+    method: 'post',
+    data
+  })
+}
+
+export function getCoin (data: any) {
+  console.log(data)
+  return $request({
+    url: '/coin',
+    method: 'post',
+    data
+  })
+}

+ 14 - 0
jydocs-mobile/src/api/mock/coin.json

@@ -0,0 +1,14 @@
+{
+    "error_code": 0,
+    "data": {
+        "code": 1,
+        "message": "积分明细查询成功",
+        "count": 42,
+        "data": {
+            "points": {
+                "balance": 200,
+                "expire": 0
+            }
+        }
+    }
+}

+ 3 - 2
jydocs-mobile/src/api/mock/detail.json

@@ -2,7 +2,8 @@
   "error_code": 0,
   "error_code": 0,
   "error_msg": "",
   "error_msg": "",
   "data": {
   "data": {
-    "status": 1,
+    "status": 0,
+    "docCang": 1,
     "detail": {
     "detail": {
       "docId": "RJ82241sM3DyHwrupW7w",
       "docId": "RJ82241sM3DyHwrupW7w",
       "total": 10,
       "total": 10,
@@ -13,7 +14,7 @@
       "docPageSize": 5,
       "docPageSize": 5,
       "tags": "信息技术",
       "tags": "信息技术",
       "uploadDate": "2021-03-17 15:46:04",
       "uploadDate": "2021-03-17 15:46:04",
-      "docFileType": 6,
+      "docFileType": 2,
       "docSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目"
       "docSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目"
     }
     }
   }
   }

+ 0 - 0
jydocs-mobile/src/api/mock/user$collect$add.json → jydocs-mobile/src/api/mock/userCollectAdd.json


+ 0 - 0
jydocs-mobile/src/api/mock/user$collect$remove.json → jydocs-mobile/src/api/mock/userCollectRemove.json


+ 10 - 8
jydocs-mobile/src/components/Recharge.vue

@@ -6,11 +6,11 @@
                     <img src="../assets/images/banner.png" class="thumbnail_img" alt="">
                     <img src="../assets/images/banner.png" class="thumbnail_img" alt="">
                 </div>
                 </div>
                 <div class="recharge_t_right">
                 <div class="recharge_t_right">
-                    <div class="t_right_name">优化招投标市场营商环境与国企采购</div>
+                    <div class="t_right_name">{{detailData.docName}}</div>
                     <div class="t_right_active">
                     <div class="t_right_active">
-                        <span>500剑鱼币</span>
-                        <span>共18页</span>
-                        <span>123k</span>
+                        <span>{{detailData.price}}剑鱼币</span>
+                        <span>共{{detailData.docPageSize}}页</span>
+                        <span>{{detailData.docFileSize}}k</span>
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
@@ -24,18 +24,18 @@
             </div>
             </div>
             <div class="jianyu_pay">
             <div class="jianyu_pay">
                 <span class="jy_money">剑鱼币</span>
                 <span class="jy_money">剑鱼币</span>
-                <span class="jy_tip">(剑鱼币不足,剩余20剑鱼币)</span>
+                <span class="jy_tip">(剑鱼币不足,剩余{{coins.balance}}剑鱼币)</span>
             </div>
             </div>
         </div>
         </div>
         <div class="recharge_footer">
         <div class="recharge_footer">
-                <button class="j-button-cancel btn_active" @click="closePopup()">取消</button>
-                <button class="j-button-sure btn_active">去充值</button>
+            <button class="j-button-cancel btn_active" @click="closePopup()">取消</button>
+            <button class="j-button-sure btn_active">去充值</button>
         </div>
         </div>
     </van-popup>
     </van-popup>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { Component, Vue } from 'vue-property-decorator'
+import { Component, Prop, Vue } from 'vue-property-decorator'
 import { Icon, Popup, Sticky } from 'vant'
 import { Icon, Popup, Sticky } from 'vant'
 
 
 // @ is an alias to /src
 // @ is an alias to /src
@@ -51,6 +51,8 @@ import { Icon, Popup, Sticky } from 'vant'
     }
     }
   })
   })
 export default class extends Vue {
 export default class extends Vue {
+    @Prop() detailData: any
+    @Prop() coins: any
     show = false
     show = false
     closePopup () {
     closePopup () {
       this.show = false
       this.show = false

+ 19 - 9
jydocs-mobile/src/components/RechargeHave.vue

@@ -6,11 +6,11 @@
                     <img src="../assets/images/banner.png" class="thumbnail_img" alt="">
                     <img src="../assets/images/banner.png" class="thumbnail_img" alt="">
                 </div>
                 </div>
                 <div class="rechargehave_t_right">
                 <div class="rechargehave_t_right">
-                    <div class="t_right_name">优化招投标市场营商环境与国企采购</div>
+                    <div class="t_right_name">{{detailData.docName}}</div>
                     <div class="t_right_active">
                     <div class="t_right_active">
-                        <span>500剑鱼币</span>
-                        <span>共18页</span>
-                        <span>123k</span>
+                        <span>{{detailData.price}}剑鱼币</span>
+                        <span>共{{detailData.docPageSize}}页</span>
+                        <span>{{detailData.docFileSize}}k</span>
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
@@ -25,7 +25,7 @@
             <div class="jianyu_pay">
             <div class="jianyu_pay">
                 <div class="jy_pay_left">
                 <div class="jy_pay_left">
                     <span class="jy_money">剑鱼币</span>
                     <span class="jy_money">剑鱼币</span>
-                    <span class="jy_tip">(剩余2020剑鱼币)</span>
+                    <span class="jy_tip">(剩余{{coins.balance}}剑鱼币)</span>
                 </div>
                 </div>
                 <div class="jy_pay_icon">
                 <div class="jy_pay_icon">
                     <img src="../assets/icon/checked.png" class="icon_right_option" />
                     <img src="../assets/icon/checked.png" class="icon_right_option" />
@@ -38,23 +38,23 @@
                 支付积分:
                 支付积分:
                 </div>
                 </div>
                 <div class="det_right">
                 <div class="det_right">
-                <span class="det_money">500</span>
+                <span class="det_money">{{detailData.price}}</span>
                 <span>剑鱼币</span>
                 <span>剑鱼币</span>
                 </div>
                 </div>
             </div>
             </div>
             <div class="readly">
             <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" >我已阅读,理解并接受</van-checkbox><a href="javascript:;" class="clause" @click="clause()">《剑鱼伙伴服务条款》</a>
             </div>
             </div>
             <div class="apply_footer">
             <div class="apply_footer">
                 <button class="j-button-cancel btn_active" @click="closePopup()">取消</button>
                 <button class="j-button-cancel btn_active" @click="closePopup()">取消</button>
-                <button class="j-button-sure btn_active" :disabled="!this.checked" @click="exchange()">去充值</button>
+                <button class="j-button-sure btn_active" :disabled="!checked" @click="exchange()">去兑换</button>
             </div>
             </div>
         </div>
         </div>
     </van-popup>
     </van-popup>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { Component, Vue } from 'vue-property-decorator'
+import { Component, Prop, Vue } from 'vue-property-decorator'
 import { Icon, Popup, Checkbox } from 'vant'
 import { Icon, Popup, Checkbox } from 'vant'
 
 
 // @ is an alias to /src
 // @ is an alias to /src
@@ -70,11 +70,21 @@ import { Icon, Popup, Checkbox } from 'vant'
     }
     }
   })
   })
 export default class extends Vue {
 export default class extends Vue {
+    @Prop() detailData: any
+    @Prop() coins: any
     show = false
     show = false
     checked = false
     checked = false
     closePopup () {
     closePopup () {
       this.show = false
       this.show = false
     }
     }
+
+    clause () {
+      console.log('0000')
+    }
+
+    exchange () {
+      console.log('99999')
+    }
 }
 }
 </script>
 </script>
 
 

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

@@ -5,7 +5,10 @@ import {
   getHomeActivity,
   getHomeActivity,
   getCashOutInfo,
   getCashOutInfo,
   submitCashOutInfo,
   submitCashOutInfo,
-  getDetails
+  getDetails,
+  getRemove,
+  getAdd,
+  getCoin
 } from '@/api/main'
 } from '@/api/main'
 
 
 interface InterfaceStore<S> extends StoreOptions<S> {
 interface InterfaceStore<S> extends StoreOptions<S> {
@@ -119,6 +122,30 @@ const modulesOption: modulesOption = {
         console.log(res)
         console.log(res)
         return res.data
         return res.data
       } catch (error) {}
       } catch (error) {}
+    },
+    // 文库收藏
+    async getAdd (state, data) {
+      try {
+        const res = await getAdd(data)
+        console.log(res)
+        return res.data
+      } catch (error) {}
+    },
+    // 文库取消收藏
+    async getRemove (state, data) {
+      try {
+        const res = await getRemove(data)
+        console.log(res)
+        return res.data
+      } catch (error) {}
+    },
+    // 剑鱼币
+    async getCoin (state, data) {
+      try {
+        const res = await getCoin(data)
+        console.log(res)
+        return res.data
+      } catch (error) {}
     }
     }
   },
   },
   getters: {}
   getters: {}

+ 72 - 17
jydocs-mobile/src/views/details/details.vue

@@ -2,16 +2,16 @@
     <div class="details-p">
     <div class="details-p">
         <div class="tops">
         <div class="tops">
             <h3>
             <h3>
-                <van-icon class="word01" name="diy-word" />
+                <van-icon class="word01" :name="'diy-' + fileType(detailData.docFileType)" />
                 {{detailData.docName}}
                 {{detailData.docName}}
             </h3>
             </h3>
         </div>
         </div>
         <div class="middles">
         <div class="middles">
             <h3>摘要</h3>
             <h3>摘要</h3>
             <p>{{detailData.docSummary}}</p>
             <p>{{detailData.docSummary}}</p>
-            <div class="continue">全文共18页,<span>继续阅读<van-icon name="arrow-down" size="18" /></span></div>
+            <div class="continue" v-show="!buyed">全文共{{detailData.docPageSize}}页,<span @click="continued">继续阅读<van-icon name="arrow-down" size="18" /></span></div>
         </div>
         </div>
-        <div class="botts">
+        <div class="botts" v-show="buyed">
             <div class="cont-page">
             <div class="cont-page">
                 优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。
                 优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。优化招投标市场营商环境与国企采购人主体责任、采购与招标培训资料摘要摘要。
             </div>
             </div>
@@ -20,17 +20,17 @@
             <van-goods-action-icon class="no-icon">
             <van-goods-action-icon class="no-icon">
                 <template #default>
                 <template #default>
                     <p class="p1">剑鱼币</p>
                     <p class="p1">剑鱼币</p>
-                    <p class="p2">500</p>
+                    <p class="p2">{{detailData.price}}</p>
                 </template>
                 </template>
             </van-goods-action-icon>
             </van-goods-action-icon>
             <van-goods-action-icon icon="diy-jubao" text="投诉举报" @click="jubaod" />
             <van-goods-action-icon icon="diy-jubao" text="投诉举报" @click="jubaod" />
-            <van-goods-action-icon :icon="collectd?'diy-weiguanzhu':'diy-guanzhu'" text="收藏" @click="canged" />
+            <van-goods-action-icon :icon="collectd==1?'diy-guanzhu':'diy-weiguanzhu'" text="收藏" @click="canged" />
             <van-goods-action-button text="下载文档" @click="uploaded" />
             <van-goods-action-button text="下载文档" @click="uploaded" />
         </van-goods-action>
         </van-goods-action>
         <!-- 充值 -->
         <!-- 充值 -->
-        <recharge ref="charge"></recharge>
+        <recharge ref="charge" :detailData="detailData" :coins="coins"></recharge>
         <!-- 购买 -->
         <!-- 购买 -->
-        <purchase ref="buys"></purchase>
+        <purchase ref="buys" :detailData="detailData" :coins="coins"></purchase>
     </div>
     </div>
 </template>
 </template>
 
 
@@ -52,15 +52,22 @@ import Purchase from '@/components/RechargeHave.vue'
   },
   },
   methods: {
   methods: {
     ...mapActions({
     ...mapActions({
-      getDetails: 'main/getDetails'
+      getDetails: 'main/getDetails',
+      getCoin: 'main/getCoin',
+      getAdd: 'main/getAdd',
+      getRemove: 'main/getRemove'
     })
     })
   }
   }
 })
 })
 export default class extends Vue {
 export default class extends Vue {
   getDetails: any
   getDetails: any
+  getCoin: any
+  coins: any = []
+  getAdd: any
+  getRemove: any
   detailData: any = []
   detailData: any = []
-  collectd = true
-  nums = 1
+  collectd = 0
+  buyed = 0
   created () {
   created () {
     this.onList()
     this.onList()
   }
   }
@@ -69,6 +76,12 @@ export default class extends Vue {
     this.getDetails({ docId: '111' }).then((res: any) => {
     this.getDetails({ docId: '111' }).then((res: any) => {
       console.log(res.data)
       console.log(res.data)
       this.detailData = res.data.detail
       this.detailData = res.data.detail
+      this.buyed = res.data.status
+      this.collectd = res.data.docCang
+    })
+    this.getCoin({ L: true }).then((res: any) => {
+      console.log(res.data.data)
+      this.coins = res.data.data.points
     })
     })
   }
   }
 
 
@@ -80,21 +93,64 @@ export default class extends Vue {
   }
   }
 
 
   canged () {
   canged () {
-    this.collectd = !this.collectd
+    if (this.collectd === 0) {
+      this.getAdd({ docId: '111' }).then((res: any) => {
+        console.log(res)
+        if (res.error_code === 0) {
+          this.collectd = 1
+          Toast('收藏成功')
+        }
+      })
+    } else {
+      this.getRemove({ docId: '111' }).then((res: any) => {
+        console.log(res)
+        if (res.error_code === 0) {
+          this.collectd = 0
+          Toast('取消收藏')
+        }
+      })
+    }
+  }
+
+  continued () {
+    this.uploaded()
   }
   }
 
 
   uploaded () {
   uploaded () {
-    if (this.nums === 0) {
-      ;(this.$refs.charge as any).show = true
+    if (this.buyed === 1) {
+      this.$router.push('/')
+    } else {
+      if (this.coins.balance < this.detailData.price) {
+        ;(this.$refs.charge as any).show = true
+      } else {
+        ;(this.$refs.buys as any).show = true
+      }
+    }
+  }
+
+  fileType (val: any) {
+    if (val === 1) {
+      return 'word'
+    } else if (val === 2) {
+      return 'pdf'
+    } else if (val === 3) {
+      return 'excel'
+    } else if (val === 4) {
+      return 'ppt'
+    } else if (val === 5) {
+      return 'txt'
     } else {
     } else {
-      ;(this.$refs.buys as any).show = true
+      return ''
     }
     }
   }
   }
 }
 }
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
+@include diy-icon('pdf', 24, 24);
 @include diy-icon('word', 24, 24);
 @include diy-icon('word', 24, 24);
+@include diy-icon('excel', 24, 24);
+@include diy-icon('ppt', 24, 24);
 @include diy-icon('jubao', 20, 20);
 @include diy-icon('jubao', 20, 20);
 @include diy-icon('weiguanzhu', 20, 20);
 @include diy-icon('weiguanzhu', 20, 20);
 @include diy-icon('guanzhu', 20, 20);
 @include diy-icon('guanzhu', 20, 20);
@@ -167,16 +223,15 @@ export default class extends Vue {
         display: flex;
         display: flex;
         justify-content: space-between;
         justify-content: space-between;
         .no-icon {
         .no-icon {
-            p {
-                color:#2ABED1;
-            }
             .p1 {
             .p1 {
                 font-size: 12px;
                 font-size: 12px;
                 line-height: 18px;
                 line-height: 18px;
+                color: #5F5E64;
             }
             }
             .p2 {
             .p2 {
                 font-size: 18px;
                 font-size: 18px;
                 line-height: 26px;
                 line-height: 26px;
+                color: #FB483D;
             }
             }
             .van-icon {
             .van-icon {
                 display: none!important;
                 display: none!important;

+ 8 - 0
jydocs-mobile/vue.config.js

@@ -60,6 +60,14 @@ module.exports = {
         pathRewrite: {
         pathRewrite: {
           '^/distribution': '/distribution'
           '^/distribution': '/distribution'
         }
         }
+      },
+      '^/jydocs': {
+        target: '192.168.20.180:821',
+        changeOrigin: true,
+        logLevel: 'debug',
+        pathRewrite: {
+          '^/jydocs': '/jydocs'
+        }
       }
       }
     }
     }
   },
   },