From c960e2add5751edbe728dd5d297079b36544d11a Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 20 十二月 2022 17:40:17 +0800 Subject: [PATCH] 1 --- src/components/MapView/mapMenuPop.vue | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 224 insertions(+), 13 deletions(-) diff --git a/src/components/MapView/mapMenuPop.vue b/src/components/MapView/mapMenuPop.vue index 32774f6..adf0b5a 100644 --- a/src/components/MapView/mapMenuPop.vue +++ b/src/components/MapView/mapMenuPop.vue @@ -17,9 +17,21 @@ <el-link @click="closeMenuBox" :underline="false" class="boxClose" ><i class="el-icon-close"></i> </el-link> + <el-link + :underline="false" + v-show="$store.state.download" + @click="dialogVisible = true" + class="boxClose" + ><i class="el-icon-download"></i> + </el-link> </div> <div class="tableBox"> - <el-table :data="tableData" style="height: 100%; width: 100%"> + <el-table + :data="tableData" + ref="dialogPayChannel" + height="230px" + style="width: 100%" + > <el-table-column align="center" type="index" @@ -45,33 +57,117 @@ ></el-table-column> </el-table> </div> - <!-- <div class="rightPage"> --> - <!-- <el-pagination + <div class="pagination_box"> + <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="listPage.pageIndex" + :current-page="listdata.pageIndex" :page-sizes="[10, 20, 30, 40]" - :page-size="listPage.pageSize" + :page-size="listdata.pageSize" layout="total, sizes, prev, pager, next, jumper" - :total="listPage.pageCount" + :total="pageCount" > - </el-pagination> --> - <!-- </div> --> + </el-pagination> + </div> </div> + <el-dialog + :title="$t('common.passworld')" + :visible.sync="dialogVisible" + width="30%" + top="35vh" + :modal="false" + :before-close="handleCloseDown" + > + <el-form + :model="codeForm" + :rules="rules" + ref="codeForm" + label-width="100px" + class="codeForm" + > + <el-form-item :label="$t('common.passworld')" prop="password"> + <el-input + type="password" + v-model="codeForm.password" + show-password + ></el-input> + </el-form-item> + <el-form-item :label="$t('common.SPassword')" prop="repassword"> + <el-input + type="password" + v-model="codeForm.repassword" + show-password + ></el-input> + </el-form-item> + <el-form-item> + <el-button + class="primary" + size="small" + @click="download('codeForm')" + >{{ $t('common.confirm') }}</el-button + > + <el-button type="info" size="small" @click="closeDown('codeForm')">{{ + $t('common.cancel') + }}</el-button> + </el-form-item> + </el-form> + </el-dialog> + <iframe + id="Iframe1" + src="" + style="display: none; border: 0; padding: 0; height: 0; width: 0" + ></iframe> </div> </template> <script> import { - dataQuerySelectByPage, + dataQuery_selectByPage, inquiry_selectDomains, inquiry_selectFields, dataQuerySelectWktById, + sign_getPublicKey, + dataLib_selectDownloadFile, decr, } from '../../api/api.js'; +import { getToken } from '@/utils/auth'; +import $ from 'jquery'; export default { data() { + var repasswordValidator = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.codeForm.password) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; + var passwordValidator = (rule, value, callback) => { + var passwordreg = + /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/; + if (!passwordreg.test(value)) { + callback(new Error('瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�')); + } else { + callback(); + } + }; return { + dialogVisible: false, + codeForm: { + password: '', + repassword: '', + }, + rules: { + password: [ + { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }, + { validator: passwordValidator, trigger: 'blur' }, + ], + repassword: [ + { required: true, message: '璇疯緭鍏ョ‘璁ゅ瘑鐮�', trigger: 'blur' }, + { validator: repasswordValidator, trigger: 'blur' }, + ], + }, listPage: { pageSize: 10, pageIndex: 1, @@ -88,6 +184,7 @@ wkt: null, filter: null, }, + pageCount: 0, querylayer: null, queryTable: [], domainsLayer: [], @@ -96,6 +193,74 @@ }; }, methods: { + async signGetPublicKey() { + const res = await sign_getPublicKey(); + if (res && res.code == 200) { + window.encrypt = new JSEncrypt(); + encrypt.setPublicKey(res.result); + } + }, + download() { + if (this.codeForm.password == '') return; + var obj = { + pwd: encrypt.encrypt(this.codeForm.password), + entities: [], + wkt: this.listdata.wkt, + }; + for (var i in this.option) { + obj.entities.push(this.option[i].entity); + } + var token = getToken(); + var that = this; + $.ajax(BASE_URL + '/dataLib/downloadDbReq?token=' + token, { + type: 'post', + data: JSON.stringify(obj), + async: true, + cache: false, + processData: false, + contentType: false, + success: (res) => { + if (res.code != 200) { + return; + } + this.selectDownloadFile(res.result, obj.pwd); + }, + }); + }, + async selectDownloadFile(rsid, rspwd) { + var downObj = { + guid: rsid, + pwd: encodeURIComponent(rspwd), + }; + const data = await dataLib_selectDownloadFile(downObj); + if (data.code != 200) { + this.$message.error('涓嬭浇璇锋眰澶辫触'); + return; + } + this.closeDown(); + var token = getToken(); + var url = + BASE_URL + + '/dataLib/downloadFile?token=' + + token + + '&guid=' + + rsid + + '&pwd=' + + encodeURIComponent(rspwd); + $('#Iframe1').attr('src', url).click(); + }, + handleCloseDown() { + this.$confirm('纭鍏抽棴锛�') + .then((_) => { + this.closeDown(); + }) + .catch((_) => {}); + }, + closeDown() { + this.dialogVisible = false; + this.codeForm.password = ''; + this.codeForm.repassword = ''; + }, startTableMssage() { this.listdata.pageIndex = 1; this.listdata.pageSize = 10; @@ -103,11 +268,11 @@ this.option = []; }, setTableAll() { + this.signGetPublicKey(); this.startTableMssage(); this.listdata.wkt = this.$store.state.mapMenuShpFile; this.querylayer = this.$store.state.mapSpaceQueryLayer; this.option = this.$store.state.mapSpaceQueryLayer; - debugger; this.listdata.name = this.option[0].entity; this.getTableDateHidder(); @@ -187,10 +352,19 @@ this.listdata.name = res.entity; this.getTableDateHidder(); }, + handleSizeChange(val) { + this.listdata.pageIndex = 1; + this.listdata.pageSize = val; + this.getTableData(); + }, + handleCurrentChange(val) { + this.listdata.pageIndex = val; + this.getTableData(); + }, async getTableData() { this.tableData = []; - const data = await dataQuerySelectByPage(this.listdata); + const data = await dataQuery_selectByPage(this.listdata); if (data.code != 200) { this.$message.error('鍒楄〃璋冪敤澶辫触'); } @@ -207,7 +381,9 @@ } } } + this.pageCount = data.count; this.tableData = data.result; + this.$refs.dialogPayChannel.doLayout(); }, closeMenuBox() { if (this.imagePoint != null) { @@ -273,11 +449,46 @@ height: 327px; } .rightPage { - position: absolute; - bottom: 10px; margin-left: 50px; /*涓嶅彲鐐瑰嚮鐨�*/ } + .pagination_box { + position: absolute; + bottom: 10px; + /deep/.el-input__inner { + background-color: transparent !important; + border: 1px solid; + color: white; + } + /deep/.el-pagination__total { + color: white; + } + /deep/.el-pagination__jump { + color: white; + } + /deep/.el-pager li.active { + color: #409eff; + } + /deep/.el-pager li { + color: white; + background: transparent; + } + /deep/.el-pager li { + color: white; + } + /deep/.btn-prev { + background: transparent; + } + /deep/.btn-next { + background: transparent; + } + /deep/.btn-next i { + color: white; + } + /deep/.btn-prev i { + color: white; + } + } .boxClose { float: right; margin-right: 20px; -- Gitblit v1.9.3