Commit ceb3f59f authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 041575cf 2bb8fdba
#生产环境
NODE_ENV = "production"
# 生产环境配置
NODE_ENV = production
VUE_APP_API_BASE_URL=/basics_api
VUE_APP_API_portal_URL=/portal_home
#测试环境
#宜宾环境
NODE_ENV = "production"
VUE_APP_API_BASE_URL=http://192.168.2.144:11078
\ No newline at end of file
VUE_APP_API_BASE_URL=/basics_api
VUE_APP_API_portal_URL=/portal_home
\ No newline at end of file
......@@ -25,10 +25,6 @@
</activation>
<properties>
<profiles.active>develop</profiles.active>
<profiles.server.ip>127.0.0.1</profiles.server.ip>
<profiles.server.port>17211</profiles.server.port>
<profiles.nginx.port>11071</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/zwfw</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host>
......@@ -49,10 +45,6 @@
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<profiles.server.ip>192.168.0.98</profiles.server.ip>
<profiles.server.port>17211</profiles.server.port>
<profiles.nginx.port>11071</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/base</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>192.168.0.98</profiles.rabbitmq.host>
......@@ -73,10 +65,6 @@
<id>product</id>
<properties>
<profiles.active>test</profiles.active>
<profiles.server.ip>192.168.0.251</profiles.server.ip>
<profiles.server.port>17211</profiles.server.port>
<profiles.nginx.port>11071</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/base</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>192.168.0.251</profiles.rabbitmq.host>
......@@ -98,13 +86,9 @@
<id>yibin</id>
<properties>
<profiles.active>yibin</profiles.active>
<profiles.server.ip>192.168.2.144</profiles.server.ip>
<profiles.server.port>17211</profiles.server.port>
<profiles.nginx.port>11071</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/base</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>192.168.2.144</profiles.rabbitmq.host>
<profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host>
<profiles.rabbitmq.port>5672</profiles.rabbitmq.port>
<profiles.rabbitmq.username>taxi_mq</profiles.rabbitmq.username>
<profiles.rabbitmq.password>admin@2020</profiles.rabbitmq.password>
......
......@@ -10,35 +10,19 @@ LOCK_FILE="/tmp/deploy.lock"
# 时间变量
CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H:%M:%S")
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
IP="@profiles.server.ip@"
PORT="@profiles.server.port@"
GATEWAY_PORT="@profiles.server.gatewayport@"
SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
SERVICE_PATH="/usr/lib/systemd/system"
JAVA_HOME="/usr/local/java/jdk1.8"
SERVICE_PATH="/usr/lib/systemd/system"
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
NGINX_CONF_PATH="/etc/nginx/conf.d/"
NGINX_PORT="@profiles.nginx.port@"
NGINX_SERVER_PATH="@profiles.server.path@"
PROJECT_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}"
PROJECT_UI_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}-ui/dist"
PROJECT_FILENAME="${PROJECT_NAME}.tar.gz"
PROJECT_UI_FILENAME="${PROJECT_NAME}-ui.tar.gz"
PROJECT_SERVICE="${SERVICE_PATH}/${PROJECT_NAME}.service"
PROJECT_NGINX_CONF="${NGINX_CONF_PATH}/${PROJECT_NAME}.conf"
#加锁
shell_lock() {
touch ${LOCK_FILE}
}
#删除锁
shell_unlock() {
rm -f ${LOCK_FILE}
}
#写日志
writelog() {
LOGINFO=$1
......@@ -54,9 +38,6 @@ clear_deploy() {
rm -rf ${SERVICE}
#清理执行文件目录
rm -rf ${EXECPATH}
#清理nginx服务配置文件
rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf
mkdir -p ${EXECPATH}
}
#清理ui
......@@ -86,62 +67,14 @@ build_service() {
writelog "${PROJECT_NAME}服务创建完成!"
}
build_nginx() {
echo "server{
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable \"MSIE [1-6]\.\";
listen ${NGINX_PORT};
#server_name localhost;
location / {
root ${PROJECT_UI_EXECPATH};
index index.html index.htm;
}
location ${NGINX_SERVER_PATH}/ {
proxy_pass http://${IP}:${GATEWAY_PORT};
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
location /doc/ {
root ${PROJECT_EXECPATH};
index api.html;
}
location /file/fileupload/ {
alias /mortals/app/data/file/fileupload/;
autoindex on;
autoindex_exact_size off;
}
location /file/uploadfile/ {
alias /mortals/app/data/file/uploadfile/;
autoindex on;
autoindex_exact_size off;
}
location /file/preview/ {
alias /mortals/app/data/file/preview/;
autoindex on;
autoindex_exact_size off;
}
}
" >${PROJECT_NGINX_CONF}
}
#启动服务与nginx
start_service_and_nginx() {
writelog "${PROJECT_NAME}服务启动..."
start_service() {
systemctl enable ${PROJECT_NAME}
systemctl daemon-reload
writelog "${PROJECT_NAME}服务启动..."
systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME}
project_status=$(systemctl status "${PROJECT_NAME}"|grep Active |awk '{print $2}')
nginx -t
nginx -s reload
jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}')
writelog "${PROJECT_NAME}服务启动,PID is ${jcpid} ,status:${project_status}"
}
......@@ -150,11 +83,9 @@ project_deploy() {
writelog "${PROJECT_NAME}_deploy"
clear_deploy ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
writelog "${PROJECT_NAME}_clear_finish"
tar -zvxf ./${PROJECT_FILENAME} -C ${PUBLISH_PATH}
build_service ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
build_nginx
start_service_and_nginx
build_service
start_service
writelog "${PROJECT_NAME}_deploy_finish"
}
......
......@@ -9,7 +9,13 @@
count( 1 )
FROM
mortals_sys_matter AS a
LEFT JOIN ( SELECT matterCode FROM mortals_sys_site_matter WHERE siteId = #{condition.siteId} ) AS b ON a.matterNo = b.matterCode
LEFT JOIN ( SELECT matterCode FROM mortals_sys_site_matter
<trim suffixOverrides="where" suffix="">
<if test="condition.siteId!=null and condition.siteId!=''">
a.siteId = #{condition.siteId,jdbcType=VARCHAR}
</if>
</trim>
)AS b ON a.matterNo = b.matterCode
<trim suffixOverrides="where" suffix="">
where b.matterCode IS NULL and
<trim prefixOverrides="and" prefix="">
......@@ -32,7 +38,13 @@
<include refid="_columns"/>
FROM
mortals_sys_matter AS a
LEFT JOIN ( SELECT matterCode FROM mortals_sys_site_matter WHERE siteId = #{condition.siteId} ) AS b ON a.matterNo = b.matterCode
LEFT JOIN ( SELECT matterCode FROM mortals_sys_site_matter
<trim suffixOverrides="where" suffix="">
<if test="condition.siteId!=null and condition.siteId!=''">
a.siteId = #{condition.siteId,jdbcType=VARCHAR}
</if>
</trim>
) AS b ON a.matterNo = b.matterCode
<trim suffixOverrides="where" suffix="">
where b.matterCode IS NULL and
<trim prefixOverrides="and" prefix="">
......
VUE_APP_API_BASE_URL=http://192.168.0.98:11072/zwfw
VUE_APP_API_BASE_URL=http://192.168.0.98:11072
# 开发环境配置
NODE_ENV = development
VUE_APP_API_BASE_URL=http://192.168.0.98:11078/zwfw
VUE_APP_API_BASE_URL=http://192.168.0.98:11078
# 生产环境配置
NODE_ENV = production
VUE_APP_API_BASE_URL=http://192.168.0.98:11078/zwfw
VUE_APP_API_BASE_URL=/basics_api
# 生产环境配置
NODE_ENV = test
VUE_APP_API_BASE_URL=http://192.168.0.98:11078/zwfw
VUE_APP_API_BASE_URL=/basics_api
#宜宾环境
NODE_ENV = "production"
VUE_APP_API_BASE_URL=http://192.168.2.144:11078
\ No newline at end of file
VUE_APP_API_BASE_URL=/basics_api
\ No newline at end of file
......@@ -9,6 +9,26 @@
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<style>
*,
:after,
:before {
-webkit-box-sizing: border-box !important;
-moz-box-sizing: border-box !important;
-o-box-sizing: border-box !important;
-ms-box-sizing: border-box !important;
box-sizing: border-box !important;
}
html,
body {
font-size: 16px;
font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", "微软雅黑",
sans-serif !important;
width: 100%;
height: 100%;
}
</style>
</head>
<body style="font-size: 16px;">
......
<template>
<div id="app">
<div class="app">
<a-spin v-bind="loadingProps">
<a-config-provider :locale="zh_CN">
<router-view />
......@@ -49,29 +49,17 @@ export default {
},
};
</script>
<style lang="less">
*,
:after,
:before {
-webkit-box-sizing: border-box !important;
-moz-box-sizing: border-box !important;
-o-box-sizing: border-box !important;
-ms-box-sizing: border-box !important;
box-sizing: border-box !important;
}
html,
body,
#app {
font-size: 16px;
font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", "微软雅黑",
sans-serif !important;
<style lang="less" scoped>
.app {
width: 100% !important;
min-width: 1440px !important;
height: 100% !important;
// width: 100% !important;
height: 100%;
}
.ant-spin-nested-loading,
.ant-spin-container {
height: 100% !important;
/deep/.ant-spin-container {
width: 100%;
min-height: 100% !important;
display: flex;
// flex-direction: column;
}
</style>
import http from '../request/http'
import http from "../request/http";
// 1.9.1. 查询API服务列表
export function serviceApiList(params) {
return http.post("system/service/api/list", params)
return http.post("/zwfw/system/service/api/list", params);
}
// 1.9.2. 查看API服务
export function serviceApiInfo(params) {
return http.get("system/service/api/info", params)
return http.get("/zwfw/system/service/api/info", params);
}
// 1.9.3. 保存更新API服务
export function serviceApiSave(params) {
return http.post("system/service/api/save", params)
return http.post("/zwfw/system/service/api/save", params);
}
// 1.9.4. 删除API服务
export function serviceApiDelete(params) {
return http.get("system/service/api/delete", params)
return http.get("/zwfw/system/service/api/delete", params);
}
// const BASE_URL = process.env.VUE_APP_API_BASE_URL
module.exports = {
fileCommonupload: `/file/commonupload`, //1.2.4. 上传附件
}
fileCommonupload: `/zwfw/file/commonupload`, //1.2.4. 上传附件
};
import http from '../request/http'
import http from "../request/http";
// 1.10.1. 查询应用服务列表
export function serviceList(params) {
return http.post("system/service/list", params)
return http.post("/zwfwsystem/service/list", params);
}
// 1.10.2. 查看应用服务
export function serviceInfo(params) {
return http.get("system/service/info", params)
return http.get("/zwfwsystem/service/info", params);
}
// 1.10.3. 保存更新应用服务
export function serviceSave(params) {
return http.post("system/service/save", params)
return http.post("/zwfwsystem/service/save", params);
}
// 1.10.4. 删除应用服务
export function serviceDelete(params) {
return http.get("system/service/delete", params)
return http.get("/zwfwsystem/service/delete", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.14.1. 查询区域列表
export function areaList(params) {
return http.post("area/list", params)
return http.post("/zwfw/area/list", params);
}
// 1.14.2. 查看区域
export function areaInfo(params) {
return http.get("area/info", params)
return http.get("/zwfw/area/info", params);
}
// 1.14.3. 查看区域子信息
export function getListByParentId(params) {
return http.get("area/getListByParentId", params)
return http.get("/zwfw/area/getListByParentId", params);
}
// 1.14.4. 获取所有区域信息
export function areaTreeselect(params) {
return http.post("area/treeselect", params)
return http.post("/zwfw/area/treeselect", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.4.1. 查询角色信息列表
export function roleList(params) {
return http.post("role/list", params)
return http.post("/zwfw/role/list", params);
}
// 1.4.2. 查看角色信息
export function roleInfo(params) {
return http.get("role/info", params)
return http.get("/zwfw/role/info", params);
}
// 1.4.3. 保存更新角色信息
export function roleSave(params) {
return http.post("role/save", params)
return http.post("/zwfw/role/save", params);
}
// 1.4.4. 删除角色信息
export function roleDelete(params) {
return http.get("role/delete", params)
return http.get("/zwfw/role/delete", params);
}
// 1.6.1. 分配菜单到角色
export function assignMenuToRole(params) {
return http.post("role/auth/assignMenuToRole", params)
return http.post("/zwfw/role/auth/assignMenuToRole", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.15.1. 获取站点下的数据管理列表
export function censusListInterface(params) {
return http.post("site/model/census/list", params)
return http.post("/zwfw/site/model/census/list", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.7.1. 查询菜单信息业务列表
export function menuList(params) {
return http.post("menu/list", params)
return http.post("/zwfw/menu/list", params);
}
// 1.7.2. 查看菜单信息业务
export function menuInfo(params) {
return http.get("menu/info", params)
return http.get("/zwfw/menu/info", params);
}
// 1.7.3. 保存更新菜单信息业务
export function menuSave(params) {
return http.post("menu/save", params)
return http.post("/zwfw/menu/save", params);
}
// 1.7.4. 删除菜单信息业务
export function menuDelete(params) {
return http.get("menu/delete", params)
return http.get("/zwfw/menu/delete", params);
}
// 1.7.5. 查询所有可用菜单
export function menuFindAll(params) {
return http.post("menu/findAll", params)
return http.post("/zwfw/menu/findAll", params);
}
// 1.3.8 查询菜单权限列表
export function menuFindAllTree(params) {
return http.post("menu/list/tree", params)
return http.post("/zwfw/menu/list/tree", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.16.1. 查询站点编排列表
export function appsListInterface(params) {
return http.post("site/model/list", params)
return http.post("/zwfw/site/model/list", params);
}
......@@ -2,21 +2,21 @@ import http from "../request/http";
// 1.2.1. 登录
export function LoginInterface(params) {
return http.post("login/login", params);
return http.post("/zwfw/login/login", params);
}
// 1.2.2. 首页
export function loginIndex(params) {
return http.post("login/index", params);
return http.post("/zwfw/login/index", params);
}
// 1.2.3. 登出
export function LogoutInterface(params) {
return http.post("login/logout", params);
return http.post("/zwfw/login/logout", params);
}
// 1.2.4. 用户修改密码
export function changePassword(params) {
return http.post("user/change/password", params);
return http.post("/zwfw/user/change/password", params);
}
// 管理员修改密码
export function editPassword(params) {
return http.post("user/reset/password", params);
return http.post("/zwfw/user/reset/password", params);
}
import http from '../request/http'
import http from "../request/http";
// 1.3.1. 查询用户信息业务列表
export function userList(params) {
return http.post("user/list", params)
return http.post("/zwfw/user/list", params);
}
// 1.3.2. 查看用户信息业务
export function userInfo(params) {
return http.get("user/info", params)
return http.get("/zwfw/user/info", params);
}
// 1.3.3. 保存更新用户信息业务
export function userSave(params) {
return http.post("user/save", params)
return http.post("/zwfw/user/save", params);
}
// 1.3.4. 删除用户信息业务
export function userDelete(params) {
return http.get("user/delete", params)
return http.get("/zwfw/user/delete", params);
}
// 1.3.5. 用户站点授权
export function userSiteAuth(params) {
return http.post("user/siteAuth", params)
return http.post("/zwfw/user/siteAuth", params);
}
......@@ -165,12 +165,12 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-upload-select-picture-card) i {
/deep/.ant-upload-select-picture-card i {
font-size: 32px;
color: #999;
}
:deep(.ant-upload-select-picture-card) .ant-upload-text {
/deep/.ant-upload-select-picture-card .ant-upload-text {
margin-top: 8px;
color: #666;
}
......
import Vue from "vue";
import router from "@/router"
import axios from 'axios'
import { message } from 'ant-design-vue';
import Storage from "@/utils/js/Storage"
import router from "@/router";
import axios from "axios";
import { message } from "ant-design-vue";
import Storage from "@/utils/js/Storage";
const service = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
// timeout: 10000
})
service.interceptors.request.use(config => {
});
service.interceptors.request.use(
(config) => {
Vue.prototype.$setLoading({
spinning: true,
tip: "请稍等",
});
config.data = JSON.stringify(config.data);
config.headers = {
'Content-Type': 'application/json;charset=utf-8'
}
const Authorization = JSON.parse(localStorage.getItem('Authorization'));
"Content-Type": "application/json;charset=utf-8",
};
const Authorization = JSON.parse(localStorage.getItem("Authorization"));
if (Authorization) {
config.headers.Authorization = Authorization;
}
return config
}, error => {
Promise.reject(error)
})
service.interceptors.response.use(response => {
return config;
},
(error) => {
Promise.reject(error);
}
);
service.interceptors.response.use(
(response) => {
Vue.prototype.$setLoading(false);
if (response.data.code !== undefined && response.data.msg !== undefined) {
let { code, msg } = response.data
let { code, msg } = response.data;
if (code === -1) {
message.error({
content: msg,
maxCount: 1,
})
});
} else if (code === 401) {
message.error({
message: msg,
maxCount: 1,
})
Storage.remove(2, "userInfo")
Storage.remove(2, "siteId")
Storage.remove(2, "Authorization")
router.push('/')
});
Storage.clear(2);
// Storage.remove(2, "siteId");
// Storage.remove(2, "Authorization");
router.push("/");
}
}
return response.data
}, error => {
return response.data;
},
(error) => {
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = '错误请求'
break;
case 401:
error.message = '未授权,请重新登录'
error.message = "错误请求";
break;
case 403:
error.message = '拒绝访问'
error.message = "拒绝访问";
break;
case 404:
error.message = '请求错误,未找到该资源'
error.message = "请求错误,未找到该资源";
break;
case 405:
error.message = '请求方法未允许'
error.message = "请求方法未允许";
break;
case 408:
error.message = '请求超时'
error.message = "请求超时";
break;
case 500:
error.message = '服务器端出错'
error.message = "服务器端出错";
break;
case 501:
error.message = '网络未实现'
error.message = "网络未实现";
break;
case 502:
error.message = '网络错误'
error.message = "网络错误";
break;
case 503:
error.message = '服务不可用'
error.message = "服务不可用";
break;
case 504:
error.message = '网络超时'
error.message = "网络超时";
break;
case 505:
error.message = 'http版本不支持该请求'
error.message = "http版本不支持该请求";
break;
default:
error.message = `连接错误${error.response.status}`
error.message = `连接错误${error.response.status}`;
}
message.error(error.message);
} else {
if (JSON.stringify(error).includes('timeout')) {
Vue.prototype.$message.error('服务器响应超时,请刷新当前页');
if (JSON.stringify(error).includes("timeout")) {
Vue.prototype.$message.error("服务器响应超时,请刷新当前页");
}
error.message = '连接服务器失败'
error.message = "连接服务器失败";
}
Vue.prototype.$setLoading(false);
message.error(error.message);
Vue.prototype.$setLoading(false);
return Promise.resolve(error.response)
})
export default service
return Promise.resolve(error.response);
}
);
export default service;
......@@ -16,12 +16,19 @@
>
<div class="flip">
<div class="mod_min">
<img :src="api + item.imgPath" alt />
<img
:src="
item.imgPath
? api + item.imgPath
: require('../../assets/images/qyhx.png')
"
alt
/>
<div class="mod_cont">
<p>{{ item.name }}</p>
<span>
<p class="name">{{ item.name }}</p>
<p class="remark">
{{ item.remark }}
</span>
</p>
</div>
</div>
</div>
......@@ -38,9 +45,7 @@ export default {
mixins: [menu],
data() {
return {
api: process.env.VUE_APP_API_BASE_URL.includes("zwfw")
? process.env.VUE_APP_API_BASE_URL.replace("zwfw", "")
: process.env.VUE_APP_API_BASE_URL + "/",
api: process.env.VUE_APP_API_BASE_URL + "/",
menuPermission: [],
};
},
......@@ -55,24 +60,6 @@ export default {
// 跳转
handleJump(url) {
this.$router.push(url);
// let { menuList } = Storage.get(2, "userInfo");
// let actuary = menuList.filter((v) => v.name === "数据精算");
// if (actuary.length) {
// this.menuPermission = actuary
// .map((v) => {
// if (v.childList.length) {
// return v.childList;
// }
// })
// .flat()
// .map((v) => v.name);
// }
// let isPermission = this.menuPermission.includes(val);
// if (isPermission) {
// this.$router.push(url);
// } else {
// this.$message.warning("暂无权限");
// }
},
// 获取子菜单权限
getChildrenPermission() {
......@@ -88,7 +75,6 @@ export default {
}
})
.flat();
console.log(this.menuPermission);
}
},
},
......@@ -132,15 +118,13 @@ export default {
flex-wrap: wrap;
.mod_max {
width: 20%;
width: 344px;
height: 200px;
padding: 18px;
cursor: pointer;
&:hover > .flip {
// border: 1px solid rgb(25, 76, 245) !important;
transform: translateY(-10px);
// transform: rotateX(-360deg) !important;
}
.flip {
......@@ -153,7 +137,7 @@ export default {
.mod_min {
width: 285px;
height: 150px;
height: 100%;
margin: auto;
display: flex;
align-items: center;
......@@ -164,14 +148,19 @@ export default {
}
.mod_cont {
p {
width: 100%;
.name {
font-size: 18px;
font-weight: bold;
padding-bottom: 10px;
}
span {
.remark {
font-size: 14px;
line-height: 10px;
line-height: 18px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
}
}
}
......
......@@ -4,7 +4,7 @@
<a-tabs v-model="tabsActive" @change="tabsChange" :forceRender="false">
<a-tab-pane
:key="item.path"
v-for="(item, index) of tabsList['children']"
v-for="item of tabsList['children']"
:tab="item['meta']['title']"
>
</a-tab-pane>
......@@ -89,12 +89,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -321,22 +321,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selectio)n {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -380,13 +380,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -317,22 +317,22 @@ export default {
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -384,13 +384,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -80,7 +80,7 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-drawer-content) {
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
</style>
......
......@@ -89,12 +89,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -191,22 +191,22 @@ export default {
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -251,13 +251,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -260,22 +260,22 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -320,13 +320,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -45,7 +45,7 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-drawer-content) {
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
.headerInfo {
......
......@@ -38,7 +38,7 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-drawer-content) {
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
.box1 {
......
......@@ -93,12 +93,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -299,22 +299,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -358,13 +358,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -93,12 +93,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -89,12 +89,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -279,22 +279,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -338,13 +338,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -296,22 +296,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -356,13 +356,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -89,12 +89,12 @@ export default {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
:deep(.ant-tabs-nav) {
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
:deep(.ant-tabs-tab) {
/deep/.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
......
......@@ -247,22 +247,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -307,13 +307,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -283,22 +283,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection-selected-value) {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -343,13 +343,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
:deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -374,22 +374,22 @@ export default {
// // font-size: 16px;
// }
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -434,13 +434,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -87,7 +87,7 @@ export default {
}
}
:deep(.ant-modal-body) {
/deep/.ant-modal-body {
min-height: 300px !important;
max-height: 550px !important;
overflow-y: auto !important;
......
......@@ -130,13 +130,13 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-steps-icon) {
/deep/.ant-steps-icon {
top: -4px !important;
}
:deep(.ant-drawer-content) {
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
:deep(.icon_box) {
/deep/.icon_box {
margin-top: -20px !important;
display: inline-block;
width: 12px;
......@@ -239,7 +239,7 @@ export default {
color: #f7072f;
}
:deep(.ant-steps-item-tail) {
/deep/.ant-steps-item-tail {
left: 6px !important;
top: 24px !important;
border-left: 3px dashed #e6f5ff !important;
......@@ -247,7 +247,7 @@ export default {
background: none !important;
}
}
:deep(.ant-steps-item) {
/deep/.ant-steps-item {
& + .ant-steps-item {
margin-top: 25px !important;
}
......
......@@ -375,22 +375,22 @@ export default {
// font-size: 16px;
}
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -435,13 +435,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -192,22 +192,22 @@ export default {
// font-size: 16px;
}
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......
......@@ -182,22 +182,22 @@ export default {
// font-size: 16px;
}
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 17rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......
<template>
<div class="Container">
<div class="search_box">
<div class="slogan-box">
<div class="slogan-title">智慧政务一体化数据管理</div>
<div class="slogan-text">
<span>准实时数据洞察</span>
<span>超大规模数据量</span>
<span>高并发稳定运行</span>
<span>低延时高效查询</span>
</div>
</div>
<!-- <div class="search_box">
<a-input v-model="searchVal">
<a-select slot="addonBefore" v-model="selectVal" style="width: 90px">
<a-select-option
......@@ -13,7 +22,7 @@
</a-select>
<button class="addonAfter_btn" slot="addonAfter">查询</button>
</a-input>
</div>
</div> -->
<div class="skipOption_box">
<ul class="list">
<li class="skip_list">
......@@ -262,8 +271,9 @@ export default {
@headerH: 4.5rem;
.Container {
height: 100%;
min-height: 960px;
background: url("~@/assets/images/u22.png") center no-repeat;
width: 100%;
// min-height: 960px;
background: url("~@/assets/images/zhandian.jpg") center no-repeat;
background-size: cover;
padding-top: @headerH;
display: flex;
......@@ -285,7 +295,7 @@ export default {
color: #ffffff;
background: #fd0b05;
position: relative;
font-weight: 1000;
font-weight: 800;
font-size: 17px;
-webkit-box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
......@@ -317,26 +327,43 @@ export default {
width: 100%;
}
:deep(.ant-input-group-wrapper) {
/deep/.ant-input-group-wrapper {
width: 790px !important;
}
:deep(.ant-input-group-addon) {
/deep/.ant-input-group-addon {
height: 45px !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 45px !important;
}
:deep(.ant-input-group-addon):first-child {
/deep/.ant-input-group-addon:first-child {
background: #ffffff !important;
}
:deep(.ant-input-group-addon):last-child {
/deep/.ant-input-group-addon:last-child {
padding: 0 !important;
border: 0 !important;
margin: 0 !important;
}
}
.slogan-box {
width: 561px;
margin-top: 100px;
color: #fff;
.slogan-title {
font-size: 50px;
font-weight: 600;
letter-spacing: 1px;
margin-bottom: 15px;
}
.slogan-text {
font-size: 18px;
display: flex;
align-items: center;
justify-content: space-between;
}
}
.skipOption_box {
width: 100%;
display: flex;
......@@ -348,7 +375,7 @@ export default {
display: block;
}
align-items: center;
margin-top: 90px;
margin-top: 150px;
.list {
height: 440px;
width: 286px;
......
......@@ -182,6 +182,7 @@ export default {
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
width: 100%;
height: 100%;
position: relative;
.header_box {
......@@ -204,17 +205,17 @@ export default {
color: #fff;
margin-right: 1rem;
}
.selectOnptions {
:deep(.ant-select) {
/deep/ .selectOnptions {
.ant-select {
font-size: 1rem !important;
color: #fff !important;
}
:deep(.ant-select-arrow) {
.ant-select-arrow {
color: #fff !important;
right: 6px !important;
margin-top: -7px !important;
}
:deep(.ant-select-selection) {
.ant-select-selection {
border: none !important;
background: transparent !important;
min-width: 120px;
......
......@@ -13,9 +13,18 @@
@click="openWindow(item.modelUrl)"
>
<div class="picture">
<img width="40" height="35" :src="api + item.modelIcon" alt />
<img
width="40"
height="35"
:src="
item.modelIcon
? api + item.modelIcon
: require('../../assets/images/u222.svg')
"
alt
/>
</div>
<h5 style="margin-top: 10px">{{ item.modelName }}</h5>
<div class="name" style="margin-top: 10px">{{ item.modelName }}</div>
</div>
</div>
</div>
......@@ -30,9 +39,7 @@ export default {
mixins: [menu],
data() {
return {
api: process.env.VUE_APP_API_BASE_URL.includes("zwfw")
? process.env.VUE_APP_API_BASE_URL.replace("zwfw", "")
: process.env.VUE_APP_API_BASE_URL,
api: process.env.VUE_APP_API_BASE_URL + "/",
siteId: "",
siteModelList: [], // 站点编排列表
};
......@@ -55,8 +62,10 @@ export default {
},
openWindow(href) {
let token = Storage.get(2, "Authorization");
let siteid = Storage.get(2, "siteId");
let siteName = Storage.get(2, "siteName");
let siteid = Storage.get(2, "siteId") ? Storage.get(2, "siteId") : 0;
let siteName = Storage.get(2, "siteName")
? Storage.get(2, "siteName")
: "";
let reg = /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/;
let info = Storage.get(2, "userInfo");
let userInfo = JSON.stringify({
......@@ -109,20 +118,20 @@ export default {
.classification {
width: 100%;
height: 280px;
height: 300px;
position: absolute;
bottom: 0;
background-color: rgba(3, 23, 24, 0.452);
overflow-y: auto;
.modules {
margin: 0 100px;
padding-top: 20px;
display: flex;
flex-wrap: wrap;
.mod_max {
width: 96px;
height: 115px;
margin-right: 39px;
margin-left: 39px;
margin-top: 5px;
text-align: center;
cursor: pointer;
......@@ -136,11 +145,15 @@ export default {
background-color: rgba(84, 120, 140, 1);
}
h5 {
.name {
width: 100%;
font-weight: 700;
font-size: 16px;
color: #ffffff;
padding-top: 5px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
......
......@@ -82,8 +82,6 @@ export default {
this.stepsList = data.data;
// console.log(this.stepsList);
this.searchVal = undefined;
} else {
this.$message.error(res.msg);
}
});
},
......@@ -121,7 +119,7 @@ export default {
display: flex;
align-items: center;
}
:deep(.ant-input) {
/deep/.ant-input {
width: 30rem !important;
margin-right: 2rem;
height: 3rem !important;
......
......@@ -160,8 +160,6 @@ export default {
this.stepsList = data.data;
console.log(this.stepsList);
this.searchVal = undefined;
} else {
this.$message.error(res.msg);
}
});
},
......@@ -198,7 +196,7 @@ export default {
padding-bottom: 35px;
}
:deep(.ant-input)-group :deep(.ant-input) {
/deep/.ant-input-group .ant-input {
width: 480px;
height: 48px;
border-radius: 5px;
......@@ -213,9 +211,7 @@ export default {
margin-left: 20px;
border-radius: 5px;
}
:deep(.ant-input)-search-enter-button
input
+ :deep(.ant-input)-group-addon {
/deep/.ant-input-search-enter-button input + .ant-input-group-addon {
background-color: #ccc0;
}
}
......
......@@ -240,52 +240,23 @@ export default {
align-items: center;
.range_picker_style {
margin-right: 20px;
// color: #32a6fb !important;
.ant-calendar-picker-input {
// background: transparent !important;
// border-color: #32a6fb !important;
// color: #32a6fb !important;
}
.ant-calendar-range-picker-separator {
// color: #32a6fb !important;
}
::-webkit-input-placeholder {
/* WebKit browsers,webkit内核浏览器 */
// color: #32a6fb;
// font-size: 16px;
}
:-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
// color: #32a6fb;
// font-size: 16px;
}
::-moz-placeholder {
/* Mozilla Firefox 19+ */
// color: #32a6fb;
// font-size: 16px;
}
:-ms-input-placeholder {
/* Internet Explorer 10+ */
// color: #32a6fb;
// font-size: 16px;
}
}
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -324,15 +295,12 @@ export default {
.ant-table-row-indent {
padding-left: 0 !important;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
float: left !important;
}
}
}
</style>
......@@ -4,7 +4,7 @@
<a-tabs v-model="tabsActive" @change="tabsChange" :forceRender="false">
<a-tab-pane
:key="item.path"
v-for="(item, index) of tabsList['children']"
v-for="item of tabsList['children']"
:tab="item['meta']['title']"
>
</a-tab-pane>
......@@ -50,6 +50,9 @@ export default {
<style lang="less" scoped>
@headerH: 4.5rem;
/deep/.ant-spin-container {
display: block;
}
.Container {
height: 100% !important;
// background: #fac;
......
......@@ -5,7 +5,7 @@
:centered="true"
:destroyOnClose="true"
:getContainer="() => $refs.EditModal_box"
:visible="EditModalVisible"
:visible="visible"
:confirmLoading="EditModalLoading"
@cancel="handleClose"
width="33%"
......@@ -22,13 +22,13 @@
:model="compileInfoForm"
:rules="Rules"
>
<a-form-model-item label="类型" prop="menuType">
<!-- <a-form-model-item label="类型" prop="menuType">
<a-radio-group v-model="compileInfoForm.menuType">
<a-radio v-for="v in MenuDict" :key="v.id" :value="v.id"
>{{ v.name }}
<a-radio v-for="(val, key) in MenuDict" :key="val" :value="key"
>{{ val }}
</a-radio>
</a-radio-group>
</a-form-model-item>
</a-form-model-item> -->
<a-form-model-item label="名称" prop="name">
<a-input
......@@ -39,16 +39,14 @@
</a-form-model-item>
<a-form-model-item
label="菜单路径"
label="父级菜单"
prop="parentId"
v-if="formTitle == '编辑'"
>
<MyMenuTree
expandTrigger="hover"
v-model="compileInfoForm.parentId"
:options="MenuDict.MenuTree"
placeholder="请选择菜单路径"
@onChange="onChange"
<a-input
placeholder="请输入名称"
allowClear
v-model="compileInfoForm.name"
/>
</a-form-model-item>
<!-- <a-form-model-item>
......@@ -110,15 +108,18 @@
</a-form-model-item>
<a-form-model-item label="图标" prop="imgPath">
<MyUpload
:uploadInfo="uploadInfo"
v-model="compileInfoForm.imgPath"
@uploadChange="uploadChange"
<a-upload
name="file"
:action="api + 'zwfw/file/commonupload'"
:multiple="false"
:file-list="fileList"
@change="handleChangeFile"
accept="image/jpeg,image/png"
>
<a-button style="background: #04ca8f; color: #fff"
>选择文件</a-button
>
</MyUpload>
<a-button type="primary">
<a-icon type="upload" /> 选择文件
</a-button>
</a-upload>
</a-form-model-item>
<a-form-model-item label="序号" prop="orderId">
......@@ -146,15 +147,29 @@
</template>
<script>
import { deepClone } from "@/utils/js/common.js";
import { menuSave } from "@/api/menuMgmt.js";
export default {
name: "PortalAdminVueAddEdit",
data() {
return {
EditModalVisible: false, //模态
api: process.env.VUE_APP_API_BASE_URL + "/",
EditModalLoading: false, //确定回调 loading
compileInfoForm: {}, //页面表单信息
compileInfoForm: {
name: "",
url: "",
parentId: "",
linkType: "",
imgPath: "",
buttonImgPath: "",
imgCommPath: "",
visible: "",
menuType: "",
status: "",
authType: "",
orderId: "",
createUserName: "",
remark: "",
}, //页面表单信息
Rules: {
firstLevel: [
//一级菜单
......@@ -207,7 +222,7 @@ export default {
imgPath: [
//图标
{
required: false, //是否必选
required: true, //是否必选
message: "请选择图标",
trigger: "change",
},
......@@ -247,11 +262,18 @@ export default {
limit: 1, //限制文件上传数量
whiteFileList: ["jpg", "jpeg", "png", "gif", "bmp"],
},
fileList: [],
toStr: ["menuType"],
};
},
props: {
MenuDict: {
type: Object,
default: () => {
return {};
},
},
MenuList: {
type: Array,
default: () => {
return [];
......@@ -263,102 +285,89 @@ export default {
return "编辑";
},
},
sourceInfoForm: {
type: Object,
default: () => {
return {};
EditModalVisible: {
type: Boolean,
required: true,
default: false,
},
},
computed: {
visible: {
get() {
return this.EditModalVisible;
},
watch: {
sourceInfoForm: {
handler(newValue, oldValue) {
// console.log(newValue);
// console.log(oldValue);
this.compileInfoForm = deepClone(newValue);
this.toStr.map((item) => {
this.compileInfoForm[item] = this.compileInfoForm[item]
? this.compileInfoForm[item].toString()
: "0";
});
// for (let key in this.Rules) {
// this.Rules[key][0].required = this.formTitle == "添加";
// }
set(val) {
this.$emit("update:EditModalVisible", val);
},
deep: true,
},
},
mounted() {},
methods: {
// 上传
handleChangeFile(info) {
let fileList = [...info.fileList];
fileList = fileList.slice(-1);
fileList = fileList.map((file) => {
if (file.response) {
file.url = file.response.url;
}
return file;
});
this.fileList = fileList;
if (this.fileList.length) {
this.compileInfoForm.imgPath = this.fileList[0].url;
} else {
this.compileInfoForm.imgPath = "";
}
},
onChange(val) {
console.log(val);
},
uploadChange(fileInfo) {
this.uploadInfo.fileList = deepClone(fileInfo.fileList);
},
Modal_Ok() {
this.$refs.compileInfoForm.validate((valid) => {
if (valid) {
let submitObj = {
name: this.compileInfoForm["name"],
url: this.compileInfoForm["url"],
parentId: this.compileInfoForm["parentId"],
linkType: this.compileInfoForm["linkType"],
imgPath: this.compileInfoForm["imgPath"],
buttonImgPath: this.compileInfoForm["buttonImgPath"],
imgCommPath: this.compileInfoForm["imgCommPath"],
visible: this.compileInfoForm["visible"],
menuType: this.compileInfoForm["menuType"],
status: this.compileInfoForm["status"],
authType: this.compileInfoForm["authType"],
orderId: this.compileInfoForm["orderId"],
createUserName: this.compileInfoForm["createUserName"],
remark: this.compileInfoForm["remark"],
};
submitObj = JSON.parse(JSON.stringify(submitObj)); //过滤空值
if (this.formTitle == "编辑") {
submitObj["id"] = this.compileInfoForm["id"];
}
// console.log(submitObj);
// 提交成功 重新拉取父组件table data
menuSave(submitObj).then((res) => {
// console.log(res);
menuSave(this.compileInfoForm).then((res) => {
if (res.code == 1) {
this.$emit("getMenuList");
// this.$message.success(res.msg);
this.EditModalVisible = false;
this.$message.success(res.msg);
this.handleClose();
}
});
} else {
this.$message.error(`请完善表单信息!`);
return false;
}
});
},
resetForm() {
// 重置还原表单信息内容
this.$set(this, "compileInfoForm", this.sourceInfoForm);
this.$nextTick(() => {
this.$refs.compileInfoForm.resetFields();
});
},
firstLevelChange(val) {
this.compileInfoForm["firstLevel"] =
this.MenuDict.firstLevelOptions.filter((v) => v.id == val)[0]["name"];
this.compileInfoForm["firstLevel"];
},
secondLevelChange(val) {
this.compileInfoForm["secondLevel"] =
this.MenuDict.secondLevelOptions.filter((v) => v.id == val)[0]["name"];
this.compileInfoForm["secondLevel"];
// 新增
onAdd(type, parent) {
Object.assign(this.compileInfoForm, this.$options.data().compileInfoForm);
this.compileInfoForm.id && this.$delete(this.compileInfoForm, "id");
this.compileInfoForm.menuType = type;
this.compileInfoForm.parentId = parent;
console.log(this.compileInfoForm);
},
// 编辑
onEdit(row) {
this.compileInfoForm = { ...row };
this.fileList = [
{
uid: -1,
name: this.compileInfoForm.imgPath,
url: this.compileInfoForm.imgPath,
status: "done",
},
thirdLevelChange(val) {
this.compileInfoForm["thirdLevel"] =
this.MenuDict.thirdLevelOptions.filter((v) => v.id == val)[0]["name"];
];
},
// 关闭弹窗
handleClose() {
this.EditModalVisible = false;
this.fileList = [];
this.$refs.compileInfoForm.resetFields();
this.visible = false;
},
},
};
......
<template>
<div class="menuMgmt">
<div class="header_box">
<button class="add_btn" @click="showEditModal(1)">
<span>新增</span>
</button>
<a-button type="primary" @click="showEditModal(1)">新增</a-button>
<span>
<a-input v-model="searchForm.name" placeholder="请输入菜单名称搜索">
<a-icon slot="prefix" type="search" />
......@@ -29,6 +27,7 @@
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="menusTreeData"
:expandIconColumnIndex="1"
>
<!-- 序号 -->
<template slot="index" slot-scope="text, record, index">
......@@ -48,7 +47,7 @@
<!-- 操作 -->
<template slot="operation" slot-scope="text, record, index">
<a-button
style="color: #8ae7d2"
style="color: #03d76f"
type="link"
@click="showEditModal(2, record)"
>添加</a-button
......@@ -66,9 +65,10 @@
</a-table>
<addEdit
ref="addEdit"
:sourceInfoForm="sourceInfoForm"
:EditModalVisible.sync="EditModalVisible"
:formTitle="formTitle"
:MenuDict="MenuDict"
:MenuList="menusTreeData"
@getMenuList="getMenuList"
/>
</div>
......@@ -76,7 +76,6 @@
</template>
<script>
import { deepClone } from "@/utils/js/common.js";
import { menuDelete, menuList } from "@/api/menuMgmt.js";
import addEdit from "./components/addEdit.vue";
// import { version } from "vue";
......@@ -87,9 +86,8 @@ export default {
name: "PortalAdminVueMenuMgmt",
data() {
return {
api: process.env.VUE_APP_API_BASE_URL.includes("zwfw")
? process.env.VUE_APP_API_BASE_URL.replace("zwfw", "")
: process.env.VUE_APP_API_BASE_URL + "/",
api: process.env.VUE_APP_API_BASE_URL + "/",
EditModalVisible: false,
searchForm: {
name: undefined,
parentId: "",
......@@ -97,10 +95,6 @@ export default {
tableLoading: false,
selectOptions: [],
tableHeaders: [
{
width: "60px",
align: "center",
},
{
width: "60px",
title: "序号",
......@@ -112,27 +106,11 @@ export default {
{
width: "150px",
title: "名称",
align: "center",
align: "left",
dataIndex: "name",
ellipsis: true,
},
// {
// title: "一级菜单",
// align: "center",
// dataIndex: "firstLevel",
// },
// {
// title: "二级菜单",
// align: "center",
// dataIndex: "secondLevel",
// },
// {
// title: "三级菜单",
// align: "center",
// dataIndex: "thirdLevel",
// },
{
title: "地址",
align: "center",
......@@ -176,7 +154,7 @@ export default {
defaultPageSize: 2000,
showTotal: (total, range) => `共${total}条`,
},
MenuDict: [],
MenuDict: {},
firstStair: [], // 一级菜单
menusTreeData: [], // 菜单树形结构数据
};
......@@ -189,20 +167,20 @@ export default {
},
methods: {
// 对象转对象数组
transverter(obj) {
return Object.keys(obj).map((v) => {
return {
id: v,
name: obj[v],
};
});
},
// transverter(obj) {
// return Object.keys(obj).map((v) => {
// return {
// id: v,
// name: obj[v],
// };
// });
// },
// 过滤菜单类型
filterMenuType(val) {
let str = "";
this.MenuDict.forEach((v) => {
if (val == v.id) {
str = v.name;
Object.keys(this.MenuDict).forEach((key) => {
if (val == key) {
str = this.MenuDict[key];
}
});
return str;
......@@ -232,10 +210,11 @@ export default {
let { data, total, dict } = res.data;
let { menuType } = dict;
this.tablePagination.total = total;
this.MenuDict = this.transverter(menuType);
this.MenuDict = menuType;
this.firstStair = data.filter((v) => v.parentId === -1);
let childrens = data.filter((v) => v.parentId !== -1);
this.menusTreeData = this.fliterEvent(this.firstStair, childrens);
console.log(this.MenuDict);
},
// 搜索
async searchData() {
......@@ -258,54 +237,17 @@ export default {
this.getMenuList();
},
showEditModal(type, row) {
// type 1 新增根节点-1 , 2 在此节点创建,3,编辑
if (type === 1) {
let obj = {
parentId: -1, //默认创建根节点
name: undefined,
url: undefined,
linkType: undefined,
imgPath: undefined,
buttonImgPath: undefined,
imgCommPath: undefined,
visible: undefined,
menuType: undefined,
status: undefined,
authType: undefined,
orderId: undefined,
createUserName: undefined,
remark: "",
visible: 1,
status: 1,
};
this.sourceInfoForm = deepClone(obj);
this.formTitle = "新增";
this.$refs.addEdit.onAdd(0, -1);
} else if (type === 2) {
let obj = {
parentId: row.id, //父节点id
name: undefined,
url: undefined,
linkType: undefined,
imgPath: undefined,
buttonImgPath: undefined,
imgCommPath: undefined,
visible: undefined,
menuType: undefined,
status: undefined,
authType: undefined,
orderId: undefined,
createUserName: undefined,
remark: "",
visible: 1,
status: 1,
};
this.sourceInfoForm = deepClone(obj);
this.formTitle = "添加";
} else if (type === 3) {
this.sourceInfoForm = deepClone(row);
this.formTitle = "新增子级菜单";
this.$refs.addEdit.onAdd(1, row.id);
} else if (3) {
this.formTitle = "编辑";
this.$refs.addEdit.onEdit(row);
}
this.$refs.addEdit.EditModalVisible = true;
this.EditModalVisible = true;
},
//删除
deleteRole(row, index) {
......@@ -324,7 +266,7 @@ export default {
//重新获取table数据
_this.$nextTick(() => {
_this.getMenuList();
// _this.$message.success(res.data.message);
_this.$message.success(res.msg);
});
}
});
......@@ -336,6 +278,9 @@ export default {
</script>
<style lang="less" scoped>
/deep/.ant-spin-container {
display: block;
}
.menuMgmt {
.header_box {
padding-bottom: 1rem;
......@@ -394,22 +339,22 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 21rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 210px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -448,15 +393,12 @@ export default {
.ant-table-row-indent {
padding-left: 0 !important;
}
:deep(.ant-btn-link) {
.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
float: left !important;
}
}
}
</style>
\ No newline at end of file
......@@ -209,6 +209,9 @@ export default {
</script>
<style lang="less" scoped>
/deep/.ant-spin-container {
display: block;
}
.authorityMis {
.header_box {
padding-bottom: 1rem;
......@@ -300,15 +303,12 @@ export default {
}
}
.main {
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
float: left !important;
}
}
}
</style>
\ No newline at end of file
......@@ -133,8 +133,6 @@ export default {
this.$emit("getRoleList");
// this.$message.success(res.msg);
this.roleEditModalVisible = false;
} else {
this.$message.error(res.msg);
}
});
} else {
......
......@@ -94,13 +94,13 @@ export default {
}
}
}
:deep().ant-checkbox-group {
/deep/.ant-checkbox-group {
text-align: left !important;
}
:deep().ant-modal-body {
/deep/.ant-modal-body {
padding: 0 !important;
}
:deep().ant-checkbox + span {
/deep/.ant-checkbox + span {
display: inline-block !important;
max-width: 7.2rem !important;
line-height: 12px !important;
......@@ -108,7 +108,7 @@ export default {
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
:deep().ant-checkbox + span {
/deep/.ant-checkbox + span {
display: inline-block !important;
width: 100% !important;
padding-right: 0px !important;
......
......@@ -243,8 +243,6 @@ export default {
// this.permsForm.menuIdList = this.getCheckedlist(data.menuIdList);
this.permsForm.menuIdList = data.menuIdList;
// console.log(this.permsForm.menuIdList);
} else {
this.$message.error(res.msg);
}
});
},
......@@ -350,23 +348,23 @@ export default {
background: #f5f5f5;
display: flex;
flex-direction: column;
:deep(.ant-checkbox-wrapper) {
/deep/.ant-checkbox-wrapper {
margin: 0 0 0.8rem;
}
:deep(.ant-form) {
/deep/.ant-form {
height: 100% !important;
}
:deep(.ant-col) {
/deep/.ant-col {
height: 100% !important;
}
:deep(.ant-form-item-control) {
/deep/.ant-form-item-control {
height: 100% !important;
}
:deep(.ant-form-item) {
/deep/.ant-form-item {
height: 100% !important;
margin: 0px;
}
:deep(.ant-checkbox-group) {
/deep/.ant-checkbox-group {
width: 100% !important;
height: 100% !important;
}
......@@ -475,7 +473,7 @@ export default {
}
}
}
:deep(.ant-card) {
/deep/.ant-card {
height: 100% !important;
display: flex !important;
flex-direction: column !important;
......
......@@ -274,6 +274,9 @@ export default {
</script>
<style lang="less" scoped>
/deep/.ant-spin-container {
display: block;
}
.user {
.user_btn {
display: flex;
......@@ -284,16 +287,16 @@ export default {
.tab {
margin-top: 20px;
:deep(.ant-table-thead) > tr > th {
/deep/.ant-table-thead > tr > th {
text-align: center;
}
:deep(.ant-table) table {
/deep/.ant-table table {
text-align: center;
}
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
......
......@@ -261,22 +261,22 @@ export default {
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -328,13 +328,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -408,7 +408,7 @@ export default {
</script>
<style lang="less" scoped>
:deep(.ant-drawer-content) {
/deep/.ant-drawer-content {
overflow-x: hidden !important;
}
.drawer_footer {
......@@ -432,10 +432,10 @@ export default {
text-align: center;
padding-top: 10px;
}
:deep(.ant-drawer-body) {
/deep/.ant-drawer-body {
margin-bottom: 100px;
}
:deep(.ant-radio-group) {
/deep/.ant-radio-group {
margin-bottom: 10px !important;
}
</style>
......
......@@ -213,22 +213,22 @@ export default {
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -280,13 +280,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -203,22 +203,22 @@ export default {
justify-content: space-between;
align-items: center;
:deep(.ant-input-affix-wrapper) {
/deep/.ant-input-affix-wrapper {
width: 15rem !important;
margin-right: 1rem !important;
}
:deep(.ant-input) {
/deep/.ant-input {
height: 2.3rem !important;
}
:deep(.ant-select-selection) {
/deep/.ant-select-selection {
width: 170px !important;
height: 2.3rem !important;
margin-right: 1rem !important;
}
:deep(.ant-select-selection__rendered) {
/deep/.ant-select-selection__rendered {
height: 100% !important;
}
:deep(.ant-select-selection)-selected-value {
/deep/.ant-select-selection-selected-value {
height: 100% !important;
line-height: 2.3rem !important;
}
......@@ -270,13 +270,13 @@ export default {
.type2 {
color: #04ca8f;
}
:deep(.ant-btn-link) {
/deep/.ant-btn-link {
padding: 0 !important;
& + :deep(.ant-btn-link) {
& + .ant-btn-link {
margin-left: 1rem !important;
}
}
/dee/ :deep(.ant-table-pagination) {
/deep/.ant-table-pagination {
float: left !important;
}
}
......
......@@ -128,7 +128,7 @@ export default {
display: flex;
align-items: center;
}
:deep(.ant-input) {
/deep/.ant-input {
width: 30rem !important;
margin-right: 2rem;
height: 3rem !important;
......
......@@ -12,9 +12,16 @@
>
<div class="pla_max">
<div class="pla_min">
<img :src="api + v.imgPath" alt />
<p>{{ v.name }}</p>
<span>{{ v.remark }}</span>
<img
:src="
v.imgPath
? api + v.imgPath
: require('../../assets/images/RBAC.png')
"
alt
/>
<p class="name">{{ v.name }}</p>
<p class="remark">{{ v.remark }}</p>
</div>
</div>
</a-card-grid>
......@@ -123,17 +130,21 @@ export default {
height: 43px;
}
p {
.name {
font-weight: 700;
font-size: 20px;
color: #000333;
margin-top: 20px;
margin-bottom: 15px;
}
span {
.remark {
font-weight: 400;
font-size: 14px;
color: #666666;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
}
}
......
......@@ -22,7 +22,6 @@
</activation>
<properties>
<profiles.active>develop</profiles.active>
<profiles.server.port>17212</profiles.server.port>
<profiles.queue.type>rabbitmq</profiles.queue.type>
<profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host>
<profiles.rabbitmq.port>5672</profiles.rabbitmq.port>
......@@ -42,10 +41,6 @@
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<profiles.server.ip>192.168.0.98</profiles.server.ip>
<profiles.server.port>17212</profiles.server.port>
<profiles.nginx.port>11072</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/zwfw</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>192.168.0.98</profiles.rabbitmq.host>
......@@ -57,7 +52,7 @@
<profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group>
<profiles.nacos.namespace>smart-gov</profiles.nacos.namespace>
<profiles.log.level>INFO</profiles.log.level>
<profiles.log.path>/mortals/app/logs</profiles.log.path>
<profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<package.environment>test</package.environment>
<skipDeploy>false</skipDeploy>
</properties>
......@@ -66,10 +61,6 @@
<id>product</id>
<properties>
<profiles.active>product</profiles.active>
<profiles.server.ip>192.168.0.251</profiles.server.ip>
<profiles.server.port>17212</profiles.server.port>
<profiles.nginx.port>11072</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/zwfw</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host>
......@@ -91,10 +82,6 @@
<id>yibin</id>
<properties>
<profiles.active>yibin</profiles.active>
<profiles.server.ip>192.168.2.144</profiles.server.ip>
<profiles.server.port>17212</profiles.server.port>
<profiles.nginx.port>11072</profiles.nginx.port>
<profiles.server.gatewayport>11078</profiles.server.gatewayport>
<profiles.server.path>/zwfw</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.rabbitmq.host>127.0.0.1</profiles.rabbitmq.host>
......@@ -106,7 +93,7 @@
<profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group>
<profiles.nacos.namespace>smart-gov</profiles.nacos.namespace>
<profiles.log.level>INFO</profiles.log.level>
<profiles.log.path>/mortals/app/logs</profiles.log.path>
<profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<package.environment>yibin</package.environment>
<skipDeploy>false</skipDeploy>
</properties>
......
......@@ -10,40 +10,19 @@ LOCK_FILE="/tmp/deploy.lock"
# 时间变量
CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H:%M:%S")
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
IP="@profiles.server.ip@"
PORT="@profiles.server.port@"
GATEWAY_PORT="@profiles.server.gatewayport@"
SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
MYSQL_HOST="127.0.0.1"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD="xhx@2022"
SERVICE_PATH="/usr/lib/systemd/system"
JAVA_HOME="/usr/local/java/jdk1.8"
SERVICE_PATH="/usr/lib/systemd/system"
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
NGINX_CONF_PATH="/etc/nginx/conf.d/"
NGINX_PORT="@profiles.nginx.port@"
NGINX_SERVER_PATH="@profiles.server.path@"
PROJECT_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}"
PROJECT_UI_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}-ui/dist"
PROJECT_FILENAME="${PROJECT_NAME}.tar.gz"
PROJECT_UI_FILENAME="${PROJECT_NAME}-ui.tar.gz"
PROJECT_SERVICE="${SERVICE_PATH}/${PROJECT_NAME}.service"
PROJECT_NGINX_CONF="${NGINX_CONF_PATH}/${PROJECT_NAME}.conf"
#加锁
shell_lock() {
touch ${LOCK_FILE}
}
#删除锁
shell_unlock() {
rm -f ${LOCK_FILE}
}
#写日志
writelog() {
LOGINFO=$1
......@@ -59,9 +38,6 @@ clear_deploy() {
rm -rf ${SERVICE}
#清理执行文件目录
rm -rf ${EXECPATH}
#清理nginx服务配置文件
rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf
mkdir -p ${EXECPATH}
}
#清理ui
......@@ -91,62 +67,14 @@ build_service() {
writelog "${PROJECT_NAME}服务创建完成!"
}
build_nginx() {
echo "server{
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable \"MSIE [1-6]\.\";
listen ${NGINX_PORT};
#server_name localhost;
location / {
root ${PROJECT_UI_EXECPATH};
index index.html index.htm;
}
location ${NGINX_SERVER_PATH}/ {
proxy_pass http://${IP}:${GATEWAY_PORT};
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
location /doc/ {
root ${PROJECT_EXECPATH};
index api.html;
}
location /file/fileupload/ {
alias /mortals/app/data/file/fileupload/;
autoindex on;
autoindex_exact_size off;
}
location /file/uploadfile/ {
alias /mortals/app/data/file/uploadfile/;
autoindex on;
autoindex_exact_size off;
}
location /file/preview/ {
alias /mortals/app/data/file/preview/;
autoindex on;
autoindex_exact_size off;
}
}
" >${PROJECT_NGINX_CONF}
}
#启动服务与nginx
start_service_and_nginx() {
writelog "${PROJECT_NAME}服务启动..."
start_service() {
systemctl enable ${PROJECT_NAME}
systemctl daemon-reload
writelog "${PROJECT_NAME}服务启动..."
systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME}
project_status=$(systemctl status "${PROJECT_NAME}" | grep Active | awk '{print $2}')
nginx -t
nginx -s reload
project_status=$(systemctl status "${PROJECT_NAME}"|grep Active |awk '{print $2}')
jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}')
writelog "${PROJECT_NAME}服务启动,PID is ${jcpid} ,status:${project_status}"
}
......@@ -155,11 +83,9 @@ project_deploy() {
writelog "${PROJECT_NAME}_deploy"
clear_deploy ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
writelog "${PROJECT_NAME}_clear_finish"
tar -zvxf ./${PROJECT_FILENAME} -C ${PUBLISH_PATH}
build_service ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
build_nginx
start_service_and_nginx
build_service
start_service
writelog "${PROJECT_NAME}_deploy_finish"
}
......@@ -169,13 +95,7 @@ project_ui_deploy() {
clear_ui_deploy ${PROJECT_UI_EXECPATH}
tar -zvxf ./${PROJECT_UI_FILENAME} -C ${PUBLISH_PATH}
writelog "${PROJECT_NAME}_ui_deploy_finish"
}
init_db() {
writelog "${PROJECT_NAME}_db_init"
mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${EXECPATH}/db/db.sql
mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${EXECPATH}/db/menu.sql
writelog "${PROJECT_NAME}_db_init"
}
#主函数
......@@ -187,32 +107,4 @@ main() {
exit ${RETVAL}
}
init_params(){
#获取参数
while getopts h:P:u:p opt; do
case $opt in
h)
#echo "-mysql-host ---- $OPTARG"
MYSQL_HOST=$OPTARG
;;
P)
#echo "-mysql-port ---- $OPTARG"
MYSQL_PORT=$OPTARG
;;
u)
#echo "-mysql-user ---- $OPTARG"
MYSQL_USER=$OPTARG
;;
p)
#echo "-mysql-password ---- $OPTARG"
MYSQL_PASSWORD=$OPTARG
;;
?)
echo "$opt is an invalid option"
;;
esac
done
}
main $1
......@@ -10,34 +10,19 @@ LOCK_FILE="/tmp/deploy.lock"
# 时间变量
CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H:%M:%S")
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
IP="@profiles.server.ip@"
PORT="@profiles.server.port@"
SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
SERVICE_PATH="/usr/lib/systemd/system"
JAVA_HOME="/usr/local/java/jdk1.8"
SERVICE_PATH="/usr/lib/systemd/system"
PUBLISH_PATH="@profiles.publish.path@"
PROJECT_NAME="@project.artifactId@"
NGINX_CONF_PATH="/etc/nginx/conf.d/"
NGINX_PORT="@profiles.nginx.port@"
NGINX_SERVER_PATH="@profiles.server.path@"
PROJECT_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}"
PROJECT_UI_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}-ui"
PROJECT_UI_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}-ui/dist"
PROJECT_FILENAME="${PROJECT_NAME}.tar.gz"
PROJECT_UI_FILENAME="${PROJECT_NAME}-ui.tar.gz"
PROJECT_SERVICE="${SERVICE_PATH}/${PROJECT_NAME}.service"
PROJECT_NGINX_CONF="${NGINX_CONF_PATH}/${PROJECT_NAME}.conf"
#加锁
shell_lock() {
touch ${LOCK_FILE}
}
#删除锁
shell_unlock() {
rm -f ${LOCK_FILE}
}
#写日志
writelog() {
LOGINFO=$1
......@@ -53,16 +38,6 @@ clear_deploy() {
rm -rf ${SERVICE}
#清理执行文件目录
rm -rf ${EXECPATH}
#清理nginx服务配置文件
rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf
mkdir -p ${EXECPATH}
}
#清理ui
clear_ui_deploy() {
EXEC_UI_PATH=$1
rm -rf ${EXEC_UI_PATH}
mkdir -p ${EXEC_UI_PATH}
}
build_service() {
......@@ -85,59 +60,14 @@ build_service() {
writelog "${PROJECT_NAME}服务创建完成!"
}
build_nginx() {
echo "server{
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable \"MSIE [1-6]\.\";
listen ${NGINX_PORT};
#server_name localhost;
location / {
proxy_pass http://${IP}:${PORT};
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
location /homeDeviceUrl/ {
alias /home/publish/device-manager-ui/homeDeviceUrl/;
index index.html index.htm;
}
location /file/fileupload/ {
alias /mortals/app/data/file/fileupload/;
autoindex on;
autoindex_exact_size off;
}
location /file/uploadfile/ {
alias /mortals/app/data/file/uploadfile/;
autoindex on;
autoindex_exact_size off;
}
location /file/preview/ {
alias /mortals/app/data/file/preview/;
autoindex on;
autoindex_exact_size off;
}
}
" >${PROJECT_NGINX_CONF}
}
#启动服务与nginx
start_service_and_nginx() {
writelog "${PROJECT_NAME}服务启动..."
start_service() {
systemctl enable ${PROJECT_NAME}
systemctl daemon-reload
writelog "${PROJECT_NAME}服务启动..."
systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME}
project_status=$(systemctl status "${PROJECT_NAME}"|grep Active |awk '{print $2}')
nginx -t
nginx -s reload
jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}')
writelog "${PROJECT_NAME}服务启动,PID is ${jcpid} ,status:${project_status}"
}
......@@ -146,19 +76,12 @@ project_deploy() {
writelog "${PROJECT_NAME}_deploy"
clear_deploy ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
writelog "${PROJECT_NAME}_clear_finish"
tar -zvxf ./${PROJECT_FILENAME} -C ${PUBLISH_PATH}
build_service ${PROJECT_SERVICE} ${PROJECT_EXECPATH}
writelog "${PROJECT_NAME}_deploy_build_nginx"
build_nginx
writelog "${PROJECT_NAME}_deploy_build_nginx_finish"
writelog "${PROJECT_NAME}_deploy_build_service_finish"
start_service_and_nginx
start_service
writelog "${PROJECT_NAME}_deploy_finish"
}
#主函数
main() {
echo "后台服务部署"
......
......@@ -11,7 +11,7 @@ import javax.servlet.http.HttpServletResponse;
* @date: 2022/6/6 15:05
* @description:添加跨域响应
**/
//@Component
@Component
public class CrossInterceptor extends HandlerInterceptorAdapter {
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment