Browse Source

feat: 新增mock数据集

zhangyuhan 4 years ago
parent
commit
faaba45f32

+ 1 - 1
jydocs-mobile/.env.development

@@ -1,4 +1,4 @@
 NODE_ENV=development
-VUE_APP_MOCK=false
+VUE_APP_MOCK=true
 VUE_APP_BASE_API = '/dev/api'
 BASE_URL = '/dev/docs/'

+ 1 - 0
jydocs-mobile/.eslintrc.js

@@ -15,6 +15,7 @@ module.exports = {
     'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
     'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
     'no-any': [0, { 'ignore-rest-args': 0 }],
+    "@typescript-eslint/ban-ts-ignore": ['off'],
     '@typescript-eslint/no-explicit-any': ['off'],
     '@typescript-eslint/camelcase': ['off']
   }

+ 53 - 0
jydocs-mobile/src/api/ajax.ts

@@ -0,0 +1,53 @@
+import axios from 'axios'
+import { Toast } from 'vant'
+
+// 配置api地址
+// axios设置
+const $ajax = axios.create({
+  baseURL: process.env.VUE_APP_BASE_API,
+  timeout: 6000,
+  withCredentials: true
+})
+
+/* 拦截器 */
+$ajax.interceptors.request.use(config => {
+  // 在请求发送之前做一些事
+  console.log('--发送之前--', config)
+  // 获取插入token
+  return config
+}, function (error) {
+  // 当出现请求错误是做一些事
+  console.log('--请求超时--', error)
+  Toast('请求超时,请重试')
+  return Promise.reject(error)
+})
+
+// 添加一个返回拦截器
+$ajax.interceptors.response.use((response) => {
+  // 是否需要toast弹窗
+  if (response.config.headers.noToast !== 1) {
+    // 判断是否需要重新登录
+    if (response.data.error_msg === '需要登录' || response.data.error_code === 1001) {
+      Toast({
+        message: '需要登录',
+        forbidClick: true,
+        duration: 1500
+      })
+    }
+    if (response.data.error_code && response.data.error_code !== 0) {
+      Toast({
+        message: response.data.error_msg || '请求失败,请重试',
+        forbidClick: true,
+        duration: 1500
+      })
+    }
+  }
+
+  return response
+}, function (error) {
+  console.log('--响应超时--', error)
+  Toast('响应超时,请重试')
+  return Promise.reject(error)
+})
+
+export default $ajax

+ 8 - 51
jydocs-mobile/src/api/index.ts

@@ -1,53 +1,10 @@
-import axios from 'axios'
-import { Toast } from 'vant'
+import request from '@/api/ajax'
+import mock from '@/api/mock'
 
-// 配置api地址
-// axios设置
-const $ajax = axios.create({
-  baseURL: process.env.VUE_APP_BASE_API,
-  timeout: 6000,
-  withCredentials: true
-})
+let $request = request
+if (process.env.NODE_ENV === 'development' && process.env.VUE_APP_MOCK === 'true') {
+  // @ts-ignore
+  $request = mock
+}
 
-/* 拦截器 */
-$ajax.interceptors.request.use(config => {
-  // 在请求发送之前做一些事
-  console.log('--发送之前--', config)
-  // 获取插入token
-  return config
-}, function (error) {
-  // 当出现请求错误是做一些事
-  console.log('--请求超时--', error)
-  Toast('请求超时,请重试')
-  return Promise.reject(error)
-})
-
-// 添加一个返回拦截器
-$ajax.interceptors.response.use((response) => {
-  // 是否需要toast弹窗
-  if (response.config.headers.noToast !== 1) {
-    // 判断是否需要重新登录
-    if (response.data.error_msg === '需要登录' || response.data.error_code === 1001) {
-      Toast({
-        message: '需要登录',
-        forbidClick: true,
-        duration: 1500
-      })
-    }
-    if (response.data.error_code && response.data.error_code !== 0) {
-      Toast({
-        message: response.data.error_msg || '请求失败,请重试',
-        forbidClick: true,
-        duration: 1500
-      })
-    }
-  }
-
-  return response
-}, function (error) {
-  console.log('--响应超时--', error)
-  Toast('响应超时,请重试')
-  return Promise.reject(error)
-})
-
-export default $ajax
+export default $request

