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

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

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

Loading…
Cancel
Save