Commit e27ac904 authored by 何远江's avatar 何远江

123

parent 8536692f
......@@ -57,8 +57,12 @@
<p class="font-bold">区域关联信息</p>
<vxe-table border :data="connectList" size="mini" height="200">
<vxe-column title="关联名称" field="excelAreaId_dictText" min-width="100"></vxe-column>
<vxe-column title="别关联名称" field="excelAreaBeId_dictText" min-width="100"></vxe-column>
<vxe-column title="关联字段" min-width="100">
<vxe-column
title="别关联名称"
field="excelAreaBeId_dictText"
min-width="100"
></vxe-column>
<vxe-column title="关联字段" min-width="100">
<template #default="{ row, $rowIndex }">
{{ connectFiledStr(row.connectFiled) }}
</template>
......@@ -73,7 +77,7 @@
<el-link style="font-size: 12px" type="primary" @click="editConnect(row, $rowIndex)"
>修改</el-link
>
<el-divider direction="vertical"></el-divider>
<el-divider direction="vertical"></el-divider>
<el-link style="font-size: 12px" type="danger" @click="delConnect(row, $rowIndex)"
>删除</el-link
>
......@@ -109,11 +113,7 @@
<el-button type="primary" size="small" @click="toRun">执行解析</el-button>
<el-button type="primary" size="small" @click="copy">复制</el-button>
<el-button
:loading="pasteLoading"
type="primary"
size="small"
@click="pasteConfig"
<el-button :loading="pasteLoading" type="primary" size="small" @click="pasteConfig"
>引入</el-button
>
</div>
......@@ -150,7 +150,13 @@
</template>
</vxe-modal>
<vxe-modal v-model="connectVisible" width="1000" title="关联信息配置" show-footer>
<vxe-modal
v-model="connectVisible"
width="1000"
@hide="onHideSettingConnect"
title="关联信息配置"
show-footer
>
<p>关联区域信息:{{ currentConnectInfo.excelAreaNicname }}</p>
<p>被关联信息:{{ cachCurrentBeConnectInfo.excelAreaNicname }}</p>
......@@ -164,16 +170,16 @@
>
<vxe-column type="checkbox" width="40"></vxe-column>
<vxe-column title="关联title" field="title"></vxe-column>
<vxe-column title="关联脚本" width = "300px">
<vxe-column title="关联脚本" width="300px">
<template #default="{ row }">
<el-select
<el-select
size="small"
style="width: 100%;"
style="width: 100%"
v-model="row.scriptName"
@change="(e) => scriptChange(row, e)"
clearable
>
<el-option
<el-option
v-for="item in scriptList"
:key="item.srciptName"
:value="item.srciptName"
......@@ -182,7 +188,7 @@
</el-select>
<el-input
type="textarea"
style="width: 100%;margin-top: 2px;"
style="width: 100%; margin-top: 2px"
rows="5"
v-model="row.script"
></el-input>
......@@ -199,16 +205,16 @@
</template>
</vxe-column>
<vxe-column title="被关联脚本" width = "300px">
<vxe-column title="被关联脚本" width="300px">
<template #default="{ row }">
<el-select
<el-select
size="small"
style="width: 100%;"
style="width: 100%"
v-model="row.bescriptName"
@change="(e) => scriptBeChange(row, e)"
clearable
>
<el-option
<el-option
v-for="item in scriptList"
:key="item.srciptName"
:value="item.srciptName"
......@@ -217,13 +223,12 @@
</el-select>
<el-input
type="textarea"
style="width: 100%;margin-top: 2px;"
style="width: 100%; margin-top: 2px"
rows="5"
v-model="row.bescript"
></el-input>
</template>
</vxe-column>
</vxe-table>
<template #footer>
<el-button type="primary" @click="confirmConnect">确认</el-button>
......@@ -251,11 +256,8 @@
<template #default="{ row }">{{ row['数据区'] }}</template>
</vxe-column>
<template v-for="item in runResultTitle" :key="item">
<vxe-column :title="item" :field="item" cell-type="string"
show-overflow
width="150"
>
</vxe-column>
<vxe-column :title="item" :field="item" cell-type="string" show-overflow width="150">
</vxe-column>
</template>
</vxe-table>
</vxe-modal>
......@@ -278,11 +280,7 @@ import {
showstatisticBarConfig
} from '@/constants/excelConfig'
import {
apiGetScript
} from '@/api/excel'
import { apiGetScript } from '@/api/excel'
import { flatten, cloneDeep } from 'lodash-es'
import { useCommentExcel } from '@/stores/commentExcel'
......@@ -299,7 +297,7 @@ import {
removeExcelArea,
removeExcelAreaConnect,
addExcelArea,
batchAddExcelArea
batchAddExcelArea
} from '@/api/excel'
import type { Recordable } from '@/types/global'
import { filterRunData, getRangetxt, setRangeBackground } from '@/utils/excel'
......@@ -338,6 +336,7 @@ const currentConnectInfo = reactive<Recordable>({
beConnectFiled: [],
fileId: ''
})
const cachConnectEditInfo = ref({})
const runDataTable = ref<VxeTableInstance>()
const cachCurrentConnectInfo = reactive<Recordable>({})
const cachCurrentBeConnectInfo = reactive<Recordable>({})
......@@ -363,9 +362,6 @@ const initIsSetSheetMark = (length: number) => {
isSetSheetMark.value = Array.from({ length }).fill(false)
}
const getScriptList = async () => {
const { data } = await apiGetScript()
scriptList.value = data.result
......@@ -374,7 +370,7 @@ const getScriptList = async () => {
const scriptChange = (item, e) => {
if (e) {
// console.log(e)
item.script = scriptList.value.find((item1) => item1.srciptName == e)?.scriptContent
item.script = scriptList.value.find((item1) => item1.srciptName == e)?.scriptContent
} else {
item.script = ''
}
......@@ -382,7 +378,6 @@ const scriptChange = (item, e) => {
}
const scriptBeChange = (item, e) => {
if (e) {
item.bescript = scriptList.value.find((item1) => item1.srciptName == e)?.scriptContent
} else {
......@@ -391,8 +386,6 @@ const scriptBeChange = (item, e) => {
item.beshow = true
}
/**
* 存储在本地的区域标记
* locaExcelAreaMarks = {
......@@ -423,10 +416,6 @@ const initExcelAreaMarksKey = (len: number) => {
})
}
const onSaveSuccess = (data: any) => {
locaExcelAreaMarks[data.result['sheetNum']].push(data.result)
}
......@@ -609,7 +598,10 @@ const addConnect = async (list: any) => {
})
currentConnectInfo.fileId = getFileInfo.value.orderFileId
const { data } = await addExcelAreaConnect(currentConnectInfo)
// 需要添加修改接口
const { data } = cachConnectEditInfo.value?.excelAreaConnectId
? await addExcelAreaConnect(currentConnectInfo)
: await addExcelAreaConnect(currentConnectInfo)
if (!data?.success) {
ElMessage.error(data?.message || '操作失败!')
......@@ -628,10 +620,9 @@ const chooseConnect = (row: any) => {
const connectFiledStr = (row: any) => {
// console.log(row)
return row.map(item => item.title).join(', ');
return row.map((item) => item.title).join(', ')
}
const connectConfigData = ref([])
const beConnectSelectOptions = computed(
() =>
......@@ -640,30 +631,60 @@ const beConnectSelectOptions = computed(
)
watch(connectVisible, (val) => {
if (val) {
const titles = areaList.value.find((v: any) => v.excelAreaId == currentConnectInfo.excelAreaId)
?.excelAreaTitle
connectConfigData.value = titles.map((item: any) => {
return {
title: item.title,
sheet: item.sheet,
row: item.row,
colum: item.colum,
numFlag: item.numFlag,
numTitle: item.numTitle,
only:item.only,
betitle: '',
berow: '',
becolum: '',
besheet: '',
benumFlag: '',
benumTitle: '',
beonly:'',
}
})
// 编辑重新复制
if (currentConnectInfo.excelAreaConnectId) {
// 按照顺序来赋值connectFiled -> beConnectFiled
connectConfigData.value = cachConnectEditInfo.value?.connectFiled.map((item, i) => {
const beConnectFiled = cachConnectEditInfo.value?.beConnectFiled[i]
return {
title: item.title,
sheet: item.sheet,
row: item.row,
colum: item.colum,
numFlag: item.numFlag,
numTitle: item.numTitle,
only: item.only,
betitle: beConnectFiled.title,
berow: beConnectFiled.row,
becolum: beConnectFiled.colum,
besheet: beConnectFiled.sheet,
benumFlag: beConnectFiled.numFlag,
benumTitle: beConnectFiled.numTitle,
beonly: beConnectFiled.only
}
})
} else {
const titles = areaList.value.find(
(v: any) => v.excelAreaId == currentConnectInfo.excelAreaId
)?.excelAreaTitle
connectConfigData.value = titles.map((item: any) => {
return {
title: item.title,
sheet: item.sheet,
row: item.row,
colum: item.colum,
numFlag: item.numFlag,
numTitle: item.numTitle,
only: item.only,
betitle: '',
berow: '',
becolum: '',
besheet: '',
benumFlag: '',
benumTitle: '',
beonly: ''
}
})
}
}
})
const onHideSettingConnect = () => {
// 清空
cachConnectEditInfo.value = {}
}
const changeBeConnect = (v: string, row: any) => {
const option = beConnectSelectOptions.value.find((item: any) => item.title == v)
row.becolum = option.colum
......@@ -697,12 +718,6 @@ const confirmBeConnect = () => {
connectVisible.value = true
}
const chooseConnectOnHide = () => {
Object.assign(currentConnectInfo, {
// excelAreaConnectId: '',
......@@ -726,22 +741,25 @@ const delConnect = async (row: any, index: number) => {
const editConnect = async (row: any, index: number) => {
console.log(row)
currentConnectInfo.excelAreaConnectId = row.excelAreaConnectId
currentConnectInfo.excelAreaBeId = row.excelAreaBeId
currentConnectInfo.excelAreaId = row.excelAreaId
Object.assign(cachConnectEditInfo.value, unref(row))
// cachCurrentConnectInfo 保存关联数据
Object.assign(cachCurrentConnectInfo, unref(areaList.value?.find(item => item.excelAreaId == row.excelAreaId)))
Object.assign(
cachCurrentConnectInfo,
unref(areaList.value?.find((item) => item.excelAreaId == row.excelAreaId))
)
// cachCurrentBeConnectInfo 保存被关联数据
Object.assign(cachCurrentBeConnectInfo, unref(areaList.value?.find(item => item.excelAreaId == row.excelAreaBeId)))
Object.assign(
cachCurrentBeConnectInfo,
unref(areaList.value?.find((item) => item.excelAreaId == row.excelAreaBeId))
)
connectVisible.value = true
}
const queryConnectList = async () => {
const { data } = await getExcelConnectByFileId(getFileInfo.value.orderFileId)
connectList.value = data.result
......@@ -935,15 +953,14 @@ const pasteConfig = async () => {
// 4、刷新
ElMessage({
type:'success',
message: '引入成功!重新加载...',
type: 'success',
message: '引入成功!重新加载...'
})
// 5、刷新当前页 or 刷新当前excel
setTimeout(() => {
window.location.reload();
}, 1500);
window.location.reload()
}, 1500)
} catch {
ElMessage.error('引入失败!')
}
......@@ -959,9 +976,6 @@ onMounted(() => {
onUnmounted(() => {
isFunction((window as any)?.luckysheet?.destroy) && luckysheet.destroy()
})
</script>
<style lang="scss" scoped>
.comment-form {
......
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