Browse Source

居民导出

shibei_master
dai 3 years ago
parent
commit
933625fbde
  1. 31
      src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue
  2. 302
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  3. 101
      src/views/modules/shequzhili/tuceng/zhonghe/base.vue

31
src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue

@ -30,7 +30,7 @@
> >
</el-option> </el-option>
</el-select> </el-select>
<div style="width:610px" v-else>{{ fmData.serviceTypeName }}</div> <div style="width: 610px" v-else>{{ fmData.serviceTypeName }}</div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -48,7 +48,7 @@
v-model="fmData.orgName" v-model="fmData.orgName"
> >
</el-input> </el-input>
<div style="width:610px" v-else>{{ fmData.orgName || "--" }}</div> <div style="width: 610px" v-else>{{ fmData.orgName || "--" }}</div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -67,7 +67,9 @@
placeholder="请输入服务内容,不超过1000字" placeholder="请输入服务内容,不超过1000字"
v-model="fmData.orgDescribe" v-model="fmData.orgDescribe"
></el-input> ></el-input>
<div style="width:610px" v-else>{{ fmData.orgDescribe || "--" }}</div> <div style="width: 610px" v-else>
{{ fmData.orgDescribe || "--" }}
</div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -84,7 +86,9 @@
placeholder="请输入负责人姓名" placeholder="请输入负责人姓名"
v-model="fmData.principalName" v-model="fmData.principalName"
></el-input> ></el-input>
<div style="width:610px" v-else>{{ fmData.principalName || "--" }}</div> <div style="width: 610px" v-else>
{{ fmData.principalName || "--" }}
</div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -101,7 +105,9 @@
placeholder="请输入联系方式" placeholder="请输入联系方式"
v-model="fmData.principalMobile" v-model="fmData.principalMobile"
></el-input> ></el-input>
<div style="width:610px" v-else>{{ fmData.principalMobile || "--" }}</div> <div style="width: 610px" v-else>
{{ fmData.principalMobile || "--" }}
</div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -165,7 +171,7 @@
placeholder="请输入备注,不超过500字" placeholder="请输入备注,不超过500字"
v-model="fmData.remark" v-model="fmData.remark"
></el-input> ></el-input>
<div style="width:610px" v-else>{{ fmData.remark || "--" }}</div> <div style="width: 610px" v-else>{{ fmData.remark || "--" }}</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -188,6 +194,7 @@
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper"; import formVltHelper from "dai-js/tools/formVltHelper";
import nextTick from "dai-js/tools/nextTick";
var map; var map;
var search; var search;
@ -288,8 +295,8 @@ export default {
geocoder = new TMap.service.Geocoder(); // geocoder = new TMap.service.Geocoder(); //
// //
map.on("panend", () => { map.on("panend", (e) => {
this.handleMoveCenter(); this.handleMoveCenter(e);
}); });
this.handleMoveCenter(); this.handleMoveCenter();
}, },
@ -336,7 +343,7 @@ export default {
}); });
}, },
handleMoveCenter() { handleMoveCenter(e) {
// //
const center = map.getCenter(); const center = map.getCenter();
const lat = center.getLat(); const lat = center.getLat();
@ -345,11 +352,13 @@ export default {
this.fmData.longitude = lng; this.fmData.longitude = lng;
this.setMarker(lat, lng); this.setMarker(lat, lng);
if (e && e.originalEvent) {
geocoder geocoder
.getAddress({ location: new TMap.LatLng(lat, lng) }) // .getAddress({ location: new TMap.LatLng(lat, lng) }) //
.then((result) => { .then((result) => {
this.fmData.address = result.result.address; this.fmData.address = result.result.address;
}); });
}
}, },
async getInfo() { async getInfo() {
@ -366,7 +375,11 @@ export default {
...data, ...data,
serviceTypeArr: data.serviceType.split(","), serviceTypeArr: data.serviceType.split(","),
}; };
await nextTick(800);
if (map) {
map.setCenter(new TMap.LatLng(data.latitude, data.longitude)); map.setCenter(new TMap.LatLng(data.latitude, data.longitude));
}
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }

302
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -1,185 +1,246 @@
<template> <template>
<div> <div>
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<el-form ref="ref_form" <el-form
ref="ref_form"
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
:rules="dataRule" :rules="dataRule"
:disabled="formType === 'detail'" :disabled="formType === 'detail'"
class="form"> class="form"
<el-form-item label="组织名称 " >
<el-form-item
label="组织名称 "
prop="organizationName" prop="organizationName"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入组织名称 " placeholder="请输入组织名称 "
v-model="dataForm.organizationName"> v-model="dataForm.organizationName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="分类名称 " <el-form-item
label="分类名称 "
prop="categoryCode" prop="categoryCode"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-select v-model="dataForm.categoryCode" >
<el-select
v-model="dataForm.categoryCode"
placeholder="请选择" placeholder="请选择"
clearable> clearable
<el-option v-for="item in categoryList" >
<el-option
v-for="item in categoryList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="组织人数 " <el-form-item
label="组织人数 "
prop="organizationPersonCount" prop="organizationPersonCount"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
type="number" type="number"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入组织人数 " placeholder="请输入组织人数 "
v-model="dataForm.organizationPersonCount"> v-model="dataForm.organizationPersonCount"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="组织成员 " <el-form-item
label="组织成员 "
prop="organizationPersonnel" prop="organizationPersonnel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
>
<div class="m-staffs"> <div class="m-staffs">
<div class="item" <div
class="item"
:key="'staff' + index" :key="'staff' + index"
v-for="(item, index) in dataForm.organizationPersonnel"> v-for="(item, index) in dataForm.organizationPersonnel"
<el-input class="item_width_1" >
maxlength="50" <el-autocomplete
show-word-limit class="item_width_1"
v-model="item.personName"
:fetch-suggestions="querySearchVolunteer"
placeholder="成员姓名" placeholder="成员姓名"
v-model="item.personName" /> :maxlength="50"
show-word-limit
@select="(vItem) => handleSelectVolunteer(index, vItem)"
:disabled="item.icResiUserId != ''"
></el-autocomplete>
<el-input style="margin-left: 10px" <el-input
style="margin-left: 10px"
class="item_width_1" class="item_width_1"
maxlength="50"
show-word-limit show-word-limit
placeholder="联系电话" placeholder="联系电话"
v-model="item.personPhone" /> :disabled="item.icResiUserId != ''"
v-model="item.personPhone"
/>
<el-button style="margin-left: 10px" <el-button
style="margin-left: 10px"
size="small" size="small"
@click="handleDelStaff(index)">删除</el-button> @click="handleDelStaff(index)"
>删除</el-button
>
</div> </div>
<div class="item-add"> <div class="item-add">
<el-button size="small" <el-button size="small" @click="handleAddStaff">添加</el-button>
@click="handleAddStaff">添加</el-button>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="服务事项" <el-form-item
label="服务事项"
prop="serviceItem" prop="serviceItem"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
type="textarea" type="textarea"
maxlength="1000" maxlength="1000"
show-word-limit show-word-limit
:rows="3" :rows="3"
placeholder="请输入服务事项,不超过1000字" placeholder="请输入服务事项,不超过1000字"
v-model="dataForm.serviceItem"></el-input> v-model="dataForm.serviceItem"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="负责人 " <el-form-item
label="负责人 "
prop="principalName" prop="principalName"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入负责人 " placeholder="请输入负责人 "
v-model="dataForm.principalName"> v-model="dataForm.principalName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系电话 " <el-form-item
label="联系电话 "
prop="principalPhone" prop="principalPhone"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入联系电话 " placeholder="请输入联系电话 "
v-model="dataForm.principalPhone"> v-model="dataForm.principalPhone"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建时间" <el-form-item
label="创建时间"
prop="organizationCreatedTime" prop="organizationCreatedTime"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-date-picker v-model="dataForm.organizationCreatedTime" >
<el-date-picker
v-model="dataForm.organizationCreatedTime"
placeholder="创建时间" placeholder="创建时间"
value-format="yyyy-MM-dd"> value-format="yyyy-MM-dd"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="位置坐标" <el-form-item
label="位置坐标"
prop="longitude" prop="longitude"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
>
<div style="width: 500px"> <div style="width: 500px">
<el-input class="item_width_4" <el-input
class="item_width_4"
maxlength="50" maxlength="50"
placeholder="请输入关键字" placeholder="请输入关键字"
v-model="dataForm.address"> v-model="dataForm.address"
>
</el-input> </el-input>
<el-button style="margin-left: 10px" <el-button
style="margin-left: 10px"
type="primary" type="primary"
size="small" size="small"
@click="handleSearchMap">查询</el-button> @click="handleSearchMap"
<div id="app" >查询</el-button
class="div_map"></div> >
<div id="app" class="div_map"></div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<span>经度</span> <span>经度</span>
<el-input class="item_width_3" <el-input
class="item_width_3"
maxlength="50" maxlength="50"
placeholder="请输入经度" placeholder="请输入经度"
v-model="dataForm.longitude"> v-model="dataForm.longitude"
>
</el-input> </el-input>
<span style="margin-left: 20px">纬度</span> <span style="margin-left: 20px">纬度</span>
<el-input class="item_width_3" <el-input
class="item_width_3"
maxlength="50" maxlength="50"
placeholder="请输入纬度" placeholder="请输入纬度"
v-model="dataForm.latitude"> v-model="dataForm.latitude"
>
</el-input> </el-input>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="备注" <el-form-item
label="备注"
prop="remark" prop="remark"
label-width="150px" label-width="150px"
style="display: block"> style="display: block"
<el-input class="item_width_1" >
<el-input
class="item_width_1"
type="textarea" type="textarea"
maxlength="500" maxlength="500"
show-word-limit show-word-limit
:rows="3" :rows="3"
placeholder="请输入备注,不超过500字" placeholder="请输入备注,不超过500字"
v-model="dataForm.remark"></el-input> v-model="dataForm.remark"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="div_btn resi-btns"> <div class="div_btn resi-btns">
<el-button size="small" <el-button size="small" @click="handleCancle"> </el-button>
@click="handleCancle"> </el-button> <el-button
<el-button v-if="formType != 'detail'" v-if="formType != 'detail'"
type="primary" type="primary"
size="small" size="small"
:disabled="btnDisable" :disabled="btnDisable"
@click="handleComfirm"> </el-button> @click="handleComfirm"
> </el-button
>
</div> </div>
</div> </div>
</template> </template>
@ -189,15 +250,19 @@ import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper"; import formVltHelper from "dai-js/tools/formVltHelper";
import nextTick from "dai-js/tools/nextTick";
var map; var map;
var search; var search;
var markers; var markers;
var infoWindowList; var infoWindowList;
let loading; // let loading; //
var geocoder; //
export default { export default {
data () { components: {},
props: {},
data() {
return { return {
formType: "add", // addeditdetail formType: "add", // addeditdetail
@ -219,11 +284,11 @@ export default {
organizationPersonnel: [], organizationPersonnel: [],
}, },
categoryList: [], categoryList: [],
volunteerList: [],
}; };
}, },
components: {},
computed: { computed: {
dataRule () { dataRule() {
return { return {
organizationName: [ organizationName: [
{ required: true, message: "组织名称 不能为空", trigger: "blur" }, { required: true, message: "组织名称 不能为空", trigger: "blur" },
@ -255,18 +320,53 @@ export default {
}; };
}, },
}, },
props: {},
watch: {}, watch: {},
async created () { async mounted() {
this.getCategoryList(); this.getCategoryList();
}, this.getVolunteerList();
async mounted () {
this.initMap(); this.initMap();
}, },
methods: { methods: {
async getCategoryList () { querySearchVolunteer(queryString, cb) {
const { volunteerList } = this;
var results = queryString
? volunteerList.filter((item) => {
return item.value.indexOf(queryString) !== -1;
})
: volunteerList;
// callback
cb(results);
},
handleSelectVolunteer(index, vItem) {
this.dataForm.organizationPersonnel[index] = {
personName: vItem.name,
personPhone: vItem.mobile,
icResiUserId: vItem.icResiUserId,
};
},
async getVolunteerList() {
const url = "/epmetuser/icresiuser/volunteer-list";
const params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.volunteerList = data.map((item) => {
return {
name: item.name,
value: item.label,
mobile: item.mobile,
icResiUserId: item.icResiUserId,
};
});
} else {
this.$message.error(msg);
}
},
async getCategoryList() {
const url = "/sys/dict/data/dictlist"; const url = "/sys/dict/data/dictlist";
const params = { const params = {
dictType: "self_org_category", dictType: "self_org_category",
@ -278,19 +378,19 @@ export default {
this.$message.error(msg); this.$message.error(msg);
} }
}, },
handleAddStaff () { handleAddStaff() {
this.dataForm.organizationPersonnel = [ this.dataForm.organizationPersonnel = [
...this.dataForm.organizationPersonnel, ...this.dataForm.organizationPersonnel,
{ personName: "", personPhone: "" }, { personName: "", personPhone: "", icResiUserId: "" },
]; ];
}, },
handleDelStaff (index) { handleDelStaff(index) {
const { organizationPersonnel } = this.dataForm; const { organizationPersonnel } = this.dataForm;
organizationPersonnel.splice(index, 1); organizationPersonnel.splice(index, 1);
this.dataForm.organizationPersonnel = organizationPersonnel; this.dataForm.organizationPersonnel = organizationPersonnel;
}, },
// init // init
initMap () { initMap() {
// //
var center = new window.TMap.LatLng(36.0722275, 120.38945519); var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map() // map TMap.Map()
@ -309,14 +409,16 @@ export default {
}); });
infoWindowList = Array(10); infoWindowList = Array(10);
geocoder = new TMap.service.Geocoder(); //
// //
map.on("panend", () => { map.on("panend", (e) => {
this.handleMoveCenter(); this.handleMoveCenter(e);
}); });
this.handleMoveCenter(); this.handleMoveCenter();
}, },
setMarker (lat, lng) { setMarker(lat, lng) {
markers.setGeometries([]); markers.setGeometries([]);
markers.add([ markers.add([
{ {
@ -330,7 +432,7 @@ export default {
]); ]);
}, },
handleSearchMap () { handleSearchMap() {
infoWindowList.forEach((infoWindow) => { infoWindowList.forEach((infoWindow) => {
infoWindow.close(); infoWindow.close();
}); });
@ -358,7 +460,8 @@ export default {
}); });
}, },
handleMoveCenter () { handleMoveCenter(e) {
console.log(e);
// //
const center = map.getCenter(); const center = map.getCenter();
const lat = center.getLat(); const lat = center.getLat();
@ -366,9 +469,17 @@ export default {
this.dataForm.latitude = lat; this.dataForm.latitude = lat;
this.dataForm.longitude = lng; this.dataForm.longitude = lng;
this.setMarker(lat, lng); this.setMarker(lat, lng);
if (e && e.originalEvent) {
geocoder
.getAddress({ location: new TMap.LatLng(lat, lng) }) //
.then((result) => {
this.dataForm.address = result.result.address;
});
}
}, },
async initForm (type, row) { async initForm(type, row) {
this.$refs.ref_form.resetFields(); this.$refs.ref_form.resetFields();
this.formType = type; this.formType = type;
@ -376,11 +487,15 @@ export default {
if (row) { if (row) {
this.dataForm = { ...this.dataForm, ...row }; this.dataForm = { ...this.dataForm, ...row };
this.orgId = this.dataForm.orgId; this.orgId = this.dataForm.orgId;
await nextTick(800);
if (map) {
map.setCenter(new TMap.LatLng(row.latitude, row.longitude)); map.setCenter(new TMap.LatLng(row.latitude, row.longitude));
} }
}
}, },
async handleComfirm () { async handleComfirm() {
this.btnDisable = true; this.btnDisable = true;
setTimeout(() => { setTimeout(() => {
this.btnDisable = false; this.btnDisable = false;
@ -400,10 +515,7 @@ export default {
dataForm: { organizationPersonnel }, dataForm: { organizationPersonnel },
} = this; } = this;
let vlt = organizationPersonnel.every((item) => { let vlt = organizationPersonnel.every((item) => {
return ( return item.personName && item.personPhone;
item.personName &&
item.personPhone
);
}); });
if (!vlt) { if (!vlt) {
return this.$message({ return this.$message({
@ -416,7 +528,7 @@ export default {
}); });
}, },
async submit () { async submit() {
let url = ""; let url = "";
if (this.formType === "add") { if (this.formType === "add") {
url = "/heart/iccommunityselforganization/addcommunityselforganization"; url = "/heart/iccommunityselforganization/addcommunityselforganization";
@ -444,11 +556,11 @@ export default {
} }
}, },
handleCancle () { handleCancle() {
this.resetData(); this.resetData();
this.$emit("dialogCancle"); this.$emit("dialogCancle");
}, },
resetData () { resetData() {
this.orgId = ""; this.orgId = "";
this.dataForm = { this.dataForm = {
organizationName: "", organizationName: "",
@ -466,7 +578,7 @@ export default {
}; };
}, },
// //
startLoading () { startLoading() {
loading = Loading.service({ loading = Loading.service({
lock: true, // lock: true, //
text: "正在加载……", // text: "正在加载……", //
@ -474,7 +586,7 @@ export default {
}); });
}, },
// //
endLoading () { endLoading() {
// clearTimeout(timer); // clearTimeout(timer);
if (loading) { if (loading) {
loading.close(); loading.close();

101
src/views/modules/shequzhili/tuceng/zhonghe/base.vue

@ -277,6 +277,23 @@
:gridName="currentPepeleGridName" :gridName="currentPepeleGridName"
@close="showedPeopleMoreInfo = false" @close="showedPeopleMoreInfo = false"
/> />
<el-dialog
:visible.sync="diyDialog"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="1150px"
top="5vh"
class="dialog-h"
>
<diy-info
v-if="diyDialog"
ref="ref_diy"
:list="exportList"
:search="computeQueryParams()"
@close="diyDialog = false"
></diy-info>
</el-dialog>
</div> </div>
</template> </template>
@ -285,6 +302,7 @@ import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick"; import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import peopleMore from "@/views/modules/shequ/cpts/people-more"; import peopleMore from "@/views/modules/shequ/cpts/people-more";
import diyInfo from "@/views/modules/base/diyInfo.vue";
export default { export default {
props: { props: {
@ -294,7 +312,7 @@ export default {
}, },
}, },
components: { peopleMore }, components: { peopleMore, diyInfo },
data() { data() {
return { return {
openSearch: false, openSearch: false,
@ -345,6 +363,9 @@ export default {
currentPepeleId: "", currentPepeleId: "",
currentPepeleGridName: "", currentPepeleGridName: "",
diyDialog: false,
exportList: [],
}; };
}, },
computed: { computed: {
@ -620,64 +641,32 @@ export default {
}, },
async handleChu() { async handleChu() {
const url = "/epmetuser/icMoveIn/export"; this.getExportList();
const { pageSize, pageNo } = this;
await this.$http({
method: "POST",
url,
responseType: "blob",
data: {
pageSize,
pageNo,
...this.computeQueryParams(),
}, },
})
.then((res) => { async getExportList() {
console.log("res----dddd", res); const url = "/oper/customize//icformitemgroup/list";
this.formatData(res); let params = {
}) formCode: "resi_base_info",
.catch((err) => { };
console.log("err", err);
this.exportLoading = false; const { data, code, msg } = await requestPost(url, params);
return this.$message.error("网络错误");
if (code === 0) {
data.forEach((item) => {
(async (id) => {
// item.queryItemList = await this.getExportChildList(id)
item.queryItemList = [];
})(item.id);
}); });
}, this.exportList = [...data];
formatData(res) { this.$nextTick(() => {
const fileReader = new FileReader(); this.diyDialog = true;
fileReader.onloadend = () => { });
try { console.log("获取详情成功getExportList----", this.exportList);
const jsonData = JSON.parse(fileReader.result); // } else {
// this.$message.error(msg);
console.log("jsonData---1", jsonData);
return this.$message.error(jsonData.msg);
} catch (err) {
//
//
console.log("errr-----", err, this);
this.downloadFile(res);
} }
};
fileReader.readAsText(res.data);
},
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("下载失败");
}, },
async getTableData() { async getTableData() {

Loading…
Cancel
Save