作者 shenhailong

完善水电系统前端操作

正在显示 97 个修改的文件 包含 1304 行增加808 行删除

要显示太多修改。

为保证性能只显示 97 of 97+ 个文件。

{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-runtime","transform-vue-jsx"],
"presets": [
"es2015",
"stage-2"
],
"plugins": [
"transform-runtime",
"transform-vue-jsx"
],
"comments": false
}
... ...
... ... @@ -19,6 +19,5 @@ module.exports = {
"plugins": [
"vue"
],
"rules": {
}
"rules": {}
};
\ No newline at end of file
... ...
... ... @@ -2,7 +2,8 @@ var chalk = require('chalk')
var semver = require('semver')
var packageConfig = require('../package.json')
var shell = require('shelljs')
function exec (cmd) {
function exec(cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
... ...
... ... @@ -29,12 +29,13 @@ var devMiddleware = require('webpack-dev-middleware')(compiler, {
})
var hotMiddleware = require('webpack-hot-middleware')(compiler, {
log: () => {}
log: () => {
}
})
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' })
hotMiddleware.publish({action: 'reload'})
cb()
})
})
... ... @@ -43,7 +44,7 @@ compiler.plugin('compilation', function (compilation) {
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context]
if (typeof options === 'string') {
options = { target: options }
options = {target: options}
}
app.use(proxyMiddleware(options.filter || context, options))
})
... ...
... ... @@ -21,7 +21,7 @@ exports.cssLoaders = function (options) {
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
function generateLoaders(loader, loaderOptions) {
var loaders = [cssLoader]
if (loader) {
loaders.push({
... ... @@ -50,7 +50,7 @@ exports.cssLoaders = function (options) {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
sass: generateLoaders('sass', {indentedSyntax: true}),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
... ...
... ... @@ -2,7 +2,7 @@ var path = require('path')
var utils = require('./utils')
var config = require('../config')
var vueLoaderConfig = require('./vue-loader.conf')
var webpack=require('webpack')
var webpack = require('webpack')
function resolve(dir) {
return path.join(__dirname, '..', dir)
... ... @@ -69,9 +69,9 @@ module.exports = {
},
plugins: [
new webpack.ProvidePlugin({
$:"jquery",
jQuery:"jquery",
"windows.jQuery":"jquery"
$: "jquery",
jQuery: "jquery",
"windows.jQuery": "jquery"
})
]
}
... ...
... ... @@ -13,7 +13,7 @@ Object.keys(baseWebpackConfig.entry).forEach(function (name) {
module.exports = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
rules: utils.styleLoaders({sourceMap: config.dev.cssSourceMap})
},
// cheap-module-eval-source-map is faster for development
devtool: '#cheap-module-eval-source-map',
... ... @@ -28,7 +28,7 @@ module.exports = merge(baseWebpackConfig, {
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
favicon:'static/favicon.ico',
favicon: 'static/favicon.ico',
inject: true
}),
new FriendlyErrorsPlugin()
... ...
... ... @@ -28,7 +28,7 @@ module.exports = {
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api':{
'/api': {
target: 'http://192.168.1.53:12343',//设置你调用的接口域名和端口号 别忘了加http
// target: 'http://192.168.43.78:12343',//设置你调用的接口域名和端口号 别忘了加http
changeOrigin: true,
... ...
... ... @@ -8,10 +8,10 @@
</head>
<body>
<div id="app">
<div id="app">
</div>
<!-- built files will be auto injected -->
</div>
<!-- built files will be auto injected -->
</body>
</html>
\ No newline at end of file
... ...
... ... @@ -7,16 +7,15 @@
</template>
<script>
export default {
export default {
name: 'app',
components: {
components: {}
}
}
</script>
<style lang="scss">
body {
body {
margin: 0px;
padding: 0px;
/*background: url(assets/bg1.jpg) center !important;
... ... @@ -25,42 +24,43 @@ body {
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
font-size: 14px;
-webkit-font-smoothing: antialiased;
}
}
#app {
#app {
position: absolute;
top: 0px;
bottom: 0px;
width: 100%;
}
}
.el-submenu [class^=fa] {
.el-submenu [class^=fa] {
vertical-align: baseline;
margin-right: 10px;
}
}
.el-menu-item [class^=fa] {
.el-menu-item [class^=fa] {
vertical-align: baseline;
margin-right: 10px;
}
}
.toolbar {
.toolbar {
background: #f2f2f2;
padding: 10px;
//border:1px solid #dfe6ec;
margin: 10px 0px;
.el-form-item {
margin-bottom: 10px;
}
}
}
.fade-enter-active,
.fade-leave-active {
.fade-enter-active,
.fade-leave-active {
transition: all .2s ease;
}
}
.fade-enter,
.fade-leave-active {
.fade-enter,
.fade-leave-active {
opacity: 0;
}
}
</style>
\ No newline at end of file
... ...
... ... @@ -5,11 +5,16 @@ import qs from 'qs'
Vue.prototype.$http = axios;
export const getuserMenus = params => { return axios.get(`/perm/userMenus`, { params: params }); };
export const getuserMenus = params => {
return axios.get(`/perm/userMenus`, {params: params});
};
export const getUserList = params => { return axios.get(`/hqpt-user-center/user/list`, { params: params }); };
export const getUserList = params => {
return axios.get(`/hqpt-user-center/user/list`, {params: params});
};
export const getUserListPage = params => { return axios({
export const getUserListPage = params => {
return axios({
method: 'GET',
url: `/user/list`,
data: params,
... ... @@ -17,42 +22,53 @@ export const getUserListPage = params => { return axios({
'Content-Type': 'application/json;charset=UTF-8'
}
// withCredentials: true
}) };
})
};
export const removeUser = params => { return axios({
export const removeUser = params => {
return axios({
method: 'DELETE',
url: `/user/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const batchRemoveUser = params => { return axios.get(`/user/batchremove`, { params: params }); };
export const batchRemoveUser = params => {
return axios.get(`/user/batchremove`, {params: params});
};
export const editUser = params => { return axios({
export const editUser = params => {
return axios({
method: 'PUT',
url: `/user/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const addUser = params => { return axios({
export const addUser = params => {
return axios({
method: 'POST',
url: `/user/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const setUserRole = params => { return axios({
export const setUserRole = params => {
return axios({
method: 'PUT',
url: `/user/roleset`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -12,7 +12,7 @@ export function fetchArticle(id) {
return request({
url: '/article/detail',
method: 'get',
params: { id }
params: {id}
})
}
... ... @@ -20,7 +20,7 @@ export function fetchPv(pv) {
return request({
url: '/article/pv',
method: 'get',
params: { pv }
params: {pv}
})
}
... ...
... ... @@ -3,35 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/company';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,35 +3,45 @@ import axios from 'axios'
let base = '/cloud-user-center/department';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -2,26 +2,45 @@ import axios from 'axios'
let base = 'empt-location/order';
export const getOrder = params => { return axios.get(`${base}/list`, { params: params }); };
export const getOrder = params => {
return axios.get(`${base}/list`, {params: params});
};
export const addOrder=params=>{return http.post(`${base}/add`, params);};
export const addOrder = params => {
return http.post(`${base}/add`, params);
};
// export const ediOrder=params=>{return http.put(`${base}/edi`, params);};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const ediOrder = params => { return axios({
export const ediOrder = params => {
return axios({
method: 'PUT',
url: `${base}/edi`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
export const defeatedOrder = params =>{
return axios({
method: 'POST',
url: `${base}/defeatedOrder`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
\ No newline at end of file
... ...
... ... @@ -2,4 +2,6 @@ import axios from 'axios'
let base = 'empt-location/eeInfo';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
\ No newline at end of file
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
\ No newline at end of file
... ...
... ... @@ -3,62 +3,78 @@ import axios from 'axios'
let base = 'empt-location/electricity_meter';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const electricityInfo = params => { return axios({
export const electricityInfo = params => {
return axios({
method: 'POST',
url: `${base}/getEnergyInfoForRealTime`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const getEEModel = params => { return axios({
export const getEEModel = params => {
return axios({
method: 'POST',
url: `${base}/getEEModel`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const update = params => { return axios({
export const update = params => {
return axios({
method: 'PUT',
url: `${base}/update`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,44 +3,56 @@ import axios from 'axios'
let base = 'empt-location/location';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const update = params => { return axios({
export const update = params => {
return axios({
method: 'PUT',
url: `${base}/update`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,53 +3,67 @@ import axios from 'axios'
let base = 'empt-location/userPayOrder';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const qrCode = params => { return axios({
export const qrCode = params => {
return axios({
method: 'POST',
url: `${base}/qrCode`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const update = params => { return axios({
export const update = params => {
return axios({
method: 'PUT',
url: `${base}/update`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,55 +3,71 @@ import axios from 'axios'
let base = 'empt-location/water_meter';
export const getList = params => { return axios.get(`${base}/selectAll`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/selectAll`, {params: params});
};
export const waterMeterAll = params => { return axios.get(`${base}/waterMeterAll`, { params: params }); };
export const waterMeterAll = params => {
return axios.get(`${base}/waterMeterAll`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const findRealTime = params => { return axios({
export const findRealTime = params => {
return axios({
method: 'POST',
url: `${base}/findRealTime`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const update = params => { return axios({
export const update = params => {
return axios({
method: 'PUT',
url: `${base}/update`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,35 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/group';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -23,7 +23,7 @@ export default {
}
});
},
put(url, params){
put(url, params) {
return axios({
method: 'PUT',
url: url,
... ... @@ -33,7 +33,7 @@ export default {
}
})
},
del: (url,params) => {
del: (url, params) => {
return axios({
method: 'DELETE',
url: url,
... ... @@ -43,7 +43,7 @@ export default {
}
})
},
login: data =>{
login: data => {
return axios({
method: 'POST', // 请求协议
url: 'cloud-user-center/login', // 请求的地址
... ...
... ... @@ -3,44 +3,56 @@ import axios from 'axios'
let base = 'hqpt-process/job';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const startJob = params => { return axios({
export const startJob = params => {
return axios({
method: 'PUT',
url: `${base}/start`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,4 +3,6 @@ import axios from 'axios'
let base = '/cloud-user-center/system/log';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
\ No newline at end of file
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
\ No newline at end of file
... ...
... ... @@ -3,35 +3,45 @@ import axios from 'axios'
let base = '/cloud-user-center/perm';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/user/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/user/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,47 +3,59 @@ import axios from 'axios'
let base = 'hqpt-process/process';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const updateRolePerm = params => { return axios({
export const updateRolePerm = params => {
return axios({
method: 'PUT',
url: `${base}/permSet`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const vacationTypeOptions = [
{
... ...
... ... @@ -3,44 +3,56 @@ import axios from 'axios'
let base = '/cloud-user-center/role';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const updateRolePerm = params => { return axios({
export const updateRolePerm = params => {
return axios({
method: 'PUT',
url: `${base}/permSet`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,9 +3,9 @@ let setIntervalWesocketPush = null
/**建立连接 */
export function createSocket() {
var socketUrl="http://localhost:10003/imserver";
// var socketUrl="http://218.28.199.138:10003/imserver";
socketUrl=socketUrl.replace("https","ws").replace("http","ws");
// var socketUrl="http://localhost:10003/imserver";
var socketUrl = "http://218.28.199.138:10003/imserver";
socketUrl = socketUrl.replace("https", "ws").replace("http", "ws");
console.log(socketUrl);
if (!Socket) {
... ... @@ -19,16 +19,19 @@ export function createSocket() {
console.log('websocket已连接')
}
}
/**打开WS之后发送心跳 */
export function onopenWS() {
sendPing() //发送心跳
}
/**连接失败重连 */
export function onerrorWS() {
clearInterval(setIntervalWesocketPush)
Socket.close()
createSocket() //重连
}
/**WS数据接收统一处理 */
export function onmessageWS(e) {
console.log(e.data);
... ... @@ -38,6 +41,7 @@ export function onmessageWS(e) {
}
}))
}
/**发送数据
* @param eventType
*/
... ... @@ -58,11 +62,13 @@ export function sendWSPush(eventTypeArr) {
}, 3000)
}
}
/**关闭WS */
export function oncloseWS() {
clearInterval(setIntervalWesocketPush)
console.log('websocket已断开')
}
/**发送心跳 */
export function sendPing() {
Socket.send('ping')
... ...
... ... @@ -3,36 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/come_car';
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,36 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/key';
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,36 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/maintain';
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,36 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/on_duty';
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
... ... @@ -3,36 +3,45 @@ import axios from 'axios'
let base = '/hqpt-user-center/inspection';
export const getList = params => {
return axios.get(`${base}/list`, {params: params});
};
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
export const remove = params => {
return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const batchRemove = params => {
return axios.get(`${base}/batchremove`, {params: params});
};
export const edit = params => { return axios({
export const edit = params => {
return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
})
};
export const add = params => { return axios({
export const add = params => {
return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
})
};
\ No newline at end of file
... ...
export const checkNull = params => {
if (params!=null && !params && typeof(params)!="undefined"){
if (params != null && !params && typeof (params) != "undefined") {
return true;
}else {
} else {
return false;
}
};
... ...
import http from './http.js'
let baseUrl = '/cloud-user-center/user'
export const getUserList = params => { return http.get(`${baseUrl}/list`, params); };
export const getUserList = params => {
return http.get(`${baseUrl}/list`, params);
};
export const getUserListPage = params => { return http.get(`/user/list`,params) };
export const getUserListPage = params => {
return http.get(`/user/list`, params)
};
export const removeUser = params => { return http.del(`${baseUrl}/del`,params)};
export const removeUser = params => {
return http.del(`${baseUrl}/del`, params)
};
export const batchRemoveUser = params => { return http.del(`${baseUrl}/batchremove`, { params: params }); };
export const batchRemoveUser = params => {
return http.del(`${baseUrl}/batchremove`, {params: params});
};
export const editPass = params => { return http.put(`${baseUrl}/password`,params)};
export const editPass = params => {
return http.put(`${baseUrl}/password`, params)
};
export const editUser = params => { return http.put(`${baseUrl}/edit`,params)};
export const editUser = params => {
return http.put(`${baseUrl}/edit`, params)
};
export const addUser = params => { return http.post(`${baseUrl}/add`,params)};
export const addUser = params => {
return http.post(`${baseUrl}/add`, params)
};
export const setUserRole = params => { return http.put(`${baseUrl}/roleset`,params)};
export const setUserRole = params => {
return http.put(`${baseUrl}/roleset`, params)
};
export const resetToken = params => { return http.put(`${baseUrl}/resetToken`,params)};
\ No newline at end of file
export const resetToken = params => {
return http.put(`${baseUrl}/resetToken`, params)
};
\ No newline at end of file
... ...
... ... @@ -4,7 +4,7 @@ var DEFAULT_PATTERN = 'yyyy-MM-dd';
* 根据数组 元素的“值” 来删除或者获取数据
* 使用方法arrList.splice(arrList.contains('c'),1)
*/
Array.prototype.contains = function(obj) {
Array.prototype.contains = function (obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
... ... @@ -16,7 +16,9 @@ Array.prototype.contains = function(obj) {
function padding(s, len) {
len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; }
for (var i = 0; i < len; i++) {
s = '0' + s;
}
return s;
}
... ... @@ -38,13 +40,20 @@ export default {
pattern = pattern || DEFAULT_PATTERN;
return pattern.replace(SIGN_REGEXP, function ($0) {
switch ($0.charAt(0)) {
case 'y': return padding(date.getFullYear(), $0.length);
case 'M': return padding(date.getMonth() + 1, $0.length);
case 'd': return padding(date.getDate(), $0.length);
case 'w': return date.getDay() + 1;
case 'h': return padding(date.getHours(), $0.length);
case 'm': return padding(date.getMinutes(), $0.length);
case 's': return padding(date.getSeconds(), $0.length);
case 'y':
return padding(date.getFullYear(), $0.length);
case 'M':
return padding(date.getMonth() + 1, $0.length);
case 'd':
return padding(date.getDate(), $0.length);
case 'w':
return date.getDay() + 1;
case 'h':
return padding(date.getHours(), $0.length);
case 'm':
return padding(date.getMinutes(), $0.length);
case 's':
return padding(date.getSeconds(), $0.length);
}
});
},
... ... @@ -57,12 +66,24 @@ export default {
var _int = parseInt(matchs2[i]);
var sign = matchs1[i];
switch (sign.charAt(0)) {
case 'y': _date.setFullYear(_int); break;
case 'M': _date.setMonth(_int - 1); break;
case 'd': _date.setDate(_int); break;
case 'h': _date.setHours(_int); break;
case 'm': _date.setMinutes(_int); break;
case 's': _date.setSeconds(_int); break;
case 'y':
_date.setFullYear(_int);
break;
case 'M':
_date.setMonth(_int - 1);
break;
case 'd':
_date.setDate(_int);
break;
case 'h':
_date.setHours(_int);
break;
case 'm':
_date.setMinutes(_int);
break;
case 's':
_date.setSeconds(_int);
break;
}
}
return _date;
... ... @@ -72,9 +93,9 @@ export default {
},
checkNull: params => {
if (params!==null && typeof(params)!="undefined"){
if (params !== null && typeof (params) != "undefined") {
return true;
}else {
} else {
return false;
}
}
... ...
... ... @@ -14,9 +14,9 @@
</template>
<script>
import { scrollTo } from '@/utils/scrollTo'
import {scrollTo} from '@/utils/scrollTo'
export default {
export default {
name: 'Pagination',
props: {
total: {
... ... @@ -74,27 +74,28 @@ export default {
},
methods: {
handleSizeChange(val) {
this.$emit('pagination', { page: this.currentPage, limit: val })
this.$emit('pagination', {page: this.currentPage, limit: val})
if (this.autoScroll) {
scrollTo(0, 800)
}
},
handleCurrentChange(val) {
this.$emit('pagination', { page: val, limit: this.pageSize })
this.$emit('pagination', {page: val, limit: this.pageSize})
if (this.autoScroll) {
scrollTo(0, 800)
}
}
}
}
}
</script>
<style scoped>
.pagination-container {
.pagination-container {
background: #fff;
padding: 32px 16px;
}
.pagination-container.hidden {
}
.pagination-container.hidden {
display: none;
}
}
</style>
... ...
/**
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
'use strict'
import Vue from 'vue'
export default function treeToArray(data, expandAll, parent = null, level = null) {
let tmp = []
Array.from(data).forEach(function(record) {
Array.from(data).forEach(function (record) {
if (record._expanded === undefined) {
Vue.set(record, '_expanded', expandAll)
}
... ...
... ... @@ -11,7 +11,8 @@
<!--{{ scope.$index }}-->
</template>
</el-table-column>
<el-table-column v-for="(column, index) in columns" v-else :key="column.value" :label="column.text" :width="column.width">
<el-table-column v-for="(column, index) in columns" v-else :key="column.value" :label="column.text"
:width="column.width">
<template slot-scope="scope">
<!-- Todo -->
<!-- eslint-disable-next-line vue/no-confusing-v-for-v-if -->
... ... @@ -28,12 +29,13 @@
</template>
<script>
/**
/**
Auth: Lei.j1ang
Created: 2018/1/19-13:59
*/
import treeToArray from './eval.js'
export default {
*/
import treeToArray from './eval.js'
export default {
name: 'TreeTable',
props: {
/* eslint-disable */
... ... @@ -54,7 +56,7 @@ export default {
},
computed: {
// 格式化数据源
formatData: function() {
formatData: function () {
let tmp
if (!Array.isArray(this.data)) {
tmp = [this.data]
... ... @@ -67,7 +69,7 @@ export default {
}
},
methods: {
showRow: function(row) {
showRow: function (row) {
this.data
const show = (row.parent ? (row.parent._expanded && row.parent._show) : true)
// const show = (row.row.parent ? (row.row.parent._expanded && row.row.parent._show) : true)
... ... @@ -76,7 +78,7 @@ export default {
return show ? 'animation:treeTableShow 1s;-webkit-animation:treeTableShow 1s;' : 'display:none;'
},
// 切换下级是否展开
toggleExpanded: function(trIndex) {
toggleExpanded: function (trIndex) {
const record = this.formatData[trIndex]
record._expanded = !record._expanded
},
... ... @@ -85,16 +87,25 @@ export default {
return (index === 0 && record.children && record.children.length > 0)
}
}
}
}
</script>
<style rel="stylesheet/css">
@keyframes treeTableShow {
from {opacity: 0;}
to {opacity: 1;}
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes treeTableShow {
from {opacity: 0;}
to {opacity: 1;}
from {
opacity: 0;
}
to {
opacity: 1;
}
}
</style>
... ... @@ -110,19 +121,22 @@ export default {
line-height: 1;
width: $space-width;
height: 14px;
&::before {
content: ""
}
}
.processContainer{
.processContainer {
width: 100%;
height: 100%;
}
table td {
line-height: 26px;
}
.tree-ctrl{
.tree-ctrl {
position: relative;
cursor: pointer;
color: $color-blue;
... ...
... ... @@ -12,8 +12,12 @@ export default {
el._v_clipboard_error = binding.value
} else {
const clipboard = new Clipboard(el, {
text() { return binding.value },
action() { return binding.arg === 'cut' ? 'cut' : 'copy' }
text() {
return binding.value
},
action() {
return binding.arg === 'cut' ? 'cut' : 'copy'
}
})
clipboard.on('success', e => {
const callback = el._v_clipboard_success
... ... @@ -32,8 +36,12 @@ export default {
} else if (binding.arg === 'error') {
el._v_clipboard_error = binding.value
} else {
el._v_clipboard.text = function() { return binding.value }
el._v_clipboard.action = function() { return binding.arg === 'cut' ? 'cut' : 'copy' }
el._v_clipboard.text = function () {
return binding.value
}
el._v_clipboard.action = function () {
return binding.arg === 'cut' ? 'cut' : 'copy'
}
}
},
unbind(el, binding) {
... ...
import Clipboard from './clipboard'
const install = function(Vue) {
const install = function (Vue) {
Vue.directive('Clipboard', Clipboard)
}
... ...
export default{
export default {
bind(el, binding, vnode) {
const dialogHeaderEl = el.querySelector('.el-dialog__header')
const dragDom = el.querySelector('.el-dialog')
... ... @@ -6,7 +6,7 @@ export default{
dragDom.style.cssText += ';top:0px;'
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
const getStyle = (function() {
const getStyle = (function () {
if (window.document.currentStyle) {
return (dom, attr) => dom.currentStyle[attr]
} else {
... ... @@ -43,7 +43,7 @@ export default{
styT = +styT.replace(/\px/g, '')
}
document.onmousemove = function(e) {
document.onmousemove = function (e) {
// 通过事件委托,计算移动的距离
let left = e.clientX - disX
let top = e.clientY - disY
... ... @@ -68,7 +68,7 @@ export default{
vnode.child.$emit('dragDialog')
}
document.onmouseup = function(e) {
document.onmouseup = function (e) {
document.onmousemove = null
document.onmouseup = null
}
... ...
import drag from './drag'
const install = function(Vue) {
const install = function (Vue) {
Vue.directive('el-drag-dialog', drag)
}
... ...
import permission from './permission'
const install = function(Vue) {
const install = function (Vue) {
Vue.directive('permission', permission)
}
... ...
import store from '@/store'
export default{
export default {
inserted(el, binding, vnode) {
const { value } = binding
const {value} = binding
const roles = store.getters && store.getters.roles
if (value && value instanceof Array && value.length > 0) {
... ...
import waves from './waves'
const install = function(Vue) {
const install = function (Vue) {
Vue.directive('waves', waves)
}
... ...
import './waves.css'
export default{
export default {
bind(el, binding) {
el.addEventListener('click', e => {
const customOpts = Object.assign({}, binding.value)
... ...
import Vue from 'vue'
import App from './App'
import 'element-ui/lib/theme-chalk/index.css'
... ... @@ -15,13 +14,14 @@ import ElementUI from 'element-ui'
import $ from 'jquery'
//定义一个全局过滤器实现日期格式化
Vue.filter('datefmt',function(input,fmtstring){
Vue.filter('datefmt', function (input, fmtstring) {
return moment(input).format(fmtstring)
});
import * as socketApi from './api/socket'
Vue.prototype.socketApi = socketApi
Vue.config.productionTip = false
... ... @@ -35,9 +35,9 @@ Vue.prototype.$axios = axios;
console.log("mainjs:");
console.log(rout.routes);
const router = new VueRouter({
routes:rout.routes
routes: rout.routes
});
Vue.prototype.$rout =router;
Vue.prototype.$rout = router;
//本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化
sessionStorage.setItem('sysMenu', JSON.stringify(rout.routes));
... ... @@ -50,11 +50,11 @@ router.beforeEach((to, from, next) => {
sessionStorage.removeItem('token');
}
let user = JSON.parse(sessionStorage.getItem('user'));
if(sessionStorage.getItem('token')){
if (sessionStorage.getItem('token')) {
axios.defaults.headers.common['Authorization'] = sessionStorage.getItem('token');
}
if (!user && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {
next({ path: '/login' })
next({path: '/login'})
} else {
next()
}
... ... @@ -65,7 +65,7 @@ axios.defaults.baseURL = '/api';
axios.interceptors.response.use(
res => {
//对响应数据做些事
if (res.data && res.status!==200) {
if (res.data && res.status !== 200) {
message({
// 饿了么的消息弹窗组件,类似toast
showClose: true,
... ...
import Mock from 'mockjs';
const LoginUsers = [
{
id: 1,
... ... @@ -22,4 +23,4 @@ for (let i = 0; i < 86; i++) {
}));
}
export { LoginUsers, Users };
export {LoginUsers, Users};
... ...
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import { LoginUsers, Users } from './data/user';
import {LoginUsers, Users} from './data/user';
let _Users = Users;
export default {
... ... @@ -35,9 +36,9 @@ export default {
});
if (hasUser) {
resolve([200, { code: 200, msg: '请求成功', user }]);
resolve([200, {code: 200, msg: '请求成功', user}]);
} else {
resolve([200, { code: 500, msg: '账号或密码错误' }]);
resolve([200, {code: 500, msg: '账号或密码错误'}]);
}
}, 1000);
});
... ... @@ -80,7 +81,7 @@ export default {
//删除用户
mock.onGet('/user/remove').reply(config => {
let { id } = config.params;
let {id} = config.params;
_Users = _Users.filter(u => u.id !== id);
return new Promise((resolve, reject) => {
setTimeout(() => {
... ... @@ -94,7 +95,7 @@ export default {
//批量删除用户
mock.onGet('/user/batchremove').reply(config => {
let { ids } = config.params;
let {ids} = config.params;
ids = ids.split(',');
_Users = _Users.filter(u => !ids.includes(u.id));
return new Promise((resolve, reject) => {
... ... @@ -109,7 +110,7 @@ export default {
//编辑用户
mock.onGet('/user/edit').reply(config => {
let { id, name, addr, age, birth, sex } = config.params;
let {id, name, addr, age, birth, sex} = config.params;
_Users.some(u => {
if (u.id === id) {
u.name = name;
... ... @@ -132,7 +133,7 @@ export default {
//新增用户
mock.onGet('/user/add').reply(config => {
let { name, addr, age, birth, sex } = config.params;
let {name, addr, age, birth, sex} = config.params;
_Users.push({
name: name,
addr: addr,
... ...
... ... @@ -43,7 +43,7 @@ let routes = [
leaf: true,
iconCls: 'el-icon-menu',
children: [
{ path: '/main', component: Main, name: '首页'},
{path: '/main', component: Main, name: '首页'},
]
},
// { path: '/test', component: Main },
... ... @@ -53,13 +53,13 @@ let routes = [
name: '系统设置',
iconCls: 'el-icon-setting',//图标样式class
children: [
{ path: '/user', component: User, name: '用户管理' },
{ path: '/role', component: Role, name: '组织机构' },
{ path: '/perm', component: Perm, name: '权限管理' },
{ path: '/log', component: LOG, name: '系统日志' },
{ path: '/department', component: Department, name: '部门管理' },
{ path: '/company', component: Company, name: '公司管理'},
{ path: '/group', component: Group, name: '集团管理'}
{path: '/user', component: User, name: '用户管理'},
{path: '/role', component: Role, name: '组织机构'},
{path: '/perm', component: Perm, name: '权限管理'},
{path: '/log', component: LOG, name: '系统日志'},
{path: '/department', component: Department, name: '部门管理'},
{path: '/company', component: Company, name: '公司管理'},
{path: '/group', component: Group, name: '集团管理'}
]
},
{
... ... @@ -68,8 +68,8 @@ let routes = [
name: '客服系统',
iconCls: 'fa fa-id-card-o',
children: [
{ path: '/process', component: Process, name: '工单管理' },
{ path: '/job', component: Job, name: '任务管理' }
{path: '/process', component: Process, name: '工单管理'},
{path: '/job', component: Job, name: '任务管理'}
]
},
{
... ... @@ -78,11 +78,11 @@ let routes = [
name: '能源管理',
iconCls: 'fa fa-id-card-o',
children: [
{ path: '/location', component: Location, name: '公寓管理' },
{ path: '/PayOrder', component: PayOrder, name: '缴水电费订单' },
{ path: '/userPayOrder', component: userPayOrder, name: '用户水电缴费' },
{ path: '/QueryOrder', component: QueryOrder, name: '订单查询' },
{ path: '/eeInfo', component: eeInfo, name: '电表充值信息' },
{path: '/location', component: Location, name: '公寓管理'},
{path: '/PayOrder', component: PayOrder, name: '缴水电费订单'},
{path: '/userPayOrder', component: userPayOrder, name: '用户水电缴费'},
{path: '/QueryOrder', component: QueryOrder, name: '订单查询'},
{path: '/eeInfo', component: eeInfo, name: '电表充值信息'},
]
},
{
... ... @@ -91,9 +91,9 @@ let routes = [
name: '生活保障部门',
iconCls: 'fa fa-id-card-o',
children: [
{ path: '/security_inspection', component: SecrityInspection, name: '职工公寓安全巡视管理' },
{ path: '/key', component: Key, name: '职工公寓备用钥匙使用登记管理' },
{ path: '/maintain', component: Maintain, name: '职工公寓设施设备维修记录管理' },
{path: '/security_inspection', component: SecrityInspection, name: '职工公寓安全巡视管理'},
{path: '/key', component: Key, name: '职工公寓备用钥匙使用登记管理'},
{path: '/maintain', component: Maintain, name: '职工公寓设施设备维修记录管理'},
]
},
{
... ... @@ -103,7 +103,7 @@ let routes = [
iconCls: 'fa fa-address-card',
leaf: true,//只有一个节点
children: [
{ path: '/page6', component: Page6, name: '导航三' }
{path: '/page6', component: Page6, name: '导航三'}
]
},
{
... ... @@ -112,13 +112,13 @@ let routes = [
name: 'Charts',
iconCls: 'fa fa-bar-chart',
children: [
{ path: '/echarts', component: echarts, name: 'echarts' }
{path: '/echarts', component: echarts, name: 'echarts'}
]
},
{
path: '*',
hidden: true,
redirect: { path: '/404' }
redirect: {path: '/404'}
}
];
let initRouters = routes.concat();
... ... @@ -129,7 +129,7 @@ let setUserMenus = function (list) {
* 处理登陆后的账号对应的菜单
* @param menuList
*/
let handleMenuList = function (router,menu) {
let handleMenuList = function (router, menu) {
var _self = this;
var routerName = "";
router.forEach(function (v_router) {
... ... @@ -142,16 +142,16 @@ let handleMenuList = function (router,menu) {
//匹配到继续判断是否子元素,有子元素继续递归
if (result) {
if(v_router.children) {
_self.handleMenuList(v_router.children,result.children);
if (v_router.children) {
_self.handleMenuList(v_router.children, result.children);
}
//没有则可以移除
}else {
router.splice(router.findIndex(itm => itm.name === routerName ),1);
} else {
router.splice(router.findIndex(itm => itm.name === routerName), 1);
}
})
});
}
export default {
routes,setUserMenus,handleMenuList,initRouters
routes, setUserMenus, handleMenuList, initRouters
};
\ No newline at end of file
... ...
... ... @@ -38,19 +38,19 @@ const app = {
}
},
actions: {
toggleSideBar({ commit }) {
toggleSideBar({commit}) {
commit('TOGGLE_SIDEBAR')
},
closeSideBar({ commit }, { withoutAnimation }) {
closeSideBar({commit}, {withoutAnimation}) {
commit('CLOSE_SIDEBAR', withoutAnimation)
},
toggleDevice({ commit }, device) {
toggleDevice({commit}, device) {
commit('TOGGLE_DEVICE', device)
},
setLanguage({ commit }, language) {
setLanguage({commit}, language) {
commit('SET_LANGUAGE', language)
},
setSize({ commit }, size) {
setSize({commit}, size) {
commit('SET_SIZE', size)
}
}
... ...
... ... @@ -8,7 +8,7 @@ const errorLog = {
}
},
actions: {
addErrorLog({ commit }, log) {
addErrorLog({commit}, log) {
commit('ADD_ERROR_LOG', log)
}
}
... ...
import { asyncRouterMap, constantRouterMap } from '@/router'
import {asyncRouterMap, constantRouterMap} from '@/router'
/**
* 通过meta.role判断是否与当前用户权限匹配
... ... @@ -22,7 +22,7 @@ function filterAsyncRouter(routes, roles) {
const res = []
routes.forEach(route => {
const tmp = { ...route }
const tmp = {...route}
if (hasPermission(roles, tmp)) {
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, roles)
... ... @@ -46,9 +46,9 @@ const permission = {
}
},
actions: {
GenerateRoutes({ commit }, data) {
GenerateRoutes({commit}, data) {
return new Promise(resolve => {
const { roles } = data
const {roles} = data
let accessedRouters
if (roles.includes('admin')) {
accessedRouters = asyncRouterMap
... ...
... ... @@ -72,18 +72,18 @@ const tagsView = {
},
actions: {
addView({ dispatch }, view) {
addView({dispatch}, view) {
dispatch('addVisitedView', view)
dispatch('addCachedView', view)
},
addVisitedView({ commit }, view) {
addVisitedView({commit}, view) {
commit('ADD_VISITED_VIEW', view)
},
addCachedView({ commit }, view) {
addCachedView({commit}, view) {
commit('ADD_CACHED_VIEW', view)
},
delView({ dispatch, state }, view) {
delView({dispatch, state}, view) {
return new Promise(resolve => {
dispatch('delVisitedView', view)
dispatch('delCachedView', view)
... ... @@ -93,20 +93,20 @@ const tagsView = {
})
})
},
delVisitedView({ commit, state }, view) {
delVisitedView({commit, state}, view) {
return new Promise(resolve => {
commit('DEL_VISITED_VIEW', view)
resolve([...state.visitedViews])
})
},
delCachedView({ commit, state }, view) {
delCachedView({commit, state}, view) {
return new Promise(resolve => {
commit('DEL_CACHED_VIEW', view)
resolve([...state.cachedViews])
})
},
delOthersViews({ dispatch, state }, view) {
delOthersViews({dispatch, state}, view) {
return new Promise(resolve => {
dispatch('delOthersVisitedViews', view)
dispatch('delOthersCachedViews', view)
... ... @@ -116,20 +116,20 @@ const tagsView = {
})
})
},
delOthersVisitedViews({ commit, state }, view) {
delOthersVisitedViews({commit, state}, view) {
return new Promise(resolve => {
commit('DEL_OTHERS_VISITED_VIEWS', view)
resolve([...state.visitedViews])
})
},
delOthersCachedViews({ commit, state }, view) {
delOthersCachedViews({commit, state}, view) {
return new Promise(resolve => {
commit('DEL_OTHERS_CACHED_VIEWS', view)
resolve([...state.cachedViews])
})
},
delAllViews({ dispatch, state }, view) {
delAllViews({dispatch, state}, view) {
return new Promise(resolve => {
dispatch('delAllVisitedViews', view)
dispatch('delAllCachedViews', view)
... ... @@ -139,20 +139,20 @@ const tagsView = {
})
})
},
delAllVisitedViews({ commit, state }) {
delAllVisitedViews({commit, state}) {
return new Promise(resolve => {
commit('DEL_ALL_VISITED_VIEWS')
resolve([...state.visitedViews])
})
},
delAllCachedViews({ commit, state }) {
delAllCachedViews({commit, state}) {
return new Promise(resolve => {
commit('DEL_ALL_CACHED_VIEWS')
resolve([...state.cachedViews])
})
},
updateVisitedView({ commit }, view) {
updateVisitedView({commit}, view) {
commit('UPDATE_VISITED_VIEW', view)
}
}
... ...
import { loginByUsername, logout, getUserInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import {loginByUsername, logout, getUserInfo} from '@/api/login'
import {getToken, setToken, removeToken} from '@/utils/auth'
const user = {
state: {
... ... @@ -45,7 +45,7 @@ const user = {
actions: {
// 用户名登录
LoginByUsername({ commit }, userInfo) {
LoginByUsername({commit}, userInfo) {
const username = userInfo.username.trim()
return new Promise((resolve, reject) => {
loginByUsername(username, userInfo.password).then(response => {
... ... @@ -60,7 +60,7 @@ const user = {
},
// 获取用户信息
GetUserInfo({ commit, state }) {
GetUserInfo({commit, state}) {
return new Promise((resolve, reject) => {
getUserInfo(state.token).then(response => {
// 由于mockjs 不支持自定义状态码只能这样hack
... ... @@ -100,7 +100,7 @@ const user = {
// },
// 登出
LogOut({ commit, state }) {
LogOut({commit, state}) {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
... ... @@ -114,7 +114,7 @@ const user = {
},
// 前端 登出
FedLogOut({ commit }) {
FedLogOut({commit}) {
return new Promise(resolve => {
commit('SET_TOKEN', '')
removeToken()
... ... @@ -123,7 +123,7 @@ const user = {
},
// 动态修改权限
ChangeRoles({ commit, dispatch }, role) {
ChangeRoles({commit, dispatch}, role) {
return new Promise(resolve => {
commit('SET_TOKEN', role)
setToken(role)
... ...
$color-primary: #20a0ff;//#18c79c
\ No newline at end of file
$color-primary: #20a0ff; //#18c79c
\ No newline at end of file
... ...
/**
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
'use strict'
import Vue from 'vue'
export default function treeToArray(data, expandAll, parent, level, item) {
const marLTemp = []
let tmp = []
Array.from(data).forEach(function(record) {
Array.from(data).forEach(function (record) {
if (record._expanded === undefined) {
Vue.set(record, '_expanded', expandAll)
}
... ...
const dangerGoods = [
{ value: 'RFX', label: '禁燃物' },
{value: 'RFX', label: '禁燃物'},
{ value: 'EXP', label: '快件' },
{value: 'EXP', label: '快件'},
{ value: 'FRO', label: '冷藏货物' },
{value: 'FRO', label: '冷藏货物'},
{ value: 'ELI', label: '锂电池' },
{value: 'ELI', label: '锂电池'},
{ value: 'ELM', label: '锂金属电池' },
{value: 'ELM', label: '锂金属电池'},
{ value: 'WET', label: '没有密水包装的湿' },
{value: 'WET', label: '没有密水包装的湿'},
{ value: 'LHO', label: '人体器官血液' },
{value: 'LHO', label: '人体器官血液'},
{ value: 'PEM', label: '肉类' },
{value: 'PEM', label: '肉类'},
{ value: 'HUM', label: '尸体' },
{value: 'HUM', label: '尸体'},
{ value: 'SPF', label: '实验动物' },
{value: 'SPF', label: '实验动物'},
{ value: 'EAT', label: '食品' },
{value: 'EAT', label: '食品'},
{ value: 'PEA', label: '兽皮等皮制品' },
{value: 'PEA', label: '兽皮等皮制品'},
{ value: 'PEP', label: '水果蔬菜' },
{value: 'PEP', label: '水果蔬菜'},
{ value: 'DIP', label: '外交邮袋' },
{value: 'DIP', label: '外交邮袋'},
{ value: 'DGR', label: '危险品' },
{value: 'DGR', label: '危险品'},
{ value: 'PEF', label: '鲜花' },
{value: 'PEF', label: '鲜花'},
{ value: 'PER', label: '鲜活易腐物品' },
{value: 'PER', label: '鲜活易腐物品'},
{ value: 'XPS', label: '小件货物' },
{value: 'XPS', label: '小件货物'},
{ value: 'PIL', label: '药品' },
{value: 'PIL', label: '药品'},
{ value: 'FRI', label: '用于动植物检疫的' },
{value: 'FRI', label: '用于动植物检疫的'},
{ value: 'MAL', label: '邮件' },
{value: 'MAL', label: '邮件'},
{ value: 'ECM', label: '邮件' }
{value: 'ECM', label: '邮件'}
]
export default dangerGoods
... ...
const goodsPackage = [
{ value: '1', label: '纸箱' },
{value: '1', label: '纸箱'},
{ value: '2', label: '木箱' },
{value: '2', label: '木箱'},
{ value: '3', label: '桶装' },
{value: '3', label: '桶装'},
{ value: '4', label: '纸托' },
{value: '4', label: '纸托'},
{ value: '5', label: '木托' },
{value: '5', label: '木托'},
{ value: '6', label: '塑料箱' },
{value: '6', label: '塑料箱'},
{ value: '7', label: '金属托' },
{value: '7', label: '金属托'},
{ value: '8', label: '散装' },
{value: '8', label: '散装'},
{ value: '9', label: '包' },
{value: '9', label: '包'},
{ value: '10', label: '其他' }
{value: '10', label: '其他'}
]
export default goodsPackage
... ...
... ... @@ -31,7 +31,9 @@ export function parseTime(time, cFormat) {
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
... ... @@ -235,7 +237,7 @@ export function getTime(type) {
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function() {
const later = function () {
// 据上一次触发时间间隔
const last = +new Date() - timestamp
... ... @@ -252,7 +254,7 @@ export function debounce(func, wait, immediate) {
}
}
return function(...args) {
return function (...args) {
context = this
timestamp = +new Date()
const callNow = immediate && !timeout
... ...
import axios from 'axios'
import { Message } from 'element-ui'
import {Message} from 'element-ui'
// create an axios instance
const service = axios.create({
... ...
Math.easeInOutQuad = function(t, b, c, d) {
Math.easeInOutQuad = function (t, b, c, d) {
t /= d / 2
if (t < 1) {
return c / 2 * t * t + b
... ... @@ -8,8 +8,10 @@ Math.easeInOutQuad = function(t, b, c, d) {
}
// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
var requestAnimFrame = (function() {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) }
var requestAnimFrame = (function () {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {
window.setTimeout(callback, 1000 / 60)
}
})()
// because it's so fucking difficult to detect the scrolling element, just move them all
... ... @@ -29,7 +31,7 @@ export function scrollTo(to, duration, callback) {
const increment = 20
let currentTime = 0
duration = (typeof (duration) === 'undefined') ? 500 : duration
var animateScroll = function() {
var animateScroll = function () {
// increment the time
currentTime += increment
// find the value with the quadratic in-out easing function
... ...
... ... @@ -2,5 +2,5 @@
* 板箱类型
*
*/
const uldType = ['AKE','AVE','DPE','DQF','PMC','PAG','PLA','PKC']
const uldType = ['AKE', 'AVE', 'DPE', 'DQF', 'PMC', 'PAG', 'PLA', 'PKC']
export default uldType
... ...
... ... @@ -38,7 +38,8 @@ function generateArray(table) {
c: outRow.length + colspan - 1
}
});
};
}
;
//Handle Value
outRow.push(cellValue !== "" ? cellValue : null);
... ... @@ -149,8 +150,8 @@ export function export_json_to_excel({
data,
filename,
autoWidth = true,
bookType= 'xlsx'
} = {}) {
bookType = 'xlsx'
} = {}) {
/* original data */
filename = filename || 'excel-list'
data = [...data]
... ...
... ... @@ -11,7 +11,8 @@
</el-col>
<el-col :span="4" class="userinfo">
<el-dropdown trigger="hover">
<span class="el-dropdown-link userinfo-inner"><img :src="this.sysUserAvatar" /> {{sysUserName}}</span>
<span class="el-dropdown-link userinfo-inner"><img
:src="this.sysUserAvatar"/> {{sysUserName}}</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>我的消息</el-dropdown-item>
<el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>
... ... @@ -28,7 +29,8 @@
<span>{{sysUserName}}</span>
</el-form-item>
<el-form-item label="新密码" prop="newpwd">
<el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>
<el-input type="password" v-model="resetForm.newpwd" autocomplete="off"
placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="renewpwd">
<el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>
... ... @@ -43,27 +45,42 @@
<el-col :span="24" class="main">
<aside :class="collapsed?'menu-collapsed':'menu-expanded'">
<!--导航菜单-->
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect" unique-opened router v-show="!collapsed" style="min-width: 230px">
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen"
@close="handleclose" @select="handleselect" unique-opened router v-show="!collapsed"
style="min-width: 230px">
<template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
<el-submenu :index="index+''" v-if="!item.leaf">
<template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
<el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">{{child.name}}</el-menu-item>
<el-menu-item v-for="child in item.children" :index="child.path" :key="child.path"
v-if="!child.hidden">{{child.name}}
</el-menu-item>
</el-submenu>
<el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i :class="item.iconCls"></i>{{item.children[0].name}}</el-menu-item>
<el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i
:class="item.iconCls"></i>{{item.children[0].name}}
</el-menu-item>
</template>
</el-menu>
<!--导航菜单-折叠后-->
<ul class="el-menu el-menu-vertical-demo collapsed" v-show="collapsed" ref="menuCollapsed">
<li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">
<template v-if="!item.leaf">
<div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>
<ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">
<li v-for="child in item.children" v-if="!child.hidden" :key="child.path" class="el-menu-item" style="padding-left: 40px;" :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">{{child.name}}</li>
<div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)"
@mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>
<ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)"
@mouseout="showMenu(index,false)">
<li v-for="child in item.children" v-if="!child.hidden" :key="child.path"
class="el-menu-item" style="padding-left: 40px;"
:class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">
{{child.name}}
</li>
</ul>
</template>
<template v-else>
<li class="el-submenu">
<div class="el-submenu__title el-menu-item" style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;" :class="$route.path==item.children[0].path?'is-active':''" @click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div>
<div class="el-submenu__title el-menu-item"
style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;"
:class="$route.path==item.children[0].path?'is-active':''"
@click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div>
</li>
</template>
</li>
... ... @@ -92,8 +109,9 @@
<script>
import rt from '../routes'
import { editPass,resetToken} from '../api/user';
import {editPass, resetToken} from '../api/user';
import ElFormItem from "element-ui/packages/form/src/form-item";
export default {
provide() {
... ... @@ -106,30 +124,48 @@
var validatePass = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入新密码'));
}else {
var ls=0;
if(value.match(/([a-z])+/)){
} else {
var ls = 0;
if (value.match(/([a-z])+/)) {
ls++;
} if(value.match(/([0-9])+/)){
}
if (value.match(/([0-9])+/)) {
ls++;
} if(value.match(/([A-Z])+/)){
}
if (value.match(/([A-Z])+/)) {
ls++;
} if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){
}
if ((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)) {
ls++;
} if (value.toString().length < 8 || value.toString().length > 20) {
}
if (value.toString().length < 8 || value.toString().length > 20) {
callback(new Error('密码长度为8 - 20个字符'));
ls=0;
} if(value.match(/([\u4E00-\u9FA5])+/)){
ls = 0;
}
if (value.match(/([\u4E00-\u9FA5])+/)) {
callback(new Error('不能包含中文字符'));
ls=0;
ls = 0;
}
switch (ls) {
case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break;
case 0:
this.passwordPercent = 0;
callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));
break;
case 1:
this.passwordPercent = 33;
callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));
break;
case 2:
this.passwordPercent = 66;
callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));
break;
case 3:
case 4: this.passwordPercent = 100;break;
default: this.passwordPercent = 0;break;
case 4:
this.passwordPercent = 100;
break;
default:
this.passwordPercent = 0;
break;
}
callback();
}
... ... @@ -146,10 +182,10 @@
}
};
return {
sysName:'易通快速通关申报管理系统',
collapsed:false,
sysName: '易通快速通关申报管理系统',
collapsed: false,
sysUserName: '',
sysUserId:'',
sysUserId: '',
sysUserAvatar: '',
isRouterAlive: true,
form: {
... ... @@ -162,17 +198,17 @@
resource: '',
desc: ''
},
dialogFormVisible:false,
dialogFormVisible: false,
resetForm: {
newpwd: '',
renewpwd: '',
},
resetFormRules: {
newpwd: [
{ required: true, validator: validatePass, trigger: 'blur' }
{required: true, validator: validatePass, trigger: 'blur'}
],
renewpwd: [
{ required: true, validator: validatePass2, trigger: 'blur' }
{required: true, validator: validatePass2, trigger: 'blur'}
]
},
editForm: {
... ... @@ -186,25 +222,25 @@
this.$nextTick(function () {
this.$router.push({
path: this.$router.path,
query:{
query: {
t: new Date().getTime()
}
})
})
},
editPass:function(){
this.dialogFormVisible=true;
editPass: function () {
this.dialogFormVisible = true;
},
updateCache:function(){
resetToken().then( res =>{
updateCache: function () {
resetToken().then(res => {
let response = res.data;
if (response.code === '200'){
if (response.code === '200') {
this.$notify({
title: '成功',
message: '缓存更新成功',
type: 'success'
});
}else{
} else {
this.$notify.error({
title: '失败',
message: '缓存更新失败'
... ... @@ -212,21 +248,21 @@
}
})
},
submitEdit(formName){
submitEdit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.editForm.userId=this.sysUserId;
this.editForm.password=this.resetForm.renewpwd;
editPass(this.editForm).then(res=>{
let response=res.data;
if(response.code=='200'){
this.editForm.userId = this.sysUserId;
this.editForm.password = this.resetForm.renewpwd;
editPass(this.editForm).then(res => {
let response = res.data;
if (response.code == '200') {
this.$notify({
title: '密码修改成功',
message: '密码修改成功,退出请重新登录',
type: 'success'
});
this.dialogFormVisible=false;
}else{
this.dialogFormVisible = false;
} else {
this.$notify.error({
title: '密码修改失败',
message: '密码修改失败!!!'
... ... @@ -272,11 +308,11 @@
},
//折叠导航栏
collapse:function(){
this.collapsed=!this.collapsed;
collapse: function () {
this.collapsed = !this.collapsed;
},
showMenu(i,status){
this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none';
showMenu(i, status) {
this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-' + i)[0].style.display = status ? 'block' : 'none';
}
},
mounted() {
... ... @@ -285,7 +321,7 @@
if (user) {
user = JSON.parse(user);
this.sysUserName = user.username || '';
this.sysUserId=user.userId||'';
this.sysUserId = user.userId || '';
this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg';
}
//操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
... ... @@ -303,23 +339,28 @@
<style scoped lang="scss">
@import '~scss_vars';
.container {
position: absolute;
top: 0px;
bottom: 0px;
width: 100%;
.header {
height: 60px;
line-height: 60px;
background: $color-primary url("/static/images/air-banner.png");
color:#fff;
color: #fff;
.userinfo {
text-align: right;
padding-right: 35px;
float: right;
.userinfo-inner {
cursor: pointer;
color:#fff;
color: #fff;
img {
width: 40px;
height: 40px;
... ... @@ -329,38 +370,45 @@
}
}
}
.logo {
//width:230px;
height:60px;
height: 60px;
font-size: 22px;
padding-left:20px;
padding-right:20px;
border-color: rgba(238,241,146,0.3);
padding-left: 20px;
padding-right: 20px;
border-color: rgba(238, 241, 146, 0.3);
border-right-width: 1px;
border-right-style: solid;
img {
width: 40px;
float: left;
margin: 10px 10px 10px 18px;
}
.txt {
color:#fff;
color: #fff;
}
}
.logo-width{
width:230px;
.logo-width {
width: 230px;
}
.logo-collapse-width{
width:60px
.logo-collapse-width {
width: 60px
}
.tools{
.tools {
padding: 0px 23px;
width:14px;
width: 14px;
height: 60px;
line-height: 60px;
cursor: pointer;
}
}
.main {
display: flex;
// background: #324057;
... ... @@ -368,44 +416,51 @@
top: 60px;
bottom: 0px;
overflow: hidden;
aside {
flex:0 0 230px;
flex: 0 0 230px;
width: 230px;
overflow-y: scroll;
background: #606060;
// position: absolute;
// top: 0px;
// bottom: 0px;
.collapsed{
width:60px;
.item{
.collapsed {
width: 60px;
.item {
position: relative;
}
.submenu{
position:absolute;
top:0px;
left:60px;
z-index:99999;
height:auto;
display:none;
.submenu {
position: absolute;
top: 0px;
left: 60px;
z-index: 99999;
height: auto;
display: none;
}
}
}
.menu-collapsed{
flex:0 0 60px;
.menu-collapsed {
flex: 0 0 60px;
width: 60px;
}
.menu-expanded{
flex:0 0 230px;
.menu-expanded {
flex: 0 0 230px;
width: 230px;
}
.menu-expanded ul{
.menu-expanded ul {
width: 230px;
}
.content-container {
// background: #f1f2f7;
flex:1;
flex: 1;
// position: absolute;
// right: 0px;
// top: 0px;
... ... @@ -413,6 +468,7 @@
// left: 230px;
overflow-y: scroll;
padding: 10px;
.breadcrumb-container {
//margin-bottom: 15px;
.title {
... ... @@ -421,14 +477,17 @@
color: #475669;
margin-left: 10px;
}
.breadcrumb-inner {
float: right;
margin-right:10px;
margin-right: 10px;
}
.el-breadcrumb{
line-height:36px;
.el-breadcrumb {
line-height: 36px;
}
}
.content-wrapper {
background-color: #fff;
box-sizing: border-box;
... ... @@ -438,34 +497,42 @@
}
</style>
<style lang="scss">
.darkmenu{
.darkmenu {
.main {
aside {
.el-menu{
.el-menu {
height: 100%;
background: #606060;
.el-menu-item {
i{
i {
color: white;
}
color: white;
}
.el-menu-item.is-active{
color:#e6a23c;
.el-menu-item.is-active {
color: #e6a23c;
}
.el-menu-item:hover,.el-menu-item:focus{
.el-menu-item:hover, .el-menu-item:focus {
background-color: #1a4496;
}
.el-submenu {
ul.el-menu.el-menu--inline{
ul.el-menu.el-menu--inline {
background: #303030;
}
.el-submenu__title {
color: white;
i{
i {
color: white;
}
}
.el-submenu__title:hover {
background-color: #1a4496;
}
... ...
<template>
<div>
<el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-container" id="loginForm">
<el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px"
class="demo-ruleForm login-container" id="loginForm">
<h3 class="title">系统登录</h3>
<el-form-item prop="account">
<el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
</el-form-item>
<el-form-item prop="checkPass">
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码"
@keyup.enter.native="handleSubmit2"></el-input>
</el-form-item>
<el-checkbox v-model="checked" checked class="remeberme">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining" :plain="true">登录</el-button>
<el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining"
:plain="true">登录
</el-button>
<!--<el-button @click.native.prevent="handleReset2">重置</el-button>-->
</el-form-item>
</el-form>
... ... @@ -24,7 +28,9 @@
<!--浏览器不支持 video 标签,建议升级浏览器。-->
</video>
<div class="poster hidden" v-if="!vedioCanPlay">
<img :style="fixStyle" src="https://s2.best-wallpaper.net/wallpaper/2560x1600/1511/Airplane-passenger-airliner-flight-sea-lights-airport-evening_2560x1600.jpg" alt="">
<img :style="fixStyle"
src="https://s2.best-wallpaper.net/wallpaper/2560x1600/1511/Airplane-passenger-airliner-flight-sea-lights-airport-evening_2560x1600.jpg"
alt="">
</div>
</div>
</div>
... ... @@ -47,11 +53,11 @@
},
rules2: {
account: [
{ required: true, message: '请输入账号', trigger: 'blur' },
{required: true, message: '请输入账号', trigger: 'blur'},
//{ validator: validaePass }
],
checkPass: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{required: true, message: '请输入密码', trigger: 'blur'},
//{ validator: validaePass2 }
]
},
... ... @@ -66,12 +72,12 @@
handleReset2() {
this.$refs.ruleForm2.resetFields();
},
handleMenuList : function (router,menu) {
handleMenuList: function (router, menu) {
var _this = this;
var routerName = "";
var routerTemp = router.concat();
routerTemp.forEach(function (v_router,v_index,v_arr) {
routerTemp.forEach(function (v_router, v_index, v_arr) {
routerName = v_router.name;
//查找返回的目录列表是否包含路由名称,有就返回匹配到的元素,没有就移除
... ... @@ -81,13 +87,13 @@
//匹配到继续判断是否子元素,有子元素继续递归
if (result) {
if (v_router.children && v_router.children.length>0) {
if (v_router.children && v_router.children.length > 0) {
_this.handleMenuList(v_router.children, result.children);
}
}else {
} else {
//没有则可以移除
let deletRouter = router.findIndex(itm => itm.name === routerName );
router.splice(deletRouter,1);
let deletRouter = router.findIndex(itm => itm.name === routerName);
router.splice(deletRouter, 1);
}
});
console.log("longined router:");
... ... @@ -119,9 +125,9 @@
});
} else if (token) {
sessionStorage.setItem('user', JSON.stringify(authentication));
sessionStorage.setItem('token','Bearer '+ token);
sessionStorage.setItem('token', 'Bearer ' + token);
//设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了
axios.defaults.headers.common['Authorization'] = 'Bearer '+token;
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
//处理用户menu
_this.userMenus = loginUserMenus.list;
console.log("userMenus:");
... ... @@ -132,7 +138,7 @@
console.log("sysMenus:");
console.log(sysMenus);
_this.handleMenuList(_this.$router.options.routes,_this.userMenus);
_this.handleMenuList(_this.$router.options.routes, _this.userMenus);
console.log("user:");
console.log(_this.$router.options.routes);
... ... @@ -151,7 +157,7 @@
});
}
},
mounted:function () {
mounted: function () {
window.onresize = () => {
const windowWidth = document.body.clientWidth
const windowHeight = document.body.clientHeight
... ... @@ -185,17 +191,18 @@
</script>
<style lang="scss" scoped>
#loginForm{
filter:alpha(Opacity=90);
-moz-opacity:0.9;
#loginForm {
filter: alpha(Opacity=90);
-moz-opacity: 0.9;
opacity: 0.9;
}
.homepage-hero-module,
.video-container {
height: 100vh;
/*overflow: hidden;*/
position: absolute;
top:0px;
top: 0px;
left: 0;
z-index: -1;
}
... ... @@ -211,6 +218,7 @@
position: absolute;
background: rgba(0, 0, 0, 0.4);
}
.login-container {
/*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
-webkit-border-radius: 5px;
... ... @@ -223,11 +231,13 @@
background: #fff;
border: 1px solid #eaeaea;
box-shadow: 0 0 25px #cac6c6;
.title {
margin: 0px auto 40px auto;
text-align: center;
color: #505458;
}
.remember {
margin: 0px 0px 35px 0px;
}
... ...
... ... @@ -6,8 +6,8 @@
<script>
import rt from '../routes'
export default {
}
export default {}
</script>
... ...
... ... @@ -4,12 +4,21 @@
<el-input v-model="listQuery.title" style="width: 200px;" class="filter-item" placeholder="运单号"/>
<el-input v-model="listQuery.title" style="width: 200px;" class="filter-item" placeholder="航班号"/>
<el-input v-model="listQuery.title" style="width: 200px;" class="filter-item" placeholder="航班日期"/>
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">{{ $t('table.search') }}</el-button>
<el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-edit" @click="handleCreate">{{ $t('table.add') }}</el-button>
<el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">{{ $t('table.export') }}</el-button>
<el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message" @click="handleCreate">批量发送</el-button>
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">{{
$t('table.search') }}
</el-button>
<el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-edit"
@click="handleCreate">{{ $t('table.add') }}
</el-button>
<el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download"
@click="handleDownload">{{ $t('table.export') }}
</el-button>
<el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message"
@click="handleCreate">批量发送
</el-button>
</div>
<tree-table :data="data" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe style="font-size: 13px" border @selection-change="handleSelectionChange">
<tree-table :data="data" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe
style="font-size: 13px" border @selection-change="handleSelectionChange">
<el-table-column prop="waybillNo" label="主单号" width="110px" align="center" sortable>
<template slot-scope="scope">
<span>{{ scope.row.waybillNo }}</span>
... ... @@ -59,28 +68,37 @@
<template slot-scope="scope">
<span>{{ scope.row.customText }}</span>
<div>
<el-progress :percentage="scope.row.customComplate" :status="scope.row.status | statusFilter" />
<el-progress :percentage="scope.row.customComplate" :status="scope.row.status | statusFilter"/>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('table.actions')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handleUpdate(scope.row)">快速编辑</el-button>
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">{{ $t('table.edit') }}</el-button>
<el-button v-if="scope.row.status!='41301'" size="mini" type="success" @click="handleModifyStatus(scope.row,'41301')">{{ $t('table.publish') }}</el-button>
<el-button v-if="scope.row.status!='10002'" size="small" @click="handleModifyStatus(scope.row,'10002')">客服反馈</el-button>
<el-button v-if="scope.row.status=='10002'" size="mini" type="danger" @click="handleModifyStatus(scope.row,'deleted')">{{ $t('table.delete') }}</el-button>
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">{{ $t('table.edit') }}
</el-button>
<el-button v-if="scope.row.status!='41301'" size="mini" type="success"
@click="handleModifyStatus(scope.row,'41301')">{{ $t('table.publish') }}
</el-button>
<el-button v-if="scope.row.status!='10002'" size="small"
@click="handleModifyStatus(scope.row,'10002')">客服反馈
</el-button>
<el-button v-if="scope.row.status=='10002'" size="mini" type="danger"
@click="handleModifyStatus(scope.row,'deleted')">{{ $t('table.delete') }}
</el-button>
<el-switch
v-model="resend"
active-color="#13ce66"
inactive-color="#ff4949" />
inactive-color="#ff4949"/>
</template>
</el-table-column>
</tree-table>
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit"
@pagination="getList"/>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" fullscreen="true">
<el-form ref="" :inline="true" label-position="left" :rules="rules" :model="temp" label-width="100px" style="font-size: 13px">
<el-form ref="" :inline="true" label-position="left" :rules="rules" :model="temp" label-width="100px"
style="font-size: 13px">
<div>
<el-tag type="info" effect="plain">
航班信息
... ... @@ -93,7 +111,8 @@
<el-input v-model="temp.flight"/>
</el-form-item>
<el-form-item label="航班日期" prop="flightDate">
<el-date-picker :picker-options="pickerOptions" v-model="temp.flightDate" align="right" type="date" placeholder="请输入航班日期" />
<el-date-picker :picker-options="pickerOptions" v-model="temp.flightDate" align="right"
type="date" placeholder="请输入航班日期"/>
</el-form-item>
</div>
</el-col>
... ... @@ -171,7 +190,7 @@
v-model="temp.country"
filterable
remote
placeholder="请选择" >
placeholder="请选择">
<el-option
v-for="item in countryOption"
:key="item.value"
... ... @@ -186,12 +205,12 @@
<el-select
v-model="temp.shpCompnyType"
filterable
placeholder="请选择企业代码类型" >
placeholder="请选择企业代码类型">
<el-option
v-for="item in shpCompnyTypeOption"
:key="item.value"
:label="item.label"
:value="item.value" />
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item prop="shpCity">
... ... @@ -235,7 +254,7 @@
v-model="temp.country"
filterable
remote
placeholder="请选择" >
placeholder="请选择">
<el-option
v-for="item in countryOption"
:key="item.value"
... ... @@ -250,12 +269,12 @@
<el-select
v-model="temp.shpCompnyType"
filterable
placeholder="请选择企业代码类型" >
placeholder="请选择企业代码类型">
<el-option
v-for="item in shpCompnyTypeOption"
:key="item.value"
:label="item.label"
:value="item.value" />
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item prop="shpCity">
... ... @@ -274,12 +293,12 @@
<el-form-item label="危险品信息" prop="shpCompnyType">
<el-select
v-model="temp.dangerGoods"
placeholder="请选择危险品类型" >
placeholder="请选择危险品类型">
<el-option
v-for="item in dangerGoods"
:key="item.value"
:label="item.label"
:value="item.value" >
:value="item.value">
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
</el-option>
... ... @@ -300,12 +319,12 @@
<el-form-item label="包装" prop="shpCompnyType">
<el-select
v-model="temp.goodsPackage"
placeholder="请选择包装类型" >
placeholder="请选择包装类型">
<el-option
v-for="item in goodsPackage"
:key="item.value"
:label="item.label"
:value="item.value" />
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="尺寸" prop="shpCity">
... ... @@ -338,7 +357,9 @@
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">{{ $t('table.confirm') }}</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">{{
$t('table.confirm') }}
</el-button>
</div>
</el-dialog>
... ... @@ -346,43 +367,44 @@
</template>
<script>
/**
/**
Auth: Lei.j1ang
Created: 2018/1/19-14:54
*/
import { fetchList } from '@/api/article'
import treeTable from '@/components/TreeTable'
import treeToArray from './customEval'
import Pagination from '@/components/Pagination'
import waves from '@/directive/waves' // Waves directive
import country from '@/utils/country.js'
import companyType from '@/utils/companyType.js'
import dangerGoods from '@/utils/dangerGoods.js'
import goodsPackage from '@/utils/goodsPackage.js'
import excel from '@/vendor/Export2Excel'
import { parseTime } from '@/utils'
const calendarTypeOptions = [
{ key: 'CN', display_name: 'China' },
{ key: 'US', display_name: 'USA' },
{ key: 'JP', display_name: 'Japan' },
{ key: 'EU', display_name: 'Eurozone' }
]
*/
import {fetchList} from '@/api/article'
import treeTable from '@/components/TreeTable'
import treeToArray from './customEval'
import Pagination from '@/components/Pagination'
import waves from '@/directive/waves' // Waves directive
import country from '@/utils/country.js'
import companyType from '@/utils/companyType.js'
import dangerGoods from '@/utils/dangerGoods.js'
import goodsPackage from '@/utils/goodsPackage.js'
import excel from '@/vendor/Export2Excel'
import {parseTime} from '@/utils'
const calendarTypeOptions = [
{key: 'CN', display_name: 'China'},
{key: 'US', display_name: 'USA'},
{key: 'JP', display_name: 'Japan'},
{key: 'EU', display_name: 'Eurozone'}
]
// arr to obj ,such as { CN : "China", US : "USA" }
const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
// arr to obj ,such as { CN : "China", US : "USA" }
const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
acc[cur.key] = cur.display_name
return acc
}, {})
}, {})
treeTable.expandAll = {
treeTable.expandAll = {
type: Boolean,
default: false
}
}
export default {
export default {
name: 'CustomTreeTableDemo',
components: { treeTable, Pagination },
directives: { waves },
components: {treeTable, Pagination},
directives: {waves},
filters: {
statusFilter(status) {
const statusMap = {
... ... @@ -570,14 +592,14 @@ export default {
},
args: [null, null, 'timeLine'],
rules: {
maniWeight: [{ type: 'number', required: true, message: '重量必须为数字', trigger: 'blur' }],
maniPiece: [{ type: 'number', required: true, message: '件数必须为数字', trigger: 'blur' }],
desStation: [{ required: true, message: '运单目的地必须输入', trigger: 'blur' }],
oriStation: [{ required: true, message: '运单起始站必须数据', trigger: 'change' }],
flightDate: [{ type: 'date', required: true, message: '航班日期必须输入', trigger: 'change' }],
flight: [{ required: true, message: '航班号必须输入', trigger: 'blur' }],
custom: [{ required: true, message: '关区代码必须选择', trigger: 'change' }],
waybillNo: [{ required: true, message: '运单号必须输入', trigger: 'blur' }]
maniWeight: [{type: 'number', required: true, message: '重量必须为数字', trigger: 'blur'}],
maniPiece: [{type: 'number', required: true, message: '件数必须为数字', trigger: 'blur'}],
desStation: [{required: true, message: '运单目的地必须输入', trigger: 'blur'}],
oriStation: [{required: true, message: '运单起始站必须数据', trigger: 'change'}],
flightDate: [{type: 'date', required: true, message: '航班日期必须输入', trigger: 'change'}],
flight: [{required: true, message: '航班号必须输入', trigger: 'blur'}],
custom: [{required: true, message: '关区代码必须选择', trigger: 'change'}],
waybillNo: [{required: true, message: '运单号必须输入', trigger: 'blur'}]
}
}
},
... ... @@ -586,7 +608,7 @@ export default {
this.$message.info(row.event)
},
sortChange(data) {
const { prop, order } = data
const {prop, order} = data
if (prop === 'id') {
this.sortByID(order)
}
... ... @@ -687,39 +709,49 @@ export default {
}
}
}
}
}
</script>
<style>
.el-row {
margin-bottom: 20px;
&:last-child {
&
:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
.el-progress.is-warning .el-progress-bar__inner{
background-color:#E6A23C
.el-progress.is-warning .el-progress-bar__inner {
background-color: #E6A23C
}
.remark textarea{
.remark textarea {
width: 600px;
}
</style>
... ...
/**
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
* @Author: jianglei
* @Date: 2017-10-12 12:06:49
*/
'use strict'
import Vue from 'vue'
export default function treeToArray(data, expandAll, parent, level, item) {
const marLTemp = []
let tmp = []
Array.from(data).forEach(function(record) {
Array.from(data).forEach(function (record) {
if (record._expanded === undefined) {
Vue.set(record, '_expanded', expandAll)
}
... ...
... ... @@ -37,7 +37,7 @@
drawColumnChart() {
this.chartColumn = echarts.init(document.getElementById('chartColumn'));
this.chartColumn.setOption({
title: { text: 'Column Chart' },
title: {text: 'Column Chart'},
tooltip: {},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
... ... @@ -166,11 +166,11 @@
radius: '55%',
center: ['50%', '60%'],
data: [
{ value: 335, name: '直接访问' },
{ value: 310, name: '邮件营销' },
{ value: 234, name: '联盟广告' },
{ value: 135, name: '视频广告' },
{ value: 1548, name: '搜索引擎' }
{value: 335, name: '直接访问'},
{value: 310, name: '邮件营销'},
{value: 234, name: '联盟广告'},
{value: 135, name: '视频广告'},
{value: 1548, name: '搜索引擎'}
],
itemStyle: {
emphasis: {
... ... @@ -205,6 +205,7 @@
width: 100%;
float: left;
}
/*.chart div {
height: 400px;
float: left;
... ...
... ... @@ -20,7 +20,7 @@
style="width: 100%;margin-bottom: 20px;"
row-key="id"
border
v-loading = "listLoading"
v-loading="listLoading"
lazy
:load="load"
:row-class-name="tableRowClassName"
... ... @@ -41,7 +41,9 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!--<el-button type="primary" size="small" @click="handleUpdate(scope.row)">快速编辑</el-button>-->
<el-button v-if="scope.row.type=='3'" disabled type="primary" size="small" @click="handleAdd(scope.row)">新增</el-button>
<el-button v-if="scope.row.type=='3'" disabled type="primary" size="small"
@click="handleAdd(scope.row)">新增
</el-button>
<el-button v-else type="primary" size="small" @click="handleAdd(scope.row)">新增</el-button>
<el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDel(scope.row)">删除</el-button>
... ... @@ -49,11 +51,18 @@
<!--<el-button v-if="scope.row.type=='3'" type="primary" size="small" @click="pay(scope.row)">缴费</el-button>-->
<!--<el-button v-else disabled="" type="primary" size="small" @click="pay(scope.row)">缴费</el-button>-->
<el-button v-if="scope.row.type=='3'" type="primary" size="small" @click="waterMeter(scope.row)">水表实时信息</el-button>
<el-button v-else disabled="" type="primary" size="small" @click="waterMeter(scope.row)">水表实时信息</el-button>
<el-button v-if="scope.row.type=='3'" type="primary" size="small" @click="waterMeter(scope.row)">
水表实时信息
</el-button>
<el-button v-else disabled="" type="primary" size="small" @click="waterMeter(scope.row)">水表实时信息
</el-button>
<el-button v-if="scope.row.type=='3'" type="primary" size="small" @click="electicityInfo(scope.row)">电表实时信息</el-button>
<el-button v-else disabled="" type="primary" size="small" @click="electicityInfo(scope.row)">电表实时信息</el-button>
<el-button v-if="scope.row.type=='3'" type="primary" size="small"
@click="electicityInfo(scope.row)">电表实时信息
</el-button>
<el-button v-else disabled="" type="primary" size="small" @click="electicityInfo(scope.row)">
电表实时信息
</el-button>
<!--<el-button v-if="scope.row.type=='3'" type="primary" size="small" @click="electrixityMeterConfiguration(scope.row)">电表参数配置</el-button>-->
<!--<el-button v-else type="primary" disabled="" size="small" @click="electrixityMeterConfiguration(scope.row)">电表参数配置</el-button>-->
... ... @@ -67,7 +76,8 @@
<!--工具条-->
<el-col :span="24" class="toolbar">
<!--<el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button>-->
<el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;">
<el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5"
:total="total" style="float:right;">
</el-pagination>
</el-col>
... ... @@ -95,7 +105,9 @@
inactive-text="否"
inactive-value="0">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>告警阀值</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityAddForm.warningthreshold" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>告警阀值</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityAddForm.warningthreshold" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
</el-form-item>
<el-form-item label="透支使能" prop="overdraft">
<el-switch
... ... @@ -107,7 +119,9 @@
inactive-text="否"
inactive-value="0">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>可透支额度</span>&nbsp;&nbsp;<el-input v-model="electrixityAddForm.overdraftthreshold" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>可透支额度</span>&nbsp;&nbsp;<el-input
v-model="electrixityAddForm.overdraftthreshold" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
</el-form-item>
<el-form-item label="过负荷跳闸使能" prop="overdraft">
<el-switch
... ... @@ -119,10 +133,12 @@
inactive-text="否"
inactive-value="0">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityAddForm.power" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>KW</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityAddForm.power" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>KW</span>
<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率因数</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityAddForm.powerfactor" style="width: 100px;" auto-complete="off"></el-input>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率因数</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityAddForm.powerfactor" style="width: 100px;" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="免费电度使能" prop="overdraft">
<el-switch
... ... @@ -134,7 +150,9 @@
inactive-text="否"
inactive-value="0">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>免费电度</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityAddForm.freeelectricitylimit" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>度</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>免费电度</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityAddForm.freeelectricitylimit" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>度</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
... ... @@ -144,15 +162,12 @@
</el-dialog>
<!--电表参数配置修改-->
<el-dialog title="电表参数配置新增" :visible.sync="electrixityeditFormVisible" :close-on-click-modal="false">
<el-form :model="electrixityeditForm" label-width="110px" :rules="editFormRules" ref="electrixityeditForm">
<el-form-item label="电表编号" prop="companyName">
<el-input v-model="electrixityeditForm.eeId" auto-complete="off" style="width: 40%" disabled></el-input>
<el-input v-model="electrixityeditForm.eeId" auto-complete="off" style="width: 40%"
disabled></el-input>
</el-form-item>
<el-form-item label="水电预付费" prop="prepaid">
<el-switch
... ... @@ -176,7 +191,9 @@
inactive-text="否"
:inactive-value="false">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>告警阀值</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityeditForm.warningthreshold" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>告警阀值</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityeditForm.warningthreshold" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
</el-form-item>
<el-form-item label="透支使能" prop="overdraft">
<el-switch
... ... @@ -188,7 +205,9 @@
inactive-text="否"
:inactive-value="false">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>可透支额度</span>&nbsp;&nbsp;<el-input v-model="electrixityeditForm.overdraftthreshold" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>可透支额度</span>&nbsp;&nbsp;<el-input
v-model="electrixityeditForm.overdraftthreshold" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>元</span>
</el-form-item>
<el-form-item label="过负荷跳闸使能" prop="overdraft">
<el-switch
... ... @@ -200,10 +219,12 @@
inactive-text="否"
:inactive-value="false">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityeditForm.power" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>KW</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityeditForm.power" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>KW</span>
<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率因数</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityeditForm.powerfactor" style="width: 100px;" auto-complete="off"></el-input>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>功率因数</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityeditForm.powerfactor" style="width: 100px;" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="免费电度使能" prop="overdraft">
<el-switch
... ... @@ -215,7 +236,9 @@
inactive-text="否"
:inactive-value="false">
</el-switch>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>免费电度</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input v-model="electrixityeditForm.freeelectricitylimit" style="width: 100px;" auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>度</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>免费电度</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-input
v-model="electrixityeditForm.freeelectricitylimit" style="width: 100px;"
auto-complete="off"></el-input>&nbsp;&nbsp;&nbsp;<span>度</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
... ... @@ -228,22 +251,22 @@
<el-dialog title="水表实施信息" :visible.sync="waterMeterVisible" :close-on-click-modal="false">
<el-form :model="waterMaterForm" label-width="100px" ref="waterMaterForm">
<el-form-item label="水表编号" prop="wmId">
<el-input v-model="waterMaterForm.wmId" auto-complete="off" ></el-input>
<el-input v-model="waterMaterForm.wmId" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="累计充值量" prop="wmSacc">
<el-input v-model="waterMaterForm.wmSacc" auto-complete="off" ></el-input>
<el-input v-model="waterMaterForm.wmSacc" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="累计流量" prop="wmLacc">
<el-input v-model="waterMaterForm.wmLacc" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="上传时间" prop="wmRdtime">
<el-input v-model="waterMaterForm.wmRdtime" auto-complete="off" ></el-input>
<el-input v-model="waterMaterForm.wmRdtime" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="阀门状态" prop="wmFmstate">
<el-input v-model="waterMaterForm.wmFmstate" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="故障状态" prop="wmErrmessage">
<el-input v-model="waterMaterForm.wmErrmessage" auto-complete="off" ></el-input>
<el-input v-model="waterMaterForm.wmErrmessage" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="电压" prop="wmVoltage">
<el-input v-model="waterMaterForm.wmVoltage" auto-complete="off"></el-input>
... ... @@ -259,24 +282,24 @@
<!--电表实时信息-->
<el-dialog title="电表实施信息" :visible.sync="electrixityeditFormVisible" :close-on-click-modal="false">
<el-form v-loading = "electrixityLoading" :model="electricityForm" label-width="100px" ref="waterMaterForm">
<el-form v-loading="electrixityLoading" :model="electricityForm" label-width="100px" ref="waterMaterForm">
<el-form-item label="电表编号" prop="deviceId">
<el-input v-model="electricityForm.deviceId" auto-complete="off" ></el-input>
<el-input v-model="electricityForm.deviceId" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="总" prop="totalEnergy">
<el-input v-model="electricityForm.totalEnergy" auto-complete="off" ></el-input>
<el-input v-model="electricityForm.totalEnergy" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="尖" prop="tipEnergy">
<el-input v-model="electricityForm.tipEnergy" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="峰" prop="peakEnergy">
<el-input v-model="electricityForm.peakEnergy" auto-complete="off" ></el-input>
<el-input v-model="electricityForm.peakEnergy" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="谷" prop="valleyEnergy">
<el-input v-model="electricityForm.valleyEnergy" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="平" prop="flatEnergy">
<el-input v-model="electricityForm.flatEnergy" auto-complete="off" ></el-input>
<el-input v-model="electricityForm.flatEnergy" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="余额" prop="balance">
<el-input v-model="electricityForm.balance" auto-complete="off"></el-input>
... ... @@ -333,7 +356,6 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="editFormLocationVisible = false">取消</el-button>
... ... @@ -357,9 +379,9 @@
}
</style>
<script>
import { getList,add, remove, edit as editLocation} from '@/api/empt/location_api';
import {getList, add, remove, edit as editLocation} from '@/api/empt/location_api';
import {add as electicity, getEEModel, edit, electricityInfo} from '@/api/empt/electricityParams';
import {findRealTime, waterMeterAll } from '@/api/empt/waterMeter';
import {findRealTime, waterMeterAll} from '@/api/empt/waterMeter';
import moment from 'moment'
import parseTime from '@/utils'
import loginUserInfo from '@/api/base'
... ... @@ -373,8 +395,8 @@
processName: '',
parseTime: parseTime
},
wmId:'',
locationList:[],
wmId: '',
locationList: [],
total: 0,
pageNum: 1,
pageSize: 30,
... ... @@ -382,7 +404,7 @@
electrixityLoading: false,
waterNumber: undefined,
electricityNumber: undefined,
waterMeterList:[],
waterMeterList: [],
restaurants: [],
state4: '',
timeout: null,
... ... @@ -391,20 +413,20 @@
editFormVisible: false,
electrixityeditFormVisible: false,
// 水表实施信息
waterMeterVisible:false,
waterMeterVisible: false,
addFormLocationVisible: false,
editFormLocationVisible: false,
addLocationFormRules:{
addLocationFormRules: {
adrName: [
{required: true, message: '请输入公寓名称', trigger: 'blur'}
]
},
editLocationFormRules:{
editLocationFormRules: {
adrName: [
{required: false, message: '请输入公寓名称', trigger: 'blur'}
]
... ... @@ -413,7 +435,7 @@
editLoading: false,
editFormRules: {
roleName: [
{ required: true, message: '请输入岗位/角色名称', trigger: 'blur' }
{required: true, message: '请输入岗位/角色名称', trigger: 'blur'}
]
},
//编辑界面数据
... ... @@ -422,15 +444,15 @@
description: '',
roleName: '',
roleSign: 1,
departmentId:''
departmentId: ''
},
// 编辑电表参数配置
electrixityeditForm:{
id:'',
electrixityeditForm: {
id: '',
prepaid: '',
warningtrip: '',
warningthreshold: '',
overdraft:'',
overdraft: '',
overdraftthreshold: '',
waterload: '',
power: '',
... ... @@ -445,10 +467,10 @@
addLoading: false,
addFormRules: {
roleName: [
{ required: true, message: '请输入岗位/角色名称', trigger: 'blur' }
{required: true, message: '请输入岗位/角色名称', trigger: 'blur'}
],
description: [
{ required: true, message: '请输入岗位/角色描述', trigger: 'blur' }
{required: true, message: '请输入岗位/角色描述', trigger: 'blur'}
]
},
//电表参数配置、界面数据
... ... @@ -456,7 +478,7 @@
prepaid: '',
warningtrip: '',
warningthreshold: '',
overdraft:'',
overdraft: '',
overdraftthreshold: '',
waterload: '',
power: '',
... ... @@ -466,25 +488,25 @@
},
// 水表实施信息
waterMaterForm:{
wmId:'',
wmSacc:'',
wmLacc:'',
wmRdtime:'',
wmFmstate:'',
wmErrmessage:'',
wmVoltage:'',
wmSignalpower:''
waterMaterForm: {
wmId: '',
wmSacc: '',
wmLacc: '',
wmRdtime: '',
wmFmstate: '',
wmErrmessage: '',
wmVoltage: '',
wmSignalpower: ''
},
// 电表实施信息
electricityForm:{
deviceId:'',
totalEnergy:'',
tipEnergy:'',
peakEnergy:'',
valleyEnergy:'',
flatEnergy:'',
balance:''
electricityForm: {
deviceId: '',
totalEnergy: '',
tipEnergy: '',
peakEnergy: '',
valleyEnergy: '',
flatEnergy: '',
balance: ''
},
permForm: {
... ... @@ -495,22 +517,22 @@
permissions: []
},
// 公寓新增
addLocationForm:{
addLocationForm: {
adrName: '',
parent: '',
type:''
type: ''
},
// 公寓编辑
editLocationForm:{
editLocationForm: {
adrname: '',
parent: '',
type:'',
wmid:'',
eeid:''
type: '',
wmid: '',
eeid: ''
},
centerDialogVisible: false,
dialogData:{
process:{
dialogData: {
process: {
processname: ''
}
},
... ... @@ -539,7 +561,7 @@
}
}]
},
options:[{
options: [{
value: '1',
label: '测试公司',
children: [{
... ... @@ -576,25 +598,25 @@
}
},
methods: {
one: function(prepaid){
return prepaid?true:one='是'?false:one='否'
one: function (prepaid) {
return prepaid ? true : one = '是' ? false : one = '否'
},
//类型显示转换
formatType: function (row, column) {
let msg = '未知';
switch (row.type){
switch (row.type) {
case 0:
msg='公寓';
msg = '公寓';
break;
case 1:
msg='楼';
msg = '楼';
break;
case 2:
msg='层';
msg = '层';
break;
case 3:
msg='门牌';
msg = '门牌';
break;
}
return msg;
... ... @@ -614,7 +636,7 @@
processName: this.filters.processName,
parent: 0
};
this.listLoading= true;
this.listLoading = true;
getList(para).then((res) => {
let resData = res.data.data;
this.total = resData.total;
... ... @@ -623,11 +645,11 @@
//NProgress.done();
}).catch((error) => {
this.listLoading = false;
if(null!= error.response && error.response!==undefined){
let status= error.response.status;
if (null != error.response && error.response !== undefined) {
let status = error.response.status;
let msg = error.response.statusText;
alert(status+msg);
}else {
alert(status + msg);
} else {
alert(error);
}
... ... @@ -659,7 +681,7 @@
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { id: row.id };
let para = {id: row.id};
remove(para).then((res) => {
this.listLoading = false;
if (res.data.code == 200) {
... ... @@ -668,10 +690,10 @@
type: 'success'
});
this.getList();
}else {
} else {
this.$message({
message:'请删除该下面的楼,层,房间',
type:"error"
message: '请删除该下面的楼,层,房间',
type: "error"
})
}
}).catch((error) => {
... ... @@ -687,7 +709,7 @@
*/
electrixityMeterEdit: function (row) {
var ids = row.eeid;
let para = { eeId: ids };
let para = {eeId: ids};
// 查询电表参数配置表数据
this.electrixityeditFormVisible = true;
getEEModel(para).then((res) => {
... ... @@ -698,17 +720,17 @@
// location 新增
handleAdd: function (row) {
if (row == undefined){
if (row == undefined) {
this.addFormLocationVisible = true;
this.addLocationForm.parent = 0;
this.addLocationForm.type = 0;
}else {
} else {
this.addFormLocationVisible = true;
this.addLocationForm.parent = row.id;
if (row.type == 3){
if (row.type == 3) {
this.addLocationForm.type = row.type;
}else {
this.addLocationForm.type = row.type+1;
} else {
this.addLocationForm.type = row.type + 1;
}
}
... ... @@ -731,12 +753,12 @@
this.$refs['addLocationForm'].resetFields();
this.addFormLocationVisible = false;
this.getList();
}else if (res.data.code == 201){
} else if (res.data.code == 201) {
this.$message({
message:'该名称已存在',
type:"error"
message: '该名称已存在',
type: "error"
})
}else {
} else {
this.$message({
message: '网络异常',
type: 'error'
... ... @@ -758,9 +780,9 @@
this.waterNumber = undefined;
this.editFormLocationVisible = true;
this.editLocationForm = row;
if (row.type == 3){
this.waterNumber ='waterNum';
this.electricityNumber ='eeNum';
if (row.type == 3) {
this.waterNumber = 'waterNum';
this.electricityNumber = 'eeNum';
}
},
... ... @@ -773,7 +795,7 @@
this.addLoading = true;
let para = Object.assign({}, this.editLocationForm);
editLocation(para).then((res) => {
if(res.data.code == 200){
if (res.data.code == 200) {
//NProgress.done();
this.$message({
message: '提交成功',
... ... @@ -784,7 +806,7 @@
this.addLoading = false;
this.getList();
}else {
} else {
this.$message({
message: '编辑失败',
type: 'error'
... ... @@ -822,14 +844,14 @@
prepaid: '',
warningtrip: '',
warningthreshold: '',
overdraft:'',
overdraft: '',
overdraftthreshold: '',
waterload: '',
water: '',
free: '',
freeWater: '',
eeId: row.eeid,
reamke2:row.adrname
reamke2: row.adrname
}
},
... ... @@ -837,9 +859,9 @@
// 水表实施信息
waterMeter: function (row) {
// let loadingInstance1 = Loading.service({ fullscreen: true });
this.waterMeterVisible=true;
this.waterMeterVisible = true;
var wmId = row.wmid;
let para = { wmId: wmId };
let para = {wmId: wmId};
findRealTime(para).then((res) => {
this.waterMaterForm = res.data;
... ... @@ -849,11 +871,11 @@
},
// 电表实施信息查询
electicityInfo: function(row){
this.electrixityeditFormVisible=true;
this.electrixityLoading=true;
electicityInfo: function (row) {
this.electrixityeditFormVisible = true;
this.electrixityLoading = true;
var eeId = row.eeid;
let para = { eeId: eeId};
let para = {eeId: eeId};
electricityInfo(para).then((res) => {
this.electricityForm = res.data;
this.electrixityLoading = false;
... ... @@ -870,17 +892,17 @@
let para = Object.assign({}, this.electrixityAddForm);
electicity(para).then((res) => {
this.addLoading = false;
if (res.status ===200) {
if (res.status === 200) {
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['electrixityAddForm'].resetFields();
this.electrixityAddFormVisible = false;
}else if (res.status===201){
} else if (res.status === 201) {
this.$message({
message:'不能重复提交',
type:"error"
message: '不能重复提交',
type: "error"
})
}
}).catch(error => alert(error));
... ... @@ -896,7 +918,7 @@
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.editLoading = true;
//NProgress.start();
let para= Object.assign({}, this.electrixityeditForm);
let para = Object.assign({}, this.electrixityeditForm);
para.prepaid = this.formatperpaid(para.prepaid);
para.warningtrip = this.formatperpaid(para.warningtrip);
para.overdraft = this.formatperpaid(para.overdraft);
... ... @@ -927,7 +949,7 @@
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { ids: ids };
let para = {ids: ids};
batchRemove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
... ... @@ -946,7 +968,7 @@
return 'building';
} else if (type === 2) {
return 'floor';
} else if (type === 3){
} else if (type === 3) {
return 'house';
}
return '';
... ... @@ -956,8 +978,8 @@
},
//缴水电费订单跳转
pay(row){
this.$router.push({name:'缴水电费订单',params:{row,Edistatus:'create'}});
pay(row) {
this.$router.push({name: '缴水电费订单', params: {row, Edistatus: 'create'}});
},
},
... ...
<template>
<el-container>
<el-main >
<el-main>
<el-row type="flex" class="row-bg" justify="center">
<el-col :span="20">
<el-form :model="OrderForm" :rules="rules" ref="OrderForm" label-width="180px" :label-position="labelPosition">
<el-form :model="OrderForm" :rules="rules" ref="OrderForm" label-width="180px"
:label-position="labelPosition">
<el-col :span="24">
<el-form-item label="充值类型" prop="payType">
<el-col :span="24">
<el-select v-if="Edistatus=='create'" v-model="OrderForm.payType" @change="selectTrigger(OrderForm.payType)" placeholder="请选择充值类型" style="width:100%">
<el-select v-if="Edistatus=='create'" v-model="OrderForm.payType"
@change="selectTrigger(OrderForm.payType)" placeholder="请选择充值类型"
style="width:100%">
<el-option v-for="item in payTypes" :key="item.value" :label="item.label"
:value="item.value" ></el-option>
:value="item.value"></el-option>
</el-select>
<el-select v-else v-model="OrderForm.payType" style="width:100%">
<el-option disabled="" v-for="item in payTypes" :key="item.value" :label="item.label"
:value="item.value" ></el-option>
<el-option disabled="" v-for="item in payTypes" :key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</el-col>
</el-form-item>
... ... @@ -35,27 +39,36 @@
</el-col>
<el-col :span="24">
<el-form-item label="充值日期">
<el-date-picker type="date" placeholder="" v-model="OrderForm.payTime" disabled="" style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<el-date-picker type="date" placeholder="" v-model="OrderForm.payTime" disabled=""
style="width: 100%;"
value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item v-if="Edistatus=='create'" label="充值金额" prop="payFees">
<el-input type="number" oninput ="value=value.replace(/[^0-9.]/g,'')" v-model.number="OrderForm.payFees"></el-input>
<el-input type="number" oninput="value=value.replace(/[^0-9.]/g,'')"
v-model.number="OrderForm.payFees"></el-input>
</el-form-item>
<el-form-item v-else label="充值金额" prop="payFees">
<el-input disabled="" type="number" oninput ="value=value.replace(/[^0-9]/g,'')" v-model.number="OrderForm.payFees"></el-input>
<el-input disabled="" type="number" oninput="value=value.replace(/[^0-9]/g,'')"
v-model.number="OrderForm.payFees"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="支付方式">
<el-radio-group v-model="OrderForm.payFessType">
<el-radio v-for="item in payFessTypes" :key="item.value" :label="item.value" border>{{item.label}}</el-radio>
<el-radio v-for="item in payFessTypes" :key="item.value" :label="item.value" border>
{{item.label}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item >
<el-button type="primary" style="width:100%" @click="Edistatus==='create'?createData('OrderForm'):updateData('OrderForm')">确认支付</el-button>
<el-form-item>
<el-button type="primary" style="width:100%"
@click="Edistatus==='create'?createData('OrderForm'):updateData('OrderForm')">
确认支付
</el-button>
</el-form-item>
</el-col>
</el-form>
... ... @@ -69,29 +82,30 @@
</style>
<script>
import loginUserInfo from '@/api/base'
export default {
data() {
return{
OrderForm:{
payUserId:'',
payUserName:'',
payTime:new Date(),
payLocationId:'',
payLocationName:'3#01-101',
payTypeAddress:'',
payFees:'',
payType:'',
payFessType:'1',
orderNumber:'',
payStatus:'',
return {
OrderForm: {
payUserId: '',
payUserName: '',
payTime: new Date(),
payLocationId: '',
payLocationName: '3#01-101',
payTypeAddress: '',
payFees: '',
payType: '',
payFessType: '1',
orderNumber: '',
payStatus: '',
},
rules:{
rules: {
payType: [
{ required: true, message: '请选择充值类型', trigger: 'change' }
{required: true, message: '请选择充值类型', trigger: 'change'}
],
payFees:[
{ required: true, message: '充值金额不能为空'},
{ type: 'number', message: '金额必须为数字值'}
payFees: [
{required: true, message: '充值金额不能为空'},
{type: 'number', message: '金额必须为数字值'}
]
},
payTypes: [
... ... @@ -102,7 +116,7 @@
value: '1',
label: '电费'
}],
payFessTypes:[
payFessTypes: [
{
value: '0',
label: '微 信'
... ... @@ -110,52 +124,52 @@
value: '1',
label: '支付宝'
}],
labelPosition:'left',
Edistatus:'',
shuibiao:'',
dianbiao:''
labelPosition: 'left',
Edistatus: '',
shuibiao: '',
dianbiao: ''
}
},
methods:{
methods: {
getdefaultData(){
getdefaultData() {
if(this.$route.params.Edistatus=='create'){
this.OrderForm.payUserId=loginUserInfo.userId;
this.OrderForm.payUserName=loginUserInfo.username;
this.OrderForm.payLocationId=this.$route.params.row.id;
this.OrderForm.payLocationName=this.$route.params.row.adrname;
this.Edistatus=this.$route.params.Edistatus;
this.shuibiao='1111111';
this.dianbiao='222222';
if (this.$route.params.Edistatus == 'create') {
this.OrderForm.payUserId = loginUserInfo.userId;
this.OrderForm.payUserName = loginUserInfo.username;
this.OrderForm.payLocationId = this.$route.params.row.id;
this.OrderForm.payLocationName = this.$route.params.row.adrname;
this.Edistatus = this.$route.params.Edistatus;
this.shuibiao = '1111111';
this.dianbiao = '222222';
}else{
this.Edistatus='update';
this.OrderForm.payType='0'
this.OrderForm.payTypeAddress='333333';
} else {
this.Edistatus = 'update';
this.OrderForm.payType = '0'
this.OrderForm.payTypeAddress = '333333';
}
},
selectTrigger(val){
if(val=='0'){
this.OrderForm.payTypeAddress=this.shuibiao
}else{
this.OrderForm.payTypeAddress=this.dianbiao;
selectTrigger(val) {
if (val == '0') {
this.OrderForm.payTypeAddress = this.shuibiao
} else {
this.OrderForm.payTypeAddress = this.dianbiao;
}
},
createData(formName){
createData(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert("新增充值"+this.OrderForm.payType+"支付方式为:"+this.OrderForm.payFessType+"充值金额:"+this.OrderForm.payFees);
alert("新增充值" + this.OrderForm.payType + "支付方式为:" + this.OrderForm.payFessType + "充值金额:" + this.OrderForm.payFees);
} else {
console.log('error submit!!');
return false;
}
});
},
updateData(formName){
updateData(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert("完成充值"+this.OrderForm.payType+"支付方式为:"+this.OrderForm.payFessType+"充值金额:"+this.OrderForm.payFees);
alert("完成充值" + this.OrderForm.payType + "支付方式为:" + this.OrderForm.payFessType + "充值金额:" + this.OrderForm.payFees);
} else {
console.log('error submit!!');
return false;
... ... @@ -163,7 +177,7 @@
});
}
},
mounted(){
mounted() {
this.getdefaultData();
}
}
... ...
... ... @@ -71,34 +71,48 @@
<el-table-column
fixed="right"
label="操作">
<template slot-scope="scope" align="center" class-name="small-padding fixed-width" >
<template slot-scope="scope" align="center" class-name="small-padding fixed-width">
<!--<el-button @click="Pay(scope.row)" type="primary" size="mini">去完成</el-button>-->
<el-button type="primary" @click="payDelete(scope.$index,scope.row)" size="small">移除订单</el-button>
<el-button type="primary" v-if="username == 'admin'" @click="payDelete(scope.$index,scope.row)"
size="small">移除订单
</el-button>
<el-button type="primary" v-else="" disabled @click="payDelete(scope.$index,scope.row)"
size="small">移除订单
</el-button>
<el-button type="primary" v-if="username == 'admin'" @click="defeatedOrders(scope.$index,scope.row)"
size="small">处理订单充值
</el-button>
<el-button type="primary" v-else="" style="display: none" @click="defeatedOrders(scope.$index,scope.row)"
size="small">处理订单充值
</el-button>
</template>
</el-table-column>
</el-table>
<!--工具条-->
<el-col :span="24" class="toolbar">
<!--<el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button>-->
<el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;">
<el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange"
:page-size="this.pageSize" :total="total" style="float:right;">
</el-pagination>
</el-col>
</section>
</template>
<script>
import { getOrder,addOrder,ediOrder,remove} from '../../api/empt/PayOrder';
import {getOrder, addOrder, ediOrder, remove, defeatedOrder} from '../../api/empt/PayOrder';
import ElButton from "../../../node_modules/element-ui/packages/button/src/button.vue";
import moment from 'moment'
export default {
components: {ElButton},
data() {
return {
filters: {
orderNumber: '',
payTime:''
payTime: ''
},
username: JSON.parse(sessionStorage.getItem('user')).username,
total: 0,
pageNum: 1,
pageSize: 30,
... ... @@ -128,10 +142,11 @@
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]},
}]
},
formInline: {
user: '',
date1:'',
date1: '',
},
tableData: [],
... ... @@ -146,13 +161,13 @@
this.pageNum = val;
this.QueryOrder();
},
QueryOrder(){
QueryOrder() {
// 清空后为null 问题
var payTimes = '';
if (this.filters.payTime!==null){
payTimes = this.filters.payTime[0]+','+this.filters.payTime[1]
if (this.filters.payTime !== null) {
payTimes = this.filters.payTime[0] + ',' + this.filters.payTime[1]
}
if (this.$route.params.orderNumber != undefined){
if (this.$route.params.orderNumber != undefined) {
this.filters.orderNumber = this.$route.params.orderNumber;
}
... ... @@ -161,21 +176,22 @@
pageSize: this.pageSize,
orderNumber: this.filters.orderNumber,
payTime: payTimes,
username: this.username
};
this.listLoading = true;
getOrder(params).then(res=>{
getOrder(params).then(res => {
let resData = res.data;
this.total = resData.total;
this.tableData = resData.list;
this.listLoading = false;
}).catch((error) => {
if(null!= error.response && error.response!==undefined){
let status= error.response.status;
if (null != error.response && error.response !== undefined) {
let status = error.response.status;
let msg = error.response.statusText;
this.listLoading = false;
alert(status+msg);
}else {
alert(status + msg);
} else {
this.listLoading = false;
alert(error);
}
... ... @@ -188,7 +204,7 @@
type: 'warning'
}).then(() => {
this.listLoading = true;
let para = { id: row.id };
let para = {id: row.id};
remove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
... ... @@ -204,11 +220,42 @@
}).catch();
},
dateForma:function(row,column){
// 处理订单充值
defeatedOrders: function(index, row){
this.$confirm('确定充值?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
defeatedOrder(row).then((res) => {
this.listLoading = false;
if (res.data.code == 200){
this.$message({
message: '充值成功',
type: 'success'
});
}else {
this.$message({
message: '充值失败',
type: 'error'
});
}
this.QueryOrder();
}).catch((error) => {
this.listLoading = false;
alert(error);
});
}).catch();
},
dateForma: function (row, column) {
var date = row[column.property];
if(date == undefined){return ''};
if (date == undefined) {
return ''
}
;
return moment(date).format("YYYY-MM-DD HH:mm:ss")
... ...