+ 3 - 3
jydocs-mobile/src/api/main.ts

@@ -3,9 +3,9 @@ import qs from 'qs'
 
 export function getHome (data: any) {
   return $request({
-    url: '/distribution/cashout/index',
-    method: 'get',
-    params: data
+    url: '/topList',
+    method: 'post',
+    data: data
   })
 }
 

+ 32 - 0
jydocs-mobile/src/api/mock.ts

@@ -0,0 +1,32 @@
+import { Toast } from 'vant'
+
+type APIStructure = Record<string, any>;
+
+const files = require.context('@/api/mock', false, /\.json$/)
+const mocks: APIStructure = {}
+files.keys().forEach(key => {
+  const tempK = '/' + key.replace(/\$/g, '/').replace(/(\.\/|\.json)/g, '')
+  mocks[tempK] = files(key)
+})
+
+function mock (config: APIStructure) {
+  return new Promise(resolve => {
+    setTimeout(() => {
+      const result = {
+        data: mocks[config.url]
+      }
+      Toast.clear()
+      try {
+        if (result.data.error_msg) {
+          Toast(result.data.error_msg)
+        }
+      } catch (e) {
+        console.log('[debug]当前mock', config)
+        console.log(e)
+      }
+      resolve(result)
+    }, Math.random() * 3 * 1000 + 2000)
+  })
+}
+
+export default mock

+ 19 - 0
jydocs-mobile/src/api/mock/activityList.json

@@ -0,0 +1,19 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": [
+    {
+      "docId": "NyfuxSR0iUPobdFzNV2y",
+      "activityId": 3,
+      "docTitle": "1111",
+      "docSummary": "1111",
+      "docImg": "1111",
+      "price": 11,
+      "costPrice": 11,
+      "docFileSize": 666,
+      "docPageSize": 777,
+      "downTimes":5,
+      "sourceUserId":""
+    }
+  ]
+}

+ 18 - 0
jydocs-mobile/src/api/mock/detail.json

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

+ 10 - 0
jydocs-mobile/src/api/mock/getAdvertisement.json

@@ -0,0 +1,10 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": [
+    {
+      "s_link": "/front/subscribe.html",
+      "s_pic": "https://web2-qmxtest.jianyu360.cn/upload/2020/11/03/20201103164312011K5K93rYu.png"
+    }
+  ]
+}

+ 29 - 0
jydocs-mobile/src/api/mock/search.json

@@ -0,0 +1,29 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": {
+    "total": 2,
+    "list": [
+      {
+        "docId": "RJ82241sM3DyHwrupW7w",
+        "docName": "软件单元、组装、确认测试系统-中标候选人公示",
+        "price": 359,
+        "docFileSize": 387,
+        "docPageSize": 5,
+        "uploadDate": "2021-03-17 15:46:04",
+        "docSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目",
+        "docFileType": "其他"
+      },
+      {
+        "docId": "PImyRKyNohbocfUbhIef",
+        "docName": "北京精密机电控制设备研究所软件单元、组装、确认测试系统",
+        "price": 193,
+        "docFileSize": 164,
+        "docPageSize": 3,
+        "uploadDate": "2021-03-17 15:46:05",
+        "docSummary": "1.招标条件本招标项目:软件单元、组装、确认测试系统已由中国航天科技集团有限公司部门批准建设,项目业主为北京精密机电控制设备研究所,建设资金及出资比例其他资金100.0%,招标人为北京精密机电控制设备研究所。项目已具备招标条件,中科信工程咨",
+        "docFileType": "pdf"
+      }
+    ]
+  }
+}

