From 4470052c3b6bdeb18e45987f8aa293d1e93d0552 Mon Sep 17 00:00:00 2001
From: Ludc <2870569285@qq.com>
Date: 星期二, 18 十一月 2025 11:59:12 +0800
Subject: [PATCH] 所有文件上传接口增加文件安全校验逻辑。
---
Source/UBCS-WEB/src/views/docking/loge.vue | 309 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 243 insertions(+), 66 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/docking/loge.vue b/Source/UBCS-WEB/src/views/docking/loge.vue
index f806110..3788739 100644
--- a/Source/UBCS-WEB/src/views/docking/loge.vue
+++ b/Source/UBCS-WEB/src/views/docking/loge.vue
@@ -1,32 +1,124 @@
<template>
<!--绯荤粺闆嗘垚鐨勭郴缁熸棩蹇楅〉闈�-->
<basic-container>
- <avue-crud :option="option"
- :table-loading="loading"
- :data="data"
+ <avue-crud ref="crud"
+ :data="data || getList"
+ :option="option"
:page.sync="page"
- :permission="permissionList"
- ref="crud"
+ :table-loading="loading"
+ @cell-dblclick="cellDbClick"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad">
+ @refresh-change="refreshChange">
+ <template slot="menuLeft" slot-scope="scope">
+ <vci-docking-search ref="dockingSearch" :SearchObject="SearchObject" :formInline="formInline" :page="page"
+ :status="status" @getList="dockingGetList"></vci-docking-search>
+ </template>
+ <template slot="paramString" slot-scope="scope">
+ <avue-text-ellipsis :height="50" :text="scope.row.paramString">
+ <small slot="more">...</small>
+ </avue-text-ellipsis>
+ </template>
+ <template slot="returnString" slot-scope="scope">
+ <avue-text-ellipsis :height="50" :text="scope.row.returnString">
+ <small slot="more">...</small>
+ </avue-text-ellipsis>
+ </template>
+ <template slot="menu" slot-scope="scope">
+ <el-button icon="el-icon-view" size="mini" type="text" @click="rowView(scope.row)">鏌ョ湅</el-button>
+ </template>
</avue-crud>
</basic-container>
</template>
<script>
-import {getList} from "@/api/docking/loge";
+import {getLogoList, gridLogeDetail} from "@/api/docking/loge";
import {validatenull} from "@/util/validate";
import {mapGetters} from "vuex";
export default {
name: "loge",
- data(){
+ data() {
return {
+ value: '',
+ //鍚勪釜绫诲瀷鐘舵��
+ status: {
+ type: 'loge',
+ typeFlag: false,
+ dateFlag: false,
+ stateFlag: false,
+ },
+ //model缁戝畾
+ formInline: {
+ type: '',
+ cut: '',
+ text: '',
+ Date: '',
+ state: ''
+ },
+ //闆嗘垚绫诲瀷姝绘暟鎹�
+ SearchObject: {
+ searchData: [
+ {
+ label: '鏁版嵁缂栫爜',
+ prop: "id",
+ value: 0
+ },
+ {
+ label: '鍒嗙被浠e彿',
+ prop: 'classifyId',
+ value: 1
+ },
+ {
+ label: '鍒嗙被鍚嶇О',
+ prop: 'classifyName',
+ value: 2
+ },
+ {
+ label: '闆嗘垚绯荤粺缂栧彿',
+ prop: 'systemCode',
+ value: 3
+ },
+ {
+ label: '闆嗘垚绯荤粺鍚嶇О',
+ prop: 'systemName',
+ value: 4
+ },
+ {
+ label: '绫诲瀷',
+ prop: 'typeText',
+ value: 5
+ },
+ {
+ label: '璁板綍鏃堕棿',
+ value: 6,
+ prop: 'createTime',
+ },
+ {
+ label: '鏄惁鎴愬姛',
+ prop: 'interfaceStatus',
+ value: 7
+ },
+ {
+ label: '鎺ュ彛鍙傛暟',
+ prop: 'paramString',
+ value: 11
+ },
+ {
+ label: '杩斿洖鍙傛暟',
+ prop: 'returnString',
+ value: 12
+ },
+ {
+ label: '杩斿洖msg',
+ prop: 'msg',
+ value: 13
+ },
+ ],
+ },
loading: false,
query: {},
selectionList: [],
@@ -35,78 +127,108 @@
currentPage: 1,
total: 0
},
- data:[],
+ data: [],
option: {
- height:'auto',
- calcHeight: 0,
+ height: 'auto',
+ calcHeight: 20,
+ menuWidth: 120,
tip: false,
searchShow: false,
- searchMenuSpan: 6,
border: true,
index: true,
- viewBtn: true,
+ indexFixed: false,
selection: false,
dialogClickModal: false,
- menu:false,
+ menuFixed: 'right',
+ dialogType: 'drawer',
+ viewBtn: false,
+ stripe: true,
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
column: [
{
label: "鏁版嵁缂栫爜",
prop: "id",
- search: true,
- sortable:true,
- width:150
+ sortable: true,
+ width: 130
},
{
label: "鍥惧彿",
prop: "uniqueCode",
- search: true,
- hide:true,
- sortable:true,
- width:150
+ hide: true,
+ sortable: true,
+ width: 150
},
{
label: '鍒嗙被浠e彿',
prop: 'classifyId',
- search: true,
- sortable:true,
- width: 250
+ sortable: true,
+ overHidden: true,
+ width: 150
},
{
label: '鍒嗙被鍚嶇О',
prop: 'classifyName',
- search: true,
- sortable:true,
- overHidden: true
+ sortable: true,
+ overHidden: true,
+ width: 140
},
+ // {
+ // label: '鏍囧噯鐢宠',
+ // prop: 'applyCodeForBZ',
+ // sortable:true,
+ // width: 130
+ // },
+ // {
+ // label: '閮ㄩ棬鐢宠',
+ // prop: 'syncDataForOrg',
+ // sortable:true,
+ // width: 130
+ // },
+ // {
+ // label: '浜哄憳鐢宠',
+ // prop: 'syncDataForPerson',
+ // sortable:true,
+ // width: 130
+ // },
{
label: '闆嗘垚绯荤粺缂栧彿',
prop: 'systemCode',
- search: true,
- sortable:true,
- width: 150
+ labelWidth: 150,
+ sortable: true,
+ width: 130
},
{
label: '闆嗘垚绯荤粺鍚嶇О',
prop: 'systemName',
- search: true,
- sortable:true,
+ sortable: true,
+ labelWidth: 150,
width: 150
},
{
- label:'鎺ュ彛鍙傛暟',
- prop:'paramString',
- overHidden:true,
- search: true,
- sortable:true,
+ label: '绫诲瀷',
+ prop: 'typeText',
+ sortable: true,
width: 150
},
{
- label:'杩斿洖鍙傛暟',
- prop:'returnString',
- overHidden:true,
- search: true,
- sortable:true,
- width: 150
+ label: '鎺ュ彛鍙傛暟',
+ prop: 'paramString',
+ sortable: true,
+ minRows: 20,
+ type: "textarea",
+ slot: true,
+ hide: true,
+ },
+ {
+ label: '杩斿洖鍙傛暟',
+ prop: 'returnString',
+ sortable: true,
+ minRows: 20,
+ type: "textarea",
+ slot: true,
+ hide: true,
},
{
label: '杩斿洖msg',
@@ -116,34 +238,33 @@
{
label: '璁板綍鏃堕棿',
prop: 'createTime',
- sortable:true,
- width: 160
+ sortable: true,
+
},
{
- label: '鏄惁鎺ㄩ�佹垚鍔�',
- prop: 'interFaceStatus',
- search: true,
- sortable:true,
+ label: '鏄惁鎴愬姛',
+ prop: 'interfaceStatus',
+ sortable: true,
width: 120,
- html:true,
- align:'center',
- type:'select',
- searchLabelWidth:130,
- dicData: [{key:'true',value:'鏄�'},{key:'false',value:'鍚�'}],
+ html: true,
+ align: 'center',
+ type: 'select',
+ searchLabelWidth: 130,
+ dicData: [{key: 'true', value: '鏄�'}, {key: 'false', value: '鍚�'}],
props: {
label: "value",
value: "key"
},
- formatter : function (row, column) {
- return row.interFaceStatus == 'true' || row.interFaceStatus == '1' ? '<i class="el-icon-check" style="color: limegreen"></i>' : '<i class="el-icon-close" style="color: red"></i>'
+ formatter: function (row, column) {
+ return row.interfaceStatus == 'true' || row.interfaceStatus == '' ? '<i class="el-icon-check" style="color: #32cd32;font-size: 20px;font-weight: 800"></i>' : '<i class="el-icon-close" style="color: #ff0000;font-size: 20px;font-weight: 800"></i>'
}
},
]
}
}
},
- computed:{
- ...mapGetters([ "permission"]),
+ computed: {
+ ...mapGetters(["permission"]),
permissionList() {
return {
addBtn: false,
@@ -153,7 +274,39 @@
};
}
},
+ created() {
+ this.onLoad(this.page);
+ },
methods: {
+ rowView(row) {
+ this.loading = true;
+ gridLogeDetail({oid: row.oid}).then(res => {
+ console.log(res)
+ if (res.data.data) {
+ this.loading = false
+ this.$refs.crud.rowView(res.data.data)
+ }
+ })
+ },
+ dockingGetList(val) {
+ this.data = val.records;
+ this.page.pageSize = val.size;
+ this.page.currentPage = val.current;
+ this.page.total = val.total;
+ },
+ async cellDbClick(row, column, cell, event) {
+ for (const key in row) {
+ if (key === column.property) {
+ this.value = row[key];
+ }
+ }
+ try {
+ await this.$copyText(this.value);
+ this.$message.success('澶嶅埗鎴愬姛');
+ } catch (error) {
+ this.$message.warning('澶嶅埗澶辫触');
+ }
+ },
searchReset() {
this.query = {};
this.onLoad(this.page);
@@ -173,28 +326,37 @@
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
+ this.$refs.dockingSearch.SaveSearchHandler();
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
+ this.$refs.dockingSearch.SaveSearchHandler();
},
refreshChange() {
- this.onLoad(this.page);
+ const page = {
+ pageSize: 20,
+ currentPage: 1,
+ total: 0
+ };
+ this.page = page;
+ this.formInline = { type: '', cut: '', text: '',Date: '', state: ''}
+ this.onLoad(page);
},
- onLoad(page, params={}) {
+ onLoad(page, params = {}) {
this.loading = true;
- var query={}
+ var queryCondition = {}
if (this.query) {
for (var key in this.query) {
- query['conditionMap["' + key + '"]'] = this.query[key];
+ queryCondition['conditionMap["' + key + '"]'] = this.query[key];
}
}
- getList(page.currentPage, page.pageSize, Object.assign(params,this.params, query,this.query)).then(res => {
+ getLogoList(page.currentPage, page.pageSize, 'createTime', 'desc', Object.assign(params, this.params, queryCondition, this.query),).then(res => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
this.selectionClear();
- }).catch(error=>{
+ }).catch(error => {
this.$message.error(error);
this.loading = false;
});
@@ -204,6 +366,21 @@
}
</script>
-<style scoped>
+<style lang="scss" scoped>
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/deep/ .el-table__body-wrapper::-webkit-scrollbar {
+ height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+ background: white;
+ border: white;
+ width: 10px;
+}
+
+// 婊氬姩鏉$殑婊戝潡
+/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+ background-color: #ececec;
+ border-radius: 20px;
+ border: #ececec;
+}
</style>
--
Gitblit v1.10.0