Browse Source

弹窗带出

ops-management-platform-frontend-dev
wbc 1 week ago
parent
commit
32847d68b0
  1. 4
      src/views/IO/delayPatrol/waitAudit/faultModal.vue
  2. 4
      src/views/IO/delayPatrol/waitPatrol/faultModal.vue
  3. 67
      src/views/IO/workOrder/delayAudit/api.ts
  4. 12
      src/views/IO/workOrder/delayAudit/data.ts
  5. 5
      src/views/IO/workOrder/delayAudit/detailDrawer.vue
  6. 18
      src/views/IO/workOrder/delayAudit/index.vue
  7. 67
      src/views/IO/workOrder/orderAudit/api.ts
  8. 24
      src/views/IO/workOrder/orderAudit/data.ts
  9. 4
      src/views/IO/workOrder/orderAudit/detailDrawer.vue
  10. 18
      src/views/IO/workOrder/orderAudit/index.vue
  11. 53
      src/views/IO/workOrder/orderHandle/api.ts
  12. 50
      src/views/IO/workOrder/orderHandle/data.ts
  13. 331
      src/views/IO/workOrder/orderHandle/detailDrawer.vue
  14. 72
      src/views/IO/workOrder/orderHandle/index.vue
  15. 22
      src/views/IO/workOrder/orderSearch/data.ts
  16. 4
      src/views/IO/workOrder/orderSearch/detailDrawer.vue
  17. 4
      src/views/IO/workOrder/orderSearch/faultModal.vue
  18. 2
      src/views/IO/workOrder/orderSearch/index.vue
  19. 33
      src/views/IO/workOrder/orderSend/data.ts
  20. 4
      src/views/IO/workOrder/orderSend/detailDrawer.vue
  21. 4
      src/views/IO/workOrder/orderSend/faultModal.vue
  22. 4
      src/views/property/point/pointModal.vue
  23. 6
      src/views/property/propertyList/addModal.vue

4
src/views/IO/delayPatrol/waitAudit/faultModal.vue

@ -149,7 +149,7 @@
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12" v-if="form.isDispatched == 1">
<a-col :span="12" v-if="form.isDispatched == '是'">
<a-form-item label="维护要求" name="maintenanceRequirement">
<a-select
v-model:value="form.maintenanceRequirement"
@ -158,7 +158,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1">
<a-row :gutter="[16, 16]" v-if="form.isDispatched == '是'">
<a-col :span="24">
<a-form-item label="派遣意见" name="dispatchOpinion">
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" />

4
src/views/IO/delayPatrol/waitPatrol/faultModal.vue

@ -149,7 +149,7 @@
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12" v-if="form.isDispatched == 1">
<a-col :span="12" v-if="form.isDispatched == '是'">
<a-form-item label="维护要求" name="maintenanceRequirement">
<a-select
v-model:value="form.maintenanceRequirement"
@ -158,7 +158,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1">
<a-row :gutter="[16, 16]" v-if="form.isDispatched == '是'">
<a-col :span="24">
<a-form-item label="派遣意见" name="dispatchOpinion">
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" />

67
src/views/IO/workOrder/delayAudit/api.ts

