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
f0405184
Commit
f0405184
authored
Jul 10, 2023
by
lvzhuangzhuang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化导出
parent
a262f3b0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
824 additions
and
251 deletions
+824
-251
ruoyi-ui/src/views/system/supplies/index_back2.vue
ruoyi-ui/src/views/system/supplies/index_back2.vue
+441
-0
ruoyi-ui/src/views/system/supplies/index_template.vue
ruoyi-ui/src/views/system/supplies/index_template.vue
+383
-251
No files found.
ruoyi-ui/src/views/system/supplies/index_back2.vue
0 → 100644
View file @
f0405184
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"queryForm"
size=
"small"
:inline=
"true"
label-width=
"68px"
>
<el-form-item
label=
"模板"
prop=
"name"
>
<el-select
v-model=
"selectedOption"
size=
"mini"
@
change=
"handleOptionChange"
placeholder=
"请选择你要查看的模板"
>
<!--
<el-option
label=
"自设的模板名"
value=
"这里是Excel表内容"
></el-option>
-->
<el-option
v-for=
"item in depss"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<!--
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
>
搜索
</el-button>
-->
<!--
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
-->
<!--
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
>
搜索
</el-button>
-->
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"dialogVisible = true"
>
保存
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-s-promotion"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['ruoyi-myexcel:myexcel:export']"
>
导出
</el-button>
</el-col>
<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-upload2"
type=
"primary"
>
导入
</el-button>
</el-upload>
</el-col>
<!--
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
-->
</el-row>
<!-- luckysheet容器 -->
<!--
<div
id=
"luckysheetContainer"
></div>
-->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;height: 800px; left: 0px; top: 110px; bottom: 0px; z-index: 0"
>
</div>
<!-- 用户添加或修改我的Excel表格的弹框 -->
<el-dialog
title=
"是否确认保存?"
:visible.sync=
"dialogVisible"
width=
"30%"
style=
"z-index: 1; "
:before-close=
"handleClose"
>
<el-form
label-width=
"80px"
@
submit
.
native
.
prevent
>
<el-form-item
label=
"名称"
>
<!-- onkeypress="if (event.keyCode == 13) return false" //关闭enter的触发事件 -->
<el-input
v-model=
"from_name"
@
keyup.enter.native=
"handleEnter"
placeholder=
"请输入名称"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submit_from"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
$
from
'
jquery
'
/*安装插件 npm install xlsx,安装完成后引入 import XLSX from ‘xlsx’*/
import
XLSX
from
'
xlsx
'
import
{
addMyluckyexcel
,
getMyluckyexcel
,
listMyluckyexcel
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
luckysheet
from
'
luckysheet
'
import
LuckyExcel
from
'
luckyexcel
'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import
{
exportExcel
}
from
'
../../../../public/luckysheet/exportExcel
'
export
default
{
name
:
"
Mymodule
"
,
data
()
{
return
{
//弹出页面的表名
from_name
:
""
,
// 是否显示弹出层
dialogVisible
:
false
,
selectedOption
:
''
,
luckysheetData
:
''
,
fileList
:[],
depss
:[],
// 表单参数
form
:
{},
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
name
:
null
,
content
:
null
},
};
},
created
()
{
//刷新页面时进行的操作
this
.
getList
();
},
mounted
()
{
this
.
init
();
},
methods
:{
/** 页面刷新时展示的数据*/
getList
()
{
listMyluckyexcel
(
this
.
queryParams
).
then
(
response
=>
{
this
.
depss
=
response
.
rows
;
});
},
/** 下拉选和页面luckysheet绑定 */
handleOptionChange
()
{
//根据选中的下拉选项值获取相应的信息
getMyluckyexcel
(
this
.
selectedOption
).
then
(
response
=>
{
const
sysSupplies
=
response
.
data
;
this
.
luckysheetData
=
sysSupplies
.
jsons
;
//将接收到的json存到json_data中
//const json_data = response.data;
let
json_data
=
JSON
.
parse
(
sysSupplies
.
jsons
);
let
filename
=
sysSupplies
.
name
;
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
filename
,
// Excel 文件名
data
:
json_data
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
});
}).
catch
(()
=>
{
// 处理错误逻辑,这里是一个空的错误处理函数
this
.
$message
.
error
(
'
暂停失败,发生未知错误!
'
);
});
},
/** 导出设置 */
handleExport
(){
exportExcel
(
luckysheet
.
getAllSheets
(),
'
导出
'
)
},
/** 弹出的确认框关闭 */
handleClose
(
done
)
{
this
.
$confirm
(
'
确认关闭?
'
)
.
then
(
_
=>
{
done
();
})
.
catch
(
_
=>
{});
},
/** 回车事件和保存提交绑定 */
handleEnter
(
event
)
{
if
(
event
.
keyCode
===
13
)
{
event
.
preventDefault
();
// 阻止默认的回车事件
// 触发确定操作
this
.
submit_from
();
}
},
/** 保存到数据库*/
submit_from
()
{
const
name
=
this
.
from_name
if
(
name
!=
""
){
let
objsheet
=
luckysheet
.
getAllSheets
()
// 得到表的数据
//LuckyExcel = objsheet // 将表的数据保存本地
let
strsheet
=
JSON
.
stringify
(
objsheet
)
// 对象转化为字符串
const
data
=
{
name
:
name
,
jsons
:
strsheet
};
addMyluckyexcel
(
data
).
then
(
response
=>
{
if
(
response
.
code
==
200
){
this
.
$message
({
message
:
'
保存成功
'
,
type
:
'
success
'
});
this
.
dialogVisible
=
false
;
//this.$router.replace({ path: '/' }); //刷新整个页面会出错
//window.location.reload();//也是全局刷新,不合适
this
.
$router
.
go
(
-
1
);
}
else
{
this
.
$message
.
error
(
'
保存失败
'
);
}
});
}
else
{
this
.
$message
.
error
(
'
请输入表格名称后再进行保存!
'
);
}
},
/* 重置按钮操作 */
resetQuery
()
{
luckysheet
.
destroy
()
let
options
=
{
container
:
'
luckysheet
'
,
//luckysheet为容器id
title
:
''
,
lang
:
'
zh
'
,
showinfobar
:
false
,
data
:[
{
"
name
"
:
"
sheet1
"
,
//工作表名称
"
color
"
:
""
,
//工作表颜色
"
index
"
:
0
,
//工作表索引
"
status
"
:
1
,
//激活状态
"
order
"
:
0
,
//工作表的下标
"
hide
"
:
0
,
//是否隐藏
"
row
"
:
20
,
//行数
"
column
"
:
15
,
//列数
"
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
)
},
/*// 表单重置
reset() {
this.form = {
id: null,
name: null,
description: null
};
this.resetForm("form");
},
/!** 搜索按钮操作 *!/
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/!** 导出按钮操作 *!/
handleExport() {
this.download('ruoyi-mymodule/mymodule/export', {
...this.queryParams
}, `mymodule_${new Date().getTime()}.xlsx`)
},*/
/** 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
"
:
20
,
//行数
"
column
"
:
15
,
//列数
"
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
)
},
Excel
(
e
)
{
let
that
=
this
// 错误情况判断
const
files
=
e
.
target
.
files
if
(
files
.
length
<=
0
)
{
return
false
;
}
else
if
(
!
/
\.(
xls|xlsx
)
$/
.
test
(
files
[
0
].
name
.
toLowerCase
()))
{
this
.
$message
({
message
:
"
上传格式不正确,请上传xls或者xlsx格式
"
,
type
:
"
warning
"
});
return
false
}
else
{
that
.
upload_file
=
files
[
0
].
name
}
// 读取表格
const
fileReader
=
new
FileReader
()
fileReader
.
onload
=
ev
=>
{
try
{
const
data
=
ev
.
target
.
result
;
const
workbook
=
XLSX
.
read
(
data
,
{
type
:
"
binary
"
})
// 读取第一张表
const
wsname
=
workbook
.
SheetNames
[
0
]
const
ws
=
XLSX
.
utils
.
sheet_to_json
(
workbook
.
Sheets
[
wsname
])
// 打印 ws 就可以看到读取出的表格数据
console
.
log
(
ws
)
// 定义一个新数组,存放处理后的表格数据
that
.
lists
=
[]
ws
.
forEach
(
item
=>
{
that
.
lists
.
push
({
// 对ws进行处理后放进lists内
})
})
// 调用方法将lists数组发送给后端
this
.
submit_form
(
that
.
lists
)
}
catch
(
e
)
{
return
false
}
}
fileReader
.
readAsBinaryString
(
files
[
0
])
},
/** 导入事件*/
handleFileChange
(
evt
)
{
let
name
=
evt
.
name
let
suffixArr
=
name
.
split
(
'
.
'
),
suffix
=
suffixArr
[
suffixArr
.
length
-
1
]
if
(
suffix
!=
'
xlsx
'
)
{
alert
(
'
当前仅支持导入xlsx文件
'
)
return
}
LuckyExcel
.
transformExcelToLucky
(
evt
,
function
(
exportJson
,
luckysheetfile
)
{
if
(
exportJson
.
sheets
==
null
||
exportJson
.
sheets
.
length
==
0
)
{
alert
(
'
无法读取excel文件的内容,目前不支持xls文件!
'
)
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
})
}
)
},
}
// 配置项
};
</
script
>
ruoyi-ui/src/views/system/supplies/index_template.vue
View file @
f0405184
<
template
>
<div
class=
"hello"
>
<div
style=
"position: absolute; top: 0"
>
<!--保存-->
<el-button
type=
"primary"
@
click=
"saveExcel"
v-has-permi=
"['system:supplies:save']"
>
保存
</el-button>
<!--修改-->
<el-button
type=
"primary"
@
click=
"editExcel"
v-has-permi=
"['system:supplies:edit']"
>
修改
</el-button>
<!--删除-->
<el-button
type=
"primary"
@
click=
"deleteExcel"
v-has-permi=
"['system:supplies:delete']"
>
删除
</el-button>
<!--导出-->
<el-button
type=
"primary"
@
click=
"deriveExcel"
>
导出
</el-button>
<!--导入-->
<input
style=
"font-size: 16px"
type=
"file"
@
change=
"uploadExcel"
/>
<!--导入-->
<input
style=
"font-size: 16px"
type=
"file"
@
change=
"uploadExcel2"
/>
<!--隐藏id-->
<input
style=
"font-size: 16px"
id=
"id"
type=
"text"
value=
''
/>
<div
class=
"app-container"
>
<el-form
ref=
"queryForm"
size=
"small"
:inline=
"true"
label-width=
"68px"
>
<el-form-item
label=
"模板"
prop=
"name"
>
<el-select
v-model=
"selectedOption"
size=
"mini"
@
change=
"handleOptionChange"
placeholder=
"请选择你要查看的模板"
>
<!--
<el-option
label=
"自设的模板名"
value=
"这里是Excel表内容"
></el-option>
-->
<el-option
v-for=
"item in depss"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<!--
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
>
搜索
</el-button>
-->
<!--
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
-->
<!--
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
>
搜索
</el-button>
-->
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"dialogVisible = true"
>
保存
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-s-promotion"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['ruoyi-myexcel:myexcel:export']"
>
导出
</el-button>
</el-col>
<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-upload2"
type=
"primary"
>
导入
</el-button>
<a
href=
"javascript:void(0)"
@
click=
"downloadExcel"
>
下载选择的模板
</a>
</el-upload>
</el-col>
<!--
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
-->
</el-row>
<!-- luckysheet容器 -->
<!--
<div
id=
"luckysheetContainer"
></div>
-->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;height: 800px; left: 0px; top: 110px; bottom: 0px; z-index: 0"
>
</div>
<div
id=
"luckysheet"
style=
"margin: 0px;padding: 0px;position: absolute;width: 100%;height: 1000px;left: 0px;top: 150px;bottom: 0px;"
></div>
<div
v-show=
"isMaskShow"
style=
"position: absolute;z-index: 1000000;left: 0px;top: 0px;bottom: 0px;right: 0px;background: rgba(255, 255, 255, 0.8);text-align: center;font-size: 40px;align-items: center;ustify-content: center;display: flex;"
>
Downloading
</div>
<!-- 用户添加或修改我的Excel表格的弹框 -->
<el-dialog
title=
"是否确认保存?"
:visible.sync=
"dialogVisible"
width=
"30%"
style=
"z-index: 1; "
:before-close=
"handleClose"
>
<el-form
label-width=
"80px"
@
submit
.
native
.
prevent
>
<el-form-item
label=
"名称"
>
<!-- onkeypress="if (event.keyCode == 13) return false" //关闭enter的触发事件 -->
<el-input
v-model=
"from_name"
@
keyup.enter.native=
"handleEnter"
placeholder=
"请输入名称"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submit_from"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
$
from
'
jquery
'
/*安装插件 npm install xlsx,安装完成后引入 import XLSX from ‘xlsx’*/
import
XLSX
from
'
xlsx
'
import
{
addMyluckyexcel
,
getMyluckyexcel
,
listMyluckyexcel
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
luckysheet
from
'
luckysheet
'
import
LuckyExcel
from
'
luckyexcel
'
import
axios
from
'
axios
'
;
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import
{
exportExcel
}
from
'
../../../../public/luckysheet/exportExcel
'
import
{
getToken
}
from
'
../../../utils/auth
'
var
uploadExcel1
;
var
uploadExcel2
;
export
default
{
name
:
'
wzgl
'
,
props
:
{
msg
:
String
},
name
:
"
Mymodule
"
,
data
()
{
return
{
//弹出页面的表名
from_name
:
""
,
// 是否显示弹出层
dialogVisible
:
false
,
selectedOption
:
''
,
luckysheetData
:
''
,
fileList
:[],
depss
:[],
// 表单参数
form
:
{},
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
name
:
null
,
content
:
null
},
};
},
created
()
{
//刷新页面时进行的操作
this
.
getList
();
},
mounted
()
{
// In some cases, you need to use $nextTick
// this.$nextTick(() => {
//
// })
luckysheet
.
create
({
container
:
'
luckysheet
'
,
// 设定DOM容器的id
title
:
'
Luckysheet Demo
'
,
// 设定表格名称
lang
:
'
zh
'
,
// 设定表格语言
plugins
:[
'
chart
'
],
showinfobar
:
false
,
data
:[
{
"
name
"
:
"
Cell
"
,
//工作表名称
"
color
"
:
""
,
//工作表颜色
"
index
"
:
0
,
//工作表索引
"
status
"
:
1
,
//激活状态
"
order
"
:
0
,
//工作表的下标
"
hide
"
:
0
,
//是否隐藏
"
row
"
:
36
,
//行数
"
column
"
:
18
,
//列数
"
defaultRowHeight
"
:
19
,
//自定义行高
"
defaultColWidth
"
:
73
,
//自定义列宽
"
celldata
"
:
[],
//初始化使用的单元格数据
"
config
"
:
{
"
merge
"
:{},
//合并单元格
"
rowlen
"
:{},
//表格行高
"
columnlen
"
:{},
//表格列宽
"
rowhidden
"
:{},
//隐藏行
"
colhidden
"
:{},
//隐藏列
"
borderInfo
"
:{},
//边框
"
authority
"
:{},
//工作表保护
},
"
scrollLeft
"
:
0
,
//左右滚动条位置
"
scrollTop
"
:
315
,
//上下滚动条位置
"
luckysheet_select_save
"
:
[],
//选中的区域
"
calcChain
"
:
[],
//公式链
"
isPivotTable
"
:
false
,
//是否数据透视表
"
pivotTable
"
:{},
//数据透视表设置
"
filter_select
"
:
{},
//筛选范围
"
filter
"
:
null
,
//筛选配置
"
luckysheet_alternateformat_save
"
:
[],
//交替颜色
"
luckysheet_alternateformat_save_modelCustom
"
:
[],
//自定义交替颜色
"
luckysheet_conditionformat_save
"
:
{},
//条件格式
"
frozen
"
:
{},
//冻结行列配置
"
chart
"
:
[],
//图表配置
"
zoomRatio
"
:
1
,
// 缩放比例
"
image
"
:[],
//图片
"
showGridLines
"
:
1
,
//是否显示网格线
"
dataVerification
"
:{}
//数据验证配置
}
this
.
init
();
},
methods
:{
/** 页面刷新时展示的数据*/
getList
()
{
listMyluckyexcel
(
this
.
queryParams
).
then
(
response
=>
{
this
.
depss
=
response
.
rows
;
});
},
/** 下拉选和页面luckysheet绑定 */
handleOptionChange
()
{
//根据选中的下拉选项值获取相应的信息
getMyluckyexcel
(
this
.
selectedOption
).
then
(
response
=>
{
]
});
const
sysSupplies
=
response
.
data
;
},
this
.
luckysheetData
=
sysSupplies
.
jsons
;
//将接收到的json存到json_data中
//const json_data = response.data;
let
json_data
=
JSON
.
parse
(
sysSupplies
.
jsons
);
let
filename
=
sysSupplies
.
name
;
methods
:
{
uploadExcel
(
evt
)
{
const
files
=
evt
.
target
.
files
if
(
files
==
null
||
files
.
length
==
0
)
{
alert
(
'
没有文件等待导入
'
)
return
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
filename
,
// Excel 文件名
data
:
json_data
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
});
}).
catch
(()
=>
{
// 处理错误逻辑,这里是一个空的错误处理函数
this
.
$message
.
error
(
'
暂停失败,发生未知错误!
'
);
});
},
/** 导出设置 */
handleExport
(){
var
date
=
new
Date
().
getTime
();
exportExcel
(
luckysheet
.
getAllSheets
(),
'
导出
'
+
date
)
},
/** 弹出的确认框关闭 */
handleClose
(
done
)
{
this
.
$confirm
(
'
确认关闭?
'
)
.
then
(
_
=>
{
done
();
})
.
catch
(
_
=>
{});
},
/** 回车事件和保存提交绑定 */
handleEnter
(
event
)
{
if
(
event
.
keyCode
===
13
)
{
event
.
preventDefault
();
// 阻止默认的回车事件
// 触发确定操作
this
.
submit_from
();
}
},
/** 保存到数据库*/
submit_from
()
{
const
name
=
this
.
from_name
if
(
name
!=
""
){
let
objsheet
=
luckysheet
.
getAllSheets
()
// 得到表的数据
//LuckyExcel = objsheet // 将表的数据保存本地
let
strsheet
=
JSON
.
stringify
(
objsheet
)
// 对象转化为字符串
const
data
=
{
name
:
name
,
jsons
:
strsheet
};
addMyluckyexcel
(
data
).
then
(
response
=>
{
if
(
response
.
code
==
200
){
this
.
$message
({
message
:
'
保存成功
'
,
type
:
'
success
'
});
this
.
dialogVisible
=
false
;
//this.$router.replace({ path: '/' }); //刷新整个页面会出错
//window.location.reload();//也是全局刷新,不合适
this
.
$router
.
go
(
-
1
);
}
else
{
this
.
$message
.
error
(
'
保存失败
'
);
}
});
}
else
{
this
.
$message
.
error
(
'
请输入表格名称后再进行保存!
'
);
}
let
name
=
files
[
0
].
name
let
suffixArr
=
name
.
split
(
'
.
'
),
suffix
=
suffixArr
[
suffixArr
.
length
-
1
]
if
(
suffix
!=
'
xlsx
'
)
{
alert
(
'
当前仅支持导入xlsx文件
'
)
return
},
/* 重置按钮操作 */
resetQuery
()
{
luckysheet
.
destroy
()
let
options
=
{
container
:
'
luckysheet
'
,
//luckysheet为容器id
title
:
''
,
lang
:
'
zh
'
,
showinfobar
:
false
,
data
:[
{
"
name
"
:
"
sheet1
"
,
//工作表名称
"
color
"
:
""
,
//工作表颜色
"
index
"
:
0
,
//工作表索引
"
status
"
:
1
,
//激活状态
"
order
"
:
0
,
//工作表的下标
"
hide
"
:
0
,
//是否隐藏
"
row
"
:
20
,
//行数
"
column
"
:
15
,
//列数
"
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": {},
}*/
]
}
LuckyExcel
.
transformExcelToLucky
(
files
[
0
],
function
(
exportJson
,
luckysheetfile
)
{
uploadExcel1
=
exportJson
;
luckysheet
.
create
(
options
)
},
/*// 表单重置
reset() {
this.form = {
id: null,
name: null,
description: null
};
this.resetForm("form");
},
/!** 搜索按钮操作 *!/
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
if
(
exportJson
.
sheets
==
null
||
exportJson
.
sheets
.
length
==
0
)
{
alert
(
'
无法读取excel文件的内容,目前不支持xls文件!
'
)
return
}
//赋值
var
ss
=
exportJson
.
sheets
[
0
].
celldata
[
0
].
v
.
v
;
uploadExcel2
.
sheets
[
0
].
celldata
[
0
].
v
.
v
=
ss
;
exportJson
=
uploadExcel2
;
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/!** 导出按钮操作 *!/
handleExport() {
this.download('ruoyi-mymodule/mymodule/export', {
...this.queryParams
}, `mymodule_${new Date().getTime()}.xlsx`)
},*/
/** 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
"
:
20
,
//行数
"
column
"
:
15
,
//列数
"
defaultRowHeight
"
:
19
,
//自定义行高
"
defaultColWidth
"
:
73
,
//自定义列宽
"
celldata
"
:
[
window
.
luckysheet
.
destroy
()
window
.
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
],
//初始化使用的单元格数据
"
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
)
},
Excel
(
e
)
{
let
that
=
this
// 错误情况判断
const
files
=
e
.
target
.
files
if
(
files
.
length
<=
0
)
{
return
false
;
}
else
if
(
!
/
\.(
xls|xlsx
)
$/
.
test
(
files
[
0
].
name
.
toLowerCase
()))
{
this
.
$message
({
message
:
"
上传格式不正确,请上传xls或者xlsx格式
"
,
type
:
"
warning
"
});
return
false
}
else
{
that
.
upload_file
=
files
[
0
].
name
}
// 读取表格
const
fileReader
=
new
FileReader
()
fileReader
.
onload
=
ev
=>
{
try
{
const
data
=
ev
.
target
.
result
;
const
workbook
=
XLSX
.
read
(
data
,
{
type
:
"
binary
"
})
// 读取第一张表
const
wsname
=
workbook
.
SheetNames
[
0
]
const
ws
=
XLSX
.
utils
.
sheet_to_json
(
workbook
.
Sheets
[
wsname
])
// 打印 ws 就可以看到读取出的表格数据
console
.
log
(
ws
)
// 定义一个新数组,存放处理后的表格数据
that
.
lists
=
[]
ws
.
forEach
(
item
=>
{
that
.
lists
.
push
({
// 对ws进行处理后放进lists内
})
})
// 调用方法将lists数组发送给后端
this
.
submit_form
(
that
.
lists
)
}
catch
(
e
)
{
return
false
}
)
},
uploadExcel2
(
evt
)
{
const
files
=
evt
.
target
.
files
if
(
files
==
null
||
files
.
length
==
0
)
{
alert
(
'
没有文件等待导入
'
)
return
}
let
name
=
files
[
0
].
name
fileReader
.
readAsBinaryString
(
files
[
0
])
},
/** 导入事件*/
handleFileChange
(
evt
)
{
let
name
=
evt
.
name
let
suffixArr
=
name
.
split
(
'
.
'
),
suffix
=
suffixArr
[
suffixArr
.
length
-
1
]
if
(
suffix
!=
'
xlsx
'
)
{
...
...
@@ -161,56 +411,20 @@
return
}
LuckyExcel
.
transformExcelToLucky
(
files
[
0
]
,
evt
,
function
(
exportJson
,
luckysheetfile
)
{
uploadExcel2
=
exportJson
;
/*var obj=$.parseJSON(ss);*/
if
(
exportJson
.
sheets
==
null
||
exportJson
.
sheets
.
length
==
0
)
{
alert
(
'
无法读取excel文件的内容,目前不支持xls文件!
'
)
return
}
window
.
luckysheet
.
destroy
()
window
.
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
})
}
)
},
//查询模板
selectExcel
(
evt
)
{
const
value
=
this
.
selected
const
name
=
evt
.
target
.
options
[
evt
.
target
.
selectedIndex
].
innerText
if
(
value
==
''
)
{
return
}
this
.
isMaskShow
=
true
LuckyExcel
.
transformExcelToLuckyByUrl
(
value
,
name
,
(
exportJson
,
luckysheetfile
)
=>
{
if
(
exportJson
.
sheets
==
null
||
exportJson
.
sheets
.
length
==
0
)
{
alert
(
'
无法读取excel文件的内容,目前不支持xls文件
!
'
'
无法读取excel文件的内容,目前不支持xls文件
!
'
)
return
}
this
.
isMaskShow
=
false
window
.
luckysheet
.
destroy
()
luckysheet
.
destroy
()
window
.
luckysheet
.
create
({
luckysheet
.
create
({
container
:
'
luckysheet
'
,
//luckysheet is the container id
title
:
exportJson
.
info
.
name
,
lang
:
'
zh
'
,
// 设定表格语言
...
...
@@ -221,90 +435,8 @@
}
)
},
//下载模板
downloadExcel
()
{
const
value
=
this
.
selected
if
(
value
.
length
==
0
)
{
alert
(
'
请选择一个模板!
'
)
return
}
var
elemIF
=
document
.
getElementById
(
'
Lucky-download-frame
'
)
if
(
elemIF
==
null
)
{
elemIF
=
document
.
createElement
(
'
iframe
'
)
elemIF
.
style
.
display
=
'
none
'
elemIF
.
id
=
'
Lucky-download-frame
'
document
.
body
.
appendChild
(
elemIF
)
}
elemIF
.
src
=
value
},
//导出
deriveExcel
()
{
var
qqqqq
=
window
.
luckysheet
.
getAllSheets
();
debugger
exportExcel
(
window
.
luckysheet
.
getAllSheets
(),
'
导出
'
)
},
//保存
saveExcel
(){
var
luckysheetfile
=
window
.
luckysheet
.
getLuckysheetfile
();
var
s
=
JSON
.
stringify
(
luckysheetfile
);
// 发ajax请求,用以获取数据
// 发送 POST 请求
axios
({
method
:
'
post
'
,
url
:
process
.
env
.
VUE_APP_BASE_API
+
'
/system/supplies/save
'
,
headers
:{
Authorization
:
"
Bearer
"
+
getToken
(),
},
data
:
{
"
jsons
"
:
s
}
}).
then
(
response
=>
{
//返回数据
alert
(
response
.
data
);
});
},
//修改
editExcel
(){
var
luckysheetfile
=
window
.
luckysheet
.
getLuckysheetfile
();
var
s
=
JSON
.
stringify
(
luckysheetfile
);
// 发ajax请求,用以获取数据
// 发送 POST 请求
axios
({
method
:
'
post
'
,
url
:
process
.
env
.
VUE_APP_BASE_API
+
'
/system/supplies/edit
'
,
headers
:{
Authorization
:
"
Bearer
"
+
getToken
(),
},
data
:
{
"
jsons
"
:
s
}
}).
then
(
response
=>
{
//返回数据
alert
(
response
.
data
);
});
}
}
}
</
script
>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<
style
scoped
>
h3
{
margin
:
40px
0
0
;
}
ul
{
list-style-type
:
none
;
padding
:
0
;
}
li
{
display
:
inline-block
;
margin
:
0
10px
;
}
a
{
color
:
#42b983
;
}
</
style
>
// 配置项
};
</
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