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

perf: 优化

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