Browse Source

修改luckysheet源码,到底什么原理看不懂打着debugger改的

luckysheet-xiaowang-Intelligen
mk 6 months ago
parent
commit
c238382366
  1. 4
      public/luckysheet/luckysheet.umd.js
  2. 4
      public/luckysheet/luckysheet.umd.js.map
  3. 17
      src/views/modules/base/smartExcel/cpts/excel-upload-data.vue
  4. 47
      src/views/modules/base/smartExcel/cpts/excel-view.vue

4
public/luckysheet/luckysheet.umd.js

File diff suppressed because one or more lines are too long

4
public/luckysheet/luckysheet.umd.js.map

File diff suppressed because one or more lines are too long

17
src/views/modules/base/smartExcel/cpts/excel-upload-data.vue

@ -154,10 +154,6 @@ export default {
type: Array, type: Array,
default: () => [] default: () => []
}, },
sheetRow:{
type:Number,
default:0
}
}, },
created() { created() {
this.loadPersonGroup(); this.loadPersonGroup();
@ -204,21 +200,12 @@ export default {
const url = '/actual/base/residentBaseInfo/exportOneSheet' const url = '/actual/base/residentBaseInfo/exportOneSheet'
const { data, code, msg } = await requestPost(url, this.formData) const { data, code, msg } = await requestPost(url, this.formData)
if (code === 0) { if (code === 0) {
this.updataSheet(data) this.dataListLoading = false;
this.$emit('handleUploadDataHide',data)
} else { } else {
console.log(msg); console.log(msg);
} }
}, },
updataSheet(list) {
list.forEach((item, index) => {
luckysheet.insertRow(this.currentTable[0].data.length, 1)
for (let k in item) {
luckysheet.setCellValue(index + this.sheetRow + 1, k - 1, item[k])
}
})
this.dataListLoading = false;
this.$emit('handelUploadDataHide')
},
async loadPersonGroup() { async loadPersonGroup() {
const url = "/oper/customize/fileModeColumns/listModule"; const url = "/oper/customize/fileModeColumns/listModule";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree' // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'

47
src/views/modules/base/smartExcel/cpts/excel-view.vue

@ -25,17 +25,20 @@
</div> </div>
<div> <div>
<!-- --> <!-- -->
<el-button type="danger" v-if="pageType === 'add' && !sheetTotal&&mergeObj.taskStateName=='已提交'" @click="handleClickCurrencyEvent('rejected')"> 驳回重提</el-button> <el-button type="danger" v-if="pageType === 'add' && !sheetTotal && mergeObj.taskStateName == '已提交'"
<el-button type="primary" v-if="pageType === 'add'&& !sheetTotal&&mergeObj.taskStateName=='已提交'" @click="handleClickCurrencyEvent('archived')"> 审核存档</el-button> @click="handleClickCurrencyEvent('rejected')"> 驳回重提</el-button>
<el-button type="primary" v-if="pageType === 'filling'&& (taskStateName=='处理中'|| taskStateName=='已驳回')" @click="handleClickCurrencyEvent('submit')"> 提交</el-button> <el-button type="primary" v-if="pageType === 'add' && !sheetTotal && mergeObj.taskStateName == '已提交'"
@click="handleClickCurrencyEvent('archived')"> 审核存档</el-button>
<el-button type="primary" v-if="pageType === 'filling' && (taskStateName == '处理中' || taskStateName == '已驳回')"
@click="handleClickCurrencyEvent('submit')"> 提交</el-button>
</div> </div>
</div> </div>
<div id="luckysheet"></div> <div id="luckysheet"></div>
</div> </div>
<el-dialog title="上传共享数据" v-if="showUploadData" :visible.sync="showUploadData" width="60%" <el-dialog title="上传共享数据" v-if="showUploadData" :visible.sync="showUploadData" width="60%"
:close-on-click-modal="false"> :close-on-click-modal="false">
<excelUploadData @handelUploadDataHide="handelUploadDataHide" :currentTable="currentTable" <excelUploadData @handleUploadDataHide="handleUploadDataHide" :currentTable="currentTable"
:btnLoading="btnLoading" :sheetRow="sheetR"> :btnLoading="btnLoading">
</excelUploadData> </excelUploadData>
</el-dialog> </el-dialog>
</div> </div>
@ -47,6 +50,8 @@ import LuckyExcel from 'luckyexcel';
import options from "@/utils/luckysheetConfig.js"; import options from "@/utils/luckysheetConfig.js";
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
export default { export default {
data() { data() {
@ -163,6 +168,11 @@ export default {
this.showUploadData = true; this.showUploadData = true;
let list = luckysheet.getAllSheets() let list = luckysheet.getAllSheets()
this.currentTable = list.filter(item => item.status == '1') this.currentTable = list.filter(item => item.status == '1')
},
async handleUploadDataHide(val) {
this.showUploadData = false;
luckysheet.insertRow(this.currentTable[0].data.length, 1)
const findLastNonNullIndex = (arr) => { const findLastNonNullIndex = (arr) => {
for (let i = arr.length - 1; i >= 0; i--) { for (let i = arr.length - 1; i >= 0; i--) {
const subArray = arr[i]; const subArray = arr[i];
@ -174,12 +184,29 @@ export default {
return -1; // -1 return -1; // -1
}; };
this.sheetR = findLastNonNullIndex(this.currentTable[0].data) this.sheetR = findLastNonNullIndex(this.currentTable[0].data)
if (this.sheetR != -1) { console.log(this.currentTable[0].data.length, val.length);
luckysheet.insertRow(this.currentTable[0].data.length, 5)//5 luckysheet.insertRow(this.currentTable[0].data.length, { number: val.length });
} await nextTick(2000)
let newArray = val.map(obj => {
return Object.keys(obj).map(key => {
return { m: obj[key], "ct": { "fa": "General", "t": "g" }, v: obj[key] };
});
});
console.log(newArray, '处理后数据');
let bottomRightCorner = this.numberToLetter(Object.keys(val[0]).length)//
luckysheet.setRangeValue(newArray, {
range: `A${this.sheetR + 2}:${bottomRightCorner}${this.sheetR + val.length}`,
})
}, },
handelUploadDataHide() { //
this.showUploadData = false numberToLetter(num) {
let letter = '';
while (num > 0) {
num -= 1; // 0 1 -> 'A'2 -> 'B'...
letter = String.fromCharCode(num % 26 + 65) + letter; // 65 'A' Unicode
num = Math.floor(num / 26);
}
return letter;
}, },
loadWorkBook() { loadWorkBook() {
window.luckysheet.destroy(); window.luckysheet.destroy();

Loading…
Cancel
Save