Browse Source

改了可视化接口地址

feature
dai 3 years ago
parent
commit
0c0fd75cf6
  1. 2
      .env.production.sit
  2. 814
      src/views/modules/base/community/community.vue
  3. 561
      src/views/modules/base/community/communityExportInfo.vue
  4. 1197
      src/views/modules/base/community/communityTable.vue
  5. 2
      src/views/modules/base/resi.vue
  6. 444
      src/views/modules/base/smartImport.vue

2
.env.production.sit

@ -2,6 +2,6 @@ NODE_ENV=production
# VUE_APP_API_SERVER = https://epmet-test.elinkservice.cn/api
# VUE_APP_API_SERVER = http://192.168.1.140/api
VUE_APP_API_SERVER = http://219.146.91.110:30801/api
VUE_APP_BIPASS_API_SERVER = http://bipaas.elinkservice.com/linkdata/linkdata-gateway/route
VUE_APP_BIPASS_API_SERVER = http://bipaas.elinkservice.com:30801/linkdata/linkdata-gateway/route
VUE_APP_NODE_ENV=prod:sit
VUE_APP_PUBLIC_PATH=epmet-oper

814
src/views/modules/base/community/community.vue

File diff suppressed because it is too large

561
src/views/modules/base/community/communityExportInfo.vue

