Browse Source

一张表

luckysheet-xiaowang-Intelligen
是小王呀\24601 1 year ago
parent
commit
3203665249
  1. 187
      src/views/modules/base/smartExcel/cpts/excel-created-task.vue
  2. 49
      src/views/modules/base/smartExcel/cpts/excel-upload-data.vue

187
src/views/modules/base/smartExcel/cpts/excel-created-task.vue

@ -10,7 +10,7 @@
<el-form-item label="请选择数据源" prop="taskTitle">
</el-form-item>
</el-form>
<div class="flex" v-if="progress==1">
<div class="flex" v-if="progress==1">
<div @click="onClickTab(item)" class="flex" style=" cursor: pointer; position: relative;display: flex; flex-direction: column; align-items: center; justify-content: center; width: 155px;height: 90px;background: #F1F4FA;border-radius: 4px; margin-left: 20px;" v-for="(item, index) in dataSourceList">
<img style="width: 30px; height: 30px;" :src="item.image" alt="">
<span style="margin-top: 10px;">{{ item.name }}</span>
@ -18,6 +18,94 @@
<img v-if="!item.status" style="width: 30px; height: 30px;position: absolute; top: 0;right: 0;" src="@/assets/images/index/notselect.png" alt="">
</div>
</div>
<div v-if="dataList.length > 0" style="height: 600px; overflow-y: scroll">
<p style="margin-top: 0px;">
说明您上传的表格列已自动匹配到系统对应的字段请检查确认或手动调整没有对应到系统字段的表格列将被忽略
</p>
<el-table
ref="ref_table"
:data="dataList"
border
class="m-table-item"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="100"
></el-table-column>
<el-table-column
prop="userTableHeader"
header-align="center"
align="center"
label="上传表格列"
min-width="80"
>
<template slot-scope="scope">
<span
:class="[
scope.row.itemId && scope.row.itemId != ''
? ''
: 'font_color_red',
]"
>{{ scope.row.userTableHeader || "--" }}</span
>
</template>
</el-table-column>
<el-table-column
header-align="center"
align="center"
label="对应到"
min-width="50"
>
<template slot-scope="scope"><span v-if="scope.row.itemId"> =></span> </template>
</el-table-column>
<el-table-column
prop="itemGroupId"
header-align="center"
align="center"
label="系统字段"
min-width="110"
>
<template slot-scope="scope">
<div>
<el-select
class="item_width_sel"
v-model.trim="scope.row.itemGroupId"
size="small"
placeholder="请选择"
>
<el-option
v-for="item in groupList"
@click.native="handleSelGroup(scope.$index, item, 'change')"
:key="item.fileModeCode"
:label="item.fileModeName"
:value="item.fileModeName"
>
</el-option>
</el-select>
<el-select
class="item_width_sel"
v-model.trim="scope.row.itemId"
size="small"
style="margin-left: 10px"
placeholder="请选择"
>
<el-option
v-for="item in scope.row.itemList"
:key="item.itemId"
:label="item.columnName"
:value="item.columnName"
>
</el-option>
</el-select>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div>
</div>
</div>
@ -25,15 +113,18 @@
<script>
import { requestPost } from "@/js/dai/request";
export default {
props: {
progress: {
type: Number,
}
},
data() {
return {
formData1:{
},
formData1: {
id:0,
name:"楼栋房屋信息一张表",
image:"https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/internal/20250114/003b8782213a487b8ce7d4267262d0ec.png",
status:1,
importCategory:"BASEINFO",
originalFilePath: "https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250115/c4102136584140aeaf323767361a1e92.xls"
},
dataSourceList:[
{
id:0,
@ -89,39 +180,15 @@ export default {
fileList:[]
};
},
props: {},
async created() {
console.log("dflk;jsdklj");
},
mounted(){
console.log(this.progress,this.dataList,"sfklhjfdlskj");
},
methods: {
onClickNext(){
console.log(this.formData1,"sdfkljjslkdf");
this.checkExtractExcelHead()
},
async checkExtractExcelHead() {
const url = "/actual/base/intelligentImportData/extractExcelHead";
let params = {
originFileName: "",
originalFilePath: this.formData1.originalFilePath,
importCategory: this.formData1.importCategory,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.dialogVisibleExtractExcelHead = true;
const { metaListData, fileCode, msg } = data;
this.dataList = metaListData;
this.fileCode = fileCode;
let groupMap = new Map(
this.groupList.map((item) => [item.label, item])
);
for (let i in this.dataList) {
this.handleSelGroup(i, groupMap.get(this.dataList[i].fileModeCode));
}
this.dataListLoading = false;
} else if (code >= 8000) {
}
},
onClickTab(value){
this.formData1={}
this.dataSourceList.filter(item => item.status === 1).forEach(item => {
item.status = 0; // status 0
});
@ -129,44 +196,8 @@ export default {
item2.status = 1; // status 0
},
this.formData1=this.dataSourceList[value.id]
);
},
handelClearCategory() {
this.categoryName = null;
},
async loadPersonGroup() {
const url = "/oper/customize/fileModeColumns/listModule";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
const { data, code, msg } = await requestPost(url);
if (code === 0) {
this.groupList = data;
} else {
this.$message.error(msg);
}
},
async handleSelGroup(index, item, change) {
const url = "/oper/customize/fileModeColumns/listField";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params ={
REVISION: 1010,
fileModeCode:this.formData1.importCategory,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let oneData = this.dataList[index];
if (change == "change") {
this.dataList[index].itemId = "";
}
oneData.itemList = data;
this.$set(this.dataList, index, oneData);
console.log(this.dataList);
} else {
this.$message.error(msg);
}
},
async getDictList() {
const url = "/sys/dict/data/dictlist";
const { data, code, msg } = await requestPost(url, {
@ -324,6 +355,16 @@ export default {
this.$emit("handelClickBack");
},
},
props: {
progress: {
type: Number,
default: ''
},
tableData:{
type: Array, // dataList Array
},
},
components: {},
computed: {},
watch: {},

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

@ -17,18 +17,18 @@
<div style="margin-top: 37px;margin-bottom: 37px">
<excelCeatedTask ref="excelCeatedTask"
v-if="progress == 1"
:progress="progress"
@handelClickUpload="handelClickUpload"
@handelClickBack="handelClickBack"
></excelCeatedTask>
<excelCeatedTask
v-if="progress == 2"
@successImport="successImport"
@handelClickBack="handelClickBack"
@updateProgress="updateProgress"
:key="progress"
:fileCode="fileCode"
:fileCodeRow="fileCodeRow"
@updateoperatorName="updateoperatorName"
:tableData="dataList"
:progress="progress"
></excelCeatedTask>
<div v-if="progress == 2">111</div>
<excelCeatedTask
v-if="progress == 3"
@handelClickBack="handelClickBack"
@ -38,8 +38,8 @@
></excelCeatedTask>
</div>
<span slot="footer" style="margin-top: 100px;">
<el-button @click="dialogVisibleExtractExcelHead = false"
> </el-button
<el-button v-if="progress!=1" @click="progress=progress-1"
>上一步</el-button
>
<el-button type="primary" @click="onClickNext()"
>下一步</el-button
@ -53,6 +53,7 @@
export default {
data() {
return {
dataList:[],
progress: 1,
fileCode: null,
progressNum: null,
@ -75,39 +76,29 @@ export default {
},
},
created() {
console.log(this.processStatus);
if (this.processStatus) {
this.progress = this.processStatus == "processing" ? 2 : 3;
}
},
methods: {
onClickNext(){
async onClickNext(){
console.log(this.$refs.excelCeatedTask.formData1,"sdfkljjslkdf");
await this.checkExtractExcelHead()
if (this.progress == 1) {
this.progress =2
console.log("2");
this.progress=2
}
this.checkExtractExcelHead()
},
async checkExtractExcelHead() {
const url = "/actual/base/intelligentImportData/extractExcelHead";
const url = "/actual/base/intelligentImportData/extractImportHead";
let params = {
originFileName: "",
originalFilePath:this.$refs.excelCeatedTask.formData1.originalFilePath,
importCategory: this.$refs.excelCeatedTask.formData1.importCategory,
importCategory: "BASEINFO",
columnMateStr:"网格名称;小区名称;楼栋名称;单元名称;门牌号;姓名;手机号;证件号;"
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.dialogVisibleExtractExcelHead = true;
const { metaListData, fileCode, msg } = data;
this.dataList = metaListData;
this.fileCode = fileCode;
let groupMap = new Map(
this.groupList.map((item) => [item.label, item])
);
for (let i in this.dataList) {
this.handleSelGroup(i, groupMap.get(this.dataList[i].fileModeCode));
}
this.dataListLoading = false;
this.dataList = data.metaListData;
console.log( this.dataList,"sdfkljsdklf");
} else if (code >= 8000) {
}

Loading…
Cancel
Save