Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
klck
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
位宇华
klck
Commits
bd4578bd
Commit
bd4578bd
authored
Aug 04, 2023
by
lvzhuangzhuang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
59f1cc92
a3d95a9a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
365 additions
and
0 deletions
+365
-0
ruoyi-ui/src/views/system/supplies/indexupload.vue
ruoyi-ui/src/views/system/supplies/indexupload.vue
+365
-0
No files found.
ruoyi-ui/src/views/system/supplies/indexupload.vue
0 → 100644
View file @
bd4578bd
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"queryForm"
size=
"small"
:inline=
"true"
>
<el-form-item
label=
"行"
prop=
"row"
>
<el-input
v-model=
"row"
placeholder=
"请输入开始行"
clearable
@
keyup.enter.native=
"handleFileChange1"
maxlength=
"8"
/>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-upload
type=
"file"
name=
"file"
ref=
"upload"
:before-upload=
"handleFileChange"
action=
''
:limit=
"1"
:file-list=
"fileList"
>
<el-button
plain
size=
"mini"
icon=
"el-icon-download"
type=
"primary"
>
导入初始文件
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"1.5"
>
<el-upload
type=
"file"
name=
"file"
ref=
"upload"
:before-upload=
"handleFileChange1"
action=
''
:limit=
"1"
:file-list=
"fileList"
:disabled=
"disableNextButton"
>
<el-button
plain
size=
"mini"
icon=
"el-icon-download"
type=
"primary"
:disabled=
"disableNextButton"
>
导入对比文件
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['ruoyi-myexcel:myexcel:export']"
>
导出
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"addToMap"
>
生成
</el-button>
</el-col><el-col
:span=
"1.5"
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-col>
</el-row>
<!-- luckysheet容器 -->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;left: 0px; top: 120px; height: 1000px; z-index: 0"
>
</div>
</div>
</
template
>
<
script
>
/*import luckysheet from 'luckysheet'*/
import
LuckyExcel
from
'
luckyexcel
'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
import
{
vueScript
}
from
"
@/utils/generator/html
"
;
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
data1
;
var
name1
;
var
map
=
new
Map
();
export
default
{
name
:
"
Mymodule
"
,
data
()
{
return
{
row
:
''
,
//弹出页面的表名
// 是否显示弹出层
fileList
:[],
disableNextButton
:
true
,
// 查询参数
queryParams
:
{
status
:
0
},
};
},
created
()
{
},
mounted
()
{
this
.
init
();
fileName
=
"
新建XLSX工作表
"
;
},
methods
:{
/** 回车事件和保存提交绑定 */
handleEnter
(
event
)
{
if
(
event
.
keyCode
===
13
)
{
event
.
preventDefault
();
// 阻止默认的回车事件
// 触发确定操作
this
.
submit_from
();
}
},
/** 重置按钮操作 */
resetQuery
()
{
//刷新下拉选框内容
fileName
=
"
新建XLSX工作表
"
;
this
.
disableNextButton
=
''
;
this
.
row
=
""
;
//刷新luckysheet表格
this
.
init
();
map
.
clear
();
},
/** Luckyexcel文档 */
init
()
{
let
options
=
{
container
:
'
luckysheet
'
,
//luckysheet为容器id
title
:
''
,
lang
:
'
zh
'
,
showinfobar
:
false
,
data
:[
{
"
name
"
:
"
sheet1
"
,
//工作表名称
"
color
"
:
""
,
//工作表颜色
"
index
"
:
0
,
//工作表索引
"
status
"
:
1
,
//激活状态
"
order
"
:
0
,
//工作表的下标
"
hide
"
:
0
,
//是否隐藏
"
row
"
:
50
,
//行数
"
column
"
:
50
,
//列数
"
defaultRowHeight
"
:
19
,
//自定义行高
"
defaultColWidth
"
:
73
,
//自定义列宽
"
celldata
"
:
[
],
//初始化使用的单元格数据
"
config
"
:
{
"
merge
"
:
{
},
//合并单元格
"
rowlen
"
:{},
//表格行高
"
columnlen
"
:{},
//表格列宽
"
rowhidden
"
:{},
//隐藏行
"
colhidden
"
:{},
//隐藏列
"
borderInfo
"
:{
},
//边框
"
authority
"
:{},
//工作表保护
},
},
/*{
"name": "Sheet2",
"color": "",
"index": 1,
"status": 0,
"order": 1,
"celldata": [],
"config": {}
},
{
"name": "Sheet3",
"color": "",
"index": 2,
"status": 0,
"order": 2,
"celldata": [],
"config": {},
}*/
]
}
luckysheet
.
create
(
options
);
},
/** 导入事件*/
handleFileChange
(
evt
)
{
this
.
disableNextButton
=
false
;
let
name
=
evt
.
name
let
suffixArr
=
name
.
split
(
'
.
'
),
suffix
=
suffixArr
[
suffixArr
.
length
-
1
]
if
(
suffix
!==
'
xlsx
'
)
{
this
.
$message
({
message
:
"
上传格式不正确,请上传xlsx格式文件
"
,
type
:
"
warning
"
});
return
}
LuckyExcel
.
transformExcelToLucky
(
evt
,
(
exportJson
)
=>
{
if
(
exportJson
.
sheets
===
null
||
exportJson
.
sheets
.
length
===
0
)
{
this
.
$message
({
message
:
"
导入失败,请检查上传的文件是否正确
"
,
type
:
"
warning
"
});
return
}
luckysheet
.
destroy
()
luckysheet
.
create
({
container
:
'
luckysheet
'
,
//luckysheet is the container id
title
:
exportJson
.
info
.
name
,
lang
:
'
zh
'
,
// 设定表格语言
showinfobar
:
false
,
data
:
exportJson
.
sheets
,
userInfo
:
exportJson
.
info
.
name
.
creator
})
data1
=
exportJson
.
sheets
[
0
];
let
suffixArr
=
exportJson
.
info
.
name
.
split
(
'
.
'
);
fileName
=
suffixArr
[
0
];
this
.
row
=
''
;
}
)
},
addToMap
(){
console
.
log
(
map
);
map
.
forEach
((
value
,
key
)
=>
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
){
let
row
=
value
[
i
][
0
],
cell
=
value
[
i
][
1
];
let
sd
=
luckysheet
.
getCellValue
(
row
,
cell
,{
type
:
"
ps
"
});
if
(
sd
===
null
){
luckysheet
.
setCellValue
(
row
,
cell
,
{
bg
:
"
#FF0000
"
})
luckysheet
.
setCellValue
(
row
,
cell
,
{
ps
:
{
//批注
"
left
"
:
92
,
//批注框左边距
"
top
"
:
10
,
//批注框上边距
"
width
"
:
91
,
//批注框宽度
"
height
"
:
48
,
//批注框高度
"
value
"
:
key
+
"
表有误
"
,
//批准内容
"
isshow
"
:
false
//批注框为显示状态
}
})
}
else
{
let
sd
=
luckysheet
.
getCellValue
(
row
,
cell
,{
type
:
"
ps
"
}).
value
;
luckysheet
.
setCellValue
(
row
,
cell
,
{
ps
:
{
//批注
"
left
"
:
92
,
//批注框左边距
"
top
"
:
10
,
//批注框上边距
"
width
"
:
91
,
//批注框宽度
"
height
"
:
48
,
//批注框高度
"
value
"
:
sd
+
"
,
"
+
key
+
"
表有误
"
,
//批准内容
"
isshow
"
:
false
//批注框为显示状态
}
})
}
}
})
},
handleFileChange1
(
evt
)
{
if
(
this
.
row
===
""
)
{
this
.
$message
({
message
:
"
请先输入导入开始的行
"
,
type
:
"
warning
"
});
return
false
}
let
name
=
evt
.
name
let
suffixArr
=
name
.
split
(
'
.
'
),
suffix
=
suffixArr
[
suffixArr
.
length
-
1
];
name
=
suffixArr
[
0
]
if
(
suffix
!==
'
xlsx
'
)
{
this
.
$message
({
message
:
"
上传格式不正确,请上传xlsx格式文件
"
,
type
:
"
warning
"
});
return
}
LuckyExcel
.
transformExcelToLucky
(
evt
,
(
exportJson
)
=>
{
if
(
exportJson
.
sheets
===
null
||
exportJson
.
sheets
.
length
===
0
)
{
this
.
$message
({
message
:
"
导入失败,请检查上传的文件是否正确
"
,
type
:
"
warning
"
});
return
}
let
ddd
=
data1
;
let
as
=
0
;
let
d1
=
window
.
luckysheet
.
transToData
(
ddd
.
celldata
);
let
d2
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
0
].
celldata
);
name1
=
exportJson
.
sheets
[
0
].
name
;
let
array
=
[];
let
r
=
this
.
row
-
1
;
for
(
let
i
=
r
;
i
<
d1
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<=
d1
[
0
].
length
;
j
++
)
{
if
(
d1
[
i
][
j
]
===
null
){
}
else
if
(
d1
[
i
][
j
].
m
===
undefined
&&
d2
[
i
][
j
].
m
===
undefined
){
}
else
if
(
d1
[
i
][
j
].
m
===
undefined
||
d2
[
i
][
j
].
m
===
undefined
){
luckysheet
.
setCellValue
(
i
,
j
,
{
bg
:
"
#FF0000
"
})
as
++
array
.
push
([
i
,
j
]);
}
else
{
if
(
d1
[
i
][
j
].
m
!==
d2
[
i
][
j
].
m
)
{
luckysheet
.
setCellValue
(
i
,
j
,
{
bg
:
"
#FF0000
"
})
//查看是否有标签
/*luckysheet.setCellValue(i, j, {
ps: { //批注
"left": 92, //批注框左边距
"top": 10, //批注框上边距
"width": 91, //批注框宽度
"height": 48, //批注框高度
"value": this.dep+"表有误", //批准内容
"isshow": false //批注框为显示状态
}
})*/
as
++
array
.
push
([
i
,
j
]);
}
}
}
}
map
.
set
(
name1
,
array
);
console
.
log
(
map
);
if
(
as
>
0
){
this
.
$message
({
message
:
"
导入完成,本次导入共发现
"
+
as
+
"
条不同数据
"
,
type
:
"
warning
"
});
}
else
{
this
.
$message
({
message
:
"
导入完成,本次导入未发现不同数据
"
,
type
:
"
success
"
});
}
}
)
},
/** 导出设置 */
handleExport
:
debounce
(
function
()
{
// 处理点击事件
exportExcel
(
luckysheet
.
getAllSheets
(),
fileName
)
},
500
),
// 设置延迟时间,单位为毫秒
}
// 配置项111
};
// debounce函数定义
function
debounce
(
func
,
delay
)
{
let
timer
;
return
function
()
{
const
context
=
this
;
const
args
=
arguments
;
clearTimeout
(
timer
);
timer
=
setTimeout
(
function
()
{
func
.
apply
(
context
,
args
);
},
delay
);
};
}
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment