Browse Source

接入接口cnc

zhangwf 5 years ago
parent
commit
48034ce83f

+ 14 - 1
src/api/editor.js

@@ -30,6 +30,19 @@ const getPicListByThemeId = (_id) => {
   return http.get('/api/upload/theme/' + _id)
 }
 
+const cncTestcaseList = (data)=>{
+  return http.post('/cncTest/cncTestcaseList', data)
+}
+
+const houseList = ()=>{
+  return http.post('/cncTest/houseList')
+}
+
+const cncTestDetail = (data)=>{
+  return http.post('/cncTest/cncTestDetail',data) 
+}
+
 module.exports = {
-  getUserThemeList, saveTheme, updateTheme, uploadPic,uploadPsd, getPageByThemeId, getPicListByThemeId, delTheme
+  houseList,cncTestDetail,
+  getUserThemeList, saveTheme, updateTheme, uploadPic,uploadPsd, getPageByThemeId, getPicListByThemeId, delTheme ,cncTestcaseList
 }

+ 1 - 1
src/util/appConst.js

@@ -12,7 +12,7 @@ if (process.env.NODE_ENV === 'production') {
   QINIU_DOMAIN = 'https://gatewaytest.elab-plus.com'
   TOUFANGBAO_PATH = 'http://h5test.elab-plus.com/touFangBao/#/pages/preview?mgid='
 } else if (process.env.NODE_ENV === 'development') {
-  BACKEND_DOMAIN = 'http://localhost:9998'
+  BACKEND_DOMAIN = 'http://192.168.0.16:5318'
   // QINIU_DOMAIN = 'http://139.196.5.59:5555'
   TOUFANGBAO_PATH = 'http://192.168.4.240:9099/#/pages/preview?mgid='
 }

+ 85 - 74
src/util/http.js

@@ -3,7 +3,7 @@ import appConst from './appConst'
 import * as qiniu from 'qiniu-js'
 // var qiniu = require('qiniu-js')
 //请求mongodb的get
