|
|
@ -3,9 +3,9 @@ |
|
|
|
<div class='flex'> |
|
|
|
<div class="left_menu flex flex-y" v-if="!sheetTotal"> |
|
|
|
<el-button type="text" round @click="handelClickBack" icon="el-icon-back">返回</el-button> |
|
|
|
<section > |
|
|
|
<h3>{{menuList[0].taskTitle}}</h3> |
|
|
|
<p>{{menuList[0].agencyName}}</p> |
|
|
|
<section> |
|
|
|
<h3>{{ menuList[0].taskTitle }}</h3> |
|
|
|
<p>{{ menuList[0].agencyName }}</p> |
|
|
|
</section> |
|
|
|
<section> |
|
|
|
<div :class="{ 'menu_item': true, 'active': menuActive === index }" v-for="(item, index) in menuList" |
|
|
@ -25,17 +25,20 @@ |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<!-- --> |
|
|
|
<el-button type="danger" v-if="pageType === 'add' && !sheetTotal&&mergeObj.taskStateName=='已提交'" @click="handleClickCurrencyEvent('rejected')"> 驳回重提</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> |
|
|
|
<el-button type="danger" v-if="pageType === 'add' && !sheetTotal && mergeObj.taskStateName == '已提交'" |
|
|
|
@click="handleClickCurrencyEvent('rejected')"> 驳回重提</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 id="luckysheet"></div> |
|
|
|
</div> |
|
|
|
<el-dialog title="上传共享数据" v-if="showUploadData" :visible.sync="showUploadData" width="60%" |
|
|
|
:close-on-click-modal="false"> |
|
|
|
<excelUploadData @handelUploadDataHide="handelUploadDataHide" :currentTable="currentTable" |
|
|
|
:btnLoading="btnLoading" :sheetRow="sheetR"> |
|
|
|
<excelUploadData @handleUploadDataHide="handleUploadDataHide" :currentTable="currentTable" |
|
|
|
:btnLoading="btnLoading"> |
|
|
|
</excelUploadData> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
@ -47,6 +50,8 @@ import LuckyExcel from 'luckyexcel'; |
|
|
|
import options from "@/utils/luckysheetConfig.js"; |
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
import { requestPost, requestGet } from "@/js/dai/request"; |
|
|
|
import nextTick from "dai-js/tools/nextTick"; |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
data() { |
|
|
@ -57,7 +62,7 @@ export default { |
|
|
|
socket: null, |
|
|
|
currentTable: null, |
|
|
|
currentId: '', |
|
|
|
btnLoading:false, |
|
|
|
btnLoading: false, |
|
|
|
}; |
|
|
|
}, |
|
|
|
props: { |
|
|
@ -73,17 +78,17 @@ export default { |
|
|
|
type: Boolean, |
|
|
|
default: false |
|
|
|
}, |
|
|
|
infoObj:{ |
|
|
|
type:Object, |
|
|
|
default:()=>{} |
|
|
|
infoObj: { |
|
|
|
type: Object, |
|
|
|
default: () => { } |
|
|
|
}, |
|
|
|
mergeObj:{ |
|
|
|
type:Object, |
|
|
|
default:()=>{} |
|
|
|
mergeObj: { |
|
|
|
type: Object, |
|
|
|
default: () => { } |
|
|
|
}, |
|
|
|
userId:{ |
|
|
|
type:String, |
|
|
|
default:'' |
|
|
|
userId: { |
|
|
|
type: String, |
|
|
|
default: '' |
|
|
|
}, |
|
|
|
taskStateName: { |
|
|
|
type: String, |
|
|
@ -101,7 +106,7 @@ export default { |
|
|
|
}, |
|
|
|
watch: {}, |
|
|
|
async mounted() { |
|
|
|
console.log(this.mergeObj,"dskjlfsdklf"); |
|
|
|
console.log(this.mergeObj, "dskjlfsdklf"); |
|
|
|
|
|
|
|
if (this.sheetTotal) { |
|
|
|
this.currentId = this.workbookId; |
|
|
@ -116,7 +121,7 @@ export default { |
|
|
|
taskId: this.workbookId,//注:此处实际为任务Id只是没必要再声明另外一个参数了 |
|
|
|
pageNo: 1, |
|
|
|
pageSize: 1000, |
|
|
|
userId:this.userId |
|
|
|
userId: this.userId |
|
|
|
} |
|
|
|
let { data, code, msg } = await requestGet('/actual/base/communityOneTablePeriodPublish/myPageList', parm) |
|
|
|
if (code === 0) { |
|
|
@ -163,6 +168,11 @@ export default { |
|
|
|
this.showUploadData = true; |
|
|
|
let list = luckysheet.getAllSheets() |
|
|
|
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) => { |
|
|
|
for (let i = arr.length - 1; i >= 0; i--) { |
|
|
|
const subArray = arr[i]; |
|
|
@ -174,12 +184,29 @@ export default { |
|
|
|
return -1; // 如果没有符合条件的,返回 -1 |
|
|
|
}; |
|
|
|
this.sheetR = findLastNonNullIndex(this.currentTable[0].data) |
|
|
|
if (this.sheetR != -1) { |
|
|
|
luckysheet.insertRow(this.currentTable[0].data.length, 5)//固定插入5行 |
|
|
|
} |
|
|
|
console.log(this.currentTable[0].data.length, val.length); |
|
|
|
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() { |
|
|
|
window.luckysheet.destroy(); |
|
|
@ -212,30 +239,30 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
// 驳回重提,审核存档,保存统一用这一个事件来处理 |
|
|
|
async handleClickCurrencyEvent(val){ |
|
|
|
async handleClickCurrencyEvent(val) { |
|
|
|
const url = '/actual/base/communityOneTablePeriodPublish/update' |
|
|
|
let parm = { |
|
|
|
...this.infoObj |
|
|
|
} |
|
|
|
parm.taskState = val; |
|
|
|
if(val === 'archived'){ |
|
|
|
if (val === 'archived') { |
|
|
|
this.workbookMerge() |
|
|
|
} |
|
|
|
const {data,code,msg} = await requestPost(url,parm) |
|
|
|
if(code === 0){ |
|
|
|
const { data, code, msg } = await requestPost(url, parm) |
|
|
|
if (code === 0) { |
|
|
|
this.$message.success('操作成功') |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
console.log(msg); |
|
|
|
} |
|
|
|
}, |
|
|
|
async workbookMerge(){ |
|
|
|
async workbookMerge() { |
|
|
|
const url = '/actual/base/luckySheet/workbook/merge' |
|
|
|
let parm = { |
|
|
|
sourceWorkbookId:this.mergeObj.subWorkBookId, |
|
|
|
targetWorkbookId:this.mergeObj.workBookId |
|
|
|
sourceWorkbookId: this.mergeObj.subWorkBookId, |
|
|
|
targetWorkbookId: this.mergeObj.workBookId |
|
|
|
} |
|
|
|
const {data,code,msg} = await requestPost(url,parm) |
|
|
|
if(code === 0){ |
|
|
|
const { data, code, msg } = await requestPost(url, parm) |
|
|
|
if (code === 0) { |
|
|
|
console.log('合并成功'); |
|
|
|
} |
|
|
|
}, |
|
|
|