Commit 0ef84557 authored by 王飞龙's avatar 王飞龙

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/router/index.js
parent 9e049834
...@@ -431,3 +431,10 @@ input::-webkit-input-placeholder { ...@@ -431,3 +431,10 @@ input::-webkit-input-placeholder {
color: #5FB54B; color: #5FB54B;
cursor: pointer; cursor: pointer;
} }
.el-input-number .el-input input {
text-align: center;
}
.el-cascader{
color: #5FB54B;
}
...@@ -133,6 +133,13 @@ export const constantRoutes = [ ...@@ -133,6 +133,13 @@ export const constantRoutes = [
name: 'EquipmentAdd', name: 'EquipmentAdd',
meta: { title: '设备新增' } meta: { title: '设备新增' }
}, },
{
path: 'equipment-check',
props: true,
component: () => import('@/views/equipment-management/equipment-management/equipment-check'),
name: 'EquipmentCheck',
meta: { title: '检查项目' }
},
{ {
path: 'use-management', path: 'use-management',
......
...@@ -327,67 +327,67 @@ export default { ...@@ -327,67 +327,67 @@ export default {
county: '', county: '',
area: '' area: ''
}, },
// // 表单校验 // 表单校验
// rules: { rules: {
// deviceName: [ deviceName: [
// { required: true, message: '请输入设备名称', trigger: 'blur' }, { required: true, message: '请输入设备名称', trigger: 'blur' },
// { min: 2, max: 20, message: '输入内容长度应为2~20个字符', trigger: 'blur' } { min: 2, max: 20, message: '输入内容长度应为2~20个字符', trigger: 'blur' }
// ], ],
//
// head: [ head: [
// { min: 2, max: 20, message: '输入内容长度应为2~20个字符', trigger: 'blur' } { min: 2, max: 20, message: '输入内容长度应为2~20个字符', trigger: 'blur' }
// ], ],
// phone: [ phone: [
// { {
// pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
// message: '请输入正确的手机号码', message: '请输入正确的手机号码',
// trigger: 'blur' trigger: 'blur'
// } }
// ], ],
// deviceType: [ deviceType: [
// { required: true, message: '请选择设备类型', trigger: 'change' } { required: true, message: '请选择设备类型', trigger: 'change' }
// ], ],
// addressCode: [ addressCode: [
// { required: true, message: '请选择服务地点', trigger: 'change,blur' } { required: true, message: '请选择服务地点', trigger: 'change,blur' }
// ], ],
// useNum: [ useNum: [
// { required: true, message: '请选择服务单位时段服务数', trigger: 'change,blur' } { required: true, message: '请输入服务单位时段服务数', trigger: 'change,blur' }
// ], ],
// address: [ address: [
// { required: true, message: '请输入服务地址', trigger: 'blur' } { required: true, message: '请输入服务地址', trigger: 'blur' }
// ], ],
// ams: [ ams: [
// { required: true, validator: this.validateMorningStart, trigger: 'blur' } { required: true, validator: this.validateMorningStart, trigger: 'blur' }
// ], ],
// ame: [ ame: [
// { required: true, validator: this.validateMorningEnd, trigger: 'blur' } { required: true, validator: this.validateMorningEnd, trigger: 'blur' }
// ], ],
// pms: [ pms: [
// { required: true, validator: this.validateAfternoonStart, trigger: 'blur' } { required: true, validator: this.validateAfternoonStart, trigger: 'blur' }
// ], ],
// pme: [ pme: [
// { required: true, validator: this.validateAfternoonEnd, trigger: 'blur' } { required: true, validator: this.validateAfternoonEnd, trigger: 'blur' }
// ], ],
// sort: [ sort: [
// { required: true, message: '请输入权重', trigger: 'change' }, { required: true, message: '请输入权重', trigger: 'change' },
// { pattern: /^([1-9]\d{0,3})$/, message: '权重范围为1-9999', trigger: 'blur' } { pattern: /^([1-9]\d{0,3})$/, message: '权重范围为1-9999', trigger: 'blur' }
// ], ],
// status: [ status: [
// { required: true, message: '请选择设备状态', trigger: 'change' } { required: true, message: '请选择设备状态', trigger: 'change' }
// ], ],
// reservationMethod: [ reservationMethod: [
// { required: true, message: '请选择预约方式', trigger: 'change' } { required: true, message: '请选择预约方式', trigger: 'change' }
// ], ],
// remark: [ remark: [
// { min: 2, max: 200, message: '输入内容长度应为2~20个字符', trigger: 'blur' } { min: 2, max: 200, message: '输入内容长度应为2~20个字符', trigger: 'blur' }
// ], ],
// serviceArea: [ serviceArea: [
// { required: true, message: '请选择支持服务地区', trigger: 'blur' } { required: true, message: '请选择支持服务地区', trigger: 'blur' }
// ], ],
// checkType: [ checkType: [
// { required: true, message: '请选择支持检查类型', trigger: 'blur' } { required: true, message: '请选择支持检查类型', trigger: 'blur' }
// ] ]
// }, },
// 是否医院自有设备 // 是否医院自有设备
optionss: [ optionss: [
{ {
......
<template>
<div class="app-container">
<!-- 头部标题-->
<div style="padding-top:5px;text-align: center;">
<span
style="font-size: 24px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei,serif;
font-weight: bold;
color: #333333;"
>检查项目</span>
</div>
<el-form ref="form" label-width="110px" :model="form" :rules="rules">
<!-- 检查项目可以添加n个,所以for循环 -->
<div
v-for="(item, index) in form.settingList"
:key="index"
class="card"
>
<div class="formTop">
<div class="title">项目{{ convertToChineseNumeral( index + 1) }}</div>
<div>
<el-button
v-show="(!item.id) || (item.id && item.status === '0' && item.isDelete === '0')"
icon="el-icon-delete"
size="mini"
class="delBtn"
@click="handleDel(item, index)"
>删除项目</el-button>
</div>
</div>
<!-- 第一行:项目名称、检查类型、项目单价 -->
<el-row :gutter="41">
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.name'"
label="项目名称:"
:prop="'settingList.'+index+'.name'"
:rules="[
{ required: true, message: '请输入项目名称', trigger: 'blur' }
]"
>
<el-input
v-model="item.name"
:disabled="item.isUpdate === '1'"
placeholder="请输入项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.type'"
label="检查类型:"
:prop="'settingList.'+index+'.type'"
:rules="[
{ required: true, message: '请选择检查类型', trigger: 'change' }
]"
>
<el-select
v-model="item.type"
style="width: 100%"
placeholder="请选择检查类型"
>
<el-option
v-for="items in dict.type.exam_type"
:key="items.value"
:label="items.label"
:value="items.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.price'"
label="项目单价:"
:prop="'settingList.'+index+'.price'"
:rules="[
{ required: true, message: '请输入项目单价', trigger: 'change' }
]"
>
<el-input-number
v-model="item.price"
:min="0"
controls-position="right"
style="width: 240px"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行:支持保险支付、权重、状态 -->
<el-row :gutter="41">
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.supportInsure'"
label="支持保险支付:"
:prop="'settingList.'+index+'.supportInsure'"
:rules="[
{ required: true, message: '请选择是否支持保险支付', trigger: 'change' }
]"
>
<el-select
v-model="item.supportInsure"
style="width: 100%"
placeholder="请选择是否支持保险支付"
>
<el-option
v-for="items in insuranceOptions"
:key="items.value"
:label="items.label"
:value="items.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.sort'"
label="权重:"
:prop="'settingList.'+index+'.sort'"
:rules="[
{ required: true, message: '请输入权重', trigger: 'change' }
]"
>
<el-input-number
v-model="item.sort"
:min="0"
controls-position="right"
style="width: 256px"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
:ref="'settingList.'+index+'.status'"
label="状态:"
:prop="'settingList.'+index+'.status'"
:rules="[
{ required: true, message: '请选择状态', trigger: 'change' }
]"
>
<el-select
v-model="item.status"
style="width: 100%"
placeholder="请选择状态"
>
<el-option
v-for="items in statusOptions"
:key="items.value"
:label="items.label"
:value="items.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行:描述 -->
<el-row :gutter="41">
<el-col :span="24">
<el-form-item
:ref="'settingList.'+index+'.content'"
label="描述:"
:prop="'settingList.'+index+'.content'"
:rules="[
{ required: true, message: '请输入描述', trigger: 'blur' }
]"
>
<el-input
v-model="item.content"
type="textarea"
:rows="2"
:disabled="item.isUpdate === '1'"
placeholder="请输入描述"
/>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<div>
<el-button class="fourWordsBtn" type="primary" size="mini" @click="handleAddItem">新增项目</el-button>
<el-button v-loading.fullscreen.lock="fullscreenLoading" class="queryBtn" type="primary" size="mini" @click="handleSubmit">提交</el-button>
<el-button class="resetBtn" size="mini" @click="handleGoBack">返回</el-button>
</div>
</div>
</template>
<script>
import { delItem, listItem, updateItem } from '@/api/business/item'
export default {
name: 'EquipmentCheck',
dicts: ['exam_type'],
data() {
return {
// 表单内容
form: {
settingList: [
{
name: '',
type: '',
price: '',
supportInsure: '',
sort: '',
status: '1',
content: '',
itemType: '0' // 用于判断是检查的项目
}
]
},
// 表单规则
rules: {},
// 检查类型
statusOptions: [
{ value: '1', label: '已启用' },
{ value: '0', label: '已禁用' }
],
// 支持保险
insuranceOptions: [
{ value: '1', label: '是' },
{ value: '0', label: '否' }
],
fullscreenLoading: false
}
},
created() {
this.getList()
},
methods: {
/** 获取数据 */
getList() {
listItem().then(response => {
if (response.code === 200) {
console.log('aaa', response)
if (response.rows.length > 0) {
this.form.settingList = response.rows
} else {
this.form.settingList = [{
name: '',
type: '',
price: '',
supportInsure: '',
sort: '',
status: '1',
content: '',
itemType: '0'
}]
}
}
})
},
/** 将阿拉伯数字转成汉字(如:1变成一)*/
convertToChineseNumeral(num) {
// eslint-disable-next-line no-undef
if (num === 10) {
return '十'
// eslint-disable-next-line no-undef
} else if (num === 1) {
return '一'
}
const digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
const units = ['', '十', '百', '千', '万']
let result = ''
// eslint-disable-next-line no-undef
const numStr = num.toString()
for (let i = 0; i < numStr.length; i++) {
const digit = parseInt(numStr.charAt(i))
const unit = units[numStr.length - i - 1]
if (digit === 0) {
// 当前数字为0时不需要输出汉字,但需要考虑上一个数字是否为0,避免出现连续的零
if (result.charAt(result.length - 1) !== '零') {
result += '零'
}
} else {
result += digits[digit] + unit
}
}
// 对于一些特殊的数字,如10、100等,需要在最前面加上“一”
if (result.charAt(0) === '一') {
result = result.substr(1, result.length)
} else if (result.charAt(0) === '百') {
result = '一' + result
} else if (result.charAt(0) === '千') {
result = '一' + result
}
return result
},
/** 删除项目 */
handleDel(item, index) {
// 有创建时间的走接口删除,没有的说明还没有新增上去,前端自己过滤
if (item.id) {
this.$confirm('是否确认删除该项目', '提示', {
type: 'warning',
customClass: 'box-logout',
cancelButtonClass: 'resetBtn',
confirmButtonClass: 'queryBtn'
}).then(function() {
console.log('item.id', item.id)
return delItem(item.id)
}).then(() => {
this.getList()
this.$refs['form'].resetFields()
this.$modal.msgSuccess('删除成功')
}).catch(() => {
})
} else {
this.$confirm('是否确认删除该项目', '提示', {
type: 'warning',
customClass: 'box-logout',
cancelButtonClass: 'resetBtn',
confirmButtonClass: 'queryBtn'
}).then(function() {
}).then(() => {
this.form.settingList.splice(index, 1)
this.$modal.msgSuccess('删除成功')
}).catch(() => {})
}
},
// 新增项目
handleAddItem() {
this.form.settingList.push({
name: '',
type: '',
price: '',
supportInsure: '',
sort: '',
status: '1',
content: '',
itemType: '0'
})
},
// 提交
handleSubmit() {
this.$refs['form'].validate(valid => {
if (valid) {
console.log('成功通过....')
const addList = JSON.parse(JSON.stringify(this.form.settingList))
console.log('新增或者修改的集合', addList)
// 开始加loading遮罩, 防止操作
// this.fullscreenLoading = true
updateItem(addList).then(response => {
console.log('新增/修改--', response)
if (response.code === 200) {
this.getList()
// 解开遮罩层
this.$message.success('操作成功')
// this.fullscreenLoading = false
}
})
}
})
},
// 返回
handleGoBack() {
this.$router.push({
path: '/service-management/medical-record-management'
})
}
}
}
</script>
<style scoped lang="scss">
.app-container {
background-color: #FFFFFF;
padding: 40px 48px 50px 49px;
min-height: 850px;
.formTop{
display: flex;
justify-content: space-between;
padding-bottom: 20px
}
.el-form-item{
margin-bottom: 24px!important;
}
.card{
padding-bottom: 18px;
}
.title{
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #333333;
height: 24px;
flex: 1;
position: relative;
margin-bottom: 5px;
&::before {
content: '';
display: block;
background-color: #5FB54B;
border-radius: 10px 10px 10px 10px;
position: absolute;
left: -17px;
top: -2px;
bottom: 1px;
width: 3px;
}
}
}
</style>
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="单位时段服务数"> <el-form-item label="单位时段服务数" prop="useNum">
<el-input-number <el-input-number
v-model.trim="form.useNum" v-model.trim="form.useNum"
placeholder="请输入单位时段服务数" placeholder="请输入单位时段服务数"
...@@ -703,6 +703,9 @@ export default { ...@@ -703,6 +703,9 @@ export default {
addressCode: [ addressCode: [
{ required: true, message: '请选择服务地点', trigger: 'blur' } { required: true, message: '请选择服务地点', trigger: 'blur' }
], ],
useNum: [
{ required: true, message: '请输入服务单位时段服务数', trigger: 'change,blur' }
],
address: [ address: [
{ required: true, message: '请输入详细地址', trigger: 'blur' } { required: true, message: '请输入详细地址', trigger: 'blur' }
], ],
......
...@@ -102,6 +102,12 @@ ...@@ -102,6 +102,12 @@
@click="handleExport" @click="handleExport"
>批量导出 >批量导出
</el-button> </el-button>
<el-button
class="fourWordsBtn"
icon="el-icon-download"
size="mini"
@click="checkItem()"
>检查项目</el-button>
</el-col> </el-col>
<el-col :span="12" style="padding-bottom: 20px;text-align: end;"> <el-col :span="12" style="padding-bottom: 20px;text-align: end;">
<el-button class="queryBtn" icon="el-icon-search" @click="handleQuery">查询</el-button> <el-button class="queryBtn" icon="el-icon-search" @click="handleQuery">查询</el-button>
...@@ -119,7 +125,7 @@ ...@@ -119,7 +125,7 @@
<span>{{ scope.row.head || "-" }}</span> <span>{{ scope.row.head || "-" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="手机号" align="center" prop="phone"> <el-table-column label="手机号" align="center" prop="phone" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.phone || "-" }}</span> <span>{{ scope.row.phone || "-" }}</span>
</template> </template>
...@@ -138,19 +144,21 @@ ...@@ -138,19 +144,21 @@
<el-table-column label="服务地点" align="center" show-overflow-tooltip> <el-table-column label="服务地点" align="center" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.addressText + scope.row.address }}</span> <span>{{ scope.row.addressText + scope.row.address || "-" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="预约方式" align="center" prop="reservationMethod" show-overflow-tooltip /> <el-table-column label="预约方式" align="center" prop="reservationMethod" show-overflow-tooltip />
<el-table-column v-if="userType=== '3'" label="服务价格" align="center" prop="orderPrice"> <el-table-column v-if="userType=== '3'" label="服务价格" align="center" prop="orderPrice" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.orderPrice +"元" || "-" }}</span> <span>{{(scope.row.orderPrice == "" ||scope.row.orderPrice==null)? "-" :scope.row.orderPrice +"元"}}</span>
<!-- <span>{{ scope.row.orderPrice +"元" || "-" }}</span>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备服务费" align="center" prop="servicePrice"> <el-table-column label="设备服务费" align="center" prop="servicePrice">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.servicePrice +"元"|| "-" }}</span> <span>{{(scope.row.servicePrice == "" ||scope.row.servicePrice==null)? "-" :scope.row.servicePrice +"元"}}</span>
<!-- <span>{{ scope.row.servicePrice +"元"|| "-" }}</span>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建日期" align="center" prop="createTime" show-overflow-tooltip> <el-table-column label="创建日期" align="center" prop="createTime" show-overflow-tooltip>
...@@ -486,6 +494,12 @@ export default { ...@@ -486,6 +494,12 @@ export default {
this.loading = false this.loading = false
}) })
}, },
// 点击检查项目
checkItem() {
this.$router.push({
name: 'CheckItem'
})
},
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false this.open = false
......
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