Commit 34e61bca authored by lvzhuangzhuang's avatar lvzhuangzhuang

Merge branch 'master' of http://192.168.111.222:3000/lzz/klck

# Conflicts:
#	ruoyi-ui/src/views/system/supplies/index.vue
parents 4866d009 c0a4ae40
...@@ -8,7 +8,7 @@ spring: ...@@ -8,7 +8,7 @@ spring:
master: master:
url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
username: root username: root
password: 123456 password: root
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
......
...@@ -216,7 +216,7 @@ ...@@ -216,7 +216,7 @@
<style> <style>
.el-dialog__header{ .el-dialog__header{
padding:20px 20px 10px; padding:20px 20px 10px;
background-color: #b8d1fb; background-color: dodgerblue;
} }
.el-dialog__headerbtn .el-dialog__close { .el-dialog__headerbtn .el-dialog__close {
color: #f5f8ff; color: #f5f8ff;
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="模板" prop="name"> <el-form-item label="模板" prop="name">
<el-select v-model="selectedOption" size="mini" @change="handleOptionChange" placeholder="请选择你要查看的模板"> <el-select v-model="selectedOption" ref="mySelect" size="mini" @change="handleOptionChange" placeholder="请选择你要查看的模板" >
<!-- <el-option label="自设的模板名" value="使用空白模板"></el-option>-->
<el-option <el-option
v-for="item in depss" v-for="item in depss" :key="item.id" :label="item.name" :value="item.id">
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<!--<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
...@@ -25,7 +24,7 @@ ...@@ -25,7 +24,7 @@
size="mini" size="mini"
@click="dialogVisible = true" @click="dialogVisible = true"
>保存</el-button> >保存</el-button>
</el-col>--> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
...@@ -34,27 +33,27 @@ ...@@ -34,27 +33,27 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['ruoyi-myexcel:myexcel:export']" v-hasPermi="['ruoyi-myexcel:myexcel:export']"
>导出 >导出</el-button>
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-upload <el-upload
type="file" type="file"
name="file" name="file"
ref="upload" ref="upload"
:before-upload="importExcel" :before-upload="handleFileChange"
action='' action=''
:limit="1" :limit="1"
:file-list="fileList" :file-list="fileList"
:disabled="disableNextButton"
> >
<el-button plain size="mini" icon="el-icon-upload2" type="primary">导入</el-button> <el-button plain size="mini" icon="el-icon-upload2" type="primary" :disabled="disableNextButton" >导入</el-button>
</el-upload> </el-upload>
</el-col> </el-col>
</el-row> </el-row>
<!-- luckysheet容器 -->
<div <div
id="luckysheet" id="luckysheet"
style="margin: 0px; padding: 0px; position: absolute; width: 100%;height: 800px; left: 0px; top: 110px; bottom: 0px; z-index: 0" style="margin: 0px; padding: 0px; position: absolute; width: 100%;height: 1000px; left: 0px; top: 110px; bottom: 0px; z-index: 0"
> >
</div> </div>
<!-- 用户添加或修改我的Excel表格的弹框 --> <!-- 用户添加或修改我的Excel表格的弹框 -->
...@@ -64,9 +63,12 @@ ...@@ -64,9 +63,12 @@
width="30%" width="30%"
style="z-index: 1; " style="z-index: 1; "
:before-close="handleClose"> :before-close="handleClose">
<el-form label-width="80px" @submit.native.prevent> <el-form label-width="80px" @submit.native.prevent>
<el-form-item label="名称"> <el-form-item label="名称" >
<el-input v-model="from_name" @keyup.enter.native="handleEnter" placeholder="请输入名称"/> <!-- onkeypress="if (event.keyCode == 13) return false" //关闭enter的触发事件 -->
<el-input v-model="from_name"
@keyup.enter.native="handleEnter"
placeholder="请输入名称" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
...@@ -77,280 +79,219 @@ ...@@ -77,280 +79,219 @@
</div> </div>
</template> </template>
<script> <script>
import $ from 'jquery' import $ from 'jquery'
/*安装插件 npm install xlsx,安装完成后引入 import XLSX from ‘xlsx’*/ /*安装插件 npm install xlsx,安装完成后引入 import XLSX from ‘xlsx’*/
import XLSX from 'xlsx' import XLSX from 'xlsx'
import { addMyluckyexcel, getMyluckyexcel, listMyluckyexcel } from '@/api/ruoyi-myLuckyexcel/myluckyexcel' import {addMyluckyexcel, getMyluckyexcel, listMyluckyexcel} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";
import luckysheet from 'luckysheet' import luckysheet from 'luckysheet'
import LuckyExcel from 'luckyexcel' import LuckyExcel from 'luckyexcel'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用! //导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import { exportExcel } from '../../../../public/luckysheet/exportExcel' import { exportExcel } from '../../../../public/luckysheet/exportExcel'
var exceltemp; export default {
export default { name: "Mymodule",
name: 'Mymodule', data() {
data() { return {
return { //弹出页面的表名
//弹出页面的表名 from_name : "",
from_name: '', // 是否显示弹出层
// 是否显示弹出层 dialogVisible : false,
dialogVisible: false, selectedOption:'',
selectedOption: '', luckysheetData: '',
luckysheetData: '', fileList:[],
fileList: [], disableNextButton: true,
depss: [], depss:[],
// 表单参数 // 表单参数
form: {}, form: {},
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
name: null, name: null,
content: null content: null
}
}
},
created() {
//刷新页面时进行的操作
this.getList()
},
mounted() {
this.init()
},
methods: {
/** 页面刷新时展示的数据*/
getList() {
listMyluckyexcel(this.queryParams).then(response => {
this.depss = response.rows
})
}, },
/** 下拉选和页面luckysheet绑定 */ };
handleOptionChange() { },
//根据选中的下拉选项值获取相应的信息 created() {
getMyluckyexcel(this.selectedOption).then(response => { //刷新页面时进行的操作
const sysSupplies = response.data
this.luckysheetData = sysSupplies.jsons this.getList();
},
mounted() {
//将接收到的json存到json_data中 this.init();
//const json_data = response.data; },
let json_data = JSON.parse(sysSupplies.jsons) methods:{
exceltemp = json_data; /** 页面刷新时展示的数据*/
let filename = sysSupplies.name getList() {
listMyluckyexcel(this.queryParams).then(response => {
this.depss = response.rows;
});
},
/** 下拉选和页面luckysheet绑定 */
handleOptionChange() {
//根据选中的下拉选项值获取相应的信息
getMyluckyexcel(this.selectedOption).then(response => {
luckysheet.create({ const sysSupplies = response.data;
container: 'luckysheet', // Luckysheet 的容器元素 ID this.disableNextButton = this.selectedOption === '';
title: filename, // Excel 文件名 this.luckysheetData = sysSupplies.jsons;
data: json_data, // Excel 数据 //将接收到的json存到json_data中
showinfobar: false, //是否显示顶部名称栏 //const json_data = response.data;
lang: 'zh' let json_data = JSON.parse(sysSupplies.jsons);
}) let filename= sysSupplies.name;
}).catch(() => { luckysheet.create({
// 处理错误逻辑,这里是一个空的错误处理函数 container: "luckysheet", // Luckysheet 的容器元素 ID
this.$message.error('暂停失败,发生未知错误!') title: filename, // Excel 文件名
data: json_data, // Excel 数据
showinfobar: false, //是否显示顶部名称栏
lang:'zh',
});
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
this.$message.error('查询失败,发生未知错误!');
});
},
/** 弹出的确认框关闭 */
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
}) })
}, .catch(_ => {});
/** 导出设置 */ },
handleExport() { /** 回车事件和保存提交绑定 */
var date = new Date().getTime() handleEnter(event) {
exportExcel(luckysheet.getAllSheets(), '导出' + date) if (event.keyCode === 13) {
}, event.preventDefault(); // 阻止默认的回车事件
/** 弹出的确认框关闭 */ // 触发确定操作
handleClose(done) { this.submit_from();
this.$confirm('确认关闭?') }
.then(_ => { },
done() /** 保存到数据库*/
}) submit_from() {
.catch(_ => { const name = this.from_name
}) if(name!=""){
}, let objsheet = luckysheet.getAllSheets() // 得到表的数据
/** 回车事件和保存提交绑定 */ //LuckyExcel = objsheet // 将表的数据保存本地
handleEnter(event) { let strsheet = JSON.stringify(objsheet)// 对象转化为字符串
if (event.keyCode === 13) { const data={name :name,jsons:strsheet};
event.preventDefault() // 阻止默认的回车事件 addMyluckyexcel(data).then(response => {
// 触发确定操作 if(response.code==200){
this.submit_from() this.$message({
} message: '保存成功', type: 'success'
}, });
/** 保存到数据库*/ this.dialogVisible=false;
/*submit_from() { //this.$router.replace({ path: '/' }); //刷新整个页面会出错
const name = this.from_name //window.location.reload();//也是全局刷新,不合适
if(name!=""){ this.$router.go(-1);
let objsheet = luckysheet.getAllSheets() // 得到表的数据 }else{
//LuckyExcel = objsheet // 将表的数据保存本地 this.$message.error('保存失败');
let strsheet = JSON.stringify(objsheet)// 对象转化为字符串 }
const data={name :name,jsons:strsheet}; });
addMyluckyexcel(data).then(response => { }else{
if(response.code==200){ this.$message.error('请输入表格名称后再进行保存!');
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() { resetQuery() {
luckysheet.destroy() //刷新下拉选框内容
let options = { this.selectedOption='';
container: 'luckysheet', //luckysheet为容器id this.disableNextButton='';
title: '', //刷新luckysheet表格
lang: 'zh', this.init();
showinfobar: false, },
data: [ /** Luckyexcel文档 */
{ init() {
'name': 'sheet1', //工作表名称 let options = {
'color': '', //工作表颜色 container: 'luckysheet', //luckysheet为容器id
'index': 0, //工作表索引 title:'',
'status': 1, //激活状态 lang:'zh',
'order': 0, //工作表的下标 showinfobar:false,
'hide': 0,//是否隐藏 data:[
'row': 20, //行数 {
'column': 15, //列数 "name": "sheet1", //工作表名称
'defaultRowHeight': 19, //自定义行高 "color": "", //工作表颜色
'defaultColWidth': 73, //自定义列宽 "index": 0, //工作表索引
'celldata': [], //初始化使用的单元格数据 "status": 1, //激活状态
'config': { "order": 0, //工作表的下标
'merge': {}, //合并单元格 "hide": 0,//是否隐藏
'rowlen': {}, //表格行高 "row": 8, //行数
'columnlen': {}, //表格列宽 "column": 10, //列数
'rowhidden': {}, //隐藏行 "defaultRowHeight": 19, //自定义行高
'colhidden': {}, //隐藏列 "defaultColWidth": 73, //自定义列宽
'borderInfo': {}, //边框 "celldata": [
'authority': {} //工作表保护
}
}
] ], //初始化使用的单元格数据
"config": {
"merge": {
}, //合并单元格
"rowlen":{}, //表格行高
"columnlen":{}, //表格列宽
"rowhidden":{}, //隐藏行
"colhidden":{}, //隐藏列
"borderInfo":{
} }, //边框
luckysheet.create(options) "authority":{}, //工作表保护
},
/** Luckyexcel文档 */ },
init() { },
let options = { /*{
container: 'luckysheet', //luckysheet为容器id "name": "Sheet2",
title: '', "color": "",
lang: 'zh', "index": 1,
showinfobar: false, "status": 0,
data: [ "order": 1,
{ "celldata": [],
'name': 'sheet1', //工作表名称 "config": {}
'color': '', //工作表颜色 },
'index': 0, //工作表索引 {
'status': 1, //激活状态 "name": "Sheet3",
'order': 0, //工作表的下标 "color": "",
'hide': 0,//是否隐藏 "index": 2,
'row': 20, //行数 "status": 0,
'column': 15, //列数 "order": 2,
'defaultRowHeight': 19, //自定义行高 "celldata": [],
'defaultColWidth': 73, //自定义列宽 "config": {},
'celldata': [], //初始化使用的单元格数据 }*/
'config': { ]
'merge': {}, //合并单元格
'rowlen': {}, //表格行高
'columnlen': {}, //表格列宽
'rowhidden': {}, //隐藏行
'colhidden': {}, //隐藏列
'borderInfo': {}, //边框
'authority': {} //工作表保护
} }
} luckysheet.create(options)
]
}
luckysheet.create(options)
}, },
Excel(e) { /** 导入事件*/
let that = this handleFileChange(evt) {
// 错误情况判断 if (this.disableNextButton) {
const files = e.target.files this.$message.warning("请先选择模板再进行导入!");
if (files.length <= 0) { return false; // 如果按钮被禁用,提前返回,避免执行下一步操作
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])
},
/** 导入事件*/
importExcel(evt) {
if(this.selectedOption == "" || this.selectedOption == null){
alert('请选择模板!!!')
return
}
let name = evt.name let name = evt.name
let suffixArr = name.split('.'), let suffixArr = name.split('.'),
suffix = suffixArr[suffixArr.length - 1] suffix = suffixArr[suffixArr.length - 1]
if (suffix != 'xlsx') { if (suffix != 'xlsx') {
alert('当前仅支持导入xlsx文件') this.$message({
message: "上传格式不正确,请上传xls或者xlsx格式",
type: "warning"
});
return return
} }
LuckyExcel.transformExcelToLucky(evt, function(exportJson, luckysheetfile) { LuckyExcel.transformExcelToLucky(
evt,
function(exportJson, luckysheetfile) {
if (exportJson.sheets == null || exportJson.sheets.length == 0) { if (exportJson.sheets == null || exportJson.sheets.length == 0) {
alert( this.$message({
'无法读取excel文件的内容,目前不支持xls文件!' message: "导入失败,请检查上传的文件是否正确",
) type: "warning"
});
return return
} }
//根据规则进行excel数据转换
debugger
var s = exceltemp
var sss= exportJson.sheets[0].celldata[0].v.v;
s[0].celldata[0].v.m= sss;
s[0].celldata[0].v.v= sss;
exportJson.sheets=s;
for (var i = 0; i < exceltemp.length; i++) {
//
}
luckysheet.destroy() luckysheet.destroy()
luckysheet.create({ luckysheet.create({
container: 'luckysheet', //luckysheet is the container id container: 'luckysheet', //luckysheet is the container id
...@@ -362,9 +303,14 @@ var exceltemp; ...@@ -362,9 +303,14 @@ var exceltemp;
}) })
} }
) )
}
}
// 配置项
},
/** 导出设置 */
handleExport(){
exportExcel(luckysheet.getAllSheets(), this.from_name)
},
} }
// 配置项12211
};
</script> </script>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment