From a262f3b0570a511f11bcd55a256296973ddee2bd Mon Sep 17 00:00:00 2001 From: lvzhuangzhuang <lvzhuangzhuang@itianyi.com> Date: Mon, 10 Jul 2023 15:22:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/supplies/index_template_back.vue | 308 ++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 ruoyi-ui/src/views/system/supplies/index_template_back.vue diff --git a/ruoyi-ui/src/views/system/supplies/index_template_back.vue b/ruoyi-ui/src/views/system/supplies/index_template_back.vue new file mode 100644 index 0000000..e8f14bc --- /dev/null +++ b/ruoyi-ui/src/views/system/supplies/index_template_back.vue @@ -0,0 +1,308 @@ +<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=''/> + + + + <a href="javascript:void(0)" @click="downloadExcel">下载选择的模æ¿</a> + </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> + </div> +</template> + +<script> + import $ from 'jquery' + 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 + }, + data() { + + }, + 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":{} //æ•°æ®éªŒè¯é…ç½® + } + + ] + }); + + }, + + methods: { + uploadExcel(evt) { + const files = evt.target.files + if (files == null || files.length == 0) { + alert('没有文件ç‰å¾…导入') + return + } + + let name = files[0].name + let suffixArr = name.split('.'), + suffix = suffixArr[suffixArr.length - 1] + if (suffix != 'xlsx') { + alert('当å‰ä»…支æŒå¯¼å…¥xlsx文件') + return + } + LuckyExcel.transformExcelToLucky( + files[0], + function(exportJson, luckysheetfile) { + uploadExcel1=exportJson; + + 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; + + 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 + }) + } + ) + }, + uploadExcel2(evt) { + const files = evt.target.files + if (files == null || files.length == 0) { + alert('没有文件ç‰å¾…导入') + return + } + + let name = files[0].name + let suffixArr = name.split('.'), + suffix = suffixArr[suffixArr.length - 1] + if (suffix != 'xlsx') { + alert('当å‰ä»…支æŒå¯¼å…¥xlsx文件') + return + } + LuckyExcel.transformExcelToLucky( + files[0], + 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文件ï¼' + ) + return + } + + this.isMaskShow = false + 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 + }) + } + ) + }, + //ä¸‹è½½æ¨¡æ¿ + 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() { + + 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> + -- 2.26.2