+ 5 - 0
jydocs-mobile/src/api/mock/test$ajax.json

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

+ 26 - 0
jydocs-mobile/src/api/mock/topList.json

@@ -0,0 +1,26 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data":  [
+    {
+      "docId": "RJ82241sM3DyHwrupW7w",
+      "docName": "软件单元、组装、确认测试系统-中标候选人公示",
+      "price": 359,
+      "docFileSize": 387,
+      "docPageSize": 5,
+      "uploadDate": "2021-03-17 15:46:04",
+      "docSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目",
+      "docFileType": "其他"
+    },
+    {
+      "docId": "PImyRKyNohbocfUbhIef",
+      "docName": "北京精密机电控制设备研究所软件单元、组装、确认测试系统",
+      "price": 193,
+      "docFileSize": 164,
+      "docPageSize": 3,
+      "uploadDate": "2021-03-17 15:46:05",
+      "docSummary": "1.招标条件本招标项目:软件单元、组装、确认测试系统已由中国航天科技集团有限公司部门批准建设,项目业主为北京精密机电控制设备研究所,建设资金及出资比例其他资金100.0%,招标人为北京精密机电控制设备研究所。项目已具备招标条件,中科信工程咨",
+      "docFileType": "pdf"
+    }
+  ]
+}

+ 5 - 0
jydocs-mobile/src/api/mock/user$buy.json

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

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

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

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

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

+ 22 - 0
jydocs-mobile/src/api/mock/user$list.json

@@ -0,0 +1,22 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": {
+    "total": 1,
+    "list": [
+      {
+        "DocId": "RJ82241sM3DyHwrupW7w",
+        "DocName": "软件单元、组装、确认测试系统-中标候选人公示",
+        "DocPageSize": 5,
+        "DocFileSize": 387,
+        "DocFileType": 6,
+        "DocSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目",
+        "IsCollection": 1,
+        "Cost": "359",
+        "CreateAt": 1616049084,
+        "UpdateAt": 1616049084,
+        "DeletedAt": 1616049084
+      }
+    ]
+  }
+}

+ 8 - 5
jydocs-mobile/src/views/Home.vue

@@ -76,7 +76,7 @@ import { Component, Vue } from 'vue-property-decorator'
 import Search from '@/components/Search.vue'
 // import { Cell, CellGroup, Icon, Dialog, Toast } from 'vant'
 import { Icon } from 'vant'
