Browse Source

共享第一步

luckysheet-xiaowang-Intelligen
是小王呀\24601 1 year ago
parent
commit
b26c6682af
  1. 119
      src/views/modules/base/smartExcel/cpts/excel-created-task.vue
  2. 45
      src/views/modules/base/smartExcel/cpts/excel-upload-data.vue
  3. 14
      src/views/modules/base/smartExcel/cpts/filling-info.vue

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

@ -1,6 +1,6 @@
<template>
<div>
<el-form :model="formData" ref="ref_searchform" :label-width="'120px'">
<el-form v-if="progress==1" :model="formData" ref="ref_searchform" :label-width="'120px'">
<el-form-item label="标题名称" prop="taskTitle">
<el-input v-model.trim="formData.taskTitle" type="textarea" size="small" clearable style=" height: 40px;"
placeholder="请输入">
@ -10,7 +10,7 @@
<el-form-item label="请选择数据源" prop="taskTitle">
</el-form-item>
</el-form>
<div class="flex" >
<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>
@ -25,29 +25,40 @@
<script>
import { requestPost } from "@/js/dai/request";
export default {
props: {
progress: {
type: Number,
}
},
data() {
return {
formData1:{
},
dataSourceList:[
{
id:1,
id:0,
name:"楼栋房屋信息一张表",
image:"https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/internal/20250114/003b8782213a487b8ce7d4267262d0ec.png",
status:1
status:1,
importCategory:"BASEINFO",
originalFilePath: "https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250115/c4102136584140aeaf323767361a1e92.xls"
},
{
id:2,
id:1,
name:"居民信息一张表",
image:"https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/internal/20250114/0c1e1ea17f8842e49bf5f1afeac72e42.png",
status:0
status:0,
importCategory:"HOUSE_INFO",
originalFilePath: "https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/20250115/1acd160dd0fe41409cddd461b4eb0328.xls"
},
{
id:3,
id:2,
name:"单位信息一张表",
image:"https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/internal/20250114/211af7c657c9409fbccd11185edf0474.png",
status:0
},
{
id:4,
id:3,
name:"车辆信息一张表",
image:"https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dev/internal/20250114/bc3e4b1e89e84ed7bc31eb90bba6cbd6.png",
status:0
@ -80,22 +91,48 @@ export default {
},
props: {},
async created() {
await this.getDictList();
await this.loadPersonGroup();
},
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.dataSourceList.filter(item => item.status === 1).forEach(item => {
item.status = 0; // status 0
});
this.dataSourceList.filter(item1 => item1.id === value.id).forEach(item2 => {
item2.status = 1; // status 0
});
console.log(this.dataSourceList,"这一次");
},
this.formData1=this.dataSourceList[value.id]
// this.dataSourceList=this.dataSourceList.filter(item1 => item.id==item.id)
);
},
handelClearCategory() {
this.categoryName = null;
@ -115,7 +152,7 @@ export default {
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params ={
REVISION: 1010,
fileModeCode:this.form.importCategory,
fileModeCode:this.formData1.importCategory,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
@ -130,34 +167,6 @@ export default {
this.$message.error(msg);
}
},
handelClickCategory(label) {
this.categoryName = label;
},
async checkExtractExcelHead() {
const url = "/actual/base/intelligentImportData/extractExcelHead";
let params = {
originFileName: this.createdFileName,
originalFilePath: this.createdFileUrl,
importCategory: this.form.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) {
this.$message.err(msg);
this.dataListLoading = false;
}
},
async getDictList() {
const url = "/sys/dict/data/dictlist";
const { data, code, msg } = await requestPost(url, {
@ -190,30 +199,6 @@ export default {
}
return fileType && isLt1M;
},
async uploadHttpRequest(file) {
const formData = new FormData();
formData.append("file", file.file);
await this.$http
.post("/actual/base/intelligentImportData/uploadFile", formData)
.then((res) => {
if (res.data.code == 0) {
const { fileName, url } = res.data.data;
this.createdFileName = fileName;
this.createdFileUrl = url;
this.fileList.push({name:fileName,url:url})
this.checkExtractExcelHead();
} else {
this.$message.error(res.data.msg);
this.dataListLoading = false;
}
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
this.dataListLoading = false;
});
this.$refs.upload.clearFiles();
},
removeFile(){
this.fileList = [];
},

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

@ -14,8 +14,8 @@
<el-step title="配置表格文字"></el-step>
</el-steps>
</div>
<div style="margin-top: 37px">
<excelCeatedTask
<div style="margin-top: 37px;margin-bottom: 37px">
<excelCeatedTask ref="excelCeatedTask"
v-if="progress == 1"
@handelClickUpload="handelClickUpload"
@handelClickBack="handelClickBack"
@ -37,10 +37,18 @@
:fileCode="fileCode"
></excelCeatedTask>
</div>
<span slot="footer" style="margin-top: 100px;">
<el-button @click="dialogVisibleExtractExcelHead = false"
> </el-button
>
<el-button type="primary" @click="onClickNext()"
>下一步</el-button
>
</span>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import excelCeatedTask from './excel-created-task.vue';
export default {
data() {
@ -73,6 +81,37 @@ export default {
}
},
methods: {
onClickNext(){
console.log(this.$refs.excelCeatedTask.formData1,"sdfkljjslkdf");
if (this.progress == 1) {
this.progress =2
}
this.checkExtractExcelHead()
},
async checkExtractExcelHead() {
const url = "/actual/base/intelligentImportData/extractExcelHead";
let params = {
originFileName: "",
originalFilePath:this.$refs.excelCeatedTask.formData1.originalFilePath,
importCategory: this.$refs.excelCeatedTask.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) {
}
},
handelClickUpload(fileCode) {
this.progress = 2;
this.fileCode = fileCode;

14
src/views/modules/base/smartExcel/cpts/filling-info.vue

@ -89,6 +89,9 @@
</el-table>
</div>
</div>
<div v-if="showView">
<excel-view @close="close" :workbookId="workbookId"></excel-view>
</div>
<el-dialog title="转派其他接收人" :visible.sync="showPersonel" width="50%" :close-on-click-modal="false">
<acceptingPersonel :showType="showType" :acceptingId="formData.acceptingId"
@handelPersonel="handelPersonel"></acceptingPersonel>
@ -98,10 +101,13 @@
<script>
import { mapGetters } from 'vuex'
import excelView from "./excel-view.vue";
import acceptingPersonel from "./acceptingPersonel.vue";
export default {
data() {
return {
workbookId:"",
showView:false,
showType:"",
showPersonel:false,
tableData:[
@ -128,6 +134,12 @@ export default {
},
created() { },
methods: {
close() {
this.showView = false
},
handleClickBack() {
this.$emit('close')
},
handelPersonel() {
this.showPersonel = false;
},
@ -144,7 +156,7 @@ export default {
this.workbookId = val
},
},
components: {acceptingPersonel},
components: {acceptingPersonel,excelView},
computed: {
tableHeight() {
return (this.clientHeight - 140) + 'px'

Loading…
Cancel
Save