Browse Source

批量审核

ops-management-platform-frontend-dev
wbc 1 week ago
parent
commit
583d62a91a
  1. 16
      src/views/IO/workOrder/delayAudit/index.vue
  2. 6
      src/views/IO/workOrder/orderAudit/api.ts
  3. 113
      src/views/IO/workOrder/orderAudit/batchAudit.vue
  4. 27
      src/views/IO/workOrder/orderAudit/index.vue

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

@ -1,10 +1,16 @@
<template> <template>
<PageWrapper dense> <PageWrapper dense>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'"> <template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="showAuditModal(record.id)" v-if="record.handleResult=='待处理'&&(roleList[0]!='yunwei'||roleList[0]!='yezhu')">审核</a-button> <a-button
type="link"
@click="showAuditModal(record.id)"
v-if="
record.handleResult == '待处理' && (roleList[0] != 'yunwei' || roleList[0] != 'yezhu')
"
>审核</a-button
>
<a-button type="link" @click="showDrawer(record.id)">详情</a-button> <a-button type="link" @click="showDrawer(record.id)">详情</a-button>
</template> </template>
</template> </template>
@ -50,7 +56,7 @@
}); });
// //
const { roleList } = useUserStore(); const { roleList } = useUserStore();
console.log(roleList) console.log(roleList);
// //
const auditModalRef = ref(); const auditModalRef = ref();
const showAuditModal = (id: any) => { const showAuditModal = (id: any) => {
@ -76,8 +82,8 @@
// }; // };
// getOptions(); // getOptions();
onActivated(() => { onActivated(() => {
reload() reload();
}) });
// //
</script> </script>

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

@ -15,6 +15,7 @@ enum Api {
initReviewOrder = '/platform/workOrder/initReviewOrder', initReviewOrder = '/platform/workOrder/initReviewOrder',
lastReviewOrder = '/platform/workOrder/lastReviewOrder', lastReviewOrder = '/platform/workOrder/lastReviewOrder',
getOrderDelayHistory = '/platform/orderDelayHistory/queryByWorkOrderId', getOrderDelayHistory = '/platform/orderDelayHistory/queryByWorkOrderId',
batchReviewOrder = '/platform/workOrder/batchReviewOrder',
} }
@ -72,6 +73,11 @@ export function initReviewOrder(data:any) {
export function lastReviewOrder(data:any) { export function lastReviewOrder(data:any) {
return defHttp.post({ url: Api.lastReviewOrder,data }); return defHttp.post({ url: Api.lastReviewOrder,data });
} }
export function batchReviewOrder(data:any) {
return defHttp.post({ url: Api.batchReviewOrder,data });
}
export function getOrderDelayHistory(id: any) { export function getOrderDelayHistory(id: any) {
return defHttp.get({ url: `${Api.getOrderDelayHistory}?workOrderId=${id}` }); return defHttp.get({ url: `${Api.getOrderDelayHistory}?workOrderId=${id}` });
} }

113
src/views/IO/workOrder/orderAudit/batchAudit.vue

@ -0,0 +1,113 @@
<template>
<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">
<a-form-item label="审核结果" name="auditResult">
<a-select
v-model:value="form.auditResult"
:options="auditResultOptions"
placeholder="请选择"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="审核意见" name="auditOpinion">
<a-textarea v-model:value="form.auditOpinion" :rows="4" placeholder="请输入" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="是否结案" name="isCloseCase" v-if="form.auditResult == '通过'">
<a-radio-group v-model:value="form.isCloseCase">
<a-radio value="是"></a-radio>
<a-radio value="否"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
<script>
import { reactive, ref } from 'vue';
import { message } from 'ant-design-vue';
import { getInfo, batchReviewOrder } from './api';
export default {
setup(props, { emit }) {
const title = ref('批量审核');
const visible = ref(false);
const form = reactive({
auditResult: null,
auditOpinion: '',
isCloseCase: null,
ids: null,
});
//
const auditResultOptions = [
{
value: '通过',
},
{
value: '退回',
},
];
const showModal = async (ids) => {
visible.value = true;
form.ids = ids;
};
const handleOk = () => {
formRef.value.validate().then((valid) => {
if (valid) {
const params = {};
for (let i in form) {
params[i] = form[i];
}
if (params.auditResult == '退回') {
delete params.isCloseCase;
}
batchReviewOrder(params).then((_) => {
message.success('操作成功');
emit('success');
closeModal();
});
}
});
};
const closeModal = () => {
formRef.value.resetFields();
visible.value = false;
};
const formRef = ref();
const rules = {
auditResult: [{ required: true, message: '请选择' }],
auditOpinion: [{ required: true, message: '请输入' }],
isCloseCase: [{ required:true, message: '请选择' }],
};
return {
visible,
title,
form,
auditResultOptions,
showModal,
handleOk,
closeModal,
formRef,
rules,
};
},
};
</script>
<style scoped>
/* 可选样式调整 */
.ant-modal-body {
max-width: 600px;
margin: 0 auto;
}
</style>

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

@ -1,16 +1,24 @@
<template> <template>
<PageWrapper dense> <PageWrapper dense>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" v-if="selected" @click="goBatchAudit">批量审核</a-button>
</template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'"> <template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="showAuditModal(record.id,record.status)" v-if="record.status!=6">审核</a-button> <a-button
type="link"
@click="showAuditModal(record.id, record.status)"
v-if="record.status != 6"
>审核</a-button
>
<a-button type="link" @click="showDrawer(record.id)">详情</a-button> <a-button type="link" @click="showDrawer(record.id)">详情</a-button>
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<auditModal ref="auditModalRef" @success="reload()" /> <auditModal ref="auditModalRef" @success="reload()" />
<detailDrawer ref="detailDrawerRef" /> <detailDrawer ref="detailDrawerRef" />
<batchAudit ref="batchAuditRef" @success = "reload()" />
</PageWrapper> </PageWrapper>
</template> </template>
@ -21,9 +29,13 @@
import { formSchemas, columns } from './data'; import { formSchemas, columns } from './data';
import auditModal from './auditModal.vue'; import auditModal from './auditModal.vue';
import detailDrawer from './detailDrawer.vue'; import detailDrawer from './detailDrawer.vue';
import batchAudit from './batchAudit.vue';
import { ref, onActivated } from 'vue'; import { ref, onActivated } from 'vue';
const [registerTable,{reload}] = useTable({ const [registerTable, { reload, getSelectRowKeys,selected }] = useTable({
rowSelection: {
type: 'checkbox',
},
title: '工单审核', title: '工单审核',
api: list, api: list,
showIndexColumn: true, showIndexColumn: true,
@ -67,13 +79,18 @@
projectOptions.value = res; projectOptions.value = res;
formSchemas[0].componentProps.options = projectOptions.value; formSchemas[0].componentProps.options = projectOptions.value;
}; };
//
const batchAuditRef = ref()
const goBatchAudit = () =>{
batchAuditRef.value.showModal(getSelectRowKeys())
}
const getOptions = () => { const getOptions = () => {
getProjectOptions(); getProjectOptions();
}; };
getOptions(); getOptions();
onActivated(() => { onActivated(() => {
reload() reload();
}) });
// //
</script> </script>

Loading…
Cancel
Save