@@ -1,4 +0,0 @@ | |||||
NODE_ENV='development' | |||||
# must start with VUE_APP_ | |||||
VUE_APP_ENV = 'development' | |||||
@@ -1,4 +0,0 @@ | |||||
NODE_ENV='production' | |||||
# must start with VUE_APP_ | |||||
VUE_APP_ENV = 'production' | |||||
@@ -1,4 +0,0 @@ | |||||
NODE_ENV='test' | |||||
# must start with VUE_APP_ | |||||
VUE_APP_ENV = 'test' | |||||
@@ -56,3 +56,8 @@ npm run lint | |||||
`2023年12月21日` FETURE | `2023年12月21日` FETURE | ||||
- 增加 情绪,情绪周报和体征详情页面 | - 增加 情绪,情绪周报和体征详情页面 | ||||
`2023年12月25日` UPDATE | |||||
- 修改 测试环境部署文件 | |||||
- 增加 洞悉 月报详情页面 |
@@ -5,7 +5,7 @@ | |||||
"scripts": { | "scripts": { | ||||
"serve": "vue-cli-service serve", | "serve": "vue-cli-service serve", | ||||
"build": "vue-cli-service build", | "build": "vue-cli-service build", | ||||
"build-test": "vue-cli-service build --mode test", | |||||
"build-test": "vue-cli-service build --mode testing", | |||||
"lint": "vue-cli-service lint", | "lint": "vue-cli-service lint", | ||||
"deps": "yarn upgrade-interactive --latest", | "deps": "yarn upgrade-interactive --latest", | ||||
"dev": "vue-cli-service serve --mode development", | "dev": "vue-cli-service serve --mode development", | ||||
@@ -10,7 +10,7 @@ | |||||
npm -v | npm -v | ||||
npm config set registry https://registry.npm.taobao.org | npm config set registry https://registry.npm.taobao.org | ||||
npm install | npm install | ||||
npm run build | |||||
npm run build-test | |||||
image_version=$version; | image_version=$version; | ||||
# 删除镜像 | # 删除镜像 | ||||
docker rmi -f $( | docker rmi -f $( | ||||
@@ -1,3 +1,3 @@ | |||||
// 微信公众号AppId | // 微信公众号AppId | ||||
const AppId = process.env.NODE_ENV === 'test' ? 'wx23f697736154110b' : 'wx5e26f0813859e5f6'; | |||||
const AppId = process.env.NODE_ENV === 'production' ? 'wx23f697736154110b' : 'wx5e26f0813859e5f6'; | |||||
export default AppId; | export default AppId; |
@@ -4,6 +4,5 @@ module.exports = { | |||||
baseUrl: 'https://id.ssjlai.com/webapi', // 项目地址 | baseUrl: 'https://id.ssjlai.com/webapi', // 项目地址 | ||||
baseApi: 'https://id.ssjlai.com/webapi', // 本地api请求地址,注意:如果你使用了代理,请设置成'/' | baseApi: 'https://id.ssjlai.com/webapi', // 本地api请求地址,注意:如果你使用了代理,请设置成'/' | ||||
APPID: 'xxx', | APPID: 'xxx', | ||||
APPSECRET: 'xxx', | |||||
$cdn: 'https://www.sunniejs.cn/static' | |||||
APPSECRET: 'xxx' | |||||
}; | }; |
@@ -4,6 +4,5 @@ module.exports = { | |||||
baseUrl: 'https://id.ssjlai.com/webapi', // 正式项目地址 | baseUrl: 'https://id.ssjlai.com/webapi', // 正式项目地址 | ||||
baseApi: 'https://id.ssjlai.com/webapi', // 正式api请求地址 | baseApi: 'https://id.ssjlai.com/webapi', // 正式api请求地址 | ||||
APPID: 'xxx', | APPID: 'xxx', | ||||
APPSECRET: 'xxx', | |||||
$cdn: 'https://www.sunniejs.cn/static' | |||||
APPSECRET: 'xxx' | |||||
}; | }; |
@@ -3,6 +3,5 @@ module.exports = { | |||||
baseUrl: 'https://id.ssjlai.com/webapi', // 测试项目地址 | baseUrl: 'https://id.ssjlai.com/webapi', // 测试项目地址 | ||||
baseApi: 'https://id.ssjlai.com/webapi', // 测试api请求地址 | baseApi: 'https://id.ssjlai.com/webapi', // 测试api请求地址 | ||||
APPID: 'xxx', | APPID: 'xxx', | ||||
APPSECRET: 'xxx', | |||||
$cdn: 'https://www.sunniejs.cn/static' | |||||
APPSECRET: 'xxx' | |||||
}; | }; |
@@ -128,4 +128,4 @@ export const EmotionModel = { | |||||
//心理健康相关接口地址 | //心理健康相关接口地址 | ||||
export const PsyBaseUrl = | export const PsyBaseUrl = | ||||
process.env.NODE_ENV === 'test' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; | |||||
process.env.NODE_ENV === 'production' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; |
@@ -8,9 +8,6 @@ import App from './App.vue'; | |||||
import router from './router'; | import router from './router'; | ||||
import store from './store/index'; | import store from './store/index'; | ||||
import request from './config/request'; | import request from './config/request'; | ||||
// 设置 js中可以访问 $cdn | |||||
import { $cdn } from '@/config'; | |||||
Vue.prototype.$cdn = $cdn; | |||||
import dayjs from 'dayjs'; | import dayjs from 'dayjs'; | ||||
import own from '@/common/own.js'; | import own from '@/common/own.js'; | ||||
// 引入echarts | // 引入echarts | ||||
@@ -278,6 +278,12 @@ export const constantRouterMap = [ | |||||
component: () => import('@/views/today/report'), | component: () => import('@/views/today/report'), | ||||
meta: { title: '心理监测周报', keepAlive: false } | meta: { title: '心理监测周报', keepAlive: false } | ||||
}, | }, | ||||
{ | |||||
path: '/monthReport', | |||||
name: 'monthReport', | |||||
component: () => import('@/views/insight/monthReport'), | |||||
meta: { title: '心理监测月报', keepAlive: false } | |||||
}, | |||||
{ | { | ||||
path: '/experts', | path: '/experts', | ||||
name: 'experts', | name: 'experts', | ||||
@@ -17,7 +17,7 @@ | |||||
<div class="label"> | <div class="label"> | ||||
<div class="left">情绪感知</div> | <div class="left">情绪感知</div> | ||||
<div class="right"> | <div class="right"> | ||||
<span @click="onRouterTo()">详情 ></span> | |||||
<span @click="onRouterTo('emo')">详情 ></span> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="periodNav"> | <div class="periodNav"> | ||||
@@ -54,7 +54,7 @@ | |||||
<div class="label"> | <div class="label"> | ||||
<div class="left">体征感知</div> | <div class="left">体征感知</div> | ||||
<div class="right"> | <div class="right"> | ||||
<span>详情 ></span> | |||||
<span @click="onRouterTo('signs')">详情 ></span> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -793,7 +793,7 @@ export default { | |||||
}, | }, | ||||
onRouterTo(name) { | onRouterTo(name) { | ||||
this.$router.push({ | this.$router.push({ | ||||
name: 'report', | |||||
name: name === 'emo' ? 'report' : 'monthReport', | |||||
query: { | query: { | ||||
name: name | name: name | ||||
} | } | ||||
@@ -1370,7 +1370,7 @@ export default { | |||||
getWeekResult() { | getWeekResult() { | ||||
this.$toast.loading('数据加载中'); | this.$toast.loading('数据加载中'); | ||||
let baseUrl = | let baseUrl = | ||||
process.env.NODE_ENV === 'test' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; | |||||
process.env.NODE_ENV === 'production' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; | |||||
let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; | let reqUrl = `${baseUrl}/api/Data/GetWeekResult`; | ||||
let reqParams = { | let reqParams = { | ||||
uid: this.uid /* '2023101521270090082 */, | uid: this.uid /* '2023101521270090082 */, | ||||
@@ -645,7 +645,7 @@ export default { | |||||
getWeekResultDetail() { | getWeekResultDetail() { | ||||
this.$toast.loading('数据加载中'); | this.$toast.loading('数据加载中'); | ||||
let baseUrl = | let baseUrl = | ||||
process.env.NODE_ENV === 'test' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; | |||||
process.env.NODE_ENV === 'production' ? 'https://dbmq.rzliot.com/auth_heart' : 'https://dbmq.rzliot.com/heart'; | |||||
let reqUrl = `${baseUrl}/api/Data/GetWeekResultDetail`; | let reqUrl = `${baseUrl}/api/Data/GetWeekResultDetail`; | ||||
let reqParams = { | let reqParams = { | ||||
recordId: /* this.params.recordId */ '1728096156447281486' | recordId: /* this.params.recordId */ '1728096156447281486' | ||||
@@ -1,47 +1,18 @@ | |||||
const path = require('path'); | const path = require('path'); | ||||
const defaultSettings = require('./src/config/index.js'); | const defaultSettings = require('./src/config/index.js'); | ||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; | |||||
/* const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; */ | |||||
const resolve = dir => path.join(__dirname, dir); | const resolve = dir => path.join(__dirname, dir); | ||||
// page title | // page title | ||||
const name = defaultSettings.title || ''; | |||||
const name = defaultSettings.title || 'health-student'; | |||||
// 生产环境,测试和正式 | // 生产环境,测试和正式 | ||||
const IS_PROD = ['test'].includes(process.env.NODE_ENV); | |||||
const IS_PROD = ['production', 'test'].includes(process.env.NODE_ENV); | |||||
const { defineConfig } = require('@vue/cli-service'); | const { defineConfig } = require('@vue/cli-service'); | ||||
// externals | |||||
// const externals = { | |||||
// vue: 'Vue', | |||||
// 'vue-router': 'VueRouter', | |||||
// vuex: 'Vuex', | |||||
// vant: 'vant', | |||||
// axios: 'axios' | |||||
// } | |||||
// CDN外链,会插入到index.html中 | |||||
// const cdn = { | |||||
// // 开发环境 | |||||
// dev: { | |||||
// css: [], | |||||
// js: [] | |||||
// }, | |||||
// // 生产环境 | |||||
// build: { | |||||
// css: ['https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.css'], | |||||
// js: [ | |||||
// 'https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js', | |||||
// 'https://cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js', | |||||
// 'https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js', | |||||
// 'https://cdn.jsdelivr.net/npm/vuex@3.1.2/dist/vuex.min.js', | |||||
// 'https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.min.js' | |||||
// ] | |||||
// } | |||||
// } | |||||
module.exports = defineConfig({ | module.exports = defineConfig({ | ||||
publicPath: './', // 署应用包时的基本 URL。 vue-router hash 模式使用 | publicPath: './', // 署应用包时的基本 URL。 vue-router hash 模式使用 | ||||
// publicPath: '/app/', //署应用包时的基本 URL。 vue-router history模式使用 | // publicPath: '/app/', //署应用包时的基本 URL。 vue-router history模式使用 | ||||
outputDir: 'dist', // 生产环境构建文件的目录 | outputDir: 'dist', // 生产环境构建文件的目录 | ||||
assetsDir: 'static', // outputDir的静态资源(js、css、img、fonts)目录 | |||||
lintOnSave: !IS_PROD, | lintOnSave: !IS_PROD, | ||||
productionSourceMap: false, // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 | productionSourceMap: false, // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 | ||||
devServer: { | devServer: { | ||||
@@ -67,7 +38,7 @@ module.exports = defineConfig({ | |||||
// } | // } | ||||
}, | }, | ||||
css: { | css: { | ||||
extract: IS_PROD, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 | |||||
extract: true, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 | |||||
sourceMap: false, | sourceMap: false, | ||||
loaderOptions: { | loaderOptions: { | ||||
scss: { | scss: { | ||||
@@ -76,7 +47,6 @@ module.exports = defineConfig({ | |||||
additionalData: ` | additionalData: ` | ||||
@import "assets/css/mixin.scss"; | @import "assets/css/mixin.scss"; | ||||
@import "assets/css/variables.scss"; | @import "assets/css/variables.scss"; | ||||
$cdn: "${defaultSettings.$cdn}"; | |||||
` | ` | ||||
} | } | ||||
} | } | ||||
@@ -85,16 +55,9 @@ module.exports = defineConfig({ | |||||
config.name = name; | config.name = name; | ||||
// 为生产环境修改配置... | // 为生产环境修改配置... | ||||
// if (IS_PROD) { | |||||
// // externals | |||||
// config.externals = externals | |||||
// } | |||||
}, | }, | ||||
chainWebpack: config => { | chainWebpack: config => { | ||||
/* config.plugins.delete('preload'); | |||||
config.plugins.delete('prefetch'); */ | |||||
// 别名 alias | // 别名 alias | ||||
config.resolve.alias | config.resolve.alias | ||||
.set('@', resolve('src')) | .set('@', resolve('src')) | ||||
@@ -102,19 +65,6 @@ module.exports = defineConfig({ | |||||
.set('api', resolve('src/api')) | .set('api', resolve('src/api')) | ||||
.set('views', resolve('src/views')) | .set('views', resolve('src/views')) | ||||
.set('components', resolve('src/components')); | .set('components', resolve('src/components')); | ||||
/** | |||||
* 添加CDN参数到htmlWebpackPlugin配置中 | |||||
*/ | |||||
// config.plugin('html').tap(args => { | |||||
// if (IS_PROD) { | |||||
// args[0].cdn = cdn.build | |||||
// } else { | |||||
// args[0].cdn = cdn.dev | |||||
// } | |||||
// return args | |||||
// }) | |||||
/** | /** | ||||
* 设置保留空格 | * 设置保留空格 | ||||
*/ | */ | ||||
@@ -131,16 +81,15 @@ module.exports = defineConfig({ | |||||
* 打包分析 | * 打包分析 | ||||
*/ | */ | ||||
if (IS_PROD) { | if (IS_PROD) { | ||||
config.plugin('webpack-report').use(BundleAnalyzerPlugin, [ | |||||
/* config.plugin('webpack-report').use(BundleAnalyzerPlugin, [ | |||||
{ | { | ||||
analyzerMode: 'static' | analyzerMode: 'static' | ||||
} | } | ||||
]); | |||||
]); */ | |||||
} | } | ||||
config | config | ||||
// https://webpack.js.org/configuration/devtool/#development | // https://webpack.js.org/configuration/devtool/#development | ||||
.when(!IS_PROD, config => config.devtool('cheap-source-map')); | .when(!IS_PROD, config => config.devtool('cheap-source-map')); | ||||
config.when(IS_PROD, config => { | config.when(IS_PROD, config => { | ||||
config.optimization.splitChunks({ | config.optimization.splitChunks({ | ||||
chunks: 'all', | chunks: 'all', | ||||