添加ecode更加安全的发布样式文件以及引入第三方库

main
youHong.ai 2022-12-10 16:45:29 +08:00
parent 7975f9b797
commit 50989aa997
2 changed files with 92 additions and 5 deletions

View File

@ -406,15 +406,18 @@ class ExcelFillCellMergeStrategy implements CellWriteHandler {
/** /**
* *
* *
* @param writeSheetHolder * @param writeSheetHolder
* @param cell * @param cell
* @param curRowIndex * @param curRowIndex
* @param curColIndex * @param curColIndex
*/ */
private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) { private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) {
// 获取当前单元格的数据
Object curData = Object curData =
cell.getCellTypeEnum() == CellType.STRING ? cell.getStringCellValue() : cell.getNumericCellValue(); cell.getCellTypeEnum() == CellType.STRING ? cell.getStringCellValue() : cell.getNumericCellValue();
// 获取当前shert表
Sheet sheet1 = cell.getSheet(); Sheet sheet1 = cell.getSheet();
// 获取当前的行,有可能获取到空行
Row row = sheet1.getRow(curRowIndex - 1); Row row = sheet1.getRow(curRowIndex - 1);
if (row == null) { if (row == null) {
row = sheet1.getRow(curRowIndex); row = sheet1.getRow(curRowIndex);

View File

@ -119,7 +119,7 @@ myComp.setState({test1: test2});
```css ```css
/*修改url字体文件上传到cloudstore/iconfont/xx/下,没有目录自己创建*/ /*修改url字体文件上传到cloudstore/iconfont/xx/下,没有目录自己创建*/
/*修改font-family,命名为其他名称防止与系统自带的或与其他iconfont冲突*/ /*修改font-family,命名为其他名称防止与系统自带的或与其他iconfont冲突并将修改后的css文件内容copy到ecode中将文件夹发布并且将css样式文件前置加载*/
@font-face { @font-face {
font-family: "cus_iconfont"; /* Project id 3789451 */ font-family: "cus_iconfont"; /* Project id 3789451 */
src: url('/cloudstore/iconfont/pcn/iconfont.woff2?t=1669223019749') format('woff2'), src: url('/cloudstore/iconfont/pcn/iconfont.woff2?t=1669223019749') format('woff2'),
@ -137,6 +137,90 @@ myComp.setState({test1: test2});
} }
``` ```
**7.ecode组件样式引入(非前值加载)**
> 维护人员 youhong.ai
在ecode开发时需要编写css样式文件但是偶尔会出现className与其他组件的className一样导致样式发生覆盖或影响原来的组件的样式前置加载会将css文件合并到init。css中并且会全局引入所以可能会造成样式污染
在ecode中找到config文件夹找到config.js文件可以看到的是js文件属于前置加载我们只需要在这个js文件中将css文件动态添加到页面中就可以了
```js
$(() => {
if (window.location.hash.indexOf("${appId}_organization-chart") !== -1) {
loadCssArr(['index.css'])
/* ******************** 下面两个文件为开发新页面时候如果用户登陆超时用于集成系统登陆弹窗的依赖和css样式文件 ******************* */
// loadJs('/spa/portal/public/index.js')
// loadCss('/spa/portal/public/index.css')
// 使用方法当请求结果返回的errorCode === '002',然后调用下面的方法
// doLoginPop()
}
})
/**
* 加载当前appId下的css资源文件
* @param cssArr css文件名称数组 所有的css会被合并为index.css
*/
function loadCssArr(cssArr) {
cssArr.forEach(item => {
let href = '/cloudstore/release/${appId}/' + item;
loadCss(href)
})
}
/**
* 加载自定义的css样式文件可以用于加载上传到resources文件加下的css文件需要自己拼接路径
* @param url 样式文件的路径
*/
function loadCss(url) {
const head = document.getElementsByTagName('head')[0];
const link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = url;
head.appendChild(link);
}
/**
* 加载当前ecode文件夹下的js文件一般js文件会被打包成index.js文件
* @param jsArr js文件名数组
*/
function loadJsArr(jsArr) {
jsArr.forEach(item => {
let src = href = '/cloudstore/release/${appId}/' + item;
loadJs(src)
})
}
/**
* 加载自定义js文件可用于加载第三方js库
* @param url js文件路径
* @param callback 加载完成后回调方法
*/
function loadJs(url, callback) {
let script = document.createElement('script'),
fn = callback || function () {
};
script.type = 'text/javascript';
//IE
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == 'loaded' || script.readyState == 'complete') {
script.onreadystatechange = null;
fn();
}
};
} else {
//其他浏览器
script.onload = function () {
fn();
};
}
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
```
### 数据库 ### 数据库
**备份mysql数据库** **备份mysql数据库**