Commit 1b11ea55 authored by “yiyousong”'s avatar “yiyousong”

perf: 优化

parent aac0e227
......@@ -18,6 +18,7 @@
</template>
<script>
import { pageSizeOptions } from "@/config";
export default {
name: "Pagination",
props: {
......@@ -42,7 +43,7 @@ export default {
},
pageSizes: {
type: Array,
default: () => [10, 20, 30, 40, 50, 100, 200],
default: () => pageSizeOptions,
},
background: {
type: Boolean,
......@@ -76,12 +77,14 @@ export default {
if (this.$listeners.change) {
this.$listeners.change();
}
this.$emit("currentChange", cur);
},
changeSize(size) {
this.PageSize = size;
if (this.$listeners.change) {
this.$listeners.change();
}
this.$emit("sizeChange", size);
},
},
};
......
......@@ -6,6 +6,7 @@
:data="data"
style="width: 100%"
:size="size"
:row-key="rowkey"
v-bind="$attrs"
v-on="$listeners"
>
......@@ -28,7 +29,7 @@
</el-table-column>
<el-table-column
v-else
:key="i"
:key="'a' + i"
:reserve-selection="v.reserveSelection"
:prop="v.prop"
:type="v.type"
......@@ -71,6 +72,10 @@ export default {
type: Array,
default: () => [],
},
rowkey: {
type: [String, Function],
default: "id",
},
},
data() {
return {};
......@@ -93,6 +98,27 @@ export default {
clearSelection() {
this.$refs.MyTable.clearSelection();
},
toggleAllSelection() {
this.$refs.MyTable.toggleAllSelection();
},
clearSort() {
this.$refs.MyTable.clearSort();
},
doLayout() {
this.$refs.MyTable.doLayout();
},
clearFilter() {
this.$refs.MyTable.clearFilter(...arguments);
},
sort() {
this.$refs.MyTable.sort(...arguments);
},
toggleRowExpansion() {
this.$refs.MyTable.toggleRowExpansion(...arguments);
},
setCurrentRow() {
this.$refs.MyTable.setCurrentRow(...arguments);
},
toggleRowSelection() {
this.$refs.MyTable.toggleRowSelection(...arguments);
},
......
......@@ -2,10 +2,12 @@
<div>
<el-upload
v-if="listType === 'picture' || listType === 'text'"
ref="upload"
:name="name"
:list-type="listType"
:action="action"
:multiple="multiple"
:limit="limit"
:accept="accept"
:file-list="FileList"
v-bind="$attrs"
......@@ -14,6 +16,7 @@
:on-preview="handlePreview"
:on-success="handleSuccess"
:on-remove="handleRemove"
:on-exceed="handleExceed"
>
<slot>
<el-button size="small" type="primary">点击上传</el-button>
......@@ -21,10 +24,12 @@
</el-upload>
<el-upload
v-else
ref="upload"
:name="name"
:list-type="listType"
:action="action"
:multiple="multiple"
:limit="limit"
:accept="accept"
:file-list="FileList"
v-bind="$attrs"
......@@ -33,6 +38,7 @@
:on-preview="handlePreview"
:on-success="handleSuccess"
:on-remove="handleRemove"
:on-exceed="handleExceed"
>
<slot>
<i class="el-icon-plus"></i>
......@@ -74,13 +80,13 @@
</template>
<script>
import { mapGetters } from "vuex";
export default {
name: "YUpload",
model: {
prop: "value",
event: "change",
event: "success",
},
components: {},
props: {
name: {
type: String,
......@@ -90,6 +96,10 @@ export default {
type: String,
default: "text",
},
fileList: {
type: Array,
default: () => [],
},
multiple: {
type: Boolean,
default: false,
......@@ -99,6 +109,10 @@ export default {
type: [String, Array],
default: "",
},
headers: {
type: Object,
default: () => {},
},
// 文件限制
accept: {
type: String,
......@@ -113,7 +127,7 @@ export default {
default: 1, // 0为不限制
},
// 上传文件大小限制mb 0为不限制
MB: {
maxSize: {
type: Number,
validator: (value) => {
return value >= 0;
......@@ -122,7 +136,7 @@ export default {
},
action: {
type: String,
default: "/bill/file/commonupload",
default: "/fm/file/commonupload",
},
},
......@@ -158,54 +172,55 @@ export default {
};
},
watch: {
value: {
fileList: {
handler(newValue) {
if (newValue) {
if (Array.isArray(newValue)) {
this.FileList = newValue.map((v) => {
let index = v.lastIndexOf("/");
let name = v.slice(index + 1);
return {
name,
url: v,
};
});
} else {
this.FileList = newValue.split(",").map((v) => {
let index = v.lastIndexOf("/");
let name = v.slice(index + 1);
return {
name,
url: v,
};
});
}
} else {
this.FileList = [];
}
this.initFileList(newValue);
},
deep: true,
immediate: true,
},
},
computed: {},
computed: {
...mapGetters("user", ["token"]),
Headers() {
let form = {
Authorization: this.token,
};
return {
...form,
...this.headers,
};
},
},
created() {},
methods: {
// 初始化文件列表
initFileList(fileList) {
this.FileList = fileList.map((v) => {
return {
uid: v.url,
name: v.name,
url: v.url,
status: "success",
};
});
},
// 上传成功
handleSuccess(response, file, fileList) {
this.FileList = [...fileList];
if (this.limit) {
fileList = fileList.slice(-this.limit);
}
// this.FileList = [...fileList];
if (file.status == "success") {
if (file.response && file.response.code === -1) {
let msg = file.response.msg || "上传失败";
this.$message.error(msg);
fileList = fileList.filter((file) => file.response.code !== -1);
}
if (this.limit) {
this.FileList = [...fileList].slice(-this.limit);
}
this.FileList = this.FileList.map((v) => {
fileList = fileList.map((v) => {
if (v.response) {
v.url = v.response.url;
}
......@@ -214,14 +229,15 @@ export default {
let value;
if (Array.isArray(this.value)) {
value = this.FileList.map((v) => v.url);
value = fileList.map((v) => v.url);
} else {
value = this.FileList.map((v) => v.url).join(",");
value = fileList.map((v) => v.url).join(",");
}
this.$emit("change", value);
this.$emit("success", { file, fileList });
this.$emit("success", value);
this.$emit("change", { file, fileList });
}
},
// 删除文件
handleRemove(file, fileList) {
let value;
if (Array.isArray(this.value)) {
......@@ -229,9 +245,10 @@ export default {
} else {
value = fileList.map((v) => v.url).join(",");
}
this.$emit("change", value);
this.$emit("success", { file, fileList });
this.$emit("success", value);
this.$emit("change", { file, fileList });
},
// 上传之前
beforeUpload(file) {
let isType = true;
let isExceed = true;
......@@ -247,11 +264,11 @@ export default {
this.$message.error(`请上传${msg}文件!`);
}
if (this.MB) {
isExceed = file.size / 1024 / 1024 <= this.MB;
if (this.maxSize) {
isExceed = file.size / 1024 / 1024 <= this.maxSize;
}
if (!isExceed) {
this.$message.error(`文件大小不能超过${this.MB}MB!`);
this.$message.error(`文件大小不能超过${this.maxSize}MB!`);
}
if (isType && isExceed) {
resolve(file);
......@@ -286,10 +303,28 @@ export default {
document.body.removeChild(a);
}
},
// 超出上传数量提示
handleExceed() {
this.$message.warning(
`文件数量超出限制,当前限制为 ${this.limit} 个文件`
);
},
closePreview() {
this.preview = false;
this.filepaths = [];
},
clearFiles() {
this.$refs.upload.clearFiles();
},
abort() {
this.$refs.upload.abort(...arguments);
},
submit() {
this.$refs.upload.submit();
},
},
beforeDestroy() {
this.$refs.upload.clearFiles();
},
};
</script>
......
......@@ -13,7 +13,7 @@
ref="form"
:model="form"
:rules="rules"
size="small"
size="medium"
label-width="100px"
>
<el-form-item label="区域" prop="areaName">
......@@ -90,9 +90,9 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -13,7 +13,7 @@
ref="form"
:model="form"
:rules="rules"
size="small"
size="medium"
label-width="130px"
>
<el-form-item label="父级菜单" prop="parentId">
......@@ -197,9 +197,9 @@
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -9,38 +9,36 @@
:close-on-click-modal="false"
top="10vh"
>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form
ref="form"
size="medium"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form-item label="参数名称" prop="name">
<el-input
size="small"
v-model="form.name"
placeholder="请输入参数名称"
></el-input>
<el-input v-model="form.name" placeholder="请输入参数名称"></el-input>
</el-form-item>
<el-form-item label="一级组织" prop="firstOrganize">
<el-input
size="small"
v-model="form.firstOrganize"
placeholder="请输入一级组织"
></el-input>
</el-form-item>
<el-form-item label="二级组织" prop="secondOrganize">
<el-input
size="small"
v-model="form.secondOrganize"
placeholder="请输入二级组织"
></el-input>
</el-form-item>
<el-form-item label="参数键" prop="paramKey">
<el-input
size="small"
v-model="form.paramKey"
placeholder="请输入参数键"
></el-input>
</el-form-item>
<el-form-item label="参数值" prop="paramValue">
<el-input
size="small"
v-model="form.paramValue"
placeholder="请输入参数值"
></el-input>
......@@ -89,9 +87,9 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -13,7 +13,7 @@
ref="form"
:model="form"
:rules="rules"
size="small"
size="medium"
label-width="100px"
>
<el-form-item label="资源名称" prop="name">
......@@ -59,9 +59,9 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
@click="handleOk"
:loading="loading"
......
......@@ -13,7 +13,7 @@
ref="form"
:model="form"
:rules="rules"
size="small"
size="medium"
label-width="100px"
>
<el-form-item label="角色名称" prop="name">
......@@ -30,9 +30,9 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -9,7 +9,7 @@
:close-on-click-modal="false"
top="10vh"
>
<el-form ref="form" :model="form" size="small" label-width="100px">
<el-form ref="form" :model="form" size="medium" label-width="100px">
<el-form-item label="角色名称">
<el-input readonly :value="roleInfo.name"></el-input>
</el-form-item>
......@@ -34,9 +34,9 @@
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
:loading="loading"
type="primary"
@click="handleOk"
......
......@@ -31,9 +31,9 @@
</el-checkbox-group>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -9,24 +9,24 @@
:close-on-click-modal="false"
top="10vh"
>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form
ref="form"
:model="form"
size="medium"
:rules="rules"
label-width="100px"
>
<el-form-item label="任务名称" prop="name">
<el-input
size="small"
v-model="form.name"
placeholder="请输入任务名称"
></el-input>
<el-input v-model="form.name" placeholder="请输入任务名称"></el-input>
</el-form-item>
<el-form-item label="关键字" prop="taskKey">
<el-input
size="small"
v-model="form.taskKey"
placeholder="请输入关键字"
></el-input>
</el-form-item>
<el-form-item label="执行服务" prop="excuteService">
<el-input
size="small"
v-model="form.excuteService"
placeholder="请输入执行服务"
></el-input>
......@@ -54,7 +54,6 @@
<el-input
disabled
v-if="form.excuteStrategy == 1"
size="small"
value="每日"
placeholder="请输入参数值"
></el-input>
......@@ -101,14 +100,12 @@
</el-form-item>
<el-form-item label="执行主机" prop="excuteHost">
<el-input
size="small"
v-model="form.excuteHost"
placeholder="请输入执行主机"
></el-input>
</el-form-item>
<el-form-item label="执行参数" prop="excuteParam">
<el-input
size="small"
v-model="form.excuteParam"
placeholder="请输入执行参数"
></el-input>
......@@ -124,9 +121,9 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button
size="small"
size="medium"
type="primary"
:loading="loading"
@click="handleOk"
......
......@@ -13,7 +13,7 @@
ref="form"
:model="form"
:rules="rules"
size="small"
size="medium"
label-width="100px"
>
<el-form-item label="角色名称" prop="roleIds">
......@@ -35,8 +35,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk"
<el-button size="medium" @click="handleRest">重 置</el-button>
<el-button size="medium" type="primary" @click="handleOk"
>确 定</el-button
>
</span>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment