提交 67072e65 authored 作者: 龙菲's avatar 龙菲

修改登录页;增加文创和文献的提交loading

上级 e364dd0d
差异被折叠。
...@@ -62,7 +62,7 @@ export default { ...@@ -62,7 +62,7 @@ export default {
[{ font: [] }], // 字体种类-----[{ font: [] }] [{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }] [{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean'] ["clean"], // 清除文本格式-----['clean']
["image"], // 链接、图片、视频-----['link', 'image', 'video'] // ["image"], // 链接、图片、视频-----['link', 'image', 'video']
]; ];
return { return {
content: this.value, //内容 content: this.value, //内容
......
...@@ -28,6 +28,22 @@ Vue.use(ElementUI) ...@@ -28,6 +28,22 @@ Vue.use(ElementUI)
Vue.config.productionTip = false Vue.config.productionTip = false
// 自定义指令,防止用户多次提交,点击一次后禁用,持续两秒
Vue.directive('preventReClick', {
inserted(el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 2000)
}
})
}
});
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,
......
...@@ -118,26 +118,30 @@ export function previewFile(href, previewName) { ...@@ -118,26 +118,30 @@ export function previewFile(href, previewName) {
* @param typeSuffix 文件后缀 * @param typeSuffix 文件后缀
*/ */
export function downloadBlob(url, fileName, typeSuffix) { export function downloadBlob(url, fileName, typeSuffix) {
axios({ return new Promise((resolve,reject)=>{
url, axios({
method: 'get', url,
responseType: 'blob', method: 'get',
headers: { responseType: 'blob',
'authorization': getToken() headers: {
} 'authorization': getToken()
}). }
then(response => { }).
const blob = new Blob([response.data]) then(response => {
const link = document.createElement('a') const blob = new Blob([response.data])
link.href = URL.createObjectURL(blob) const link = document.createElement('a')
if (typeSuffix) { link.href = URL.createObjectURL(blob)
link.download = fileName + '.' + typeSuffix if (typeSuffix) {
} else { link.download = fileName + '.' + typeSuffix
link.download = fileName } else {
} link.download = fileName
link.click() }
URL.revokeObjectURL(link.href) link.click()
}).catch(err => { URL.revokeObjectURL(link.href)
console.error(err); resolve()
}).catch(err => {
console.error(err);
reject(err)
})
}) })
}; };
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
style="width: 100%" style="width: 100%"
filterable filterable
> >
<el-option <el-option
v-for="(value, key) in dicts.culturalRelicSourceWay" v-for="(value, key) in dicts.culturalRelicSourceWay"
:key="key" :key="key"
:label="value" :label="value"
...@@ -159,7 +159,6 @@ ...@@ -159,7 +159,6 @@
> >
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否上架" :label-width="formLabelWidth"> <el-form-item label="是否上架" :label-width="formLabelWidth">
...@@ -261,7 +260,11 @@ ...@@ -261,7 +260,11 @@
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancelForm">取 消</el-button> <el-button @click="cancelForm">取 消</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading" <el-button
type="primary"
@click="handleSubmit"
:loading="loading"
preventReClick
>确定<i class="el-icon-circle-check" style="margin-left: 5px"></i >确定<i class="el-icon-circle-check" style="margin-left: 5px"></i
></el-button> ></el-button>
</div> </div>
...@@ -442,7 +445,7 @@ export default { ...@@ -442,7 +445,7 @@ export default {
await this.$store.dispatch("dict/getDictList", [ await this.$store.dispatch("dict/getDictList", [
"culturalRelicLevel", "culturalRelicLevel",
"culturalRelicType", "culturalRelicType",
"culturalRelicSourceWay" "culturalRelicSourceWay",
]); ]);
let res = await this.$store.dispatch("dict/getDictTree", [ let res = await this.$store.dispatch("dict/getDictTree", [
...@@ -739,32 +742,10 @@ export default { ...@@ -739,32 +742,10 @@ export default {
.relate { .relate {
flex: 1; flex: 1;
} }
.dialog-footer {
display: flex;
align-items: flex-end;
margin: 20px 0;
}
}
.upload-box {
background-color: #fbfdff;
border: 1px dashed #c0ccda;
border-radius: 6px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 148px;
height: 148px;
line-height: 146px;
vertical-align: top;
text-align: center;
margin: 0 8px 8px 0;
i {
font-size: 28px;
color: #8c939d;
}
} }
.dialog-footer {
.video-lists {
display: flex; display: flex;
align-items: flex-end;
margin: 20px 0;
} }
</style> </style>
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<el-dialog <el-dialog
:visible="dialogVisible" :visible="dialogVisible"
width="40%" width="40%"
style="height: 98%"
:before-close="handleClose" :before-close="handleClose"
top="5vh" top="5vh"
lock-scroll lock-scroll
...@@ -11,74 +10,77 @@ ...@@ -11,74 +10,77 @@
<div class="divider"></div> <div class="divider"></div>
<div class="label">{{ title }}</div> <div class="label">{{ title }}</div>
</div> </div>
<div class="dialog-content"> <div class="el-dialog-div">
<el-form :model="dialogForm" class="basic-info"> <div class="dialog-content">
<el-form-item label="名称" :label-width="formLabelWidth"> <el-form
<el-input :model="dialogForm"
v-model="dialogForm.name" class="basic-info"
autocomplete="off" ref="form"
placeholder="请输入文献名称" :rules="rules"
></el-input> >
</el-form-item> <el-form-item label="名称" :label-width="formLabelWidth" prop="name">
<el-form-item label="作者" :label-width="formLabelWidth"> <el-input
<el-input v-model="dialogForm.name"
v-model="dialogForm.authors" autocomplete="off"
autocomplete="off" placeholder="请输入文献名称"
placeholder="请输入作者" ></el-input>
></el-input> </el-form-item>
</el-form-item> <el-form-item label="作者" :label-width="formLabelWidth">
<el-form-item label="文献来源" :label-width="formLabelWidth"> <el-input
<el-input v-model="dialogForm.authors"
v-model="dialogForm.source" autocomplete="off"
autocomplete="off" placeholder="请输入作者"
placeholder="请输入文献来源" ></el-input>
></el-input> </el-form-item>
</el-form-item> <el-form-item label="文献来源" :label-width="formLabelWidth">
<el-form-item label="出版/发布日期" :label-width="formLabelWidth"> <el-input
<el-date-picker v-model="dialogForm.source"
style="width: 100%" autocomplete="off"
v-model="dialogForm.date" placeholder="请输入文献来源"
type="date" ></el-input>
placeholder="请选择出版/发布日期" </el-form-item>
value-format="yyyy-MM-dd" <el-form-item label="出版/发布日期" :label-width="formLabelWidth">
> <el-date-picker
</el-date-picker> style="width: 100%"
</el-form-item> v-model="dialogForm.date"
type="date"
placeholder="请选择出版/发布日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="状态" :label-width="formLabelWidth"> <el-form-item label="状态" :label-width="formLabelWidth">
<el-switch v-model="status"> </el-switch> <el-switch v-model="status"> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="文件" :label-width="formLabelWidth"> <el-form-item label="文件" :label-width="formLabelWidth">
<ManualUploader <ManualUploader
:files="files" :files="files"
:fileLimit="1" :fileLimit="1"
:fileSize="50" :fileSize="50"
listType="text" listType="text"
<<<<<<< HEAD :fileType="['pdf']"
:fileType="['pdf','ttf']" ref="pdf"
======= />
:fileType="['pdf']" </el-form-item>
>>>>>>> f07b1c1b191bef418ce077a9c7b4d53fd7b72cee <el-form-item label="备注" :label-width="formLabelWidth">
ref="pdf" <el-input
/> type="textarea"
</el-form-item> placeholder="请输入备注"
<el-form-item label="备注" :label-width="formLabelWidth"> v-model="dialogForm.remark"
<el-input maxlength="600"
type="textarea" show-word-limit
placeholder="请输入备注" >
v-model="dialogForm.remark" </el-input>
maxlength="600" </el-form-item>
show-word-limit </el-form>
> </div>
</el-input> <div class="dialog-footer">
</el-form-item> <el-button @click="cancelForm">取 消</el-button>
</el-form> <el-button type="primary" @click="handleSubmit"
</div> >确定<i class="el-icon-circle-check" style="margin-left: 5px"></i
<div class="dialog-footer"> ></el-button>
<el-button @click="cancelForm">取 消</el-button> </div>
<el-button type="primary" @click="handleSubmit"
>确定<i class="el-icon-circle-check" style="margin-left: 5px"></i
></el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -147,64 +149,84 @@ export default { ...@@ -147,64 +149,84 @@ export default {
status: true, status: true,
files: [], //文献文件 files: [], //文献文件
dialogVisible: false, dialogVisible: false,
rules: {
name: [
{
required: true,
message: "请输入文献名称",
trigger: "blur",
},
],
},
}; };
}, },
methods: { methods: {
handlePreview({ type, file }) {
console.log(type, file);
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
// 取消编辑 // 取消编辑
cancelForm() { cancelForm() {
this.$emit("handleClose"); this.$emit("handleClose");
this.faceImage = []; this.reset();
}, },
async handleSubmit() { resetChildData() {
let params = JSON.parse(JSON.stringify(this.dialogForm)); this.files = [];
// 回填文件 this.$refs.form.resetFields();
let file = this.$refs.pdf.getFiles();
let formData = new FormData();
if (file[0].status == "ready") {
formData.append("files", file[0].raw);
let upLoadRes = await uploadFile(formData);
if (upLoadRes.code == 0) {
params.pdfFile = upLoadRes.data[0].fileId;
} else {
this.$message.error("上传失败!:" + upLoadRes.data.msg);
}
} else if (file[0].status == "success") {
params.pdfFile = file[0].fileId;
}
// 修改状态
params.status = this.status ? 1 : 0;
if (params.literatureId) {
let res = await editLiterature(params);
if (res.code == 0) {
this.$message.success("修改成功!");
this.reload();
}
} else {
let res = await addLiterature(params);
if (res.code == 0) {
this.$message.success("添加成功!");
this.reload();
}
}
}, },
reload() {
this.$emit("refresh"); reloadParent() {
this.$emit("handleClose"); this.$emit("handleClose");
this.files = []; this.$emit("reloadParent");
}, },
handleSubmit() {
let that = this;
this.$refs.form.validate(async (valid) => {
if (valid) {
let params = JSON.parse(JSON.stringify(that.dialogForm));
// 回填文件
let file = that.$refs.pdf.getFiles();
let formData = new FormData();
if (file.length > 0) {
if (file[0].status == "ready") {
formData.append("files", file[0].raw);
let upLoadRes = await uploadFile(formData);
if (upLoadRes.code == 0) {
params.pdfFile = upLoadRes.data[0].fileId;
} else {
that.$message.error("上传失败!:" + upLoadRes.data.msg);
}
} else if (file[0].status == "success") {
params.pdfFile = file[0].fileId;
}
} else {
params.pdfFile = "";
}
// 修改状态
params.status = that.status ? 1 : 0;
if (params.literatureId) {
let res = await editLiterature(params);
if (res.code == 0) {
that.$message.success("修改成功!");
that.reloadParent();
that.resetChildData();
}
} else {
let res = await addLiterature(params);
if (res.code == 0) {
that.$message.success("添加成功!");
that.reloadParent();
that.resetChildData();
}
}
}
});
},
handleClose(done) { handleClose(done) {
this.$confirm("确认关闭?") this.$confirm("确认关闭?")
.then((_) => { .then((_) => {
done(); done();
this.$emit("handleClose"); this.reloadParent();
this.files = []; this.resetChildData();
}) })
.catch((_) => {}); .catch((_) => {});
}, },
...@@ -225,6 +247,12 @@ export default { ...@@ -225,6 +247,12 @@ export default {
font-weight: bold; font-weight: bold;
} }
} }
.el-dialog-div {
height: 70vh;
overflow-x: hidden;
}
.dialog-content { .dialog-content {
padding: 0 32px; padding: 0 32px;
display: flex; display: flex;
...@@ -232,10 +260,13 @@ export default { ...@@ -232,10 +260,13 @@ export default {
flex: 1; flex: 1;
margin-right: 48px; margin-right: 48px;
} }
.relate {
flex: 1;
}
} }
.dialog-footer { .dialog-footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin: 20px 0;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="login-container"> <div class="login-box">
<el-form <div class="left">
ref="loginForm" <div class="logo">
:model="loginForm" <div class="logo-container">
:rules="loginRules" <img src="@/assets/imgs/login/logo.png" alt="" />
class="login-form" </div>
auto-complete="on" <div class="text">
label-position="left" <span class="ch"> 贵州博物馆精品展览展示平台管理后台</span>
> <span class="en">
<div class="title-container"> Management Background Of Guizhou Museum Boutique Exhibition
<h3 class="title">欢迎登录贵州省精品展览展示管理系统</h3> Platform</span
>
</div>
</div> </div>
</div>
<div class="login-container right">
<el-form
ref="loginForm"
:model="loginForm"
:rules="loginRules"
class="login-form"
auto-complete="on"
label-position="left"
>
<div class="title-container">
<h3 class="title">欢迎登录</h3>
</div>
<el-form-item prop="username"> <el-form-item prop="username">
<span class="svg-container"> <span class="svg-container">
<svg-icon icon-class="user" /> <svg-icon icon-class="user" />
</span> </span>
<el-input <el-input
ref="username" ref="username"
v-model="loginForm.username" v-model="loginForm.username"
placeholder="Username" placeholder="用户名"
name="username" name="username"
type="text" type="text"
tabindex="1" tabindex="1"
auto-complete="on" auto-complete="on"
/> />
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<span class="svg-container"> <span class="svg-container">
<svg-icon icon-class="password" /> <svg-icon icon-class="password" />
</span> </span>
<el-input <el-input
:key="passwordType" :key="passwordType"
ref="password" ref="password"
v-model="loginForm.password" v-model="loginForm.password"
:type="passwordType" :type="passwordType"
placeholder="Password" placeholder="密码"
name="password" name="password"
tabindex="2" tabindex="2"
auto-complete="on" auto-complete="on"
/>
<span class="show-pwd" @click="showPwd">
<svg-icon
:icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"
/> />
</span> <span class="show-pwd" @click="showPwd">
</el-form-item> <svg-icon
:icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"
/>
</span>
</el-form-item>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="16"> <el-col :span="16">
<el-form-item prop="captcha"> <el-form-item prop="captcha">
<el-input <el-input
ref="captcha" ref="captcha"
v-model="loginForm.captcha" v-model="loginForm.captcha"
placeholder="请输入验证码" placeholder="请输入验证码"
name="captcha" name="captcha"
tabindex="3" tabindex="3"
auto-complete="on" auto-complete="on"
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
/>
</el-form-item>
</el-col>
<el-col :span="8" class="captcha">
<img
v-if="requestCodeSuccess"
style="margin-top: 2px"
:src="captchaImgSrc"
@click="handleGetCaptcha"
/> />
</el-form-item> <img
</el-col> v-else
<el-col :span="8" class="captcha"> style="margin-top: 2px"
<img src="@/assets/404_images/checkcode.png"
v-if="requestCodeSuccess" @click="handleGetCaptcha"
style="margin-top: 2px" />
:src="captchaImgSrc" </el-col>
@click="handleGetCaptcha" </el-row>
/>
<img
v-else
style="margin-top: 2px"
src="@/assets/404_images/checkcode.png"
@click="handleGetCaptcha"
/>
</el-col>
</el-row>
<el-button <el-button
:loading="loading" :loading="loading"
type="primary" type="primary"
style="width: 100%; margin-bottom: 30px" style="width: 100%; margin-bottom: 30px"
@click.native.prevent="handleLogin" @click.native.prevent="handleLogin"
>登录</el-button >登录</el-button
> >
</el-form> </el-form>
</div>
<div class="footer">贵州省文化和旅游厅版权所有</div>
</div> </div>
</template> </template>
...@@ -98,14 +115,14 @@ export default { ...@@ -98,14 +115,14 @@ export default {
loginForm: { loginForm: {
username: "", username: "",
password: "", password: "",
captcha:'' captcha: "",
}, },
loginRules: { loginRules: {
username: [ username: [
{ required: true, trigger: "blur", message: "请输入用户名" }, { required: true, trigger: "blur", message: "请输入用户名" },
], ],
password: [{ required: true, trigger: "blur", message: "请输入密码" }], password: [{ required: true, trigger: "blur", message: "请输入密码" }],
captcha: [{ required: true, trigger: "blur", message: "请输入验证码" } ], captcha: [{ required: true, trigger: "blur", message: "请输入验证码" }],
}, },
loading: false, loading: false,
passwordType: "password", passwordType: "password",
...@@ -156,7 +173,7 @@ export default { ...@@ -156,7 +173,7 @@ export default {
this.loading = true; this.loading = true;
this.$store this.$store
.dispatch("user/login", this.loginForm) .dispatch("user/login", this.loginForm)
.then(async() => { .then(async () => {
// debugger // debugger
// await this.$store.dispatch('user/getMenuList') // await this.$store.dispatch('user/getMenuList')
this.$router.push({ path: this.redirect || "/" }); this.$router.push({ path: this.redirect || "/" });
...@@ -202,10 +219,11 @@ $cursor: #fff; ...@@ -202,10 +219,11 @@ $cursor: #fff;
-webkit-appearance: none; -webkit-appearance: none;
border-radius: 0px; border-radius: 0px;
padding: 12px 5px 12px 15px; padding: 12px 5px 12px 15px;
color: $light_gray; // color: $light_gray;
color: #333;
height: 47px; height: 47px;
caret-color: $cursor; // caret-color: $cursor;
caret-color: #333;
&:-webkit-autofill { &:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important; box-shadow: 0 0 0px 1000px $bg inset !important;
-webkit-text-fill-color: $cursor !important; -webkit-text-fill-color: $cursor !important;
...@@ -214,8 +232,10 @@ $cursor: #fff; ...@@ -214,8 +232,10 @@ $cursor: #fff;
} }
.el-form-item { .el-form-item {
border: 1px solid rgba(255, 255, 255, 0.1); // border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(0, 0, 0, 0.1); // background: rgba(0, 0, 0, 0.1);
border: 2px solid #e0e7ff;
background: transparent;
border-radius: 5px; border-radius: 5px;
color: #454545; color: #454545;
} }
...@@ -226,20 +246,74 @@ $cursor: #fff; ...@@ -226,20 +246,74 @@ $cursor: #fff;
$bg: #2d3a4b; $bg: #2d3a4b;
$dark_gray: #889aa4; $dark_gray: #889aa4;
$light_gray: #eee; $light_gray: #eee;
.login-box {
display: flex;
height: 100vh;
width: 100%;
overflow: hidden;
background-image: url("~@/assets/imgs/login/bg.png");
background-size: 100% 100%;
background-repeat: no-repeat;
box-sizing: border-box;
position: relative;
}
.left,
.right {
width: 50%;
height: 100%;
}
.left {
padding: 80px 0 0 100px;
.logo {
display: flex;
.logo-container {
width: 140px;
height: 140px;
margin-right: 4px;
img {
width: 100%;
}
}
.ch {
color: #fff;
font-size: 38px;
display: inline-block;
margin: 6px 0 10px;
letter-spacing: 2px;
}
.en {
color: #fff;
font-size: 20px;
display: inline-block;
letter-spacing: 1px;
}
}
}
.login-container { .login-container {
min-height: 100%; min-height: 100%;
width: 100%; // width: 100%;
background-color: $bg; // background-color: $bg;
overflow: hidden; overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
.login-form { .login-form {
position: relative; position: relative;
width: 520px; width: 520px;
max-width: 100%; max-width: 100%;
padding: 160px 35px 0; padding: 120px 35px;
margin: 0 auto; // margin: 0 auto;
overflow: hidden; overflow: hidden;
// background: #12417b;
// background: url("~@/assets/imgs/login/login-bg.png") 100% 100% no-repeat;
background-color: #fff;
border-radius: 16px;
box-shadow: 2px 6px 6px 2px rgba(0, 0, 0, 0.1);
} }
.tips { .tips {
...@@ -267,7 +341,8 @@ $light_gray: #eee; ...@@ -267,7 +341,8 @@ $light_gray: #eee;
.title { .title {
font-size: 26px; font-size: 26px;
color: $light_gray; // color: $light_gray;
color: #333;
margin: 0px auto 40px auto; margin: 0px auto 40px auto;
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
...@@ -294,4 +369,19 @@ $light_gray: #eee; ...@@ -294,4 +369,19 @@ $light_gray: #eee;
} }
} }
} }
.el-button--primary {
background-color: #1d63c3;
color: #fff;
&:hover {
background-color: rgba($color: #1d63c3, $alpha: 0.8);
}
}
.footer {
position: absolute;
bottom: 40px;
left: 50%;
transform: translateX(-50%);
}
</style> </style>
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
<el-dialog <el-dialog
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="40%" width="40%"
style="height: 98%"
:before-close="handleClose" :before-close="handleClose"
top="5vh" top="2vh"
lock-scroll lock-scroll
v-loading="submitLoading" v-loading="submitLoading"
element-loading-background="rgba(0, 0, 0, 0.5)" element-loading-background="rgba(0, 0, 0, 0.5)"
...@@ -14,69 +13,71 @@ ...@@ -14,69 +13,71 @@
<div class="divider"></div> <div class="divider"></div>
<div class="label">{{ title }}</div> <div class="label">{{ title }}</div>
</div> </div>
<div class="dialog-content"> <div class="el-dialog-div">
<el-form :model="dialogForm" class="basic-info"> <div class="dialog-content">
<el-form-item label="名称" :label-width="formLabelWidth"> <el-form :model="dialogForm" class="basic-info">
<el-input <el-form-item label="名称" :label-width="formLabelWidth">
v-model="dialogForm.title" <el-input
autocomplete="off" v-model="dialogForm.title"
placeholder="请输入名称" autocomplete="off"
></el-input> placeholder="请输入名称"
</el-form-item> ></el-input>
<el-form-item label="所属博物馆" :label-width="formLabelWidth"> </el-form-item>
<el-cascader <el-form-item label="所属博物馆" :label-width="formLabelWidth">
style="width: 100%" <el-cascader
v-model="dialogForm.deptId" style="width: 100%"
:options="orgTreeData" v-model="dialogForm.deptId"
:props="optionProps" :options="orgTreeData"
placeholder="请选择所属博物馆" :props="optionProps"
:key="pidModalKey" placeholder="请选择所属博物馆"
filterable :key="pidModalKey"
> filterable
</el-cascader> >
</el-form-item> </el-cascader>
<el-form-item label="所属地" :label-width="formLabelWidth"> </el-form-item>
<el-cascader <el-form-item label="所属地" :label-width="formLabelWidth">
style="width: 100%" <el-cascader
v-model="dialogForm.regionCode" style="width: 100%"
:options="regionTree" v-model="dialogForm.regionCode"
:props="regionOptionProps" :options="regionTree"
placeholder="请选择所属地" :props="regionOptionProps"
:key="regionCodeModalKey" placeholder="请选择所属地"
filterable :key="regionCodeModalKey"
> filterable
</el-cascader> >
</el-form-item> </el-cascader>
</el-form-item>
<el-form-item label="展览介绍" :label-width="formLabelWidth"> <el-form-item label="展览介绍" :label-width="formLabelWidth">
<VueQuillEditor <VueQuillEditor
ref="VueQuillEditor" ref="VueQuillEditor"
v-model="dialogForm.intro" v-model="dialogForm.intro"
:placeholder="'请输入产品介绍'" :placeholder="'请输入产品介绍'"
/> />
</el-form-item> </el-form-item>
<el-form-item label="上架" :label-width="formLabelWidth"> <el-form-item label="上架" :label-width="formLabelWidth">
<el-switch v-model="status"> </el-switch> <el-switch v-model="status"> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="文创图片" :label-width="formLabelWidth"> <el-form-item label="文创图片" :label-width="formLabelWidth">
<ManualUploader <ManualUploader
:files="images" :files="images"
:fileLimit="6" :fileLimit="6"
:fileSize="50" :fileSize="50"
listType="picture-card" listType="picture-card"
:fileType="['png', 'jpeg', 'jpg','webp']" :fileType="['png', 'jpeg', 'jpg', 'webp']"
ref="images" ref="images"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancelForm">取 消</el-button> <el-button @click="cancelForm">取 消</el-button>
<el-button type="primary" @click="handleSubmit" <el-button type="primary" @click="handleSubmit"
>确定<i class="el-icon-circle-check" style="margin-left: 5px"></i >确定<i class="el-icon-circle-check" style="margin-left: 5px"></i
></el-button> ></el-button>
</div>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -231,7 +232,7 @@ export default { ...@@ -231,7 +232,7 @@ export default {
}); });
}, },
async handleSubmit() { async handleSubmit() {
// this.submitLoading = true; this.submitLoading = true;
let params = { ...this.dialogForm }; let params = { ...this.dialogForm };
let deleteFileArr = []; let deleteFileArr = [];
let oldImageIds = []; let oldImageIds = [];
...@@ -295,21 +296,23 @@ export default { ...@@ -295,21 +296,23 @@ export default {
} }
}); });
} }
// console.log("deleteFileArr", deleteFileArr);
// return; if (deleteFileArr.length > 0) {
await deleteFiles(deleteFileArr);
}
let res = await updateCcProduct(params); let res = await updateCcProduct(params);
if (res.code == 0) { if (res.code == 0) {
this.$message.success("修改成功!"); this.$message.success("修改成功!");
this.reload(); this.reload();
} this.submitLoading = false;
if (deleteFileArr.length > 0) {
await deleteFiles(deleteFileArr);
} }
} else { } else {
let res = await addCcProduct(params); let res = await addCcProduct(params);
if (res.code == 0) { if (res.code == 0) {
this.$message.success("添加成功!"); this.$message.success("添加成功!");
this.reload(); this.reload();
this.submitLoading = false;
} }
} }
}, },
...@@ -344,6 +347,12 @@ export default { ...@@ -344,6 +347,12 @@ export default {
font-weight: bold; font-weight: bold;
} }
} }
.el-dialog-div {
height: 80vh;
overflow-x: hidden;
}
.dialog-content { .dialog-content {
padding: 0 32px; padding: 0 32px;
display: flex; display: flex;
...@@ -354,13 +363,13 @@ export default { ...@@ -354,13 +363,13 @@ export default {
.relate { .relate {
flex: 1; flex: 1;
} }
}
.dialog-footer {
display: flex;
justify-content: flex-end;
} }
.dialog-footer {
display: flex;
align-items: flex-end;
margin: 20px;
}
.upload-box { .upload-box {
background-color: #fbfdff; background-color: #fbfdff;
border: 1px dashed #c0ccda; border: 1px dashed #c0ccda;
...@@ -378,8 +387,4 @@ export default { ...@@ -378,8 +387,4 @@ export default {
color: #8c939d; color: #8c939d;
} }
} }
.video-lists {
display: flex;
}
</style> </style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论