-// import { mapActions } from 'vuex'
+import { mapActions } from 'vuex'
   // import { MixinTop } from '@/utils/mixin-top'
   @Component({
     name: 'home',
@@ -88,18 +88,21 @@ import { Icon } from 'vant'
       Search
     },
     methods: {
-      // ...mapActions({
-      //   ajaxData: 'main/getHome'
-      // })
+      ...mapActions({
+        ajaxData: 'main/getHome'
+      })
     }
   })
 
 export default class extends Vue {
-    // protected ajaxData: any
     pageData: any = {}
+    ajaxData: any
 
     created () {
       console.log('111')
+      this.ajaxData().then((res: any) => {
+        console.log(res)
+      })
       this.pageData = {
         new: [
           {

+ 1 - 1
jydocs-pc/src/api/mock.js

@@ -13,7 +13,7 @@ function mock (config) {
       }
       // Toast.clear()
       try {
-        if (!result.data.code) {
+        if (!result.data.error_msg) {
           // Toast(result.data.msg)
         }
       } catch (e) {

+ 19 - 0
jydocs-pc/src/api/mock/activityList.json

@@ -0,0 +1,19 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": [
+    {
+      "docId": "NyfuxSR0iUPobdFzNV2y",
+      "activityId": 3,
+      "docTitle": "1111",
+      "docSummary": "1111",
+      "docImg": "1111",
+      "price": 11,
+      "costPrice": 11,
+      "docFileSize": 666,
+      "docPageSize": 777,
+      "downTimes":5,
+      "sourceUserId":""
+    }
+  ]
+}

+ 18 - 0
jydocs-pc/src/api/mock/detail.json

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

+ 10 - 0
jydocs-pc/src/api/mock/getAdvertisement.json

@@ -0,0 +1,10 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": [
+    {
+      "s_link": "/front/subscribe.html",
+      "s_pic": "https://web2-qmxtest.jianyu360.cn/upload/2020/11/03/20201103164312011K5K93rYu.png"
+    }
+  ]
+}

+ 3 - 20
jydocs-pc/src/api/mock/test$ajax.json

@@ -1,22 +1,5 @@
 {
-  "code": 1,
-  "msg": "请求成功",
-  "time": "1596525438",
-  "data": [
-    {
-      "id": 1,
-      "title": "垂直滚动",
-      "maincontent": "搭配 NoticeBar 和 Swipe 组件可以实现垂直滚动的效果。"
-    },
-    {
-      "id": 2,
-      "title": "技术是开发它的人的共同灵魂。在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。",
-      "maincontent": "在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。"
-    },
-    {
-      "id": 3,
-      "title": "自定义样式",
-      "maincontent": "通过 color 属性设置文本颜色,通过 background 属性设置背景色。"
-    }
-  ]
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
 }

+ 26 - 0
jydocs-pc/src/api/mock/topList.json

@@ -0,0 +1,26 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data":  [
+    {
+      "docId": "RJ82241sM3DyHwrupW7w",
+      "docName": "软件单元、组装、确认测试系统-中标候选人公示",
+      "price": 359,
+      "docFileSize": 387,
+      "docPageSize": 5,
+      "uploadDate": "2021-03-17 15:46:04",
+      "docSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目",
+      "docFileType": "其他"
+    },
+    {
+      "docId": "PImyRKyNohbocfUbhIef",
+      "docName": "北京精密机电控制设备研究所软件单元、组装、确认测试系统",
+      "price": 193,
+      "docFileSize": 164,
+      "docPageSize": 3,
+      "uploadDate": "2021-03-17 15:46:05",
+      "docSummary": "1.招标条件本招标项目:软件单元、组装、确认测试系统已由中国航天科技集团有限公司部门批准建设,项目业主为北京精密机电控制设备研究所,建设资金及出资比例其他资金100.0%,招标人为北京精密机电控制设备研究所。项目已具备招标条件,中科信工程咨",
+      "docFileType": "pdf"
+    }
+  ]
+}

+ 5 - 0
jydocs-pc/src/api/mock/user$buy.json

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

+ 5 - 0
jydocs-pc/src/api/mock/user$collect$add.json

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

+ 5 - 0
jydocs-pc/src/api/mock/user$collect$remove.json

@@ -0,0 +1,5 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": "success"
+}

+ 22 - 0
jydocs-pc/src/api/mock/user$list.json

@@ -0,0 +1,22 @@
+{
+  "error_code": 0,
+  "error_msg": "",
+  "data": {
+    "total": 1,
+    "list": [
+      {
+        "DocId": "RJ82241sM3DyHwrupW7w",
+        "DocName": "软件单元、组装、确认测试系统-中标候选人公示",
+        "DocPageSize": 5,
+        "DocFileSize": 387,
+        "DocFileType": 6,
+        "DocSummary": "公告软件单元、组装、确认测试系统-中标候选人公示(招标编号:ZKX20210231A002)公示开始时间:2021年01月28日09时00分00秒公示结束时间:2021年02月01日23时59分59秒本软件单元、组装、确认测试系统(招标项目",
+        "IsCollection": 1,
+        "Cost": "359",
+        "CreateAt": 1616049084,
+        "UpdateAt": 1616049084,
+        "DeletedAt": 1616049084
+      }
+    ]
+  }
+}