diff --git a/.beagle.yml b/.beagle.yml
index d54834be26a8b5c02233da8b778d01db8eeb9581..f67b89d385b7dfbac87f438a2c6c0e94632ed660 100644
--- a/.beagle.yml
+++ b/.beagle.yml
@@ -32,12 +32,12 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
- name: build # 项目打包
image: registry.cn-qingdao.aliyuncs.com/wod/devops-node:16.16.0-slim
- # 将宿主机中文件夹挂载到容器中,宿主机文件夹中的文件会被容器访问并修改,起到使用缓存的作用,避免每次运行都要重现下载依赖,提高运行速度
+ # 将宿主机中文件夹挂载到容器中,宿主机文件夹中的文件会被容器访问并修改,起到使用缓存的作用,避免每次运行都要重现下载依赖,提高运行速度
commands:
- yarn
- export NODE_ENV=production
- yarn build
-
+
- name: s3-cache-build
image: registry.cn-qingdao.aliyuncs.com/wod/devops-s3-cache:1.0
network_mode: host
@@ -54,7 +54,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
- name: docker
image: registry.cn-qingdao.aliyuncs.com/wod/devops-docker:1.0
- # 将宿主机的 docker和配置挂载到运行的 docker 容器中,那么在容器中运行 docker 命令时,等同于在宿主机中运行该docker命令
+ # 将宿主机的 docker和配置挂载到运行的 docker 容器中,那么在容器中运行 docker 命令时,等同于在宿主机中运行该docker命令
volumes:
- name: docker-sock
path: /var/run/docker.sock # 将下载依赖的目录挂载出来,防止重复下载
@@ -70,7 +70,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
from_secret: REGISTRY_USER_ALIYUN
registry_password: # 密码
from_secret: REGISTRY_PASSWORD_ALIYUN
-
+
- name: deploy-cloud
image: registry.cn-qingdao.aliyuncs.com/wod/devops-kubernetes:1.0
settings:
@@ -131,8 +131,8 @@ steps:
REGISTRY_PASSWORD:
from_secret: REGISTRY_PASSWORD_ALIYUN
settings:
- source: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.5-alpha
- target: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.5
+ source: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.10-alpha
+ target: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.10
registry: registry.cn-qingdao.aliyuncs.com
- name: harbor-arm64
@@ -149,8 +149,8 @@ steps:
REGISTRY_PASSWORD:
from_secret: REGISTRY_PASSWORD_ALIYUN
settings:
- source: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.5-alpha-arm64
- target: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.5-arm64
+ source: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.10-alpha-arm64
+ target: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.10-arm64
registry: registry.cn-qingdao.aliyuncs.com
##--------------对于需要保密的信息隐藏,减少账户信息的泄密⬇-----------------##
---
@@ -202,4 +202,4 @@ kind: secret
name: REGISTRY_PASSWORD_ALIYUN
get:
name: PASSWORD
- path: devops-registry-aliyun
\ No newline at end of file
+ path: devops-registry-aliyun
diff --git a/src/App.vue b/src/App.vue
index 55bce5c5a03f552e376ad7c31b5546a414a3f978..9315340de25d7f822617067beb47a5d4fba87822 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -19,17 +19,17 @@
-
+
-
+
-
+
@@ -40,18 +40,18 @@
diff --git a/src/bg-ui/bg-code-editor.vue b/src/bg-ui/bg-code-editor.vue
index d239f2c16c478357b56f48ccfaa3344a9790966b..4683c9c12a347748c00b7c4fd38a921c01cd7e84 100644
--- a/src/bg-ui/bg-code-editor.vue
+++ b/src/bg-ui/bg-code-editor.vue
@@ -85,7 +85,6 @@ const codeChange = () => {
onMounted(() => {
let obj = "";
- // console.log(typeof JSON.parse(this.datas));
try {
if (typeof JSON.parse(props.modelValue) == "object") {
obj = JSON.stringify(JSON.parse(props.modelValue), null, "\t");
diff --git a/src/bg-ui/bg-detail-table.vue b/src/bg-ui/bg-detail-table.vue
index ab0af920f619697f369a0f220e0ac513268d0959..8926de43f076e649223821c20a6c2f0248764505 100644
--- a/src/bg-ui/bg-detail-table.vue
+++ b/src/bg-ui/bg-detail-table.vue
@@ -43,7 +43,6 @@
diff --git a/src/page/main/home-config/banner/edit/banner-form.vue b/src/page/main/home-config/banner/edit/banner-form.vue
index 901fad164cfc6de73c30a181245b4d413992faaa..c2a78a9f8f0b9026b23dcdd675aa4f47590deaaa 100644
--- a/src/page/main/home-config/banner/edit/banner-form.vue
+++ b/src/page/main/home-config/banner/edit/banner-form.vue
@@ -1,7 +1,7 @@
-
+
@@ -11,9 +11,10 @@
v-model="formData.banner_image"
:fileSize="1"
:showTips="true"
- customTips="请选择图片上传:大小1920 * 464像素支持jpg、png等格式,图片需小于1MB"
+ customTips="请选择图片上传:大小1920 * 464像素支持jpg、jpeg、png格式,图片需小于1MB"
:limit="1"
listType="picture-card"
+ @change="changeLogo"
:accept="['.jpg', '.jpeg', '.png']">
@@ -39,11 +40,18 @@ const state = reactive({
},
formRules: {
banner_name: [{ required: true, message: "请输入banner名称", trigger: "blur" }],
+ link_address: [{ max: 8182, message: "最长可输入8182个字符", trigger: "blur" }],
banner_image: [{ required: true, message: "请上传banner图", trigger: "change" }],
state: [{ required: true, message: "请选择启用状态", trigger: "change" }],
},
});
+const changeLogo = (value) => {
+ if (value && value.length > 0) {
+ form.value.clearValidate("banner_image");
+ }
+};
+
const emit = defineEmits(["action"]);
const submitForm = async () => {
diff --git a/src/page/main/home-config/foot-info/index.vue b/src/page/main/home-config/foot-info/index.vue
index 6ea82f9a2cb9ffc5a5aa138252ac7ccec1803fec..e898153defad6bee5a1fc38a75c8489a760c4357 100644
--- a/src/page/main/home-config/foot-info/index.vue
+++ b/src/page/main/home-config/foot-info/index.vue
@@ -17,7 +17,7 @@
:fileSize="500"
:fileSizeUnit="'KB'"
:showTips="true"
- customTips="请选择图片上传:大小80 * 80像素支持jpg、png等格式,图片需小于500KB"
+ customTips="请选择图片上传:大小80 * 80像素支持jpg、jpeg、png格式,图片需小于500KB"
:limit="1"
listType="picture-card"
:accept="['.jpg', '.jpeg', '.png']">
diff --git a/src/page/main/home-config/recommend/edit/index.vue b/src/page/main/home-config/recommend/edit/index.vue
index 681949094f5388c0f29a53bb47ab081d8705d898..b9164eb68140f230bf692e8707551b463f095ee7 100644
--- a/src/page/main/home-config/recommend/edit/index.vue
+++ b/src/page/main/home-config/recommend/edit/index.vue
@@ -76,7 +76,7 @@
查询
@@ -299,6 +299,7 @@ const move = (temp) => {
}
}
});
+ state.selectArrNew = state.selectArr.filter((e) => e )
};
const changePage = (val) => {
state.dialogFilter.page = 1;
diff --git a/src/page/main/home-config/recommend/edit/type-form.vue b/src/page/main/home-config/recommend/edit/type-form.vue
index a6834bbc0b6da9369eb2b46e06c30f810c7748b1..6111a0c2ba9cf5f3920029e97c90a25bab5a9aa7 100644
--- a/src/page/main/home-config/recommend/edit/type-form.vue
+++ b/src/page/main/home-config/recommend/edit/type-form.vue
@@ -6,7 +6,7 @@
placeholder="请选择能力类型"
style="width: 100%"
@change="changeType"
- :disabled="route.query.id">
+ :disabled="!!route.query.id">
@@ -16,9 +16,10 @@
:fileSize="500"
:fileSizeUnit="'KB'"
:showTips="true"
- customTips="请选择图片上传:大小36 * 36像素支持jpg、png等格式,图片需小于500KB"
+ customTips="请选择图片上传:大小36 * 36像素支持jpg、jpeg、png格式,图片需小于500KB"
:limit="1"
listType="picture-card"
+ @change="changeLogo"
:accept="['.jpg', '.jpeg', '.png']">
@@ -51,6 +52,12 @@ const state = reactive({
const emit = defineEmits(["action", "changeType"]);
+const changeLogo = (value) => {
+ if (value && value.length > 0) {
+ form.value.clearValidate("logo")
+ }
+}
+
const submitForm = async () => {
if (!form) return;
await form.value.validate((valid, fields) => {
diff --git a/src/page/main/system/organization/index.vue b/src/page/main/system/organization/index.vue
index ccacce66147d3f1f4b4beae9b29b1647af222773..311815dd73a5193943efaf81e0c92a856fb32389 100644
--- a/src/page/main/system/organization/index.vue
+++ b/src/page/main/system/organization/index.vue
@@ -886,7 +886,7 @@ onBeforeMount(() => {});
padding: 16px;
}
.tree {
- overflow: auto;
+ overflow: hidden auto;
height: calc(100% - 65px);
/* padding: 5px; */
}
diff --git a/src/page/main/system/organization/org-detail/index.vue b/src/page/main/system/organization/org-detail/index.vue
index 60ed3da38f3eec2d7e5337b5ca15bb6e6eab2660..cf6c00ec7ed85d1256bf1e37973585eef84626f3 100644
--- a/src/page/main/system/organization/org-detail/index.vue
+++ b/src/page/main/system/organization/org-detail/index.vue
@@ -166,7 +166,6 @@ const getDetail = () => {
};
const getSystemInfo = () => {
- console.log(11111111);
const params = { ...filter, organization_id: route.query.id };
axios.get(`/apaas/system/v5/org/business/msg`, { params }).then((res) => {
if (res.data.code == 200) {
diff --git a/src/page/main/system/organization/org-user/org-account-form.vue b/src/page/main/system/organization/org-user/org-account-form.vue
index 53c22b80f3c82a2c542ec94e884e53427badf923..9a764c084125e18314af05c2dfbf87f111a6b704 100644
--- a/src/page/main/system/organization/org-user/org-account-form.vue
+++ b/src/page/main/system/organization/org-user/org-account-form.vue
@@ -92,20 +92,25 @@ const validatePass = (rule, value, callback) => {
};
const validateSystemAccount = (rule, value, callback) => {
- let params = null;
- if (props.id) {
- params = { id: parseInt(props.id), system_account: value };
+ let reg = /^[a-zA-Z0-9]+$/;
+ if (!reg.test(value)) {
+ callback(new Error("只能输入字母和数字"));
} else {
- params = { system_account: value };
- }
-
- axios.post(`/apaas/system/v5/user/check/account`, params).then((res) => {
- if (res.data.code == 200) {
- callback();
+ let params = null;
+ if (props.id) {
+ params = { id: parseInt(props.id), system_account: value };
} else {
- callback(new Error(res.data.data));
+ params = { system_account: value };
}
- });
+
+ axios.post(`/apaas/system/v5/user/check/account`, params).then((res) => {
+ if (res.data.code == 200) {
+ callback();
+ } else {
+ callback(new Error(res.data.data));
+ }
+ });
+ }
};
const checkPhone = (rule, value, callback) => {
@@ -141,6 +146,8 @@ const orgAccountFormRules = reactive({
select_role: [{ required: true, message: "请选择角色", trigger: "blur" }],
system_account: [
{ required: true, message: "请输入账号", trigger: "blur" },
+ { min: 4, message: "帐号长度不得低于4个字符", trigger: "blur" },
+ { max: 20, message: "帐号最大长度为20个字符", trigger: "blur" },
{ validator: validateSystemAccount, trigger: "blur" },
],
contact_phone: [
diff --git a/src/page/main/system/organization/platform-user/platform-account-form.vue b/src/page/main/system/organization/platform-user/platform-account-form.vue
index faecfcf64e97926be90f7ed01342644ba119e7e6..226421b997ca9349b78d03c43e67a903e9481cd5 100644
--- a/src/page/main/system/organization/platform-user/platform-account-form.vue
+++ b/src/page/main/system/organization/platform-user/platform-account-form.vue
@@ -95,20 +95,25 @@ const checkPhone = (rule, value, callback) => {
};
const validateSystemAccount = (rule, value, callback) => {
- let params = null;
- if (props.id) {
- params = { id: parseInt(props.id), system_account: value };
+ let reg = /^[a-zA-Z0-9]+$/;
+ if (!reg.test(value)) {
+ callback(new Error("只能输入字母和数字"));
} else {
- params = { system_account: value };
- }
-
- axios.post(`/apaas/system/v5/user/check/account`, params).then((res) => {
- if (res.data.code == 200) {
- callback();
+ let params = null;
+ if (props.id) {
+ params = { id: parseInt(props.id), system_account: value };
} else {
- callback(new Error(res.data.data));
+ params = { system_account: value };
}
- });
+
+ axios.post(`/apaas/system/v5/user/check/account`, params).then((res) => {
+ if (res.data.code == 200) {
+ callback();
+ } else {
+ callback(new Error(res.data.data));
+ }
+ });
+ }
};
const checkPhoneRepet = (rule, value, callback) => {
@@ -131,6 +136,8 @@ const checkPhoneRepet = (rule, value, callback) => {
const platformAccountFormRules = reactive({
system_account: [
{ required: true, message: "请输入账号", trigger: "blur" },
+ { min: 4, message: "帐号长度不得低于4个字符", trigger: "blur" },
+ { max: 20, message: "帐号最大长度为20个字符", trigger: "blur" },
{ validator: validateSystemAccount, trigger: "blur" },
],
contact_phone: [
diff --git a/src/page/main/system/organization/tree.vue b/src/page/main/system/organization/tree.vue
index 7563e96c408b42ee46d8f0ef4b372323c5e36dc1..0111bb2bd2ced03e3e7683a3b0b4ad541a431c23 100644
--- a/src/page/main/system/organization/tree.vue
+++ b/src/page/main/system/organization/tree.vue
@@ -23,7 +23,6 @@
@@ -248,7 +247,6 @@ const showAction = (e, data, node) => {
height = parseInt(height);
//判断弹窗位置是否超过屏幕,超过则吸底展示
if (height + rect.y - 17 > allHeight - bottomGap.value) {
- console.log(123);
acBottom.value = bottomGap.value + "px";
acLeft.value = rect.x + 35 + "px";
} else {
@@ -370,7 +368,9 @@ defineExpose({ getOrgTree, filterTree, setCurrentNode });
.file-tree :deep() .el-tree-node__content:hover .tree-action-box {
display: inline-block;
}
-
+.file-tree :deep() .el-tree-node__content:hover + .label-text {
+ width: calc(100% - 48px);
+}
.file-tree :deep() .el-tree-node__content .first_node {
display: inline-block;
background-color: #fff;
@@ -396,6 +396,11 @@ defineExpose({ getOrgTree, filterTree, setCurrentNode });
.label-text {
font-size: 14px;
color: #404a62;
+ display: inline-block;
+ width: calc(100% - 24px);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.tree-action-box:hover + .label-text {
padding: 8px 0;
@@ -404,7 +409,8 @@ defineExpose({ getOrgTree, filterTree, setCurrentNode });
.label-text:hover {
padding: 8px 0;
- background-color: var(--el-tree-node-hover-bg-color);
+ /* background-color: var(--el-tree-node-hover-bg-color); */
+ width: calc(100% - 48px);
}
.is_active {
padding: 8px 0;
diff --git a/src/page/main/system/role/index.vue b/src/page/main/system/role/index.vue
index b00410bd221be1fff26553ef363b0c9853d6ce33..61989bad9c4905b6897c3c3fdd310029eb588b78 100644
--- a/src/page/main/system/role/index.vue
+++ b/src/page/main/system/role/index.vue
@@ -342,12 +342,10 @@ const clearRoleSelection = () => {
};
const register = () => {
- console.log("新增角色");
router.push("/system/role/add");
}; // 新增角色
const edit_row = (row) => {
- console.log(row, "编辑角色");
router.push({
path: "/system/role/edit",
query: {
@@ -365,7 +363,6 @@ const distribute_user = (row) => {
const getUserList = () => {
nextTick(() => {
- console.log(userTable);
clearUserSelection();
});
let params = {
diff --git a/src/router/index.js b/src/router/index.js
index a73fc52d2840d6ca6bdbbdd97ee4fb77648cc385..5cbf1dcee01182059ca2def7e57b88dfb2e7ed7e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,41 +1,38 @@
//路由前端原则可以不写,但是需要在recorder中记录,防止以后忘记
//不用新增父路由的文件,父路由全部由parent/parent.vue来支撑
-import {
- createRouter,
- createWebHashHistory
-} from "vue-router";
-import store from '../store'
-
+import { createRouter, createWebHashHistory } from "vue-router";
+import store from "../store";
//写入初始必须有的路由
//或者隐藏式路由,不会表现在菜单上,但是需要存在的路由
-const routes = [{
- path: '/login',
- name: 'login',
+const routes = [
+ {
+ path: "/login",
+ name: "login",
show: true,
- component: () => import('../page/login/index.vue')
+ component: () => import("../page/login/index.vue"),
},
{
- path: '/registe',
- name: 'registe',
+ path: "/registe",
+ name: "registe",
show: true,
- component: () => import('../page/registe/index.vue')
+ component: () => import("../page/registe/index.vue"),
},
{
- path: '/password',
- name: 'password',
+ path: "/password",
+ name: "password",
show: true,
- component: () => import('../page/password/index.vue')
+ component: () => import("../page/password/index.vue"),
},
{
- path: '/',
- name: 'index',
- component: () => import('../page/welcom.vue'),
+ path: "/",
+ name: "index",
+ component: () => import("../page/welcom.vue"),
},
{
- path: '/404',
+ path: "/404",
show: true,
- component: () => import('../page/404.vue')
+ component: () => import("../page/404.vue"),
},
];
@@ -51,7 +48,7 @@ const router = newRouterFunc();
function inWhiteList(toPath) {
//配置白名单
- const whiteList = ['/login', '/registe', '/password']
+ const whiteList = ["/login", "/registe", "/password"];
const path = whiteList.find((value) => {
// 使用正则匹配
const reg = new RegExp("^" + value);
@@ -62,16 +59,14 @@ function inWhiteList(toPath) {
router.beforeEach((to, from, next) => {
const userInfo = store.state.userInfo;
- console.log(store.state.route);
//已登录不可跳转登陆页
- if (userInfo && (to.path == '/login' || to.path == '/')) {
+ if (userInfo && (to.path == "/login" || to.path == "/")) {
next({
- path: '/develop/account'
- })
+ path: "/develop/account",
+ });
}
-
// 检查to.path是否存在于免登陆白名单
if (inWhiteList(to.path)) {
next();
@@ -83,7 +78,8 @@ router.beforeEach((to, from, next) => {
next({
path: "/login",
});
- } else {}
+ } else {
+ }
}
//判读是否匹配,否则跳转404
@@ -91,8 +87,8 @@ router.beforeEach((to, from, next) => {
next();
} else {
return next({
- path: '/404'
- })
+ path: "/404",
+ });
}
});
@@ -102,11 +98,11 @@ router.beforeEach((to, from, next) => {
// generateRoutes()
// })
function addRoute(router, routers) {
- routers.forEach(e => {
- if (e.path[0] == '/') {
- router.addRoute(e)
+ routers.forEach((e) => {
+ if (e.path[0] == "/") {
+ router.addRoute(e);
if (e.children && e.children.length) {
- addRoute(router, e.children)
+ addRoute(router, e.children);
}
}
});
@@ -118,15 +114,13 @@ export function generateRoutes() {
if (_asyncRoutes) {
//动态添加路由
- addRoute(router, _asyncRoutes)
+ addRoute(router, _asyncRoutes);
}
router.addRoute({
- path: '/:pathMatch(.*)',
- redirect: '/404'
- })
-
- console.log(router.getRoutes());
+ path: "/:pathMatch(.*)",
+ redirect: "/404",
+ });
}
//新创建一个router替代之前的router,并把matcher方法替换成新的router的matcher
@@ -135,4 +129,4 @@ export function resetRouter() {
router.matcher = newRouter.matcher;
}
-export default router
+export default router;
diff --git a/vite.config.js b/vite.config.js
index 84f4c8fe0a7f52fe9e033b873230843d24ce27dd..6ac533ae61a7236bcb972d622d9376bdbde66877 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -2,7 +2,6 @@ import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
const path = require("path");
-console.log(__dirname);
function resolve_path(dir) {
return path.join(__dirname, "./", dir);