-window.axios=axios
+window.axios = axios
 export const get = (url, query) => {
   const token = 'Bearer ' + window.localStorage.token
   const loginId = window.localStorage.loginId
@@ -15,8 +15,7 @@ export const get = (url, query) => {
     _url = `${appConst.BACKEND_DOMAIN}${url}`
   }
   return axios.get(_url, {
-    headers: { authorization: token, loginId: loginId }
-  })
+    })
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -29,12 +28,8 @@ export const get = (url, query) => {
 }
 
 export const post = (url, query) => {
-  const token = 'Bearer ' + window.localStorage.token
-  const loginId = window.localStorage.getItem('loginId')
   let _url = `${appConst.BACKEND_DOMAIN}${url}`
-  return axios.post(_url, query, {
-    headers: { authorization: token, loginId: loginId  }
-  })
+  return axios.post(_url, query, {})
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -52,8 +47,11 @@ export const uploadPsd = (url, query) => {
   const loginId = window.localStorage.getItem('loginId')
   let _url = `${appConst.BACKEND_DOMAIN}${url}`
   return axios.post(_url, query, {
-    headers: { authorization: token, loginId: loginId  }
-  })
+      headers: {
+        authorization: token,
+        loginId: loginId
+      }
+    })
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -70,8 +68,11 @@ export const put = (url, query) => {
   const loginId = window.localStorage.loginId
   let _url = `${appConst.BACKEND_DOMAIN}${url}`
   return axios.put(_url, query, {
-    headers: { authorization: token, loginId: loginId  }
-  })
+      headers: {
+        authorization: token,
+        loginId: loginId
+      }
+    })
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -88,8 +89,11 @@ export const patch = (url, query) => {
   const loginId = window.localStorage.getItem('loginId')
   let _url = `${appConst.BACKEND_DOMAIN}${url}`
   return axios.patch(_url, query, {
-    headers: { authorization: token, loginId: loginId  }
-  })
+      headers: {
+        authorization: token,
+        loginId: loginId
+      }
+    })
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -106,8 +110,11 @@ export const del = (url, article) => {
   const loginId = window.localStorage.getItem('loginId')
   let _url = `${appConst.BACKEND_DOMAIN}${url}/${article._id}`
   return axios.delete(_url, {
-    headers: { authorization: token, loginId: loginId  }
-  })
+      headers: {
+        authorization: token,
+        loginId: loginId
+      }
+    })
     .then((res) => {
       if (res.status >= 200 && res.status < 300) {
         return res.data
@@ -151,8 +158,9 @@ export const getQiniuToken = (url, query) => {
  * @returns {string} 类似java中的String.getUUID方法所返回的值
  */
 function getUUID() {
-  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
-    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
+  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+    var r = Math.random() * 16 | 0,
+      v = c == 'x' ? r : (r & 0x3 | 0x8);
     return v.toString(16);
   });
 }
@@ -163,12 +171,12 @@ function getUUID() {
  * @param complete 上传完执行的回调方法
  * @param progress 上传过程中的回调方法
  */
-export const uploadMaterielFile = (file,complete, progress) => {
-    getQiniuToken('/elab-marketing-file/upload/getUploadToken').then(res => {
+export const uploadMaterielFile = (file, complete, progress) => {
+  getQiniuToken('/elab-marketing-file/upload/getUploadToken').then(res => {
     var token = res.single.token;
-    var resultUrl =  res.single.resultUrl;
-    var prefix = 'launchTemplate/'+getUUID() + '-';
-    var fileName = prefix + file.name.replace(/\s+/g,"");
+    var resultUrl = res.single.resultUrl;
+    var prefix = 'launchTemplate/' + getUUID() + '-';
+    var fileName = prefix + file.name.replace(/\s+/g, "");
     var putExtra = {
       fname: "",
       params: {},
@@ -180,25 +188,24 @@ export const uploadMaterielFile = (file,complete, progress) => {
       retryCount: 6,
       region: qiniu.region.z0
     };
-    var tp=file.name.substring(file.name.indexOf('.'));
-    if(tp==".jpeg"||tp==".jpg"||tp==".gif"||tp==".png"||tp==".icon"){
+    var tp = file.name.substring(file.name.indexOf('.'));
+    if (tp == ".jpeg" || tp == ".jpg" || tp == ".gif" || tp == ".png" || tp == ".icon") {
       console.log('图片')
-    }
-    else if(tp==".mp4"||tp==".ogg"||tp==".fly"||tp==".mp3"){
+    } else if (tp == ".mp4" || tp == ".ogg" || tp == ".fly" || tp == ".mp3") {
       console.log('音视频')
     }
 
     var observable = qiniu.upload(file, fileName, token, putExtra, config);
-    observable.subscribe(function(res){
+    observable.subscribe(function (res) {
       console.log('next------' + JSON.stringify(res))
       progress(res);
-    }, function(res){
+    }, function (res) {
       console.log('error-----' + JSON.stringify(res))
-    }, function(res){
+    }, function (res) {
       console.log('complete--------' + JSON.stringify(res))
       let addressUrl = resultUrl + res.key;
       complete(addressUrl)
-      return addressUrl ;
+      return addressUrl;
     });
   }).catch((err) => {
     errorProcess(err)
@@ -207,57 +214,61 @@ export const uploadMaterielFile = (file,complete, progress) => {
 
 }
 // base 64
-export const uploadBase64=(data)=>{
+export const uploadBase64 = (data) => {
   // return axios.post(appConst.QINIU_DOMAIN+'/elab-marketing-file/upload/uploadBase64',data)
-    return  new Promise(function (resolve,reject) {
-      var base64Str = data.base64Str
-      getQiniuToken('/elab-marketing-file/upload/getUploadToken').then(res => {
-        var token = res.single.token;
-        var resultUrl =  res.single.resultUrl;
-        var pic = base64Str.replace(/^.*?,/, '');
-        var url = "https://upload.qiniup.com/putb64/-1"; //非华东空间需要根据注意事项 1 修改上传域名
-        var xhr = new XMLHttpRequest();
-        xhr.onreadystatechange=function(){
-          if (xhr.readyState==4){
-            let response = JSON.parse(xhr.response)
-            let data={}
-            if(xhr.status == 200){
-              data={
-                "success": true,
-                "errorCode": null,
-                "message": null,
-                "single": {
-                  "filePath": resultUrl+response.key ,
-                }
+  return new Promise(function (resolve, reject) {
+    var base64Str = data.base64Str
+    getQiniuToken('/elab-marketing-file/upload/getUploadToken').then(res => {
+      var token = res.single.token;
+      var resultUrl = res.single.resultUrl;
+      var pic = base64Str.replace(/^.*?,/, '');
+      var url = "https://upload.qiniup.com/putb64/-1"; //非华东空间需要根据注意事项 1 修改上传域名
+      var xhr = new XMLHttpRequest();
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState == 4) {
+          let response = JSON.parse(xhr.response)
+          let data = {}
+          if (xhr.status == 200) {
+            data = {
+              "success": true,
+              "errorCode": null,
+              "message": null,
+              "single": {
+                "filePath": resultUrl + response.key,
               }
-            }else{
+            }
+          } else {
 
-              data={
-                "success": false,
-                "errorCode": xhr.status,
-                "message": response.error,
-                "single": {
-                  "filePath": null ,
-                }
+            data = {
+              "success": false,
+              "errorCode": xhr.status,
+              "message": response.error,
+              "single": {
+                "filePath": null,
               }
             }
-            resolve({data})
           }
+          resolve({
+            data
+          })
         }
-        xhr.open("POST", url, true);
-        xhr.setRequestHeader("Content-Type", "application/octet-stream");
-        xhr.setRequestHeader("Authorization",  "UpToken " + token);
-        xhr.send(pic);
-      }).catch((err) => {
-        var data={
-          "success": false,
-          "errorCode": 'faild',
-          "message": err,
-          "single": {
-            "filePath": null ,
-          }
+      }
+      xhr.open("POST", url, true);
+      xhr.setRequestHeader("Content-Type", "application/octet-stream");
+      xhr.setRequestHeader("Authorization", "UpToken " + token);
+      xhr.send(pic);
+    }).catch((err) => {
+      var data = {
+        "success": false,
+        "errorCode": 'faild',
+        "message": err,
+        "single": {
+          "filePath": null,
         }
-        reject({data})
+      }
+      reject({
+        data
       })
+    })
   })
 }

+ 11 - 13
src/views/cnctestlists/cncTestLists.html

@@ -9,28 +9,26 @@
                 <div class="select-test">选择测题</div>
             </div>
             <el-dropdown class="selection" trigger="click" @command="handleCommand">
-                <el-button type="primary">{{currentProject}} <i class="el-icon-caret-bottom icon-right"></i>
+                <el-button type="primary" style="overflow: hidden;">{{currentProject}} <i
+                        class="el-icon-caret-bottom icon-right"></i>
                 </el-button>
-                <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item command="无锡路劲">无锡路劲</el-dropdown-item>
-                    <el-dropdown-item command="宁波WIII">宁波WIII</el-dropdown-item>
-                    <el-dropdown-item command="香港置地">香港置地</el-dropdown-item>
-                    <el-dropdown-item command="河南建业">河南建业</el-dropdown-item>
-                    <el-dropdown-item command="西安金茂府">西安金茂府</el-dropdown-item>
+                <el-dropdown-menu slot="dropdown" style="max-height: 200px;overflow-y: auto">
+                    <el-dropdown-item v-for="(item, index) in houseList" :key="item.houseId" :command="item.houseId">
+                        {{item.houseName}}</el-dropdown-item>
                 </el-dropdown-menu>
             </el-dropdown>
         </div>
 
-        <div class="content">
-            <div class="item-test" v-for="(item, index) in tests" :key="index">
+        <div class="content" v-if="pageModel!=null && pageModel.resultSet!=null">
+            <div class="item-test" v-for="(item, index) in pageModel.resultSet" :key="index">
                 <div class="item-left">
                     <img style="width:22px; height:22px;" src="../../assets/images/test-icon@2x.png" alt="">
-                    <span>定制你的家居香气</span>
+                    <span>{{item.title}}</span>
                 </div>
                 <div class="item-right">
-                    <span class="project-name">无锡路劲</span>
-                    <span class="qr-num">共21题</span>
-                    <div class="watch-test" @click="showQRDialog(index)">
+                    <span class="project-name">{{item.houseName}}</span>
+                    <span class="qr-num">共{{item.questionCount}}题</span>
+                    <div class="watch-test" @click="showQRDialog(item.testcaseId)">
                         <div class="watch-icon">
                         </div>
                         <span>查看测试</span>

+ 1 - 1
src/views/cnctestlists/cncTestLists.scss

@@ -21,7 +21,7 @@
     justify-content: space-between;
     margin-top: 36px;
     align-items: center;
-
+    
     .create-test-box {
       display: flex;
       flex-direction: row;

+ 52 - 51
src/views/cnctestlists/cncTestLists.vue

@@ -3,73 +3,63 @@
 
 <script>
     import HeaderMain from "../../components/HeaderMain";
+    import api from '../../api/editor'
     export default {
         components: {
             HeaderMain
         },
         data() {
             return {
-                options: [{
-                    value: '选项1',
-                    label: '黄金糕'
-                }, {
-                    value: '选项2',
-                    label: '双皮奶'
-                }, {
-                    value: '选项3',
-                    label: '蚵仔煎'
-                }, {
-                    value: '选项4',
-                    label: '龙须面'
-                }, {
-                    value: '选项5',
-                    label: '北京烤鸭'
-                }],
+                houseList: [],
                 value: '',
                 isShowDialog: false,
-                tests: [{
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }, {
-                    title: "定制你的家居香气",
-                }],
+                pageModel: null,
                 loading: true,
                 currentProject: "所属项目",
+                currentProjectHouseId: "",
             }
         },
         created() {
+            this.houseList = [];
+            api.houseList().then((res) => {
+                if (res.success) {
+                    this.houseList = res.list;
+                }
+            });
 
+            this.getCncTestcaseList();
         },
         methods: {
-            showQRDialog(index) {
+            getCncTestcaseList() {
+                let data = {
+                    "houseId": this.currentProjectHouseId,
+                    "pageNo": 1,
+                    "pageSize": 20,
+                    "uid": ""
+                }
+                api.cncTestcaseList(data).then((res) => {
+                    if (res.success) {
+                        this.pageModel = res.pageModel;
+                    }
+                })
+            },
+            cncTestDetail(testcaseId) {
+                let data = {
+                    "testcaseId": testcaseId,
+                }
+                api.cncTestDetail(data).then((res) => {
+                    if (res.success) {
+                       console.log("cncTestDetail",res)
+                    }
+                })
+            },
+            showQRDialog(testcaseId) {
                 this.isShowDialog = true;
-                this.loading = true,
-                    setTimeout(() => {
-                        this.$refs.dialogQR.scroll(0, 0)
-                    }, 1);
+                this.loading = true;
+                this.cncTestDetail(testcaseId);
+                setTimeout(() => {
+                    this.$refs.dialogQR.scroll(0, 0)
+                }, 1);
                 setTimeout(() => {
                     this.loading = false;
                 }, 3000);
@@ -78,7 +68,18 @@
                 this.isShowDialog = false;
             },
             handleCommand(command) {
-                this.currentProject = command;
+                this.houseList.forEach(element => {
+                    if (element.houseId === command) {
+                        this.currentProject = element.houseName;
+                        this.currentProjectHouseId = element.houseId;
+                        this.getCncTestcaseList();
+                        return true
+                    } else {
+                        this.currentProjectHouseId = "";
+                        return false
+                    }
+                });
+
             }
         },
     }