Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop

This commit is contained in:
TinyAnts 2022-09-15 09:28:40 +08:00
commit e624ab8380
4 changed files with 64 additions and 52 deletions

View File

@ -4,7 +4,13 @@
<el-page-header content="文章编辑" @back="$router.back()" /> <el-page-header content="文章编辑" @back="$router.back()" />
</el-card> </el-card>
<el-card class="mt-4 !border-none" shadow="never"> <el-card class="mt-4 !border-none" shadow="never">
<el-form ref="formRef" class="ls-form" :model="formData" label-width="85px" :rules="rules"> <el-form
ref="formRef"
class="ls-form"
:model="formData"
label-width="85px"
:rules="rules"
>
<div class="xl:flex"> <div class="xl:flex">
<div> <div>
<el-form-item label="文章标题" prop="title"> <el-form-item label="文章标题" prop="title">
@ -13,9 +19,17 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="文章栏目" prop="cid"> <el-form-item label="文章栏目" prop="cid">
<el-select class="w-80" v-model="formData.cid" placeholder="请选择文章栏目"> <el-select
<el-option v-for="item in optionsData.articleCate" :key="item.id" :label="item.name" class="w-80"
:value="item.id" /> v-model="formData.cid"
placeholder="请选择文章栏目"
>
<el-option
v-for="item in optionsData.articleCate"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="文章简介" prop="intro"> <el-form-item label="文章简介" prop="intro">
@ -98,7 +112,7 @@ const formData = reactive({
const formRef = shallowRef<FormInstance>() const formRef = shallowRef<FormInstance>()
const rules = reactive({ const rules = reactive({
title: [{ required: true, message: '请输入文章标题', trigger: 'blur' }], title: [{ required: true, message: '请输入文章标题', trigger: 'blur' }],
cid: [{ required: true, message: '请输入表描述', trigger: 'blur' }] cid: [{ required: true, message: '请输入文章简介', trigger: 'blur' }]
}) })
const getDetails = async () => { const getDetails = async () => {

View File

@ -76,12 +76,16 @@
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input v-model="formData.password" show-password placeholder="请输入密码" /> <el-input
v-model.trim="formData.password"
show-password
placeholder="请输入密码"
/>
</el-form-item> </el-form-item>
<el-form-item label="确认密码" prop="passwordConfirm"> <el-form-item label="确认密码" prop="passwordConfirm">
<el-input <el-input
v-model="formData.passwordConfirm" v-model.trim="formData.passwordConfirm"
show-password show-password
placeholder="请输入确认密码" placeholder="请输入确认密码"
/> />
@ -137,6 +141,13 @@ const isRoot = computed(() => {
return formData.role == '0' return formData.role == '0'
}) })
const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
if (formData.password) {
if (!value) callback(new Error('请再次输入密码'))
if (value !== formData.password) callback(new Error('两次输入密码不一致!'))
}
callback()
}
const formRules = reactive({ const formRules = reactive({
username: [ username: [
{ {
@ -163,13 +174,6 @@ const formRules = reactive({
{ {
required: true, required: true,
message: '请输入密码', message: '请输入密码',
trigger: 'blur',
pattern: /(^[^\s]*$)/ //
},
{
validator: (rule: object, value: string, callback: any) => {
!value ? callback(new Error('请输入密码')) : callback()
},
trigger: 'blur' trigger: 'blur'
} }
] as any[], ] as any[],
@ -177,17 +181,10 @@ const formRules = reactive({
{ {
required: true, required: true,
message: '请再次输入密码', message: '请再次输入密码',
trigger: 'blur', trigger: 'blur'
pattern: /(^[^\s]*$)/ //
}, },
{ {
validator: (rule: object, value: string, callback: any) => { validator: passwordConfirmValidator,
if (formData.password) {
if (!value) callback(new Error('请再次输入密码'))
if (value !== formData.password) callback(new Error('两次输入密码不一致!'))
}
callback()
},
trigger: 'blur' trigger: 'blur'
} }
] as any[] ] as any[]
@ -235,7 +232,12 @@ const setFormData = async (row: any) => {
Number(formData.postId) == 0 && (formData.postId = '') Number(formData.postId) == 0 && (formData.postId = '')
} }
formRules.password = [] formRules.password = []
formRules.passwordConfirm = [] formRules.passwordConfirm = [
{
validator: passwordConfirmValidator,
trigger: 'blur'
}
]
} }
const handleClose = () => { const handleClose = () => {

View File

@ -2,7 +2,7 @@
<div class="hot-search"> <div class="hot-search">
<el-card class="!border-none" shadow="never"> <el-card class="!border-none" shadow="never">
<el-form ref="formRef" :model="formData" label-width="100px"> <el-form ref="formRef" :model="formData" label-width="100px">
<el-form-item label="功能状态" style="margin-bottom: 0;"> <el-form-item label="功能状态" style="margin-bottom: 0">
<div> <div>
<el-radio-group v-model="formData.isHotSearch"> <el-radio-group v-model="formData.isHotSearch">
<el-radio :label="1">开启</el-radio> <el-radio :label="1">开启</el-radio>
@ -32,13 +32,17 @@
</el-table-column> </el-table-column>
<el-table-column label="排序" prop="describe" min-width="160"> <el-table-column label="排序" prop="describe" min-width="160">
<template #default="{ row }"> <template #default="{ row }">
<el-input v-model="row.sort" /> <el-input v-model="row.sort" type="number" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" min-width="80" fixed="right"> <el-table-column label="操作" min-width="80" fixed="right">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-button v-perms="['setting:storage:edit']" type="danger" link <el-button
@click="handleDel($index)"> v-perms="['setting:storage:edit']"
type="danger"
link
@click="handleDel($index)"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -59,7 +63,7 @@
<!-- 热门搜索 --> <!-- 热门搜索 -->
<div class="hot-search-title">热门搜索</div> <div class="hot-search-title">热门搜索</div>
<div class="hot-search-text"> <div class="hot-search-text">
<span v-for="text in list">{{ text.name }}</span> <span v-for="(text, index) in list" :key="index">{{ text.name }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -73,40 +77,31 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getSearch, setSearch } from "@/api/setting/search"; import { getSearch, setSearch } from '@/api/setting/search'
import type { Search } from "@/api/setting/search"; import type { Search } from '@/api/setting/search'
import feedback from "@/utils/feedback"; import feedback from '@/utils/feedback'
const formData = reactive<Search>({ const formData = reactive<Search>({
isHotSearch: 1, isHotSearch: 1,
list: [ list: []
{
name: '搜索引擎',
sort: 2
},
{
name: '卧槽',
sort: 1
}
]
}) })
const list = computed(() => { const list = computed(() => {
return formData.list.sort((v1, v2) => v1.sort - v2.sort) return [...formData.list].sort((v1, v2) => v2.sort - v1.sort)
}) })
// //
const getData = async () => { const getData = async () => {
try { try {
const data = await getSearch(); const data = await getSearch()
for (const key in formData) { for (const key in formData) {
//@ts-ignore //@ts-ignore
formData[key] = data[key]; formData[key] = data[key]
} }
} catch (error) { } catch (error) {
console.log('获取=>', error) console.log('获取=>', error)
} }
}; }
const handleAdd = () => { const handleAdd = () => {
formData.list.push({ formData.list.push({
@ -122,7 +117,7 @@ const handleDel = (index: number) => {
const handleSave = async () => { const handleSave = async () => {
try { try {
await setSearch(formData) await setSearch(formData)
feedback.msgSuccess("操作成功"); feedback.msgSuccess('操作成功')
getData() getData()
} catch (error) { } catch (error) {
console.log('保存=>', error) console.log('保存=>', error)
@ -143,7 +138,7 @@ getData()
height: 494px; height: 494px;
padding: 12px 12px; padding: 12px 12px;
border-radius: 10px; border-radius: 10px;
border: 1px solid #E6E6E6; border: 1px solid #e6e6e6;
.search-com { .search-com {
.search-con { .search-con {
@ -167,7 +162,7 @@ getData()
padding: 5px 10px; padding: 5px 10px;
margin: 0 6px 6px 0; margin: 0 6px 6px 0;
display: inline-block; display: inline-block;
background-color: #E6E6E6; background-color: #f4f4f4;
} }
} }
} }

View File

@ -68,6 +68,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { setUserInfo } from '@/api/user' import { setUserInfo } from '@/api/user'
import useUserStore from '@/stores/modules/user' import useUserStore from '@/stores/modules/user'
import feedback from '@/utils/feedback'
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
const formRef = ref<FormInstance>() const formRef = ref<FormInstance>()
const userStore = useUserStore() const userStore = useUserStore()
@ -136,7 +137,6 @@ const rules = reactive<object>({
// //
const getUser = async () => { const getUser = async () => {
const userInfo = userStore.userInfo const userInfo = userStore.userInfo
console.log(userInfo)
for (const key in formData) { for (const key in formData) {
//@ts-ignore //@ts-ignore
formData[key] = userInfo[key] formData[key] = userInfo[key]
@ -146,6 +146,7 @@ const getUser = async () => {
// //
const setUser = async () => { const setUser = async () => {
await setUserInfo(formData) await setUserInfo(formData)
feedback.msgSuccess('保存成功')
userStore.getUserInfo() userStore.getUserInfo()
} }