From 03e5e6dbf617b3557936b7ba80c625beea7f48af Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 10 二月 2023 11:11:29 +0800 Subject: [PATCH] 模板管理界面添加,样式修改 --- src/api/api.js | 22 src/assets/lang/zh.js | 6 src/views/Archive/index.vue | 219 ++++++++-- src/assets/css/config.css | 28 src/views/userManage/templateManage.vue | 709 +++++++++++++++++++++++++++++++++ src/assets/css/configure.css | 4 src/assets/lang/en.js | 4 src/views/maintenance/mochaitmo.vue | 9 src/router/index.js | 10 src/views/datamanage/styleManage.vue | 190 ++++---- 10 files changed, 1,043 insertions(+), 158 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index 406181b..31496b1 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -787,8 +787,26 @@ export function pipeline_downloadReq(params) { return request.post('/pipeline/downloadReq', params); } - - +//妯℃澘绠$悊=>鍒嗛〉鏌ヨ +export function report_selectByPageAndCount(params) { + return request.get('/report/selectByPageAndCount', { params: params }); +} +//妯℃澘绠$悊=>涓婁紶鏂囦欢 +export function report_upload(params) { + return request.post('/report/upload', params); +} +//妯℃澘绠$悊=>鍒犻櫎澶氭潯鏁版嵁 +export function report_deletes(params) { + return request.get('/report/deletes',{ params: params }); +} +//妯℃澘绠$悊=>鎻掑叆涓�鏉℃暟鎹� +export function report_insert(params) { + return request.post('/report/insert', params); +} +//妯℃澘绠$悊=>淇敼涓�鏉℃暟鎹� +export function report_update(params) { + return request.post('/report/update', params); +} //璇锋眰绔欏満鐐瑰唴瀹� diff --git a/src/assets/css/config.css b/src/assets/css/config.css index 69d88a0..b66a80d 100644 --- a/src/assets/css/config.css +++ b/src/assets/css/config.css @@ -226,16 +226,26 @@ background: #303030; } +.Black_theme .contLable { + color: white; +} - .Black_theme .contLable{ +.Black_theme .elLink { color: white; - } - .Black_theme .elLink{ +} + +.Black_theme .el-icon-folder-opened { color: white; - } - .Black_theme .el-icon-folder-opened{ +} + +.Black_theme .el-link.el-link--default { color: white; - } - .Black_theme .el-link.el-link--default{ - color: white; - } \ No newline at end of file +} + +.Black_theme .el-card { + background-color: #303030; + color: #FFF; +} +.Black_theme .contentBox{ + color: #FFF; +} \ No newline at end of file diff --git a/src/assets/css/configure.css b/src/assets/css/configure.css index 4374742..fae88b4 100644 --- a/src/assets/css/configure.css +++ b/src/assets/css/configure.css @@ -69,4 +69,8 @@ .el-tabs__content { overflow: revert; +} + +.el-dialog__wrapper { + z-index: 999; } \ No newline at end of file diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 631a328..372c0b5 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -1,5 +1,7 @@ const en = { common: { + bak:'Bak', + domCode: 'DomCode', confirm: 'confirm', choose: 'Please choose', name: 'name', @@ -39,6 +41,7 @@ size: 'size', versionName: 'version Name', type: 'type', + fileType:'File Type', quayTest: 'Auality testing', md5: 'MD5 Code', lineNuber: 'line Nuber', @@ -177,6 +180,7 @@ orderid: 'orderid', }, styleManage: 'Style Manage', + templateManage: 'Template management', styleObj: { index: 'Index', name: 'Name', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index a43f663..635620c 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -1,5 +1,7 @@ const zh = { common: { + bak:'澶囨敞', + domCode: '缂栫爜', confirm: '纭', choose: '璇烽�夋嫨', name: '鍚嶇О', @@ -39,6 +41,7 @@ size: '澶у皬', versionName: '鐗堟湰鍚嶇О', type: '绫诲瀷', + fileType:'鏂囦欢绫诲瀷', quayTest: '璐ㄦ', md5: 'MD5鐮�', lineNuber: '琛屾暟', @@ -175,6 +178,7 @@ orderid: '搴忓彿', }, styleManage: '鏍峰紡绠$悊', + templateManage: '妯℃澘绠$悊', styleObj: { index: '搴忓彿', name: '鍚嶇О', @@ -422,7 +426,7 @@ export: '瀵煎嚭', pipelineAnalysis: '绠¢亾鍒嗘瀽', synthesis: '缁煎悎灞曠ず', - DownloadList:'涓嬭浇鍒楄〃', + DownloadList: '涓嬭浇鍒楄〃', dataApplication: '鏁版嵁鐢宠', sceneExtraction: '鍦烘櫙鎻愬彇', themaic: '涓撻鍦板浘', diff --git a/src/router/index.js b/src/router/index.js index 66b4e9a..8697648 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -36,6 +36,7 @@ import addStyle from '../views/datamanage/addStyle.vue'; //鏁版嵁绠$悊-鏍峰紡绠$悊-娣诲姞鏍峰紡 import ExportMap from '../views/exportMap/index.vue'; //鍦ㄧ嚎鍒跺浘 import userInfoManage from '../views/userManage/userInfoManage.vue'; // 鐢ㄦ埛绠$悊妯″潡 +import templateManage from '../views/userManage/templateManage.vue'; // 妯℃澘绠$悊 import orgManage from '../views/userManage/orgManage.vue'; // 鐢ㄦ埛绠$悊妯″潡 import userAuditing from '../views/userManage/userAuditing.vue'; // 鐢ㄦ埛绠$悊妯″潡 import roleManage from '../views/userManage/roleManage.vue'; // 鐢ㄦ埛绠$悊妯″潡 @@ -363,6 +364,15 @@ }, }, { + path: '/templateManage', + component: templateManage, + name: 'templateManage', + meta: { + title: '妯℃澘绠$悊', + requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰� + }, + }, + { path: '/orgManage', component: orgManage, name: 'orgManage', diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue index ccce285..916d7dd 100644 --- a/src/views/Archive/index.vue +++ b/src/views/Archive/index.vue @@ -1,41 +1,44 @@ <template> - <div class="archive box_div"> + <div + class="archive box_div" + v-loading="loading" + element-loading-background="rgba(0, 0, 0, 0.8)" + > <div class="top_header"> <div class="top_left"> <My-bread :list="[`${$t('synthesis.synthesis')}`, `${$t('synthesis.archive')}`]"></My-bread> </div> - </div> <div class="box_item "> - - <div class="box_left">璧勬枡绫诲埆</div> - <div class="box_cont"> - <div v-if="isShowFirstCheck"> - <el-checkbox-group v-model="checkedDataType"> - <el-checkbox - @change="handleCheckedDataTypeChange(item)" - v-for="(item, index) in showList" - :label="item.name" - :key="index" - >{{item.name}}</el-checkbox> - </el-checkbox-group> - </div> - <div - v-if="!isShowFirstCheck" - class="menu_div" - v-for="(item, index) in showList" - :key="index" - @click="changeListDataType(item)" - > + <div class="box_left">璧勬枡绫诲埆</div> + <div class="box_cont"> - <div - :class="{menuActive:dataTypeName == item.name}" - style="margin-left: 5px" - >{{ item.name }}</div> - </div> + <div v-if="isShowFirstCheck"> + <el-checkbox-group v-model="checkedDataType"> + <el-checkbox + @change="handleCheckedDataTypeChange(item)" + v-for="(item, index) in showList" + :label="item.name" + :key="index" + >{{item.name}}</el-checkbox> + </el-checkbox-group> </div> - + <div + v-if="!isShowFirstCheck" + class="menu_div" + v-for="(item, index) in showList" + :key="index" + @click="changeListDataType(item)" + > + + <div + :class="{menuActive:dataTypeName == item.name}" + style="margin-left: 5px" + >{{ item.name }}</div> + </div> + </div> + <div class="box_right"> <div class="menu_div subpage_Div" @@ -265,14 +268,16 @@ :title="dialogtitle" :visible.sync="dialogVisible" width="90%" - top="5vh" + top="10vh" + :modal="false" + style="z-index:999" :before-close="handleClose" > <!-- 鏉′欢--> <el-dialog width="37%" :visible.sync="conditionVisible" - append-to-body + :modal="false" title="鏌ヨ鏉′欢" :before-close="handleconditionClose" > @@ -283,6 +288,7 @@ > <el-form-item> <el-select + :popper-append-to-body="false" @change="fieldChange($event)" v-model="formSql.field" > @@ -296,7 +302,10 @@ </el-select> </el-form-item> <el-form-item> - <el-select v-model="formSql.condition"> + <el-select + :popper-append-to-body="false" + v-model="formSql.condition" + > <el-option v-for="item in condOption" :key="item.value" @@ -334,7 +343,6 @@ <el-dialog width="30%" :visible.sync="innerVisible" - append-to-body > <div class="contentBox"> <ul> @@ -352,7 +360,7 @@ <el-dialog width="30%" :visible.sync="outerVisible" - append-to-body + :modal="false" > <el-form :model="fromfile" @@ -427,7 +435,7 @@ </el-table> </el-form-item> - <el-form-item> + <!-- <el-form-item> <el-row :gutter="20"> <el-col @@ -444,6 +452,56 @@ >鍙栨秷</el-button> </el-col> </el-row> + </el-form-item> --> + </el-form> + </el-dialog> + <el-dialog + :title="$t('common.passworld')" + :visible.sync="downloadLogVisible" + width="30%" + top="10vh" + :modal="false" + :show-close="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="download1('codeForm')" + >{{$t('common.confirm')}}</el-button> + <el-button + type="info" + size="small" + @click="closeDown1('codeForm')" + >{{$t('common.cancel')}}</el-button> </el-form-item> </el-form> </el-dialog> @@ -487,6 +545,13 @@ icon="el-icon-search" >{{$t('common.reset')}}</el-button> </el-form-item> + <el-form-item> + <el-button + type="info" + @click="downloadForm()" + icon="el-icon-download" + >{{$t('common.download')}}</el-button> + </el-form-item> </el-form> <el-divider class="eldivider" /> <div style="width:100%;height:400px;"> @@ -520,7 +585,7 @@ ></el-table-column> <el-table-column v-if="isMenuActive" - min-width="80" + min-width="120" align="center" :label="$t('common.operate')" > @@ -874,6 +939,8 @@ } }; return { + loading: false, + downloadLogVisible: false, downloadListVisible: false, data_type: [], project_name: [], @@ -1025,12 +1092,67 @@ }, }, methods: { - downloadMap(index, rows) { - // var token = '?token=' + getToken(); - // - // var url = BASE_URL + '/dataLib/downloadFile' + token + '&guid=' + rows.guid+ '&pwd='+ rows.pwd - var token = getToken() + handleCloseDown() { + }, + download1() { + if (this.codeForm.password == '' || this.codeForm.repassword == '') { + return this.$message.error('瀵嗙爜涓嶈兘涓虹┖'); + } + if (this.codeForm.password != this.codeForm.repassword) { + return; + } + 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(this.codeForm.password)) { + return; + } + this.downloadLogVisible = false; + var obj = { + entities: [this.listTypeData.name], // bpachydrogeology,bhydrogeologyattach + filter: this.listTypeData.filter, + pwd: encrypt.encrypt(this.codeForm.password) + }; + this.loading = true; + var that = this; + $.ajax({ + url: BASE_URL + "/dataLib/downloadEntityReq?token=" + getToken(), + type: "POST", + data: JSON.stringify(obj), + dataType: 'json', // html銆乯son銆乯sonp銆乻cript銆乼ext + contentType: "application/json", // "application/x-www-form-urlencoded" + success: (data) => { + if (data.code == 200) { + that.downloadflie(data, this.codeForm.password) + + } + }, + error: function (e) { + } + }); + }, + downloadflie(data, pwd) { + this.codeForm = { + password: '', + repassword: '', + } + var token = getToken() + var url = BASE_URL + "/dataLib/downloadFile?token=" + token + "&guid=" + data.result + "&pwd=" + encrypt.encrypt(pwd); + $("#downFrame").attr("src", url).click(); + this.loading = false; + }, + closeDown1() { + this.codeForm = { + password: '', + repassword: '', + } + this.downloadLogVisible = false; + }, + downloadForm() { + this.downloadLogVisible = true; + }, + downloadMap(index, rows) { + var token = getToken() var url = BASE_URL + "/dataLib/downloadFile?token=" + token + "&guid=" + rows.guid + "&pwd=" + rows.pwd; $("#downFrame").attr("src", url).click(); }, @@ -1062,7 +1184,7 @@ } this.downloadTableData = data.result; - console.log(this.downloadTableData, data.result.length, this.downloadPage) + this.downloadPage.count = data.count; }, handleCheckedEntryNameChange(res) { @@ -1434,6 +1556,7 @@ this.getCollapseTable(this.filedsLayer); }, + async showDetail2(res) { var val = res.tab.split("."); const data = await dataLib_selectTabFields({ @@ -1948,7 +2071,7 @@ width: calc(100% - 60px); height: auto; margin: 5px 30px; - padding-bottom:5px ; + padding-bottom: 5px; border-bottom: 1px solid #dcdfe6; align-items: center; display: flex; @@ -2067,14 +2190,8 @@ border-radius: 10px; } -} - -.contentBox { - height: 60vh; - overflow: auto; -} - -.downloadBox { - z-index: 999; + /deeep/.el-form-item { + margin-bottom: 0px; + } } </style> diff --git a/src/views/datamanage/styleManage.vue b/src/views/datamanage/styleManage.vue index c7f3077..7c1d8f5 100644 --- a/src/views/datamanage/styleManage.vue +++ b/src/views/datamanage/styleManage.vue @@ -159,105 +159,106 @@ </div> </div> <div - class="infoBox" + class="infoBox subpage_Div box_div" v-show="showinfoBox" > - <el-card class="box-card"> + + <div + slot="header" + class="clearfix" + > + <span>{{ $t('dataManage.styleObj.deInformation') }}</span> <div - slot="header" - class="clearfix" + style="float: right; cursor: pointer" + @click="closeDetial" > - <span>{{ $t('dataManage.styleObj.deInformation') }}</span> - <div - style="float: right; cursor: pointer" - @click="closeDetial" - > - <i class="el-icon-close"></i> - </div> + <i class="el-icon-close"></i> </div> - <div class="contentBox"> - <p> - <label> {{ $t('dataManage.styleObj.name') }}:</label> - <label class="boxlabel">{{ itemdetail.name }}</label> - </p> - <el-divider></el-divider> - <p> - <p> - <label> {{ $t('dataManage.styleObj.type') }}:</label> - <label class="boxlabel">{{ itemdetail.type }}</label> - </p> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.dirid') }}:</label> - <label class="boxlabel">{{ itemdetail.dirName }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.depid') }}:</label> - <label class="boxlabel">{{ itemdetail.depName }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.ver') }}:</label> - <label class="boxlabel">{{ itemdetail.ver }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.status') }}:</label> - <label class="boxlabel">{{ itemdetail.status }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.descr') }}:</label> - <label class="boxlabel">{{ itemdetail.descr }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.fileguid') }}:</label> - <label class="boxlabel">{{ itemdetail.fileGuid }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.viewguid') }}:</label> - <label class="boxlabel"> - <div style="width:440px;height:200px;"> - <img - style="width:100%; height:100%" - :src="itemdetail.imageFile" - alt="" - /> - </div> - </label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.createUser') }}:</label> - <label class="boxlabel">{{ itemdetail.createUser }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.createTime') }}:</label> - <label class="boxlabel">{{ itemdetail.createTime }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.updateUser') }}:</label> - <label class="boxlabel">{{ itemdetail.updateUser }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.updateTime') }}:</label> - <label class="boxlabel">{{ itemdetail.updateTime }}</label> - </p> - <el-divider></el-divider> - <p> - <label> {{ $t('dataManage.styleObj.bak') }}:</label> - <label class="boxlabel">{{ itemdetail.bak }}</label> - </p> - <el-divider></el-divider> - </div> - </el-card> + </div> + <el-divider></el-divider> + <div class="contentBox"> + <p> + <label> {{ $t('dataManage.styleObj.name') }}:</label> + <label class="boxlabel">{{ itemdetail.name }}</label> + </p> + <el-divider></el-divider> + <p> + <p> + <label> {{ $t('dataManage.styleObj.type') }}:</label> + <label class="boxlabel">{{ itemdetail.type }}</label> + </p> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.dirid') }}:</label> + <label class="boxlabel">{{ itemdetail.dirName }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.depid') }}:</label> + <label class="boxlabel">{{ itemdetail.depName }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.ver') }}:</label> + <label class="boxlabel">{{ itemdetail.ver }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.status') }}:</label> + <label class="boxlabel">{{ itemdetail.status }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.descr') }}:</label> + <label class="boxlabel">{{ itemdetail.descr }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.fileguid') }}:</label> + <label class="boxlabel">{{ itemdetail.fileGuid }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.viewguid') }}:</label> + <label class="boxlabel"> + <div style="width:440px;height:200px;"> + <img + style="width:100%; height:100%" + :src="itemdetail.imageFile" + alt="" + /> + </div> + </label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.createUser') }}:</label> + <label class="boxlabel">{{ itemdetail.createUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.createTime') }}:</label> + <label class="boxlabel">{{ itemdetail.createTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.updateUser') }}:</label> + <label class="boxlabel">{{ itemdetail.updateUser }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.updateTime') }}:</label> + <label class="boxlabel">{{ itemdetail.updateTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.styleObj.bak') }}:</label> + <label class="boxlabel">{{ itemdetail.bak }}</label> + </p> + <el-divider></el-divider> + </div> + </div> <el-dialog :title="$t('dataManage.styleObj.modifyStyleData')" @@ -1126,6 +1127,7 @@ } } }, + handleSelectionChange(val) { this.multipleSelection = val; }, diff --git a/src/views/maintenance/mochaitmo.vue b/src/views/maintenance/mochaitmo.vue index d312f21..0b7dca4 100644 --- a/src/views/maintenance/mochaitmo.vue +++ b/src/views/maintenance/mochaitmo.vue @@ -41,6 +41,7 @@ <system-monitoring v-if="setMenuFlag == 'systemMonitoring'"></system-monitoring> <parameter-configuration v-if="setMenuFlag == 'parameterConfiguration'"></parameter-configuration> <downlog v-if="setMenuFlag == 'downlog'"></downlog> + <template-manage v-if="setMenuFlag == 'templateManage'"></template-manage> </div> </div> @@ -68,8 +69,10 @@ import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶 import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //绯荤粺閰嶇疆 import downlog from '@/views/maintenance/downlog.vue'; //涓嬭浇鏃ュ織 +import templateManage from '@/views/userManage/templateManage.vue'//妯℃澘绠$悊 import { selectMenuRecursive, queryMenuTree, getPerms } from '../../api/api'; import customElMenu from '../../components/customElMenu.vue'; + export default { components: { menuSettings, @@ -91,7 +94,8 @@ systemMonitoring, parameterConfiguration, customElMenu, - downlog + downlog, + templateManage }, data() { return { @@ -220,7 +224,9 @@ if (res.children != null) { this.setViewController(res.children[0]); } else { + this.$store.state.currentPerms = res.perms; + this.setMenuFlag = res.url; this.activeIndex = res.url; } @@ -253,6 +259,7 @@ index = 'dataIfream'; } } + this.setMenuFlag = index; }, diff --git a/src/views/userManage/templateManage.vue b/src/views/userManage/templateManage.vue new file mode 100644 index 0000000..39a1a06 --- /dev/null +++ b/src/views/userManage/templateManage.vue @@ -0,0 +1,709 @@ +<template> + <div class="authorityManagement_box"> + <My-bread :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.templateManage')}`, + ]"></My-bread> + <el-divider /> + <div class="searchComp subpage_Div"> + <el-form + ref="ruleForm" + :model="ruleForm" + :inline="true" + > + <el-form-item> + <el-input + v-model="ruleForm.name" + :placeholder="$t('common.pleaseInput')" + /> + </el-form-item> + <el-form-item> + <el-button + icon="el-icon-search" + @click="setRefreshTable" + type="primary" + size="small" + >{{ $t('common.iquery') }}</el-button> + </el-form-item> + <el-form-item> + <el-button + icon="el-icon-refresh" + @click="restRefreshTable" + type="info" + size="small" + >{{ $t('common.empty') }}</el-button> + </el-form-item> + <el-form-item> + <el-button + v-if="btnStatus.insert" + @click="setTableInsert" + icon="el-icon-edit" + type="success" + size="small" + >{{ $t('common.append') }}</el-button> + </el-form-item> + <el-form-item> + <el-button + v-if="btnStatus.delete" + icon="el-icon-delete" + @click="delTableData" + type="danger" + size="small" + >{{ $t('common.delete') }}</el-button> + </el-form-item> + + </el-form> + </div> + <div> + <el-table + :data="tableData" + style="width: 100%" + @selection-change="handleSelectionChange" + > + <el-table-column + type="selection" + width="55" + /> + <el-table-column + align="center" + type="index" + :label="$t('dataManage.styleObj.index')" + width="70px" + /> + <el-table-column + align="center" + prop="name" + :label="$t('dataManage.styleObj.name')" + /> + <el-table-column + align="center" + prop="type" + :label="$t('common.fileType')" + > + <template slot-scope="scope"> + <span v-if="scope.row.type == 1">World妯℃澘 </span> + <span v-else-if="scope.row.type == 2">Excel妯℃澘</span> + </template> + </el-table-column> + <el-table-column + align="center" + prop="code" + :label="$t('common.domCode')" + /> + <el-table-column + align="center" + prop="fname" + :label="$t('common.filePath')" + /> + <el-table-column + align="center" + prop="bak" + :label="$t('common.bak')" + /> + <el-table-column + align="center" + prop="createName" + :label="$t('dataManage.vmobj.createonuser')" + /> + <el-table-column + align="center" + prop="createTime" + :label="$t('dataManage.vmobj.createontime')" + :formatter="formatData" + /> + <el-table-column + min-width="100" + :label="$t('dataManage.dictionaryManageObj.operation')" + > + <template slot-scope="scope"> + <el-button + v-if="btnStatus.select" + @click="showDetail(scope.$index, scope.row)" + type="primary" + plain + size="small" + >{{ $t('dataManage.dictionaryManageObj.lookOver') }}</el-button> + <el-button + v-if="btnStatus.update" + @click="handleEdit(scope.$index, scope.row)" + type="warning" + plain + size="small" + >{{ $t('dataManage.dictionaryManageObj.revamp') }}</el-button> + <el-button + v-if="btnStatus.download" + plain + @click="handleDownload(scope.$index, scope.row)" + type="info" + size="small" + >{{ $t('common.download') }}</el-button> + </template> + </el-table-column> + </el-table> + <div style="margin-top:10px"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 50, 100]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="listData.count" + > + </el-pagination> + </div> + </div> + <!-- 鏂板 --> + <el-dialog + :title=" + behavior == '鏂板' + ? `${$t('common.append')}` + : `${$t('common.update')}` + " + :visible.sync="dialogVisible" + width="50%" + :before-close="handleClose" + :show-close="false" + > + <div> + <el-form + ref="form" + :model="editForm" + label-width="100px" + > + <el-form-item :label="$t('dataManage.styleObj.name')"> + <el-input + style="width:100%" + v-model=" editForm.name" + ></el-input> + </el-form-item> + <el-form-item :label="$t('common.fileType')"> + <el-select + :popper-append-to-body="false" + v-model="editForm.type" + @change="selFileTypeChange" + placeholder="璇烽�夋嫨娲诲姩鍖哄煙" + style="width:100%" + > + <el-option + label="World妯℃澘" + value="1" + ></el-option> + <el-option + label="Excel妯℃澘" + value="2" + ></el-option> + </el-select> + </el-form-item> + <el-form-item :label="$t('common.domCode')"> + <el-input + style="width:100%" + v-model=" editForm.code" + ></el-input> + </el-form-item> + <el-form-item :label="$t('common.filePath')"> + <div class="BoxFlex"> + <div class="BoxFlexinput"> + <el-input + v-model="editForm.fname" + disabled + autocomplete="off" + style="width:100%" + ></el-input> + </div> + <div> + <input + name="file1" + type="file" + id="editFile" + multiple="multiple" + :accept="selectFileType" + style="display: none" + @change="geteditFile(1)" + /> + <el-button + style="margin-left: 6px;" + type="primary" + size="small" + :underline="false" + @click="geteditFile(0)" + >閫夋嫨</el-button> + <el-button + type="primary" + size="small" + :underline="false" + @click="geteditFile(2)" + >涓婁紶</el-button> + </div> + </div> + </el-form-item> + <el-form-item :label="$t('common.bak')"> + <el-input + style="width:100%" + v-model="editForm.bak" + ></el-input> + </el-form-item> + </el-form> + </div> + <div + v-if="behavior =='鏂板'" + slot="footer" + class="dialog-footer" + > + <el-button + size="small" + @click="closeInsertData" + >鍙� 娑�</el-button> + <el-button + type="primary" + size="small" + @click="addInsertData" + >纭� 瀹�</el-button> + </div> + <div + v-if="behavior !='鏂板'" + slot="footer" + class="dialog-footer" + > + <el-button + size="small" + @click="closeEditData" + >鍙� 娑�</el-button> + <el-button + type="primary" + size="small" + @click="addEditData" + >纭� 瀹�</el-button> + </div> + </el-dialog> + <div + class="infoBox subpage_Div box_div" + v-show="showinfoBox" + > + + <div + slot="header" + class="clearfix" + > + <span>{{ $t('dataManage.styleObj.deInformation') }}</span> + <div + style="float: right; cursor: pointer" + @click="closeDetial" + > + <i class="el-icon-close"></i> + </div> + </div> + <el-divider></el-divider> + <div class="contentBox"> + <p> + <label> {{ $t('dataManage.styleObj.name') }}:</label> + <label class="boxlabel">{{ itemdetail.name }}</label> + </p> + <el-divider></el-divider> + <p> + <p> + <label> {{ $t('common.fileType') }}:</label> + <label class="boxlabel">{{ itemdetail.fileType }}</label> + </p> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('common.domCode') }}:</label> + <label class="boxlabel">{{ itemdetail.code }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('common.filePath') }}:</label> + <label class="boxlabel">{{ itemdetail.fname }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('common.bak') }}:</label> + <label class="boxlabel">{{ itemdetail.bak }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.vmobj.createonuser') }}:</label> + <label class="boxlabel">{{ itemdetail.createName }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.vmobj.createontime') }}:</label> + <label class="boxlabel">{{ itemdetail.cTime }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.vmobj.updateonuser') }}:</label> + <label class="boxlabel">{{ itemdetail.updateName }}</label> + </p> + <el-divider></el-divider> + <p> + <label> {{ $t('dataManage.vmobj.updateontime') }}:</label> + <label class="boxlabel">{{ itemdetail.uTime }}</label> + </p> + <el-divider></el-divider> + </div> + + </div> + <iframe + id="downFrame" + src="" + style="display: none; border: 0; padding: 0; height: 0; width: 0" + ></iframe> + </div> +</template> + +<script> + +import MyBread from "../../components/MyBread.vue"; +import { + report_selectByPageAndCount, + report_upload, + report_insert, + report_deletes, + report_update +} from '../../api/api.js' +import { getToken } from '@/utils/auth'; +export default { + name: "templateManage", + components: { MyBread, }, + data() { + return { + itemdetail: {}, + showinfoBox: false, + behavior: '鏂板', + selectFileType: '*.*', + editForm: { + fname: '', + guid: '', + name: '', + code: '', + type: '', + bak: '', + }, + multipleSelection: [], + dialogVisible: false, + tableData: [], + ruleForm: { + name: '' + }, + listData: { + pageIndex: 1, + pageSize: 10, + name: '', + count: 0, + }, + btnStatus: { + select: false, + delete: false, + upload: false, + download: false, + insert: false, + update: false, + }, + } + }, + created() { + this.showPermsBtn(); + this.showTableData(); + + }, + methods: { + //淇敼鍙栨秷 + closeEditData() { + this.closeInsertData(); + }, + handleClose() { + var blackTheme; + if (this.$store.state.themeflag == true) { + blackTheme = { + customClass: "Black_theme" + } + } + + this.$confirm('纭鍏抽棴锛�', blackTheme) + .then((_) => { + this.closeInsertData(); + + }) + .catch((_) => { }); + }, + //鏌ョ湅 + showDetail(index, row) { + this.itemdetail = row; + + if (parseInt(row.type) == 1) { + this.itemdetail.fileType = "World妯℃澘" + } else if (parseInt(row.type) == 2) { + this.itemdetail.fileType = "Excel妯℃澘" + } + + this.itemdetail.uTime = this.format(row.updateTime); + this.showinfoBox = true + }, + //鍏抽棴鏌ョ湅 + closeDetial() { + this.showinfoBox = false + }, + //涓嬭浇 + handleDownload(index, row) { + var token = getToken(); + var url = BASE_URL + "/report/download?token=" + token + "&guid=" + row.guid; + $("#downFrame").attr("src", url).click(); + }, + //淇敼鎻愪氦 + async addEditData() { + const data = await report_update(this.editForm); + if (data.code != 200) { + return this.$message.error("淇敼澶辫触"); + } + this.$message({ + message: '淇敼鎴愬姛', + type: 'success' + }); + this.closeInsertData(); + }, + //鏂囦欢绫诲瀷鍒囨崲 + selFileTypeChange(val) { + if (parseInt(val) == 1) { + this.selectFileType = ".doc,.docx" + } else if (parseInt(val) == 2) { + this.selectFileType = ".xls,.xlsx" + } + }, + //淇敼 + handleEdit(index, row) { + this.behavior = "淇敼" + this.editForm = row; + if (parseInt(row.type) == 1) { + this.selectFileType = ".doc,.docx" + } else if (parseInt(row.type) == 2) { + this.selectFileType = ".xls,.xlsx" + } + this.dialogVisible = true; + }, + //鍒犻櫎 + async delTableData() { + if (this.multipleSelection.length == 0) { + return this.$message('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁'); + } + var std = []; + for (var i in this.multipleSelection) { + std.push(this.multipleSelection[i].id) + } + const data = await report_deletes({ ids: std.toString() }) + if (data.code != 200) { + return this.$message.error("鍒犻櫎澶辫触"); + } + this.$message({ + message: '鍒犻櫎鎴愬姛', + type: 'success' + }); + this.setRefreshTable(); + }, + + + //閲嶇疆鏌ヨ + restRefreshTable() { + this.ruleForm.name = ""; + this.setRefreshTable(); + }, + //閲嶇疆鍒锋柊Table + setRefreshTable() { + this.listData.pageIndex = 1; + this.listData.pageSize = 10; + this.showTableData(); + }, + //鏂板涓�鏉℃暟鎹� + async addInsertData() { + const data = await report_insert(this.editForm); + if (data.code != 200) { + return this.$message.error("鏂板澶辫触"); + } + this.$message({ + message: '鏂板鎴愬姛', + type: 'success' + }); + this.closeInsertData(); + }, + //鍏抽棴鏂板 + closeInsertData() { + this.dialogVisible = false; + this.editForm = { + fname: '', + guid: '', + name: '', + code: '', + type: '', + bak: '', + } + this.setRefreshTable(); + document.getElementById("editFile").value = ""; + }, + //鏂囦欢涓婁紶 + async geteditFile(res) { + if (res == 0) { + if (this.editForm.type == '') { + return this.$message('璇烽�夋嫨涓婁紶鏂囦欢绫诲瀷'); + } + + $("#editFile").click(); + } else if (res == 1) { + var val = document.getElementById("editFile").files; + if (!val || !val.length) return; + this.editForm.fname = val[0].name; + } else if (res == 2) { + var fs = document.getElementById("editFile"); + if (fs.files.length == 0) { + return; + } + var formData = new FormData(); + formData.append("file", fs.files[0]); + var val_data = await report_upload(formData); + if (val_data.code == 200) { + + this.editForm.guid = val_data.result; + this.$message({ + message: "涓婁紶鎴愬姛锛�", + type: "success", + }); + } else { + this.$message({ + message: "涓婁紶澶辫触锛�", + type: "warning", + }); + } + } + + }, + //鏍煎紡鍖栧垪琛� + 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); + }, + //鏍煎紡鍖栨椂闂� + add0(m) { + return m < 10 ? '0' + m : m; + }, + //Table閫夋嫨浜嬩欢 + handleSelectionChange(val) { + this.multipleSelection = val; + }, + //鏂板寮圭獥 + setTableInsert() { + this.behavior = "鏂板" + this.dialogVisible = true + }, + //鍒嗛〉鍒囨崲 + handleSizeChange(val) { + this.listData.pageSize = val; + this.listData.pageIndex = 1; + this.showTableData(); + }, + //鍒嗛〉鍒囨崲 + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.showTableData(); + }, + //鍒楄〃璋冪敤 + async showTableData() { + this.listData.name = this.ruleForm.name; + const data = await report_selectByPageAndCount(this.listData); + if (data.code != 200) { + return this.$message.error("鍒楄〃璋冪敤澶辫触"); + } + this.tableData = data.result; + this.listData.count = data.count + }, + //鏉冮檺閰嶇疆 + showPermsBtn() { + let currentPerms = this.$store.state.currentPerms; + let permsEntity = this.$store.state.permsEntity; + permsEntity + .filter((item) => item.perms == currentPerms) + .map((item) => (this.btnStatus[item.tag.substr(1)] = true)); + }, + }, +}; +</script> +<style lang="less" scoped> +//@import url(); 寮曞叆鍏叡css绫� +.authorityManagement_box { + height: 98%; + width: 98%; + padding: 1%; + + .el-input { + width: 730px; + } + + .searchComp { + margin: 10px auto; + + border-radius: 5px; + + .el-form-item { + margin: 5px; + } + .el-input { + width: 467px; + } + } + .leftTree { + position: absolute; + z-index: 10; + z-index: 9999; + top: 100px; + left: 800px; + width: 400px; + height: 600px; + + .treeBox { + height: 550px; + overflow: auto; + } + .btnBox { + width: 160px; + margin: 10px auto 0; + } + } + .bottom { + width: 100%; + height: 85%; + .rightTable { + height: 100%; + width: 100%; + .table_box { + width: 100%; + height: 80%; + margin: 0 auto; + overflow: auto; + } + } + } + .BoxFlex { + display: flex; + justify-content: space-around; + width: 100%; + .BoxFlexinput { + flex: 1; + } + } +} +</style> + -- Gitblit v1.9.3