Browse Source

延期审核弹窗改造

ops-management-platform-frontend-dev
wbc 7 days ago
parent
commit
9d78bdf7bc
  1. 4
      src/views/IO/workOrder/delayAudit/api.ts
  2. 105
      src/views/IO/workOrder/delayAudit/auditModal.vue
  3. 84
      src/views/IO/workOrder/delayAudit/data.ts
  4. 49
      src/views/IO/workOrder/delayAudit/detailDrawer.vue
  5. 4
      src/views/IO/workOrder/delayAudit/index.vue
  6. 4
      src/views/IO/workOrder/orderAudit/data.ts
  7. 4
      src/views/IO/workOrder/orderAudit/detailDrawer.vue
  8. 4
      src/views/IO/workOrder/orderHandle/data.ts
  9. 4
      src/views/IO/workOrder/orderHandle/detailDrawer.vue
  10. 4
      src/views/IO/workOrder/orderSearch/data.ts
  11. 4
      src/views/IO/workOrder/orderSearch/detailDrawer.vue
  12. 4
      src/views/IO/workOrder/orderSend/data.ts
  13. 4
      src/views/IO/workOrder/orderSend/detailDrawer.vue

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

@ -11,6 +11,7 @@ enum Api {
getOrganizationType = '/platform/organizationType/list',
getContractNamesByProjectName = '/platform/contractInfo/getContractNamesByProjectName',
queryProcess = '/platform/orderProcess/queryProcess',
delaySumbmit = '/platform/workOrder/delaySumbmit',
}
export function list(params?: PageQuery) {
@ -54,4 +55,7 @@ export function getContractNamesByProjectName(data:any) {
}
export function queryProcess(id: any) {
return defHttp.get({ url: `${Api.queryProcess}?workOrderId=${id}` });
}
export function delaySumbmit(data:any) {
return defHttp.post({ url: Api.delaySumbmit,data });
}

105
src/views/IO/workOrder/delayAudit/auditModal.vue

@ -1,5 +1,5 @@
<template>
<a-modal v-model:open="visible" :title="title" @ok="handleOk" width="50%" @cancel="closeModal">
<a-modal v-model:open="visible" :title="title" @ok="handleOk" width="50%" @cancel="closeModal">
<a-form :model="form" layout="vertical" ref="formRef" :rules="rules">
<a-row :gutter="[16, 16]">
<a-col :span="24">
@ -17,52 +17,43 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="处理结果" name="handleResult">
<a-select v-model:value="form.handleResult" :options="handleResultOptions" placeholder="请选择" />
<a-form-item label="延期前时间" name="beforeDelayTime">
<a-date-picker
:show-time="{ format: 'HH:mm:ss' }"
valueFormat="YYYY-MM-DD HH:mm:ss"
v-model:value="form.beforeDelayTime"
placeholder="请选择"
disabled
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<a-form-item label="接单超期" name="isOrderTakingOverTime">
<a-radio-group v-model:value="form.isOrderTakingOverTime">
<a-radio value="是"></a-radio>
<a-radio value="否"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="接单超期扣款" name="orderTakingCost">
<a-input v-model:value="form.orderTakingCost" placeholder="接单超期扣款(元/小时)" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<a-form-item label="处理超期" name="isHandleOverTime">
<a-radio-group v-model:value="form.isHandleOverTime">
<a-radio value="是"></a-radio>
<a-radio value="否"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="处理超期扣款" name="handleCost">
<a-input v-model:value="form.handleCost" placeholder="处理超期扣款(元/小时)" />
<a-col :span="24">
<a-form-item label="延期后时间" name="afterDelayTime">
<a-date-picker
:show-time="{ format: 'HH:mm:ss' }"
valueFormat="YYYY-MM-DD HH:mm:ss"
v-model:value="form.afterDelayTime"
placeholder="请选择"
disabled
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="其他扣款费用" name="otherCost">
<a-input v-model:value="form.otherCost" placeholder="请输入" />
<a-form-item label="延期原因" name="delayReason">
<a-textarea v-model:value="form.delayReason" :rows="4" placeholder="请输入" disabled />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="其他扣款原因" name="otherCostReason">
<a-input v-model:value="form.otherCostReason" placeholder="请输入" />
<a-form-item label="延期图片" name="attachments">
<div v-for="(item, index) in form.attachments" :key="index">
<img alt="" :src="item.url" />
</div>
</a-form-item>
</a-col>
</a-row>
@ -75,11 +66,12 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="是否结案" name="isCloseCase">
<a-radio-group v-model:value="form.isCloseCase">
<a-radio value="是"></a-radio>
<a-radio value="否"></a-radio>
</a-radio-group>
<a-form-item label="处理结果" name="handleResult">
<a-select
v-model:value="form.handleResult"
:options="handleResultOptions"
placeholder="请选择"
/>
</a-form-item>
</a-col>
</a-row>
@ -90,7 +82,7 @@
<script>
import { reactive, ref } from 'vue';
import { message } from 'ant-design-vue';
import { getInfo } from './api';
import { getInfo, delaySumbmit } from './api';
export default {
setup() {
const title = ref('审核');
@ -98,24 +90,21 @@
const form = reactive({
projectName: '',
contractName: '',
beforeDelayTime: '',
afterDelayTime: '',
attachments: null,
delayReason: '',
auditOpinion: '',
handleResult: null,
isOrderTakingOverTime: null,
orderTakingCost: '',
isHandleOverTime: '',
handleCost: null,
otherCost: '',
otherCostReason: '',
auditOpinion:'',
isCloseCase:null,
id: null,
});
//
const handleResultOptions = [
{
value: '通过',
value: '审核通过',
},
{
value: '退回',
value: '审核拒绝',
},
];
const showModal = async (id) => {
@ -124,12 +113,21 @@
for (let i in form) {
form[i] = data[i];
}
form.handleResult = null
};
const handleOk = () => {
formRef.value.validate().then((valid) => {
if (valid) {
console.log(form)
const params = {};
for (let i in form) {
params[i] = form[i];
}
delaySumbmit(params).then((_) => {
message.success('操作成功');
emit('success');
closeModal();
});
}
});
};
@ -140,14 +138,7 @@
const formRef = ref();
const rules = {
handleResult: [{ required: true, message: '请选择' }],
isOrderTakingOverTime: [{ required: true, message: '请选择' }],
orderTakingCost: [{ required: true, message: '请输入' }],
isHandleOverTime: [{ required: true, message: '请选择' }],
handleCost: [{ required: true, message: '请输入' }],
otherCost: [{ required: true, message: '请输入' }],
otherCostReason: [{ required: true, message: '请输入' }],
auditOpinion: [{ required: true, message: '请输入' }],
isCloseCase: [{ required: true, message: '请选择' }],
};
return {
visible,

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

@ -1,35 +1,39 @@
import { BasicColumn } from '@/components/Table';
import { FormSchema } from '@/components/Form';
const statusOptions = [
{
label:'待派遣',
value:0,
},
{
label:'待接单',
value:1,
},
{
label:'处理中',
value:2,
},
{
label:'运维单位处理时回退至派遣',
value:3,
},
{
label:'初审',
value:4,
},
{
label:'终审',
value:5,
},
{
label:'结案',
value:6,
},
];
// const statusOptions = [
// {
// label:'待派遣',
// value:0,
// },
// {
// label:'待接单',
// value:1,
// },
// {
// label:'处理中',
// value:2,
// },
// {
// label:'处理中(已延期)',
// value:2.1,
// },
// {
// label:'运维单位处理时回退至派遣',
// value:3,
// },
// {
// label:'初审',
// value:4,
// },
// {
// label:'终审',
// value:5,
// },
// {
// label:'结案',
// value:6,
// },
// ];
export const formSchemas: FormSchema[] = [
{
field: 'projectName',
@ -61,19 +65,19 @@ export const columns: BasicColumn[] = [
},
{
title: '延期后时间',
dataIndex: 'AfterDelayTime',
dataIndex: 'afterDelayTime',
},
{
title: '处理结果',
dataIndex: 'handleResult',
},
{
title: '当前状态',
dataIndex: 'status',
customRender: ({ value }) => {
return statusOptions.find((i) => {
return i.value == value;
})?.label;
},
},
// {
// title: '当前状态',
// dataIndex: 'status',
// customRender: ({ value }) => {
// return statusOptions.find((i) => {
// return i.value == value;
// })?.label;
// },
// },
];

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

@ -78,17 +78,19 @@
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">故障图片</span>
<div v-for="(item,index) in detail.attachments" :key="index">
<img alt="" :src="item.url" />
</div>
<div
><span class="titleLabel">故障图片</span>
<div v-for="(item, index) in detail.attachments" :key="index">
<img alt="" :src="item.url" />
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<div><span class="titleLabel">地图信息</span>
<div id="delayAuditDetailMap" style="width: 100%; height: 500px"></div>
<div
><span class="titleLabel">地图信息</span>
<div id="delayAuditDetailMap" style="width: 100%; height: 500px"></div>
</div>
</a-col>
</a-row>
@ -96,18 +98,21 @@
<a-tab-pane key="3" tab="流程信息">
<div style="margin-left: 20px">
<a-timeline>
<a-timeline-item v-for="(item, index) in progress" :key="index" >
<template #dot><span class="stage">{{ item.stage }}</span></template>
<a-timeline-item v-for="(item, index) in progress" :key="index">
<template #dot
><span class="stage">{{ item.stage }}</span></template
>
<div class="timeText"
><span class="person">{{ item.operator }}</span
>{{item.description}}</div
>{{ item.description }}</div
>
<div class="timeText">{{ item.feedback }}</div>
<div class="operationTime">{{ item.operationTime }}</div>
<div class="duration" v-if="item.duration"> <Icon icon="ant-design:dashboard-outlined" />用时{{item.duration}}</div>
<div class="duration" v-if="item.duration">
<Icon icon="ant-design:dashboard-outlined" />用时{{ item.duration }}</div
>
<a-divider></a-divider>
</a-timeline-item>
</a-timeline>
</div>
</a-tab-pane>
@ -117,12 +122,12 @@
</template>
<script>
import { reactive, ref,defineComponent } from 'vue';
import { getInfo,queryProcess } from './api';
import { reactive, ref, defineComponent } from 'vue';
import { getInfo, queryProcess } from './api';
import AMapLoader from '@amap/amap-jsapi-loader';
import Icon from '@/components/Icon/Icon.vue';
export default defineComponent({
components:{Icon},
components: { Icon },
setup(props, { emit }) {
//
let detail = reactive({
@ -159,6 +164,10 @@
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,
@ -176,7 +185,7 @@
value: 6,
},
];
const progress = ref([])
const progress = ref([]);
const statusText = (val) => {
return statusOptions.find((i) => {
return i.value == val;
@ -193,7 +202,7 @@
const progressLine = await queryProcess(id);
progress.value = progressLine;
console.log(progress.value);
if(detail.longitude){
if (detail.longitude) {
initMap(detail.longitude, detail.latitude, detail.faultLocation);
}
};
@ -240,7 +249,7 @@
activeKey,
detail,
statusText,
progress
progress,
};
},
});
@ -258,7 +267,7 @@
div {
margin-bottom: 10px;
}
.stage{
.stage {
font-weight: 600;
}
.timeText {
@ -271,13 +280,13 @@
.operationTime {
color: gray;
font-weight: 550;
margin-left:80%
margin-left: 80%;
}
.duration {
color: #00bbff;
position: absolute;
font-weight: 550;
margin-left:80%;
margin-left: 80%;
top: 0.1%;
}

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

@ -9,7 +9,7 @@
</template>
</template>
</BasicTable>
<auditModal ref="auditModalRef" />
<auditModal ref="auditModalRef" @success="reload()"/>
<detailDrawer ref="detailDrawerRef" />
</PageWrapper>
</template>
@ -23,7 +23,7 @@
import detailDrawer from './detailDrawer.vue';
import { ref } from 'vue';
const [registerTable] = useTable({
const [registerTable,{reload}] = useTable({
title: '延期审核',
api: list,
showIndexColumn: true,

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

@ -13,6 +13,10 @@ const statusOptions = [
label:'处理中',
value:2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label:'运维单位处理时回退至派遣',
value:3,

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

@ -213,6 +213,10 @@
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -14,6 +14,10 @@ const statusOptions = [
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -215,6 +215,10 @@
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -25,6 +25,10 @@ const statusOptions = [
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -213,6 +213,10 @@
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -13,6 +13,10 @@ const statusOptions = [
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

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

@ -213,6 +213,10 @@
label: '处理中',
value: 2,
},
{
label: '处理中(已延期)',
value: 2.1,
},
{
label: '运维单位处理时回退至派遣',
value: 3,

Loading…
Cancel
Save