28 changed files with 1153 additions and 979 deletions
@ -0,0 +1,33 @@ |
|||||
|
import { defHttp } from '@/utils/http/axios'; |
||||
|
|
||||
|
enum Api { |
||||
|
getSubcategoryType = '/platform/subcategoryType/list', |
||||
|
getProjectInfo = '/platform/projectInfo/getNames', |
||||
|
getOrganizationType = '/platform/organizationType/list', |
||||
|
getContractNamesByProjectName = '/platform/contractInfo/getContractNamesByProjectName', |
||||
|
queryPointNames = '/platform/pointInfo/queryPointNames ', |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
export function getSubcategoryType() { |
||||
|
return defHttp.get({ url: Api.getSubcategoryType }); |
||||
|
} |
||||
|
|
||||
|
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 }); |
||||
|
} |
||||
|
|
||||
|
export function queryPointNames() { |
||||
|
return defHttp.get({ url: Api.queryPointNames }); |
||||
|
} |
@ -0,0 +1,173 @@ |
|||||
|
<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="projectName"> |
||||
|
<a-input v-model:value="form.projectName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="所属合同" name="contractName"> |
||||
|
<a-input v-model:value="form.contractName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</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> |
||||
|
</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="1">是</a-radio> |
||||
|
<a-radio :value="0">否</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="1">是</a-radio> |
||||
|
<a-radio :value="0">否</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-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> |
||||
|
</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> |
||||
|
</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="closeCase"> |
||||
|
<a-radio-group v-model:value="form.closeCase"> |
||||
|
<a-radio :value="1">是</a-radio> |
||||
|
<a-radio :value="0">否</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 } from './api'; |
||||
|
export default { |
||||
|
setup() { |
||||
|
const title = ref('派遣'); |
||||
|
const visible = ref(false); |
||||
|
const form = reactive({ |
||||
|
projectName: '', |
||||
|
contractName: '', |
||||
|
handleResult: null, |
||||
|
isOrderTakingOverTime: null, |
||||
|
orderTakingCost: '', |
||||
|
isHandleOverTime: '', |
||||
|
handleCost: null, |
||||
|
otherCost: '', |
||||
|
otherCostReason: '', |
||||
|
auditOpinion:'', |
||||
|
closeCase:null, |
||||
|
id: null, |
||||
|
}); |
||||
|
//下拉框 |
||||
|
const handleResultOptions = [ |
||||
|
{ |
||||
|
value: '通过', |
||||
|
}, |
||||
|
{ |
||||
|
value: '退回', |
||||
|
}, |
||||
|
]; |
||||
|
const showModal = async (id) => { |
||||
|
visible.value = true; |
||||
|
const data = await getInfo(id); |
||||
|
for (let i in form) { |
||||
|
form[i] = data[i]; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
const handleOk = () => { |
||||
|
formRef.value.validate().then((valid) => { |
||||
|
if (valid) { |
||||
|
console.log(form) |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
const closeModal = () => { |
||||
|
formRef.value.resetFields(); |
||||
|
visible.value = false; |
||||
|
}; |
||||
|
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: '请输入' }], |
||||
|
closeCase: [{ required: true, message: '请选择' }], |
||||
|
}; |
||||
|
return { |
||||
|
visible, |
||||
|
title, |
||||
|
form, |
||||
|
handleResultOptions, |
||||
|
showModal, |
||||
|
handleOk, |
||||
|
closeModal, |
||||
|
formRef, |
||||
|
rules, |
||||
|
}; |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
/* 可选样式调整 */ |
||||
|
.ant-modal-body { |
||||
|
max-width: 600px; |
||||
|
margin: 0 auto; |
||||
|
} |
||||
|
</style> |
@ -1,247 +0,0 @@ |
|||||
<template> |
|
||||
<a-modal v-model:open="visible" title="工单上报" @ok="handleOk" width="70%"> |
|
||||
<a-form :model="form" layout="vertical"> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="所属项目" name="projectName"> |
|
||||
<a-select |
|
||||
v-model:value="form.projectName" |
|
||||
:options="projectNameOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="是否事故" name="isAccident"> |
|
||||
<a-radio-group v-model:value="form.isAccident"> |
|
||||
<a-radio :value="1">是</a-radio> |
|
||||
<a-radio :value="0">否</a-radio> |
|
||||
</a-radio-group> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="报修人员" name="repairer"> |
|
||||
<a-input v-model:value="form.repairer" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="响应级别"> |
|
||||
<a-select |
|
||||
v-model:value="form.responseLevel" |
|
||||
:options="responseLevelOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="响应时限"> |
|
||||
<a-input v-model:value="form.responseTime" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障大类" name="faultCategory"> |
|
||||
<a-select |
|
||||
v-model:value="form.faultCategory" |
|
||||
:options="[{ value: '前端' }]" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障小类" name="faultSubcategory"> |
|
||||
<a-select |
|
||||
v-model:value="form.faultSubcategory" |
|
||||
:options="faultSubcategoryOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障机构" name="institution"> |
|
||||
<a-select |
|
||||
v-model:value="form.institution" |
|
||||
:options="institutionOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障地点" name="faultLocation"> |
|
||||
<a-input v-model:value="form.faultLocation" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="故障描述" name="faultDescription"> |
|
||||
<a-textarea v-model:value="form.faultDescription" :rows="4" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="故障描述" name="faultDescription"> |
|
||||
<a-textarea v-model:value="form.faultDescription" :rows="4" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="故障图片" name="faultImg"> |
|
||||
<a-upload |
|
||||
v-model:file-list="form.faultImg" |
|
||||
action="https://www.mocky.io/v2/5cc8019d300000980a055e76" |
|
||||
> |
|
||||
<a-button type="primary"> 上传 </a-button> |
|
||||
</a-upload> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="是否派遣" name="isDispatched"> |
|
||||
<a-radio-group v-model:value="form.isDispatched"> |
|
||||
<a-radio :value="1">是</a-radio> |
|
||||
<a-radio :value="0">否</a-radio> |
|
||||
</a-radio-group> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12" v-if="form.isDispatched == 1"> |
|
||||
<a-form-item label="维护要求" name="maintenanceRequirement"> |
|
||||
<a-select |
|
||||
v-model:value="form.maintenanceRequirement" |
|
||||
:options="maintenanceRequirementOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="派遣意见" name="dispatchOpinion"> |
|
||||
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
</a-form> |
|
||||
</a-modal> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { reactive, ref } from 'vue'; |
|
||||
|
|
||||
export default { |
|
||||
setup() { |
|
||||
const visible = ref(false); |
|
||||
const form = reactive({ |
|
||||
projectName: '', |
|
||||
isAccident: null, |
|
||||
repairer: '', |
|
||||
responseTime: '', |
|
||||
responseLevel: '', |
|
||||
faultCategory: '', |
|
||||
faultSubcategory: '', |
|
||||
institution: '', |
|
||||
faultLocation: '', |
|
||||
faultDescription: '', |
|
||||
faultImg: [], |
|
||||
isDispatched: null, |
|
||||
maintenanceRequirement: '', |
|
||||
dispatchOpinion: '', |
|
||||
}); |
|
||||
//下拉框 |
|
||||
const responseLevelOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const maintenanceRequirementOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const institutionOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const faultSubcategoryOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const showModal = () => { |
|
||||
visible.value = true; |
|
||||
}; |
|
||||
|
|
||||
const handleOk = () => { |
|
||||
console.log('Form Data:', form); |
|
||||
// 在此处可以添加工单上报验证逻辑 |
|
||||
visible.value = false; |
|
||||
}; |
|
||||
|
|
||||
return { |
|
||||
visible, |
|
||||
form, |
|
||||
showModal, |
|
||||
handleOk, |
|
||||
responseLevelOptions, |
|
||||
maintenanceRequirementOptions, |
|
||||
institutionOptions, |
|
||||
faultSubcategoryOptions, |
|
||||
}; |
|
||||
}, |
|
||||
}; |
|
||||
</script> |
|
||||
|
|
||||
<style scoped> |
|
||||
/* 可选样式调整 */ |
|
||||
.ant-modal-body { |
|
||||
max-width: 600px; |
|
||||
margin: 0 auto; |
|
||||
} |
|
||||
</style> |
|
@ -0,0 +1,173 @@ |
|||||
|
<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="projectName"> |
||||
|
<a-input v-model:value="form.projectName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="所属合同" name="contractName"> |
||||
|
<a-input v-model:value="form.contractName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</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> |
||||
|
</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-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> |
||||
|
</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> |
||||
|
</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="closeCase"> |
||||
|
<a-radio-group v-model:value="form.closeCase"> |
||||
|
<a-radio :value="1">是</a-radio> |
||||
|
<a-radio :value="0">否</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 } from './api'; |
||||
|
export default { |
||||
|
setup() { |
||||
|
const title = ref('派遣'); |
||||
|
const visible = ref(false); |
||||
|
const form = reactive({ |
||||
|
projectName: '', |
||||
|
contractName: '', |
||||
|
handleResult: null, |
||||
|
isOrderTakingOverTime: null, |
||||
|
orderTakingCost: '', |
||||
|
isHandleOverTime: '', |
||||
|
handleCost: null, |
||||
|
otherCost: '', |
||||
|
otherCostReason: '', |
||||
|
auditOpinion:'', |
||||
|
closeCase:null, |
||||
|
id: null, |
||||
|
}); |
||||
|
//下拉框 |
||||
|
const handleResultOptions = [ |
||||
|
{ |
||||
|
value: '通过', |
||||
|
}, |
||||
|
{ |
||||
|
value: '退回', |
||||
|
}, |
||||
|
]; |
||||
|
const showModal = async (id) => { |
||||
|
visible.value = true; |
||||
|
const data = await getInfo(id); |
||||
|
for (let i in form) { |
||||
|
form[i] = data[i]; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
const handleOk = () => { |
||||
|
formRef.value.validate().then((valid) => { |
||||
|
if (valid) { |
||||
|
console.log(form) |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
const closeModal = () => { |
||||
|
formRef.value.resetFields(); |
||||
|
visible.value = false; |
||||
|
}; |
||||
|
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: '请输入' }], |
||||
|
closeCase: [{ required: true, message: '请选择' }], |
||||
|
}; |
||||
|
return { |
||||
|
visible, |
||||
|
title, |
||||
|
form, |
||||
|
handleResultOptions, |
||||
|
showModal, |
||||
|
handleOk, |
||||
|
closeModal, |
||||
|
formRef, |
||||
|
rules, |
||||
|
}; |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
/* 可选样式调整 */ |
||||
|
.ant-modal-body { |
||||
|
max-width: 600px; |
||||
|
margin: 0 auto; |
||||
|
} |
||||
|
</style> |
@ -1,240 +0,0 @@ |
|||||
<template> |
|
||||
<a-modal v-model:open="visible" title="工单上报" @ok="handleOk" width="70%"> |
|
||||
<a-form :model="form" layout="vertical"> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="所属项目" name="projectName"> |
|
||||
<a-select |
|
||||
v-model:value="form.projectName" |
|
||||
:options="projectNameOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="是否事故" name="isAccident"> |
|
||||
<a-radio-group v-model:value="form.isAccident"> |
|
||||
<a-radio :value="1">是</a-radio> |
|
||||
<a-radio :value="0">否</a-radio> |
|
||||
</a-radio-group> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="报修人员" name="repairer"> |
|
||||
<a-input v-model:value="form.repairer" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="响应级别"> |
|
||||
<a-select |
|
||||
v-model:value="form.responseLevel" |
|
||||
:options="responseLevelOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="响应时限"> |
|
||||
<a-input v-model:value="form.responseTime" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障大类" name="faultCategory"> |
|
||||
<a-select |
|
||||
v-model:value="form.faultCategory" |
|
||||
:options="[{ value: '前端' }]" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障小类" name="faultSubcategory"> |
|
||||
<a-select |
|
||||
v-model:value="form.faultSubcategory" |
|
||||
:options="faultSubcategoryOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障机构" name="institution"> |
|
||||
<a-select |
|
||||
v-model:value="form.institution" |
|
||||
:options="institutionOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="故障地点" name="faultLocation"> |
|
||||
<a-input v-model:value="form.faultLocation" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="故障描述" name="faultDescription"> |
|
||||
<a-textarea v-model:value="form.faultDescription" :rows="4" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="故障图片" name="faultImg"> |
|
||||
<a-upload |
|
||||
v-model:file-list="form.faultImg" |
|
||||
action="https://www.mocky.io/v2/5cc8019d300000980a055e76" |
|
||||
> |
|
||||
<a-button type="primary"> 上传 </a-button> |
|
||||
</a-upload> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]"> |
|
||||
<a-col :span="12"> |
|
||||
<a-form-item label="是否派遣" name="isDispatched"> |
|
||||
<a-radio-group v-model:value="form.isDispatched"> |
|
||||
<a-radio :value="1">是</a-radio> |
|
||||
<a-radio :value="0">否</a-radio> |
|
||||
</a-radio-group> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
<a-col :span="12" v-if="form.isDispatched == 1"> |
|
||||
<a-form-item label="维护要求" name="maintenanceRequirement"> |
|
||||
<a-select |
|
||||
v-model:value="form.maintenanceRequirement" |
|
||||
:options="maintenanceRequirementOptions" |
|
||||
placeholder="请选择" |
|
||||
/> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
<a-row :gutter="[16, 16]" v-if="form.isDispatched == 1"> |
|
||||
<a-col :span="24"> |
|
||||
<a-form-item label="派遣意见" name="dispatchOpinion"> |
|
||||
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" placeholder="请输入" /> |
|
||||
</a-form-item> |
|
||||
</a-col> |
|
||||
</a-row> |
|
||||
</a-form> |
|
||||
</a-modal> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { reactive, ref } from 'vue'; |
|
||||
|
|
||||
export default { |
|
||||
setup() { |
|
||||
const visible = ref(false); |
|
||||
const form = reactive({ |
|
||||
projectName: '', |
|
||||
isAccident: null, |
|
||||
repairer: '', |
|
||||
responseTime: '', |
|
||||
responseLevel: '', |
|
||||
faultCategory: '', |
|
||||
faultSubcategory: '', |
|
||||
institution: '', |
|
||||
faultLocation: '', |
|
||||
faultDescription: '', |
|
||||
faultImg: [], |
|
||||
isDispatched: null, |
|
||||
maintenanceRequirement: '', |
|
||||
dispatchOpinion: '', |
|
||||
}); |
|
||||
//下拉框 |
|
||||
const responseLevelOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const maintenanceRequirementOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const institutionOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const faultSubcategoryOptions = [ |
|
||||
{ |
|
||||
value: 0, |
|
||||
label: '常规', |
|
||||
}, |
|
||||
{ |
|
||||
value: 1, |
|
||||
label: '紧急', |
|
||||
}, |
|
||||
{ |
|
||||
value: 2, |
|
||||
label: '特级', |
|
||||
}, |
|
||||
]; |
|
||||
const showModal = () => { |
|
||||
visible.value = true; |
|
||||
}; |
|
||||
|
|
||||
const handleOk = () => { |
|
||||
console.log('Form Data:', form); |
|
||||
// 在此处可以添加工单上报验证逻辑 |
|
||||
visible.value = false; |
|
||||
}; |
|
||||
|
|
||||
return { |
|
||||
visible, |
|
||||
form, |
|
||||
showModal, |
|
||||
handleOk, |
|
||||
responseLevelOptions, |
|
||||
maintenanceRequirementOptions, |
|
||||
institutionOptions, |
|
||||
faultSubcategoryOptions, |
|
||||
}; |
|
||||
}, |
|
||||
}; |
|
||||
</script> |
|
||||
|
|
||||
<style scoped> |
|
||||
/* 可选样式调整 */ |
|
||||
.ant-modal-body { |
|
||||
max-width: 600px; |
|
||||
margin: 0 auto; |
|
||||
} |
|
||||
</style> |
|
@ -0,0 +1,148 @@ |
|||||
|
<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="projectName"> |
||||
|
<a-input v-model:value="form.projectName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="所属合同" name="contractName"> |
||||
|
<a-input v-model:value="form.contractName" disabled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="操作处理" name="handle"> |
||||
|
<a-select v-model:value="form.handle" :options="handleOptions" placeholder="请选择" /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="维护要求" name="maintenanceRequirement"> |
||||
|
<a-select |
||||
|
v-model:value="form.maintenanceRequirement" |
||||
|
:options="maintenanceRequirementOptions" |
||||
|
placeholder="请选择" |
||||
|
/> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="维护单位" name="maintenanceUnit"> |
||||
|
<a-input v-model:value="form.maintenanceUnit" placeholder="请输入" disbaled /> |
||||
|
</a-form-item> |
||||
|
</a-col> |
||||
|
</a-row> |
||||
|
<a-row :gutter="[16, 16]"> |
||||
|
<a-col :span="24"> |
||||
|
<a-form-item label="派遣意见" name="dispatchOpinion"> |
||||
|
<a-textarea v-model:value="form.dispatchOpinion" :rows="4" placeholder="请输入" /> |
||||
|
</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 } from './api'; |
||||
|
export default { |
||||
|
setup() { |
||||
|
const title = ref('派遣'); |
||||
|
const visible = ref(false); |
||||
|
const form = reactive({ |
||||
|
projectName: '', |
||||
|
contractName: '', |
||||
|
handle: null, |
||||
|
maintenanceRequirement: null, |
||||
|
maintenanceUnit: '', |
||||
|
dispatchOpinion: '', |
||||
|
id: null, |
||||
|
}); |
||||
|
//下拉框 |
||||
|
const maintenanceRequirementOptions = [ |
||||
|
{ |
||||
|
value: '修复', |
||||
|
}, |
||||
|
{ |
||||
|
value: '新增', |
||||
|
}, |
||||
|
{ |
||||
|
value: '拆除', |
||||
|
}, |
||||
|
{ |
||||
|
value: '清除', |
||||
|
}, |
||||
|
{ |
||||
|
value: '其他', |
||||
|
}, |
||||
|
]; |
||||
|
const handleOptions = [ |
||||
|
{ |
||||
|
value: '事件派遣', |
||||
|
}, |
||||
|
{ |
||||
|
value: '事件转派', |
||||
|
}, |
||||
|
{ |
||||
|
value: '事件作废', |
||||
|
}, |
||||
|
]; |
||||
|
const showModal = async (id) => { |
||||
|
visible.value = true; |
||||
|
const data = await getInfo(id); |
||||
|
for (let i in form) { |
||||
|
form[i] = data[i]; |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
const handleOk = () => { |
||||
|
formRef.value.validate().then((valid) => { |
||||
|
if (valid) { |
||||
|
console.log(form) |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
const closeModal = () => { |
||||
|
formRef.value.resetFields(); |
||||
|
visible.value = false; |
||||
|
}; |
||||
|
const formRef = ref(); |
||||
|
const rules = { |
||||
|
maintenanceRequirement: [{ required: true, message: '请选择' }], |
||||
|
handle: [{ required: true, message: '请选择' }], |
||||
|
dispatchOpinion: [{ required: true, message: '请输入' }], |
||||
|
maintenanceUnit: [{ required: true, message: '请输入' }], |
||||
|
}; |
||||
|
return { |
||||
|
visible, |
||||
|
title, |
||||
|
form, |
||||
|
maintenanceRequirementOptions, |
||||
|
handleOptions, |
||||
|
showModal, |
||||
|
handleOk, |
||||
|
closeModal, |
||||
|
formRef, |
||||
|
rules, |
||||
|
}; |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
/* 可选样式调整 */ |
||||
|
.ant-modal-body { |
||||
|
max-width: 600px; |
||||
|
margin: 0 auto; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue