【订单列表】 修复# 历史服务师傅
parent
c54498c553
commit
dec27219c9
|
@ -6,12 +6,19 @@
|
||||||
<el-card shadow="never" style="margin-top: 15px" class="!border-none">
|
<el-card shadow="never" style="margin-top: 15px" class="!border-none">
|
||||||
<!-- 用户绑定 -->
|
<!-- 用户绑定 -->
|
||||||
<el-form-item label="绑定用户:" prop="userId">
|
<el-form-item label="绑定用户:" prop="userId">
|
||||||
<user-select btn-text="选择用户" type="primary" v-model="formData.userId" :userVo="formData.userVo" :id="id"
|
<user-select
|
||||||
v-model:userMobile="formData.mobile" :api="apiUserNotStaff" />
|
btn-text="选择用户"
|
||||||
|
type="primary"
|
||||||
|
v-model="formData.userId"
|
||||||
|
:userVo="formData.userVo"
|
||||||
|
:id="id"
|
||||||
|
v-model:userMobile="formData.mobile"
|
||||||
|
:api="apiUserNotStaff"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="师傅编号:" prop="sn">
|
<!-- <el-form-item label="师傅编号:" prop="sn">
|
||||||
<el-input class="w-56 ls-input" :disabled="true" v-model="formData.sn" placeholder="请输入师傅编号" />
|
<el-input class="w-56 ls-input" :disabled="true" v-model="formData.sn" placeholder="请输入师傅编号" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="师傅名称:" prop="name">
|
<el-form-item label="师傅名称:" prop="name">
|
||||||
<el-input class="w-56 ls-input" v-model="formData.name" placeholder="请输入师傅的真实姓名" />
|
<el-input class="w-56 ls-input" v-model="formData.name" placeholder="请输入师傅的真实姓名" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -22,8 +29,7 @@
|
||||||
<!-- 服务项目 -->
|
<!-- 服务项目 -->
|
||||||
<el-form-item label="服务项目" prop="goodsIds">
|
<el-form-item label="服务项目" prop="goodsIds">
|
||||||
<el-select v-model="formData.goodsIds" placeholder="请选择" class="ls-input" clearable multiple>
|
<el-select v-model="formData.goodsIds" placeholder="请选择" class="ls-input" clearable multiple>
|
||||||
<el-option v-for="category in categoryLists" :key="category.id" :label="category.name"
|
<el-option v-for="category in categoryLists" :key="category.id" :label="category.name" :value="category.id"></el-option>
|
||||||
:value="category.id"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <div class="serviceItem">
|
<!-- <div class="serviceItem">
|
||||||
|
@ -51,27 +57,37 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 所在地区 -->
|
<!-- 所在地区 -->
|
||||||
<el-form-item label="所在地区:" prop="districtId">
|
<el-form-item label="所在地区:" prop="districtId">
|
||||||
<area-select class="w-56 ls-input" v-model:province="formData.provinceId" v-model:city="formData.cityId"
|
<area-select
|
||||||
v-model:district="formData.districtId" />
|
class="w-56 ls-input"
|
||||||
|
v-model:province="formData.provinceId"
|
||||||
|
v-model:city="formData.cityId"
|
||||||
|
v-model:district="formData.districtId"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="详细地址:">
|
<el-form-item label="详细地址:">
|
||||||
<el-input class="ls-input" type="textarea" v-model="formData.address" placeholder="选填,请输入详细地址"
|
<el-input class="ls-input" type="textarea" v-model="formData.address" placeholder="选填,请输入详细地址" :rows="6"></el-input>
|
||||||
:rows="6"></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="接单状态:" prop="isReceiveOrder">
|
<el-form-item label="接单状态:" prop="isReceiveOrder">
|
||||||
<el-switch v-model="formData.isReceiveOrder" :active-text="!formData.isReceiveOrder ? '启用' : '停用'"
|
<el-switch
|
||||||
:active-value="0" :inactive-value="1" />
|
v-model="formData.isReceiveOrder"
|
||||||
|
:active-text="!formData.isReceiveOrder ? '启用' : '停用'"
|
||||||
|
:active-value="0"
|
||||||
|
:inactive-value="1"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="运营师傅:">
|
<!-- <el-form-item label="运营师傅:">
|
||||||
<el-switch v-model="formData.isOperational" :active-value="1" :inactive-value="0"
|
<el-switch
|
||||||
:active-text="formData.isOperational ? '是' : '否'" />
|
v-model="formData.isOperational"
|
||||||
|
:active-value="1"
|
||||||
|
:inactive-value="0"
|
||||||
|
:active-text="formData.isOperational ? '是' : '否'"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工作时间" prop="workStartTime" v-if="formData.isOperational === 1">
|
<el-form-item label="工作时间" prop="workStartTime" v-if="formData.isOperational === 1">
|
||||||
<el-time-picker v-model="formData.workStartTime" placeholder="开始时间" value-format="HH:mm" format="HH:mm"
|
<el-time-picker v-model="formData.workStartTime" placeholder="开始时间" value-format="HH:mm" format="HH:mm" class="h-[45px]" />
|
||||||
class="h-[45px]" />
|
<el-time-picker v-model="formData.workEndTime" placeholder="结束时间" value-format="HH:mm" format="HH:mm" class="h-[45px]" />
|
||||||
<el-time-picker v-model="formData.workEndTime" placeholder="结束时间" value-format="HH:mm" format="HH:mm"
|
</el-form-item> -->
|
||||||
class="h-[45px]" />
|
|
||||||
</el-form-item>
|
|
||||||
<!-- <el-form-item label="首页推荐:">
|
<!-- <el-form-item label="首页推荐:">
|
||||||
<el-radio v-model="formData.isRecommend" name="1" :label="1">推荐</el-radio>
|
<el-radio v-model="formData.isRecommend" name="1" :label="1">推荐</el-radio>
|
||||||
<el-radio v-model="formData.isRecommend" name="0" :label="0">不推荐</el-radio>
|
<el-radio v-model="formData.isRecommend" name="0" :label="0">不推荐</el-radio>
|
||||||
|
@ -84,18 +100,15 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { apiMasterWorkerAdd, apiMasterWorkerEdit, apiMasterWorkerDetail, apiMasterWorkerAreaAdd, apiMasterWorkerArea } from '@/api/master_worker'
|
import { apiMasterWorkerAdd, apiMasterWorkerArea, apiMasterWorkerDetail, apiMasterWorkerEdit, apiUserNotStaff } from '@/api/master_worker'
|
||||||
import { ref, reactive } from 'vue'
|
import AreaSelect from '@/components/area-select/index.vue'
|
||||||
import FooterBtns from '@/components/footer-btns/index.vue'
|
import FooterBtns from '@/components/footer-btns/index.vue'
|
||||||
import UserSelect from '@/components/user-select/index.vue'
|
import UserSelect from '@/components/user-select/index.vue'
|
||||||
import AreaSelect from '@/components/area-select/index.vue'
|
|
||||||
import ServiceSelect from '@/components/service-select/index.vue'
|
|
||||||
import ServiceArea from '@/components/service-area/index.vue'
|
|
||||||
import type { ElForm } from 'element-plus'
|
|
||||||
import feedback from '@/utils/feedback'
|
|
||||||
import { apiUserNotStaff } from '@/api/master_worker'
|
|
||||||
import { validateWorkTime } from '@/utils/validate'
|
|
||||||
import { useCommon } from '@/hooks/useCommon'
|
import { useCommon } from '@/hooks/useCommon'
|
||||||
|
import feedback from '@/utils/feedback'
|
||||||
|
import { validateWorkTime } from '@/utils/validate'
|
||||||
|
import type { ElForm } from 'element-plus'
|
||||||
|
import { reactive, ref } from 'vue'
|
||||||
|
|
||||||
/** Interface Start **/
|
/** Interface Start **/
|
||||||
interface formDataObj {
|
interface formDataObj {
|
||||||
|
@ -155,7 +168,7 @@ const formData = ref<formDataObj>({
|
||||||
isRecommend: 0, //是否推荐
|
isRecommend: 0, //是否推荐
|
||||||
serviceArea: [],
|
serviceArea: [],
|
||||||
serviceAreaIds: [],
|
serviceAreaIds: [],
|
||||||
isReceiveOrder: '',
|
isReceiveOrder: 0,
|
||||||
workStartTime: '',
|
workStartTime: '',
|
||||||
workEndTime: '',
|
workEndTime: '',
|
||||||
isOperational: 0
|
isOperational: 0
|
||||||
|
@ -221,6 +234,7 @@ const onSubmit = (formEl: FormInstance | undefined): void => {
|
||||||
// return true
|
// return true
|
||||||
// }
|
// }
|
||||||
// 请求详情 => 如果是编辑的话
|
// 请求详情 => 如果是编辑的话
|
||||||
|
fetchCategoryList()
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (id) {
|
if (id) {
|
||||||
fetchCategoryList()
|
fetchCategoryList()
|
||||||
|
|
|
@ -4,26 +4,26 @@
|
||||||
<el-form-item label="师傅信息">
|
<el-form-item label="师傅信息">
|
||||||
<el-input class="ls-input" v-model="formData.staffInfo" placeholder="师傅编号/姓名/手机号" />
|
<el-input class="ls-input" v-model="formData.staffInfo" placeholder="师傅编号/姓名/手机号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户信息">
|
<!-- <el-form-item label="用户信息">
|
||||||
<el-input class="ls-input" v-model="formData.userInfo" placeholder="请输入用户昵称/用户编号/手机号" />
|
<el-input class="ls-input" v-model="formData.userInfo" placeholder="请输入用户昵称/用户编号/手机号" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="所在地区">
|
<el-form-item label="所在地区">
|
||||||
<el-cascader class="w-56 ls-input" :options="options" :props="props2" @change="handleSelect" ref="cascader" />
|
<el-cascader class="w-56 ls-input" :options="options" :props="props2" @change="handleSelect" ref="cascader" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="首页推荐">
|
<!-- <el-form-item label="首页推荐">
|
||||||
<el-select v-model="formData.isRecommend" placeholder="请选择" class="ls-input">
|
<el-select v-model="formData.isRecommend" placeholder="请选择" class="ls-input">
|
||||||
<el-option label="全部" value></el-option>
|
<el-option label="全部" value></el-option>
|
||||||
<el-option label="推荐" value="1"></el-option>
|
<el-option label="推荐" value="1"></el-option>
|
||||||
<el-option label="不推荐" value="0"></el-option>
|
<el-option label="不推荐" value="0"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="师傅状态">
|
<!-- <el-form-item label="师傅状态">
|
||||||
<el-select v-model="formData.status" placeholder="请选择" class="ls-input">
|
<el-select v-model="formData.status" placeholder="请选择" class="ls-input">
|
||||||
<el-option label="全部" value></el-option>
|
<el-option label="全部" value></el-option>
|
||||||
<el-option label="启用" value="1"></el-option>
|
<el-option label="启用" value="1"></el-option>
|
||||||
<el-option label="停用" value="0"></el-option>
|
<el-option label="停用" value="0"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button type="primary" @click="getLists">查询</el-button>
|
<el-button type="primary" @click="getLists">查询</el-button>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never" class="mt-4 !border-none">
|
<el-card shadow="never" class="mt-4 !border-none">
|
||||||
<!-- <el-button type="primary" @click="$router.push('edit')">添加师傅</el-button> -->
|
<el-button type="primary" @click="$router.push('edit')">添加师傅</el-button>
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
<el-table :data="pager.lists" style="width: 100%" v-loading="pager.loading">
|
<el-table :data="pager.lists" style="width: 100%" v-loading="pager.loading">
|
||||||
<el-table-column property="sn" label="师傅编号" min-width="110">
|
<el-table-column property="sn" label="师傅编号" min-width="110">
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<el-image
|
<el-image
|
||||||
class="avatar"
|
class="avatar"
|
||||||
:src="row.headPortrait"
|
:src="row.avatarUrl"
|
||||||
:preview-src-list="[row.headPortrait]"
|
:preview-src-list="[row.avatarUrl]"
|
||||||
:hide-on-click-modal="true"
|
:hide-on-click-modal="true"
|
||||||
:preview-teleported="true"
|
:preview-teleported="true"
|
||||||
fit="cover"
|
fit="cover"
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
<div>{{ scope.row.province }}{{ scope.row.city }}{{ scope.row.district }}</div>
|
<div>{{ scope.row.province }}{{ scope.row.city }}{{ scope.row.district }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="idCard" label="身份证号码" min-width="200"></el-table-column>
|
<!-- <el-table-column prop="idCard" label="身份证号码" min-width="200"></el-table-column>
|
||||||
<el-table-column prop="idCardImg" label="身份证正反面" min-width="200" align="center">
|
<el-table-column prop="idCardImg" label="身份证正反面" min-width="200" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-image
|
<el-image
|
||||||
|
@ -75,7 +75,6 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="physicalExamination" min-width="200" label="体检报告(图片和pdf)">
|
<el-table-column prop="physicalExamination" min-width="200" label="体检报告(图片和pdf)">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div class="method" v-if="row.physicalExamination">
|
<div class="method" v-if="row.physicalExamination">
|
||||||
|
@ -104,13 +103,20 @@
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover placement="top-start" title="提示:" trigger="hover" content="点击可跳转服务评价页面">
|
<el-popover placement="top-start" title="提示:" trigger="hover" content="点击可跳转服务评价页面">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<router-link :to="{ path: '/service/evaluate', query: { staffInfo: scope.row.sn } }">
|
<router-link
|
||||||
<div class="w-[50px] text-center text-[#4A5DFF]">{{ scope.row.score }}</div>
|
:to="{
|
||||||
|
path: '/service/evaluate',
|
||||||
|
query: { staffInfo: scope.row.sn }
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<div class="w-[50px] text-center text-[#4A5DFF]">
|
||||||
|
{{ scope.row.score }}
|
||||||
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
</template>
|
</template>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column label="接单状态" min-width="80">
|
<el-table-column label="接单状态" min-width="80">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
|
@ -118,10 +124,11 @@
|
||||||
:active-value="0"
|
:active-value="0"
|
||||||
:inactive-value="1"
|
:inactive-value="1"
|
||||||
:before-change="() => handleStatusChange(scope.row)"
|
:before-change="() => handleStatusChange(scope.row)"
|
||||||
|
disabled
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="运营师傅" min-width="80">
|
<!-- <el-table-column label="运营师傅" min-width="80">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="scope.row.isOperational"
|
v-model="scope.row.isOperational"
|
||||||
|
@ -130,18 +137,18 @@
|
||||||
:before-change="() => handleIsOperationalChange(scope.row)"
|
:before-change="() => handleIsOperationalChange(scope.row)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<!-- <el-table-column property="recommend_desc" label="首页推荐" min-width="160">
|
<!-- <el-table-column property="recommend_desc" label="首页推荐" min-width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag type="info" v-if="scope.row.isRecommend == 0">不推荐</el-tag>
|
<el-tag type="info" v-if="scope.row.isRecommend == 0">不推荐</el-tag>
|
||||||
<el-tag v-if="scope.row.isRecommend == 1">推荐</el-tag>
|
<el-tag v-if="scope.row.isRecommend == 1">推荐</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
<el-table-column prop="getType" label="金额详情" min-width="110">
|
<!-- <el-table-column prop="getType" label="金额详情" min-width="110">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<MoneyDetailDialog btn-text="金额详情" :rowData="row" />
|
<MoneyDetailDialog btn-text="金额详情" :rowData="row" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column property="createTime" label="添加时间" min-width="180" />
|
<el-table-column property="createTime" label="添加时间" min-width="180" />
|
||||||
<el-table-column label="操作" width="148" fixed="right">
|
<el-table-column label="操作" width="148" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
@ -170,17 +177,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="masterList">
|
<script lang="ts" setup name="masterList">
|
||||||
import { apiMasterWorkerLists, apiMasterWorkerDel, apiMasterWorkerStatusEdit, apiStaffIsOperationalUpdate } from '@/api/master_worker'
|
import { apiMasterWorkerDel, apiMasterWorkerLists, apiMasterWorkerStatusEdit, apiStaffIsOperationalUpdate } from '@/api/master_worker'
|
||||||
import { ref } from 'vue'
|
|
||||||
import Pagination from '@/components/pagination/index.vue'
|
import Pagination from '@/components/pagination/index.vue'
|
||||||
import MoneyDetailDialog from '@/components/money-detail/moneyDetailDialog.vue'
|
import { ReceiveOrderEnum } from '@/enums/modeEnum'
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import area from '@/utils/area'
|
import area from '@/utils/area'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import { ReceiveOrderEnum } from '@/enums/modeEnum'
|
import { ref } from 'vue'
|
||||||
import PdfImg from '@/assets/icons/pdf.svg'
|
|
||||||
import reportImg from '@/assets/images/report.png'
|
|
||||||
import IdCardImg from '@/assets/images/idCard.png'
|
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
|
@ -216,7 +219,7 @@ const isVisiblePdf = computed(() => {
|
||||||
})
|
})
|
||||||
const previewIdCardList = computed(() => {
|
const previewIdCardList = computed(() => {
|
||||||
return (row: any) => {
|
return (row: any) => {
|
||||||
return row.idCardImg.split(',')
|
return row.idCardImg?.split(',')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const { pager, getLists, resetPage, resetParams } = usePaging({
|
const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||||
|
@ -268,7 +271,10 @@ const handleIsOperationalChange = (row: any) => {
|
||||||
const handlePreviewPdf = (row: any) => {
|
const handlePreviewPdf = (row: any) => {
|
||||||
const { physicalExamination } = row
|
const { physicalExamination } = row
|
||||||
if (!physicalExamination) return
|
if (!physicalExamination) return
|
||||||
const url = router.resolve({ path: '/report/pdf', query: { path: physicalExamination?.split(',').filter(item => item.includes('pdf')) } })
|
const url = router.resolve({
|
||||||
|
path: '/report/pdf',
|
||||||
|
query: { path: physicalExamination?.split(',').filter(item => item.includes('pdf')) }
|
||||||
|
})
|
||||||
window.open(url.href)
|
window.open(url.href)
|
||||||
}
|
}
|
||||||
getLists()
|
getLists()
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<el-form-item label="用户备注: ">
|
<el-form-item label="用户备注: ">
|
||||||
<div class="content">{{ formData.userRemark || '-' }}</div>
|
<div class="content">{{ formData.userRemark || '-' }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="核销码: ">
|
<el-form-item label="核销码: ">
|
||||||
<div class="content">{{ formData.verificationCode || '-' }}</div>
|
<div class="content">{{ formData.verificationCode || '-' }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="核销状态: ">
|
<el-form-item label="核销状态: ">
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
</span>
|
</span>
|
||||||
<span v-else>-</span>
|
<span v-else>-</span>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item> -->
|
</el-form-item>
|
||||||
<el-form-item label="完成时间: ">
|
<el-form-item label="完成时间: ">
|
||||||
<div class="content break-words">{{ formData.finishTime || '-' }}</div>
|
<div class="content break-words">{{ formData.finishTime || '-' }}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 服务师傅 Start -->
|
<!-- 服务师傅 Start -->
|
||||||
<!-- <el-card class="!border-none mt-4" shadow="never" style="padding: 0 20px" v-if="formData.orderStatus !== 0">
|
<el-card class="!border-none mt-4" shadow="never" style="padding: 0 20px" v-if="formData.orderStatus !== 0">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span class="font-medium nr">服务师傅</span>
|
<span class="font-medium nr">服务师傅</span>
|
||||||
</template>
|
</template>
|
||||||
|
@ -160,11 +160,11 @@
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card> -->
|
</el-card>
|
||||||
<!-- 服务师傅 End -->
|
<!-- 服务师傅 End -->
|
||||||
|
|
||||||
<!-- 历史服务师傅 -->
|
<!-- 历史服务师傅 -->
|
||||||
<!-- <el-card
|
<el-card
|
||||||
class="!border-none mt-4"
|
class="!border-none mt-4"
|
||||||
shadow="never"
|
shadow="never"
|
||||||
style="padding: 0 20px"
|
style="padding: 0 20px"
|
||||||
|
@ -179,14 +179,18 @@
|
||||||
<div class="ml-2">
|
<div class="ml-2">
|
||||||
{{ `${staff.staffName}(${staff.staffSn})` }}
|
{{ `${staff.staffName}(${staff.staffSn})` }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<!-- <div>
|
||||||
上门服务时间{{ staff.timeBefore < 0 ? '后' : '前' }}{{ staff.timeBefore.toString().replace(/\-/g, ' ') }}分钟退单,扣
|
上门服务时间{{ staff.timeBefore < 0 ? '后' : '前' }}{{ staff.timeBefore.toString().replace(/\-/g, ' ') }}分钟退单,扣
|
||||||
<span style="color: #f56c6c">{{ staff.deductScore }}</span>
|
<span style="color: #f56c6c">{{ staff.deductScore }}</span>
|
||||||
分(改派时间:{{ staff.createTime }})
|
分(改派时间:{{ staff.createTime }})
|
||||||
|
</div> -->
|
||||||
|
<div>
|
||||||
|
上门服务时间{{ staff.timeBefore < 0 ? '后' : '前'
|
||||||
|
}}{{ staff.timeBefore.toString().replace(/\-/g, ' ') }}分钟退单,改派时间:{{ staff.createTime }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card> -->
|
</el-card>
|
||||||
|
|
||||||
<!-- 预约信息 Start -->
|
<!-- 预约信息 Start -->
|
||||||
<el-card class="!border-none mt-4" shadow="never" style="padding: 0 20px">
|
<el-card class="!border-none mt-4" shadow="never" style="padding: 0 20px">
|
||||||
|
@ -283,17 +287,16 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { apiOrderDetail, apiMasterLists, apiDispatchStaff, apiDispatchStaffScore } from '@/api/order/lists'
|
import { apiDispatchStaff, apiDispatchStaffScore, apiMasterLists, apiOrderDetail } from '@/api/order/lists'
|
||||||
import { ref } from 'vue'
|
import { ReceiveOrderEnum, getTypeMap, useGoodsTypeMap } from '@/enums/modeEnum'
|
||||||
import Operation from './components/operation.vue'
|
import { useCreateModal } from '@/hooks/useCreateModal'
|
||||||
import dispatchDialog from './components/dispatchDialog.vue'
|
|
||||||
import area from '@/utils/area'
|
import area from '@/utils/area'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import { useGoodsTypeMap, getTypeMap, ReceiveOrderEnum } from '@/enums/modeEnum'
|
import { parseCouponTime, parseEmpty } from '@/utils/util'
|
||||||
import { parseEmpty, timeFormat } from '@/utils/util'
|
import { ref } from 'vue'
|
||||||
import { parseCouponTime } from '@/utils/util'
|
|
||||||
import { useCreateModal } from '@/hooks/useCreateModal'
|
|
||||||
import cancelOrderDialog from './components/cancelOrderDialog.vue'
|
import cancelOrderDialog from './components/cancelOrderDialog.vue'
|
||||||
|
import dispatchDialog from './components/dispatchDialog.vue'
|
||||||
|
import Operation from './components/operation.vue'
|
||||||
import { useCancelOrderAction } from './hook'
|
import { useCancelOrderAction } from './hook'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
@ -423,7 +426,8 @@ const handleChange = (val: any) => {
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
const areaValue = ref([440000, 440100, 440118])
|
// const areaValue = ref([440000, 440100, 440118])
|
||||||
|
const areaValue = ref([])
|
||||||
// 选中不同地区的师傅列表
|
// 选中不同地区的师傅列表
|
||||||
const handleSelect = async (val: number[]) => {
|
const handleSelect = async (val: number[]) => {
|
||||||
// 记录所选地区
|
// 记录所选地区
|
||||||
|
@ -435,13 +439,25 @@ const handleSelect = async (val: number[]) => {
|
||||||
isReceiveOrder: ReceiveOrderEnum.ENABLEDING,
|
isReceiveOrder: ReceiveOrderEnum.ENABLEDING,
|
||||||
isOrder: ReceiveOrderEnum.ENABLEDING,
|
isOrder: ReceiveOrderEnum.ENABLEDING,
|
||||||
appointTimeStart: unref(formData).appointTimeStart,
|
appointTimeStart: unref(formData).appointTimeStart,
|
||||||
appointTimeEnd: unref(formData).appointTimeEnd
|
appointTimeEnd: unref(formData).appointTimeEnd,
|
||||||
|
goodsId: goodsData.value[0].goodsId,
|
||||||
|
staffId: formData.value.staffId
|
||||||
}
|
}
|
||||||
const { lists } = await apiMasterLists({ ...params })
|
const { lists } = await apiMasterLists({ ...params })
|
||||||
staffData.value = lists
|
staffData.value = lists
|
||||||
areaValue.value = val
|
areaValue.value = val
|
||||||
}
|
}
|
||||||
|
watch(
|
||||||
|
() => formData.value.staffId,
|
||||||
|
newVal => {
|
||||||
|
if (newVal) {
|
||||||
|
console.log('watch', newVal)
|
||||||
|
const { provinceId, cityId, districtId } = formData.value
|
||||||
|
areaValue.value = [provinceId, cityId, districtId]
|
||||||
|
handleSelect(areaValue.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
// 指派师傅
|
// 指派师傅
|
||||||
const handleDispatch = async () => {
|
const handleDispatch = async () => {
|
||||||
getOrderDetail()
|
getOrderDetail()
|
||||||
|
@ -517,7 +533,7 @@ const handleReDispatch = () => {
|
||||||
|
|
||||||
// 取消指派
|
// 取消指派
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
btnStatus.value = 2
|
btnStatus.value = formData.value.staffId ? 2 : 0
|
||||||
selStaff.value = ''
|
selStaff.value = ''
|
||||||
getOrderDetail()
|
getOrderDetail()
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,19 +10,19 @@
|
||||||
<el-form-item label="服务名称">
|
<el-form-item label="服务名称">
|
||||||
<el-input class="ls-input" v-model="formData.goodsName" placeholder="请输入服务名称" />
|
<el-input class="ls-input" v-model="formData.goodsName" placeholder="请输入服务名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="师傅信息">
|
<el-form-item label="师傅信息">
|
||||||
<el-input class="ls-input" v-model="formData.staffInfo" placeholder="请输入师傅信息" clearable />
|
<el-input class="ls-input" v-model="formData.staffInfo" placeholder="请输入师傅信息" clearable />
|
||||||
</el-form-item> -->
|
</el-form-item>
|
||||||
<el-form-item label="支付状态">
|
<el-form-item label="支付状态">
|
||||||
<el-select v-model="formData.payStatus" placeholder="请选择" class="ls-input">
|
<el-select v-model="formData.payStatus" placeholder="请选择" class="ls-input">
|
||||||
<el-option v-for="option in optionMap.payStatusOptions" :key="option.value" :label="option.label" :value="option.value" />
|
<el-option v-for="option in optionMap.payStatusOptions" :key="option.value" :label="option.label" :value="option.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="派单状态">
|
<el-form-item label="派单状态">
|
||||||
<el-select v-model="formData.isDispatch" placeholder="请选择" class="ls-input">
|
<el-select v-model="formData.isDispatch" placeholder="请选择" class="ls-input">
|
||||||
<el-option v-for="option in optionMap.dispatchOptions" :key="option.value" :label="option.label" :value="option.value" />
|
<el-option v-for="option in optionMap.dispatchOptions" :key="option.value" :label="option.label" :value="option.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item>
|
||||||
<el-form-item label="下单时间">
|
<el-form-item label="下单时间">
|
||||||
<data-picker
|
<data-picker
|
||||||
class="ls-input"
|
class="ls-input"
|
||||||
|
@ -42,9 +42,8 @@
|
||||||
<el-tabs class="-mt-2" v-model="formData.orderStatus" @tab-change="resetPage">
|
<el-tabs class="-mt-2" v-model="formData.orderStatus" @tab-change="resetPage">
|
||||||
<el-tab-pane :label="`全部(${countData?.totalCount || '0'})`" name="" />
|
<el-tab-pane :label="`全部(${countData?.totalCount || '0'})`" name="" />
|
||||||
<el-tab-pane :label="`待支付(${countData?.waitPayCount || '0'})`" :name="0" />
|
<el-tab-pane :label="`待支付(${countData?.waitPayCount || '0'})`" :name="0" />
|
||||||
<!-- <el-tab-pane :label="`预约中(${countData?.reserveCount || '0'})`" :name="1" />
|
<el-tab-pane :label="`预约中(${countData?.reserveCount || '0'})`" :name="1" />
|
||||||
<el-tab-pane :label="`服务中(${countData?.servicingCount || '0'})`" :name="2" /> -->
|
<el-tab-pane :label="`服务中(${countData?.servicingCount || '0'})`" :name="2" />
|
||||||
<el-tab-pane :label="`已预约(${countData?.servicingCount || '0'})`" :name="2" />
|
|
||||||
<el-tab-pane :label="`已完成(${countData?.finishedCount || '0'})`" :name="3" />
|
<el-tab-pane :label="`已完成(${countData?.finishedCount || '0'})`" :name="3" />
|
||||||
<el-tab-pane :label="`退款单(${countData?.closeCount || '0'})`" :name="4" />
|
<el-tab-pane :label="`退款单(${countData?.closeCount || '0'})`" :name="4" />
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
@ -105,9 +104,9 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column property="contact" label="联系人" min-width="100" />
|
<el-table-column property="contact" label="联系人" min-width="100" />
|
||||||
<!-- <el-table-column property="staffName" label="服务师傅" min-width="100">
|
<el-table-column property="staffName" label="服务师傅" min-width="100">
|
||||||
<template #default="{ row }">{{ parseEmpty(row, 'staffName') }}</template>
|
<template #default="{ row }">{{ parseEmpty(row, 'staffName') }}</template>
|
||||||
</el-table-column> -->
|
</el-table-column>
|
||||||
<el-table-column label="订单状态" min-width="100">
|
<el-table-column label="订单状态" min-width="100">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
<span
|
<span
|
||||||
|
@ -119,12 +118,12 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="派单状态" width="100" prop="isDispatchName">
|
<el-table-column label="派单状态" width="100" prop="isDispatchName">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
<el-tag type="success" v-if="row.isDispatch === 1">已派单</el-tag>
|
<el-tag type="success" v-if="row.isDispatch === 1">已派单</el-tag>
|
||||||
<el-tag type="danger" v-if="row.isDispatch === 0">未派单</el-tag>
|
<el-tag type="danger" v-if="row.isDispatch === 0">未派单</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column>
|
||||||
<el-table-column label="操作" min-width="140" fixed="right">
|
<el-table-column label="操作" min-width="140" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<router-link
|
<router-link
|
||||||
|
|
Loading…
Reference in New Issue