From 50f52beb0ed100105166f62027cd0b15e6b596dc Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期六, 12 十一月 2022 15:02:01 +0800 Subject: [PATCH] 重新 --- src/views/Archive/index.vue | 436 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 324 insertions(+), 112 deletions(-) diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue index bf302e1..b458064 100644 --- a/src/views/Archive/index.vue +++ b/src/views/Archive/index.vue @@ -2,9 +2,10 @@ <div class="archive"> <div class="left_active"> <el-card class="arch_card"> - <div class="title_active">绠¢亾璧勬枡</div> + <div class="title_active">{{ $t('archive.name') }}</div> <el-divider /> <el-tree + ref="tree" :data="tree" :props="defaultProps" show-checkbox @@ -14,145 +15,328 @@ </div> <div class="right_active"> <el-card class="arch_card"> - <el-row :gutter="20"> - <el-col :span="6"></el-col> - <el-col :span="4" - ><div style="text-align: right; margin-top: 6px">鍏抽敭瀛�:</div> - </el-col> - <el-col :span="4"> <el-input placeholder="璇疯緭鍏�...." /></el-col> - <el-col :span="4"><el-button type="primary">鏌ヨ</el-button></el-col> - <el-col :span="6"></el-col> - </el-row> + <div> + <el-form :inline="true" :model="formInline" class="demo-form-inline"> + <el-form-item> + <el-input + v-model="formInline.name" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + <el-form-item> + <el-button plain @click="getArchTableData">鏌ヨ</el-button> + </el-form-item> + <el-form-item> + <el-button plain>閲嶇疆</el-button> + </el-form-item> + <el-form-item> + <el-button plain>涓嬭浇</el-button> + </el-form-item> + <el-form-item> + <el-button plain @click="showDialogBox">绌洪棿鏌ヨ</el-button> + </el-form-item> + </el-form> + </div> <el-divider /> - <el-card shadow="never" class="middle_card"> - <el-table :data="tableData" style="width: 10000px" stripe> - <el-table-column prop="name" label="鍚嶇О" width="180" /> - <el-table-column prop="type" sortable label="绫诲瀷" width="180" /> - <el-table-column - prop="count" - sortable - label="淇敼娆℃暟" - width="180" - /> - <el-table-column prop="timer" sortable label="鍒涘缓鏃堕棿" /> - <el-table-column prop="state" label="鐘舵��" width="180" /> - </el-table> - </el-card> - <el-divider /> - - <el-pagination - :currentPage="currentPage4" - :page-size="pageSize4" - :page-sizes="[10, 20, 50, 100]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> + <div class="centerBox"> + <el-collapse v-model="activeNames" @change="handleChange" accordion> + <el-collapse-item + v-for="(item, index) in companyList" + :key="index" + :name="item.entity" + :title="item.tabDesc" + > + <div class="centerTable"> + <el-table :data="tableData" height="550" border stripe> + <el-table-column type="selection" width="55" /> + <el-table-column + align="center" + type="index" + label="搴忓彿" + width="50" + /> + <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> + <el-divider /> + <el-pagination + :current-page="listdata.pageIndex" + :page-sizes="[10, 20, 30, 40]" + :page-size="listdata.pageSize" + :small="small" + :disabled="disabled" + :background="background" + layout="total, sizes, prev, pager, next, jumper" + :total="count" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </el-collapse-item> + </el-collapse> + </div> </el-card> </div> + + <el-dialog + title="绌洪棿鏌ヨ" + :visible.sync="dialogVisible" + width="92%" + style="margin-left: 16%" + top="5vh" + :before-close="handleClose" + > + <div style="height: 720px; width: 100%"> + <mapsdk></mapsdk> + </div> + </el-dialog> </div> </template> <script> +import mapsdk from '../../components/mapsdk.vue'; +import { + inquiry_SelectTabs, + dataLib_selectFields, + dataLib_selectByPage, + dataLib_selectDomains, +} from '../../api/api.js'; export default { + components: { + mapsdk, + }, data() { return { + dialogVisible: false, + activeNames: null, + listdata: { + pageIndex: 1, + pageSize: 10, + filter: null, + name: null, + wkt: null, + }, + companyList: [], + formInline: {}, + count: 0, tree: [ { - label: "鏂囩尞", - children: [ - { - label: "绠¢亾鏍囧噯鏂囩尞", - url: "", - }, - { - label: "宸ヤ笟绠¢亾宸ョ▼鏂藉伐鍙婇獙鏀惰鑼�", - url: "", - }, - { - label: "缁煎悎绠$嚎璁捐鏍囧噯", - url: "", - }, - ], + tabDesc: '鍩虹鏁版嵁', + value: 'BD', + children: [], }, { - label: "鍥剧焊", //label瀵瑰簲鐖剁骇鏍囩 - children: [ - { - label: "XXX绠$嚎璁捐鍥剧焊", - url: " ", - }, - { - label: "XXXXXX绠$嚎璁捐鍥�", - url: " ", - }, - { - label: "XXXXX绠$嚎璁捐鍥�", - url: " ", - }, - ], - }, - { - label: "鏁版嵁", //label瀵瑰簲鐖剁骇鏍囩 - children: [ - { - label: "绠¢亾", - url: " ", - }, - { - label: "闃�闂�", - url: " ", - }, - { - label: "娑堣垂璁惧", - url: " ", - }, - ], + tabDesc: '涓氬姟鏁版嵁', + value: 'BS', + children: [], }, ], defaultProps: { - children: "children", //"children"鍐呯殑姣忎釜瀵硅薄瑙f瀽涓轰竴涓瓙椤�; - label: "label", //鎵�鏈�"label"鎵�鍦ㄧ殑瀵硅薄瑙f瀽涓轰竴涓埗椤� + chilren: 'children', //"children"鍐呯殑姣忎釜瀵硅薄瑙f瀽涓轰竴涓瓙椤�; + label: 'tabDesc', //鎵�鏈�"label"鎵�鍦ㄧ殑瀵硅薄瑙f瀽涓轰竴涓埗椤� }, - tableData: [ - { - timer: "2016-05-01", - name: "Tom", - count: "3", - type: "涓氬姟鍥惧眰", - state: "x", - }, - { - timer: "2016-05-02", - name: "Tom", - count: "2", - type: "涓氬姟鍥惧眰", - state: "x", - }, - { - timer: "2016-05-03", - name: "Tom", - count: "1", - type: "涓氬姟鍥惧眰", - state: "x", - }, - ], + attributeData: [], + tableData: [], + archStatus: { + download: false, + }, + archOption: [], + queryLayer: null, }; }, - methods: {}, + + methods: { + handleClose() { + this.dialogVisible = false; + this.$store.state.mapMenuBoolean = false; + this.$store.state.mapMenuBoxFlag = null; + this.$store.state.mapPopBoolean = false; + this.$store.state.mapPopBoxFlag = null; + }, + showDialogBox() { + this.$store.state.mapMenuBoolean = true; + this.$store.state.mapMenuBoxFlag = '1'; + this.dialogVisible = true; + }, + //鑾峰彇琛ㄦ牸鏁版嵁 + getArchTableData() { + this.companyList = []; + this.activeNames = null; + var valTree = this.$refs.tree.getCheckedNodes(); + if (valTree.length == 0) { + this.$message.error('璇烽�夋嫨瑕佹煡璇㈢殑鍥惧眰璧勬枡!'); + return; + } + for (var i in valTree) { + this.listdata.name = valTree[i].entity; + var filedData = this.getCollapseDomFiled(); + this.archOption.push({ + name: valTree[i].entity, + fileds: filedData, + table: this.getCollapseTable(filedData), + }); + } + + this.companyList = valTree; + }, + //鑾峰彇姣忎釜琛ㄥ瓧娈靛悕绉板強闃堝�� + async getCollapseDomFiled() { + //鏌ヨ瀛楁淇℃伅; + const fileds = await dataLib_selectFields({ + name: this.listdata.name, + }); + if (fileds.code != 200) { + this.$message.error('璋冪敤鍒楄〃澶辫触,璇疯仈绯诲伐浣滀汉鍛�!'); + return; + } + //鏌ヨ闃堝�间俊鎭紱 + const domains = await dataLib_selectDomains({ + name: this.listdata.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; + }, + //鍊煎煙瀛楁鍖归厤 + getDomainNaFild(res, result) { + for (var i in result) { + if (result[i].domName == res) { + return result[i].codeDesc; + } + } + return null; + }, + + //鑾峰彇姣忎釜琛ㄧ殑table + async getCollapseTable(res) { + var res_val; + res.then((val) => { + res_val = val; + }); + + if (this.formInline.name != null) { + this.listdata.filter = 'name like ' + this.formInline.name; + } + const fileds = await dataLib_selectByPage(this.listdata); + if (fileds.code != 200) { + this.$message.error('璋冪敤鍒楄〃澶辫触,璇疯仈绯诲伐浣滀汉鍛�!'); + return; + } + for (var i in fileds.result) { + let val_Data = fileds.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; + } + } + } + return fileds; + }, + + //鎶樺彔闈㈡澘鍒囨崲浜嬩欢 + handleChange(val) { + if (val == '') return; + var that = this; + this.listdata.name = val; + this.listdata.pageSize = 10; + this.listdata.pageIndex = 1; + for (var i in this.archOption) { + if (this.archOption[i].name == val) { + this.queryLayer = this.archOption[i].fileds; + this.archOption[i].fileds.then((res) => { + that.attributeData = res; + }); + this.archOption[i].table.then((res) => { + this.count = res.count; + this.tableData = res.result; + }); + } + } + }, + //鍒嗛〉鐐瑰嚮浜嬩欢 + handleSizeChange(val) { + this.listdata.pageSize = val; + this.listdata.pageIndex = 1; + var res = this.getCollapseTable(this.queryLayer); + res.then((res) => { + this.tableData = res.result; + }); + }, + handleCurrentChange(val) { + this.listdata.pageIndex = val; + var res = this.getCollapseTable(this.queryLayer); + res.then((res) => { + this.tableData = res.result; + }); + }, + //鑾峰彇鏍� + async getTreeData() { + const data = await inquiry_SelectTabs(); + if (data.code != 200) { + this.$message.error('鍒楄〃璋冪敤澶辫触'); + } + var option = data.result; + + for (var i in option) { + var val_Data = option[i]; + val_Data.id = '1' + i; + if (option[i].ns == 'bd') { + this.tree[0].children.push(val_Data); + } else { + this.tree[1].children.push(val_Data); + } + } + }, + //鏉冮檺绠$悊 + showArchMenu(res) { + switch (res.tag) { + case '/download': + this.archStatus.download = true; + break; + } + }, + }, + created() { + var val = this.$store.state.currentPerms; + var permsEntity = this.$store.state.permsEntity; + for (var i = 0; i < permsEntity.length; i++) { + if (permsEntity[i].perms == val) { + // this.showMenuChange(permsEntity[i], permsEntity); + this.showArchMenu(permsEntity[i]); + } + } + this.getTreeData(); + }, }; </script> -<style> +<style scped lang="less"> .archive { width: 100%; height: 100%; position: relative; } + .archive .left_active { width: 21%; height: 100%; @@ -168,9 +352,37 @@ width: 100%; height: 100%; } +.archive .centerBox { + max-height: 800px; + overflow: auto; +} + +.archive .centerBox::-webkit-scrollbar { + /*婊氬姩鏉℃暣浣撴牱寮�*/ + width: 10px; /*楂樺鍒嗗埆瀵瑰簲妯珫婊氬姩鏉$殑灏哄*/ + height: 1px; +} +.archive .centerBox::-webkit-scrollbar-thumb { + /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/ + border-radius: 10px; + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + background: #e5e5e5; +} +.archive .centerBox::-webkit-scrollbar-track { + /*婊氬姩鏉¢噷闈㈣建閬�*/ + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + border-radius: 10px; + background: #ffffff; +} + +.archive .centerTable { + height: 600px; +} .archive .arch_card .el-card__body { padding: 10px; + overflow-y: auto; } + .archive .el-divider--horizontal { margin: 10px 0 !important; } -- Gitblit v1.9.3