flx:优化

This commit is contained in:
Rain_ 2025-09-29 09:16:14 +08:00
parent a33fc66663
commit 67323cf8df
7 changed files with 2653 additions and 2375 deletions

View File

@ -1,2 +1,8 @@
[0524/103228.221:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2) [0530/113505.640:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/171244.522:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2) [0530/113508.674:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.489:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.943:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090447.805:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090447.874:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090448.024:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090501.978:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1010,7 +1010,7 @@
" "
> >
<el-input <el-input
v-model="currentVideoTypeDetail.password" v-model="currentVideoTypeDetail.port"
:placeholder="$t('message.videoManage.placeholder')" :placeholder="$t('message.videoManage.placeholder')"
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -1917,8 +1917,8 @@ export default {
this.getProjectVideoConfigList(); this.getProjectVideoConfigList();
this.Popup.accountServer = true; this.Popup.accountServer = true;
this.currentVideoTypeDetail.account = this.currentVideoTypeDetail.account; this.currentVideoTypeDetail.account = this.currentVideoTypeDetail.account;
this.currentVideoTypeDetail.password = this.currentVideoTypeDetail.port =
this.currentVideoTypeDetail.password; this.currentVideoTypeDetail.port;
this.currentVideoTypeDetail.appId = this.currentVideoTypeDetail.appId; this.currentVideoTypeDetail.appId = this.currentVideoTypeDetail.appId;
this.currentVideoTypeDetail.appSecret = this.currentVideoTypeDetail.appSecret =
this.currentVideoTypeDetail.appSecret; this.currentVideoTypeDetail.appSecret;
@ -2237,12 +2237,31 @@ export default {
this.addGroupDialog = true; this.addGroupDialog = true;
this.addGroupForm = JSON.parse(JSON.stringify(item)); this.addGroupForm = JSON.parse(JSON.stringify(item));
this.$nextTick(() => { this.$nextTick(() => {
if (this.addGroupForm.parentObj) { const find = this.findNodeById(this.videoTreeData, item.parentId);
this.selectVal = JSON.parse(this.addGroupForm.parentObj).groupName; if(find) {
this.selectVal = find.groupName;
this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId); this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId);
} }
// if (this.addGroupForm.parentObj) {
// this.selectVal = JSON.parse(this.addGroupForm.parentObj).groupName;
// this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId);
// }
}); });
}, },
findNodeById(node, id) {
const find = node.find((item) => item.id === id);
if (find) {
return find;
}
for (let child of node) {
if (child.children && child.children.length > 0) {
const found = this.findNodeById(child.children, id);
if (found) return found;
}
}
return null;
},
deleteGroupFn(item) { deleteGroupFn(item) {
// //
this.$confirm( this.$confirm(
@ -2607,17 +2626,23 @@ export default {
? obj.enterpriseIds.split(",") ? obj.enterpriseIds.split(",")
: []; : [];
this.$nextTick(() => { this.$nextTick(() => {
if (this.currentVideoTypeDetail.parentObj) { const find = this.findNodeById(this.videoTreeData, obj.groupId);
this.selectFormVal = JSON.parse( if(find) {
this.currentVideoTypeDetail.parentObj this.selectFormVal = find.groupName;
).groupName; this.$refs.groupTree.setCurrentKey(this.currentVideoTypeDetail.groupId);
this.selectFormTreeData = JSON.parse(
this.currentVideoTypeDetail.parentObj
);
this.$refs.groupFormTree.setCurrentKey(
this.currentVideoTypeDetail.parentId
);
} }
// if (this.currentVideoTypeDetail.parentObj) {
// this.selectFormVal = JSON.parse(
// this.currentVideoTypeDetail.parentObj
// ).groupName;
// this.selectFormTreeData = JSON.parse(
// this.currentVideoTypeDetail.parentObj
// );
// this.$refs.groupFormTree.setCurrentKey(
// this.currentVideoTypeDetail.parentId
// );
// }
}); });
console.log("编辑内容", obj); console.log("编辑内容", obj);
}, },

View File

@ -429,7 +429,7 @@
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="operation-style"> <div class="operation-style">
<el-button @click.stop="previewUrl(scope.row)" type="text"> <el-button @click.stop="previewFn(scope.row)" type="text">
<i class="el-icon-view"></i> <i class="el-icon-view"></i>
预览 预览
</el-button> </el-button>
@ -476,7 +476,7 @@
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="operation-style"> <div class="operation-style">
<el-button @click.stop="previewUrl(scope.row)" type="text"> <el-button @click.stop="previewFn(scope.row)" type="text">
<i class="el-icon-view"></i> <i class="el-icon-view"></i>
预览 预览
</el-button> </el-button>

View File

@ -1,271 +1,278 @@
<template> <template>
<div class="main-content"> <div class="main-content">
<div class="form-content"> <div class="form-content">
<el-form <el-form
:model="ruleForm" :model="ruleForm"
:rules="rules" :rules="rules"
ref="ruleForm" ref="ruleForm"
label-width="120px" label-width="120px"
class="demo-ruleForm" class="demo-ruleForm"
> >
<el-form-item label="当前账号:" class="defaultStyle"> <el-form-item label="当前账号:" class="defaultStyle">
<span style="color: #5181f6">{{ <span style="color: #5181f6">{{
$store.state.userInfo.account $store.state.userInfo.account
}}</span> }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="'头像'" prop="avatar"> <el-form-item :label="'头像'" prop="avatar">
<el-upload <el-upload
class="avatar-uploader" class="avatar-uploader"
:action="$store.state.UPLOADURL" :action="$store.state.UPLOADURL"
name="files" name="files"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
> >
<!-- <img <!-- <img
v-if="this.ruleForm.avatar" v-if="this.ruleForm.avatar"
:src="$store.state.FILEURL + this.ruleForm.avatar" :src="$store.state.FILEURL + this.ruleForm.avatar"
class="avatar" class="avatar"
/> --> /> -->
<el-image <el-image
v-if="this.ruleForm.avatar" v-if="this.ruleForm.avatar"
:src="$store.state.FILEURL + this.ruleForm.avatar" :src="$store.state.FILEURL + this.ruleForm.avatar"
class="avatar" class="avatar"
> >
<!-- <div slot="error" class="image-slot"> <!-- <div slot="error" class="image-slot">
<i class="el-icon-plus" style="font-size: 28px;"></i> <i class="el-icon-plus" style="font-size: 28px;"></i>
</div> --> </div> -->
</el-image> </el-image>
<div class="avatar-uploader-icon" v-else> <div class="avatar-uploader-icon" v-else>
<i class="el-icon-plus icon-item"></i> <i class="el-icon-plus icon-item"></i>
<span>上传头像</span> <span>上传头像</span>
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="姓名:" prop="realName"> <el-form-item label="姓名:" prop="realName">
<el-input <el-input
v-model="ruleForm.realName" v-model="ruleForm.realName"
placeholder="请输入内容" placeholder="请输入内容"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="性别:" prop="sex"> <el-form-item label="性别:" prop="sex">
<el-radio-group v-model="ruleForm.sex"> <el-radio-group v-model="ruleForm.sex">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio> <el-radio :label="2"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="邮箱:" prop="personMail"> <el-form-item label="邮箱:" prop="personMail">
<el-input <el-input
v-model="ruleForm.personMail" v-model="ruleForm.personMail"
placeholder="请输入内容" placeholder="请输入内容"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="电话号码:" prop="userTel"> <el-form-item label="电话号码:" prop="userTel">
<el-input <el-input
v-model="ruleForm.userTel" v-model="ruleForm.userTel"
placeholder="请输入内容" placeholder="请输入内容"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" plain @click="resetForm('ruleForm')" <el-button
>清空</el-button type="primary"
> plain
<el-button type="primary" @click="submitForm('ruleForm')" @click="resetForm('ruleForm')"
>确认</el-button >清空</el-button
> >
</el-form-item> <el-button type="primary" @click="submitForm('ruleForm')"
</el-form> >确认</el-button
>
</el-form-item>
</el-form>
</div>
<el-dialog
:modal-append-to-body="false"
:visible.sync="dialogVisible"
width="50%"
title="查看大图"
>
<img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
</div> </div>
<el-dialog
:modal-append-to-body="false"
:visible.sync="dialogVisible"
width="50%"
title="查看大图"
>
<img width="100%" :src="dialogImageUrl" alt="" />
</el-dialog>
</div>
</template> </template>
<script> <script>
import { import {
editSystemUserApi, editSystemUserApi,
getSystemUserInfoApi, getSystemUserInfoApi,
} from "@/assets/js/api/account"; } from "@/assets/js/api/account";
export default { export default {
data() { data() {
return { return {
ruleForm: { ruleForm: {
avatar: "", avatar: "",
realName: "", realName: "",
personMail: "", personMail: "",
userTel: "", userTel: "",
sex: 1, sex: 1,
}, },
rules: { rules: {
avatar: [ avatar: [
{ {
required: true, required: true,
message: "请选择", message: "请选择",
trigger: "change", trigger: "change",
}, },
], ],
realName: [ realName: [
{ {
required: true, required: true,
message: "请输入", message: "请输入",
trigger: "blur", trigger: "blur",
}, },
], ],
sex: [ sex: [
{ {
required: true, required: true,
message: "请选择", message: "请选择",
trigger: "change", trigger: "change",
}, },
], ],
personMail: [ personMail: [
{ {
required: true, required: true,
type: "email", type: "email",
message: "请输入正确的邮箱格式", message: "请输入正确的邮箱格式",
trigger: "blur", trigger: "blur",
}, },
], ],
userTel: [ userTel: [
{ {
required: true, required: true,
message: "请输入正确的手机号码", message: "请输入正确的手机号码",
trigger: "blur", trigger: "blur",
pattern: /^1(3|4|5|6|7|8|9)\d{9}$/, pattern: /^1(3|4|5|6|7|8|9)\d{9}$/,
}, },
], ],
}, },
dialogImageUrl: "", dialogImageUrl: "",
dialogVisible: false, dialogVisible: false,
fileList: [], fileList: [],
}; };
},
mounted() {},
created() {
this.getSystemUserInfoFn();
},
methods: {
getSystemUserInfoFn() {
let that = this;
let requestData = {
id: this.$store.state.userInfo.userId,
};
getSystemUserInfoApi(requestData).then((res) => {
that.ruleForm = { ...res.result };
let originUserInfo = this.$store.state.userInfo;
that.$store.commit("setUserInfo", {
...originUserInfo,
...that.ruleForm
});
});
}, },
beforeAvatarUpload(file) { mounted() {},
const isImage = file.type.indexOf("image/"); created() {
const isLt2M = file.size / 1024 / 1024 < 2; this.getSystemUserInfoFn();
},
methods: {
getSystemUserInfoFn() {
let that = this;
let requestData = {
id: this.$store.state.userInfo.userId,
};
getSystemUserInfoApi(requestData).then((res) => {
that.ruleForm = { ...res.result };
let originUserInfo = this.$store.state.userInfo;
that.$store.commit("setUserInfo", {
...originUserInfo,
avatar: that.ruleForm.avatar,
realName: that.ruleForm.realName,
personMail: that.ruleForm.personMail,
userTel: that.ruleForm.userTel,
sex: that.ruleForm.sex,
});
});
},
beforeAvatarUpload(file) {
const isImage = file.type.indexOf("image/");
const isLt2M = file.size / 1024 / 1024 < 2;
if (isImage == -1) { if (isImage == -1) {
this.$message.error("上传头像只能是图片格式!"); this.$message.error("上传头像只能是图片格式!");
return false; return false;
}
if (!isLt2M) {
this.$message.error("上传头像图片大小不能超过 2MB!");
return false;
}
return true;
},
handleAvatarSuccess(res, file) {
this.ruleForm.avatar = res.data[0].imageUrl;
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let requestData = {
...this.ruleForm,
};
editSystemUserApi(requestData).then((res) => {
if (res.success) {
this.$message.success("修改成功");
this.getSystemUserInfoFn();
} }
}); if (!isLt2M) {
} else { this.$message.error("上传头像图片大小不能超过 2MB!");
console.log("error submit!!"); return false;
return false; }
} return true;
}); },
handleAvatarSuccess(res, file) {
this.ruleForm.avatar = res.data[0].imageUrl;
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let requestData = {
...this.ruleForm,
};
editSystemUserApi(requestData).then((res) => {
if (res.success) {
this.$message.success("修改成功");
this.getSystemUserInfoFn();
}
});
} else {
console.log("error submit!!");
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
}, },
resetForm(formName) {
this.$refs[formName].resetFields();
},
},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main-content { .main-content {
.form-content { .form-content {
width: 500px; width: 500px;
margin-top: 25px; margin-top: 25px;
margin-left: 75px; margin-left: 75px;
:deep() { :deep() {
.defaultStyle .el-form-item__label { .defaultStyle .el-form-item__label {
color: #5181f6; color: #5181f6;
} }
}
.imgCodeBox {
display: flex;
align-items: center;
justify-content: space-between;
img {
width: 116px;
margin-left: 12px;
cursor: pointer;
}
}
} }
.imgCodeBox {
display: flex;
align-items: center;
justify-content: space-between;
img {
width: 116px;
margin-left: 12px;
cursor: pointer;
}
}
}
} }
:deep() { :deep() {
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
border-radius: 6px; border-radius: 6px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
color: #8c939d;
width: 120px;
height: 120px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.icon-item {
font-size: 28px;
} }
} .avatar-uploader .el-upload:hover {
.avatar { border-color: #409eff;
width: 178px; }
height: 178px; .avatar-uploader-icon {
display: block; color: #8c939d;
.image-slot { width: 120px;
width: 100%; height: 120px;
height: 100%; display: flex;
display: flex; flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
.icon-item {
font-size: 28px;
}
}
.avatar {
width: 178px;
height: 178px;
display: block;
.image-slot {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
} }
}
} }
</style> </style>