| | |
| | | # Compiled Object files |
| | | *.slo |
| | | *.lo |
| | | *.o |
| | | *.obj |
| | | .DS_Store |
| | | node_modules |
| | | /dist |
| | | |
| | | # Compiled Dynamic libraries |
| | | *.so |
| | | *.dylib |
| | | *.dll |
| | | |
| | | # Compiled Static libraries |
| | | *.lai |
| | | *.la |
| | | *.a |
| | | *.lib |
| | | # local env files |
| | | .env.local |
| | | .env.*.local |
| | | |
| | | # Executables |
| | | *.exe |
| | | *.out |
| | | *.app |
| | | # Log files |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | | yarn-error.log* |
| | | pnpm-debug.log* |
| | | |
| | | # Editor directories and files |
| | | .idea |
| | | .vscode |
| | | *.suo |
| | | *.ntvs* |
| | | *.njsproj |
| | | *.sln |
| | | *.sw? |
New file |
| | |
| | | module.exports = { |
| | | presets: [ |
| | | '@vue/cli-plugin-babel/preset' |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "compilerOptions": { |
| | | "target": "es5", |
| | | "module": "esnext", |
| | | "baseUrl": "./", |
| | | "moduleResolution": "node", |
| | | "paths": { |
| | | "@/*": [ |
| | | "src/*" |
| | | ] |
| | | }, |
| | | "lib": [ |
| | | "esnext", |
| | | "dom", |
| | | "dom.iterable", |
| | | "scripthost" |
| | | ] |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "name": "website", |
| | | "version": "0.1.0", |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build": "vue-cli-service build", |
| | | "lint": "vue-cli-service lint" |
| | | }, |
| | | "dependencies": { |
| | | "axios": "^0.27.2", |
| | | "core-js": "^3.8.3", |
| | | "element-china-area-data": "^6.1.0", |
| | | "element-ui": "^2.15.10", |
| | | "moment": "^2.29.4", |
| | | "qrcodejs2": "0.0.2", |
| | | "spark-md5": "^3.0.2", |
| | | "video.js": "^7.20.3", |
| | | "vue": "^2.6.14", |
| | | "vue-qr": "^4.0.9", |
| | | "vue-router": "^3.5.1", |
| | | "vue-video-player": "^5.0.2", |
| | | "vue-wxlogin": "^1.0.4", |
| | | "vuex": "^3.6.2", |
| | | "xlsx": "^0.18.5" |
| | | }, |
| | | "devDependencies": { |
| | | "@babel/core": "^7.12.16", |
| | | "@babel/eslint-parser": "^7.12.16", |
| | | "@vue/cli-plugin-babel": "~5.0.0", |
| | | "@vue/cli-plugin-eslint": "~5.0.0", |
| | | "@vue/cli-plugin-router": "~5.0.0", |
| | | "@vue/cli-plugin-vuex": "~5.0.0", |
| | | "@vue/cli-service": "~5.0.0", |
| | | "eslint": "^7.32.0", |
| | | "eslint-plugin-vue": "^8.0.3", |
| | | "less": "^4.1.3", |
| | | "less-loader": "^11.0.0", |
| | | "vue-template-compiler": "^2.6.14" |
| | | }, |
| | | "eslintConfig": { |
| | | "root": true, |
| | | "env": { |
| | | "node": true |
| | | }, |
| | | "extends": [ |
| | | "plugin:vue/essential", |
| | | "eslint:recommended" |
| | | ], |
| | | "parserOptions": { |
| | | "parser": "@babel/eslint-parser" |
| | | }, |
| | | "rules": { |
| | | "vue/multi-word-component-names": 0, |
| | | "no-debugger": "off", |
| | | "no-unused-vars": "warn" |
| | | } |
| | | }, |
| | | "browserslist": [ |
| | | "> 1%", |
| | | "last 2 versions", |
| | | "not dead" |
| | | ] |
| | | } |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang=""> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| | | <meta name="viewport" content="width=device-width,initial-scale=1.0"> |
| | | <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> --> |
| | | <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Sans+SC:100,300,400,500,700,900"> |
| | | <title>çæ°¸çæ°æ®åº</title> |
| | | </head> |
| | | <body> |
| | | <noscript> |
| | | <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| | | </noscript> |
| | | <div id="app"></div> |
| | | <!-- built files will be auto injected --> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | <template> |
| | | <div id="app"> |
| | | <router-view /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | methods: { |
| | | getBack() { |
| | | document.documentElement.scrollTop = document.body.scrollTop; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | @import "~@/assets/css/base.css"; |
| | | @import "~@/assets/css/common.css"; |
| | | #app { |
| | | width: 100%; |
| | | height: 100%; |
| | | font-family: lanting; |
| | | font-weight: 100; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | font-size: auto !important; |
| | | } |
| | | </style> |
New file |
| | |
| | | /** |
| | | * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) |
| | | * http://cssreset.com |
| | | */ |
| | | html, |
| | | body, |
| | | div, |
| | | applet, |
| | | object, |
| | | iframe, |
| | | h1, |
| | | h2, |
| | | h3, |
| | | h4, |
| | | h5, |
| | | h6, |
| | | p, |
| | | blockquote, |
| | | pre, |
| | | a, |
| | | abbr, |
| | | acronym, |
| | | address, |
| | | big, |
| | | cite, |
| | | code, |
| | | del, |
| | | dfn, |
| | | em, |
| | | img, |
| | | ins, |
| | | kbd, |
| | | q, |
| | | s, |
| | | samp, |
| | | small, |
| | | strike, |
| | | sub, |
| | | sup, |
| | | tt, |
| | | var, |
| | | b, |
| | | u, |
| | | i, |
| | | center, |
| | | dl, |
| | | dt, |
| | | dd, |
| | | ol, |
| | | ul, |
| | | li, |
| | | fieldset, |
| | | form, |
| | | label, |
| | | legend, |
| | | table, |
| | | caption, |
| | | tbody, |
| | | tfoot, |
| | | thead, |
| | | tr, |
| | | th, |
| | | td, |
| | | article, |
| | | aside, |
| | | canvas, |
| | | details, |
| | | embed, |
| | | figure, |
| | | figcaption, |
| | | footer, |
| | | header, |
| | | menu, |
| | | nav, |
| | | output, |
| | | ruby, |
| | | section, |
| | | summary, |
| | | time, |
| | | mark, |
| | | audio, |
| | | video, |
| | | input { |
| | | margin: 0; |
| | | padding: 0; |
| | | border: 0; |
| | | font-weight: normal; |
| | | vertical-align: baseline; |
| | | } |
| | | |
| | | |
| | | @font-face { |
| | | font-family: "lanting"; |
| | | src: url(../font/å
°äºé»\ GBK.TTF); |
| | | } |
| | | |
| | | @font-face { |
| | | font-family: "LanTing"; |
| | | src: url(../font/å
°äºé»\ GBK.TTF); |
| | | } |
| | | /* HTML5 display-role reset for older browsers */ |
| | | article, |
| | | aside, |
| | | details, |
| | | figcaption, |
| | | figure, |
| | | footer, |
| | | header, |
| | | menu, |
| | | nav, |
| | | section { |
| | | display: block; |
| | | } |
| | | |
| | | body { |
| | | line-height: 1; |
| | | } |
| | | |
| | | blockquote, |
| | | q { |
| | | quotes: none; |
| | | } |
| | | |
| | | blockquote:before, |
| | | blockquote:after, |
| | | q:before, |
| | | q:after { |
| | | content: none; |
| | | } |
| | | |
| | | table { |
| | | border-collapse: collapse; |
| | | border-spacing: 0; |
| | | } |
| | | |
| | | blockquote { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | a, |
| | | button, |
| | | input { |
| | | outline: none; |
| | | } |
| | | |
| | | /* custom */ |
| | | a { |
| | | color: #7e8c8d; |
| | | text-decoration: none; |
| | | -webkit-backface-visibility: hidden; |
| | | } |
| | | |
| | | li { |
| | | list-style: none; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 10px; |
| | | height: 10px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-track-piece { |
| | | background-color: rgba(0, 0, 0, 0.2); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:vertical { |
| | | height: 5px; |
| | | background-color: rgba(125, 125, 125, 0.7); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:horizontal { |
| | | width: 5px; |
| | | background-color: rgba(125, 125, 125, 0.7); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | body { |
| | | -webkit-text-size-adjust: none; |
| | | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
| | | } |
| | | |
| | | /* * { |
| | | font-size: 14px; |
| | | } */ |
| | | |
| | | html, |
| | | body { |
| | | width: 100%; |
| | | height: 100%; |
| | | /* min-width: 1500px; */ |
| | | font-size: 14px; |
| | | } |
| | | .contentBox p span { |
| | | font-size: auto !important; |
| | | } |
| | | iframe { |
| | | height: 100%; |
| | | } |
| | | |
| | | a { |
| | | text-decoration: none; |
| | | color: #333; |
| | | } |
| | | a:hover { |
| | | text-decoration: none; |
| | | color: #333; |
| | | } |
| | | a:visited { |
| | | text-decoration: none; |
| | | color: #333; |
| | | } |
| | | a:link { |
| | | text-decoration: none; |
| | | color: #333; |
| | | } |
| | | a:active { |
| | | text-decoration: none; |
| | | color: #333; |
| | | } |
| | | .free { |
| | | color: #0bc266 !important; |
| | | } |
| | | .toBtn { |
| | | background-color: #409eff !important; |
| | | margin-left: 15px; |
| | | } |
| | | .toBtn:hover { |
| | | color: #fff !important; |
| | | } |
| | | .noDataTxt { |
| | | margin: 50px auto; |
| | | text-align: center; |
| | | font-size: 22px; |
| | | color: #999; |
| | | flex: 1; |
| | | } |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | .loginPage .el-dialog__body{ |
| | | padding: 10px 20px; |
| | | } |
| | | .watch .el-dialog__body{ |
| | | padding: 10px 20px; |
| | | } |
| | | .teacherCertification .el-dialog__body{ |
| | | padding: 10px 20px; |
| | | } |
New file |
| | |
| | | /* èªéåºå¾ç */ |
| | | .autoImg { |
| | | width: auto; |
| | | height: auto; |
| | | max-width: 100%; |
| | | max-height: 100%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | } |
| | | |
| | | /* å
è´¹ */ |
| | | .freePrice { |
| | | color: #0bc266 !important; |
| | | } |
| | | |
| | | /* 课ç¨éè¿,失败,çå¾
,ä¸è¬ ç¶æ é¢è² */ |
| | | |
| | | .status-s { |
| | | color: #67c23a !important; |
| | | } |
| | | |
| | | .status-w { |
| | | color: #e6a23c !important; |
| | | } |
| | | |
| | | .status-f { |
| | | color: #f56c6c !important; |
| | | } |
| | | |
| | | .status-i { |
| | | color: #999 !important; |
| | | } |
| | | |
| | | /* 坿æ¬å®¹å¨ï¼ä¿ç坿æ¬é»è®¤æ ·å¼ï¼æè§å³æå¾ */ |
| | | .richTextBox { |
| | | line-height: 1.4; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .richTextBox * { |
| | | margin: revert; |
| | | padding: revert; |
| | | border: revert; |
| | | font: revert; |
| | | vertical-align: revert; |
| | | } |
| | | |
| | | .richTextBox p { |
| | | display: block; |
| | | margin-block-start: 1em; |
| | | margin-block-end: 1em; |
| | | margin-inline-start: 0px; |
| | | margin-inline-end: 0px; |
| | | } |
| | | |
| | | /* 主é¢è²ä¿®æ¹ */ |
| | | .el-button--primary { |
| | | background-color: #2b68cd !important; |
| | | border-color: #2b68cd !important; |
| | | } |
| | | |
| | | .el-button--primary:focus, |
| | | .el-button--primary:hover { |
| | | background: #3579ea !important; |
| | | border-color: #3579ea !important; |
| | | color: #fff !important; |
| | | } |
| | | |
| | | .el-tabs__item.is-active { |
| | | color: #2b68cd !important; |
| | | } |
| | | |
| | | /* åè¡çç¥ */ |
| | | .ellipsis { |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | } |
| | | |
| | | /* åè¡çç¥ */ |
| | | .ellipsis-3 { |
| | | text-overflow: -o-ellipsis-lastline; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 3; |
| | | line-clamp: 3; |
| | | -webkit-box-orient: vertical; |
| | | } |
| | | /* flexå¸å± */ |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .flex1 { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | /* ä¸ä¼ å¾ç */ |
| | | .avatar-uploader .el-upload { |
| | | width: 190px; |
| | | height: 140px; |
| | | border: 1px dashed #d9d9d9; |
| | | position: relative; |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409eff; |
| | | } |
| | | |
| | | .noData { |
| | | width: 100%; |
| | | text-align: center; |
| | | color: #999; |
| | | padding: 10px 0; |
| | | font-size: 22px; |
| | | } |
| | | |
| | | .avatarCover { |
| | | display: block; |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | max-width: 100%; |
| | | max-height: 100%; |
| | | margin: auto; |
| | | } |
| | | |
| | | /* å
ç½®ç¶æåä½é¢è² */ |
| | | .primaryTxt { |
| | | color: #2b68cd !important; |
| | | } |
| | | |
| | | .successTxt { |
| | | color: #67c23a !important; |
| | | } |
| | | |
| | | .warningTxt { |
| | | color: #e6a23c !important; |
| | | } |
| | | |
| | | .errorTxt { |
| | | color: #f56c6c !important; |
| | | } |
| | | |
| | | .infoTxt { |
| | | color: #999 !important; |
| | | } |
| | | |
| | | /* å
ç½®ç¶æèæ¯é¢è² */ |
| | | .primaryBack { |
| | | color: #fff !important; |
| | | background: #2b68cd !important; |
| | | } |
| | | |
| | | .successBack { |
| | | color: #fff !important; |
| | | background: #67c23a !important; |
| | | } |
| | | |
| | | .warningBack { |
| | | color: #fff !important; |
| | | background: #e6a23c !important; |
| | | } |
| | | |
| | | .errorBack { |
| | | color: #fff !important; |
| | | background: #f56c6c !important; |
| | | } |
New file |
| | |
| | | // export const requestCtx = "http://182.92.203.7:3001"; // 请æ±å°å |
| | | // export const appId = 12; |
| | | export const requestCtx = "https://www.tepcb.com"; // 请æ±å°å |
| | | export const appId = 2; |
| | | export const requestTimeOut = 300000; // 请æ±è¶
æ¶æ¶é´ |
| | | export const tokenKey = "website-front-token"; |
| | | export const userInfoKey = "website-front-userInfo"; // ç¨æ·ä¿¡æ¯key |
| | | export const appRefCode = "tourismWebsite"; |
| | | export const goodsStore = `defaultGoodsStore${appId}`; // é»è®¤åååº(书å) |
| | | export const learnPlatformGoodsStore = `tourism_examinationsForTouristGuide`; // å¦ä¹ å¹³å°åº |
| | | export const teachingResourceGoodsStore = `tourism_teachingResource`; // æå¦æå¡åº |
| | | export const teachingMaterialsSeriesGoodsStore = `tourism_teachingMaterialsSeries`; // ææå¥ç³»åº |
| | | export const nationalPlanningTextbookGoodsStore = `tourism_nationalPlanningTextbook`; // å½å®¶è§åææåº |
| | | export const onlineCourseLibGoodsStore = `tourism_onlineCourseLib`; // ç½ç»è¯¾ç¨åº |
| | | export const galleryIndexGoodsStore = `tourism_galleryIndex`; // ææ
å¾åºåº |
| | | export const tourismLawsAndRegulationsDatabaseGoodsStore = `tourism_tourismLawsAndRegulationsDatabase`; // æ
游æ³å¾æ³è§æ°æ®åº |
| | | export const digitalResourceLibraryGoodsStore = `tourism_digitalResourceLibrary`; // æ°åèµæºåº |
| | | export const learningPlatformGoodsStore = `tourism_learningPlatform`; // å¦ä¹ å¹³å°åº |
| | | export const publicStore = `defaultPublicStore${appId}`; // é»è®¤èµæºå¼æ¾ä»å¨ |
| | | export const publicRepository = `defaultPublicRepository${appId}`; // é»è®¤èµæºå¼æ¾åº |
| | | export const reg_tel = |
| | | /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; // çµè¯å·æ£å |
| | | // export const pdfUrl = "http://182.92.203.7:3007/pdfRead/"; |
| | | // export const pdfUrl = "http://192.168.1.23:8081/pdfRead/"; |
| | | export const pdfUrl = "https://www.tepcb.com/pdfRead/"; |
| | | // export const pdfUrl = "http://192.168.3.197:8081/pdfRead/"; |
| | | // export const epubUrl = "http://182.92.203.7:3007/epubReader/#/"; |
| | | export const epubUrl = "https://www.tepcb.com/epubReader/#/"; |
| | | |
| | | // é¢érefCode |
| | | export const refCodes = { |
| | | bookStore: { |
| | | bookCategory: "tourism_bookCategory", // å¾ä¹¦åç±» |
| | | bookCityBanner: { |
| | | top: "tourism_banner\\tourism_bookCityBannerTop", |
| | | left: "tourism_banner\\tourism_bookCityBannerLeft", |
| | | right: "tourism_banner\\tourism_bookCityBannerRight", |
| | | }, |
| | | bookRecommendation: "tourism_bookRecommendation", // å¾ä¹¦æ¨è |
| | | bestsellersBooks: "tourism_bestsellersBooks", // ç
鿦 |
| | | newBookRecommendation: "tourism_newBookRecommendation", // æ°ä¹¦ä¸æ¶ |
| | | newBookHotSale: "tourism_newBookHotSale", // æ°ä¹¦ç忦 |
| | | }, |
| | | teachingResource: { |
| | | teachingMaterialsClassification: "tourism_teachingMaterialsClassification", //æå¦åç±» |
| | | excellentLecture: "tourism_excellentLecture", //ç²¾åææ |
| | | teachingResourceManagement: "tourism_teachingResourceManagement", //æ
游管ç |
| | | courseRefcode: "tourism_onlineCourseBannerLib", // 课ç¨åº |
| | | }, |
| | | applyCourse: { |
| | | ClassValidityPeriod: "tourism_eachClassValidityPeriod", |
| | | ClassesNumber: "tourism_classesNumber", |
| | | ClassStudentsNumber: "tourism_eachClassStudentsNumber", |
| | | CourseValidityPeriod: "tourism_offerCourseValidityPeriod", |
| | | }, |
| | | // æç¨¿æ¹å¼ |
| | | submissionMethod: "submissionMethod", |
| | | //èªå®ä¹æ¶èlinkType |
| | | LinkType: { |
| | | FavoriteDownload: "FavoriteDownload", |
| | | FavoriteBookCity: "FavoriteBookCity", // 书å |
| | | FavoriteTeachingService: "FavoriteTeachingService", //æå¦æå¡ |
| | | bookHistory: "bookHistory", |
| | | digitalResourceLibrary: "FavoriteDigitalResourceLibrary", // æ°åèµæºåº |
| | | FavoriteLearnPlatform: "FavoriteLearnPlatform", // å¦ä¹ å¹³å° |
| | | learnPlatformRefcode: { |
| | | tourism_eBookFolder: "FavoriteEbook", // çµå书 |
| | | tourism_questionBankFolder: "FavoriteQuestionBank", //é¢åº |
| | | tourism_mockExam: "FavoriteMockList", //模è |
| | | favoriteGuideword: "FavoriteGuideword", //å¯¼æ¸¸è¯ |
| | | tourism_audioClassFolder: "FavoriteAudioList", //é³é¢è¯¾ |
| | | tourism_videoLessonFolder: "FavoriteMicroLesson", //è§é¢è¯¾ |
| | | tourism_microClass: "FavoriteTinyClass", //微课 |
| | | }, |
| | | }, |
| | | learnPlatform: { |
| | | videoLessonFolder: "tourism_videoLessonFolder", //è§é¢è¯¾ |
| | | audioClassFolder: "tourism_audioClassFolder", //é³é¢è¯¾ |
| | | questionBankFolder: "tourism_questionBankFolder", //é¢åº |
| | | mockExam: "tourism_mockExam", //模è |
| | | ChineseTourGuide: "tourism_ChineseTourGuide", //ä¸æå¯¼æ¸¸è¯ |
| | | ForeignGuideWords: "tourism_ForeignGuideWords", //è±è¯å¯¼æ¸¸è¯ |
| | | tourism: "tourism_microClass", //微课 |
| | | eBookFolder: "tourism_eBookFolder", |
| | | intermediateTourGuide: "tourism_intermediateTourGuide", //ä¸çº§èè¯ |
| | | }, |
| | | learnPlatformShoppingValue: { |
| | | videoLesson: "tourism_videoLesson", //è§é¢è¯¾ |
| | | audioClass: "tourism_audioCourse", //é³é¢è¯¾ |
| | | questionBank: "tourism_questionBank", //é¢åº |
| | | mockExam: "tourism_mockExam", //模è |
| | | ChineseTourGuide: "tourism_ChineseTourGuide", //ä¸æå¯¼æ¸¸è¯ |
| | | ForeignGuideWords: "tourism_ForeignGuideWords", //è±è¯å¯¼æ¸¸è¯ |
| | | tourism: "tourism_microClass", //微课 |
| | | eBook: "tourism_eBook", |
| | | }, |
| | | }; |
| | | |
| | | // é¢åæ°æ® |
| | | export const questionType = { |
| | | singleChoice: "åéé¢", |
| | | multipleChoice: "å¤éé¢", |
| | | judge: "夿é¢", |
| | | shortAnswer: "ç®çé¢", |
| | | completion: "填空é¢", |
| | | matching: "è¿çº¿é¢", |
| | | classification: "åç±»é¢", |
| | | }; |
| | | |
| | | const sampleApplicationData = { |
| | | eBook: null, |
| | | }; |
| | | |
| | | const config = { |
| | | requestCtx, |
| | | requestTimeOut, |
| | | tokenKey, |
| | | userInfoKey, |
| | | appRefCode, |
| | | goodsStore, |
| | | publicStore, |
| | | publicRepository, |
| | | refCodes, |
| | | reg_tel, |
| | | sampleApplicationData, |
| | | pdfUrl, |
| | | epubUrl, |
| | | learnPlatformGoodsStore, |
| | | teachingResourceGoodsStore, |
| | | teachingMaterialsSeriesGoodsStore, |
| | | nationalPlanningTextbookGoodsStore, |
| | | onlineCourseLibGoodsStore, |
| | | galleryIndexGoodsStore, |
| | | tourismLawsAndRegulationsDatabaseGoodsStore, |
| | | digitalResourceLibraryGoodsStore, |
| | | learningPlatformGoodsStore, |
| | | }; |
| | | export default config; |
New file |
| | |
| | | // åæ¶æ¥å£è°ç¨è½åï¼ |
| | | // éåçå¿
è¦æ§ï¼ï¼ |
| | | |
| | | import resource from "./api/resource"; |
| | | import store from "./api/store"; |
| | | import identity from "./api/identity"; |
| | | import ugc from "./api/ugc"; |
| | | import app from "./api/app"; |
| | | import file from "./api/file"; |
| | | import job from "./api/job"; |
| | | import edu from "./api/edu"; |
| | | |
| | | const WebMiddleGroundApi = { |
| | | resource, |
| | | store, |
| | | identity, |
| | | ugc, |
| | | app, |
| | | file, |
| | | job, |
| | | edu |
| | | }; |
| | | |
| | | export default WebMiddleGroundApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | const appApi = { |
| | | // è·åç¨æ·æ¶æ¯å表 |
| | | getAppMessageList(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetAppMessageList", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | // è·åç¨æ·æ¶æ¯è¯¦æ
|
| | | getMessage(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetMessage", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | //è·ååè¯ |
| | | getTicketResult(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetTicketResult", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | //使ç¨åè¯ |
| | | useTicket(data) { |
| | | return request({ |
| | | url: "/app/api/ApiUseTicket", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åCmsItemæç
§Eventç»è®¡ |
| | | getEventRankList(data) { |
| | | return request({ |
| | | url: "/app/api/ApiGetEventRankList", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default appApi; |
New file |
| | |
| | | import request from '@/plugin/axios' |
| | | import { handleQueryResourceListData } from '../tool' |
| | | const eduApi = { |
| | | // è·åååä¸çç»å·çç¥ |
| | | getQuizConfigListByProduct(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetQuizConfigListByProduct', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | // è·åç»å·ç»æ |
| | | getEduQuizConfigResult(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetEduQuizConfigResult', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //ç³è¯·è¯¾ç¨ |
| | | applyNewCourse(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiApplyNewCourse', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //æ´æ°è¯¾ç¨ç³è¯·ä¿¡æ¯ |
| | | updateCourseApply(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiUpdateCourseApply', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åæçè¯¾ç¨ |
| | | getAppCourseList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetAppCourseList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åå·²ç³è¯·ç课ç¨è¯¦æ
|
| | | getCourseById(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetCourseById', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·åå建课ç¨ä¸çç级å表 |
| | | getCourseClassList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetCourseClassList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å建ççº§ä¿¡æ¯ |
| | | newCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiNewCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å é¤ççº§ä¿¡æ¯ |
| | | delCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiDelCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ´æ°ççº§ä¿¡æ¯ |
| | | updateCourseClass(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiUpdateCourseClass', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //å建课ç¨è®¢å |
| | | createCourseOrder(data) { |
| | | return request({ |
| | | url: '/store/api/CreateCourseOrder', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // å
è´¹é¢åè¯¾ç¨ |
| | | makeFreeOrderPay(data) { |
| | | return request({ |
| | | url: '/store/api/MakeFreeOrderPay', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // è·åæåç»æ |
| | | getRankingList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetRankingList', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | //è·å个人æå |
| | | getRanking(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetTopRanking', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ°å»ºæåè®°å½ |
| | | newRanking(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiNewRanking', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // å é¤ç»å·è§å |
| | | delQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/DelQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ´æ°ç»å·è§å |
| | | updateQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/UpdateQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | |
| | | // æ ¹æ®IDè·åç»å·é
ç½® |
| | | getQuizConfig(data) { |
| | | return request({ |
| | | url: '/edu/admin/GetQuizConfig', |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | }, |
| | | } |
| | | |
| | | export default eduApi |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | const fileApi = { |
| | | // è·åpdfæ»é¡µæ° |
| | | getPdfTotalPage(data) { |
| | | return request({ |
| | | url: "/file/GetPdfTotalPage", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åpdfãwordãpptç转å¾çé¢è§ |
| | | getPdfInfo(data) { |
| | | return request({ |
| | | url: "/file/GetPdfInfo", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | //ä¸ä¼ æä»¶ |
| | | upload(data) { |
| | | return request({ |
| | | url: "/file/api/ApiUpload", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | // è·åé¿éäºå éå°å |
| | | getAliVod(data) { |
| | | return request({ |
| | | url: "/file/GetAliVod", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | downloadForAuthorize(params) { |
| | | return request({ |
| | | url: '/file/api/ApiDownloadForAuthorize', |
| | | method: 'GET', |
| | | responseType: 'blob', |
| | | params |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | export default fileApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | const identityApi = { |
| | | // è·åå¾å½¢éªè¯ç |
| | | getImgCode() { |
| | | return request({ |
| | | url: "/identity/NewCaptcha", |
| | | method: "post", |
| | | }); |
| | | }, |
| | | |
| | | // éªè¯å¾å½¢éªè¯ç |
| | | verificationImgCode(data) { |
| | | return request({ |
| | | url: "/identity/ValidCaptcha", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // éªè¯æ»å¨éªè¯ç |
| | | validSlideCaptcha(options) { |
| | | return request('/identity/ValidSlideCaptcha', { |
| | | method: 'POST', |
| | | data: options || {}, |
| | | }); |
| | | }, |
| | | // è·åæ»å¨éªè¯ç |
| | | getSlideCaptchaImage(options) { |
| | | return request('/identity/GetSlideCaptchaImage', { |
| | | method: 'POST', |
| | | data: options || {}, |
| | | }); |
| | | }, |
| | | |
| | | // è·åçä¿¡éªè¯ç |
| | | getPhoneCode(data) { |
| | | return request({ |
| | | url: "/identity/NewSms", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // éªè¯çä¿¡éªè¯ç |
| | | verificationPhoneCode(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiValidMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // éè¿ææºå·æ³¨åç¨æ· |
| | | registerAppUserWithPhone(data) { |
| | | return request({ |
| | | url: "/identity/api/RegisterAppUserWithPhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è´¦å·å¯ç ç»å½ |
| | | loginByPassword(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByPassword", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // çä¿¡éªè¯ç ç»å½ |
| | | loginByMobilePhone(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è®¾ç½®ç¨æ·key |
| | | setUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiAppUserSetKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·key |
| | | getUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiGetAppUserKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å é¤ç¨æ·key |
| | | delUserKey(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiDelAppUserKey", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åå»å½åç¨æ·ä¿¡æ¯ |
| | | getCurrentAppUser() { |
| | | return request({ |
| | | url: "/identity/api/GetCurrentAppUser", |
| | | method: "post", |
| | | }); |
| | | }, |
| | | |
| | | // æ·»å ç¨æ·ä¿¡æ¯ |
| | | setAppUserInfo(data) { |
| | | return request({ |
| | | url: "/identity/api/SetAppUserInfoRequest", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ç¨æ·æ´æ¢ç»å®ææºå·ï¼å¦æ²¡æç»å®ææºåèªå¨å建 |
| | | userSetPhoneNumber(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiUserSetPhoneNumber", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // æ£æµç¨æ·æ¯å¦ç»å®å¾®ä¿¡ |
| | | checkBuildingWeChat(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiCheckBuildingWeChat", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | |
| | | // éè¿ææºå·éç½®å¯ç |
| | | changePasswordByMobilePhone(data) { |
| | | return request({ |
| | | url: "/identity/api/ChangePasswordByMobilePhone", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å¾®ä¿¡å¼æ¾å¹³å°æ«ç ç»å½ |
| | | loginByWeChatOpenCode(data) { |
| | | return request({ |
| | | url: "/identity/api/LoginByWeChatOpenCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ç¨æ·ç»å®å¾®ä¿¡å· |
| | | bindingWeChat(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiBindingWeChat", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // 设置ç»å½çç¨æ·ååå¯ç ï¼ç¨æ·ååå¯ç è³å°6ä½ |
| | | setLoginNameAndPassword(data) { |
| | | return request({ |
| | | url: "/identity/api/ApiUserSetLoginNameAndPassword", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // åå¹¶å·²æææºè´¦å· |
| | | mergePhone(data){ |
| | | return request({ |
| | | url: "/identity/api/MergePhoneAccount", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // åå¹¶å·²æææºè´¦å· |
| | | unsubscribeAppuser(data){ |
| | | return request({ |
| | | url: "/identity/api/ApiWithdraw", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default identityApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | import { tokenKey } from "@/assets/js/config"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | |
| | | |
| | | const jobApi = { |
| | | // ç»è®¡ |
| | | newJobWithNewView(data) { |
| | | return request({ |
| | | url: "/job/api/NewJobWithNewView", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | newSession(data) { |
| | | let token = toolClass.getCookie(tokenKey); |
| | | return request({ |
| | | url: token ? "/job/api/AppUserNewSession" : "/job/api/NewSession", |
| | | method: "post", |
| | | data |
| | | }); |
| | | }, |
| | | |
| | | newJobWithApiNewEvent(data){ |
| | | return request({ |
| | | url: "/job/api/NewJobWithApiNewEvent", |
| | | method: "post", |
| | | data |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | export default jobApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | import { publicStore, publicRepository } from "@/assets/js/config"; |
| | | import { tokenKey } from "@/assets/js/config"; |
| | | import { handleQueryResourceListData } from "../tool"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | const resourceApi = { |
| | | /* |
| | | **è·åèµæºå表&详æ
** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | repositoryInfo: ä»åº |
| | | queryType: æ£ç´¢ç±»å |
| | | paging: å页 |
| | | sort: æåº |
| | | fields: èªå®ä¹å段 |
| | | itemId: è·å详æ
æ¶çèµæºID |
| | | */ |
| | | getItem: ({ |
| | | path, |
| | | storeInfo = publicStore, |
| | | repositoryInfo = publicRepository, |
| | | queryType, |
| | | linkType, |
| | | paging, |
| | | sort, |
| | | fields, |
| | | itemId, |
| | | itemIds, |
| | | itemType, |
| | | coverSize, |
| | | itemIdArr, |
| | | SysType, |
| | | tourism_isHighQualityResources, |
| | | }) => { |
| | | if (!path) return Promise.reject("æ¥å£è¯·æ±å¿
è¦åæ°ä¸è½ä¸ºç©ºï¼"); |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + "", |
| | | RepositoryRefCode: repositoryInfo + "", |
| | | Type: queryType || "\\", |
| | | LinkType: linkType || "", |
| | | }, |
| | | PageQuery: { |
| | | Start: paging?.start || "0", |
| | | Size: paging?.size || "10", |
| | | }, |
| | | SortQuery: sort |
| | | ? [sort] |
| | | : [ |
| | | // { |
| | | // LinkOrder: "Desc", |
| | | // }, |
| | | { |
| | | CreateDate: "Desc", |
| | | }, |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | Type: [], |
| | | TypeId: [], |
| | | State: [], |
| | | Tag: [], |
| | | LinkInfo: [], |
| | | LinkFile: [], |
| | | CmsItemType: [], |
| | | ChildrenFolderCount: [], |
| | | ChildrenCount: [], |
| | | ...fields, |
| | | }; |
| | | if (itemIdArr) query["Id"] = itemIdArr; |
| | | if (SysType) query["SysType="] = [`${SysType}`]; |
| | | if (tourism_isHighQualityResources) |
| | | query["tourism_isHighQualityResources="] = [ |
| | | `${tourism_isHighQualityResources}`, |
| | | ]; |
| | | if (itemId) query["Id="] = [`${itemId}`]; |
| | | if (itemIds) query["Id="] = itemIds; |
| | | if (itemType) query["Type="] = [`${itemType}`]; |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: query }] }) }; |
| | | let token = toolClass.getCookie(tokenKey); |
| | | return request({ |
| | | url: token ? "/resource/api/ApiAppUserQuery" : "/resource/api/ApiQuery", |
| | | method: "post", |
| | | data: body, |
| | | }).then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0]; |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | repositoryInfo, |
| | | coverSize, |
| | | }); |
| | | return { datas, total: data.totalCount }; |
| | | } |
| | | return { datas: [], total: 0 }; |
| | | }); |
| | | }, |
| | | // æ¨¡ç³æç´¢ |
| | | EsQuery(query) { |
| | | let { params, path, paging } = query; |
| | | let queryBody = { |
| | | Type: "*", |
| | | Store: [], |
| | | ItemType: [], |
| | | CmsType: [], |
| | | SysType: ["CmsItem"], |
| | | LinkInfo: [], |
| | | PageQuery: { |
| | | Start: paging?.start || "0", |
| | | Size: paging?.size || "10", |
| | | }, |
| | | }; |
| | | // 设置ä¸åçPath |
| | | |
| | | // å¦ææ²¡ææç´¢å
³é®åï¼ååªç¨è·ååç§° |
| | | if (params.length > 0) { |
| | | let data = { |
| | | "||Name": [...params], |
| | | "||tourism_content*": [...params], |
| | | "||tourism_workflow*": [...params], |
| | | "||tourism_notes*": [...params], |
| | | "||tourism_caseIndex*": [...params], |
| | | "||tourism_basicCase*": [...params], |
| | | "||tourism_judgmentAndReasons*": [...params], |
| | | "||tourism_legalIssuesInvolvedInThisCase*": [...params], |
| | | "||tourism_referenceAnswerAndLegalAnalysis*": [...params], |
| | | "||tourism_case*": [...params], |
| | | "||tourism_clause*": [...params], |
| | | "||tourism_unscramble*": [...params], |
| | | "||tourism_specialRemind*": [...params], |
| | | "||tourism_fiction*": [...params], |
| | | "||tourism_authorityNature*": [...params], |
| | | "||tourism_authorityGist*": [...params], |
| | | "||tourism_penaltyGist*": [...params], |
| | | "||tourism_penaltyTerms*": [...params], |
| | | "||tourism_penaltyType*": [...params], |
| | | "||tourism_remarksNote*": [...params], |
| | | "||tourism_keyword*": [...params], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } else { |
| | | let data = { |
| | | Name: [], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } |
| | | |
| | | // å
¨é¨æç´¢ - åç¬çæä¸ªåº |
| | | if (path != "All") { |
| | | let data = { |
| | | Path: [ |
| | | { |
| | | Repository: "tourism_tourismLawsAndRegulationsDatabase", |
| | | Path: path, |
| | | }, |
| | | ], |
| | | }; |
| | | Object.assign(queryBody, data); |
| | | } |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: queryBody }] }) }; |
| | | |
| | | return request({ |
| | | url: "/resource/api/ApiEsQuery", |
| | | method: "post", |
| | | data: body, |
| | | }).then((res) => { |
| | | if (res.length > 0) { |
| | | const data = res[0]; |
| | | |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | path, |
| | | }); |
| | | return { datas, total: data.totalCount }; |
| | | } |
| | | return { data: [], total: 0 }; |
| | | }); |
| | | }, |
| | | |
| | | //è·åèµæºç±»å |
| | | getCmsTypeByRefCode(data) { |
| | | return request({ |
| | | url: "resource/api/ApiGetCmsTypeByRefCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //åæ¶cmsæ¶è |
| | | delCmsItemLink(data) { |
| | | return request({ |
| | | url: "/resource/api/ApiDelCmsItemLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //cmsæ¶è |
| | | collectCmsItem(data) { |
| | | return request({ |
| | | url: "/resource/api/ApiAddCmsItemLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åcmsæ¶èå表 |
| | | getCmsCollectList(data) { |
| | | const body = { query: JSON.stringify({ Query: [{ Q1: data }] }) }; |
| | | return request({ |
| | | url: "/resource/api/ApiAppUserQuery", |
| | | method: "post", |
| | | data: body, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default resourceApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | import { tokenKey, goodsStore } from "@/assets/js/config"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | import { |
| | | handleQueryResourceListData, |
| | | handleDetailQueryRequestData, |
| | | } from "../tool"; |
| | | const storeApi = { |
| | | /* |
| | | **è·åååå表** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | channelInfo: é¢é |
| | | subAccess: |
| | | queryType: æ£ç´¢ç±»å |
| | | paging: å页 |
| | | sort: æåº |
| | | fields: èªå®ä¹å段 |
| | | */ |
| | | getProductList: ({ |
| | | path = "", |
| | | storeInfo = goodsStore, |
| | | storeEventIdOrRefCode = "", |
| | | favoriteTypes = "", |
| | | queryType, |
| | | linkType, |
| | | subAccess = [], |
| | | paging = {}, |
| | | sort, |
| | | fields, |
| | | filterList, |
| | | coverSize, |
| | | mainProductId, |
| | | handelEBooK, |
| | | }) => { |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + "", |
| | | Type: queryType || "\\", |
| | | LinkType: linkType || "", |
| | | }, |
| | | FavoriteTypes: favoriteTypes ? [favoriteTypes] : [], |
| | | SubAccess: subAccess.length > 0 ? subAccess : [], |
| | | PageQuery: { |
| | | Start: paging.start || "0", |
| | | Size: paging.size || "10", |
| | | }, |
| | | SortQuery: |
| | | sort?.length == 0 |
| | | ? [] |
| | | : sort |
| | | ? [sort] |
| | | : [ |
| | | { |
| | | LinkOrder: "Desc", |
| | | }, |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | TypeId: [], |
| | | SysType: [], |
| | | State: [], |
| | | Tag: [], |
| | | BeginDate: [], |
| | | EndDate: [], |
| | | ProductLinkInfo: [], |
| | | AllowDonate: [], |
| | | // DonatePriceList: [], |
| | | StoreEvent: [], |
| | | SubProductCount: [], |
| | | SaleMethod: [], |
| | | SaleMethodValid: [], |
| | | StoreEventIdOrRefCode: storeEventIdOrRefCode, |
| | | ...fields, |
| | | ...filterList, |
| | | }; |
| | | if (mainProductId) { |
| | | query.AccessControl.MainProductId = mainProductId; |
| | | } |
| | | if (handelEBooK) { |
| | | query.ProductCmsQuery = [ |
| | | { |
| | | QueryCms: { |
| | | Path: "*", |
| | | Type: "\\", |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999, |
| | | }, |
| | | ProductLinkInfo: [], |
| | | }, |
| | | }, |
| | | ]; |
| | | } |
| | | const body = { |
| | | query: JSON.stringify({ |
| | | Query: [ |
| | | { |
| | | Q1: query, |
| | | }, |
| | | ], |
| | | }), |
| | | }; |
| | | let token = toolClass.getCookie(tokenKey); |
| | | let url = token |
| | | ? "/store/api/ApiQueryProductByAppUser" |
| | | : "/store/api/ApiQueryProduct"; |
| | | return request({ |
| | | url: url, |
| | | method: "post", |
| | | data: body, |
| | | }).then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0]; |
| | | const datas = handleQueryResourceListData({ |
| | | datas: data.datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | coverSize, |
| | | handelEBooK, |
| | | }); |
| | | return { |
| | | datas, |
| | | total: data.totalCount, |
| | | extraInfos: data.extraInfos?.StoreEvent, |
| | | }; |
| | | } |
| | | return { |
| | | datas: [], |
| | | total: 0, |
| | | }; |
| | | }); |
| | | }, |
| | | /* |
| | | **è·ååå详æ
** |
| | | path: æ°æ®è·¯å¾ |
| | | storeInfo: ä»å¨ |
| | | channelInfo: é¢é |
| | | subAccess: |
| | | fields: èªå®ä¹å段 |
| | | productId: ååID |
| | | cmsPathï¼cmsPath |
| | | */ |
| | | getProductDetail: ({ |
| | | path = "", |
| | | storeInfo = goodsStore, |
| | | channelInfo = "", |
| | | favoriteTypes = "", |
| | | queryType, |
| | | subAccess = [], |
| | | fields, |
| | | productId, |
| | | cmsPath, |
| | | cmsType, |
| | | coverSize, |
| | | itemId, |
| | | itemIds, |
| | | itemFields, |
| | | linkTypes, |
| | | filterList, |
| | | handelEBooK, |
| | | sort, |
| | | cmsSort, |
| | | }) => { |
| | | const subQuery = {}; |
| | | if (cmsPath) { |
| | | subQuery["QueryCms"] = { |
| | | Path: cmsPath + "", |
| | | Type: cmsType || "\\", |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999, |
| | | }, |
| | | SortQuery: cmsSort |
| | | ? [cmsSort] |
| | | : [ |
| | | { |
| | | ProductLinkOrder: "Asc" |
| | | } |
| | | ], |
| | | ProductLinkInfo: [], |
| | | ...itemFields, |
| | | }; |
| | | if (itemId) subQuery["QueryCms"]["Id="] = [`${itemId}`]; |
| | | if (itemIds) subQuery["QueryCms"]["Id="] = itemIds; |
| | | } else { |
| | | subQuery["QueryCms"] = { |
| | | Path: "*", |
| | | Type: "\\", |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | ChildrenCount: [], |
| | | ChildrenFolderCount: [], |
| | | CreateDate: [], |
| | | SysType: [], |
| | | SaleMethod: [], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 9999, |
| | | }, |
| | | ProductLinkInfo: [], |
| | | }; |
| | | } |
| | | // è·åå
³èèµæº |
| | | let linkFields = {}; |
| | | if (linkTypes && linkTypes.length) { |
| | | for (let i = 0; i < linkTypes.length; i++) { |
| | | const linkType = linkTypes[i]; |
| | | subQuery["QueryLink_" + linkType.linkType] = { |
| | | Path: cmsPath + "", |
| | | Type: "\\", |
| | | Name: [], |
| | | Icon: [], |
| | | TypeId: [], |
| | | RefCode: [], |
| | | LinkTypes: [linkType.linkType], |
| | | PageQuery: { |
| | | Start: 0, |
| | | Size: 100, |
| | | }, |
| | | ProductLinkInfo: [], |
| | | ...linkType.fields, |
| | | }; |
| | | linkFields = { |
| | | ...linkFields, |
| | | ...linkType.fields, |
| | | }; |
| | | } |
| | | } |
| | | const query = { |
| | | AccessControl: { |
| | | Path: path, |
| | | StoreRefCode: storeInfo + "", |
| | | ChannelRefCode: channelInfo + "", |
| | | Type: queryType || "\\", |
| | | }, |
| | | FavoriteTypes: favoriteTypes ? [favoriteTypes] : [], |
| | | SubAccess: subAccess.length > 0 ? subAccess : [], |
| | | PageQuery: { |
| | | Start: "0", |
| | | Size: "1", |
| | | }, |
| | | "Id=": [`${productId}`], |
| | | SortQuery: sort |
| | | ? [sort] |
| | | : [ |
| | | { |
| | | LinkOrder: "Desc" |
| | | } |
| | | ], |
| | | CreateDate: [], |
| | | Description: [], |
| | | Name: [], |
| | | Icon: [], |
| | | RefCode: [], |
| | | TypeId: [], |
| | | SysType: [], |
| | | State: [], |
| | | Tag: [], |
| | | BeginDate: [], |
| | | EndDate: [], |
| | | ProductLinkInfo: [], |
| | | AllowDonate: [], |
| | | DonatePriceList: [], |
| | | StoreEvent: [], |
| | | SaleMethod: [], |
| | | SaleMethodValid: [], |
| | | CmsItemValid: [], |
| | | ProductCmsQuery: [subQuery], |
| | | ...fields, |
| | | ...filterList, |
| | | }; |
| | | if (productId) query["Id="] = [`${productId}`]; |
| | | |
| | | const body = { |
| | | query: JSON.stringify({ |
| | | Query: [ |
| | | { |
| | | Q1: query, |
| | | }, |
| | | ], |
| | | }), |
| | | }; |
| | | let token = toolClass.getCookie(tokenKey); |
| | | let url = token |
| | | ? "/store/api/ApiQueryProductByAppUser" |
| | | : "/store/api/ApiQueryProduct"; |
| | | return request({ |
| | | url: url, |
| | | method: "post", |
| | | data: body, |
| | | }).then((resp) => { |
| | | if (resp.length > 0) { |
| | | const data = resp[0]; |
| | | if (data.datas.length) { |
| | | data.datas[0].subDatas = data.datas[0].cmsDatas; |
| | | const datas = handleDetailQueryRequestData({ |
| | | item: data.datas[0], |
| | | fields, |
| | | itemFields: { |
| | | ...itemFields, |
| | | ...linkFields, |
| | | }, |
| | | path, |
| | | coverSize, |
| | | handelEBooK, |
| | | }); |
| | | return { |
| | | datas, |
| | | total: data.totalCount, |
| | | }; |
| | | } else { |
| | | return { |
| | | datas: [], |
| | | total: 0, |
| | | }; |
| | | } |
| | | } |
| | | return { |
| | | datas: [], |
| | | total: 0, |
| | | }; |
| | | }); |
| | | }, |
| | | |
| | | // è·å伿 å¸å表 |
| | | getChannelPromoteCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetChannelPromoteCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·å·²é¢åç伿 å¸å表 |
| | | getPromoteCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetPromoteCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·æµè§æè¡ |
| | | getProductViewRank(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetProductViewRank", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·éå®æè¡ |
| | | getProductSaleRank(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetProductSaleRank", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åååå¯ç¨ä¼æ å¸ |
| | | getProductPromoteCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetProductPromoteCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·å订åå¯ç¨ä¼æ å¸ |
| | | getOrderPromoteCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/GetOrderPromoteCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åé宿¹å¼å¯ç¨ä¼æ å¸ |
| | | getSaleMethodPromoteCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/GetSaleMethodPromoteCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // é¢å伿 å· |
| | | getPromoteCode(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetPromoteCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // 为订å使ç¨ä¼æ å¸ |
| | | updateOrderPromoteCode(data) { |
| | | return request({ |
| | | url: "/store/api/UpdateOrderPromoteCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // 为é宿¹å¼ä½¿ç¨ä¼æ å¸ |
| | | updateSaleMethodPromoteCode(data) { |
| | | return request({ |
| | | url: "/store/api/UpdateSaleMethodPromoteCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // éè¿è®¢åå·è·å订å |
| | | getOrderByOrderNum(data) { |
| | | return request({ |
| | | url: "/store/api/GetOrderByOrderNum", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å建订å |
| | | initOrder(data) { |
| | | return request({ |
| | | url: "/store/api/InitOrder", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // 确认订å |
| | | confirmOrder(data) { |
| | | return request({ |
| | | url: "/store/api/ConfirmOrder", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // åæ¶è®¢å |
| | | cancelOrder(data) { |
| | | return request({ |
| | | url: "/store/api/CancelOrder", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // èµèµ |
| | | CreateDonateOrder(data) { |
| | | return request({ |
| | | url: "/store/api/CreateDonateOrder", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è·åç¨æ·è®¢åå表 |
| | | getUserOrderList(data) { |
| | | return request({ |
| | | url: "/store/api/GetUserOrderList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è·åé¢éä¸çå表 |
| | | getStoreChannelList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetStoreChannelList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è·åè´ç©è½¦ |
| | | getShoppingCartProductList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetShoppingCartProductList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //æ·»å å°è´ç©è½¦ |
| | | addShoppingCart(data) { |
| | | return request({ |
| | | url: "/store/api/ApiAddShoppingCart", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è´ç©è½¦å é¤åå |
| | | delShoppingCart(data) { |
| | | return request({ |
| | | url: "/store/api/ApiDelShoppingCart", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //ä»è´ç©è½¦å建订å |
| | | shoppingCartCreateOrder(data) { |
| | | return request({ |
| | | url: "/store/api/ApiShoppingCartCreateOrder", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è·åå·²è´ä¹°çååå表 |
| | | getPurchasedProductList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetPurchasedProductList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è°å微信æ¯ä» |
| | | makeWeChatPay(data) { |
| | | return request({ |
| | | url: "/store/api/MakeWeChatPay", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è°å微信äºç»´ç æ¯ä» |
| | | makeWeChatQrPay(data) { |
| | | return request({ |
| | | url: "/store/api/MakeWeChatQrPay", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åæ¿æ´»ç 详æ
|
| | | getActiveCode(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetActiveCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ä½¿ç¨æ¿æ´»ç |
| | | userActiveCode(data) { |
| | | return request({ |
| | | url: "/store/api/ApiUseActiveCode", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // ä½¿ç¨æ¿æ´»ç 使ç¨è®°å½ |
| | | userActiveCodeList(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetUsedActiveCodeList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ååæ¥è¯¢ç±»ååæ®µæ¥å£ |
| | | getProductTypeField(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetProductTypeField", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // æ¶èæå å
¥ä¹¦æ¶ |
| | | addProductLink(data) { |
| | | return request({ |
| | | url: "/store/api/ApiAddProductLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // åæ¶æ¶èæç§»é¤ä¹¦æ¶ |
| | | delProductLink(data) { |
| | | return request({ |
| | | url: "/store/api/ApiDelProductLink", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //è´ä¹°å
è´¹åå |
| | | MakeFreeOrderPay(data) { |
| | | return request({ |
| | | url: "/store/api/MakeFreeOrderPay", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // ç³è¯·è®¢åå¼ç¥¨ |
| | | requestOrderInvoice(data) { |
| | | return request({ |
| | | url: "/store/api/RequestOrderInvoice", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·é±å
|
| | | getUserWallet(data) { |
| | | return request({ |
| | | url: "/store/api/GetWallet", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // è·åç¨æ·é±å
è®°å½ |
| | | getWalletHistory(data) { |
| | | return request({ |
| | | url: "/store/api/GetWalletHistory", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // éè¿é±å
èªå¨è´ä¹° |
| | | autoPayWithWallet(data) { |
| | | return request({ |
| | | url: "/store/api/AutoPayWithWallet", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | // æ¥è¯¢ååæå¨Store |
| | | getProductStore(data) { |
| | | return request({ |
| | | url: "/store/api/ApiGetProductStore", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default storeApi; |
New file |
| | |
| | | import request from "@/plugin/axios"; |
| | | import { tokenKey } from "@/assets/js/config"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | // let token = toolClass.getCookie(tokenKey); |
| | | const ugcApi = { |
| | | // è·åååç¹èµTopic |
| | | getProductLikesTopic(data) { |
| | | return request({ |
| | | url: toolClass.getCookie(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetProductLikesTopic" |
| | | : "/ugc/api/ApiGetProductLikesTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åååè¯è®ºTopic |
| | | getProductCommentTopic(data) { |
| | | return request({ |
| | | url: toolClass.getCookie(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetProductCommentTopic" |
| | | : "/ugc/api/ApiGetProductCommentTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åMessageList |
| | | getTopicMessageList(data) { |
| | | return request({ |
| | | url: toolClass.getCookie(tokenKey) |
| | | ? "/ugc/api/ApiAppUserGetTopicMessageList" |
| | | : "/ugc/api/ApiGetTopicMessageList", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // æ°å»ºMessage |
| | | newTopicMessage(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiNewTopicMessage", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // å é¤Message |
| | | delTopicMessage(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiDelTopicMessage", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åcmsè¯è®º |
| | | getCmsItemCommentTopic(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiGetCmsItemCommentTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | // è·åç¨æ·æäº¤çæå¦èµæº |
| | | getProductUserSubmitTopic(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiGetProductUserSubmitTopic", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | |
| | | //æ´æ°TOPICMESSAGE |
| | | updateTopicMessage(data) { |
| | | return request({ |
| | | url: "/ugc/api/ApiUpdateTopicMessage", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | export default ugcApi; |
New file |
| | |
| | | import { requestCtx } from "@/assets/js/config"; |
| | | import moment from "moment"; |
| | | // å¤çå表æ¥è¯¢ç»æ |
| | | export function handleQueryResourceListData({ |
| | | datas, |
| | | fields, |
| | | path, |
| | | storeInfo, |
| | | repositoryInfo, |
| | | coverSize, |
| | | handelEBooK, |
| | | }) { |
| | | const dataList = []; |
| | | for (let i = 0; i < datas.length; i++) { |
| | | const item = datas[i]; |
| | | // å¤çåæ®µ |
| | | const _fields = {}; |
| | | if (fields != null) { |
| | | for (let fieldKey in fields) { |
| | | if (item.datas[fieldKey]) { |
| | | const values = JSON.parse(item.datas[fieldKey]); |
| | | if (values.length > 0) { |
| | | // ç¨å段åå¤çè¿åçåæ®µå¼ |
| | | if (values[0].Value) { |
| | | _fields[fieldKey] = values[0].Value; |
| | | } else if (values[0].Data) { |
| | | _fields[fieldKey] = values[0].Data.Value; |
| | | } |
| | | item.datas[fieldKey] = values[0]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | const subDatas = {}; |
| | | if (item.subDatas) { |
| | | for (let subData of item.subDatas) { |
| | | const tag = subData.queryTag.replace("Query", ""); |
| | | subDatas[tag] = subData.datas; |
| | | } |
| | | } |
| | | |
| | | let obj = { |
| | | ...item, |
| | | id: item.id, |
| | | name: item.datas.Name, |
| | | icon: getPublicImage( |
| | | item.datas.Icon, |
| | | coverSize?.width, |
| | | coverSize?.height |
| | | ), |
| | | repositoryInfo: repositoryInfo, |
| | | refCode: item.datas.RefCode === "[]" ? null : item.datas.RefCode, |
| | | state: item.datas.State, |
| | | type: item.datas.Type, |
| | | tag: item.datas.Tag, |
| | | creator: item.datas.Creator ? JSON.parse(item.datas.Creator) : undefined, |
| | | storeInfo: storeInfo, |
| | | linkType: item.datas.LinkType, |
| | | childrenCount: parseInt(item.datas.ChildrenCount ?? "0"), |
| | | childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? "0"), |
| | | childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? "0"), |
| | | createDate: moment(item.datas.CreateDate).format("YYYY-MM-DD"), |
| | | beginDate: moment(item.datas.BeginDate).format("YYYY-MM-DD"), |
| | | endDate: moment(item.datas.EndDate).format("YYYY-MM-DD"), |
| | | description: item.datas.Description, |
| | | sysType: item.datas.SysType, |
| | | idPath: path + "\\" + item.id, |
| | | typeId: parseInt(item.datas.TypeId), |
| | | linkFile: JSON.parse(item.datas.LinkFile ?? "[]"), |
| | | cmsItemType: item.datas.CmsItemType, |
| | | allowDonate: item.datas.AllowDonate == "True", |
| | | // donatePriceList: JSON.parse(item.datas.DonatePriceList ?? "[]"), |
| | | productLinkInfo: item.datas.ProductLinkInfo ?? "[]", |
| | | storeEvent: JSON.parse(item.datas.StoreEvent ?? "[]"), |
| | | linkInfo: JSON.parse(item.datas.LinkInfo ?? "[]"), |
| | | saleMethod: JSON.parse(item.datas.SaleMethod ?? "[]"), |
| | | subProductCount: parseInt(item.datas.SubProductCount), |
| | | ..._fields, |
| | | datas: item.datas, |
| | | subDatas, |
| | | }; |
| | | |
| | | // ç»ä¸å¤çä»·æ ¼ |
| | | if (obj.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // è·åéä¹¦èµæºçé宿¹å¼ |
| | | let saleMethod = []; |
| | | try { |
| | | saleMethod = obj.cmsDatas[0].datas.find( |
| | | (item) => item.datas.RefCode == "tourism_accompanyingResources" |
| | | ).datas.SaleMethod; |
| | | saleMethod = JSON.parse(saleMethod); |
| | | } catch (error) { |
| | | saleMethod = []; |
| | | } |
| | | if (saleMethod.length) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()); |
| | | saleMethod[0][newKey] = saleMethod[0][key]; |
| | | delete saleMethod[0][key]; |
| | | }); |
| | | obj.defaultSaleMethod = saleMethod[0]; |
| | | obj.defaultSaleMethodId = saleMethod[0].id; |
| | | obj.alreadyBuy = |
| | | obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1; |
| | | } |
| | | } |
| | | if (obj.defaultSaleMethod.allowEvent && obj.storeEvent.length) { |
| | | // å·²åå æ´»å¨ï¼è·åæææ´»å¨å¹¶è®¡ç®ä»·æ ¼ |
| | | let time = new Date().getTime(); |
| | | // è¿æ»¤è¿ææ´»å¨ |
| | | let event = obj.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime(); |
| | | return endTime > time; |
| | | }); |
| | | |
| | | // åªå¤ç䏿¡æææ´»å¨ |
| | | if (event.length) { |
| | | obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2); |
| | | obj.oldPrice = obj.defaultSaleMethod.price; |
| | | obj.storeEventId = event[0].Id; |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | ) { |
| | | obj.defaultSaleMethodState = "Normal"; |
| | | } else { |
| | | obj.defaultSaleMethodState = "Beyond"; |
| | | } |
| | | } |
| | | } else { |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | ) { |
| | | obj.defaultSaleMethodState = "Normal"; |
| | | } else { |
| | | obj.defaultSaleMethodState = "Beyond"; |
| | | } |
| | | obj.price = obj.defaultSaleMethod.price; |
| | | obj.oldPrice = obj.defaultSaleMethod.virtualPrice; |
| | | } |
| | | } |
| | | dataList.push(obj); |
| | | } |
| | | return dataList; |
| | | } |
| | | |
| | | // å¤ç详æ
æ¥è¯¢ç»æ |
| | | export function handleDetailQueryRequestData({ |
| | | item, |
| | | fields, |
| | | path, |
| | | coverSize, |
| | | itemFields, |
| | | handelEBooK, |
| | | }) { |
| | | item.fileMap = {}; |
| | | let itemFieldsData = []; |
| | | for (const key in itemFields) { |
| | | itemFieldsData.push(key); |
| | | } |
| | | let fieldsData = []; |
| | | for (const key in fields) { |
| | | fieldsData.push(key); |
| | | } |
| | | for (let i = 0; i < fieldsData.length; i++) { |
| | | const field = fieldsData[i]; |
| | | item.datas[field] = JSON.parse(item.datas[field]); |
| | | const datas = item.datas[field]; |
| | | if (datas.length > 0) { |
| | | if (datas[0].Value) { |
| | | item[field] = datas[0].Value; |
| | | if (datas[0].Data.FileLinkList && datas[0].Data.FileLinkList.length) { |
| | | item.fileMap = { |
| | | ...item.fileMap, |
| | | ...handleLinkFileInfo( |
| | | datas[0].Data.FileLinkList.map((item) => { |
| | | return { |
| | | ...item.File, |
| | | ...item, |
| | | }; |
| | | }) |
| | | ), |
| | | }; |
| | | } |
| | | } else if (datas[0].Data) { |
| | | item[field] = datas[0].Data.Value; |
| | | if (datas[0].Data.FileLinkList && datas[0].Data.FileLinkList.length) { |
| | | item.fileMap = { |
| | | ...item.fileMap, |
| | | ...handleLinkFileInfo( |
| | | datas[0].Data.FileLinkList.map((item) => { |
| | | return { |
| | | ...item.File, |
| | | ...item, |
| | | }; |
| | | }) |
| | | ), |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å¤çcmsèµæº |
| | | const subDatas = item.subDatas; |
| | | const linkItemsMap = {}; |
| | | if (subDatas) { |
| | | for (const sdata of subDatas) { |
| | | const tag = sdata.queryTag; |
| | | for (const subItem of sdata.datas) { |
| | | convertCmsItemBase(subItem, coverSize, handelEBooK); |
| | | subItem.fileMap = {}; |
| | | for (let i = 0; i < itemFieldsData.length; i++) { |
| | | const itemField = itemFieldsData[i]; |
| | | try { |
| | | subItem.datas[itemField] = JSON.parse(subItem.datas[itemField]); |
| | | } catch (error) { |
| | | subItem.datas[itemField] = []; |
| | | } |
| | | const itemDatas = subItem.datas[itemField]; |
| | | if (itemDatas.length > 0) { |
| | | if (itemDatas[0].Value) { |
| | | subItem[itemField] = itemDatas[0].Value; |
| | | if (itemDatas[0].FileList && itemDatas[0].FileList.length) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].FileList), |
| | | }; |
| | | } |
| | | } else if (itemDatas[0].Data) { |
| | | subItem[itemField] = itemDatas[0].Data.Value; |
| | | if ( |
| | | itemDatas[0].Data.FileList && |
| | | itemDatas[0].Data.FileList.length |
| | | ) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].Data.FileList), |
| | | }; |
| | | } |
| | | } else if (itemDatas[0].CmsItemData) { |
| | | subItem[itemField] = itemDatas[0].CmsItemData.Value; |
| | | if ( |
| | | itemDatas[0].CmsItemData.FileList && |
| | | itemDatas[0].CmsItemData.FileList.length |
| | | ) { |
| | | subItem.fileMap = { |
| | | ...subItem.fileMap, |
| | | ...handleLinkFileInfo(itemDatas[0].CmsItemData.FileList), |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subItem.productLinkInfo && subItem.productLinkInfo.length) |
| | | subItem.productLinkPath = |
| | | subItem.productLinkInfo[0].LinkPath + |
| | | "\\" + |
| | | subItem.productLinkInfo[0].CmsItemId; |
| | | if (subItem.linkInfo && subItem.linkInfo.length) |
| | | subItem.linkPath = |
| | | subItem.linkInfo[0].LinkPath + "\\" + subItem.linkInfo[0].CmsItemId; |
| | | } |
| | | linkItemsMap[tag] = sdata.datas; |
| | | } |
| | | } |
| | | convertCmsItemBase(item, coverSize, handelEBooK); |
| | | item.idPath = path + "\\" + item.id; |
| | | item.subItems = linkItemsMap; |
| | | return item; |
| | | } |
| | | |
| | | const handleLinkFileInfo = (linkList) => { |
| | | let linkFileMap = {}; |
| | | for (let z = 0; z < linkList.length; z++) { |
| | | const linkItem = linkList[z]; |
| | | linkFileMap[linkItem.Md5] = { |
| | | linkType: linkItem.LinkType, |
| | | extension: linkItem.Extension, |
| | | fileName: linkItem.FileName, |
| | | fileType: linkItem.Type, |
| | | md5: linkItem.Md5, |
| | | icon: linkItem.Icon, |
| | | size: linkItem.Size, |
| | | metaData: JSON.parse(linkItem.MetaData ?? "{}"), |
| | | order: linkItem.Order, |
| | | protectType: linkItem.ProtectType, |
| | | }; |
| | | } |
| | | return linkFileMap; |
| | | }; |
| | | |
| | | const convertCmsItemBase = (item, coverSize, handelEBooK) => { |
| | | item.name = item.datas.Name; |
| | | item.description = item.datas.Description; |
| | | item.refCode = item.datas.RefCode; |
| | | item.state = item.datas.State; |
| | | item.type = item.datas.Type; |
| | | item.tag = item.datas.Tag; |
| | | item.typeId = parseInt(item.datas.TypeId); |
| | | item.icon = getPublicImage( |
| | | item.datas.Icon, |
| | | coverSize?.width, |
| | | coverSize?.height |
| | | ); |
| | | item.sysType = item.datas.SysType; |
| | | item.linkFile = JSON.parse(item.datas.LinkFile ?? "[]"); |
| | | item.linkType = item.datas.LinkType; |
| | | item.linkAppId = parseInt(item.datas.LinkAppId); |
| | | item.linkStoreId = parseInt(item.datas.LinkStore); |
| | | item.linkRepoId = item.datas.LinkRepository; |
| | | item.childrenCount = parseInt(item.datas.ChildrenCount ?? "0"); |
| | | (item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? "0")), |
| | | (item.childrenChannelCount = parseInt( |
| | | item.datas.ChildrenChannelCount ?? "0" |
| | | )), |
| | | (item.linkId = parseInt(item.datas.LinkId)); |
| | | item.linkOrg = JSON.parse(item.datas.LinkOrg ?? "[]")[0]; |
| | | item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? "[]")[0]; |
| | | item.linkInfo = JSON.parse(item.datas.LinkInfo ?? "[]"); |
| | | item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? "[]"); |
| | | item.saleMethod = JSON.parse(item.datas.SaleMethod ?? "[]"); |
| | | item.allowDonate = item.datas.AllowDonate == "True"; |
| | | // item.donatePriceList = JSON.parse(item.datas.DonatePriceList ?? "[]"); |
| | | item.createDate = moment(item.datas.CreateDate).format("YYYY-MM-DD"); |
| | | item.beginDate = moment(item.datas.BeginDate).format("YYYY-MM-DD"); |
| | | item.endDate = moment(item.datas.EndDate).format("YYYY-MM-DD"); |
| | | item.storeEvent = JSON.parse(item.datas.StoreEvent ?? "[]"); |
| | | // ç»ä¸å¤çä»·æ ¼ |
| | | if (item.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // è·åéä¹¦èµæºçé宿¹å¼ |
| | | let saleMethod = item.cmsDatas[0].datas.find( |
| | | (item) => item.refCode == "tourism_accompanyingResources" |
| | | ).saleMethod; |
| | | if (saleMethod && saleMethod.length > 0) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()); |
| | | saleMethod[0][newKey] = saleMethod[0][key]; |
| | | delete saleMethod[0][key]; |
| | | }); |
| | | item.defaultSaleMethod = saleMethod[0]; |
| | | item.defaultSaleMethodId = saleMethod[0].id; |
| | | item.alreadyBuy = |
| | | item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1; |
| | | } |
| | | } |
| | | if (item.defaultSaleMethod.allowEvent && item.storeEvent.length) { |
| | | // å·²åå æ´»å¨ï¼è·åæææ´»å¨å¹¶è®¡ç®ä»·æ ¼ |
| | | let time = new Date().getTime(); |
| | | // è¿æ»¤è¿ææ´»å¨ |
| | | let event = item.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime(); |
| | | return endTime > time; |
| | | }); |
| | | // åªå¤ç䏿¡æææ´»å¨ |
| | | if (event.length) { |
| | | item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2); |
| | | item.oldPrice = item.defaultSaleMethod.price; |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | ) { |
| | | item.defaultSaleMethodState = "Normal"; |
| | | } else { |
| | | item.defaultSaleMethodState = "Beyond"; |
| | | } |
| | | item.storeEventId = event[0].Id; |
| | | } |
| | | } else { |
| | | item.price = item.defaultSaleMethod.price; |
| | | item.oldPrice = item.defaultSaleMethod.virtualPrice; |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | ) { |
| | | item.defaultSaleMethodState = "Normal"; |
| | | } else { |
| | | item.defaultSaleMethodState = "Beyond"; |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | export function getTopicMsgCmsItemFile(fileType, fileList) { |
| | | let obj = {}; |
| | | fileType.forEach((item) => { |
| | | item.sequenceNum = item.config ? JSON.parse(item.config).uuid : ""; |
| | | fileList.forEach((e) => { |
| | | if (item.sequenceNum == e.sequenceNum) { |
| | | try { |
| | | if (e.fileLinkList.length > 0) { |
| | | for (let i = 0; i < e.fileLinkList.length; i++) { |
| | | const ele = e.fileLinkList[i]; |
| | | ele.name = ele.file.fileName; |
| | | ele.md5 = ele.file.md5; |
| | | ele.status = "success"; |
| | | } |
| | | obj[item.typeField.refCode] = e.fileLinkList; |
| | | } else { |
| | | const val = JSON.parse(e.value); |
| | | if (val) { |
| | | obj[item.typeField.refCode] = val; |
| | | } else { |
| | | obj[item.typeField.refCode] = "-"; |
| | | } |
| | | } |
| | | } catch (error) { |
| | | obj[item.typeField.refCode] = e.value ? e.value : "-"; |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | return obj; |
| | | } |
| | | |
| | | // è·åä¸åä¿æ¤çå¾ç |
| | | export function getPublicImage(md5, width, height) { |
| | | let src = null; |
| | | if (md5) { |
| | | src = requestCtx + `/file/GetPreViewImage?md5=${md5}`; |
| | | } else { |
| | | return require("@/assets/images/homeBg.png"); |
| | | } |
| | | if (width) src += `&width=${width}`; |
| | | if (height) src += `&height=${height}`; |
| | | return src; |
| | | } |
New file |
| | |
| | | //é¢åºç»ä¹ |
| | | var Practice = [ |
| | | { |
| | | type: "completion", |
| | | typeName: "填空é¢", |
| | | num: 20, |
| | | score: 1, |
| | | totalScore: 20, |
| | | startIndex: 0, |
| | | cIndex: "ä¸", |
| | | list:[] |
| | | }, |
| | | { |
| | | type: "judge", |
| | | typeName: "夿é¢", |
| | | num: 40, |
| | | score: 0.5, |
| | | totalScore: 20, |
| | | startIndex: 0, |
| | | cIndex: "äº", |
| | | list:[] |
| | | }, |
| | | { |
| | | type: "singleChoice", |
| | | typeName: "åéé¢", |
| | | num: 90, |
| | | score: 0.5, |
| | | totalScore: 45, |
| | | startIndex: 0, |
| | | cIndex: "ä¸", |
| | | list:[] |
| | | }, |
| | | { |
| | | type: "multipleChoice", |
| | | typeName: "å¤éé¢", |
| | | num: 35, |
| | | score: 1, |
| | | totalScore: 35, |
| | | startIndex: 0, |
| | | cIndex: "å", |
| | | list:[] |
| | | }, |
| | | { |
| | | type: "shortAnswer", |
| | | typeName: "ç®è¿°é¢", |
| | | num: 3, |
| | | score: 5, |
| | | totalScore: 15, |
| | | startIndex: 0, |
| | | cIndex: "äº", |
| | | list:[] |
| | | }, |
| | | { |
| | | type: "discussionQuestions", |
| | | typeName: "论述é¢", |
| | | num: 2, |
| | | score: 10, |
| | | totalScore: 20, |
| | | startIndex: 0, |
| | | cIndex: "å
", |
| | | list:[] |
| | | } |
| | | ]; |
| | | // æ®é模è |
| | | var Normal = [ |
| | | { |
| | | type: "judgmentQuestion", |
| | | typeName: "夿é¢ï¼æ¯é¢çå¤é项ä¸ï¼åªæ1个æç¬¦å颿ï¼", |
| | | num: 40, |
| | | score: 0.5, |
| | | totalScore: 20, |
| | | startIndex: 0, |
| | | cIndex: "ä¸" |
| | | }, |
| | | { |
| | | type: "singleChoice", |
| | | typeName: "å项鿩é¢ï¼æ¯é¢çå¤é项ä¸ï¼åªæ1个æç¬¦å颿ï¼", |
| | | num: 90, |
| | | score: 0.5, |
| | | totalScore: 45, |
| | | startIndex: 40, |
| | | cIndex: "äº" |
| | | }, |
| | | { |
| | | type: "multipleChoice", |
| | | typeName: "å¤é¡¹éæ©é¢ï¼æ¯é¢çå¤é项ä¸ï¼æä¸¤ä¸ªæ2个以ä¸ç¬¦å颿ï¼è³å°æ1个é项ï¼", |
| | | num: 35, |
| | | score: 1, |
| | | totalScore: 35, |
| | | startIndex: 130, |
| | | cIndex: "ä¸" |
| | | } |
| | | ]; |
| | | |
| | | // ä¸çº§èè¯ç¬¬ä¸é¨å |
| | | var zhongjikaoshi1 = [ |
| | | { |
| | | type: "judgmentQuestion", |
| | | typeName: "夿é¢ï¼æ¯é¢çå¤é项ä¸ï¼åªæ1个æç¬¦å颿ï¼", |
| | | num: 30, |
| | | score: 0.5, |
| | | totalScore: 15, |
| | | startIndex: 0, |
| | | cIndex: "ä¸" |
| | | }, |
| | | { |
| | | type: "singleChoice", |
| | | typeName: "å项鿩é¢ï¼æ¯é¢çå¤é项ä¸ï¼åªæ1个æç¬¦å颿ï¼", |
| | | num: 40, |
| | | score: 1, |
| | | totalScore: 40, |
| | | startIndex: 30, |
| | | cIndex: "äº" |
| | | }, |
| | | { |
| | | type: "multipleChoice", |
| | | typeName: "å¤é¡¹éæ©é¢ï¼æ¯é¢çå¤é项ä¸ï¼æä¸¤ä¸ªæ2个以ä¸ç¬¦å颿ï¼è³å°æ1个é项ï¼", |
| | | num: 15, |
| | | score: 2, |
| | | totalScore: 30, |
| | | startIndex: 70, |
| | | cIndex: "ä¸" |
| | | }, |
| | | { |
| | | type: "briefQuestions", |
| | | typeName: "ç®è¿°é¢", |
| | | num: 3, |
| | | score: 5, |
| | | totalScore: 15, |
| | | startIndex: 85, |
| | | cIndex: "å" |
| | | } |
| | | ]; |
| | | |
| | | // ä¸çº§èè¯ç¬¬äºé¨å |
| | | var zhongjikaoshi2 = [ |
| | | { |
| | | type: "completion", |
| | | typeName: "填空é¢", |
| | | num: 20, |
| | | score: 1, |
| | | totalScore: 20, |
| | | startIndex: 0, |
| | | cIndex: "ä¸" |
| | | }, |
| | | { |
| | | type: "singleChoice", |
| | | typeName: "å项鿩é¢ï¼æ¯é¢çå¤é项ä¸ï¼åªæ1个æç¬¦å颿ï¼", |
| | | num: 30, |
| | | score: 1, |
| | | totalScore: 30, |
| | | startIndex: 20, |
| | | cIndex: "äº" |
| | | }, |
| | | { |
| | | type: "multipleChoice", |
| | | typeName: "å¤é¡¹éæ©é¢ï¼æ¯é¢çå¤é项ä¸ï¼æä¸¤ä¸ªæ2个以ä¸ç¬¦å颿ï¼è³å°æ1个é项ï¼", |
| | | num: 20, |
| | | score: 1.5, |
| | | totalScore: 30, |
| | | startIndex: 50, |
| | | cIndex: "ä¸" |
| | | }, |
| | | { |
| | | type: "discussionQuestions", |
| | | typeName: "论述é¢", |
| | | num: 2, |
| | | score: 10, |
| | | totalScore: 20, |
| | | startIndex: 70, |
| | | cIndex: "å" |
| | | } |
| | | ]; |
| | | |
| | | export { |
| | | Practice, |
| | | Normal, |
| | | zhongjikaoshi1, |
| | | zhongjikaoshi2 |
| | | }; |
New file |
| | |
| | | import SparkMD5 from "spark-md5"; |
| | | import { getPublicImage } from "@/assets/js/middleGround/tool"; |
| | | import moment from "moment"; |
| | | |
| | | var tool = { |
| | | secondToTime(second) { |
| | | var minute = Math.floor(second / 60); |
| | | var sec = second % 60; |
| | | var time; |
| | | if (second < 60) { |
| | | time = second + '"'; |
| | | } else { |
| | | time = sec === 0 ? minute + "'" : minute + "'" + sec + '"'; |
| | | } |
| | | return time; |
| | | }, |
| | | setCookie: function (c_name, value, expiredays, path) { |
| | | var exdate = new Date(); |
| | | exdate.setDate(exdate.getDate() + expiredays); |
| | | document.cookie = |
| | | c_name + |
| | | "=" + |
| | | escape(value) + |
| | | (expiredays == null ? "" : ";expires=" + exdate.toGMTString()) + |
| | | (path ? ";path=" + path : ""); |
| | | }, |
| | | getCookie: function (c_name) { |
| | | if (document.cookie.length > 0) { |
| | | var c_start = document.cookie.indexOf(c_name + "="); |
| | | if (c_start != -1) { |
| | | c_start = c_start + c_name.length + 1; |
| | | var c_end = document.cookie.indexOf(";", c_start); |
| | | if (c_end == -1) c_end = document.cookie.length; |
| | | return unescape(document.cookie.substring(c_start, c_end)); |
| | | } |
| | | } |
| | | return ""; |
| | | }, |
| | | delCookie: function (name) { |
| | | var exp = new Date(); |
| | | exp.setTime(exp.getTime() - 1); |
| | | var cval = tool.getCookie(name); |
| | | if (cval != null) |
| | | document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); |
| | | }, |
| | | // 强å¶ä¿ç2ä½å°æ°ï¼å¦ï¼2ï¼ä¼å¨2åé¢è¡¥ä¸00.å³2.00 |
| | | toDecimal2(x) { |
| | | var f; |
| | | f = parseFloat(x); |
| | | if (isNaN(f)) { |
| | | return false; |
| | | } |
| | | f = Math.round(x * 100) / 100; |
| | | var s = f.toString(); |
| | | var rs = s.indexOf("."); |
| | | if (rs < 0) { |
| | | rs = s.length; |
| | | s += "."; |
| | | } |
| | | while (s.length <= rs + 2) { |
| | | s += "0"; |
| | | } |
| | | return s; |
| | | }, |
| | | formateTime(date) { |
| | | var newDate = new Date(+new Date(date) + 8 * 3600 * 1000) |
| | | .toISOString() |
| | | .replace(/T/g, " ") |
| | | .replace(/\.[\d]{3}Z/, ""); |
| | | var time = new Date(newDate); |
| | | return time.getTime(); |
| | | }, |
| | | }; |
| | | |
| | | // å¤ç订åè®°å½ |
| | | export function setOrderList(res) { |
| | | // è·åå½å年份çå¼å§æ¶é´ |
| | | let currentTimestamp = moment().startOf("year"); |
| | | let arr = []; |
| | | for (let i = 0; i < res.length; i++) { |
| | | const item = res[i]; |
| | | // åç¥¨ç¶æä¸ºå®¡æ ¸ä¸æè
å®¡æ ¸å¤±è´¥ï¼å°iteméä¸ç¶æè®¾ç½®éä¸ã |
| | | // UIæ§å¶ç¦ç¨ï¼æ¾ç¤ºçææä¸º éä¸å¹¶ä¸ç¦ç¨ï¼ |
| | | if (item.invoiceInfo) { |
| | | item.checked = true; |
| | | } else { |
| | | item.checked = false; |
| | | } |
| | | // 夿æ¯å¦è¶
åºç³è¯·åç¥¨çæ¥æ |
| | | item.exceedingTheSpecifiedTime = moment(item.createDate).isBefore( |
| | | currentTimestamp |
| | | ); |
| | | if (item.saleMethodLinks.length > 0) { |
| | | let itemName = null; |
| | | let itemIcon = null; |
| | | let cmsItemList = null; |
| | | try { |
| | | cmsItemList = item.saleMethodLinks[0].orderSaleMethod.cmsItemList[0]; |
| | | } catch (error) { |
| | | cmsItemList = null; |
| | | } |
| | | if (cmsItemList && cmsItemList.icon) { |
| | | itemName = cmsItemList.name; |
| | | itemIcon = cmsItemList.icon; |
| | | } else { |
| | | itemName = item.saleMethodLinks[0].orderSaleMethod.product.name; |
| | | itemIcon = item.saleMethodLinks[0].orderSaleMethod.product.icon; |
| | | } |
| | | item.saleMethodLinks[0].title = itemName; |
| | | item.saleMethodLinks[0].icon = getPublicImage(itemIcon); |
| | | } else { |
| | | const itemIcon = require("@/assets/images/homeBg.png"); |
| | | const saleMethodLink = []; |
| | | const obj = { |
| | | icon: itemIcon, |
| | | orderSaleMethod: { |
| | | price: item.payPrice, |
| | | }, |
| | | }; |
| | | saleMethodLink.push(obj); |
| | | item.saleMethodLinks = saleMethodLink; |
| | | } |
| | | if (item.state == "Success") { |
| | | item.CustomState = "æ¯ä»æå"; |
| | | } |
| | | if (item.state == "Cancel") { |
| | | item.CustomState = "åæ¶æ¯ä»"; |
| | | } |
| | | if (item.state == "WaitPay") { |
| | | item.CustomState = "çå¾
æ¯ä»"; |
| | | } |
| | | if (item.state == "WaitDeliver") { |
| | | item.CustomState = "æ£å¨æ¯ä»"; |
| | | } |
| | | arr.push(item); |
| | | } |
| | | return arr; |
| | | } |
| | | |
| | | //å¤ç表åæäº¤æ°æ® |
| | | export function worksData(res) { |
| | | let arr = []; |
| | | for (let i = 0; i < res.length; i++) { |
| | | const item = res[i]; |
| | | if (item.typeField) { |
| | | if (item.typeField.config) { |
| | | item.typeField.options = JSON.parse(item.typeField.config).option; |
| | | } |
| | | arr.push(item.typeField); |
| | | } |
| | | } |
| | | return arr; |
| | | } |
| | | |
| | | export function worksDataBytool(res, value, linkList) { |
| | | let arr = []; |
| | | let nrr = []; |
| | | if (linkList && linkList.length > 0) { |
| | | linkList.forEach((e) => |
| | | nrr.push({ |
| | | linkProtectType: e.linkProtectType, |
| | | linkType: e.linkType, |
| | | md5: e.md5, |
| | | }) |
| | | ); |
| | | } |
| | | res.forEach((item) => { |
| | | const obj = { |
| | | baseType: item.typeField.baseType, |
| | | order: 0, |
| | | typeFieldId: item.typeField.id, |
| | | sequenceNum: item.config ? JSON.parse(item.config).uuid : "", |
| | | newDataAndFileLinkListRequest: [], |
| | | }; |
| | | for (let k in value) { |
| | | if (item.typeField.refCode === k) { |
| | | if (typeof value[k] == "object") { |
| | | if (obj.refCode == "region") { |
| | | obj.strValue = value[k]?.join("/"); |
| | | } else { |
| | | obj.strValue = JSON.stringify(value[k]); |
| | | } |
| | | } else { |
| | | if (obj.baseType === "String") { |
| | | obj.strValue = value[k] + ""; |
| | | } else if (obj.baseType === "Text") { |
| | | obj.textValue = value[k] + ""; |
| | | } else { |
| | | obj.strValue = value[k] + ""; |
| | | } |
| | | } |
| | | if (item.typeField.type == "File") { |
| | | obj.newDataAndFileLinkListRequest = nrr; |
| | | } |
| | | } |
| | | } |
| | | if (obj.strValue || obj.textValue) { |
| | | arr.push(obj); |
| | | } |
| | | }); |
| | | return arr; |
| | | } |
| | | |
| | | export function UpdateworksDataBytool(initData, res, value, linkList) { |
| | | let arr = []; |
| | | let newArr = []; |
| | | for (let i = 0; i < initData.length; i++) { |
| | | const ele = initData[i]; |
| | | for (let j = 0; j < res.length; j++) { |
| | | const item = res[j]; |
| | | if (item.sequenceNum == ele.sequenceNum) { |
| | | item.refCode = ele.typeField.refCode; |
| | | } |
| | | } |
| | | } |
| | | initData.forEach((citem) => { |
| | | const updateOldData = res.find((f) => f.sequenceNum == citem.sequenceNum); |
| | | if (updateOldData) { |
| | | const obj = { |
| | | baseType: citem.typeField.baseType, |
| | | order: 0, |
| | | id: updateOldData.id, |
| | | typeFieldId: citem.typeField.id, |
| | | sequenceNum: citem.sequenceNum, |
| | | setDataAndFileLinkListRequest: [], |
| | | }; |
| | | for (let k in value) { |
| | | if (citem.typeField.refCode === k) { |
| | | if (typeof value[k] == "object" && k != "region") { |
| | | obj.strValue = JSON.stringify(linkList); |
| | | obj.setDataAndFileLinkListRequest = linkList; |
| | | } else if (typeof value[k] == "object" && k == "region") { |
| | | obj.strValue = value[k]?.join("/"); |
| | | obj.setDataAndFileLinkListRequest = [{ area: value[k] }]; |
| | | } else { |
| | | obj.strValue = value[k].toString(); |
| | | } |
| | | } |
| | | } |
| | | // if (obj.strValue) { |
| | | arr.push(obj); |
| | | // } |
| | | } else { |
| | | const newObj = { |
| | | baseType: citem.typeField.baseType, |
| | | order: 0, |
| | | typeFieldId: citem.typeField.id, |
| | | sequenceNum: citem.sequenceNum, |
| | | setDataAndFileLinkListRequest: [], |
| | | }; |
| | | for (let k in value) { |
| | | if (citem.typeField.refCode === k) { |
| | | if (typeof value[k] == "object") { |
| | | newObj.strValue = JSON.stringify(linkList); |
| | | newObj.setDataAndFileLinkListRequest = linkList; |
| | | } else { |
| | | newObj.strValue = value[k].toString(); |
| | | } |
| | | } |
| | | } |
| | | if (newObj.strValue) { |
| | | newArr.push(newObj); |
| | | } |
| | | } |
| | | }); |
| | | return { |
| | | updateData: arr, |
| | | newData: newArr, |
| | | }; |
| | | } |
| | | |
| | | export function download(url) { |
| | | const iframe = document.createElement("iframe"); |
| | | iframe.setAttribute("hidden", "hidden"); |
| | | document.body.appendChild(iframe); |
| | | iframe.onload = () => { |
| | | if (iframe) { |
| | | iframe.setAttribute("src", "about:blank"); |
| | | } |
| | | }; |
| | | |
| | | iframe.setAttribute("src", url); |
| | | } |
| | | |
| | | /** |
| | | * è·åä¸ä¸ªUUID |
| | | * @param len |
| | | * @param radix |
| | | * @returns {string} |
| | | */ |
| | | export function uuid(len = 32, radix = 16) { |
| | | const chars = |
| | | "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""); |
| | | let uuid = [], |
| | | i; |
| | | radix = radix || chars.length; |
| | | |
| | | if (len) { |
| | | // Compact form |
| | | for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]; |
| | | } else { |
| | | // rfc4122, version 4 form |
| | | let r; |
| | | |
| | | // rfc4122 requires these characters |
| | | uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-"; |
| | | uuid[14] = "4"; |
| | | |
| | | // Fill in random data. At i==19 set the high bits of clock sequence as |
| | | // per rfc4122, sec. 4.1.5 |
| | | for (i = 0; i < 36; i++) { |
| | | if (!uuid[i]) { |
| | | r = 0 | (Math.random() * 16); |
| | | uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return uuid.join(""); |
| | | } |
| | | |
| | | export function getFileMd5(file, chunkSize) { |
| | | return new Promise((resolve, reject) => { |
| | | let blobSlice = |
| | | File.prototype.slice || |
| | | File.prototype.mozSlice || |
| | | File.prototype.webkitSlice; |
| | | let chunks = Math.ceil(file.size / chunkSize); |
| | | let currentChunk = 0; |
| | | let spark = new SparkMD5.ArrayBuffer(); |
| | | let fileReader = new FileReader(); |
| | | fileReader.onload = function (e) { |
| | | spark.append(e.target.result); |
| | | currentChunk++; |
| | | if (currentChunk < chunks) { |
| | | loadNext(); |
| | | } else { |
| | | const md5 = spark.end(); |
| | | resolve(md5); |
| | | } |
| | | }; |
| | | fileReader.onerror = function (e) { |
| | | reject(e); |
| | | }; |
| | | |
| | | function loadNext() { |
| | | let start = currentChunk * chunkSize; |
| | | let end = start + chunkSize; |
| | | if (end > file.size) { |
| | | end = file.size; |
| | | } |
| | | fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); |
| | | } |
| | | loadNext(); |
| | | }); |
| | | } |
| | | |
| | | // å¤çæ¶é´ï¼ç¨äºæ¾ç¤ºé³è§é¢å½åæ¶é´ |
| | | export function realFormatSecond(time) { |
| | | let duration = parseInt(time); |
| | | let minute = parseInt(duration / 60); |
| | | let sec = (duration % 60) + ""; |
| | | let isM0 = ":"; |
| | | if (minute == 0) { |
| | | minute = "00"; |
| | | } else if (minute < 10) { |
| | | minute = "0" + minute; |
| | | } |
| | | if (sec.length == 1) { |
| | | sec = "0" + sec; |
| | | } |
| | | return minute + isM0 + sec; |
| | | } |
| | | |
| | | export function parseHtml(content) { |
| | | const tagReg = |
| | | /<\/?div[^>]*>|<\/?span[^>]*>|<\/?table[^>]*>|<\/?th[^>]*>|<\/?thead>|<\/?tbody>|<\/?tr>|<\/?td[^>]*>|<br[^>]*>|<\/?p[^>]*>|<\/?sub>|<\/?sup>|<\/?font[^>]*>|<img[^>]*>|<\/?a[^>]*>|\n|\\n/gi; |
| | | const escapeReg = |
| | | /&(lt|gt|le|ge|nbsp|amp|quot|times|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|MU|NU|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|circ|tilde|ndash|permil|lsquo|rsquo|ldquo|rdquo|prime);/gi; |
| | | const escapeElements = { |
| | | lt: "<", |
| | | gt: ">", |
| | | le: "â¤", |
| | | ge: "â¥", |
| | | nbsp: " ", |
| | | amp: "&", |
| | | quot: '""', |
| | | times: "Ã", |
| | | Alpha: "Î", |
| | | Beta: "Î", |
| | | Gamma: "Î", |
| | | Delta: "Î", |
| | | Epsilon: "Î", |
| | | Zeta: "Î", |
| | | Eta: "Î", |
| | | Theta: "Î", |
| | | Iota: "Î", |
| | | Kappa: "Î", |
| | | Lambda: "Î", |
| | | Mu: "Î", |
| | | Nu: "Î", |
| | | Xi: "Î", |
| | | Omicron: "Î", |
| | | Pi: "Î ", |
| | | Rho: "Ρ", |
| | | Sigma: "Σ", |
| | | Tau: "Τ", |
| | | Upsilon: "Î¥", |
| | | Phi: "Φ", |
| | | Chi: "Χ", |
| | | Psi: "Ψ", |
| | | Omega: "Ω", |
| | | alpha: "α", |
| | | beta: "β", |
| | | gamma: "γ", |
| | | delta: "δ", |
| | | epsilon: "ε", |
| | | zeta: "ζ", |
| | | eta: "η", |
| | | theta: "θ", |
| | | iota: "ι", |
| | | kappa: "κ", |
| | | lambda: "λ", |
| | | mu: "μ", |
| | | nu: "ν", |
| | | xi: "ξ", |
| | | omicron: "ο", |
| | | pi: "Ï", |
| | | rho: "Ï", |
| | | sigmaf: "Ï", |
| | | sigma: "Ï", |
| | | tau: "Ï", |
| | | upsilon: "Ï
", |
| | | phi: "Ï", |
| | | chi: "Ï", |
| | | psi: "Ï", |
| | | omega: "Ï", |
| | | thetasym: "Ï", |
| | | upsih: "Ï", |
| | | piv: "Ï", |
| | | circ: "Ë", |
| | | tilde: "Ë", |
| | | ndash: "â", |
| | | permil: "â°", |
| | | lsquo: "â", |
| | | rsquo: "â", |
| | | ldquo: "â", |
| | | rdquo: "â", |
| | | prime: "â²", |
| | | }; |
| | | const contentWithoutTag = content.replace(tagReg, ""); |
| | | const contentWithOnlyOneSpace = contentWithoutTag.replace(/ {2,}/g, " "); |
| | | return contentWithOnlyOneSpace.replace( |
| | | escapeReg, |
| | | (all, t) => escapeElements[t] |
| | | ); |
| | | } |
| | | |
| | | export default { |
| | | ...tool, |
| | | uuid, |
| | | getFileMd5, |
| | | worksDataBytool, |
| | | UpdateworksDataBytool, |
| | | getPublicImage, |
| | | worksData, |
| | | parseHtml, |
| | | }; |
New file |
| | |
| | | import config from "@/assets/js/config.js"; |
| | | |
| | | import jobApi from "./middleGround/api/job"; // newJobWithNewView // newSession, |
| | | |
| | | export function setSessionGuid(type, id) { |
| | | var cityCode = null; |
| | | var SnIp = null; |
| | | try { |
| | | // eslint-disable-next-line |
| | | SnIp = window.returnCitySN; |
| | | } catch (error) { |
| | | SnIp = null; |
| | | console.log(error); |
| | | } |
| | | if (SnIp != undefined && SnIp != null) { |
| | | cityCode = SnIp; |
| | | } else { |
| | | cityCode = { |
| | | cip: "0.0.0.0", |
| | | cname: "æªç¥", |
| | | }; |
| | | } |
| | | const _city = cityCode.cname.substring(3); |
| | | const _province = cityCode.cname.substring(0, 3); |
| | | const params = { |
| | | appRefCode: config.appRefCode, |
| | | hostName: config.requestCtx, |
| | | ipAddress: cityCode.cip, |
| | | browser: myBrowser(), |
| | | os: navigator.platform, |
| | | device: "pc", |
| | | province: _province, |
| | | city: _city ? _city : _province, |
| | | }; |
| | | |
| | | jobApi.newSession(params).then(res => { |
| | | storage.set("sessionGuid", res, 30); |
| | | setNewView(type, id); |
| | | }); |
| | | } |
| | | |
| | | export const storage = { |
| | | /* |
| | | * set å卿¹æ³ |
| | | * @ param {String} key é® |
| | | * @ param {String} value å¼ï¼ |
| | | * @ param {String} expired è¿ææ¶é´ï¼ä»¥åé为åä½ï¼éå¿
é¡» |
| | | */ |
| | | set(key, val, expired) { |
| | | if (typeof val !== "string") { |
| | | val = JSON.stringify(val); |
| | | } |
| | | window.sessionStorage.setItem(key, val); |
| | | if (expired) { |
| | | window.sessionStorage.setItem( |
| | | `${key}__expires__`, |
| | | `${Date.now() + 1000 * 60 * expired}` |
| | | ); |
| | | } |
| | | }, |
| | | /* |
| | | * get è·åæ¹æ³ |
| | | * @ param {String} key é® |
| | | * @ param {String} expired å卿¶ä¸ºéå¿
须忮µï¼æä»¥æå¯è½åä¸å°ï¼é»è®¤ä¸º Date.now+1 |
| | | */ |
| | | get(key) { |
| | | const expired = |
| | | window.sessionStorage.getItem(`${key}__expires__`) || Date.now + 1; |
| | | const now = Date.now(); |
| | | |
| | | if (now >= expired) { |
| | | window.sessionStorage.removeItem(key); |
| | | return; |
| | | } |
| | | let val = window.sessionStorage.getItem(key); |
| | | try { |
| | | val = JSON.parse(val); |
| | | } catch (e) { |
| | | return e; |
| | | } |
| | | return val; |
| | | }, |
| | | }; |
| | | |
| | | function myBrowser() { |
| | | const userAgent = navigator.userAgent; //å徿µè§å¨çuserAgentå符串 |
| | | const isOpera = userAgent.indexOf("Opera") > -1; |
| | | if (isOpera) { |
| | | //夿æ¯å¦Operaæµè§å¨ |
| | | return "Opera"; |
| | | } |
| | | if (userAgent.indexOf("Firefox") > -1) { |
| | | //夿æ¯å¦Firefoxæµè§å¨ |
| | | return "Firefox"; |
| | | } |
| | | if (userAgent.indexOf("Chrome") > -1) { |
| | | return "Chrome"; |
| | | } |
| | | if (userAgent.indexOf("Safari") > -1) { |
| | | //夿æ¯å¦Safariæµè§å¨ |
| | | return "Safari"; |
| | | } |
| | | if ( |
| | | userAgent.indexOf("compatible") > -1 && |
| | | userAgent.indexOf("MSIE") > -1 && |
| | | !isOpera |
| | | ) { |
| | | //夿æ¯å¦IEæµè§å¨ |
| | | return "IE"; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | export function setNewView(type, id) { |
| | | if (!sessionStorage.getItem("sessionGuid")) { |
| | | setSessionGuid(type, id); |
| | | } |
| | | |
| | | const sessionGuid = sessionStorage.getItem("sessionGuid"); |
| | | const fromPath = sessionStorage.getItem("fromPath"); |
| | | const toPath = sessionStorage.getItem("toPath"); |
| | | if (sessionGuid) { |
| | | let params = { |
| | | sessionGuid: sessionGuid, |
| | | appRefCode: config.appRefCode, |
| | | type: "View", |
| | | url: toPath == null ? "/" : toPath, |
| | | ref: fromPath == null ? "/" : fromPath, |
| | | }; |
| | | if (id) { |
| | | params[type] = id; |
| | | } |
| | | jobApi.newJobWithNewView(params).then(res => {}); |
| | | } |
| | | } |
New file |
| | |
| | | <template> |
| | | <keep-alive v-if="keepAliveList.length > 0" :include="keepAliveList"> |
| | | <router-view /> |
| | | </keep-alive> |
| | | <router-view v-else /> |
| | | </template> |
| | | <script> |
| | | import { mapState } from "vuex"; |
| | | export default { |
| | | data() { |
| | | return {}; |
| | | }, |
| | | computed: { |
| | | ...mapState(["keepAliveList"]), |
| | | }, |
| | | watch: { |
| | | $route(to, from) { |
| | | if (to.meta.keepAlive && this.keepAliveList.indexOf(to.name) == -1) { |
| | | this.$store.commit("addKeepAlive", to.name); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div class="homeLayoutBox"> |
| | | <div class="pageContentBox"> |
| | | <keep-alive v-if="keepAliveList.length > 0" :include="keepAliveList"> |
| | | <router-view /> |
| | | </keep-alive> |
| | | <router-view v-else /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from "vuex"; |
| | | export default { |
| | | |
| | | computed: { |
| | | ...mapState(["userInfo", "keepAliveList"]), |
| | | }, |
| | | watch: { |
| | | $route(to, from) { |
| | | if (to.meta.keepAlive && this.keepAliveList.indexOf(to.name) == -1) { |
| | | this.$store.commit("addKeepAlive", to.name); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .homeLayoutBox { |
| | | width: 100%; |
| | | height: 100%; |
| | | .pageContentBox { |
| | | min-height: calc(100% - 525px); |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | import Vue from "vue"; |
| | | import App from "./App.vue"; |
| | | import router from "./router"; |
| | | import store from "./store"; |
| | | |
| | | // import VideoPlayer from "vue-video-player"; |
| | | // Vue.use(VideoPlayer); |
| | | |
| | | // èªå®ä¹é
ç½® |
| | | import config from "@/assets/js/config"; |
| | | Vue.prototype.config = config; |
| | | |
| | | // axios |
| | | import service from "@/plugin/axios"; |
| | | Vue.prototype.request = service; |
| | | |
| | | // ElementUI |
| | | import ElementUI from "element-ui"; |
| | | import "element-ui/lib/theme-chalk/index.css"; |
| | | ElementUI.Dialog.props.lockScroll.default = false; |
| | | Vue.use(ElementUI); |
| | | |
| | | // 请æ±å¤ç |
| | | import MG from "@/assets/js/middleGround/WebMiddleGroundApi"; |
| | | Vue.prototype.MG = MG; |
| | | |
| | | //å·¥å
·ç±» |
| | | import toolClass from "./assets/js/toolClass"; |
| | | Vue.prototype.tool = toolClass; |
| | | |
| | | // æ¶é´å¤ç |
| | | import moment from "moment"; |
| | | Vue.prototype.moment = moment; |
| | | |
| | | // è§é¢ææ¾ |
| | | import VideoPlayer from "vue-video-player"; |
| | | require("video.js/dist/video-js.css"); |
| | | require("vue-video-player/src/custom-theme.css"); |
| | | Vue.use(VideoPlayer); |
| | | |
| | | Vue.config.productionTip = false; |
| | | Vue.directive("dialogDrag", {}); |
| | | |
| | | // è·¯ç±å¤æç»å½ æ ¹æ®è·¯ç±é
ç½®æä»¶çåæ° |
| | | router.beforeEach((to, from, next) => { |
| | | if (to.matched.some((record) => record.meta.authentication)) { |
| | | // å¤æè¯¥è·¯ç±æ¯å¦éè¦ç»å½æé |
| | | if (toolClass.getCookie(config.tokenKey)) { |
| | | // 夿å½åçtokenæ¯å¦åå¨ï¼ ç»å½åå
¥çtoken |
| | | next(); |
| | | } else { |
| | | next({ |
| | | path: "/login", |
| | | query: { |
| | | redirect: to.fullPath, |
| | | }, // å°è·³è½¬çè·¯ç±pathä½ä¸ºåæ°ï¼ç»å½æåå跳转å°è¯¥è·¯ç± |
| | | }); |
| | | } |
| | | } else { |
| | | next(); |
| | | } |
| | | }); |
| | | |
| | | new Vue({ |
| | | router, |
| | | store, |
| | | render: (h) => h(App), |
| | | }).$mount("#app"); |
New file |
| | |
| | | import axios from "axios"; |
| | | import myConfig from "@/assets/js/config"; |
| | | import toolClass from "@/assets/js/toolClass"; |
| | | |
| | | import router from "@/router"; |
| | | |
| | | // å建 axios å®ä¾ |
| | | const service = axios.create({ |
| | | baseURL: myConfig.requestCtx, |
| | | timeout: myConfig.requestTimeOut, // 请æ±è¶
æ¶æ¶é´ |
| | | }); |
| | | |
| | | // è¯·æ±æ¦æªå¨ |
| | | service.interceptors.request.use( |
| | | config => { |
| | | let token = toolClass.getCookie(myConfig.tokenKey); |
| | | if (token) config.headers["Authorization"] = `bearer ${token}`; |
| | | return config; |
| | | }, |
| | | error => { |
| | | // åé失败 |
| | | Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | // ååºæ¦æªå¨ |
| | | service.interceptors.response.use( |
| | | response => { |
| | | // dataAxios æ¯ axios è¿åæ°æ®ä¸ç data |
| | | const dataAxios = response.data; |
| | | if (typeof dataAxios.data === "boolean") { |
| | | return dataAxios.data; |
| | | } |
| | | if (response.config.responseType == "blob") { |
| | | return dataAxios; |
| | | } |
| | | const { success } = dataAxios; |
| | | if (dataAxios.currentDate) { |
| | | sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime(); |
| | | } |
| | | // æ ¹æ® code è¿è¡å¤æ |
| | | if (success) { |
| | | return dataAxios.data ? dataAxios.data : dataAxios; |
| | | } else { |
| | | // æç¤ºé误 |
| | | console.log(dataAxios.msg); |
| | | } |
| | | }, |
| | | error => { |
| | | if (error.response && error.response.status == 401) { |
| | | toolClass.delCookie(myConfig.tokenKey); |
| | | localStorage.clear(); |
| | | router.replace({ |
| | | path: "/login", |
| | | }); |
| | | } else { |
| | | if (error.response && error.response.data && error.response.data.error) { |
| | | console.error(error.response.data.error.msg); |
| | | } else { |
| | | console.error("请æ±åçé误"); |
| | | } |
| | | } |
| | | return Promise.reject(error); |
| | | } |
| | | ); |
| | | |
| | | export default service; |
New file |
| | |
| | | import Vue from "vue"; |
| | | import VueRouter from "vue-router"; |
| | | import HomeLayout from "@/layout"; |
| | | import Home from "@/views/home"; |
| | | |
| | | |
| | | |
| | | const originalPush = VueRouter.prototype.push; |
| | | VueRouter.prototype.push = function push(location) { |
| | | return originalPush.call(this, location).catch(err => err); |
| | | }; |
| | | |
| | | Vue.use(VueRouter); |
| | | |
| | | const routes = [{ |
| | | path: "/", |
| | | name: "HomeLayout", |
| | | component: HomeLayout, |
| | | redirect: { |
| | | name: "home" |
| | | }, |
| | | children: [ |
| | | // å¨ä¸»æ¡æ¶å
|
| | | { |
| | | path: "/home", |
| | | name: "home", |
| | | meta: { |
| | | name: "é¦é¡µ", |
| | | authentication: false, // æ¯å¦éè¦ç»å½éªè¯ |
| | | keepAlive: false // æ¯å¦éè¦ç¼å |
| | | }, |
| | | component: Home |
| | | }, |
| | | |
| | | // { |
| | | // path: "/login", |
| | | // name: "login", |
| | | // meta: { |
| | | // name: "ç»å½", |
| | | // authentication: false |
| | | // }, |
| | | // component: () => import("@/views/login/login") |
| | | // }, |
| | | |
| | | |
| | | ] |
| | | }, |
| | | // ä¸å¨ä¸»æ¡æ¶å
|
| | | // { |
| | | // path: "/pdf", |
| | | // name: "pdf", |
| | | // component: () => import("@/components/play/pdf") |
| | | // }, |
| | | |
| | | ]; |
| | | |
| | | const router = new VueRouter({ |
| | | routes |
| | | }); |
| | | |
| | | export default router; |
New file |
| | |
| | | import Vue from "vue"; |
| | | import Vuex from "vuex"; |
| | | import tool from "@/assets/js/toolClass"; |
| | | import { |
| | | tokenKey, |
| | | userInfoKey |
| | | } from "@/assets/js/config"; |
| | | |
| | | Vue.use(Vuex); |
| | | |
| | | export default new Vuex.Store({ |
| | | state: { |
| | | token: tool.getCookie(tokenKey), |
| | | userInfo: localStorage.getItem(userInfoKey) ? |
| | | JSON.parse(localStorage.getItem(userInfoKey)) : null, |
| | | //ææ
å¾åºåå |
| | | cartTourList: [], |
| | | crumbs: localStorage.getItem("crumbs") ? |
| | | JSON.parse(localStorage.getItem("crumbs")) : { |
| | | bookStore: {}, |
| | | teachingResource: {}, |
| | | learnPlatform: {}, |
| | | personalCenter: {}, |
| | | }, |
| | | updateRightPop: 0, |
| | | headerSearchType: "bookCity", |
| | | electronicBookList: localStorage.getItem("electronicBookList") ? |
| | | JSON.parse(localStorage.getItem("electronicBookList")) : [], //çµåæ ·ä¹¦å表 |
| | | paperBookList: localStorage.getItem("paperBookList") ? |
| | | JSON.parse(localStorage.getItem("paperBookList")) : [], //çº¸è´¨æ ·ä¹¦å表 |
| | | bookStoreBrowseRecords: localStorage.getItem("bookStoreBrowseRecords") ? |
| | | JSON.parse(localStorage.getItem("bookStoreBrowseRecords")) : [], // 书念è§è®°å½ |
| | | // ç¼åç»ä»¶åç§°å表 |
| | | keepAliveList: [], |
| | | }, |
| | | getters: {}, |
| | | mutations: { |
| | | // æ·»å çµåæ ·ä¹¦å表 |
| | | appplyElectronicBook(state, val) { |
| | | state.electronicBookList.push(val); |
| | | localStorage.setItem( |
| | | "electronicBookList", |
| | | JSON.stringify(state.electronicBookList) |
| | | ); |
| | | }, |
| | | |
| | | //æ·»å çº¸è´¨æ ·å¼å表 |
| | | appplyPaperBook(state, val) { |
| | | state.paperBookList.push(val); |
| | | localStorage.setItem( |
| | | "paperBookList", |
| | | JSON.stringify(state.paperBookList) |
| | | ); |
| | | }, |
| | | |
| | | //å é¤çµåæ ·ä¹¦å表 |
| | | removeElectronicBook(state, val) { |
| | | state.electronicBookList.splice(val, 1); |
| | | localStorage.setItem( |
| | | "electronicBookList", |
| | | JSON.stringify(state.electronicBookList) |
| | | ); |
| | | }, |
| | | |
| | | //å é¤çº¸è´¨æ ·å¼ |
| | | removePaperBook(state, val) { |
| | | state.paperBookList.splice(val, 1); |
| | | localStorage.setItem( |
| | | "paperBookList", |
| | | JSON.stringify(state.paperBookList) |
| | | ); |
| | | }, |
| | | |
| | | emptyBookList(state, val) { |
| | | if (val && val.type == "eBook") { |
| | | state.electronicBookList = val.list.filter((item) => !item.checked); |
| | | localStorage.setItem( |
| | | "electronicBookList", |
| | | JSON.stringify(state.electronicBookList) |
| | | ); |
| | | } else if (val && val.type == "paperBook") { |
| | | state.paperBookList = val.list.filter((item) => !item.checked); |
| | | localStorage.setItem( |
| | | "paperBookList", |
| | | JSON.stringify(state.paperBookList) |
| | | ); |
| | | } else { |
| | | state.paperBookList = []; |
| | | state.electronicBookList = []; |
| | | localStorage.removeItem("electronicBookList"); |
| | | localStorage.removeItem("paperBookList"); |
| | | } |
| | | }, |
| | | |
| | | changeLogin(state, val) { |
| | | if (val) { |
| | | state.token = val; |
| | | tool.setCookie(tokenKey, val); |
| | | } else { |
| | | state.token = null; |
| | | tool.delCookie(tokenKey); |
| | | } |
| | | }, |
| | | changeUserInfo(state, val) { |
| | | if (val) { |
| | | // é»è®¤å¤´å |
| | | if (!val.icon) val.icon = require("@/assets/images/homeBg.png"); |
| | | state.userInfo = JSON.parse(JSON.stringify(val)); |
| | | localStorage.setItem(userInfoKey, JSON.stringify(val)); |
| | | } else { |
| | | state.userInfo = val; |
| | | localStorage.setItem(userInfoKey, val); |
| | | } |
| | | }, |
| | | //main.jsæ¹åvueä¸è´ç©è½¦ |
| | | changeVuexCart(state, listObj) { |
| | | var listName = listObj.list; |
| | | if (listName == "cartTourList") { |
| | | state.cartTourList = listObj.newList; |
| | | } |
| | | }, |
| | | // é¢å
å± |
| | | changeCrumbs(state, data) { |
| | | // é»è®¤æ·»å 模åé¦é¡µ |
| | | switch (data.type) { |
| | | case "bookStore": |
| | | data.data.unshift({ |
| | | name: "书å", |
| | | path: "/bookStore", |
| | | }); |
| | | break; |
| | | case "teachingResource": |
| | | data.data.unshift({ |
| | | name: "æå¦æå¡", |
| | | path: "/teachingResource", |
| | | }); |
| | | break; |
| | | case "learnPlatform": |
| | | data.data.unshift({ |
| | | name: "å¦ä¹ å¹³å°", |
| | | path: "/learnPlatform", |
| | | }); |
| | | break; |
| | | case "personalCenter": |
| | | data.data.unshift({ |
| | | name: "个人ä¸å¿", |
| | | }); |
| | | // path: "/personalCenter" |
| | | // 个人ä¸å¿ 详æ
é¡µé¢ ç¹å»ä¸ªäººä¸å¿(é¢å
å±)ä¸è·³è½¬ |
| | | break; |
| | | } |
| | | // è®°å½key |
| | | if (!state.crumbs[data.type] || !state.crumbs[data.type].keys) { |
| | | state.crumbs[data.type] = { |
| | | keys: [] |
| | | }; |
| | | } |
| | | state.crumbs[data.type].keys.push(data.cid); |
| | | state.crumbs[data.type][data.cid] = data.data; |
| | | // åªè®°å½20æ¡ï¼å 餿§è®°å½ |
| | | if (state.crumbs[data.type].keys.length > 20) { |
| | | let key = state.crumbs[data.type].keys[0]; |
| | | delete state.crumbs[data.type][key]; |
| | | state.crumbs[data.type].keys.splice(0, 1); |
| | | } |
| | | localStorage.setItem("crumbs", JSON.stringify(state.crumbs)); |
| | | }, |
| | | // æ´æ¹é¡µé¢å¤´é¨æç´¢æ¡ç±»å |
| | | changeHeaderSearchType(state, data) { |
| | | state.headerSearchType = data; |
| | | }, |
| | | addBookStoreBrowseRecords(state, data) { |
| | | let oldIndex = state.bookStoreBrowseRecords.findIndex( |
| | | (item) => item.id == data.id |
| | | ); |
| | | if (oldIndex != -1) { |
| | | state.bookStoreBrowseRecords.splice(oldIndex, 1); |
| | | } |
| | | state.bookStoreBrowseRecords.unshift(data); |
| | | if (state.bookStoreBrowseRecords.length > 4) { |
| | | state.bookStoreBrowseRecords.pop(); |
| | | } |
| | | localStorage.setItem( |
| | | "bookStoreBrowseRecords", |
| | | JSON.stringify(state.bookStoreBrowseRecords) |
| | | ); |
| | | }, |
| | | // æ´æ°å³ä¾§å¼¹åºæ¡è´ç©è½¦çæ°é |
| | | updateRightPop(state) { |
| | | state.updateRightPop += 1; |
| | | }, |
| | | // æ·»å ç¼åç»ä»¶ |
| | | addKeepAlive(state, val) { |
| | | state.keepAliveList.push(val); |
| | | }, |
| | | // ç§»é¤ç¼åç»ä»¶ |
| | | delKeepAlive(state, val) { |
| | | if (state.keepAliveList.findIndex((item) => item == val) != -1) { |
| | | state.keepAliveList.splice( |
| | | state.keepAliveList.findIndex((item) => item == val), |
| | | 1 |
| | | ); |
| | | } |
| | | }, |
| | | }, |
| | | actions: { |
| | | setUserInfo(context, val) { |
| | | context.commit("changeUserInfo", val); |
| | | }, |
| | | setToken(context, val) { |
| | | context.commit("changeLogin", val); |
| | | }, |
| | | setCrumbs(context, data) { |
| | | // åå¨é¢å
å± |
| | | if (!data.cid) { |
| | | data.cid = tool.uuid(8); |
| | | } |
| | | context.commit("changeCrumbs", data); |
| | | if (data.callback) data.callback(data.cid); |
| | | }, |
| | | clearBook(context, val) { |
| | | context.commit("emptyBookList", val); |
| | | }, |
| | | setBrowseRecords(context, val) { |
| | | if (val.moduleType == "bookStore") { |
| | | if (val.type == "add") { |
| | | context.commit("addBookStoreBrowseRecords", val.data); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | modules: {}, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <div class="home"> |
| | | <div class="profilePhoto"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default {}; |
| | | </script> |
| | | |
| | | <style> |
| | | .home { |
| | | width: 100%; |
| | | height: 100vh; |
| | | background-image: url("@/assets/images/homeBg.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 95%; |
| | | position: relative; |
| | | } |
| | | .profilePhoto { |
| | | background-image: url("@/assets/images/profilePhoto.png"); |
| | | width: 575px; |
| | | height: 656px; |
| | | background-size: 100% 100%; |
| | | position: relative; |
| | | top: 33%; |
| | | left: 8%; |
| | | } |
| | | </style> |
New file |
| | |
| | | const { defineConfig } = require("@vue/cli-service"); |
| | | module.exports = defineConfig({ |
| | | publicPath: "/", |
| | | productionSourceMap: false, |
| | | transpileDependencies: true, |
| | | }); |