客户服务

This commit is contained in:
FLL
2025-07-22 18:55:04 +08:00
parent a74b2516c7
commit 420335d7be
21 changed files with 2046 additions and 26 deletions

View File

@@ -8,12 +8,10 @@ import {
type VxeGridProps
} from '#/adapter/vxe-table';
import {
workOrdersExport,
workOrdersList,
workOrdersRemove,
} from '#/api/property/businessManagement/workOrders';
import type {WorkOrdersForm} from '#/api/property/businessManagement/workOrders/model';
import {commonDownloadExcel} from '#/utils/file/download';
import workOrdersModal from './workOrders-modal.vue';
import workOrdersDetail from './work-orders-detail.vue';
import ordersModal from './orders-modal.vue';
@@ -130,12 +128,6 @@ function handleMultiDelete() {
});
}
function handleDownloadExcel() {
commonDownloadExcel(workOrdersExport, '工单处理数据', tableApi.formApi.form.values, {
fieldMappingTime: formOptions.fieldMappingTime,
});
}
async function queryOrderType() {
let params = {
pageSize: 1000,
@@ -170,12 +162,6 @@ onMounted(async () => {
</template>
<template #toolbar-tools>
<Space>
<a-button
v-access:code="['property:workOrders:export']"
@click="handleDownloadExcel"
>
{{ $t('pages.common.export') }}
</a-button>
<a-button
:disabled="!vxeCheckboxChecked(tableApi)"
danger
@@ -197,11 +183,13 @@ onMounted(async () => {
<Space>
<ghost-button
@click.stop="handleOrders(row,'group')"
v-if="row.status!=='1' && row.status!=='2'"
>
{{ '派单' }}
</ghost-button>
<ghost-button
@click.stop="handleOrders(row,'rob')"
v-if="row.status!=='1' && row.status!=='2'"
>
{{ '抢单' }}
</ghost-button>

View File

@@ -10,8 +10,10 @@ import {defaultFormValueGetter, useBeforeCloseDiff} from '#/utils/popup';
import {ordersModalSchema} from './data';
import {personList} from "#/api/property/resident/person";
import {renderDictValue} from "#/utils/render";
import {ref} from "vue";
import {onMounted, ref} from "vue";
import { useUserStore } from '@vben/stores';
const userStore = useUserStore();
const emit = defineEmits<{ reload: [] }>();
const [BasicForm, formApi] = useVbenForm({
@@ -81,7 +83,11 @@ async function handleConfirm() {
return;
}
const data = cloneDeep(await formApi.getValues());
record.value.handler = data.handler
if(title.value === '派单'){
record.value.handler = data.handler
}else{
record.value.handler = userStore.userInfo.userId
}
await workOrdersUpdate(record.value)
resetInitialized();
emit('reload');
@@ -122,7 +128,6 @@ async function queryPersonData() {
const filterOption = (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
};
</script>
<template>

View File

@@ -42,7 +42,7 @@ async function handleOpenChange(open: boolean) {
<template>
<BasicModal :footer="false" :fullscreen-button="false" title="工单详情信息" class="w-[70%]">
<div v-if="orderDetail">
<Descriptions size="small" :column="2" :labelStyle="{width:'100px'}">
<Descriptions size="small" :column="2" :labelStyle="{width:'120px'}">
<DescriptionsItem label="订单号">
{{ orderDetail.orderNo }}
</DescriptionsItem>
@@ -55,7 +55,7 @@ async function handleOpenChange(open: boolean) {
<DescriptionsItem label="发起人">
{{ orderDetail.initiatorPeople }}
</DescriptionsItem>
<DescriptionsItem label="派单时间">
<DescriptionsItem label="派单/抢单时间">
{{ orderDetail.dispatchTime }}
</DescriptionsItem>
<DescriptionsItem label="处理人">

View File

@@ -67,7 +67,7 @@ const [BasicModal, modalApi] = useVbenModal({
if (isUpdate.value && id) {
const record = await workOrdersInfo(id);
record.isTimeOut=record.isTimeOut.toString()
record.isTimeOut = record.isTimeOut?.toString()
await formApi.setValues(record);
}
await markInitialized();