@ -1,58 +1,53 @@
import { ID, IDS, PageQuery, commonExport } from '@/api/base';
import { PageQuery, commonExport } from '@/api/base';
import { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api {
root = '/workflow/leave',
list = '/workflow/leave/list',
root = '/platform/workOrder',
list = '/platform/workOrder/list',
export = '/workflow/leave/export',
}
export interface Leave {
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
}
export interface Resp {
createDept: number;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark?: any;
getSubcategoryType = '/platform/subcategoryType/list',
workOrderAdd = '/platform/workOrder/add',
getProjectInfo = '/platform/projectInfo/getNames',
getOrganizationType = '/platform/organizationType/list',
getContractNamesByProjectName = '/platform/contractInfo/getContractNamesByProjectName',
}
export function list(params?: PageQuery) {
return defHttp.get<Leave[]>({ url: Api.list, params });
return defHttp.get({ url: Api.list, params });
}
export function exportExcel(data: any) {
return commonExport(Api.export, data);
}
export function getInfo(id: ID) {
return defHttp.get<Leave>({ url: `${Api.root}/${id}` });
export function getInfo(id: any) {
return defHttp.get({ url: `${Api.root}/${id}` });
}
export function add(data: any) {
return defHttp.post<Resp>({ url: Api.root, data });
return defHttp.post({ url: Api.root, data });
}
export function update(data: any) {
return defHttp.put<Resp>({ url: Api.root, data });
return defHttp.put({ url: Api.root, data });
}
export function removeByIds(ids: IDS) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` });
export function removeByIds(ids: any) {
return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
}
export function getSubcategoryType() {
return defHttp.get({ url: Api.getSubcategoryType });
}
export function workOrderAdd(data: any) {
return defHttp.post({ url: Api.workOrderAdd, data });
}
export function getProjectInfo() {
return defHttp.get({ url: Api.getProjectInfo });
}
export function getOrganizationType() {
return defHttp.get({ url: Api.getOrganizationType });
}
export function getContractNamesByProjectName(data:any) {
return defHttp.post({ url: Api.getContractNamesByProjectName,data });
}

12
src/views/IO/workOrder/delayAudit/data.ts

@ -8,18 +8,6 @@ export const formSchemas: FormSchema[] = [
component: 'Select',
componentProps: {
options: [
{
value: '1',
label: '2323',
},
{
value: '2',
label: '2323',
},
{
value: '3',
label: '2323',
},
],
},
},

5
src/views/IO/workOrder/delayAudit/detailDrawer.vue

@ -55,7 +55,7 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">所属机构</span>{{ detail.institution }}</div>
<div><span class="titleLabel">所属机构</span>{{ detail.organizationName }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">响应级别</span>{{ detail.responseLevel }}</div>
@ -117,6 +117,7 @@
</a-timeline>
</div>
</a-tab-pane>
</a-tabs>
</a-drawer>
</div>
</template>
@ -136,7 +137,7 @@
repairer: '',
handler: '',
repairTime: '',
institution: '',
organizationName: '',
isAccident: null,
faultCategory: '',
faultSubcategory: '',

18
src/views/IO/workOrder/delayAudit/index.vue

@ -5,7 +5,7 @@
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="showAuditModal(record.id)">审核</a-button>
<a-button type="link" @click="showDrawer(record.id)">">详情</a-button>
<a-button type="link" @click="showDrawer(record.id)">详情</a-button>
</template>
</template>
</BasicTable>
@ -17,7 +17,7 @@
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list } from './api';
import { list, getProjectInfo } from './api';
import { formSchemas, columns } from './data';
import auditModal from './auditModal.vue';
import detailDrawer from './detailDrawer.vue';
@ -60,6 +60,20 @@
const showDrawer = (id:any) => {
detailDrawerRef.value.showDrawer(id);
};
const projectOptions = ref([]);
const getProjectOptions = async () => {
const res = await getProjectInfo();
res.forEach((i: any) => {
i.value = i.projectName;
i.label = i.projectName;
});
projectOptions.value = res;
formSchemas[0].componentProps.options = projectOptions.value;
};
const getOptions = () => {
getProjectOptions();
};
getOptions();
//
</script>

67
src/views/IO/workOrder/orderAudit/api.ts

@ -1,58 +1,53 @@
import { ID, IDS, PageQuery, commonExport } from '@/api/base';
import { PageQuery, commonExport } from '@/api/base';
import { defHttp } from '@/utils/http/axios';
import { Dayjs } from 'dayjs';
enum Api {
root = '/workflow/leave',
list = '/workflow/leave/list',
root = '/platform/workOrder',
list = '/platform/workOrder/list',
export = '/workflow/leave/export',
}
export interface Leave {
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark: string;
processInstanceVo?: any;
dateTime?: [string, string] | [Dayjs, Dayjs];
}
export interface Resp {
createDept: number;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
id: string;
leaveType: string;
startDate: string;
endDate: string;
leaveDays: number;
remark?: any;
getSubcategoryType = '/platform/subcategoryType/list',
workOrderAdd = '/platform/workOrder/add',
getProjectInfo = '/platform/projectInfo/getNames',
getOrganizationType = '/platform/organizationType/list',
getContractNamesByProjectName = '/platform/contractInfo/getContractNamesByProjectName',
}
export function list(params?: PageQuery) {
return defHttp.get<Leave[]>({ url: Api.list, params });
return defHttp.get({ url: Api.list, params });
}
export function exportExcel(data: any) {
return commonExport(Api.export, data);
}
export function getInfo(id: ID) {
return defHttp.get<Leave>({ url: `${Api.root}/${id}` });
export function getInfo(id: any) {
return defHttp.get({ url: `${Api.root}/${id}` });
}
export function add(data: any) {
return defHttp.post<Resp>({ url: Api.root, data });
return defHttp.post({ url: Api.root, data });
}
export function update(data: any) {
return defHttp.put<Resp>({ url: Api.root, data });
return defHttp.put({ url: Api.root, data });
}
export function removeByIds(ids: IDS) {
return defHttp.deleteWithMsg<void>({ url: `${Api.root}/${ids.join(',')}` });
export function removeByIds(ids: any) {
return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
}
export function getSubcategoryType() {
return defHttp.get({ url: Api.getSubcategoryType });
}
export function workOrderAdd(data: any) {
return defHttp.post({ url: Api.workOrderAdd, data });
}
export function getProjectInfo() {
return defHttp.get({ url: Api.getProjectInfo });
}
export function getOrganizationType() {
return defHttp.get({ url: Api.getOrganizationType });
}
export function getContractNamesByProjectName(data:any) {
return defHttp.post({ url: Api.getContractNamesByProjectName,data });
}

24
src/views/IO/workOrder/orderAudit/data.ts

@ -11,31 +11,17 @@ export const formSchemas: FormSchema[] = [
},
},
{
field: 'fixRange',
field: '[startDate, endDate]',
label: '报修范围',
component: 'RangePicker',
},
{
label: '地址',
field: 'location',
component: 'Input',
componentProps: {
placeholder: '输入天数',
format: 'YYYY-MM-DD',
valueFormat:'YYYY-MM-DD'
},
},
];
//列表展示
const responseLevelOptions = [
{
value: '常规',
},
{
value: '紧急',
},
{
value: '特级',
},
];
export const columns: BasicColumn[] = [
{

4
src/views/IO/workOrder/orderAudit/detailDrawer.vue

@ -55,7 +55,7 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">所属机构</span>{{ detail.institution }}</div>
<div><span class="titleLabel">所属机构</span>{{ detail.organizationName }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">响应级别</span>{{ detail.responseLevel }}</div>
@ -182,7 +182,7 @@
repairer: '',
handler: '',
repairTime: '',
institution: '',
organizationName: '',
isAccident: null,
faultCategory: '',
faultSubcategory: '',

18
src/views/IO/workOrder/orderAudit/index.vue

@ -5,7 +5,7 @@
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="showAuditModal(record.id)">审核</a-button>
<a-button type="link" @click="showDrawer(record.id)">">详情</a-button>
<a-button type="link" @click="showDrawer(record.id)">详情</a-button>
</template>
</template>
</BasicTable>
@ -17,7 +17,7 @@
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list } from './api';
import { list, getProjectInfo } from './api';
import { formSchemas, columns } from './data';
import auditModal from './auditModal.vue';
import detailDrawer from './detailDrawer.vue';
@ -60,6 +60,20 @@
const showDrawer = (id:any) => {
detailDrawerRef.value.showDrawer(id);
};
const projectOptions = ref([]);
const getProjectOptions = async () => {
const res = await getProjectInfo();
res.forEach((i: any) => {
i.value = i.projectName;
i.label = i.projectName;
});
projectOptions.value = res;
formSchemas[0].componentProps.options = projectOptions.value;
};
const getOptions = () => {
getProjectOptions();
};
getOptions();
//
</script>

53
src/views/IO/workOrder/orderHandle/api.ts

@ -0,0 +1,53 @@
import { PageQuery, commonExport } from '@/api/base';
import { defHttp } from '@/utils/http/axios';
enum Api {
root = '/platform/workOrder',
list = '/platform/workOrder/list',
export = '/workflow/leave/export',
getSubcategoryType = '/platform/subcategoryType/list',
workOrderAdd = '/platform/workOrder/add',
getProjectInfo = '/platform/projectInfo/getNames',
getOrganizationType = '/platform/organizationType/list',
getContractNamesByProjectName = '/platform/contractInfo/getContractNamesByProjectName',
}
export function list(params?: PageQuery) {
return defHttp.get({ url: Api.list, params });
}
export function exportExcel(data: any) {
return commonExport(Api.export, data);
}
export function getInfo(id: any) {
return defHttp.get({ url: `${Api.root}/${id}` });
}
export function add(data: any) {
return defHttp.post({ url: Api.root, data });
}
export function update(data: any) {
return defHttp.put({ url: Api.root, data });
}
export function removeByIds(ids: any) {
return defHttp.deleteWithMsg({ url: `${Api.root}/${ids.join(',')}` });
}
export function getSubcategoryType() {
return defHttp.get({ url: Api.getSubcategoryType });
}
export function workOrderAdd(data: any) {
return defHttp.post({ url: Api.workOrderAdd, data });
}
export function getProjectInfo() {
return defHttp.get({ url: Api.getProjectInfo });
}
export function getOrganizationType() {
return defHttp.get({ url: Api.getOrganizationType });
}
export function getContractNamesByProjectName(data:any) {
return defHttp.post({ url: Api.getContractNamesByProjectName,data });
}

50
src/views/IO/workOrder/orderHandle/data.ts

@ -0,0 +1,50 @@
import { BasicColumn } from '@/components/Table';
import { FormSchema } from '@/components/Form';
//列表展示
export const formSchemas: FormSchema[] = [
{
label: '编号',
field: 'id',
component: 'Input',
componentProps: {
placeholder: '输入编号',
},
},
{
field: '[startDate, endDate]',
label: '报修范围',
component: 'RangePicker',
componentProps: {
format: 'YYYY-MM-DD',
valueFormat:'YYYY-MM-DD'
},
},
];
export const columns: BasicColumn[] = [
{
title: '编号',
dataIndex: 'id',
},
{
title: '报修时间',
dataIndex: 'repairTime',
},
{
title: '响应级别',
dataIndex: 'responseLevel',
},
{
title: '故障描述',
dataIndex: 'faultDescription',
},
{
title: '故障地点',
dataIndex: 'faultLocation',
},
{
title: '剩余时间',
dataIndex: 'restTime',
},
];

331
src/views/IO/workOrder/orderHandle/detailDrawer.vue

@ -0,0 +1,331 @@
<template>
<div>
<!-- 抽屉组件 -->
<a-drawer
title="工单详情"
placement="right"
:closable="true"
:open="visible"
@close="onClose"
width="600px"
>
<a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="1" tab="详细信息">
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">所属项目</span>{{ detail.projectName }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">所属合同</span>{{ detail.contractName }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">编号</span>{{ detail.id }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">报修人员</span>{{ detail.repairer }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">状态</span>{{ detail.status }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">待处理人</span>{{ detail.handler }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">报修时间</span>{{ detail.repairTime }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">是否事故</span>{{ detail.isAccident }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">故障大类</span>{{ detail.faultCategory }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">故障小类</span>{{ detail.faultSubcategory }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">所属机构</span>{{ detail.organizationName }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">响应级别</span>{{ detail.responseLevel }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">响应时限(小时)</span>{{ detail.responseTime }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">故障地址</span>{{ detail.faultLocation }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">故障描述</span>{{ detail.faultDescription }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">故障图片</span>{{ detail.faultImg }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div id="orderHandleDetailMap" style="width: 100%; height: 500px"></div>
</a-col>
</a-row>
</a-tab-pane>
<a-tab-pane key="2" tab="处理信息" force-render>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">维修人员</span>{{ detail.fixPeople }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">修复时间</span>{{ detail.fixTime }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">修复结果</span>{{ detail.fixResult }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">费用情况</span>{{ detail.cost }}</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">处理图片</span>{{ detail.handleImg }}</div>
</a-col>
</a-row>
</a-tab-pane>
<a-tab-pane key="3" tab="流程信息">
<div style="margin-left: 20px">
<a-timeline>
<a-timeline-item>
<template #dot>故障上报</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
<a-timeline-item>
<template #dot>故障派遣</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
<a-timeline-item>
<template #dot>故障接单</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
<a-timeline-item>
<template #dot>故障处理</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
<a-timeline-item>
<template #dot>预审</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
<a-timeline-item>
<template #dot>初审</template>
<div class="timeText">Create a services site 2015-09-01</div>
</a-timeline-item>
</a-timeline>
</div>
</a-tab-pane>
<a-tab-pane key="4" tab="历史信息">
<a-table :dataSource="historyInfo" :columns="historyColumns" bordered>
<template #bodyCell="{ column }">
<template v-if="column.key === 'action'">
<a-button type="link">查看</a-button>
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="5" tab="延期信息">
<a-table :dataSource="delayInfo" :columns="delayColumns" bordered>
<template #bodyCell="{ column }">
<template v-if="column.key === 'action'">
<a-button type="link">查看</a-button>
</template>
</template>
</a-table>
</a-tab-pane>
</a-tabs>
</a-drawer>
</div>
</template>
<script>
import { reactive, ref } from 'vue';
import { getInfo } from './api';
import AMapLoader from '@amap/amap-jsapi-loader';
export default {
setup(props, { emit }) {
//
let detail = reactive({
projectName: '',
contractName: '',
id: '',
status: null,
repairer: '',
handler: '',
repairTime: '',
organizationName: '',
isAccident: null,
faultCategory: '',
faultSubcategory: '',
responseLevel: null,
responseTime: '',
faultLocation: '',
faultDescription: '',
faultImg: '',
fixPeople: '',
fixTime: '',
fixResult: '',
cost: '',
handleImg: '',
longitude:'',
latitude:''
});
const historyInfo = ref([]);
const historyColumns = [
{
title: '环节',
dataIndex: 'stage',
key: 'stage',
},
{
title: '操作',
dataIndex: 'operation',
key: 'operation',
},
{
title: '操作人',
dataIndex: 'operator',
key: 'operator',
},
{
title: '详细信息',
dataIndex: 'action',
key: 'action ',
},
];
const delayInfo = ref([]);
const delayColumns = [
{
title: '申请时间',
dataIndex: 'applyTime',
key: 'applyTime',
},
{
title: '申请原因',
dataIndex: 'applyReason',
key: 'applyReason',
},
{
title: '延期时间',
dataIndex: 'delayTime',
key: 'delayTime',
},
{
title: '详细信息',
dataIndex: 'action',
key: 'action ',
},
];
//
const visible = ref(false);
const showDrawer = async (id) => {
visible.value = true;
const data = await getInfo(id);
for (let i in detail) {
detail[i] = data[i];
}
initMap(detail.longitude,detail.latitude,detail.faultLocation)
};
//
const onClose = () => {
visible.value = false;
map.value?.destroy()
};
const activeKey = ref('1');
//
const map = ref(null);
const initMap = async (longitude, latitude, organizationName) => {
try {
// JavaScript API
await AMapLoader.load({
key: '786a2e7cc6d4be5ba1d6174a0aa10f2b',
version: '2.0',
plugins: [],
});
//
map.value = new AMap.Map('orderHandleDetailMap', {
zoom: 17,
center: [longitude, latitude],
});
//
const marker = new AMap.Marker({
position: new AMap.LngLat(longitude, latitude),
title: organizationName,
});
const markerList = [marker];
map.value.add(markerList);
} catch (error) {
console.error('加载高德地图失败:', error);
}
};
return {
visible,
showDrawer,
onClose,
activeKey,
historyInfo,
historyColumns,
delayInfo,
delayColumns,
detail,
};
},
};
</script>
<style scoped>
/* 可选样式调整 */
.ant-btn {
margin: 20px;
}
/* .singerDetail{
margin-bottom: 10px;
} */
div {
margin-bottom: 10px;
}
.timeText {
margin: 0 0 40px 20px;
color: red;
}
.titleLabel {
color: gray;
}
</style>

72
src/views/IO/workOrder/orderHandle/index.vue

@ -0,0 +1,72 @@
<template>
<PageWrapper dense>
<BasicTable @register="registerTable">
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="showDrawer(record.id)">详情</a-button>
</template>
</template>
</BasicTable>
<detailDrawer ref="detailDrawerRef" />
</PageWrapper>
</template>
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list, getProjectInfo } from './api';
import { formSchemas, columns } from './data';
import detailDrawer from './detailDrawer.vue';
import { ref } from 'vue';
const [registerTable] = useTable({
rowSelection: {
type: 'checkbox',
},
title: '工单搜索',
api: list,
showIndexColumn: true,
rowKey: 'id',
useSearchForm: true,
formConfig: {
schemas: formSchemas,
name: 'orderSearch',
baseColProps: {
xs: 24,
sm: 24,
md: 24,
lg: 6,
},
},
columns: columns,
actionColumn: {
width: 200,
title: '操作',
key: 'action',
fixed: 'right',
},
});
//
const detailDrawerRef = ref();
const showDrawer = (id: any) => {
detailDrawerRef.value.showDrawer(id);
};
const projectOptions = ref([]);
const getProjectOptions = async () => {
const res = await getProjectInfo();
res.forEach((i: any) => {
i.value = i.projectName;
i.label = i.projectName;
});
projectOptions.value = res;
formSchemas[0].componentProps.options = projectOptions.value;
};
const getOptions = () => {
getProjectOptions();
};
getOptions();
//
</script>
<style scoped></style>

22
src/views/IO/workOrder/orderSearch/data.ts

@ -43,28 +43,6 @@ export const formSchemas: FormSchema[] = [
label: '报修范围',
component: 'RangePicker',
},
{
label: '地址',
field: 'location',
component: 'Input',
},
{
field: 'status',
label: '状态',
component: 'Select',
componentProps: {
options: [
{
value: '0',
label: '启用',
},
{
value: '1',
label: '禁用',
},
],
},
},
{
field: 'faultSubcategory',
label: '故障小类',

4
src/views/IO/workOrder/orderSearch/detailDrawer.vue

@ -55,7 +55,7 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">所属机构</span>{{ detail.institution }}</div>
<div><span class="titleLabel">所属机构</span>{{ detail.organizationName }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">响应级别</span>{{ detail.responseLevel }}</div>
@ -182,7 +182,7 @@
repairer: '',
handler: '',
repairTime: '',
institution: '',
organizationName: '',
isAccident: null,
faultCategory: '',
faultSubcategory: '',

4
src/views/IO/workOrder/orderSearch/faultModal.vue

@ -149,7 +149,7 @@
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12" v-if="form.isDispatched == 1">
<a-col :span="12" v-if="form.isDispatched == '是'">
<a-form-item label="维护要求" name="maintenanceRequirement">
<a-select
v-model:value="form.maintenanceRequirement"
@ -158,7 +158,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1">
<a-row :gutter="[16, 16]" v-if="form.isDispatched == '是'">
<a-col :span="24">
<a-form-item label="派遣意见" name="dispatchOpinion">
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" />

2
src/views/IO/workOrder/orderSearch/index.vue

@ -79,7 +79,7 @@
i.value = i.typeName;
i.label = i.typeName;
});
formSchemas[6].componentProps.options = projectOptions.value;
formSchemas[4].componentProps.options = projectOptions.value;
};
const getOptions = () => {
getProjectOptions();

33
src/views/IO/workOrder/orderSend/data.ts

@ -8,18 +8,6 @@ export const formSchemas: FormSchema[] = [
component: 'Select',
componentProps: {
options: [
{
value: '1',
label: '2323',
},
{
value: '2',
label: '2323',
},
{
value: '3',
label: '2323',
},
],
},
},
@ -36,27 +24,8 @@ export const formSchemas: FormSchema[] = [
label: '报修范围',
component: 'RangePicker',
},
{
label: '地址',
field: 'location',
component: 'Input',
componentProps: {
placeholder: '输入天数',
},
},
];
//列表展示
const responseLevelOptions = [
{
value: '常规',
},
{
value: '紧急',
},
{
value: '特级',
},
];
export const columns: BasicColumn[] = [
{
title: '编号',

4
src/views/IO/workOrder/orderSend/detailDrawer.vue

@ -55,7 +55,7 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<div><span class="titleLabel">所属机构</span>{{ detail.institution }}</div>
<div><span class="titleLabel">所属机构</span>{{ detail.organizationName }}</div>
</a-col>
<a-col :span="12">
<div><span class="titleLabel">响应级别</span>{{ detail.responseLevel }}</div>
@ -182,7 +182,7 @@
repairer: '',
handler: '',
repairTime: '',
institution: '',
organizationName: '',
isAccident: null,
faultCategory: '',
faultSubcategory: '',

4
src/views/IO/workOrder/orderSend/faultModal.vue

@ -149,7 +149,7 @@
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12" v-if="form.isDispatched == 1">
<a-col :span="12" v-if="form.isDispatched == '是'">
<a-form-item label="维护要求" name="maintenanceRequirement">
<a-select
v-model:value="form.maintenanceRequirement"
@ -158,7 +158,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1">
<a-row :gutter="[16, 16]" v-if="form.isDispatched == '是'">
<a-col :span="24">
<a-form-item label="派遣意见" name="dispatchOpinion">
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" />

4
src/views/property/point/pointModal.vue

@ -122,7 +122,7 @@
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12" v-if="form.isDispatched == 1">
<a-col :span="12" v-if="form.isDispatched == '是'">
<a-form-item label="维护要求" name="maintenanceRequirement">
<a-select
v-model:value="form.maintenanceRequirement"
@ -131,7 +131,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1">
<a-row :gutter="[16, 16]" v-if="form.isDispatched == '是'">
<a-col :span="24">
<a-form-item label="派遣意见" name="dispatchOpinion">
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" />

6
src/views/property/propertyList/addModal.vue

@ -14,9 +14,9 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="所属机构" name="institution">
<a-form-item label="所属机构" name="organizationName">
<a-select
v-model:value="form.institution"
v-model:value="form.organizationName"
:options="projectNameOptions"
placeholder="请选择"
/>
@ -205,7 +205,7 @@
const visible = ref(false);
const form = reactive({
projectName: '',
institution: null,
organizationName: null,
propertyName: '',
standards: '',
propertyCode: '',

Loading…
Cancel
Save