sync: 同步 RuoYi-Vue-Plus(v4.3.1) 更新

This commit is contained in:
konbai
2022-12-04 22:13:46 +08:00
parent d28620ae0a
commit 72320c5cf2
44 changed files with 333 additions and 209 deletions

View File

@@ -118,7 +118,10 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="ossList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="ossList" @selection-change="handleSelectionChange"
:header-cell-class-name="handleHeaderClass"
@header-click="handleHeaderCLick"
v-if="showTable">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="对象存储主键" align="center" prop="ossId" v-if="false"/>
<el-table-column label="文件名" align="center" prop="fileName" />
@@ -135,13 +138,15 @@
v-if="!checkFileSuffix(scope.row.fileSuffix) || !previewListResource"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<el-table-column label="创建时间" align="center" prop="createTime" width="180"
sortable="custom">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="上传人" align="center" prop="createBy" />
<el-table-column label="服务商" align="center" prop="service" />
<el-table-column label="服务商" align="center" prop="service"
sortable="custom"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@@ -193,6 +198,7 @@ export default {
name: "Oss",
data() {
return {
showTable: true,
// 按钮loading
buttonLoading: false,
// 遮罩层
@@ -221,6 +227,8 @@ export default {
previewListResource: true,
// 创建时间时间范围
daterangeCreateTime: [],
// 默认排序
defaultSort: {prop: 'createTime', order: 'ascending'},
// 查询参数
queryParams: {
pageNum: 1,
@@ -262,6 +270,7 @@ export default {
this.ossList = response.rows;
this.total = response.total;
this.loading = false;
this.showTable = true;
});
},
checkFileSuffix(fileSuffix) {
@@ -289,8 +298,11 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.showTable = false;
this.daterangeCreateTime = [];
this.resetForm("queryForm");
this.queryParams.orderByColumn = this.defaultSort.prop;
this.queryParams.isAsc = this.defaultSort.order;
this.handleQuery();
},
// 多选框选中数据
@@ -299,6 +311,51 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
// 设置列的排序为我们自定义的排序
handleHeaderClass({column}) {
column.order = column.multiOrder
},
// 点击表头进行排序
handleHeaderCLick(column) {
if (column.sortable !== 'custom') {
return
}
switch (column.multiOrder) {
case 'descending':
column.multiOrder = 'ascending';
break;
case 'ascending':
column.multiOrder = '';
break;
default:
column.multiOrder = 'descending';
break;
}
this.handleOrderChange(column.property, column.multiOrder)
},
handleOrderChange(prop, order) {
let orderByArr = this.queryParams.orderByColumn ? this.queryParams.orderByColumn.split(",") : [];
let isAscArr = this.queryParams.isAsc ? this.queryParams.isAsc.split(",") : [];
let propIndex = orderByArr.indexOf(prop)
if (propIndex !== -1) {
if (order) {
//排序里已存在 只修改排序
isAscArr[propIndex] = order;
} else {
//如果order为null 则删除排序字段和属性
isAscArr.splice(propIndex, 1);//删除排序
orderByArr.splice(propIndex, 1);//删除属性
}
} else {
//排序里不存在则新增排序
orderByArr.push(prop);
isAscArr.push(order);
}
//合并排序
this.queryParams.orderByColumn = orderByArr.join(",");
this.queryParams.isAsc = isAscArr.join(",");
this.getList();
},
/** 任务日志列表查询 */
handleOssConfig() {
this.$router.push({ path: '/system/oss-config/index'})

View File

@@ -187,14 +187,14 @@
<el-form-item label="菜单权限">
<el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
<el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.menuCheckStrictly == 1" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
<el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
<el-tree
class="tree-border"
:data="menuOptions"
show-checkbox
ref="menu"
node-key="id"
:check-strictly="!form.menuCheckStrictly == 1"
:check-strictly="!form.menuCheckStrictly"
empty-text="加载中请稍候"
:props="defaultProps"
></el-tree>
@@ -231,7 +231,7 @@
<el-form-item label="数据权限" v-show="form.dataScope == 2">
<el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
<el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.deptCheckStrictly == 1" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
<el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
<el-tree
class="tree-border"
:data="deptOptions"
@@ -239,7 +239,7 @@
default-expand-all
ref="dept"
node-key="id"
:check-strictly="!form.deptCheckStrictly == 1"
:check-strictly="!form.deptCheckStrictly"
empty-text="加载中请稍候"
:props="defaultProps"
></el-tree>
@@ -433,8 +433,8 @@ export default {
status: "0",
menuIds: [],
deptIds: [],
menuCheckStrictly: 1,
deptCheckStrictly: 1,
menuCheckStrictly: true,
deptCheckStrictly: true,
remark: undefined
};
this.resetForm("form");
@@ -494,9 +494,9 @@ export default {
// 树权限(父子联动)
handleCheckedTreeConnect(value, type) {
if (type == 'menu') {
this.form.menuCheckStrictly = value ? 1: 0;
this.form.menuCheckStrictly = value ? true: false;
} else if (type == 'dept') {
this.form.deptCheckStrictly = value ? 1: 0;
this.form.deptCheckStrictly = value ? true: false;
}
},
/** 新增按钮操作 */

View File

@@ -576,8 +576,8 @@ export default {
this.form = response.data.user;
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles;
this.form.postIds = response.data.postIds;
this.form.roleIds = response.data.roleIds;
this.$set(this.form, "postIds", response.data.postIds);
this.$set(this.form, "roleIds", response.data.roleIds);
this.open = true;
this.title = "修改用户";
this.form.password = "";

View File

@@ -24,7 +24,7 @@
</el-row>
<br />
<el-row>
<el-col :lg="2" :md="2">
<el-col :lg="2" :sm="3" :xs="3">
<el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
<el-button size="small">
选择
@@ -32,19 +32,19 @@
</el-button>
</el-upload>
</el-col>
<el-col :lg="{span: 1, offset: 2}" :md="2">
<el-col :lg="{span: 1, offset: 2}" :sm="2" :xs="2">
<el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button>
</el-col>
<el-col :lg="{span: 1, offset: 1}" :md="2">
<el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
<el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button>
</el-col>
<el-col :lg="{span: 1, offset: 1}" :md="2">
<el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
<el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button>
</el-col>
<el-col :lg="{span: 1, offset: 1}" :md="2">
<el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
<el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button>
</el-col>
<el-col :lg="{span: 2, offset: 6}" :md="2">
<el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2">
<el-button type="primary" size="small" @click="uploadImg()"> </el-button>
</el-col>
</el-row>
@@ -56,6 +56,7 @@
import store from "@/store";
import { VueCropper } from "vue-cropper";
import { uploadAvatar } from "@/api/system/user";
import { debounce } from '@/utils'
export default {
components: { VueCropper },
@@ -80,7 +81,8 @@ export default {
fixedBox: true, // 固定截图框大小 不允许改变
filename: ''
},
previews: {}
previews: {},
resizeHandler: null
};
},
methods: {
@@ -91,6 +93,16 @@ export default {
// 打开弹出层结束时的回调
modalOpened() {
this.visible = true;
if (!this.resizeHandler) {
this.resizeHandler = debounce(() => {
this.refresh()
}, 100)
}
window.addEventListener("resize", this.resizeHandler)
},
// 刷新组件
refresh() {
this.$refs.cropper.refresh();
},
// 覆盖默认的上传行为
requestUpload() {
@@ -144,6 +156,7 @@ export default {
closeDialog() {
this.options.img = store.getters.avatar
this.visible = false;
window.removeEventListener("resize", this.resizeHandler)
}
}
};