|
|
@@ -23,9 +23,9 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="服务名称:" prop="serviceName">
|
|
|
+ <el-form-item label="服务名称:" prop="itemName">
|
|
|
<el-input
|
|
|
- v-model="queryParams.serviceName"
|
|
|
+ v-model="queryParams.itemName"
|
|
|
placeholder="请输入"
|
|
|
clearable
|
|
|
@keyup.enter="handleQuery"
|
|
|
@@ -76,14 +76,18 @@
|
|
|
>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="序号" type="index" width="80" align="center" />
|
|
|
- <el-table-column prop="serviceName" label="服务名称" align="center" min-width="120" />
|
|
|
- <el-table-column prop="serviceTypeName" label="服务类别" align="center" min-width="100" />
|
|
|
+ <el-table-column prop="itemName" label="服务名称" align="center" min-width="120" />
|
|
|
+ <el-table-column prop="categoryId" label="服务类别" align="center" min-width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ getServiceTypeName(scope.row.categoryId) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="服务图标" align="center" width="100">
|
|
|
<template #default="scope">
|
|
|
<el-image
|
|
|
- v-if="scope.row.serviceImage"
|
|
|
- :src="scope.row.serviceImage"
|
|
|
- :preview-src-list="[scope.row.serviceImage]"
|
|
|
+ v-if="scope.row.icon"
|
|
|
+ :src="scope.row.icon"
|
|
|
+ :preview-src-list="[scope.row.icon]"
|
|
|
style="width: 50px; height: 50px"
|
|
|
fit="cover"
|
|
|
preview-teleported
|
|
|
@@ -91,21 +95,25 @@
|
|
|
<span v-else>/</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="servicePrice" label="金额(元)" align="center" width="100" />
|
|
|
+ <el-table-column prop="amount" label="金额(元)" align="center" width="100" >
|
|
|
+ <template #default="scope">
|
|
|
+ {{ parseFloat(scope.row.amount||"0").toFixed(2) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="billingMethod" label="计费方式" align="center" width="100">
|
|
|
<template #default="scope">
|
|
|
- {{ scope.row.billingMethod }}
|
|
|
+ {{ scope.row.costType==1?"按时":"按次" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="servicePoints" label="服务积分" align="center" width="90" />
|
|
|
- <el-table-column prop="deductElderFee" label="是否扣取长者费用" align="center" width="150">
|
|
|
+ <el-table-column prop="point" label="服务积分" align="center" width="90" />
|
|
|
+ <el-table-column prop="isDeductElderFee" label="是否扣取长者费用" align="center" width="150">
|
|
|
<template #default="scope">
|
|
|
- {{ scope.row.deductElderFee }}
|
|
|
+ <el-tag>{{ scope.row.isDeductElderFee==1?"是":"否" }}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volunteerDeductFee" label="志愿者服务是否扣费" align="center" width="160">
|
|
|
<template #default="scope">
|
|
|
- {{ scope.row.volunteerDeductFee }}
|
|
|
+ <el-tag>{{ scope.row.isDeductVolunteerFee==1?"是":"否" }}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" align="center" width="280" fixed="right">
|
|
|
@@ -135,7 +143,8 @@
|
|
|
<script lang="ts" setup>
|
|
|
import addItemForm from './addItemForm.vue'
|
|
|
import * as ServiceItemApi from '@/api/living-home/elderly'
|
|
|
-
|
|
|
+import {useUserStore} from "@/store/modules/user";
|
|
|
+const userStore = useUserStore()
|
|
|
defineOptions({ name: 'ServiceItem' })
|
|
|
|
|
|
const message = useMessage()
|
|
|
@@ -149,167 +158,25 @@ const queryParams = reactive({
|
|
|
pageNo: 1,
|
|
|
pageSize: 10,
|
|
|
serviceTypeId: undefined as number | undefined,
|
|
|
- serviceName: '',
|
|
|
+ itemName: '',
|
|
|
+ tenantIds: userStore.orgTenantId
|
|
|
})
|
|
|
const queryFormRef = ref()
|
|
|
|
|
|
-/** 测试数据 - 服务类别 */
|
|
|
-const mockServiceTypes = [
|
|
|
- { id: 1, name: '生活照料' },
|
|
|
- { id: 2, name: '医疗护理' },
|
|
|
- { id: 3, name: '康复保健' },
|
|
|
- { id: 4, name: '精神慰藉' },
|
|
|
- { id: 5, name: '文化娱乐' }
|
|
|
-]
|
|
|
|
|
|
-/** 测试数据 - 服务项目列表 */
|
|
|
-const mockServiceItems = [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- serviceName: '居家清洁服务',
|
|
|
- serviceTypeName: '生活照料',
|
|
|
- serviceTypeId: 1,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 80.00,
|
|
|
- billingMethod: '按次',
|
|
|
- servicePoints: 8,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按单',
|
|
|
- staffCommissionValue: 15,
|
|
|
- needVisit: '是',
|
|
|
- checkMedicationTaboo: '否'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- serviceName: '助餐送餐服务',
|
|
|
- serviceTypeName: '生活照料',
|
|
|
- serviceTypeId: 1,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 25.00,
|
|
|
- billingMethod: '按次',
|
|
|
- servicePoints: 5,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按比例',
|
|
|
- staffCommissionValue: 10,
|
|
|
- needVisit: '否',
|
|
|
- checkMedicationTaboo: '否'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- serviceName: '陪同就医服务',
|
|
|
- serviceTypeName: '医疗护理',
|
|
|
- serviceTypeId: 2,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 120.00,
|
|
|
- billingMethod: '按时',
|
|
|
- servicePoints: 15,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按单',
|
|
|
- staffCommissionValue: 30,
|
|
|
- needVisit: '是',
|
|
|
- checkMedicationTaboo: '是'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 4,
|
|
|
- serviceName: '健康体检服务',
|
|
|
- serviceTypeName: '医疗护理',
|
|
|
- serviceTypeId: 2,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 200.00,
|
|
|
- billingMethod: '按次',
|
|
|
- servicePoints: 20,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '否',
|
|
|
- staffCommissionType: '按比例',
|
|
|
- staffCommissionValue: 8,
|
|
|
- needVisit: '是',
|
|
|
- checkMedicationTaboo: '是'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 5,
|
|
|
- serviceName: '康复训练指导',
|
|
|
- serviceTypeName: '康复保健',
|
|
|
- serviceTypeId: 3,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 150.00,
|
|
|
- billingMethod: '按时',
|
|
|
- servicePoints: 18,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按单',
|
|
|
- staffCommissionValue: 40,
|
|
|
- needVisit: '是',
|
|
|
- checkMedicationTaboo: '是'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 6,
|
|
|
- serviceName: '心理疏导服务',
|
|
|
- serviceTypeName: '精神慰藉',
|
|
|
- serviceTypeId: 4,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 100.00,
|
|
|
- billingMethod: '按时',
|
|
|
- servicePoints: 12,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按比例',
|
|
|
- staffCommissionValue: 15,
|
|
|
- needVisit: '是',
|
|
|
- checkMedicationTaboo: '否'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 7,
|
|
|
- serviceName: '书法绘画培训',
|
|
|
- serviceTypeName: '文化娱乐',
|
|
|
- serviceTypeId: 5,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 60.00,
|
|
|
- billingMethod: '按次',
|
|
|
- servicePoints: 6,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '是',
|
|
|
- isShelf: '否',
|
|
|
- staffCommissionType: '按单',
|
|
|
- staffCommissionValue: 10,
|
|
|
- needVisit: '否',
|
|
|
- checkMedicationTaboo: '否'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 8,
|
|
|
- serviceName: '个人卫生护理',
|
|
|
- serviceTypeName: '生活照料',
|
|
|
- serviceTypeId: 1,
|
|
|
- serviceImage: '',
|
|
|
- servicePrice: 50.00,
|
|
|
- billingMethod: '按次',
|
|
|
- servicePoints: 5,
|
|
|
- deductElderFee: '是',
|
|
|
- volunteerDeductFee: '否',
|
|
|
- isShelf: '是',
|
|
|
- staffCommissionType: '按单',
|
|
|
- staffCommissionValue: 12,
|
|
|
- needVisit: '否',
|
|
|
- checkMedicationTaboo: '否'
|
|
|
- }
|
|
|
-]
|
|
|
|
|
|
/** 获取服务类别列表 */
|
|
|
const getServiceTypeList = async () => {
|
|
|
try {
|
|
|
- const data = await ServiceItemApi.getServiceTypeList()
|
|
|
- serviceTypeList.value = data || []
|
|
|
+ const queryParams = {
|
|
|
+ pageNo: 1,
|
|
|
+ pageSize: 100,
|
|
|
+ name:''
|
|
|
+ }
|
|
|
+ const data = await ServiceItemApi.getServiceTypeList(queryParams)
|
|
|
+ serviceTypeList.value = data.list || []
|
|
|
} catch (error) {
|
|
|
console.log('获取服务类别失败,使用测试数据')
|
|
|
- serviceTypeList.value = mockServiceTypes
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -321,21 +188,18 @@ const getList = async () => {
|
|
|
list.value = data.list || data || []
|
|
|
} catch (error) {
|
|
|
console.log('获取服务项目列表失败,使用测试数据')
|
|
|
- let filteredData = [...mockServiceItems]
|
|
|
- if (queryParams.serviceTypeId) {
|
|
|
- filteredData = filteredData.filter(item => item.serviceTypeId === queryParams.serviceTypeId)
|
|
|
- }
|
|
|
- if (queryParams.serviceName) {
|
|
|
- filteredData = filteredData.filter(item =>
|
|
|
- item.serviceName.includes(queryParams.serviceName)
|
|
|
- )
|
|
|
- }
|
|
|
- list.value = filteredData
|
|
|
} finally {
|
|
|
loading.value = false
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/** 根据categoryId获取服务类别名称 */
|
|
|
+const getServiceTypeName = (categoryId: number | undefined) => {
|
|
|
+ if (!categoryId) return '-'
|
|
|
+ const type = serviceTypeList.value.find(item => item.id === categoryId)
|
|
|
+ return type?.name || '-'
|
|
|
+}
|
|
|
+
|
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
|
queryParams.pageNo = 1
|