ruienger 443cfbe68d [Fix 0000] 修复除尘风机模型无法显示的问题 | 2 hours ago | |
---|---|---|
.github | 11 months ago | |
@ | 2 days ago | |
build | 6 months ago | |
js | 1 year ago | |
mock | 6 months ago | |
public | 6 days ago | |
src | 2 hours ago | |
tests | 2 years ago | |
types | 5 days ago | |
.babelrc | 1 year ago | |
.editorconfig | 3 years ago | |
.env | 1 year ago | |
.env.development | 8 hours ago | |
.env.production | 1 year ago | |
.eslintignore | 3 years ago | |
.eslintrc.js | 2 years ago | |
.gitignore | 2 weeks ago | |
.gitpod.yml | 3 years ago | |
.prettierignore | 3 years ago | |
.stylelintignore | 3 years ago | |
Dockerfile | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 3 weeks ago | |
commitlint.config.js | 11 months ago | |
index.html | 1 month ago | |
jest.config.mjs | 3 years ago | |
npm | 3 years ago | |
npminstall-debug.log | 1 month ago | |
package.json | 3 months ago | |
pnpm-lock.yaml | 3 months ago | |
postcss.config.js | 3 years ago | |
prettier.config.js | 2 years ago | |
stylelint.config.js | 3 months ago | |
tsconfig.json | 1 year ago | |
vite.config.ts | 8 months ago |
系统v2.0前端代码仓库
本项目以jeecgboot为模板,请先阅读此文档后继续!
建议:安装 nvm 或其他 nodejs 版本管理器,使用 VSCode 作为 IDE,使用 Chrome/Edge 浏览器;
在项目目录下执行 pnpm install
在项目目录下执行 git config commit.template .github/COMMIT_TEMPLATE
开发的基本流程,部分内容可忽略
git pull
# 可以rebase
git checkout [branch]
# 可选
nvm use 20
# 建议,高版本node自带pnpm包管理器
pnpm dev
# 必选,dddd
git add .
git commit
# 公用模板见.github/COMMIT_TEMPLATE
git push origin [branch]
# 目前master分支无保护,可直接推
pnpm build
主题可以在 /views/vent/sys/setting/index.vue 中找到设置入口
常规的颜色、变量在 /design/color.less 或 /design/themify/ 下添加,图片资源应在 /assets/images/themify/ 下添加
各个页面的主题化标准模板可以参考登录页 /views/sys/login/Login.vue
下面是配合主题化使用的工具,输入页面的 css 样式,即可输出标准模板所需的资源
// Please make sure these requires before using this function:
// 1. replace all url patterns to patterns like `url(/@/xxx/xxx.xxx)`.
// 2. remove all the in-line comments(//) or replace them to block comments(/** */).
// 3. replace all rbg/rgba/hsa or any other css color functions to hex colors(#xxxxxx).
function themifyScript(
str,
options = {
color: false,
gradient: false,
url: true,
}
) {
const keySet = new Set();
let strcopy = str;
let varstr = '';
// process url, extract all css url and replace them to css var and record them.
{
keySet.clear();
const regexp = /url\('?(\/[@|0-9|a-z|A-Z|\-|_]+)+.(png|svg)'?\)/g;
let res = regexp.exec(str);
while (res) {
const [url, image] = res;
const varname = `--image-${image.replace('/', '')}`;
if (!keySet.has(image)) {
keySet.add(image);
varstr += `${varname}: ${url};`;
}
if (options.url) {
strcopy = strcopy.replace(url, `var(${varname})`);
}
res = regexp.exec(str);
}
}
// process gradient, extract all css gradient and replace them to css var and record them.
{
keySet.clear();
let key = 0;
const regexp = /linear-gradient\([0-9|a-z|A-Z|#|,|\s|%|.]+\)/g;
let res = regexp.exec(str);
while (res) {
const [gradient] = res;
const varname = `--gradient-${key}`;
if (!keySet.has(gradient)) {
keySet.add(gradient);
varstr += `${varname}: ${gradient};`;
}
if (options.gradient) {
strcopy = strcopy.replace(gradient, `var(${varname})`);
}
res = regexp.exec(str);
key += 1;
}
}
{
keySet.clear();
let key = 0;
const regexp = /radial-gradient\([0-9|a-z|A-Z|#|,|\s|%|.]+\)/g;
let res = regexp.exec(str);
while (res) {
const [gradient] = res;
const varname = `--gradient-${key}`;
if (!keySet.has(gradient)) {
keySet.add(gradient);
varstr += `${varname}: ${gradient};`;
}
if (options.gradient) {
strcopy = strcopy.replace(gradient, `var(${varname})`);
}
res = regexp.exec(str);
key += 1;
}
}
// process color, extract all css colors and replace them to css var and record them.
{
keySet.clear();
let key = 0;
const regexp = /#[0-9|a-z|A-Z]{3,8}/g;
let res = regexp.exec(str);
while (res) {
const [color] = res;
const varname = `--color-${key}`;
if (!keySet.has(color)) {
keySet.add(color);
varstr += `${varname}: ${color};`;
}
if (options.color) {
strcopy = strcopy.replace(color, `var(${varname})`);
}
res = regexp.exec(str);
key += 1;
}
}
return [varstr, strcopy];
}