Commit 70d1e421 authored by 陈明豪's avatar 陈明豪

轮播管理自测

parent 1779cf4c
...@@ -35,10 +35,7 @@ ...@@ -35,10 +35,7 @@
width="800" width="800"
append-to-body append-to-body
> >
<img <img :src="dialogImageUrl" style="display: block; max-width: 100%; margin: 0 auto" alt="" />
:src="dialogImageUrl"
style="display: block; max-width: 100%; margin: 0 auto"
>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -224,5 +221,9 @@ export default { ...@@ -224,5 +221,9 @@ export default {
opacity: 0; opacity: 0;
transform: translateY(0); transform: translateY(0);
} }
::v-deep .el-upload:focus {
border-color: #5FB54B !important;
color: #5FB54B !important;
}
</style> </style>
...@@ -11,21 +11,23 @@ ...@@ -11,21 +11,23 @@
<div> <div>
<el-form ref="form" :model="form" label-width="133px" :rules="rules"> <el-form ref="form" :model="form" label-width="133px" :rules="rules">
<el-form-item label="标题:" prop="title"> <el-form-item label="标题:" prop="title">
<el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="20" show-word-limit clearable /> <el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="12" show-word-limit clearable />
</el-form-item> </el-form-item>
<el-form-item label="轮播图:" prop="img"> <el-form-item label="轮播图:" prop="img">
<image-upload v-model="form.img" :limit="1" :is-show-tip="false" /> <image-upload v-model="form.img" :limit="1" :is-show-tip="false" file-size="20" />
</el-form-item> </el-form-item>
<el-form-item label="跳转地址:" prop="url"> <el-form-item label="跳转地址:" prop="url">
<el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="30" show-word-limit clearable /> <el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="255" show-word-limit clearable />
</el-form-item> </el-form-item>
<el-form-item label="权重:" prop="sort"> <el-form-item label="权重:" prop="sort">
<el-input-number <el-input-number
v-model="form.sort" v-model.number="form.sort"
class="weight-number" class="weight-number"
:max="9999" :max="9999"
:min="0" :min="0"
controls-position="right" controls-position="right"
:precision="0"
@blur="form.sort === undefined || form.sort === null ? form.sort = 0:form.sort"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建日期:" prop="createTime"> <el-form-item label="创建日期:" prop="createTime">
...@@ -68,6 +70,9 @@ export default { ...@@ -68,6 +70,9 @@ export default {
const search = { const search = {
sort: value sort: value
} }
if (value === 0) {
return callback(new Error('权重不能为零'))
}
// 调用后端api // 调用后端api
listBanner(search).then(Response => { listBanner(search).then(Response => {
if (Response.code === 200) { if (Response.code === 200) {
...@@ -78,6 +83,15 @@ export default { ...@@ -78,6 +83,15 @@ export default {
} }
}) })
} }
const titleTest = (rule, value, callback) => {
// const title= /^[\u0391-\uFFE5A-Za-z]+$/
const title = /^[\a-\z\A-\Z0-9\u4e00-\u9fe5]+$/
if (!title.test(value)) {
callback(new Error('请输入中英文数字'))
} else {
callback()
}
}
return { return {
// 表单数据 // 表单数据
form: { form: {
...@@ -92,17 +106,18 @@ export default { ...@@ -92,17 +106,18 @@ export default {
submitLoading: false, submitLoading: false,
rules: { rules: {
title: [ title: [
{ required: true, message: '请输入轮播标题', trigger: 'blur' } { required: true, message: '请输入标题', trigger: 'blur' },
{ validator: titleTest, trigger: 'blur' }
], ],
img: [ img: [
{ required: false, message: '请选择轮播图', trigger: 'blur' } { required: false, message: '请选择轮播图', trigger: 'blur' }
], ],
url: [ url: [
{ required: true, message: '请输入跳转地址', trigger: 'blur' } { required: false, message: '请输入跳转地址', trigger: 'blur' }
], ],
sort: [ sort: [
{ required: true, message: '请输入权重', trigger: 'blur' }, { required: true, message: '请输入权重', trigger: 'blur' },
{ validator: checkSort, trigger: 'change' } { validator: checkSort, trigger: 'blur' }
], ],
status: [ status: [
{ required: false, message: '请选择轮播状态', trigger: 'blur' } { required: false, message: '请选择轮播状态', trigger: 'blur' }
...@@ -113,9 +128,22 @@ export default { ...@@ -113,9 +128,22 @@ export default {
} }
} }
}, },
watch: {}, watch: {
'form.status'(newVal) {
if (newVal === '1') {
this.rules.img[0].required = true
} else {
this.rules.img[0].required = false
}
}
},
created() { created() {
this.getNowDate() this.getNowDate()
if (this.form.status === '1') {
this.rules.img[0].required = true
} else {
this.rules.img[0].required = false
}
}, },
methods: { methods: {
// 获取当前日期 // 获取当前日期
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="20" show-word-limit clearable disabled /> <el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="20" show-word-limit clearable disabled />
</el-form-item> </el-form-item>
<el-form-item label="轮播图:" prop="img"> <el-form-item label="轮播图:" prop="img">
<el-image :src="baseUrl + form.img" class="formImg" :preview-src-list="srcList" /> <ImagePreview :height="100" :src="baseUrl + form.img" :width="100" />
</el-form-item> </el-form-item>
<el-form-item label="跳转地址:" prop="url"> <el-form-item label="跳转地址:" prop="url">
<el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="30" show-word-limit clearable disabled /> <el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="30" show-word-limit clearable disabled />
......
...@@ -11,22 +11,24 @@ ...@@ -11,22 +11,24 @@
<div> <div>
<el-form ref="form" :model="form" label-width="133px" :rules="rules"> <el-form ref="form" :model="form" label-width="133px" :rules="rules">
<el-form-item label="标题:" prop="title"> <el-form-item label="标题:" prop="title">
<el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="20" show-word-limit clearable :disabled="form.id === 1" /> <el-input v-model.trim="form.title" class="form-input" style="width: 420px" maxlength="12" show-word-limit clearable :disabled="form.id === 1" />
</el-form-item> </el-form-item>
<el-form-item label="轮播图:" prop="img"> <el-form-item label="轮播图:" prop="img">
<image-upload v-model="form.img" :limit="1" :is-show-tip="false" /> <image-upload v-model="form.img" :limit="1" :is-show-tip="false" file-size="20" />
</el-form-item> </el-form-item>
<el-form-item label="跳转地址:" prop="url"> <el-form-item label="跳转地址:" prop="url">
<el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="30" show-word-limit clearable :disabled="form.id === 1" /> <el-input v-model.trim="form.url" class="form-input" style="width: 420px" maxlength="255" show-word-limit clearable :disabled="form.id === 1" />
</el-form-item> </el-form-item>
<el-form-item label="权重:" prop="sort"> <el-form-item label="权重:" prop="sort">
<el-input-number <el-input-number
v-model="form.sort" v-model.number="form.sort"
class="weight-number" class="weight-number"
:max="9999" :max="9999"
:min="0" :min="0"
controls-position="right" controls-position="right"
:disabled="form.id === 1" :disabled="form.id === 1"
:precision="0"
@blur="form.sort === undefined || form.sort === null ? form.sort = 0:form.sort"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建日期:" prop="createTime"> <el-form-item label="创建日期:" prop="createTime">
...@@ -47,7 +49,7 @@ ...@@ -47,7 +49,7 @@
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="notes"> <el-form-item label="备注:" prop="notes">
<el-input :disabled="form.id === 1" v-model.trim="form.notes" class="form-input" style="width: 420px" maxlength="60" show-word-limit clearable /> <el-input v-model.trim="form.notes" :disabled="form.id === 1" class="form-input" style="width: 420px" maxlength="60" show-word-limit clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button :loading="submitLoading" class="queryBtn" icon="el-icon-check" @click="submitForm">提交</el-button> <el-button :loading="submitLoading" class="queryBtn" icon="el-icon-check" @click="submitForm">提交</el-button>
...@@ -65,8 +67,10 @@ export default { ...@@ -65,8 +67,10 @@ export default {
name: 'BannerEdit', name: 'BannerEdit',
data() { data() {
const checkSort = (rule, value, callback) => { const checkSort = (rule, value, callback) => {
if (!value) { if (value === undefined || value === null) {
return callback(new Error('请输入权重')) return callback(new Error('请输入权重'))
} else if (value === 0) {
return callback(new Error('权重不能为零'))
} else { } else {
const search = { const search = {
exceptId: this.id, exceptId: this.id,
...@@ -83,6 +87,15 @@ export default { ...@@ -83,6 +87,15 @@ export default {
}) })
} }
} }
const titleTest = (rule, value, callback) => {
// const title= /^[\u0391-\uFFE5A-Za-z]+$/
const title = /^[\a-\z\A-\Z0-9\u4e00-\u9fe5]+$/
if (!title.test(value)) {
callback(new Error('请输入中英文数字'))
} else {
callback()
}
}
return { return {
id: undefined, id: undefined,
// 表单数据 // 表单数据
...@@ -98,17 +111,18 @@ export default { ...@@ -98,17 +111,18 @@ export default {
submitLoading: false, submitLoading: false,
rules: { rules: {
title: [ title: [
{ required: true, message: '请输入轮播标题', trigger: 'blur' } { required: true, message: '请输入标题', trigger: 'blur' },
{ validator: titleTest, trigger: 'blur' }
], ],
img: [ img: [
{ required: false, message: '请选择轮播图', trigger: 'blur' } { required: false, message: '请选择轮播图', trigger: 'blur' }
], ],
url: [ url: [
{ required: true, message: '请输入跳转地址', trigger: 'blur' } { required: false, message: '请输入跳转地址', trigger: 'blur' }
], ],
sort: [ sort: [
{ required: false, message: '请输入权重', trigger: 'blur' }, { required: true, message: '请输入权重', trigger: 'blur' },
{ validator: checkSort, trigger: 'change' } { validator: checkSort, trigger: 'blur' }
], ],
status: [ status: [
{ required: false, message: '请选择轮播状态', trigger: 'blur' } { required: false, message: '请选择轮播状态', trigger: 'blur' }
...@@ -119,7 +133,15 @@ export default { ...@@ -119,7 +133,15 @@ export default {
} }
} }
}, },
watch: {}, watch: {
'form.status'(newVal) {
if (newVal === '1') {
this.rules.img[0].required = true
} else {
this.rules.img[0].required = false
}
}
},
created() { created() {
this.id = this.$route.query.id this.id = this.$route.query.id
if (this.id) { if (this.id) {
...@@ -133,6 +155,11 @@ export default { ...@@ -133,6 +155,11 @@ export default {
if (res.code === 200) { if (res.code === 200) {
console.log('轮播信息', res) console.log('轮播信息', res)
this.form = res.data this.form = res.data
if (this.form.status === '1') {
this.rules.img[0].required = true
} else {
this.rules.img[0].required = false
}
} }
}) })
}, },
...@@ -142,16 +169,27 @@ export default { ...@@ -142,16 +169,27 @@ export default {
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
console.log('校验通过') console.log('校验通过')
this.submitLoading = true
updateBanner(this.form).then(res => { this.$confirm('系统将立即发布编辑内容,是否确定?', '提示', {
if (res.code === 200) { confirmButtonText: '确定',
this.submitLoading = false cancelButtonText: '取消',
this.$message({ customClass: 'box-logout',
message: '修改成功!', cancelButtonClass: 'resetBtn',
type: 'success' confirmButtonClass: 'queryBtn',
}) type: 'warning',
this.goBack() closeOnClickModal: false
} }).then(() => {
this.submitLoading = true
updateBanner(this.form).then(res => {
if (res.code === 200) {
this.submitLoading = false
this.$message({
message: '修改成功!',
type: 'success'
})
this.goBack()
}
})
}) })
} }
}) })
......
...@@ -320,12 +320,24 @@ export default { ...@@ -320,12 +320,24 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids const ids = row.id || this.ids
this.$modal.confirm('是否确认删除该轮播图信息?').then(function() {
return delBanner(ids) this.$confirm('是否确认删除此条数据,删除后不可恢复', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
customClass: 'box-logout',
cancelButtonClass: 'resetBtn',
confirmButtonClass: 'queryBtn',
type: 'warning',
closeOnClickModal: false
}).then(() => { }).then(() => {
this.getBannerList() this.submitLoading = true
this.$modal.msgSuccess('删除成功') delBanner(ids).then(res => {
}).catch(() => {}) if (res.code === 200) {
this.getBannerList()
this.$modal.msgSuccess('删除成功')
}
})
})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
...@@ -339,17 +351,11 @@ export default { ...@@ -339,17 +351,11 @@ export default {
id: row.id, id: row.id,
status: '2' status: '2'
} }
this.$modal.confirm('是否确认禁用该轮播图信息?').then(function() { updateBanner(update).then(res => {
updateBanner(update).then(res => { if (res.code === 200) {
if (res.code === 200) { this.getBannerList()
this.getBannerList() }
} })
})
return null
}).then(() => {
this.getBannerList()
this.$modal.msgSuccess('禁用成功')
}).catch(() => {})
} }
} }
} }
......
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