刘翔宇-旅管家 3 years ago
parent bb6ced2c55
commit d3a68dab0b

@ -2,5 +2,7 @@
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_BASE_API = http://hdcontract.ali251.langye.net VUE_APP_BASE_API = ''
VUE_APP_OUT_URL = http://suzhouhedaooa.langye.net #VUE_APP_OUT_URL = http://suzhouhedaooa.langye.net
VUE_APP_OUT_URL = http://192.168.60.18:2021

@ -3,4 +3,4 @@ ENV = 'production'
# base api # base api
VUE_APP_BASE_API = '' VUE_APP_BASE_API = ''
VUE_APP_OUT_URL = http://suzhouhedaooa.langye.net VUE_APP_OUT_URL = http://192.168.60.18:2021

@ -29,9 +29,13 @@ router.beforeEach(async (to, from, next) => {
if (hasToken) { if (hasToken) {
if (to.path === '/login') { if (to.path === '/login') {
// if is logged in, redirect to the home page // if is logged in, redirect to the home page
next({ console.log(to.fullPath)
path: '/' await store.dispatch('user/resetToken')
})
next(to.fullPath)
// next({
// path: '/'
// })
NProgress.done() NProgress.done()
} else { } else {
// determine whether the user has obtained his permission roles through getInfo // determine whether the user has obtained his permission roles through getInfo

@ -133,7 +133,8 @@ const actions = {
commit, commit,
state state
}) { }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
console.log("logout",state.token)
logout(state.token).then(() => { logout(state.token).then(() => {
removeToken() // must remove token first removeToken() // must remove token first
resetRouter() resetRouter()

@ -85,23 +85,25 @@
immediate: true immediate: true
} }
}, },
created() { created() {
var query = this.$route.query; var query = this.$route.query;
if (query.token && query.userid && query.tp) { if (query.token && query.userid && query.tp) {
this.loading = true this.loading = true
this.$store.dispatch('user/loginskip', { console.log(query.token)
token: query.token, //this.$store.dispatch('user/logout')
tp: query.tp this.$store.dispatch('user/loginskip', {
}).then(() => { token: query.token,
this.$router.push({ tp: query.tp
path: "/" }).then(() => {
}) this.$router.push({
this.loading = false path: "/"
}).catch((error) => { })
console.log(error) this.loading = false
this.loading = false }).catch((error) => {
}) console.log(error)
} this.loading = false
})
}
}, },
methods: { methods: {
showPwd() { showPwd() {
@ -117,7 +119,7 @@
handleLogin() { handleLogin() {
this.$refs.loginForm.validate(valid => { this.$refs.loginForm.validate(valid => {
if (valid) { if (valid) {
this.loading = true this.loading = true;
this.$store.dispatch('user/login', this.loginForm).then(() => { this.$store.dispatch('user/login', this.loginForm).then(() => {
console.log(this.redirect) console.log(this.redirect)
this.$router.push({ this.$router.push({

@ -21,7 +21,14 @@
</el-table-column> </el-table-column>
<el-table-column prop="name" label="角色名称" width="180"> <el-table-column prop="name" label="角色名称" width="180">
</el-table-column> </el-table-column>
<el-table-column prop="address" label="说明"> <el-table-column prop="allow_level" align="center" label="数据权限" width="180">
<template slot-scope="scope">
<el-tag v-if="scope.row.allow_level==0"></el-tag>
<el-tag v-else-if="scope.row.allow_level==1">部门</el-tag>
<el-tag v-else-if="scope.row.allow_level==2">私有</el-tag>
</template>
</el-table-column>
<el-table-column prop="comment" label="说明">
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" width="300"> <el-table-column fixed="right" label="操作" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
@ -39,9 +46,19 @@
<el-input v-model="form.name" autocomplete="off"></el-input> <el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="排序"> <el-form-item label="数据权限" prop="allow_level">
<el-input v-model="form.sortnumber" autocomplete="off"></el-input> <el-radio-group v-model="form.allow_level">
</el-form-item> <el-radio :label="0">所有</el-radio>
<el-radio :label="1">部门</el-radio>
<el-radio :label="2">私有</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="form.sortnumber" autocomplete="off"></el-input>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="resetForm('form')"> </el-button> <el-button @click="resetForm('form')"> </el-button>
@ -103,7 +120,8 @@
form: { form: {
name: "", name: "",
id: "", id: "",
sortnumber: "0" sortnumber: "0",
allow_level:0
}, },
userdata: [], userdata: [],
filterMethod(query, item) { filterMethod(query, item) {
@ -149,9 +167,12 @@
}) })
}, },
edit(obj) { edit(obj) {
this.form = this.$options.data().form
if (obj) { if (obj) {
this.form.id = obj.id; this.form.id = obj.id;
this.form.name = obj.name; this.form.name = obj.name;
this.form.sortnumber = obj.sortnumber;
this.form.allow_level = obj.allow_level;
} }
this.dialogFormVisible = true; this.dialogFormVisible = true;
}, },

@ -1,156 +1,157 @@
'use strict' 'use strict'
const path = require('path') const path = require('path')
const defaultSettings = require('./src/settings.js') const defaultSettings = require('./src/settings.js')
function resolve(dir) { function resolve(dir) {
return path.join(__dirname, dir) return path.join(__dirname, dir)
} }
const name = defaultSettings.title || '合同业务管理系统' // page title const name = defaultSettings.title || '合同业务管理系统' // page title
// If your port is set to 80, // If your port is set to 80,
// use administrator privileges to execute the command line. // use administrator privileges to execute the command line.
// For example, Mac: sudo npm run // For example, Mac: sudo npm run
// You can change the port by the following methods: // You can change the port by the following methods:
// port = 9528 npm run dev OR npm run dev --port = 9528 // port = 9528 npm run dev OR npm run dev --port = 9528
const port = process.env.port || process.env.npm_config_port || 9530 // dev port const port = process.env.port || process.env.npm_config_port || 9530 // dev port
// All configuration item explanations can be find in https://cli.vuejs.org/config/ // All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = { module.exports = {
/** /**
* You will need to set publicPath if you plan to deploy your site under a sub path, * You will need to set publicPath if you plan to deploy your site under a sub path,
* for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
* then publicPath should be set to "/bar/". * then publicPath should be set to "/bar/".
* In most cases please use '/' !!! * In most cases please use '/' !!!
* Detail: https://cli.vuejs.org/config/#publicpath * Detail: https://cli.vuejs.org/config/#publicpath
*/ */
publicPath: '/admin/', publicPath: '/admin/',
outputDir: '/Users/liuxiangyu/Work/szhedao/app/contract-business/contract-business-service/public/admin', outputDir: '/Users/liuxiangyu/Work/szhedao/app/contract-business/contract-business-service/public/admin',
assetsDir: 'static', assetsDir: 'static',
lintOnSave: process.env.NODE_ENV === 'development', lintOnSave: process.env.NODE_ENV === 'development',
productionSourceMap: false, productionSourceMap: false,
css: { css: {
loaderOptions: { // 向 CSS 相关的 loader 传递选项 loaderOptions: { // 向 CSS 相关的 loader 传递选项
less: { less: {
javascriptEnabled: true javascriptEnabled: true
} }
} }
}, },
devServer: { devServer: {
port: port, port: port,
open: true, open: true,
overlay: { overlay: {
warnings: false, warnings: false,
errors: true errors: true
}, },
//before: require('./mock/mock-server.js') //before: require('./mock/mock-server.js')
proxy: { proxy: {
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: 'http://hdcontract.ali251.langye.net', //target: 'http://hdcontract.ali251.langye.net',
//target: 'http://192.168.60.99:9002/', target: 'http://192.168.60.99:9003/',
changeOrigin: true, //配置跨域 changeOrigin: true, //配置跨域
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
} }
}, },
'/oa':{ '/oa': {
target:'http://suzhouhedaooa.langye.net', //target: 'http://suzhouhedaooa.langye.net',
changeOrigin: true, //配置跨域 target: 'http://192.168.60.18:2021',
pathRewrite: { changeOrigin: true, //配置跨域
'/oa': '/' pathRewrite: {
} '/oa': '/'
} }
} }
}, }
configureWebpack: { },
// provide the app's title in webpack's name field, so that configureWebpack: {
// it can be accessed in index.html to inject the correct title. // provide the app's title in webpack's name field, so that
name: name, // it can be accessed in index.html to inject the correct title.
resolve: { name: name,
alias: { resolve: {
'@': resolve('src') alias: {
} '@': resolve('src')
} }
}, }
chainWebpack(config) { },
// it can improve the speed of the first screen, it is recommended to turn on preload chainWebpack(config) {
config.plugin('preload').tap(() => [{ // it can improve the speed of the first screen, it is recommended to turn on preload
rel: 'preload', config.plugin('preload').tap(() => [{
// to ignore runtime.js rel: 'preload',
// https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171 // to ignore runtime.js
fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/], // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
include: 'initial' fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
}]) include: 'initial'
}])
// when there are many pages, it will cause too many meaningless requests
config.plugins.delete('prefetch') // when there are many pages, it will cause too many meaningless requests
config.plugins.delete('prefetch')
// set svg-sprite-loader
config.module // set svg-sprite-loader
.rule('svg') config.module
.exclude.add(resolve('src/icons')) .rule('svg')
.end() .exclude.add(resolve('src/icons'))
config.module .end()
.rule('icons') config.module
.test(/\.svg$/) .rule('icons')
.include.add(resolve('src/icons')) .test(/\.svg$/)
.end() .include.add(resolve('src/icons'))
.use('svg-sprite-loader') .end()
.loader('svg-sprite-loader') .use('svg-sprite-loader')
.options({ .loader('svg-sprite-loader')
symbolId: 'icon-[name]' .options({
}) symbolId: 'icon-[name]'
.end() })
.end()
// set preserveWhitespace
config.module // set preserveWhitespace
.rule('vue') config.module
.use('vue-loader') .rule('vue')
.loader('vue-loader') .use('vue-loader')
.tap(options => { .loader('vue-loader')
options.compilerOptions.preserveWhitespace = true .tap(options => {
return options options.compilerOptions.preserveWhitespace = true
}) return options
.end() })
.end()
config
.when(process.env.NODE_ENV !== 'development', config
config => { .when(process.env.NODE_ENV !== 'development',
config config => {
.plugin('ScriptExtHtmlWebpackPlugin') config
.after('html') .plugin('ScriptExtHtmlWebpackPlugin')
.use('script-ext-html-webpack-plugin', [{ .after('html')
// `runtime` must same as runtimeChunk name. default is `runtime` .use('script-ext-html-webpack-plugin', [{
inline: /runtime\..*\.js$/ // `runtime` must same as runtimeChunk name. default is `runtime`
}]) inline: /runtime\..*\.js$/
.end() }])
config .end()
.optimization.splitChunks({ config
chunks: 'all', .optimization.splitChunks({
cacheGroups: { chunks: 'all',
libs: { cacheGroups: {
name: 'chunk-libs', libs: {
test: /[\\/]node_modules[\\/]/, name: 'chunk-libs',
priority: 10, test: /[\\/]node_modules[\\/]/,
chunks: 'initial' // only package third parties that are initially dependent priority: 10,
}, chunks: 'initial' // only package third parties that are initially dependent
elementUI: { },
name: 'chunk-elementUI', // split elementUI into a single package elementUI: {
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app name: 'chunk-elementUI', // split elementUI into a single package
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
}, test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
commons: { },
name: 'chunk-commons', commons: {
test: resolve('src/components'), // can customize your rules name: 'chunk-commons',
minChunks: 3, // minimum common number test: resolve('src/components'), // can customize your rules
priority: 5, minChunks: 3, // minimum common number
reuseExistingChunk: true priority: 5,
} reuseExistingChunk: true
} }
}) }
// https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk })
config.optimization.runtimeChunk('single') // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk
} config.optimization.runtimeChunk('single')
) }
} )
}
} }

Loading…
Cancel
Save