From 22850e47eb4726a0177fa0569cfa37f92b13177e Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 16 十二月 2022 18:44:46 +0800 Subject: [PATCH] 资料馆页面添加,接口对接 --- src/views/Tools/maplayer.vue | 114 ++++ src/api/api.js | 33 + src/assets/lang/zh.js | 3 src/components/js/archive.js | 56 ++ src/views/Archive/index.vue | 1431 ++++++++++++++++++++++++++++++++++++++++++++++++--- src/views/Synthesis/index.vue | 3 src/views/Synthesis/LeftMenu.vue | 12 src/assets/lang/en.js | 2 src/components/mapsdk.vue | 2 src/views/Synthesis/analyse.vue | 7 10 files changed, 1,568 insertions(+), 95 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index bdb7a34..008b500 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -608,8 +608,37 @@ return request.get('/dataLib/selectTabs', { params: params }); } //璧勬枡棣�=>鏌ヨ鎵�鏈夎〃鏍� -export function dataLib_selectTabFields(params) { - return request.get('/dataLib/selectTabs', { params: params }); +export function dataLib_selectFields(params) { + return request.get('/dataLib/selectFields', { params: params }); +} +//璧勬枡棣�=>鏌ヨ鍊煎煙淇℃伅 +export function dataLib_selectDomains(params) { + return request.get('/dataLib/selectDomains', { params: params }); +} +//璧勬枡棣�=>鍒嗛〉鏌ヨ +export function dataLib_selectByPage(params) { + return request.get('/dataLib/selectByPage', { params: params }); +} +//璧勬枡棣�=>鏌ヨ鏂囦欢 +export function dataLib_selectFiles(params) { + return request.get('/dataLib/selectFiles', { params: params }); +} +//璧勬枡棣�=>鍒犻櫎鏂囦欢 +export function dataLib_deletes(params) { + return request.get('/dataQuery/deletes', { params: params }); +} + +//璧勬枡棣�=>鍒嗛〉鏌ヨ鍏冩暟鎹� +export function dataLib_selectByPageForMeta(params) { + return request.get('/dataLib/selectByPageForMeta', { params: params }); +} +//璧勬枡棣�=>鏂囦欢涓嬭浇 +export function dataLib_selectDownloadFile(params) { + return request.get('/dataLib/selectDownloadFile', { params: params }); +} +//璧勬枡棣�=>璇锋眰涓嬭浇 +export function dataLib_downloadReq(params) { + return request.post('/dataLib/downloadReq', params); } //璇锋眰绔欏満鐐瑰唴瀹� diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index a33368e..e9822e8 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -471,6 +471,8 @@ m7: 'volume', m8: 'angle', }, + more: 'More', + Multiplechoice: 'Multiple choice', }, loglog: { serialnumber: 'Serial Number', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index e2ac9c8..6d19e9e 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -468,6 +468,9 @@ m7: '浣撶Н', m8: '瑙掑害', }, + more: '鏇村', + + Multiplechoice: '澶氶��', }, loglog: { serialnumber: '搴忓彿', diff --git a/src/components/js/archive.js b/src/components/js/archive.js new file mode 100644 index 0000000..468b7f1 --- /dev/null +++ b/src/components/js/archive.js @@ -0,0 +1,56 @@ +export const data_type = [ + { name: '涓嶉檺' }, + { name: 'DOM' }, + { name: 'DLG' }, + { name: 'DEM' }, + { name: '鍖哄煙鍦拌川' }, + { name: '姘存枃鍦拌川' }, + { name: '鍩虹杞瓟' }, + { name: '鍩虹鍦扮伨' }, + { name: '姘旇薄' }, + { name: '鍐诲湡' }, + { name: '鍕樺療鏁版嵁' }, + { name: '娴嬮噺鏁版嵁' }, + { name: '宀╁湡鏁版嵁' }, + { name: '鍚堣鏁版嵁' }, + { name: '涓夌淮妯″瀷' }, + { name: '涓夌淮鍦烘櫙' }, + { name: 'POI' }, + { name: 'DSM' }, + { name: 'DRG' }, + { name: '绠$悊鏁版嵁' }, + { name: '0.5绫矰OM' }, + { name: '0.05绫矰OM' }, + { name: '0.2绫矰OM' }, + { name: '1绫矰OM' }, + { name: '2绫矰OM' }, + { name: '0.5绫矰SM' }, + { name: '1:500DLG' }, + { name: '1:1000DLG' }, + { name: '1:2000DLG' }, + { name: '1:5000DLG' }, + { name: '1:10000DLG' }, + { name: '1:50000DLG' }, + { name: '1:25涓嘍LG' }, + { name: '1:100涓嘍LG' }, + { name: '90绫矰EM' }, + { name: '30绫矰EM' }, + { name: '12.5绫矰EM' }, + { name: '2绫矰EM' }, + { name: '1:1涓嘍RG' }, + { name: '1:5涓嘍RG' }, + { name: '1:5涓囧尯鍩熷湴璐�' }, + { name: '1:20涓囧尯鍩熷湴璐�' }, + { name: '1:5涓囨按鏂囧湴璐�' }, + { name: '1:20涓囨按鏂囧湴璐�' }, + { name: '鍊炬枩妯″瀷' }, + { name: 'BIM妯″瀷' }, + { name: '鐐逛簯妯″瀷' }, +]; +export const project_name = [ + { name: '涓嶉檺' }, + { name: '瑗挎皵涓滆緭涓�绾跨閬撳伐绋�' }, + { name: '瑗挎皵涓滆緭浜岀嚎绠¢亾宸ョ▼' }, + { name: '绾㈡煶鍘嬫皵绔欏伐绋�' }, + { name: '娌冲寳姘斿簱宸ョ▼' }, +]; diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue index eabb42f..8dfcc10 100644 --- a/src/components/mapsdk.vue +++ b/src/components/mapsdk.vue @@ -364,7 +364,7 @@ // true, // '' // ); - openStreetMap.item.show = false; + // openStreetMap.item.show = false; //mpt鍔犺浇 var option = { url: window.sceneConfig.mpt.url, diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue index 6a7a69a..6af5376 100644 --- a/src/views/Archive/index.vue +++ b/src/views/Archive/index.vue @@ -2,9 +2,9 @@ <div class="archive"> <div class="top_header"> <div class="top_left"> - <label>{{ $t('synthesis.synthesis') }}</label> - <span>/</span> - <label>{{ $t('synthesis.archive') }}</label> + <My-bread + :list="[`${$t('synthesis.synthesis')}`, `${$t('synthesis.archive')}`]" + ></My-bread> </div> <div class="top_right"> <el-form :inline="true" :model="formInline" class="demo-form-inline"> @@ -16,111 +16,1101 @@ ></el-input> </el-form-item> <el-form-item> - <el-button class="primaries">{{ $t('common.iquery') }}</el-button> + <el-button icon="el-icon-search" class="primaries">{{ + $t('common.iquery') + }}</el-button> </el-form-item> <el-form-item> - <el-button class="primaries">{{ $t('common.download') }}</el-button> - </el-form-item> - <el-form-item> - <el-button class="primaries">{{ $t('common.iquery') }}</el-button> + <el-button @click="getSpaceMapVisibale" class="primaries">{{ + $t('synthesis.rangequery') + }}</el-button> </el-form-item> </el-form> </div> </div> - <div class="bottom_content"> - <div class="left_bottom"> - <div class="left_tree"> - <el-tree - :data="tree" - :props="defaultProps" - :default-expanded-keys="[1]" - node-key="id" - @node-click="handleNodeClick" - ></el-tree> + + <div class="box_item"> + <div class="box_left">璧勬枡绫诲埆</div> + <div class="box_cont"> + <div class="box_div" v-for="(item, index) in showList" :key="index"> + <el-checkbox + v-if="isShowFirstCheck" + v-model="item.isCheckedFlag" + :checked="item.isCheckedFlag" + ></el-checkbox> + <div style="margin-left: 5px">{{ item.name }}</div> </div> </div> - <div class="right_bottom"></div> + <div class="box_right"> + <div class="box_div box_menu" @click="moreEvent(1)"> + {{ $t('synthesis.more') }} + </div> + <div class="box_div box_menu" @click="checkEvent(1)"> + <i class="el-icon-plus"></i> {{ $t('synthesis.Multiplechoice') }} + </div> + </div> </div> + <div class="box_item"> + <div class="box_left">椤圭洰鍚嶇О</div> + <div class="box_cont"> + <div class="box_div" v-for="(item, index) in showList1" :key="index"> + <el-checkbox + v-if="isShowSecondCheck" + v-model="item.isCheckedFlag" + :checked="item.isCheckedFlag" + ></el-checkbox> + <div style="margin-left: 5px">{{ item.name }}</div> + </div> + </div> + <div class="box_right"> + <div class="box_div box_menu" @click="moreEvent(2)"> + {{ $t('synthesis.more') }} + </div> + <div class="box_div box_menu" @click="checkEvent(2)"> + <i class="el-icon-plus"></i> {{ $t('synthesis.Multiplechoice') }} + </div> + </div> + </div> + <div class="bottom_content"> + <div class="bottom_left"> + <div class="box_div">褰撳墠鎼滅储鍏抽敭璇�:</div> + <div> + <ul> + <li>鎼滅储绫诲瀷</li> + <li @click="getMenuChange(1)" :class="{ menuActive: isMenuActive }"> + 鏁版嵁搴� + </li> + <li + @click="getMenuChange(2)" + :class="{ menuActive: !isMenuActive }" + style="border-bottom: 1px solid white" + > + 鏂囦欢鏁版嵁绫诲瀷 + </li> + </ul> + </div> + </div> + <div v-if="isMenuActive" class="bottom_right"> + <ul> + <li v-for="(item, index) in dataType" :key="index"> + <div class="box_div" @click="getShowTable(item)"> + {{ item.tabDesc }} ({{ item.tab }}) + </div> + </li> + </ul> + </div> + <div v-if="!isMenuActive" class="bottom_right"> + <el-form :inline="true" :model="queryForm" class="demo-form-inline"> + <el-form-item > +<el-cascader + v-model="queryForm.dirid" + :show-all-levels="false" + :options="companyOption" + @change="handleChange" + :props="{ + label: 'name', + value: 'id', + children: 'children', + checkStrictly: true, + emitPath: false, + }" + ></el-cascader> + </el-form-item> + <el-form-item :label="$t('dataManage.vmobj.keyword')" > + <el-input v-model="queryForm.name" :placeholder="$t('common.pleaseInput')"></el-input> + </el-form-item> + <el-form-item> + <el-button + @click="queryInfo()" + icon="el-icon-search" + class="primary" + size="small" + >{{ $t('common.iquery') }}</el-button + > + </el-form-item> + <el-form-item> + <el-button + @click="resetInfo('queryForm')" + icon="el-icon-refresh" + type="info" + size="small" + >{{ $t('common.reset') }}</el-button + > + </el-form-item> + <el-form-item > + <el-button + type="danger" + size="small" + @click="deleteMetaInfo" + icon="el-icon-delete" + >{{ $t('common.delete') }}</el-button + > + </el-form-item> + <el-form-item > + <el-button + @click="downFormData" + icon="el-icon-download" + type="success" + size="small" + >{{ $t('common.download') }}</el-button + > + </el-form-item> +</el-form> + <el-table + :data="tableData1" + style="width: 100%" + @selection-change="handleSelectionChange1" + height="86%" + > + <el-table-column type="selection" width="55" /> + <el-table-column prop="name" :label="$t('dataManage.vmobj.name')" /> + <el-table-column + prop="type" + :label="$t('dataManage.vmobj.format')" + /> + <el-table-column + prop="sizes" + :label="$t('dataManage.vmobj.size')" + :formatter="stateFormatSizes" + /> + <el-table-column + prop="depName" + :label="$t('dataManage.vmobj.depName')" + /> + <el-table-column + prop="dirName" + :label="$t('dataManage.vmobj.dirName')" + /> + + + <el-table-column + :label="$t('dataManage.dataUpObj.tableName')"> + <template slot-scope="scope"> + <a @click="detail(scope.row)" >{{ + scope.row.tab + }}</a> + </template> + </el-table-column> + + <el-table-column + prop="gather" + :label="$t('dataManage.vmobj.gather')" + :formatter="formatData" + /> + <el-table-column + prop="describe" + :label="$t('dataManage.vmobj.describe')" + /> + <el-table-column + prop="uname" + :label="$t('dataManage.vmobj.createonuser')" + /> + <el-table-column + prop="createTime" + :label="$t('dataManage.vmobj.createontime')" + :formatter="formatData" + /> + <el-table-column min-width="100" :label="$t('common.operate')"> + <template slot-scope="scope"> + <el-link style="color: white" @click="showDetail1(scope.row)">{{ + $t('common.details') + }}</el-link> + <!-- <el-link + @click="editInfo(scope.row)" + style="margin-left: 10px; color: white" + >{{ $t('common.edit') }}</el-link + > --> + </template> + </el-table-column> + </el-table> + </div> + </div> + <div class="panerPage"> + <div class="pagination_box"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 30, 40]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="count" + > + </el-pagination> + </div> + </div> + <el-dialog + :title="dialogtitle" + :visible.sync="dialogVisible" + width="90%" + top="10vh" + :before-close="handleClose" + > + <el-dialog width="30%" :visible.sync="innerVisible" append-to-body> + <div class="contentBox"> + <ul> + <li v-for="(item, index) in itemdetail"> + <p> + <label> {{ item.label }}:</label> + <label class="boxlabel">{{ item.value }}</label> + </p> + <el-divider></el-divider> + </li> + </ul> + </div> + </el-dialog> + <el-dialog width="30%" :visible.sync="outerVisible" append-to-body> + <el-form :model="fromfile" class="demo-form-inline"> + <el-form-item > + <el-input + v-model="fromfile.file" + style="width: 300px; margin-right: 20px" + :placeholder="$t('common.choose')" + disabled + ></el-input> + <input + name="file1" + type="file" + id="insertFile" + multiple="multiple" + style="display: none" + @change="insertFile( )" + /> + <el-link @click="getInsertFile( )" :underline="false" + ><i class="el-icon-folder-opened"></i + ></el-link> + </el-form-item> + <el-form-item> + <el-row > + <el-col :span="3"> <el-link class="elLink" :underline="false" @click="setAttachInsert" >{{$t('common.append')}}</i></el-link></el-col> + <el-col :span="3"> <el-link class="elLink" :underline="false" @click="setAttachDel" >{{$t('common.delete')}}</i></el-link></el-col> + <!-- <el-col :span="3"> <el-link class="elLink" :underline="false" >{{$t('common.reset')}}</i></el-link></el-col> --> + </el-row> + </el-form-item> + <el-form-item> + <el-table + :data="tableAttach" + ref="filterTable" + height="99%" + border + style="width: 100%" + @selection-change="handleAttatchChange" + > + <el-table-column type="selection" width="55" /> + <el-table-column width="60" type="index" :label="$t('common.index')" /> + <el-table-column prop="date" + :label="$t('common.fileNme')" + /> + + <el-table-column + prop="name" + :label="$t('common.filePath')" + /> + + </el-table> + </el-form-item> + <el-form-item> + +<el-row :gutter="20"> + <el-col :span="12" :offset="8"> <el-button class="primary" @click="outerVisible = false">纭</el-button> <el-button type="info" @click="outerVisible = false">鍙栨秷</el-button></el-col> +</el-row> + </el-form-item> + </el-form> + </el-dialog> + <div style="height: 700px"> + <el-form ref="ruleForm" :model="ruleForm" :inline="true"> + <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> + <el-input + v-model="ruleForm.name" + :placeholder="$t('common.choose')" + /> + </el-form-item> + <el-form-item> + <el-button icon="el-icon-search" @click="submitForm('ruleForm')" class="primary" size="small">{{ + $t('common.iquery') + }}</el-button> + <el-button icon="el-icon-refresh" @click="resetForm('ruleForm')" type="info" size="small">{{ + $t('common.reset') + }}</el-button> + </el-form-item> + </el-form> + <el-divider class="eldivider" /> + <el-table + ref="filterTable" + :data="tableData" + height="78%" + border + style="width: 100%" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" align="center" width="55" /> + <el-table-column + width="60" + type="index" + align="center" + :label="$t('common.index')" + /> + <el-table-column + v-for="(item, index) in attributeData" + :key="index" + :label="item.alias" + :prop="item.field" + show-overflow-tooltip + align="center" + ></el-table-column> + <el-table-column + min-width="80" + align="center" + :label="$t('common.operate')" + > + <template slot-scope="scope"> + <el-link + class="elLink" + @click="showDetail(scope.$index, scope.row)" + >{{ $t('common.details') }}</el-link + > + <el-link + class="elLink" + @click="getAttachTable(scope.$index, scope.row)" + style="margin-left: 20px" + >{{ $t('common.enclosure') }}</el-link + > + </template> + </el-table-column> + </el-table> + <div class="panerPage"> + <div class="pagination_box"> + <el-pagination + @size-change="handleSizeChange1" + @current-change="handleCurrentChange1" + :current-page="listTypeData.pageIndex" + :page-sizes="[10, 20, 30, 40]" + :page-size="listTypeData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="count1" + > + </el-pagination> + </div> + </div> + </div> + </el-dialog> + <div class="downloadBox" v-if="showCodeBox"> + <h4 style="padding: 20px">{{$t('common.passworld')}}</h4> + <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> + </div> + <div class="infoBox" v-show="showinfoBox1"> + <el-card class="box-card"> + <div slot="header" class="clearfix"> + <span>{{ $t('common.details') }}</span> + <div style="float: right; cursor: pointer" @click="closeDetial"> + <i class="el-icon-close"></i> + </div> + </div> + <div class="contentBox"> + <p>{{ $t('dataManage.vmobj.name') }}锛歿{ itemdetail1.name }}</p> + <el-divider></el-divider> + <p>{{ $t('dataManage.vmobj.format') }}锛歿{ itemdetail1.type }}</p> + <el-divider></el-divider> + <p>{{ $t('common.size') }}锛歿{ setInfoBoxSize(itemdetail1.sizes) }}</p> + <el-divider></el-divider> + <p>{{ $t('dataManage.vmobj.depName') }}锛歿{ itemdetail1.depName }}</p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.gather') }}锛歿{ + setInfoBoxTime(itemdetail1.gather) + }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.describe') }}锛歿{ itemdetail1.describe }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.createonuser') }}锛歿{ itemdetail1.uname }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.createontime') }}锛歿{ + setInfoBoxTime(itemdetail1.createTime) + }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.updateonuser') }}锛歿{ + itemdetail1.updateUser + }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.updateontime') }}锛歿{ + setInfoBoxTime(itemdetail1.updateTime) + }} + </p> + </div> + </el-card> + </div> + <el-dialog + :title=" $t('synthesis.rangequery')" + :visible.sync="dialogMapVisible" + width="90%" + :before-close="handleMapClose"> +<div style="height:700px"> + <map-sdk v-if='showMapVisible'></map-sdk> +</div> +</el-dialog> + <iframe id="downFrame" src="" style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe> </div> </template> <script> -import { dataLib_selectTabs, dataLib_selectTabFields } from '../../api/api'; - +import { flatten } from '@turf/turf'; +import { + dataLib_selectTabs, + dataLib_selectFields, + dataLib_selectDomains, + dataLib_selectByPage, + dataLib_selectFiles, + dataLib_deletes, + dataLib_selectByPageForMeta, + dataLib_selectDownloadFile, + dataLib_downloadReq, + sign_getPublicKey, + selectdirTab, + deleteMeta, +} from '../../api/api'; +import $ from 'jquery' +import { getToken } from '@/utils/auth'; +import { data_type, project_name } from '../../components/js/archive.js'; import MyBread from '../../components/MyBread.vue'; +import MapSdk from '../../components/mapsdk.vue' export default { components: { MyBread, + MapSdk }, 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 { - listdata: { - name: null, - pageSize: 10, + queryForm:{ + dirid:null, + }, + formInline: {}, + codeForm: { + password: '', + repassword: '', + }, + fromfile:{ file: '',}, + listType: [], // 1mi + listProject: [], + companyOption:[], + showinfoBox1:false, + dialogMapVisible:false, + showMapVisible:false, + showCodeBox:false, + showFirstAll: false, + isShowFirstCheck: false, + showSecondAll: false, + isShowSecondCheck: false, + isMenuActive: true, + dialogVisible: false, + innerVisible: false, + outerVisible: false, + dataType: [], + filedsLayer: [], + attributeData: [], + tableData: [], + tableData1:[], + multipleSelection: [], + multipleSelection1:[], + attacgSelection: [], + tableAttach:[], + itemdetail: [], + itemdetail1:{}, + listTypeData: { pageIndex: 1, + pageSize: 10, + name: null, + filter: null, + wkt: null, + }, + listData: { + pageIndex: 1, + pageSize: 10, }, count: 0, - formInline: {}, - tree: [ - { - tabDesc: '鍩虹鏁版嵁', - label: '鍩虹鏁版嵁', - value: 'BD', - children: [], - }, - { - tabDesc: '涓氬姟鏁版嵁', - label: '涓氬姟鏁版嵁', - value: 'BS', - children: [], - }, - ], - defaultProps: { - children: 'children', - label: 'label', + count1: 0, + dialogtitle: null, + ruleForm: { + name: null, + }, + rules: { + password: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' }, { validator: passwordValidator, trigger: 'blur' }], + repassword: [ + { required: true, message: '璇疯緭鍏ョ‘璁ゅ瘑鐮�', trigger: 'blur' }, + { validator: repasswordValidator, trigger: 'blur' }, + ], }, }; }, - methods: { - //鏍戣妭鐐圭偣鍑讳簨浠� - handleNodeClick(data) { - if (data.children != null) return; - this.listData.name = data.entity; //瑕佹煡璇㈣〃鏍肩被鍨嬶紱 - this.filedsLayer = this.getDataLibSelectTabFields(data); //鑾峰彇姣忎釜琛ㄥ瓧娈靛悕绉板強闃堝�� - }, - async getDataLibSelectTabFields(res) { - const data = await dataLib_selectTabFields({ - ns: res.ns, - tab: res.entity, + computed: { + newList() { + this.listType.forEach((item) => { + this.$set(item, 'isCheckedFlag', false); }); - if (data.code != 200) { - this.$message.error('鍒楄〃璋冪敤澶辫触'); + return this.listType; + }, + showList() { + this.listType = data_type; + if (this.showFirstAll == false) { + var showList = []; + if (this.newList.length > 8) { + for (var i = 0; i < 14; i++) { + showList.push(this.newList[i]); //灏嗘暟缁勭殑鍓�7鏉″瓨鏀惧埌showList鏁扮粍涓� + } + } else { + showList = this.newList; //涓暟瓒冲鏄剧ず锛屼笉闇�瑕佸啀鎴彇 + } + return showList; + } else { + return this.newList; + } + }, + newList1() { + this.listProject.forEach((item) => { + this.$set(item, 'isCheckedFlag', false); + }); + return this.listProject; + }, + showList1() { + this.listProject = project_name; + if (this.showSecondAll == false) { + var showList1 = []; + if (this.newList1.length > 8) { + for (var i = 0; i < 14; i++) { + showList1.push(this.newList1[i]); //灏嗘暟缁勭殑鍓�7鏉″瓨鏀惧埌showList鏁扮粍涓� + } + } else { + showList1 = this.newList1; //涓暟瓒冲鏄剧ず锛屼笉闇�瑕佸啀鎴彇 + } + return showList1; + } else { + return this.newList1; + } + }, + }, + methods: { + getSpaceMapVisibale(){ + this.dialogMapVisible =true; + this.showMapVisible =true; + this.$store.state.mapMenuBoolean = true; + this.$store.state.mapMenuBoxFlag = '1'; + }, + handleMapClose(){ + this.dialogMapVisible =false; + this.showMapVisible =false; + this.$store.state.mapMenuBoolean = false; + this.$store.state.mapMenuBoxFlag = null; + }, + moreEvent(res) { + switch (res) { + case 1: + this.showFirstAll = !this.showFirstAll; + break; + case 2: + this.showSecondAll = !this.showSecondAll; + break; + } + }, + checkEvent(res) { + switch (res) { + case 1: + this.isShowFirstCheck = !this.isShowFirstCheck; + break; + case 2: + this.isShowSecondCheck = !this.isShowSecondCheck; + break; + } + }, + getMenuChange(res) { + switch (res) { + case 1: + this.listData.pageIndex = 1; + this.listData.pageSize = 10; + this.getDataLibSelectTabs(); + this.isMenuActive = true; + + break; + case 2: + this.getQueryDepTree(); + this.isMenuActive = false; + break; + } + }, + //鍗曚綅鍒楄〃鑾峰彇 + async getQueryDepTree() { + const res = await selectdirTab(); + if (res.code != 200) { + this.$message.error('鍗曚綅鍒楄〃鑾峰彇澶辫触'); return; } - debugger; + this.queryForm.dirid = 1; + this.companyOption = this.treeData(res.result); + this.getMetaData(); }, - //鑾峰彇鎵�鏈夎〃鏍兼暟鎹� + // 鏌ヨ + queryInfo() { + this.listData.name = this.queryForm.name.trim(); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); + }, + // 閲嶇疆鏌ヨ + resetInfo(formName) { +this.queryForm.name =''; + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.listData.name = null; + this.getMetaData(); + }, + deleteMetaInfo() { + this.$confirm('纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + var std = []; + for (var i in this.multipleSelection1) { + std.push(this.multipleSelection1[i].id); + } + deleteMeta({ ids: std.toString() }).then((res) => { + if (res.code == 200) { + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛!', + }); + this.multipleSelection1 = []; + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); + } else { + this.$message.error('鍒犻櫎澶辫触'); + this.multipleSelection1 = []; + } + }); + }) + .catch(() => { + this.$message('宸插彇娑堝垹闄�'); + }); + }, + downFormData() { + if (this.multipleSelection1.length == 0) { + alert('璇峰厛閫夋嫨瑕佷笅杞界殑鏂囦欢'); + return; + } + this.showCodeBox = true; + }, + async download() { + var std = []; + for (var i in this.multipleSelection1) { + std.push(this.multipleSelection1[i].id) + } + debugger + var obj = { + pwd: encrypt.encrypt(this.codeForm.repassword), + ids: std + }; + const res = await dataLib_downloadReq(JSON.stringify(obj)) + + if (res.code != 200) { + this.$message.error('涓嬭浇璇锋眰澶辫触'); + return + } + + var downObj = { + guid: res.result, + pwd: encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)) + } + debugger + const data = await dataLib_selectDownloadFile(downObj) + + if (data.code != 200) { + this.$message.error('涓嬭浇璇锋眰澶辫触'); + return + } + var token = getToken() + var url = BASE_URL + "/dataLib/downloadFile?token=" + token + "&guid=" + res.result + "&pwd=" + encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)); + + $("#downFrame").attr("src", url).click(); + this.closeDown(); + }, + closeDown() { + this.showCodeBox = false; + this.codeForm.password = ''; + this.codeForm.repassword = ''; + }, + getMetaData() { + this.listData.dirid = this.queryForm.dirid + dataLib_selectByPageForMeta(this.listData).then((res) => { + this.tableData1 = res.result; + this.count = res.count; + }); + }, + handleChange(value) { + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.queryForm.dirid = value; + this.getMetaData(); + }, + //鏍戝垪琛ㄧ敓鎴� + treeData(source) { + let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + return cloneData.filter((father) => { + // 寰幆鎵�鏈夐」 + let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 + branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, + async getDataLibSelectTabs() { + const data = await dataLib_selectTabs(); if (data.code != 200) { this.$message.error('鍒楄〃璋冪敤澶辫触'); return; } - var option = data.result; - for (var i in option) { - var val_Data = option[i]; - val_Data.id = '1' + i; - val_Data.label = val_Data.tabDesc + '(' + val_Data.tab + ')'; - if (option[i].ns == 'bd') { - this.tree[0].children.push(val_Data); - } else { - this.tree[1].children.push(val_Data); + this.count = data.result.length; + this.dataType = data.result; + }, + showDetail1(row){ + + this.showinfoBox1 = true; + + this.itemdetail1 = row; + }, + // 鍏抽棴鏌ョ湅 + closeDetial() { + this.showinfoBox1 = false; + this.itemdetail = {}; + }, + // 鍏抽敭瀛楁煡璇� + submitForm() { + this.listTypeData.pageIndex = 1; + this.listTypeData.pageSize = 10; + //鑾峰彇table淇℃伅 + this.getCollapseTable(this.filedsLayer); + }, + // 閲嶇疆鏌ヨ + resetForm(formName) { + this.searchName = ''; + this.$refs[formName].resetFields(); + //鑾峰彇table淇℃伅 + this.listTypeData.pageIndex = 1; + this.listTypeData.pageSize = 10; + this.getCollapseTable(this.filedsLayer); + }, + + async getShowTable(res) { + this.listTypeData.name = res.entity; + this.listTypeData.pageIndex = 1; + this.listTypeData.pageSize = 10; + this.dialogtitle = res.tabDesc + '(' + res.tab + ')'; + this.filedsLayer = this.getCollapseDomFiled(); + + this.getCollapseTable(this.filedsLayer); + }, + handleClose() { + this.dialogVisible = false; + this.ruleForm = { + name: null, + }; + }, + showDetail(index, row) { + var std = []; + for (var i in this.attributeData) { + std.push({ + label: this.attributeData[i].alias, + value: row[this.attributeData[i].field], + }); + } + this.itemdetail = std; + this.innerVisible = true; + }, + getAttachTable() { + this.outerVisible = true; + this.getAttacthFlieList(); + }, + async setAttachDel() { + var std = []; + for (var i in this.attacgSelection) { + std.push(this.attacgSelection[i].id); + } + const res = await dataLib_deletes({ ids: std.toString() }); + if(res.code != 200){ + this.$message.error('鏂囦欢鍒犻櫎澶辫触'); + } + this.getAttacthFlieList(); + }, + setAttachInsert() { + var token = getToken(); + var fs = document.getElementById("insertFile"); + if (fs.files.length == 0) { + alert("璇烽�夋嫨瑕佷笂浼犵殑鏂囦欢锛�"); + return; + } + const formData = new FormData() + for (var i = 0, c = fs.files.length; i < c; i++) { + + formData.append('file', fs.files[i]); // fs.files[i].name,file + } + + $.ajax(BASE_URL + "/dataQuery/uploadFiles?token=" + token + "&tabName=lf.sys_style&eventid=fa25979a5ef8b43ba82a0be35b3fb0d4", { + type: "post", + data: formData, + async: true, + cache: false, + processData: false, + contentType: false, + success: (rs) => { + this.$message({ + message: '闄勪欢娣诲姞鎴愬姛', + type: 'success' + }); + document.getElementById("insertFile").value = ""; + this.formInline = { + file: '', + } + this.getAttacthFlieList(); + }, + error: (e) => { + document.getElementById("insertFile").value = ""; + this.$message.error('闄勪欢娣诲姞澶辫触'); + } + }); + }, + + + async getAttacthFlieList(){ + var obj = { + tabName: 'lf.sys_style', + eventid: 'fa25979a5ef8b43ba82a0be35b3fb0d4' + } + const res = await dataLib_selectFiles(obj); + if (res.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + return + } + this.tableAttach = res.result; + }, + //闄勪欢=>鏂囦欢閫夋嫨 + getInsertFile() { + $('#insertFile').click(); + }, + insertFile() { + var val = document.getElementById('insertFile').files; + if (!val || !val.length) return; + + this.fromfile.file = val[0].name; + }, + handleSelectionChange1(val) { + this.multipleSelection1 = val; + }, + handleSelectionChange(val) { + this.multipleSelection = val; + }, + handleAttatchChange(val){ + this.attacgSelection = val; + }, + async getCollapseTable(res) { + res.then((val) => { + this.attributeData = val; + }); + if (this.ruleForm.name != null) { + this.listData.filter = 'name like ' + this.ruleForm.name; + } else { + this.listData.filter = null; + } + + const data = await dataLib_selectByPage(this.listTypeData); + if (data.code != 200) { + this.$message.error('璋冪敤鍒楄〃澶辫触,璇疯仈绯诲伐浣滀汉鍛�!'); + return; + } + var res_val = this.attributeData; + this.count1 = data.count; + for (var i in data.result) { + let val_Data = data.result[i]; + + for (var j in res_val) { + if (res_val[j].domainNa != null && res_val[j].domainNa != undefined) { + val_Data[res_val[j].field] = res_val[j].domainNa; + } } } + this.tableData = data.result; + + this.dialogVisible = true; + }, + //鍒嗛〉鐐瑰嚮浜嬩欢 + handleSizeChange1(val) { + this.listTypeData.pageSize = val; + this.listTypeData.pageIndex = 1; + //鑾峰彇table淇℃伅 + this.getCollapseTable(this.filedsLayer); + }, + handleCurrentChange1(val) { + this.listTypeData.pageIndex = val; + //鑾峰彇table淇℃伅 + this.getCollapseTable(this.filedsLayer); + }, + async getCollapseDomFiled() { + const fileds = await dataLib_selectFields({ + name: this.listTypeData.name, + }); + if (fileds.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + return; + } + const domains = await dataLib_selectDomains({ + name: this.listTypeData.name, + }); + if (domains.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + return; + } + var data1 = fileds.result; + var data2 = domains.result; + var std = []; + for (var i in data1) { + if (data1[i].showtype == 1) { + if (data1[i].domainNa != null) { + data1[i].domainNa = this.getDomainNaFild(data1[i].domainNa, data2); + } + std.push(data1[i]); + } + } + return std; + }, + + handleSizeChange(res) { + this.listData.pageIndex = 1; + this.listData.pageSize = res; + if(this.isMenuActive == false){this.getMetaData()} + }, + handleCurrentChange(res) { + this.listData.pageIndex = res; + if(this.isMenuActive == false){this.getMetaData()} + }, + async signGetPublicKey() { + const res = await sign_getPublicKey(); + if (res && res.code == 200) { + window.encrypt = new JSEncrypt(); + encrypt.setPublicKey(res.result); + } + }, + //鍗曚綅杞崲 + stateFormatSizes(row, column) { + if (row.sizes >= 1024) { + const val = parseFloat(row.sizes / 1024).toFixed(3); + return val + ' GB'; + } else { + return row.sizes + ' MB'; + } + }, + setInfoBoxTime(res) { + if (res == null) { + return res; + } + return this.format(res); + }, + setInfoBoxSize(res) { + if (res >= 1024) { + return parseFloat(res / 1024).toFixed(3) + ' GB'; + } else { + return res + ' MB'; + } + }, + //鏍煎紡鍖栧垪琛� + formatData(row, column) { + let data = row[column.property]; + if (data == null) { + return data; + } + return this.format(data); + }, + //鏍煎紡鍖栨椂闂� + format(shijianchuo) { + //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲 + var time = new Date(shijianchuo); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + var s = time.getSeconds(); + return ( + y + + '-' + + this.add0(m) + + '-' + + this.add0(d) + + ' ' + + h + + ':' + + mm + + ':' + + s + ); + }, + //鏍煎紡鍖栨椂闂� + add0(m) { + return m < 10 ? '0' + m : m; }, }, mounted() { this.getDataLibSelectTabs(); + this.signGetPublicKey(); }, }; </script> @@ -131,15 +1121,18 @@ height: 100%; margin: 0; overflow: hidden; - background: black; + background: #353539; .top_header { width: calc(100% - 60px); height: 70px; - background: #353539; display: flex; padding: 0 30px; justify-content: space-between; - + border-bottom: 1px solid white; + .top_left { + display: flex; + align-items: center; + } label { font-size: 21px; font-family: Source Han Sans SC; @@ -158,27 +1151,113 @@ line-height: 70px; } } - .bottom_content { - width: 100%; - height: calc(100% - 70px); + .box_item { + width: calc(100% - 60px); + border-bottom: 1px solid white; + height: auto; + padding: 10px 30px; + + align-items: center; display: flex; - justify-content: space-between; - .left_bottom { - width: 224px; - height: calc(100% - 64px); - background: #303030; - padding: 32px 23px; - .left_tree { - width: 100%; - height: 100%; - overflow: auto; + float: left; + .box_left { + color: white; + height: 100%; + line-height: 100%; + width: 100px; + text-align: center; + color: white; + font-size: 14px; + font-weight: 400; + } + .box_cont { + color: white; + height: 100%; + width: 80%; + display: flex; + flex-wrap: wrap; + /* 璁剧疆澶氳瀵归綈 */ + align-content: flex-start; + color: white; + font-size: 14px; + font-weight: 400; + } + .box_right { + display: flex; + justify-content: space-between; + margin-left: 10px; + color: white; + font-size: 14px; + align-self: flex-start; + font-weight: 400; + .box_menu { + border: 1px solid white; + } + .box_menu:hover { + border: 1px solid #009cff; + color: #009cff; } } - .right_bottom { - width: calc(100% - 20px); - height: calc(100% - 20px); - padding: 10px; + } + .bottom_content { + width: calc(100% - 60px); + + height: auto; + padding: 10px 30px; + + display: flex; + justify-content: space-between; + .bottom_left { + width: 270px; + font-size: 14px; + font-weight: 400; + align-self: flex-start; + color: white; + ul { + margin-left: 10px; + } + li { + height: 42px; + border-top: 1px solid white; + border-left: 1px solid white; + border-right: 1px solid white; + font-size: 14px; + line-height: 42px; + padding: 5px 15px; + } + .menuActive { + color: #409eff; + } } + .bottom_right { + width: calc(100% - 320px); + padding: 0px 20px; + max-height: 460px; + overflow-y: auto; + color: white; + li { + border-bottom: 1px solid white; + padding: 10px 0px; + } + li:hover { + color: #409eff; + } + } + } + .panerPage { + width: 100%; + padding: 5px 0px; + bottom: 10px; + position: absolute; + display: flex; + justify-content: center; + } + .box_div { + padding: 5px 15px; + margin-left: 10px; + display: flex; + align-items: center; + display: flex; } .primaries { background: linear-gradient(180deg, #002992, #080472); @@ -186,5 +1265,185 @@ box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.21); color: white; } + .elLink { + color: white; + } + .infoBox { + width: 500px; + position: absolute; + z-index: 100; + top: 25%; + right: 25%; + background: #303030; + color: #fff; + .el-card { + background-color: transparent; + color: #fff; + span { + color: #fff; + font-size: 16px; + font-weight: 600; + } + } + .contentBox { + margin: 0 aotu 10px; + height: 500px; + overflow: auto; + p { + // background-color: #bfa; + // margin-bottom: 10px; + font-size: 14px; + } + } + } + +.downloadBox { + position: absolute; + top: 20%; + left: 40%; + padding: 20px; + background: #303030; + width: 30%; + border: 1px solid gray; + border-radius: 10px; + color: white; + } + .pagination_box { + /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; + } + } + /deep/ .el-select .el-input__inner { + border-color: #fff !important; + } + + } + + .elLink { + color: white !important; + } + .el-icon-folder-opened { + color: white; + } + +.contentBox { + height: 550px; + overflow: auto; + color: white; +} +/deep/ .el-dialog { + background: #303030; +} +/deep/.el-range-editor.is-active, +.el-range-editor.is-active:hover, +.el-select .el-input.is-focus .el-input__inner { + border: 1px solid; +} +/deep/.el-dialog__title { + color: white; +} +/deep/ .el-dialog__body { + padding: 10px; +} + /*淇敼table 琛ㄤ綋鐨勮儗鏅鑹插拰鏂囧瓧棰滆壊*/ + /deep/ .el-table { + background-color: transparent; + + th, + td { + background-color: transparent; + } + .el-table__expanded-cell { + background-color: transparent !important; + } + + // 琛ㄥご鑳屾櫙鑹� + th.el-table__cell { + background-color: #303030; + color: #fff; + } + tr > td { + background-color: #303030; + color: #fff; + } + + // hover鏁堟灉 + tr:hover > td { + background-color: rgba(255, 255, 255, 0.3) !important; + } + + tbody tr:hover { + background-color: rgba(255, 255, 255, 0.3) !important; + // text-align: center; + } + + // 婊氬姩鏉″楂� + .el-table__body-wrapper::-webkit-scrollbar { + width: 5px; + height: 5px; + } + + .el-table__body-wrapper::-webkit-scrollbar { + width: 5px; + /*婊氬姩鏉″搴�*/ + height: 5px; + /*婊氬姩鏉¢珮搴�*/ + } + /*瀹氫箟婊氬姩鏉¤建閬� 鍐呴槾褰�+鍦嗚*/ + .el-table__body-wrapper::-webkit-scrollbar-track { + box-shadow: 0px 1px 3px #216fe6 inset; + /*婊氬姩鏉$殑鑳屾櫙鍖哄煙鐨勫唴闃村奖*/ + border-radius: 10px; + } + + /*瀹氫箟婊戝潡 鍐呴槾褰�+鍦嗚*/ + .el-table__body-wrapper::-webkit-scrollbar-thumb { + box-shadow: 0px 1px 3px #216fe6 inset; + border-radius: 6px; + background-color: #216fe6; + } + } + // 璁剧疆杈撳叆妗嗙殑鑳屾櫙鑹层�佸瓧浣撻鑹层�佽竟妗嗗睘鎬ц缃紱 + /deep/.el-input__inner { + background-color: transparent !important ; + color: #fff; + border: 1px solid white !important; + } + /deep/.el-form-item__label { + color: white; + } + /deep/.el-dialog__wrapper{ + overflow: hidden; + } </style> diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue index 80fcdf7..bb14176 100644 --- a/src/views/Synthesis/LeftMenu.vue +++ b/src/views/Synthesis/LeftMenu.vue @@ -10,6 +10,7 @@ <div>{{ $t(item.label) }}</div> </div> <mapinfo ref="mapinfo" /> + <maplayer ref="maplayer" /> <input type="file" accept=".kml" class="file" style="display: none" /> </div> </template> @@ -17,8 +18,10 @@ <script> import { transform } from 'ol/proj'; import mapinfo from '../Tools/mapinfo.vue'; +import maplayer from '../Tools/maplayer.vue'; + export default { - components: { mapinfo }, + components: { mapinfo, maplayer }, data() { return { showTwoMenuFlag: false, @@ -932,6 +935,13 @@ break; } }, + setCoverage(res) { + switch (res) { + case 'a1': + this.$refs && this.$refs.maplayer && this.$refs.maplayer.open(); + break; + } + }, menuChange(res) { this.setListTwoMenu = this.setListTwoMenuAll[res]; }, diff --git a/src/views/Synthesis/analyse.vue b/src/views/Synthesis/analyse.vue index 61c2e9e..589befa 100644 --- a/src/views/Synthesis/analyse.vue +++ b/src/views/Synthesis/analyse.vue @@ -12,18 +12,15 @@ <div class="div_li">{{ $t(item.name) }}</div> </li> </ul> - <mapinfo ref="mapinfo" /> </div> </template> <script> import $ from 'jquery'; // 娴嬮噺-淇℃伅寮圭獥 -import mapinfo from '../Tools/mapinfo.vue'; + export default { - components: { - mapinfo, - }, + components: {}, data() { return { changeAnalsyFlag: null, diff --git a/src/views/Synthesis/index.vue b/src/views/Synthesis/index.vue index 2c22989..b32f41f 100644 --- a/src/views/Synthesis/index.vue +++ b/src/views/Synthesis/index.vue @@ -24,6 +24,7 @@ </div> </div> </div> + <maplayer ref="maplayer" /> </div> </template> @@ -31,10 +32,12 @@ import { getPerms } from '../../api/api'; import mapdiv from '../../components/MapDiv.vue'; import leftMenu from './LeftMenu.vue'; +import maplayer from '../Tools/maplayer.vue'; export default { components: { mapdiv, leftMenu, + maplayer, }, data() { return { diff --git a/src/views/Tools/maplayer.vue b/src/views/Tools/maplayer.vue new file mode 100644 index 0000000..beda0d9 --- /dev/null +++ b/src/views/Tools/maplayer.vue @@ -0,0 +1,114 @@ +<template> + <div class="InfoPopup"> + <Popup + ref="pop" + v-for="(data, index) in PopupData" + :key="data.id" + title="鍥惧眰绠$悊" + :maxHeight="data.maxHeight || '500px'" + @close="close(data.id)" + :left="data.left || left" + :top="data.top || top + index * 42 + 'px'" + > + <div class="treeContainer"> + <el-tree + ref="tree" + :data="treeData" + show-checkbox + node-key="id" + draggable + :expand-on-click-node="false" + :auto-expand-parent="false" + :default-expanded-keys="defaultExpanded" + :default-checked-keys="defaultCheck" + > + </el-tree> + </div> + </Popup> + </div> +</template> + +<script> +import Popup from './Popup.vue'; +export default { + name: 'maplayer', + components: { + Popup, + }, + data() { + return { + // 寮圭獥鏁版嵁 + PopupData: ['maplayer'], + left: 'calc(100% - 330px)', + top: 10, + treeData: [], + defaultCheck: [], + defaultExpanded: [], + selectNode: undefined, + rightClickMenuDisplay: false, + rightClickMenuStyle: {}, + isClickParent: false, + isNewFold: false, + newFoldName: undefined, + mergeNode: false, + }; + }, + computed: {}, + mounted() { + this.treeData([ + { id: '82A0C3DE', name: '褰卞儚', children: [] }, + { id: '82C3DE', name: '鍦板舰', children: [] }, + { id: '4FE10400', name: '妯″瀷', children: [] }, + { id: '0A51CF71', name: '鐭㈤噺', children: [] }, + ]); + }, + methods: { + // 鍏抽棴鎵�鏈� + closeAll() { + this.PopupData.forEach((item) => { + item.close && item.close(); + }); + this.PopupData = []; + }, + // 鍏抽棴寮圭獥 + close(id) { + let index = this.PopupData.findIndex((item) => { + return item.id === id; + }); + let data = this.PopupData.splice(index, 1)[0]; + data.close && data.close(); + }, + // 鎵撳紑寮圭獥 + open(title, value, style = {}) { + this.PopupData.push({ + id: this.createRandomId(), + title, + value, + ...style, + }); + let index = this.PopupData.length - 1; + this.$nextTick(() => { + this.$refs.pop[index].open(); + }); + return this.PopupData[index]; + }, + // 闅忔満id + createRandomId() { + return ( + (Math.random() * 10000000).toString(16).substr(0, 4) + + '-' + + new Date().getTime() + + '-' + + Math.random().toString().substr(2, 5) + ); + }, + }, +}; +</script> + +<style scoped lang="less"> +.text { + margin-left: 15px; + margin-right: 15px; +} +</style> -- Gitblit v1.9.3