Commit 24949c4a authored by 盖献康's avatar 盖献康

Merge remote-tracking branch 'origin/master'

parents 4a5e5887 fd44e763
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
['image'] // 链接、图片、视频 ['image'] // 链接、图片、视频
] ]
}, },
placeholder: '请输入内容', placeholder: '请输入文章内容',
readOnly: this.readOnly readOnly: this.readOnly
} }
} }
......
...@@ -255,17 +255,51 @@ export const constantRoutes = [ ...@@ -255,17 +255,51 @@ export const constantRoutes = [
}, },
// 轮播 // 轮播
{ {
path: '/banner/management', path: '/banner-management',
component: Layout, component: Layout,
hidden: true, hidden: true,
permissions: ['*:*:*'], permissions: ['*:*:*'],
children: [ children: [
// 轮播管理
{ {
path: 'index', path: 'index',
props: true, props: true,
component: () => import('@/views/banner_management/banner_management.vue'), component: () => import('@/views/banner_management/banner_management'),
name: 'banner_management', name: 'BannerManagement',
meta: { title: '轮播管理', icon: 'component' } meta: { title: '轮播管理', icon: 'component' }
},
// 轮播添加路由
{
path: 'banner-add',
component: () => import('@/views/banner_management/banner_add.vue'),
name: 'BannerInsert',
props: true,
meta: {
title: '新增轮播',
icon: 'component'
}
},
// 轮播编辑路由
{
path: 'banner-edit',
component: () => import('@/views/banner_management/banner_edit.vue'),
name: 'BannerEdit',
props: true,
meta: {
title: '编辑轮播',
icon: 'component'
}
},
// 轮播详情路由
{
path: 'banner-detail',
component: () => import('@/views/banner_management/banner_detail.vue'),
name: 'BannerDetail',
props: true,
meta: {
title: '轮播详情',
icon: 'component'
}
} }
] ]
}, },
......
...@@ -162,7 +162,7 @@ export default { ...@@ -162,7 +162,7 @@ export default {
updateArticle(this.form).then(response => { updateArticle(this.form).then(response => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '修改成功!' message: '修改成功'
}) })
this.goBack() this.goBack()
}) })
......
...@@ -171,7 +171,7 @@ export default { ...@@ -171,7 +171,7 @@ export default {
addArticle(this.form).then(response => { addArticle(this.form).then(response => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '新增成功!' message: '新增成功'
}) })
this.goBack() this.goBack()
}).finally(_ => { }).finally(_ => {
......
...@@ -15,11 +15,10 @@ ...@@ -15,11 +15,10 @@
</el-form-item> </el-form-item>
<el-form-item style="margin-left: 10px;" prop="articleStatus"> <el-form-item style="margin-left: 10px;" prop="articleStatus">
<el-select v-model.trim="queryParams.articleStatus" clearable placeholder="状态"> <el-select v-model.trim="queryParams.articleStatus" clearable placeholder="状态">
<!-- <el-option label="全部" :value="null" />-->
<el-option <el-option
v-for="item in dict.type.article_status" v-for="item in articleStatusList"
:key="item.value" :key="item.value"
:label="item.label.substring(1)" :label="item.label"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
...@@ -137,7 +136,9 @@ ...@@ -137,7 +136,9 @@
</el-table-column> </el-table-column>
<el-table-column label="状态" min-width="60" prop="articleStatus" show-overflow-tooltip> <el-table-column label="状态" min-width="60" prop="articleStatus" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span :style="showStatus(scope.row.articleStatus) === '• 已上架' ? 'color: #67C23A' : 'color: #F56C6C'">{{ showStatus(scope.row.articleStatus) || '-' }}</span> <span :style="showStatus(scope.row.articleStatus) === '• 已上架' ? 'color: #67C23A' : 'color: #F56C6C'">{{
showStatus(scope.row.articleStatus) || '-'
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column class-name="small-padding fixed-width" label="操作" min-width="100"> <el-table-column class-name="small-padding fixed-width" label="操作" min-width="100">
...@@ -262,6 +263,21 @@ export default { ...@@ -262,6 +263,21 @@ export default {
dicts: ['article_status'], dicts: ['article_status'],
data() { data() {
return { return {
// 文章状态列表
articleStatusList: [
{
label: '全部',
value: ''
},
{
label: '已上架',
value: '0'
},
{
label: '已下架',
value: '1'
}
],
// tab激活 // tab激活
activeName: 'article', activeName: 'article',
// 排序方式下拉框字典写死 // 排序方式下拉框字典写死
......
<template> <template>
<div> <div class="banner-container">
新增轮播图 <div class="bannerHeaderTitle">
<span style="color: #666666; font-weight: 600; font-size: 16px;">新增</span>
</div>
<div class="bannerAddMain">
<div style="display: flex;margin: 20px;">
<div style="height: 30px;border-left: 10px solid #5FB54B;" />
<div style="padding-top: 3px;padding-left: 10px;color: #666666; font-weight: 700; font-size: 16px;">轮播信息</div>
</div>
<div>
<el-form ref="form" :model="form" label-width="133px" :rules="rules">
<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-form-item>
<el-form-item label="轮播图:" prop="img">
<image-upload v-model="form.img" :limit="1" :is-show-tip="false" />
</el-form-item>
<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-form-item>
<el-form-item label="权重:" prop="sort">
<el-input-number
v-model="form.sort"
class="weight-number"
:max="9999"
:min="0"
controls-position="right"
/>
</el-form-item>
<el-form-item label="创建日期:" prop="createTime">
<span style="height: 2.5rem;line-height: 2.5rem">{{ form.createTime }}</span>
</el-form-item>
<el-form-item label="状态:" prop="status">
<el-switch
v-model="form.status"
active-color="#13ce66"
inactive-color="#dcdfe6"
active-value="1"
inactive-value="2"
/>
</el-form-item>
<el-form-item label="备注:" prop="notes">
<el-input v-model.trim="form.notes" class="form-input" style="width: 420px" maxlength="60" show-word-limit clearable />
</el-form-item>
<el-form-item>
<el-button :loading="submitLoading" class="queryBtn" icon="el-icon-check" @click="submitForm">提交</el-button>
<el-button class="resetBtn" icon="el-icon-back" @click="goBack">返回</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { parseTime } from '@/utils/ruoyi'
import { addBanner, listBanner } from '@/api/business/banner'
export default { export default {
name: 'BannerAdd', name: 'BannerAdd',
data() { data() {
return {} const checkSort = (rule, value, callback) => {
const search = {
sort: value
}
// 调用后端api
listBanner(search).then(Response => {
if (Response.code === 200) {
if (Response.total > 0) {
callback(new Error('该权重已被使用'))
}
callback()
}
})
}
return {
// 表单数据
form: {
title: '',
img: '',
url: '',
sort: null,
createTime: '',
status: '1',
notes: ''
},
submitLoading: false,
rules: {
title: [
{ required: true, message: '请输入轮播标题', trigger: 'blur' }
],
img: [
{ required: false, message: '请选择轮播图', trigger: 'blur' }
],
url: [
{ required: true, message: '请输入跳转地址', trigger: 'blur' }
],
sort: [
{ required: true, message: '请输入权重', trigger: 'blur' },
{ validator: checkSort, trigger: 'change' }
],
status: [
{ required: false, message: '请选择轮播状态', trigger: 'blur' }
],
notes: [
{ required: false, message: '请输入备注', trigger: 'blur' }
]
}
}
}, },
watch: {}, watch: {},
created() { created() {
this.getNowDate()
}, },
methods: {} methods: {
// 获取当前日期
getNowDate() {
const date = new Date()
console.log('当前日期', date)
this.form.createTime = parseTime(date, '{y}/{m}/{d}')
},
submitForm() {
console.log('表单内容', this.form)
this.$refs['form'].validate(valid => {
if (valid) {
console.log('校验通过')
this.submitLoading = true
addBanner(this.form).then(res => {
if (res.code === 200) {
this.submitLoading = false
this.$message({
message: '新增成功!',
type: 'success'
})
this.goBack()
}
})
}
})
},
goBack() {
this.$router.push('/banner-management/index')
}
}
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.banner-container {
background-color: #ffffff;
.tip1{
height: 30px;
border-left: 5px solid #5FB54B;
}
.bannerHeaderTitle{
width: 100%;
height: 50px;
background-color: #f9f9f9;
line-height: 50px;
padding-left: 45px;
}
}
.bannerAddMain {
background-color: #ffffff;
padding-left: 30px;
padding-bottom: 40px;
}
::v-deep .el-input--medium .el-input__inner {
height: 40px !important;
line-height: 40px !important;
}
::v-deep .el-form-item--medium .el-form-item__label {
line-height: 40px !important;
font-size: 14px !important;
}
</style> </style>
<template>
<div class="banner-container">
<div class="bannerHeaderTitle">
<span style="color: #666666; font-weight: 600; font-size: 16px;">详情</span>
</div>
<div class="bannerAddMain">
<div style="display: flex;margin: 20px;">
<div style="height: 30px;border-left: 10px solid #5FB54B;" />
<div style="padding-top: 3px;padding-left: 10px;color: #666666; font-weight: 700; font-size: 16px;">轮播信息</div>
</div>
<div>
<el-form ref="form" :model="form" label-width="133px">
<el-form-item label="标题:" prop="title">
<span class="formSpan">{{ form.title || '暂无数据' }}</span>
</el-form-item>
<el-form-item label="轮播图:" prop="img">
<el-image :src="baseUrl + form.img" class="formImg" :preview-src-list="srcList" />
</el-form-item>
<el-form-item label="跳转地址:" prop="url">
<span class="formSpan">{{ form.url || '暂无数据' }}</span>
</el-form-item>
<el-form-item label="权重:" prop="sort">
<span class="formSpan">{{ form.sort || '暂无数据' }}</span>
</el-form-item>
<el-form-item label="创建日期:" prop="createTime">
<span class="formSpan">{{ form.createTime || '暂无数据' }}</span>
</el-form-item>
<el-form-item label="状态:" prop="status">
<span class="formSpan">{{ form.status === '1' ? '已发布':'未发布' }}</span>
</el-form-item>
<el-form-item label="备注:" prop="notes">
<span class="formSpan">{{ form.notes || '暂无数据' }}</span>
</el-form-item>
<el-form-item>
<el-button class="resetBtn" icon="el-icon-back" @click="goBack">返回</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
import { getBanner } from '@/api/business/banner'
export default {
name: 'BannerDetail',
data() {
return {
id: undefined,
// 表单数据
form: {
title: '',
img: '',
url: '',
sort: 0,
createTime: '',
status: '1',
notes: ''
},
baseUrl: process.env.VUE_APP_TEST_API,
srcList: []
}
},
watch: {},
created() {
this.id = this.$route.query.id
if (this.id) {
this.getBannerDetail()
}
},
methods: {
// 获取当前轮播信息
getBannerDetail() {
getBanner(this.id).then(res => {
if (res.code === 200) {
this.form = res.data
this.srcList.push(this.baseUrl + this.form.img)
}
})
},
goBack() {
this.$router.push('/banner-management/index')
}
}
}
</script>
<style lang="scss" scoped>
.banner-container {
background-color: #ffffff;
.tip1{
height: 30px;
border-left: 5px solid #5FB54B;
}
.bannerHeaderTitle{
width: 100%;
height: 50px;
background-color: #f9f9f9;
line-height: 50px;
padding-left: 45px;
}
}
.bannerAddMain {
background-color: #ffffff;
padding-left: 30px;
padding-bottom: 40px;
}
::v-deep .el-input--medium .el-input__inner {
height: 40px !important;
line-height: 40px !important;
}
::v-deep .el-form-item--medium .el-form-item__label {
line-height: 40px !important;
font-size: 14px !important;
}
.formSpan {
height: 2.5rem;
line-height: 2.5rem
}
.formImg {
width: 9.25rem;
height: 9.25rem;
background-color: #00afff;
}
</style>
<template>
<div class="banner-container">
<div class="bannerHeaderTitle">
<span style="color: #666666; font-weight: 600; font-size: 16px;">编辑</span>
</div>
<div class="bannerAddMain">
<div style="display: flex;margin: 20px;">
<div style="height: 30px;border-left: 10px solid #5FB54B;" />
<div style="padding-top: 3px;padding-left: 10px;color: #666666; font-weight: 700; font-size: 16px;">轮播信息</div>
</div>
<div>
<el-form ref="form" :model="form" label-width="133px" :rules="rules">
<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-form-item>
<el-form-item label="轮播图:" prop="img">
<image-upload v-model="form.img" :limit="1" :is-show-tip="false" />
</el-form-item>
<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-form-item>
<el-form-item label="权重:" prop="sort">
<el-input-number
v-model="form.sort"
class="weight-number"
:max="9999"
:min="0"
controls-position="right"
:disabled="form.id === 1"
/>
</el-form-item>
<el-form-item label="创建日期:" prop="createTime">
<span style="height: 2.5rem;line-height: 2.5rem">{{ form.createTime }}</span>
</el-form-item>
<el-form-item label="状态:" prop="status">
<el-switch
v-model="form.status"
active-color="#13ce66"
inactive-color="#dcdfe6"
active-value="1"
inactive-value="2"
:disabled="form.id === 1"
/>
</el-form-item>
<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-form-item>
<el-form-item>
<el-button :loading="submitLoading" class="queryBtn" icon="el-icon-check" @click="submitForm">提交</el-button>
<el-button class="resetBtn" icon="el-icon-back" @click="goBack">返回</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
import { getBanner, listBanner, updateBanner } from '@/api/business/banner'
export default {
name: 'BannerEdit',
data() {
const checkSort = (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入权重'))
} else {
const search = {
exceptId: this.id,
sort: value
}
// 调用后端api
listBanner(search).then(Response => {
if (Response.code === 200) {
if (Response.total > 0) {
callback(new Error('该权重已被使用!'))
}
callback()
}
})
}
}
return {
id: undefined,
// 表单数据
form: {
title: '',
img: '',
url: '',
sort: 0,
createTime: '',
status: '1',
notes: ''
},
submitLoading: false,
rules: {
title: [
{ required: true, message: '请输入轮播标题', trigger: 'blur' }
],
img: [
{ required: false, message: '请选择轮播图', trigger: 'blur' }
],
url: [
{ required: true, message: '请输入跳转地址', trigger: 'blur' }
],
sort: [
{ required: true, message: '请输入权重', trigger: 'blur' },
{ validator: checkSort, trigger: 'change' }
],
status: [
{ required: false, message: '请选择轮播状态', trigger: 'blur' }
],
notes: [
{ required: false, message: '请输入备注', trigger: 'blur' }
]
}
}
},
watch: {},
created() {
this.id = this.$route.query.id
if (this.id) {
this.getBannerDetail()
}
},
methods: {
// 获取当前轮播信息
getBannerDetail() {
getBanner(this.id).then(res => {
if (res.code === 200) {
console.log('轮播信息', res)
this.form = res.data
}
})
},
submitForm() {
console.log('表单内容', this.form)
this.$refs['form'].validate(valid => {
if (valid) {
console.log('校验通过')
this.submitLoading = true
updateBanner(this.form).then(res => {
if (res.code === 200) {
this.submitLoading = false
this.$message({
message: '修改成功!',
type: 'success'
})
this.goBack()
}
})
}
})
},
goBack() {
this.$router.push('/banner-management/index')
}
}
}
</script>
<style lang="scss" scoped>
.banner-container {
background-color: #ffffff;
.tip1{
height: 30px;
border-left: 5px solid #5FB54B;
}
.bannerHeaderTitle{
width: 100%;
height: 50px;
background-color: #f9f9f9;
line-height: 50px;
padding-left: 45px;
}
}
.bannerAddMain {
background-color: #ffffff;
padding-left: 30px;
padding-bottom: 40px;
}
::v-deep .el-input--medium .el-input__inner {
height: 40px !important;
line-height: 40px !important;
}
::v-deep .el-form-item--medium .el-form-item__label {
line-height: 40px !important;
font-size: 14px !important;
}
</style>
...@@ -7,8 +7,9 @@ ...@@ -7,8 +7,9 @@
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="68px"> <el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="68px">
<el-form-item prop="title"> <el-form-item prop="title">
<el-input <el-input
v-model="queryParams.title" v-model.trim="queryParams.title"
placeholder="请输入标题" placeholder="请输入标题"
maxlength="20"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
<el-option <el-option
v-for="item in dict.type.banner_status" v-for="item in dict.type.banner_status"
:key="item.value" :key="item.value"
:label="item.label.substring(1)" :label="item.label.substring(0)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
...@@ -42,8 +43,8 @@ ...@@ -42,8 +43,8 @@
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
/> />
</el-form-item> </el-form-item>
<el-form-item prop="sortWay"> <el-form-item prop="orderWay">
<el-select v-model.trim="queryParams.sortWay" clearable placeholder="请选择排序方式"> <el-select v-model.trim="queryParams.orderWay" clearable placeholder="请选择排序方式">
<el-option <el-option
v-for="item in dict.type.banner_order" v-for="item in dict.type.banner_order"
:key="item.value" :key="item.value"
...@@ -82,17 +83,22 @@ ...@@ -82,17 +83,22 @@
> >
<el-table-column label="序号" min-width="80" show-overflow-tooltip type="index" /> <el-table-column label="序号" min-width="80" show-overflow-tooltip type="index" />
<el-table-column label="标题" prop="title" show-overflow-tooltip /> <el-table-column label="标题" prop="title" show-overflow-tooltip />
<el-table-column label="轮播图" prop="img" show-overflow-tooltip width="80px"> <el-table-column label="轮播图" prop="img" show-overflow-tooltip width="100px">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.img ? '已上传':'未上传' }} {{ scope.row.img ? '已上传':'未上传' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="跳转链接" prop="url" show-overflow-tooltip /> <el-table-column label="跳转链接" prop="url" show-overflow-tooltip>
<el-table-column label="权重" prop="sort" width="60" />
<el-table-column label="创建日期" prop="createTime" width="80" />
<el-table-column label="状态" prop="status" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.banner_status" :value="scope.row.status" /> <span>{{ scope.row.url || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="权重" prop="sort" width="80" />
<el-table-column label="创建日期" prop="createTime" width="120" />
<el-table-column label="状态" prop="status" width="100">
<template slot-scope="scope">
<span :style="scope.row.status === '1' ? 'color: #67C23A' : 'color: #f5aa6c'">
{{ scope.row.status === '1' ? '• 已发布':'• 未发布' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width"> <el-table-column label="操作" class-name="small-padding fixed-width">
...@@ -121,7 +127,7 @@ ...@@ -121,7 +127,7 @@
>编辑 >编辑
</el-button> </el-button>
</div> </div>
<div v-if="scope.row.status==='2' && scope.row.id !== 1"> <div v-if="scope.row.status==='2'">
<el-button <el-button
key="1" key="1"
v-hasPermi="['business:article:remove']" v-hasPermi="['business:article:remove']"
...@@ -134,7 +140,7 @@ ...@@ -134,7 +140,7 @@
>删除 >删除
</el-button> </el-button>
</div> </div>
<div v-else-if="scope.row.status==='1' && scope.row.id !== 1"> <div v-else-if="scope.row.status==='1'">
<el-button <el-button
key="2" key="2"
icon="el-icon-video-pause" icon="el-icon-video-pause"
...@@ -143,6 +149,7 @@ ...@@ -143,6 +149,7 @@
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255,157,78);" style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255,157,78);"
type="warning" type="warning"
@click="deListBanner(scope.row)" @click="deListBanner(scope.row)"
:disabled="scope.row.id === 1"
>下架 >下架
</el-button> </el-button>
</div> </div>
...@@ -165,7 +172,7 @@ ...@@ -165,7 +172,7 @@
</template> </template>
<script> <script>
import { listBanner, getBanner, delBanner, addBanner, updateBanner } from '@/api/business/banner' import { listBanner, delBanner, addBanner, updateBanner } from '@/api/business/banner'
export default { export default {
name: 'BannerManagement', name: 'BannerManagement',
...@@ -194,14 +201,11 @@ export default { ...@@ -194,14 +201,11 @@ export default {
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 20,
title: null, title: null,
imgBoolean: null, imgBoolean: null,
sortWay: null, orderWay: '',
url: null,
sort: null,
status: null, status: null,
notes: null,
createTime: null createTime: null
}, },
// 轮播图状态下拉框 // 轮播图状态下拉框
...@@ -280,19 +284,15 @@ export default { ...@@ -280,19 +284,15 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset() this.$router.push('/banner-management/banner-add')
this.open = true
this.title = '添加轮播图管理'
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.$router.push('/banner-management/banner-edit?id=' + row.id)
const id = row.id || this.ids },
getBanner(id).then(response => { /** 详情按钮操作 */
this.form = response.data handleDetail(row) {
this.open = true this.$router.push('/banner-management/banner-detail?id=' + row.id)
this.title = '修改轮播图管理'
})
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
...@@ -317,7 +317,7 @@ export default { ...@@ -317,7 +317,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids const ids = row.id || this.ids
this.$modal.confirm('是否确认删除轮播图管理编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除该轮播图信息?').then(function() {
return delBanner(ids) return delBanner(ids)
}).then(() => { }).then(() => {
this.getBannerList() this.getBannerList()
......
...@@ -141,7 +141,8 @@ ...@@ -141,7 +141,8 @@
:picker-options="{ :picker-options="{
start: '01:00', start: '01:00',
step: '01:00', step: '01:00',
end: '12:00' end: '12:00',
maxTime:form.useTime.ame
}" }"
/> />
</el-form-item> </el-form-item>
...@@ -180,7 +181,8 @@ ...@@ -180,7 +181,8 @@
:picker-options="{ :picker-options="{
start: '12:00', start: '12:00',
step: '01:00', step: '01:00',
end: '24:00' end: '24:00',
maxTime:form.useTime.pme
}" }"
/> />
</el-form-item> </el-form-item>
...@@ -338,8 +340,7 @@ export default { ...@@ -338,8 +340,7 @@ export default {
// 设备归属 0 平台设备 1医院设备 // 设备归属 0 平台设备 1医院设备
isPrivate: '', isPrivate: '',
cityOptions: regionData, cityOptions: regionData,
// 存储省市区选中的地址码
selectedOptions: [],
// 地址码对用的文字 // 地址码对用的文字
addtions: { addtions: {
names: '' names: ''
...@@ -381,7 +382,7 @@ export default { ...@@ -381,7 +382,7 @@ export default {
{ required: true, message: '请输入详细地址地址(街道、楼牌号等)', trigger: 'blur' } { required: true, message: '请输入详细地址地址(街道、楼牌号等)', trigger: 'blur' }
], ],
'useTime.ams': [ 'useTime.ams': [
{ required: true, validator: this.validateMorningStart, trigger: 'change' } { required: true, validator: this.validateMorningStart, trigger: 'blur' }
], ],
'useTime.ame': [ 'useTime.ame': [
{ required: true, validator: this.validateMorningEnd, trigger: 'blur' } { required: true, validator: this.validateMorningEnd, trigger: 'blur' }
...@@ -456,10 +457,13 @@ export default { ...@@ -456,10 +457,13 @@ export default {
// 表单参数 // 表单参数
form: { form: {
deviceName: '', deviceName: '',
// 存储省市区选中的地址码
selectedOptions: [],
// appointmentMethod: '', // appointmentMethod: '',
sort: 0, sort: 0,
isPrivate: '1', isPrivate: '1',
serviceArea: '', serviceArea: [],
checkType: [],
head: '', head: '',
phone: '', phone: '',
useNum: 0, useNum: 0,
...@@ -512,6 +516,7 @@ export default { ...@@ -512,6 +516,7 @@ export default {
this.isPrivate = 0 this.isPrivate = 0
} }
console.log('登陆人', res) console.log('登陆人', res)
console.log('this.form--------------------', this.form)
}) })
}, },
// 时间段获取 // 时间段获取
...@@ -560,16 +565,16 @@ export default { ...@@ -560,16 +565,16 @@ export default {
}, },
// 选择地址 // 选择地址
handleChangeAddress(value) { handleChangeAddress(value) {
this.selectedOptions = value this.form.selectedOptions = value
console.log('地区码', this.selectedOptions) console.log('地区码', this.form.selectedOptions)
var name = '' var name = ''
this.selectedOptions.map(item => name += CodeToText[item] + '') // 将省市区三个拼接一起 this.form.selectedOptions.map(item => name += CodeToText[item] + '') // 将省市区三个拼接一起
this.addtions.names = name this.addtions.names = name
console.log(this.addtions.names) console.log(this.addtions.names)
// 运用了CodeToText把编码转成了中文 // 运用了CodeToText把编码转成了中文
this.addForm.province = CodeToText[this.selectedOptions[0]] this.addForm.province = CodeToText[ this.form.selectedOptions[0]]
this.addForm.county = CodeToText[this.selectedOptions[1]] this.addForm.county = CodeToText[ this.form.selectedOptions[1]]
this.addForm.area = CodeToText[this.selectedOptions[2]] this.addForm.area = CodeToText[ this.form.selectedOptions[2]]
if (this.addForm.county === '市辖区' || this.addForm.county === '县') { if (this.addForm.county === '市辖区' || this.addForm.county === '县') {
this.city = this.addForm.province this.city = this.addForm.province
} else { } else {
...@@ -618,7 +623,7 @@ export default { ...@@ -618,7 +623,7 @@ export default {
console.log('上午开始时间第一层报错') console.log('上午开始时间第一层报错')
callback(new Error('请选择上午开始时间')) callback(new Error('请选择上午开始时间'))
} else { } else {
if (isEmpty(value) && isEmpty(morningEnd)) { if (isEmpty(value) && isEmpty(!morningEnd)) {
console.log('上午开始时间第二层报错') console.log('上午开始时间第二层报错')
callback(new Error('请选择上午开始时间')) callback(new Error('请选择上午开始时间'))
} else { } else {
...@@ -632,7 +637,7 @@ export default { ...@@ -632,7 +637,7 @@ export default {
console.log('上午结束时间第一层报错') console.log('上午结束时间第一层报错')
callback(new Error('请选择上午结束时间')) callback(new Error('请选择上午结束时间'))
} else { } else {
if (isEmpty(value) && isEmpty(morningStart)) { if (isEmpty(value) && isEmpty(!morningStart)) {
console.log('上午结束时间第一层报错') console.log('上午结束时间第一层报错')
callback(new Error('请选择上午结束时间')) callback(new Error('请选择上午结束时间'))
} else { } else {
...@@ -646,7 +651,7 @@ export default { ...@@ -646,7 +651,7 @@ export default {
console.log(' 下午开始时间第一层报错') console.log(' 下午开始时间第一层报错')
callback(new Error('请选择下午开始时间')) callback(new Error('请选择下午开始时间'))
} else { } else {
if (isEmpty(value) && isEmpty(afternoonEnd)) { if (isEmpty(value) && isEmpty(!afternoonEnd)) {
console.log('下午开始时间开始第二层报错') console.log('下午开始时间开始第二层报错')
callback(new Error('请选择下午开始时间')) callback(new Error('请选择下午开始时间'))
} else { } else {
...@@ -660,7 +665,7 @@ export default { ...@@ -660,7 +665,7 @@ export default {
console.log('下午结束时间结束第一层报错') console.log('下午结束时间结束第一层报错')
callback(new Error('请选择下午结束时间')) callback(new Error('请选择下午结束时间'))
} else { } else {
if (isEmpty(value) && isEmpty(afternoonStart)) { if (isEmpty(value) && isEmpty(!afternoonStart)) {
console.log('下午结束时间结束第二层报错') console.log('下午结束时间结束第二层报错')
callback(new Error('请选择下午结束时间')) callback(new Error('请选择下午结束时间'))
} else { } else {
...@@ -672,8 +677,8 @@ export default { ...@@ -672,8 +677,8 @@ export default {
submitForm() { submitForm() {
const form = deepClone(this.form) const form = deepClone(this.form)
console.log('this.form-----------------------', this.form) console.log('this.form-----------------------', this.form)
if (this.selectedOptions != null) { if (form.selectedOptions != null) {
form.addressCode = this.selectedOptions.join(',') form.addressCode = form.selectedOptions.join(',')
} }
if (this.addtions.names != null) { if (this.addtions.names != null) {
form.addressText = this.addtions.names form.addressText = this.addtions.names
...@@ -692,8 +697,6 @@ export default { ...@@ -692,8 +697,6 @@ export default {
} }
form.isPrivate = this.isPrivate form.isPrivate = this.isPrivate
this.loading = true this.loading = true
// TODO: please clear this log
console.log('form=======================================', form)
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
addDevice(form).then(response => { addDevice(form).then(response => {
......
...@@ -451,7 +451,8 @@ ...@@ -451,7 +451,8 @@
:picker-options="{ :picker-options="{
start: '01:00', start: '01:00',
step: '01:00', step: '01:00',
end: '12:00' end: '12:00',
maxTime:form.useTime.ame
}" }"
/> />
</el-form-item> </el-form-item>
...@@ -489,7 +490,8 @@ ...@@ -489,7 +490,8 @@
:picker-options="{ :picker-options="{
start: '12:00', start: '12:00',
step: '01:00', step: '01:00',
end: '24:00' end: '24:00',
maxTime:form.useTime.pme
}" }"
/> />
</el-form-item> </el-form-item>
...@@ -713,8 +715,8 @@ export default { ...@@ -713,8 +715,8 @@ export default {
{ required: true, message: '请选择设备类型', trigger: 'change' } { required: true, message: '请选择设备类型', trigger: 'change' }
], ],
selectedOptions: [ selectedOptions: [
// { required: true, message: '请选择服务地点', trigger: 'blur' } { required: true, message: '请选择服务地点', trigger: 'blur' },
{ required: true, validator: this.validaddress, trigger: 'blur' } { type: 'number', validator: this.validaddress, trigger: 'change' }
], ],
// addressCode: [ // addressCode: [
// { required: true, message: '请选择服务地点', trigger: 'change,blur' } // { required: true, message: '请选择服务地点', trigger: 'change,blur' }
...@@ -723,7 +725,7 @@ export default { ...@@ -723,7 +725,7 @@ export default {
{ required: true, message: '请输入服务地址', trigger: 'blur' } { required: true, message: '请输入服务地址', trigger: 'blur' }
], ],
'useTime.ams': [ 'useTime.ams': [
{ required: true, validator: this.validateMorningStart, trigger: 'change' } { required: true, validator: this.validateMorningStart, trigger: 'blur' }
], ],
'useTime.ame': [ 'useTime.ame': [
{ required: true, validator: this.validateMorningEnd, trigger: 'blur' } { required: true, validator: this.validateMorningEnd, trigger: 'blur' }
...@@ -752,10 +754,12 @@ export default { ...@@ -752,10 +754,12 @@ export default {
{ min: 2, max: 200, message: '备注长度必须介于2~200之间', trigger: 'blur' } { min: 2, max: 200, message: '备注长度必须介于2~200之间', trigger: 'blur' }
], ],
serviceArea: [ serviceArea: [
{ required: true, message: '请选择支持服务地区', trigger: 'blur' } { required: true, message: '请选择支持服务地区', trigger: 'blur' },
{ type: 'number', validator: this.validserviceArea, trigger: 'change' }
], ],
checkType: [ checkType: [
{ required: true, message: '请选择支持检查类型', trigger: 'blur' } { required: true, message: '请选择支持检查类型', trigger: 'blur' },
{ type: 'number', validator: this.validcheckType, trigger: 'change' }
] ]
}, },
// 是否平台自有设备 // 是否平台自有设备
...@@ -899,6 +903,7 @@ export default { ...@@ -899,6 +903,7 @@ export default {
callback(new Error('单位时段服务数不能为0')) callback(new Error('单位时段服务数不能为0'))
} }
}, },
// 服务地点表单校验
validaddress(rule, value, callback) { validaddress(rule, value, callback) {
console.log('validaddress', this.form.selectedOptions) console.log('validaddress', this.form.selectedOptions)
if (this.form.selectedOptions.length > 0) { if (this.form.selectedOptions.length > 0) {
...@@ -907,6 +912,24 @@ export default { ...@@ -907,6 +912,24 @@ export default {
callback(new Error('请选择服务地点')) callback(new Error('请选择服务地点'))
} }
}, },
// 支持服务地区表单校验
validserviceArea(rule, value, callback) {
console.log('validaddress', this.form.serviceArea)
if (this.form.serviceArea.length > 0) {
callback()
} else {
callback(new Error('请选择支持检查项目'))
}
},
// 支持检查类型表单校验
validcheckType(rule, value, callback) {
console.log('validaddress', this.form.checkType)
if (this.form.checkType.length > 0) {
callback()
} else {
callback(new Error('请选择支持服务地区'))
}
},
// 四个时间的表单校验 // 四个时间的表单校验
validateMorningStart(rule, value, callback) { validateMorningStart(rule, value, callback) {
// // TODO: please clear this log // // TODO: please clear this log
...@@ -921,7 +944,7 @@ export default { ...@@ -921,7 +944,7 @@ export default {
console.log('上午开始时间第一层报错') console.log('上午开始时间第一层报错')
callback(new Error('请选择上午开始时间')) callback(new Error('请选择上午开始时间'))
} else { } else {
if (isEmpty(value) && isEmpty(morningEnd)) { if (isEmpty(value) && isEmpty(!morningEnd)) {
console.log('上午开始时间第二层报错') console.log('上午开始时间第二层报错')
callback(new Error('请选择上午开始时间')) callback(new Error('请选择上午开始时间'))
} else { } else {
...@@ -935,7 +958,7 @@ export default { ...@@ -935,7 +958,7 @@ export default {
console.log('上午结束时间第一层报错') console.log('上午结束时间第一层报错')
callback(new Error('请选择上午结束时间')) callback(new Error('请选择上午结束时间'))
} else { } else {
if (isEmpty(value) && isEmpty(morningStart)) { if (isEmpty(value) && isEmpty(!morningStart)) {
console.log('上午结束时间第一层报错') console.log('上午结束时间第一层报错')
callback(new Error('请选择上午结束时间')) callback(new Error('请选择上午结束时间'))
} else { } else {
...@@ -949,7 +972,7 @@ export default { ...@@ -949,7 +972,7 @@ export default {
console.log(' 下午开始时间第一层报错') console.log(' 下午开始时间第一层报错')
callback(new Error('请选择下午开始时间')) callback(new Error('请选择下午开始时间'))
} else { } else {
if (isEmpty(value) && isEmpty(afternoonEnd)) { if (isEmpty(value) && isEmpty(!afternoonEnd)) {
console.log('下午开始时间开始第二层报错') console.log('下午开始时间开始第二层报错')
callback(new Error('请选择下午开始时间')) callback(new Error('请选择下午开始时间'))
} else { } else {
...@@ -963,7 +986,7 @@ export default { ...@@ -963,7 +986,7 @@ export default {
console.log('下午结束时间结束第一层报错') console.log('下午结束时间结束第一层报错')
callback(new Error('请选择下午结束时间')) callback(new Error('请选择下午结束时间'))
} else { } else {
if (isEmpty(value) && isEmpty(afternoonStart)) { if (isEmpty(value) && isEmpty(!afternoonStart)) {
console.log('下午结束时间结束第二层报错') console.log('下午结束时间结束第二层报错')
callback(new Error('请选择下午结束时间')) callback(new Error('请选择下午结束时间'))
} else { } else {
......
...@@ -515,6 +515,7 @@ export default { ...@@ -515,6 +515,7 @@ export default {
}, },
/** 查询设备列表 */ /** 查询设备列表 */
getList() { getList() {
this.loading = true
if (this.daterangeCreateTime !== '') { if (this.daterangeCreateTime !== '') {
this.queryParams.beginCheckTime = this.daterangeCreateTime + ' 00:00:00' this.queryParams.beginCheckTime = this.daterangeCreateTime + ' 00:00:00'
this.queryParams.endCheckTime = this.daterangeCreateTime + ' 23:59:59' this.queryParams.endCheckTime = this.daterangeCreateTime + ' 23:59:59'
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-form-item prop="deviceCode"> <el-form-item prop="deviceCode">
<el-input <el-input
v-model.trim="queryParams.searchText" v-model.trim="queryParams.searchText"
placeholder="请输入设备名称/ID" placeholder="请输入设备名称/设备ID"
clearable clearable
/> />
</el-form-item> </el-form-item>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
v-model="queryParams.reportTime" v-model="queryParams.reportTime"
type="date" type="date"
style="width: 240px" style="width: 240px"
placeholder="选择检查日期" placeholder="选择检查日期"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
/> />
</el-form-item> </el-form-item>
......
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