Commit 84729270 authored by 小费同学阿's avatar 小费同学阿 💬

Merge remote-tracking branch 'origin/master'

parents b6b93bdf 9853422c
......@@ -255,17 +255,51 @@ export const constantRoutes = [
},
// 轮播
{
path: '/banner/management',
path: '/banner-management',
component: Layout,
hidden: true,
permissions: ['*:*:*'],
children: [
// 轮播管理
{
path: 'index',
props: true,
component: () => import('@/views/banner_management/banner_management.vue'),
name: 'banner_management',
component: () => import('@/views/banner_management/banner_management'),
name: 'BannerManagement',
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'
}
}
]
},
......
<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: 5px 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">
<span style="height: 2.5rem;line-height: 2.5rem">
<el-switch
v-model="form.status"
active-color="#13ce66"
inactive-color="#f5aa6c"
active-value="1"
inactive-value="2"
/>
</span>
<span v-if="form.status === '1'" style="height: 2.5rem;line-height: 2.5rem;color: #67C23A;margin-left: 5px;">已发布</span>
<span v-else style="height: 2.5rem;line-height: 2.5rem;color: #f5aa6c;margin-left: 5px;">未发布</span>
</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>
</template>
<script>
import { parseTime } from '@/utils/ruoyi'
import { addBanner, listBanner } from '@/api/business/banner'
export default {
name: 'BannerAdd',
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: {},
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>
<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>
<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: 5px 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: 5px 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">
<span style="height: 2.5rem;line-height: 2.5rem">
<el-switch
v-model="form.status"
active-color="#13ce66"
inactive-color="#f5aa6c"
active-value="1"
inactive-value="2"
:disabled="form.id === 1"
/>
<span v-if="form.status === '1'" style="color: #67C23A;margin-left: 5px;">已发布</span>
<span v-else style="color: #f5aa6c;margin-left: 5px;">未发布</span>
</span>
</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: false, 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 @@
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="68px">
<el-form-item prop="title">
<el-input
v-model="queryParams.title"
v-model.trim="queryParams.title"
placeholder="请输入标题"
maxlength="20"
clearable
@keyup.enter.native="handleQuery"
/>
......@@ -28,7 +29,7 @@
<el-option
v-for="item in dict.type.banner_status"
:key="item.value"
:label="item.label.substring(1)"
:label="item.label.substring(0)"
:value="item.value"
/>
</el-select>
......@@ -42,8 +43,8 @@
value-format="yyyy-MM-dd"
/>
</el-form-item>
<el-form-item prop="sortWay">
<el-select v-model.trim="queryParams.sortWay" clearable placeholder="请选择排序方式">
<el-form-item prop="orderWay">
<el-select v-model.trim="queryParams.orderWay" clearable placeholder="请选择排序方式">
<el-option
v-for="item in dict.type.banner_order"
:key="item.value"
......@@ -82,17 +83,22 @@
>
<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="img" show-overflow-tooltip width="80px">
<el-table-column label="轮播图" prop="img" show-overflow-tooltip width="100px">
<template slot-scope="scope">
{{ scope.row.img ? '已上传':'未上传' }}
</template>
</el-table-column>
<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">
<el-table-column label="跳转链接" prop="url" show-overflow-tooltip>
<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>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width">
......@@ -100,6 +106,7 @@
<div style="display: flex;">
<div style="padding-right: 20px;">
<el-button
v-hasPermi="['business:banner:query']"
icon="el-icon-document"
plain
size="mini"
......@@ -111,7 +118,7 @@
</div>
<div style="padding-right: 20px;">
<el-button
v-hasPermi="['business:article:edit']"
v-hasPermi="['business:banner:edit']"
icon="el-icon-edit"
plain
size="mini"
......@@ -121,10 +128,10 @@
>编辑
</el-button>
</div>
<div v-if="scope.row.status==='2' && scope.row.id !== 1">
<div v-if="scope.row.status==='2'">
<el-button
key="1"
v-hasPermi="['business:article:remove']"
v-hasPermi="['business:banner:remove']"
icon="el-icon-delete"
plain
size="mini"
......@@ -134,15 +141,17 @@
>删除
</el-button>
</div>
<div v-else-if="scope.row.status==='1' && scope.row.id !== 1">
<div v-else-if="scope.row.status==='1'">
<el-button
key="2"
v-hasPermi="['business:banner:edit']"
icon="el-icon-video-pause"
plain
size="mini"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255,157,78);"
type="warning"
@click="deListBanner(scope.row)"
:disabled="scope.row.id === 1"
>下架
</el-button>
</div>
......@@ -165,7 +174,7 @@
</template>
<script>
import { listBanner, getBanner, delBanner, addBanner, updateBanner } from '@/api/business/banner'
import { listBanner, delBanner, addBanner, updateBanner } from '@/api/business/banner'
export default {
name: 'BannerManagement',
......@@ -194,14 +203,11 @@ export default {
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
title: null,
imgBoolean: null,
sortWay: null,
url: null,
sort: null,
orderWay: '',
status: null,
notes: null,
createTime: null
},
// 轮播图状态下拉框
......@@ -234,6 +240,7 @@ export default {
/** 查询轮播图管理列表 */
getBannerList() {
this.loading = true
console.log('查询条件', this.queryParams)
listBanner(this.queryParams).then(response => {
this.bannerList = response.rows
this.total = response.total
......@@ -280,19 +287,15 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加轮播图管理'
this.$router.push('/banner-management/banner-add')
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getBanner(id).then(response => {
this.form = response.data
this.open = true
this.title = '修改轮播图管理'
})
this.$router.push('/banner-management/banner-edit?id=' + row.id)
},
/** 详情按钮操作 */
handleDetail(row) {
this.$router.push('/banner-management/banner-detail?id=' + row.id)
},
/** 提交按钮 */
submitForm() {
......@@ -317,7 +320,7 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除轮播图管理编号为"' + ids + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除该轮播图信息?').then(function() {
return delBanner(ids)
}).then(() => {
this.getBannerList()
......@@ -336,11 +339,17 @@ export default {
id: row.id,
status: '2'
}
updateBanner(update).then(res => {
if (res.code === 200) {
this.getBannerList()
}
})
this.$modal.confirm('是否确认下架该轮播图信息?').then(function() {
updateBanner(update).then(res => {
if (res.code === 200) {
this.getBannerList()
}
})
return null
}).then(() => {
this.getBannerList()
this.$modal.msgSuccess('下架成功')
}).catch(() => {})
}
}
}
......
......@@ -6,7 +6,7 @@
</div>
<div style="display: flex; padding-left: 20px;padding-bottom: 10px;">
<div class="tip1" />
<div style="padding-top: 3px;padding-left: 18px;color: #666666; font-weight: 500; font-size: 16px;">设备信息</div>
<div style="padding-top: 3px;padding-left: 15px;font-size: 16px;font-weight: bold;color: #333333;">当前设备信息</div>
</div>
<div style="width: 90%">
<el-form :model="form" label-width="150px">
......@@ -21,7 +21,7 @@
<el-input v-model="form.ruleId" :disabled="true" placeholder="暂无数据" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col v-show="userType==='3' || userType==='2'" :span="8">
<el-form-item label="医院自有设备" prop="isPrivate">
<el-select v-model="form.isPrivate" :disabled="true" placeholder="暂无数据">
<el-option
......@@ -33,6 +33,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col v-show="userType==='00'" :span="8">
<el-form-item label="平台自有设备" prop="isPrivate">
<el-input v-model="isPrivate" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
......@@ -63,7 +68,7 @@
<el-form-item label="预约方式" prop="reservationMethod">
<el-select v-model="form.reservationMethod" :disabled="true" placeholder="暂无数据">
<el-option
v-for="dict in dict.type.device_type"
v-for="dict in dict.type.reservation_method"
:key="dict.value"
:label="dict.label"
:value="dict.value"
......@@ -140,8 +145,8 @@
<el-form-item label="支持检查类型" prop="checkType">
<el-select v-model="form.checkType" placeholder="暂无数据" multiple clearable :disabled="true">
<el-option
v-for="(item,index) in checkList"
:key="index"
v-for="item in checkList"
:key="item.id"
:label="item.dictName"
:value="item.id"
/>
......@@ -151,7 +156,7 @@
</el-row>
<div style=" display: flex;position: relative;left: 20px;padding-bottom: 20px;">
<div class="tip1" />
<div style="padding-top: 3px;padding-left: 18px;color: #666666; font-weight: 500; font-size: 16px;">宠物信息</div>
<div style="padding-top: 3px;padding-left: 15px;font-size: 16px;font-weight: bold;color: #333333;">宠物信息</div>
</div>
<el-row>
<el-col :span="8">
......@@ -241,7 +246,7 @@
</el-row>
<div style="display: flex;position: relative;left: 20px;padding-bottom: 20px;">
<div class="tip1" />
<div style="padding-top: 3px;padding-left: 18px;color: #666666; font-weight: 500; font-size: 16px;">宠主信息</div>
<div style="padding-top: 3px;padding-left: 15px;font-size: 16px;font-weight: bold;color: #333333;">宠主信息</div>
</div>
<el-row>
<el-col :span="8">
......@@ -263,7 +268,7 @@
<div style="display: flex;position: relative;left: 20px;padding-bottom: 20px;">
<div class="tip1" />
<div style="padding-top: 3px;padding-left: 18px;color: #666666; font-weight: 500; font-size: 16px;">设备使用信息</div>
<div style="padding-top: 3px;padding-left: 15px;font-size: 16px;font-weight: bold;color: #333333;">设备使用信息</div>
</div>
<el-row>
<el-col :span="8">
......@@ -303,8 +308,8 @@
</el-row>
</el-form>
</div>
<div style="padding-left: 150px;width: 90%;padding-bottom: 20px;">
<el-button style="width: 98px;height: 32px;" icon="el-icon-back" class="resetBtn" @click="cancel">返 回</el-button>
<div style="padding-left: 150px;width: 90%;padding-bottom: 20px;;text-align: center;">
<el-button icon="el-icon-back" class="resetBtn" @click="cancel">返 回</el-button>
</div>
</div>
</div>
......@@ -313,12 +318,15 @@
<script>
import { selectCheckItem, useManagementDetail } from '@/api/business/use'
import { CodeToText } from 'element-china-area-data'
import { getInfo } from '@/api/login'
export default {
name: 'UseDetails',
dicts: ['payment_status', 'exam_type', 'device_status', 'device_type', 'pet_sex', 'sterilization_status', 'vaccine_situation', 'pet_insure'],
dicts: ['payment_status', 'exam_type', 'device_status', 'device_type', 'pet_sex', 'sterilization_status', 'vaccine_situation', 'pet_insure', 'reservation_method'],
data() {
return {
isPrivate: '是',
userType: '',
useId: '',
createTime: '',
// 检查时间
......@@ -352,8 +360,16 @@ export default {
this.useId = localStorage.getItem('useId')
this.getUseDetail()
this.getCheckList()
this.getUserLogin()
},
methods: {
// 获取登陆人信息
getUserLogin() {
getInfo().then(res => {
this.userType = res.user.userType
console.log('登陆人', res)
})
},
// 检查项目下拉框
getCheckList() {
selectCheckItem().then(res => {
......@@ -399,11 +415,17 @@ export default {
const newArr = arr.map(num => Number(num))
this.form.checkType = newArr
}
this.createTime = (this.form.createTime.slice(0, this.form.createTime.length - 8)).replace(/-/g, '/')
this.checkDate = (this.form.checkStartTime.slice(0, this.form.checkStartTime.length - 8)).replace(/-/g, '/')
const hour = this.form.checkStartTime.substring(this.form.checkStartTime.indexOf(' ') + 1, this.form.checkStartTime.indexOf(':'))
const minute = this.form.checkStartTime.substring(this.form.checkStartTime.indexOf(':') + 1, this.form.checkStartTime.lastIndexOf(':'))
this.checkTime = hour + ':' + minute
if (this.form.createTime !== null && this.form.createTime !== '') {
this.createTime = (this.form.createTime.slice(0, this.form.createTime.length - 8)).replace(/-/g, '/')
}
if (this.form.checkStartTime !== null && this.form.checkStartTime !== '') {
this.checkDate = (this.form.checkStartTime.slice(0, this.form.checkStartTime.length - 8)).replace(/-/g, '/')
const hour = this.form.checkStartTime.substring(this.form.checkStartTime.indexOf(' ') + 1, this.form.checkStartTime.indexOf(':'))
const minute = this.form.checkStartTime.substring(this.form.checkStartTime.indexOf(':') + 1, this.form.checkStartTime.lastIndexOf(':'))
this.checkTime = hour + ':' + minute
}
const payAmount = this.form.payAmount.toFixed(2)
this.form.payAmount = payAmount.toString()
})
}
}
......
......@@ -138,7 +138,7 @@
</el-table-column>
<el-table-column label="缴费金额" align="left" prop="payAmount">
<template slot-scope="scope">
<span>{{ scope.row.payAmount || '-' }}</span>
<span>{{ formatPrice(scope.row.payAmount) || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="设备当前状态" align="left" prop="status">
......@@ -275,6 +275,10 @@ export default {
this.getCheckList()
},
methods: {
// 表格显示病房单价保留两位小数
formatPrice(cellValue) {
return cellValue.toFixed(2) + '元'
},
// 表单选择框对齐
cellClass(row) {
if (row.columnIndex === 0) { return 'disabledCheck' }
......@@ -332,7 +336,7 @@ export default {
this.$refs.table.clearSelection()
})
} else {
this.$modal.msgError('请选择至少一条数据导出')
this.$modal.msgWarning('请选择至少一条数据导出')
return
}
},
......@@ -344,6 +348,7 @@ export default {
},
// 获取列表数据
getUseList() {
this.loading = true
// if (this.daterangeCreateTime !== '') {
// this.queryParams.beginCheckTime = this.daterangeCreateTime + ' 00:00:00'
// this.queryParams.endCheckTime = this.daterangeCreateTime + ' 23:59:59'
......@@ -351,6 +356,7 @@ export default {
listUseManagement(this.queryParams).then(res => {
this.total = res.total
this.userList = res.rows
this.loading = false
console.log('列表', res)
})
},
......@@ -423,6 +429,10 @@ export default {
</script>
<style scoped>
/*表格内容选中后的样式*/
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell{
background-color: #F6FCF5 !important;
}
::v-deep.app-container{
background-color:#ffffff;
}
......
......@@ -17,17 +17,32 @@
<el-row>
<el-col :span="8">
<el-form-item label="宠物昵称">
<span>{{ subscribeMessage.petNickname }}</span>
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petNickname"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="宠物ID">
<span>{{ subscribeMessage.petsId }}</span>
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petsId"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="宠物品种">
<span>{{ subscribeMessage.petBreed }}</span>
<el-form-item label="宠物品种" label-width="81px">
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petBreed"
disabled
/>
</el-form-item>
</el-col>
</el-row>
......@@ -35,17 +50,36 @@
<el-row>
<el-col :span="8">
<el-form-item label="宠物性别">
<span>{{ subscribeMessage.petSex === '0' ? '雄性' : (subscribeMessage.petSex === '1' ? '雌性' : '其他') }}</span>
<el-select class="input-detail" v-model="subscribeMessage.petSex" disabled placeholder="暂无数据">
<el-option
v-for="item in dict.type.pet_sex"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="宠物年龄">
<span>{{ subscribeMessage.petAge }}</span>
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petAge"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="宠物体重">
<span>{{ subscribeMessage.petWeight + 'kg' }}</span>
<el-form-item label="宠物体重" label-width="81px">
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petWeight"
disabled
>
<template #suffix>kg</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -53,17 +87,36 @@
<el-row>
<el-col :span="8">
<el-form-item label="宠物毛色">
<span>{{ subscribeMessage.petColor }}</span>
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.petColor"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="绝育情况">
<span>{{ subscribeMessage.sterilizationStatus === '0' ? '已绝育' : '未绝育' }}</span>
<el-select class="input-detail" v-model="subscribeMessage.sterilizationStatus" disabled placeholder="暂无数据">
<el-option
v-for="item in dict.type.sterilization_status"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="疫苗情况">
<span>{{ subscribeMessage.vaccineSituation === '0' ? '当年已接种' : '当年未接种' }}</span>
<el-form-item label="疫苗情况" label-width="81px">
<el-select class="input-detail" v-model="subscribeMessage.vaccineSituation" disabled placeholder="暂无数据">
<el-option
v-for="item in dict.type.vaccine_situation"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -71,7 +124,14 @@
<el-row>
<el-col :span="8">
<el-form-item label="宠物保险">
<span>{{ subscribeMessage.insure === '0' ? '未购保险' : '已购保险' }}</span>
<el-select class="input-detail" v-model="subscribeMessage.insure" disabled placeholder="暂无数据">
<el-option
v-for="item in insureOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
......@@ -82,17 +142,34 @@
<el-row>
<el-col :span="8">
<el-form-item label="检查类型">
<span>{{ subscribeMessage.checkType === '0' ? '医院自有服务' : '预约外部服务' }}</span>
<el-select class="input-detail" v-model="subscribeMessage.checkType" disabled placeholder="暂无数据">
<el-option
v-for="item in dict.type.check_type"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查项目">
<span>{{ subscribeMessage.checkItemsName || '-' }}</span>
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.checkItemsName"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="缴费金额">
<span>{{ keepTwoDecimals(subscribeMessage.payAmount) }}</span>
<el-form-item label="缴费金额" label-width="81px">
<el-input
class="input-detail"
placeholder="暂无数据"
v-model="subscribeMessage.payAmount"
disabled
/>
</el-form-item>
</el-col>
</el-row>
......@@ -100,7 +177,7 @@
<div class="title-paragraph">
<span class="title-text" style="font-size: 16px;font-weight: bold;">设备预约</span>
</div>
<el-form ref="formDevice" :model="queryParams" label-width="100px">
<el-form ref="formDevice" :model="queryParams" label-width="70px">
<el-row>
<el-col :span="8">
<el-form-item label="设备">
......@@ -127,7 +204,7 @@
</el-form-item>
</el-col>
<el-col v-show="subscribeMessage.checkType === '2'" :span="8">
<el-form-item label="支出账户余额">
<el-form-item label="支出账户余额" label-width="81px">
11800.00
</el-form-item>
</el-col>
......@@ -137,6 +214,7 @@
<el-table
:data="deviceList"
:header-cell-style="{background:'#E8E9E8'}"
empty-text="当前暂无可预约设备"
>
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="检查日期" align="center" prop="checkDate">
......@@ -183,7 +261,7 @@ import { getManage } from '@/api/business/manage'
export default {
name: 'CheckSubscribe',
dicts: ['exam_type'],
dicts: ['pet_sex', 'sterilization_status', 'vaccine_situation', 'check_type'],
data() {
return {
checkDetail: {},
......@@ -192,7 +270,7 @@ export default {
subscribeMessage: {},
deviceQueryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
reservationTime: null, // 检查日期(默认当前日期)
isPrivate: null, // 检查类型(0-外部、1医院)--不变
checkTypeList: [], // 检查项目ID(String[])--不变
......@@ -204,7 +282,18 @@ export default {
selectableDevice: [],
// 检查表ID
currentCheckId: null,
currentPayAmount: null
currentPayAmount: null,
// 宠物保险
insureOptions: [
{
value: '0',
label: '未购保险'
},
{
value: '1',
label: '已购保险'
}
]
}
},
created() {
......@@ -212,6 +301,7 @@ export default {
getManage(id).then(response => {
this.subscribeMessage = response.data
console.log('立即预约页面', this.subscribeMessage)
this.subscribeMessage.payAmount = this.keepTwoDecimals(this.subscribeMessage.payAmount)
// 时间
this.deviceQueryParams.reservationTime = parseTime(new Date(), '{y}-{m}-{d}')
// 服务类型(医院自有、外部服务)
......@@ -268,7 +358,7 @@ export default {
// 金额保留两位小数
keepTwoDecimals(price) {
if (price === null) {
return '-'
return null
} else {
return '¥' + price.toFixed(2)
}
......@@ -287,7 +377,7 @@ export default {
this.total = res.total
if (this.subscribeMessage.checkType === '2' && this.deviceList.length > 0) {
this.deviceList.forEach(item => {
item['price'] = this.subscribeMessage.payAmount
item['price'] = this.keepTwoDecimals(this.subscribeMessage.payAmount)
})
}
console.log('列表', this.deviceList)
......@@ -336,4 +426,7 @@ export default {
background-color: #FFFFFF;
}
.input-detail {
width: 392px;
}
</style>
......@@ -200,8 +200,8 @@
type="success"
icon="el-icon-check"
plain
:disabled="scope.row.deviceId !== null"
@click="handleSubscribe(scope.row)"
:disabled="scope.row.deviceId !== null"
>立即预约
</el-button>
</template>
......@@ -282,7 +282,11 @@
</template>
</el-table-column>
<el-table-column prop="num" align="left" label="剩余可预约" />
<el-table-column v-if="currentCheckType === '2'" prop="date" align="left" label="设备服务费" />
<el-table-column v-if="currentCheckType === '2'" prop="price" align="left" label="设备服务费">
<template slot-scope="scope">
<span>{{ scope.row.price || '-' }}</span>
</template>
</el-table-column>
<el-table-column align="left" label="操作">
<template slot-scope="scope">
<el-button
......@@ -343,7 +347,7 @@ export default {
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
orderByColumn: null,
isAsc: null,
petNickname: null,
......@@ -384,7 +388,7 @@ export default {
],
deviceQueryParams: {
pageNum: 1,
pageSize: 10,
pageSize: 20,
reservationTime: null, // 检查日期(默认当前日期)
isPrivate: null, // 检查类型(0-外部、1医院)
checkTypeList: [], // 检查项目ID(String[])
......@@ -441,6 +445,13 @@ export default {
this.loading = false
})
},
keepTwoDecimals(price) {
if (price === null) {
return null
} else {
return '¥' + price.toFixed(2)
}
},
/** 表单选择框对齐 */
cellClass(row) {
if (row.columnIndex === 0) {
......@@ -633,7 +644,7 @@ export default {
this.deviceTotal = res.total
if (this.currentCheckType === '2' && this.deviceList.length > 0) {
this.deviceList.forEach(item => {
item['price'] = this.currentPayAmount
item['price'] = this.keepTwoDecimals(this.currentPayAmount)
})
}
})
......@@ -784,4 +795,8 @@ export default {
.app-container {
background-color: #FFFFFF;
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 0vh !important;
}
</style>
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