|
@@ -263,9 +263,23 @@ created() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- // 处理复制粘贴造成的漏洞 - 还原数据
|
|
|
|
|
|
+ // 处理复制粘贴造成的漏洞 - 还原数据 PS:这个钩子函数只有在单元格在可是区域内才会执行
|
|
this.options.hook.cellRenderBefore=(cell,position,sheet,ctx)=>{
|
|
this.options.hook.cellRenderBefore=(cell,position,sheet,ctx)=>{
|
|
- // console.log('cellRenderBeforecellRenderBefore');
|
|
|
|
|
|
+ // 清除两边空格
|
|
|
|
+ if(cell && cell.m && typeof(cell.m)=='string'){
|
|
|
|
+ cell.m = cell.m.trim()
|
|
|
|
+ }
|
|
|
|
+ if(cell && cell.v && typeof(cell.v)=='string'){
|
|
|
|
+ cell.v = cell.v.trim()
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 从excel整个单元格复制,到这里进入编辑模式的粘贴,出来个cell.ct.s,不知道啥东西,官网也没写
|
|
|
|
+ * 看似有内容,实则保存没内容,因为cell.m和cell.v 都是空。直接清掉了
|
|
|
|
+ */
|
|
|
|
+ if(cell && cell.ct && cell.ct.s){
|
|
|
|
+ cell.ct.s=''
|
|
|
|
+ }
|
|
|
|
+
|
|
// 是否更改了受保护的数据
|
|
// 是否更改了受保护的数据
|
|
let haveUpdatedProtectedData=false
|
|
let haveUpdatedProtectedData=false
|
|
if([3,4].includes(position.r) && position.c>=0 && position.c<=dataList.length){
|
|
if([3,4].includes(position.r) && position.c>=0 && position.c<=dataList.length){
|
|
@@ -318,7 +332,6 @@ created() {
|
|
this.refreshManual()
|
|
this.refreshManual()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
// 拿出所有数组
|
|
// 拿出所有数组
|
|
let arr = dataList.map((item => item.DataList)).flat()
|
|
let arr = dataList.map((item => item.DataList)).flat()
|
|
// 拿出所有数组的日期并展平排序
|
|
// 拿出所有数组的日期并展平排序
|
|
@@ -509,27 +522,16 @@ created() {
|
|
this.secondClassName = this.secondClassifyArray[0].ClassifyName
|
|
this.secondClassName = this.secondClassifyArray[0].ClassifyName
|
|
}
|
|
}
|
|
luckysheet.refresh()
|
|
luckysheet.refresh()
|
|
- // for (let i= 1; i< col+1 ; i++) {
|
|
|
|
- // luckysheet.setCellValue(0,i,this.firstClassName,{isRefresh:false})
|
|
|
|
- // luckysheet.setCellValue(1,i,this.secondClassName,{isRefresh:i==col?true:false})
|
|
|
|
- // }
|
|
|
|
},
|
|
},
|
|
// 切换选择二级分类
|
|
// 切换选择二级分类
|
|
changeSecondClassify(id){
|
|
changeSecondClassify(id){
|
|
let col = this.options.column
|
|
let col = this.options.column
|
|
let item = this.secondClassifyArray.find(item => item.ClassifyId == id)
|
|
let item = this.secondClassifyArray.find(item => item.ClassifyId == id)
|
|
this.secondClassName=item.ClassifyName
|
|
this.secondClassName=item.ClassifyName
|
|
- // for (let i= 1; i< col+1; i++) {
|
|
|
|
- // luckysheet.setCellValue(1,i,this.secondClassName,{isRefresh:i==col?true:false})
|
|
|
|
- // }
|
|
|
|
luckysheet.refresh()
|
|
luckysheet.refresh()
|
|
},
|
|
},
|
|
// 切换选择频度
|
|
// 切换选择频度
|
|
changeFrequency(value){
|
|
changeFrequency(value){
|
|
- // let col = this.options.column
|
|
|
|
- // for (let i= 1; i< col+1; i++) {
|
|
|
|
- // luckysheet.setCellValue(2,i,value,{isRefresh:i==col?true:false})
|
|
|
|
- // }
|
|
|
|
luckysheet.refresh()
|
|
luckysheet.refresh()
|
|
},
|
|
},
|
|
saveExcel(){
|
|
saveExcel(){
|
|
@@ -537,6 +539,16 @@ created() {
|
|
if(valid){
|
|
if(valid){
|
|
this.saveLoading=true
|
|
this.saveLoading=true
|
|
let data = luckysheet.getAllSheets()
|
|
let data = luckysheet.getAllSheets()
|
|
|
|
+ for (let i = 0; i < data[0].data.length; i++) {
|
|
|
|
+ // 清除日期列的两边的空格,防止保存时日期变成0000-00-00
|
|
|
|
+ const element = data[0].data[i][0];
|
|
|
|
+ if(element && element.v && typeof(element.v)=='string'){
|
|
|
|
+ element.v = element.v.trim()
|
|
|
|
+ }
|
|
|
|
+ if(element && element.m && typeof(element.m)=='string'){
|
|
|
|
+ element.m = element.m.trim()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
dataInterence.saveOnlineExcel({...data[0],ClassifyId:this.dataForm.secondClassify}).then(res=>{
|
|
dataInterence.saveOnlineExcel({...data[0],ClassifyId:this.dataForm.secondClassify}).then(res=>{
|
|
if(res.Ret == 200) {
|
|
if(res.Ret == 200) {
|
|
this.setCache('submit')
|
|
this.setCache('submit')
|