导入导出

xuhongjie
严飞永 1 week ago
parent 6931d67530
commit 13c4a93dc2

@ -6,14 +6,14 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>基本信息</span>
</div>
<div class="topright">
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action"
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action || action === 'okay'"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
编辑
</el-button>
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action"
<el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common'])"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="编辑"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
@ -208,6 +208,7 @@
<script>
import ImageUpload from '@/components/ImageUpload2/index.vue';
import luotu from '@/views/components/ProjectDetails/luotu.vue'
import { checkPermi, checkRole } from "@/utils/permission";
export default {
components: {
@ -348,15 +349,23 @@ export default {
}
},
methods: {
checkPermi,
checkRole,
/** 导出 */
// handleExport() {
// this.download(
// "/gysl/basicInformation/exportInfo",
// {
// idList: this.basicInfo.id
// },
// `${new Date().getTime()}.xlsx`
// );
// },
/** 导出按钮操作 */
handleExport() {
this.download(
"/gysl/basicInformation/exportInfo",
{
idList: this.basicInfo.id
},
`基本信息${new Date().getTime()}.xlsx`
);
this.download('/gysl/basicInformation/export', {
xmid: this.basicInfo.id
}, `基本信息导出${new Date().getTime()}.xlsx`)
},
//
formatDescriptions(data) {

@ -6,8 +6,8 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>建筑信息</span>
</div>
<div class="topright">
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action"
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action || action === 'okay'"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="addBuildingTag">
<img src="../../../assets/images/detailsicon/icon-xz@2x.png" alt="新增"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
@ -21,12 +21,12 @@
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
编辑
</el-button>
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action"
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action || action === 'okay'"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleImport">
<i class="el-icon-download" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"></i>
导入
</el-button>
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action"
<el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common'])"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="导出"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
@ -214,7 +214,8 @@
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
:data="upload.data" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
@ -234,6 +235,7 @@
<script>
import { getToken } from "@/utils/auth";
import { getjzxxinformationByxmId, addjzxx, updatejzxx, deletejzxx } from '@/api/ManageApi/index';
import { checkPermi, checkRole } from "@/utils/permission";
export default {
dicts: ['isno'],
@ -294,6 +296,9 @@ export default {
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/gysl/buildingInformation/importProjectBuilding",
data: {
xmId: this.xmId
}
},
rules: {
name: [
@ -327,13 +332,15 @@ export default {
this.fetchBuildings();
},
methods: {
checkPermi,
checkRole,
/** 导出 */
/** 导出 */
handleExport() {
this.download(
"/gysl/basicInformation/exportInfo",
"/gysl/buildingInformation/export",
{
idList: this.xmId
xmId: this.xmId
},
`建筑信息${new Date().getTime()}.xlsx`
);
@ -354,19 +361,19 @@ export default {
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
//
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
handleFileSuccess(response) {
this.upload.isUploading = false;
this.upload.open = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
if (response.code === 200) {
this.$modal.msgSuccess(response.msg);
//
this.fetchBuildings();
this.$emit("refresh-data"); //
} else {
this.$modal.msgError(response.msg || "导入失败");
}
},
//
submitFileForm() {

@ -6,7 +6,7 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>企业入驻信息</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button v-if="!isEditing" type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
@ -58,7 +58,7 @@
<span v-else>{{ form.gycfpjwyf }}</span>
</el-descriptions-item>
</el-descriptions>
<div class="btnarea" v-if="action === 'fill' || !action">
<div class="btnarea" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="mini" @click="handleImport">
批量导入
</el-button>

@ -30,7 +30,7 @@
<div class="descriptionsdivnext">
<!-- 渲染多个备忘录 -->
<div v-for="memo in memos" :key="memo.id" class="descriptionditem">
<div class="itemone">{{ memo.createTime }}</div>
<div class="itemone">{{ formatDateTime(memo.createTime) }}</div>
<div class="itemtwo">{{ memo.remark }}</div>
<div class="itemthree">记录人{{ memo.createBy }}</div>
<div class="iconguanbi" @click="handleDeleteMemo(memo.id)"> <img
@ -69,6 +69,7 @@
<script>
import { addxmmmb, deletexmmmb, updateProjectRemark, getxmmmbPage } from '@/api/ManageApi/index';
import moment from 'moment'; // moment.js
export default {
props: {
@ -248,6 +249,10 @@ export default {
// Vuex store
return this.$store.state.user.name; //
},
//
formatDateTime(dateTime) {
return moment(dateTime).format('YYYY-MM-DD');
},
},
};
</script>

@ -6,7 +6,7 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>五要素模型信息</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="toggleEditAll">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"

@ -6,14 +6,14 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>其他信息</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common'])"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="openDialog('add')">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="新增"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
新增
</el-button>
<el-button type="primary" size="medium" plain
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action || action === 'okay'"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="toggleEditMode"
:loading="saveLoading">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
@ -24,7 +24,7 @@
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="导出"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
导出
导出
</el-button>
</div>
</div>

@ -6,7 +6,7 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>规划信息</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button v-if="!isEditing" type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
@ -19,7 +19,7 @@
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
保存
</el-button>
<el-button type="primary" size="medium" plain
<el-button type="primary" size="medium" plain v-if="checkRole(['admin', 'common'])"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="导出"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
@ -122,6 +122,7 @@
<script>
import FileUpload from '@/components/FileUpload2'
import { checkPermi, checkRole } from "@/utils/permission";
export default {
components: { FileUpload },
@ -189,13 +190,15 @@ export default {
}
},
methods: {
checkPermi,
checkRole,
//
/** 导出 */
handleExport() {
this.download(
"/gysl/basicInformation/exportInfo",
"/gysl/basicInformation/export",
{
idList: this.form.xmId
xmid: this.form.xmId
},
`规划信息${new Date().getTime()}.xlsx`
);

@ -6,7 +6,7 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>项目巡礼</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="openAddDialog">
<img src="../../../assets/images/detailsicon/icon-xz@2x.png" alt="新增"
@ -201,6 +201,7 @@ export default {
this.fetchProjectList();
},
methods: {
//
handleItemClick(item) {
//

@ -1,15 +1,17 @@
<template>
<div class="map-container">
<div class="search_box">
<div class="label">搜索位置</div>
<el-input v-model="input" placeholder="请输入内容" id="tipinput"></el-input>
<!-- <div class="label">搜索位置</div> -->
<el-input placeholder="请输入地点名称" v-model="input">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
</div>
<div ref="gaode_Map" id="gaode_Map" class="map"></div>
</div>
</template>
<script>
import AMapLoader from "@amap/amap-jsapi-loader"; //AMapLoader
import AMapLoader from "@amap/amap-jsapi-loader";
window._AMapSecurityConfig = {
//
securityJsCode: "e779fe2f89c105226f4cc4a78d0bcafe",
@ -43,7 +45,7 @@ export default {
},
computed: {},
watch: {},
created() {},
created() { },
mounted() {
// 使 nextTick DOM
this.$nextTick(() => {
@ -148,7 +150,8 @@ export default {
align-items: center;
height: 50px;
padding: 0 20px 0 0;
width: 72rem;
width: 25rem;
.label {
color: #000;
width: 100px;
@ -161,7 +164,7 @@ export default {
height: 26.13rem;
margin: 0;
position: relative;
z-index: 1000;
z-index: 1000;
}
.amap-sug-result {

@ -6,14 +6,14 @@
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>项目图例</span>
</div>
<div class="topright" v-if="action === 'fill' || !action">
<div class="topright" v-if="action === 'fill' || !action || action === 'okay'">
<el-button type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleAdd">
<img src="../../../assets/images/detailsicon/icon-xz@2x.png" alt="新增"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
新增
</el-button>
<el-button type="primary" size="medium" plain
<el-button type="primary" size="medium" plain v-if="action === 'fill' || !action || action === 'okay'"
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleEdit">
<img src="../../../assets/images/detailsicon/icon-xz@2x.png" alt="编辑"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">

@ -98,7 +98,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center">
<template slot-scope="scope">
{{ (scope.$index + 1) + (queryParams.pageNum - 1) * queryParams.pageSize }}
{{ (scope.$index + 1) + (queryParams.current - 1) * queryParams.size }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" prop="name" width="200" />
@ -126,7 +126,7 @@
<template slot-scope="scope">
<el-button size="mini" type="text" @click="getAdd(scope.row, 'fill')"
v-if="statusMap[scope.row.status] === '待审核'">详情</el-button>
<el-button size="mini" type="text" @click="getAdd(scope.row, 'fill')"
<el-button size="mini" type="text" @click="getAdd(scope.row, 'okay')"
v-if="statusMap[scope.row.status] === '审核通过'">详情</el-button>
<el-button size="mini" type="text" @click="getAdd(scope.row, 'detail')"
v-if="statusMap[scope.row.status] === '待填报'">详情</el-button>
@ -135,8 +135,8 @@
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" @pagination="getList" />
</div>
</div>
</template>
@ -182,8 +182,8 @@ export default {
},
//
queryParams: {
pageNum: 1,
pageSize: 10,
current: 1,
size: 10,
xzfl: undefined,
name: undefined,
xmfrdwxz: undefined,
@ -272,9 +272,13 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download('/gysl/basicInformation/export', {
xmid: this.ids[0]
}, `基本信息导出${new Date().getTime()}.xlsx`)
this.download(
"/gysl/basicInformation/exportInfo",
{
idList: this.ids[0]
},
`基本信息${new Date().getTime()}.xlsx`
);
},
/** 删除按钮操作 */
handleDelete(row) {
@ -299,8 +303,8 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
current: 1,
size: 10,
xzfl: undefined,
name: undefined,
xmfrdwxz: undefined,
@ -313,7 +317,7 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.current = 1;
this.getList();
},
},

@ -6,7 +6,6 @@
<img src="@/assets/images/logo@2x.png" alt="">
<div class="title">苏州工业园区工业上楼管理系统</div>
<div class="logintabs">
<!-- @tab-click="handleClick" -->
<el-tabs v-model="activeName" :stretch="true" color="#216CDC">
<el-tab-pane label="企业用户登录" name="first"></el-tab-pane>
<el-tab-pane label="政务人员登录" name="second"></el-tab-pane>
@ -47,9 +46,6 @@
style="width:100%;background: #2B62F1;" @click.native.prevent="handleEnterpriseLogin">
<span>企业统一身份认证登录</span>
</el-button>
<!-- <div style="float: right;" v-if="register">
<router-link class="link-type" :to="'/register'">立即注册</router-link>
</div> -->
</el-form-item>
</el-form>
<!-- 底部 -->
@ -63,7 +59,7 @@
import { getCodeImg } from '@/api/login'
import Cookies from 'js-cookie'
import { encrypt, decrypt } from '@/utils/jsencrypt'
import { active } from 'sortablejs'
export default {
name: 'Login',
data() {
@ -99,7 +95,6 @@ export default {
$route(route) {
this.redirect = route.query && route.query.redirect
},
activeName(newVal) {
if (newVal === 'first') {
this.loginForm.loginRole = 2;
@ -156,7 +151,6 @@ export default {
Cookies.remove('rememberMe');
}
const loginData = {
username: this.loginForm.username,
password: this.loginForm.password,
@ -179,6 +173,14 @@ export default {
}
});
},
handleGovernmentLogin() {
//
window.location.href = 'https://qyt.sipac.gov.cn/';
},
handleEnterpriseLogin() {
//
// window.location.href = 'https://example.com/enterprise-login';
}
}
}
</script>
@ -190,7 +192,6 @@ export default {
background-color: #216CDC;
height: 0.21rem;
border-radius: 0.16rem;
}
::v-deep .el-tabs__header {
@ -328,4 +329,4 @@ export default {
position: relative;
padding-bottom: 0.5rem;
}
</style>
</style>
Loading…
Cancel
Save