@ -1,144 +1,186 @@
<template>
<div v-if="list.length > 0"
class="diy-container">
<div v-if="list.length > 0" class="diy-container">
<el-tabs v-model="activeName">
<el-tab-pane label="自定义模板"
name="first">
<el-tab-pane label="自定义模板" name="first">
<div class="diy-wr">
<div class="left">
<el-tabs v-model="leftActive"
<el-tabs
v-model="leftActive"
tab-position="left"
class="left-h"
@tab-click="handleTabsClick">
<el-tab-pane v-for="item in leftList"
@tab-click="handleTabsClick"
>
<el-tab-pane
v-for="item in leftList"
:key="item.id"
:label="item.label"
:name="item.id">
:name="item.id"
>
<div class="pd10 check-boxwr scroll-h">
<checkBox v-if="item.queryItemList.length > 0"
<checkBox
v-if="item.queryItemList.length > 0"
:ref="'checkbox' + item.id"
:list="item.queryItemList"
@change="handleChangeBox" />
@change="handleChangeBox"
/>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="right">
<div class="right-header">
<div class="title">导出信息</div>
<el-button plain
@click="handlePreview('')">预览</el-button>
<el-button plain @click="handlePreview('')"
>预览</el-button
>
</div>
<div class="h80 scroll-h">
<el-collapse v-model="activeCollapse"
id="collapsWr">
<el-collapse-item v-for="item in rightList"
<el-collapse
v-model="activeCollapse"
id="collapsWr"
>
<el-collapse-item
v-for="item in rightList"
:key="item.id"
:title="item.label"
:name="item.id"
class="col-h">
<dragItem :ref="'drag' + item.id"
class="col-h"
>
<dragItem
:ref="'drag' + item.id"
:list="item.queryItemList"
:id="item.id"
@del="handleDelItem"
@drag="handleDrag($event, item)"></dragItem>
@drag="handleDrag($event, item)"
></dragItem>
</el-collapse-item>
</el-collapse>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="模板列表"
name="second">
<el-table :data="tableData"
<el-tab-pane label="模板列表" name="second">
<el-table
:data="tableData"
height="calc(80vh - 140px)"
style="width: 100%">
<el-table-column type="index"
style="width: 100%"
>
<el-table-column
type="index"
label="序号"
align="center"
width="50">
width="50"
>
</el-table-column>
<el-table-column prop="name"
<el-table-column
prop="name"
label="模板名称"
align="center"
min-width="180">
min-width="180"
>
</el-table-column>
<el-table-column prop="createdBy"
<el-table-column
prop="createdBy"
align="center"
label="创建者"
width="180">
width="180"
>
</el-table-column>
<el-table-column align="center"
<el-table-column
align="center"
prop="createdTime"
label="创建时间"
width="180">
width="180"
>
</el-table-column>
<el-table-column align="center"
label="操作"
width="160">
<el-table-column align="center" label="操作" width="160">
<template slot-scope="scope">
<el-button v-if="scope.row.isSelf"
<el-button
v-if="scope.row.isSelf"
type="text"
size="small"
class="div-table-button--delete"
@click="handleDeltemplate(scope.row.id)">删除</el-button>
<el-button type="text"
@click="handleDeltemplate(scope.row.id)"
>删除</el-button
>
<el-button
type="text"
size="small"
class="div-table-button--detail"
@click="handlePreview(scope.row.id)">预览</el-button>
<el-button type="text"
@click="handlePreview(scope.row.id)"
>预览</el-button
>
<el-button
type="text"
size="small"
class="div-table-button--edit"
@click="handleExportTemplate(scope.row.id)">导出</el-button>
@click="handleExportTemplate(scope.row.id)"
>导出</el-button
>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
<div v-if="activeName == 'first'"
class="diy-footer">
<div v-if="activeName == 'first'" class="diy-footer">
<div class="left">
<div class="flex-div">
<div>模板名称</div>
<el-input v-model="form.name"
<el-input
v-model="form.name"
maxlength="20"
class="wd200 mr10" />
class="wd200 mr10"
/>
<div>自定义表头</div>
<el-input v-model="form.title" maxlength="20" class="wd200 mr10" />
<el-checkbox v-model="form.isSaveTemp">保存为常用模板</el-checkbox>
<el-input
v-model="form.title"
maxlength="20"
class="wd200 mr10"
/>
<el-checkbox v-model="form.isSaveTemp"
>保存为常用模板</el-checkbox
>
</div>
</div>
<el-button class="diy-button--delete"
<el-button
class="diy-button--delete"
:loading="exportLoading"
@click="handleExport">导出</el-button>
@click="handleExport"
>导出</el-button
>
</div>
<el-dialog :visible.sync="diyDialog"
<el-dialog
:visible.sync="diyDialog"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="1150px"
append-to-body
top="5vh"
class="dialog-h"
@close="handleClose">
<div style="padding: 20px;">
<el-table :data="tableData"
@close="handleClose"
>
<div style="padding: 20px">
<el-table
:data="tableData"
height="calc(80vh - 140px)"
style="width: 100%">
<el-table-column v-for="(item, index) in previewList"
style="width: 100%"
>
<el-table-column
v-for="(item, index) in previewList"
:label="item.label"
:key="index"
align="center"
min-width="120">
<el-table-column v-for="(n, i) in item.children"
min-width="120"
>
<el-table-column
v-for="(n, i) in item.children"
:label="n.label"
:key="i"
align="center"
min-width="120">
min-width="120"
>
</el-table-column>
</el-table-column>
</el-table>
</div>
</el-dialog>
@ -146,61 +188,63 @@
</template>
<script>
import checkBox from '../../../components/checkBox.vue'
import dragItem from '../../../components/dragItem.vue'
import Sortable from 'sortablejs'
import { requestPost } from "@/js/dai/request"
import checkBox from "../../../components/checkBox.vue";
import dragItem from "../../../components/dragItem.vue";
import Sortable from "sortablejs";
import { requestPost } from "@/js/dai/request";
export default {
props: {
list: {
type: Array,
default: () => []
default: () => [],
},
search: {
type: Object,
default: () => { }
}
default: () => {},
},
},
components: {
checkBox,
dragItem
dragItem,
},
data () {
data() {
return {
exportLoading: false,
activeCollapse: ['1'],
activeName: 'first',
leftActive: '',
activeCollapse: ["1"],
activeName: "first",
leftActive: "",
info: {},
rightList: [],
leftList: [],
form: {
isSaveTemp: false,
name: '',
itemList: []
name: "",
itemList: [],
},
tableData: [],
previewList: [],
diyDialog: false,
}
};
},
async created () {
this.list.forEach(item => {
this.$set(this.info, item.id, [])
})
this.leftActive = this.list[0].id
this.leftList = [...this.list]
this.leftList[0].queryItemList = await this.getExportChildList(this.leftList[0].id)
console.log('infodiy----', this.leftList)
this.getTemplateList()
async created() {
this.list.forEach((item) => {
this.$set(this.info, item.id, []);
});
this.leftActive = this.list[0].id;
this.leftList = [...this.list];
this.leftList[0].queryItemList = await this.getExportChildList(
this.leftList[0].id
);
console.log("infodiy----", this.leftList);
this.getTemplateList();
},
watch: {
rightList: {
handler (val) {
if (val.length > 0) this.dragSort()
handler(val) {
if (val.length > 0) this.dragSort();
},
deep: true
deep: true,
},
// list: {
// handler(val) {
@ -214,227 +258,241 @@ export default {
// },
},
methods: {
handleChangeBox ({ list, pid }) {
console.log('ccccc----', list)
handleChangeBox({ list, pid }) {
console.log("ccccc----", list);
// if (list.length == 0) return
let obj = {}
this.leftList.forEach(item => {
if (item.id == pid) obj = { ...item, queryItemList: [...list] }
})
const groups = this.rightList.map(item => item.id)
let obj = {};
this.leftList.forEach((item) => {
if (item.id == pid) obj = { ...item, queryItemList: [...list] };
});
const groups = this.rightList.map((item) => item.id);
if (groups.includes(pid)) {
this.rightList.forEach((item, i) => {
if (item.id == pid) {
item.queryItemList = [...list]
if (list.length == 0) this.rightList.splice(i, 1)
item.queryItemList = [...list];
if (list.length == 0) this.rightList.splice(i, 1);
}
})
});
} else {
this.rightList.push(obj)
this.rightList.push(obj);
this.$nextTick(() => {
console.log('itemttt------', this.$refs[`drag${pid}`])
this.$refs[`drag${pid}`][0].dragSort()
})
console.log("itemttt------", this.$refs[`drag${pid}`]);
this.$refs[`drag${pid}`][0].dragSort();
});
}
this.activeCollapse = [...this.activeCollapse, pid]
this.activeCollapse = [...this.activeCollapse, pid];
},
handleTabsClick (val) {
console.log('tabs-----', val)
this.leftList.forEach(async item => {
handleTabsClick(val) {
console.log("tabs-----", val);
this.leftList.forEach(async (item) => {
if (item.id == val.name) {
if (item.queryItemList.length == 0) item.queryItemList = await this.getExportChildList(item.id)
if (item.queryItemList.length == 0)
item.queryItemList = await this.getExportChildList(
item.id
);
}
})
});
},
handleDelItem (val) {
const { item, index } = val
console.log('item------', item, this.$refs[`checkbox${item.itemGroupId}`])
let checkList = this.$refs[`checkbox${item.itemGroupId}`][0].checkedList
handleDelItem(val) {
const { item, index } = val;
console.log(
"item------",
item,
this.$refs[`checkbox${item.itemGroupId}`]
);
let checkList =
this.$refs[`checkbox${item.itemGroupId}`][0].checkedList;
checkList.forEach((n, i) => {
if (n == item.itemId) {
checkList.splice(i, 1)
this.$refs[`checkbox${item.itemGroupId}`][0].handleChange(checkList)
checkList.splice(i, 1);
this.$refs[`checkbox${item.itemGroupId}`][0].handleChange(
checkList
);
}
})
});
this.rightList.forEach((n, i) => {
if (n.id === item.itemGroupId) {
n.queryItemList.splice(index, 1)
if (n.queryItemList.length === 0) this.rightList.splice(i, 1)
n.queryItemList.splice(index, 1);
if (n.queryItemList.length === 0)
this.rightList.splice(i, 1);
}
})
});
},
dragSort () {
const el = document.getElementById('collapsWr')
dragSort() {
const el = document.getElementById("collapsWr");
this.sortTable = Sortable.create(el, {
group: 'el-collapse-item',
ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
group: "el-collapse-item",
ghostClass: "sortable-ghost", // Class name for the drop placeholder,
animation: 500,
delay: 0,
onEnd: evt => {
console.log('evt----', evt)
const targetRow = this.rightList.splice(evt.oldIndex, 1)[0]
this.rightList.splice(evt.newIndex, 0, targetRow)
}
})
onEnd: (evt) => {
console.log("evt----", evt);
const targetRow = this.rightList.splice(evt.oldIndex, 1)[0];
this.rightList.splice(evt.newIndex, 0, targetRow);
},
});
},
handleDrag (val, item) {
console.log('drag-----', val)
console.log('drag-----', item)
handleDrag(val, item) {
console.log("drag-----", val);
console.log("drag-----", item);
this.rightList.forEach((n, i) => {
if (item.id == n.id) n.queryItemList = [...val]
})
if (item.id == n.id) n.queryItemList = [...val];
});
},
handleClose () {
this.previewList = []
this.diyDialog = false
handleClose() {
this.previewList = [];
this.diyDialog = false;
},
handleDeltemplate (id) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.delTemplate(id)
}).catch(() => {
handleDeltemplate(id) {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.delTemplate(id);
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
type: "info",
message: "已取消删除",
});
});
})
},
handlePreview (id) {
if (id) this.getPreview(id)
handlePreview(id) {
if (id) this.getPreview(id);
else {
if (this.rightList.length == 0) return this.$message.error('请选择导出信息')
this.previewList = this.rightList.map(item => {
if (this.rightList.length == 0)
return this.$message.error("请选择导出信息");
this.previewList = this.rightList.map((item) => {
return {
label: item.label,
children: item.queryItemList
}
})
children: item.queryItemList,
};
});
}
this.diyDialog = true
this.diyDialog = true;
},
handleExport () {
if (this.rightList.length === 0) return this.$message.error('请选择导出信息')
if (this.form.isSaveTemp && !this.form.name) return this.$message.error('请输入模板名称')
this.exportLoading = true
this.exportTemplate()
handleExport() {
if (this.rightList.length === 0)
return this.$message.error("请选择导出信息");
if (this.form.isSaveTemp && !this.form.name)
return this.$message.error("请输入模板名称");
this.exportLoading = true;
this.exportTemplate();
},
handleExportTemplate (id) {
this.exportTemplate(id)
handleExportTemplate(id) {
this.exportTemplate(id);
},
async exportTemplate (id) {
let url = "/actual/base/communityHouse/exportExcelCustom"
async exportTemplate(id) {
let url = "/actual/base/communityHouse/exportExcelCustom";
// return console.log(this.search);
let params = {
templateId: id || '',
templateId: id || "",
searchForm: { ...this.search },
exportConfig: {
...this.form,
formCode: 'community_info',
itemList: this.rightList.map(item => {
formCode: "community_info",
itemList: this.rightList.map((item) => {
return {
itemId: item.id,
label: item.label,
tableName: item.queryItemList[0].tableName,
children: item.queryItemList,
supportAdd: item.supportAdd
}
})
}
}
supportAdd: item.supportAdd,
};
}),
},
};
await this.$http({
method: 'POST',
method: "POST",
url,
responseType: 'blob',
data: params
responseType: "blob",
data: params,
})
.then(res => {
console.log('res----dddd', res)
.then((res) => {
console.log("res----dddd", res);
// this.download(res.data, title + '.xls')
// this.getTemplateList()
this.exportLoading = false
this.exportLoading = false;
// if (res.data.code && res.data.code == 9999) {
// return this.$message.error(res.data.msg)
// }
this.formatData(res)
})
.catch(err => {
console.log('err', err)
this.exportLoading = false
return this.$message.error('网络错误')
this.formatData(res);
})
.catch((err) => {
console.log("err", err);
this.exportLoading = false;
return this.$message.error("网络错误");
});
},
async getTemplateList () {
async getTemplateList() {
let params = {
formCode: 'community_info'
}
formCode: "community_info",
};
await this.$http
.post('/oper/customize/icExportTemplate/templateList', params)
.post("/oper/customize/icExportTemplate/templateList", params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
} else {
this.tableData = res.data
this.tableData = res.data;
}
})
.catch(() => {
return this.$message.error('网络错误')
})
return this.$message.error("网络错误");
});
},
async getPreview (id) {
async getPreview(id) {
let params = {
id: id || ''
}
id: id || "",
};
await this.$http
.post('/oper/customize/icExportTemplate/templateDetail', params)
.post("/oper/customize/icExportTemplate/templateDetail", params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
} else {
this.previewList = res.data
this.previewList = res.data;
}
})
.catch(() => {
return this.$message.error('网络错误')
})
return this.$message.error("网络错误");
});
},
async delTemplate (id) {
let params = [id]
async delTemplate(id) {
let params = [id];
await this.$http
.post('/oper/customize/icExportTemplate/delete', params)
.post("/oper/customize/icExportTemplate/delete", params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
} else {
this.$message({
type: 'success',
message: '删除成功!'
type: "success",
message: "删除成功!",
});
this.getTemplateList()
this.getTemplateList();
}
})
.catch(() => {
return this.$message.error('网络错误')
})
return this.$message.error("网络错误");
});
},
async getExportChildList (groupId) {
const url = `/oper/customize/icformitem/getItemList/${groupId}`
let params = {}
async getExportChildList(groupId) {
const url = `/oper/customize/icformitem/getItemList/${groupId}`;
let params = {};
const { data, code, msg } = await requestPost(url, params)
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
return data
return data;
} else {
this.$message.error(msg)
this.$message.error(msg);
}
// if (code === 0) {
// let dataTemp = []
@ -707,42 +765,49 @@ export default {
// this.$message.error(msg)
// }
},
formatData (res) {
const fileReader = new FileReader()
formatData(res) {
const fileReader = new FileReader();
fileReader.onloadend = () => {
try {
const jsonData = JSON.parse(fileReader.result) //
const jsonData = JSON.parse(fileReader.result); //
//
console.log('jsonData---1', jsonData)
return this.$message.error(jsonData.msg)
} catch (err) { //
console.log("jsonData---1", jsonData);
return this.$message.error(jsonData.msg);
} catch (err) {
//
//
console.log('errr-----', err, this)
this.downloadFile(res)
}
console.log("errr-----", err, this);
this.downloadFile(res);
}
fileReader.readAsText(res.data)
};
fileReader.readAsText(res.data);
},
downloadFile (res) {
downloadFile(res) {
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
this.$message.success('导出成功')
this.$emit('close')
} else this.$message.error('下载失败')
}
}
}
let fileName = window.decodeURI(
res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
this.$message.success("导出成功");
this.$emit("close");
} else this.$message.error("下载失败");
},
},
};
</script>
<style lang="scss" scoped>

1197
src/views/modules/base/community/communityTable.vue

File diff suppressed because it is too large

2
src/views/modules/base/resi.vue

@ -853,7 +853,7 @@ export default {
);
conditions.push({
queryType: "daterange",
columnValue: [dateEnd,dateStart],
columnValue: [dateEnd, dateStart],
columnName: "BIRTHDAY",
label: "出生日期",
tableName: "resident_base_info",

444
src/views/modules/base/smartImport.vue

@ -2,8 +2,8 @@
<div class="g-main">
<div class="m-table">
<div class="u-table-btn1">
<el-upload :headers="$getElUploadHeaders()"
<el-upload
:headers="$getElUploadHeaders()"
ref="upload"
class="upload-btn"
action="uploadUlr"
@ -15,145 +15,133 @@
:on-progress="handleProgress"
:on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-button size="small"
:http-request="uploadHttpRequest"
>
<el-button
size="small"
class="diy-button--white"
:loading="importLoading">表格导入</el-button>
:loading="importLoading"
>表格导入</el-button
>
</el-upload>
<el-button class="diy-button--white"
size="small"
style="margin-left:10px"
@click="handleExportModule()">下载模板</el-button>
<el-button
class="diy-button--white"
size="small"
style="margin-left: 10px"
@click="handleExportModule()"
>下载模板</el-button
>
</div>
<el-table ref="ref_table"
<div v-if="dataList.length > 0">
<el-table
ref="ref_table"
:data="dataList"
border
:height="tableHeight"
class="m-table-item"
v-loading="dataListLoading"
style="width: 100%">
<el-table-column label="序号"
style="width: 100%"
>
<el-table-column
label="序号"
header-align="center"
align="center"
type="index"
width="100"></el-table-column>
width="100"
></el-table-column>
<el-table-column prop="deptName"
<el-table-column
prop="srcField"
header-align="center"
align="center"
label="表格信息"
min-width="100">
min-width="100"
>
</el-table-column>
<el-table-column prop="dataName"
<el-table-column
prop="field"
header-align="center"
align="center"
label="平台对应信息"
min-width="110">
min-width="110"
>
<template slot-scope="scope">
<span v-if="scope.row.exist">{{
scope.row.field
}}</span>
<el-select class="item_width_sel"
<div v-else>
<el-select
class="item_width_sel"
v-model="scope.row.itemGroupId"
size="small"
placeholder="请选择">
<el-option v-for="item in groupList"
@click.native="handleSelGroup(scope.$index,item)"
placeholder="请选择"
>
<el-option
v-for="item in groupList"
@click.native="
handleSelGroup(scope.$index, item)
"
:key="item.id"
:label="item.label"
:value="item.id">
:value="item.id"
>
</el-option>
</el-select>
<el-select class="item_width_sel"
v-model="scope.row.itemId"
<el-select
class="item_width_sel"
v-model="scope.row.field"
size="small"
style="margin-left:10px"
placeholder="请选择">
<el-option v-for="item in scope.row.itemList"
style="margin-left: 10px"
placeholder="请选择"
>
<el-option
v-for="item in scope.row.itemList"
:key="item.itemId"
:label="item.label"
:value="item.itemId">
:value="item.label"
>
</el-option>
</el-select>
</div>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
<div ref="divEditBtn"
class="m-edit-btn">
<el-button type="primary"
<div ref="divEditBtn" class="m-edit-btn">
<el-button
type="primary"
size="small"
class="diy-button--blue"
@click="handleComfirm"> </el-button>
@click="handleComfirm"
> </el-button
>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'数据更新配置'"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<div class="div_form">
<el-form ref="ref_form"
:inline="true"
:model="formData">
<el-form-item label="适用范围"
label-width="150px"
style="display: block">
</el-form-item>
</el-form>
<div class="m-hint" v-else>请先导入表格</div>
</div>
<div class="div-btn">
<el-button size="small"
@click="diaClose"> </el-button>
<el-button size="small"
type="primary"
@click="editDiaOK"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from "vuex";
import { requestPost } from '@/js/dai/request'
import { mapGetters } from 'vuex'
export default {
data () {
data() {
return {
customerId: '', // id
customerName: '', //
customerId: "", // id
customerName: "", //
tableParams: {
customerId: ''
customerId: "",
},
// tableHeight: 500,
search: '',
search: "",
dataList: [],
dataListLoading: false,
@ -161,162 +149,131 @@ export default {
pageSize: 20,
pageNo: 0,
formShow: false,
formData: {},
scopeList: [],
dataSyncConfigId: '',
dataSyncConfigId: "",
importLoading: false,
groupList: [],
sHeight: 0,
}
},
computed: {
tableHeight () {
const h = this.clientHeight - this.sHeight + this.iframeHeigh
const _h = this.clientHeight - this.sHeight
return this.$store.state.inIframe ? h : _h
},
...mapGetters(['clientHeight', 'iframeHeight'])
importCode: "",
importOption: { exist: {}, notExist: {} },
};
},
components: {
computed: {
tableHeight() {
const h = this.clientHeight - this.sHeight + this.iframeHeigh;
const _h = this.clientHeight - this.sHeight;
return this.$store.state.inIframe ? h : _h;
},
created () {
...mapGetters(["clientHeight", "iframeHeight"]),
},
async mounted () {
await this.loadData()
await this.loadPersonGroup()
components: {},
created() {},
async mounted() {
// await this.loadData();
await this.loadPersonGroup();
this.sHeight = this.$refs.divEditBtn.offsetHeight + 300
this.sHeight = this.$refs.divEditBtn.offsetHeight + 300;
},
methods: {
diaClose () {
this.formShow = false
diaClose() {
this.formShow = false;
},
async loadPersonGroup () {
const url = '/oper/customize/icformitemgroup/list'
async loadPersonGroup() {
const url = "/oper/customize/icformitemgroup/list";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params = {
formCode: 'resi_base_info',
policyFlag: '1'
}
formCode: "resi_base_info",
policyFlag: "1",
};
const { data, code, msg } = await requestPost(url, params)
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.groupList = data
this.groupList = data;
} else {
this.$message.error(msg)
this.$message.error(msg);
}
},
//
async handleSelGroup (index, item, isSet) {
const url = '/oper/customize/icformitem/getItemListV2'
async handleSelGroup(index, item, isSet) {
const url = "/oper/customize/icformitem/getItemListV2";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params = {
policyFlag: '1',
policyFlag: "1",
groupId: item.id,
};
}
const { data, code, msg } = await requestPost(url, params)
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let oneData = this.dataList[index]
oneData.itemList = data
this.$set(this.dataList, index, oneData)
let oneData = this.dataList[index];
oneData.itemList = data;
this.$set(this.dataList, index, oneData);
} else {
this.$message.error(msg)
this.$message.error(msg);
}
},
//
async loadData () {
this.dataListLoading = true
async loadData() {
this.dataListLoading = true;
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/dataSyncConfig/list'
const url = '/epmetuser/dataSyncConfig/list'
const url = "/epmetuser/dataSyncConfig/list";
this.tableParams = {
pageSize: this.pageSize,
pageNo: this.pageNo
}
pageNo: this.pageNo,
};
const { data, code, msg } = await requestPost(url, this.tableParams)
this.dataListLoading = false
const { data, code, msg } = await requestPost(
url,
this.tableParams
);
this.dataListLoading = false;
if (code === 0) {
this.total = data.total
this.dataList = data.list
this.dataList.forEach(element => {
element.stateShow = element.switchStatus === 'open' ? true : false
})
this.total = data.total;
this.dataList = data.list;
this.dataList.forEach((element) => {
element.stateShow =
element.switchStatus === "open" ? true : false;
});
} else {
// this.$message.error(msg )
}
},
handleChangeScope (value) {
handleChangeScope(value) {
// console.log('value', value)
this.orgIdArray = value
this.scopeList = []
let selArray = this.$refs["myCascader"].getCheckedNodes()
this.orgIdArray = value;
this.scopeList = [];
let selArray = this.$refs["myCascader"].getCheckedNodes();
// console.log('selArray', selArray)
selArray.forEach((element, index) => {
let obj = {
orgId: element.data.agencyId,
orgType: element.data.level,
orgIdPath: element.path.join(':'),
}
this.scopeList.push(obj)
orgIdPath: element.path.join(":"),
};
this.scopeList.push(obj);
});
console.log('this.scopeList', this.scopeList)
console.log("this.scopeList", this.scopeList);
},
handleComfirm () {
console.log(this.dataList)
},
async editDiaOK () {
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/dataSyncConfig/scopeSave'
const url = '/epmetuser/dataSyncConfig/scopeSave'
let params = {
dataSyncConfigId: this.dataSyncConfigId,
scopeList: this.scopeList
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.formShow = false
this.loadData()
} else {
// this.$message.error(msg )
}
},
async handleExportModule () {
let url = "/heart/iccommunityselforganization/import-template-download";
async handleExportModule() {
let url = "/epmetuser/icresiuser/import/download-template";
let params = {};
await this.$http({
@ -329,7 +286,9 @@ export default {
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
@ -352,18 +311,18 @@ export default {
});
},
//
handleExcelSuccess (res, file) {
handleExcelSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
console.log("resss---ppp", res);
} else {
this.$message.error(res.msg);
}
},
handleProgress (event, file, fileList) {
handleProgress(event, file, fileList) {
console.log("percentage", file.percentage);
},
beforeExcelUpload (file) {
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
@ -380,26 +339,41 @@ export default {
}
return fileType && isLt1M;
},
async uploadHttpRequest (file) {
async uploadHttpRequest(file) {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
this.$message({
showClose: true,
message: "导入中,请到系统管理-导入记录中查看进度",
duration: 0,
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("code", ""); //
await this.$http
.post(
"/heart/iccommunityselforganization/importcommunityselforganization",
formData
)
.post("/actual/base/residentBaseInfo/importExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
// this.$message.success('')
this.getTableData();
console.log(res.data.data);
const data = res.data.data;
this.dataList = [
...Object.keys(data.option.exist).map((k) => {
return {
index: k,
srcField: data.option.exist[k],
exist: true,
field: data.option.exist[k],
};
}),
...Object.keys(data.option.notExist).map((k) => {
return {
index: k,
srcField: data.option.notExist[k],
exist: false,
field: "",
};
}),
];
this.importOption = data.option;
this.importCode = data.code;
} else this.$message.error(res.data.msg);
})
.catch((err) => {
@ -407,52 +381,55 @@ export default {
file.onError(); //
// this.$message.error('')
});
// axios({
// url:
// window.SITE_CONFIG["apiURL"] +
// "/heart/iccommunityselforganization/importcommunityselforganization",
// method: "post",
// data: formData,
// // responseType: "blob",
// })
// .then((res) => {
// this.importLoading = false;
// this.importBtnTitle = "";
// console.log("resresresresresresres", res);
// this.getTableData();
// if (res.data.code == 0) {
// return this.$message.success(res.data.data || "");
// } else {
// return this.$message.error(res.data.msg);
// }
// })
// .catch((err) => {
// console.log("", err);
// });
this.importLoading = false;
this.importBtnTitle = "导入";
this.$refs.upload.clearFiles();
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadData()
async handleComfirm() {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
this.$message({
showClose: true,
message: "导入中,请到系统管理-导入记录中查看进度",
duration: 0,
});
const { importOption, importCode, dataList } = this;
dataList.forEach((item) => {
if (!item.exist) {
importOption.notExist[item.index] = item.field;
}
});
await this.$http
.post("/actual/base/residentBaseInfo/import/header", {
code: importCode,
option: {
exist: importOption.exist,
notExist: importOption.notExist,
},
handleCurrentChange (val) {
this.pageNo = val
this.loadData()
})
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
// this.$message.success('')
this.dataList = [];
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
diaCancel () {
this.$emit('cancleBack')
diaCancel() {
this.$emit("cancleBack");
},
}
}
},
};
</script>
<style lang="scss" scoped>
@ -469,4 +446,11 @@ export default {
.item_width_sel {
width: 200px;
}
.m-hint {
font-size: 50px;
line-height: 300px;
text-align: center;
color: #aaaaaa;
}
</style>

Loading…
Cancel
Save