维修功能开发 代码优化

This commit is contained in:
BianLzhaoMin 2024-12-12 18:03:33 +08:00
parent ca2b907669
commit 450285177c
9 changed files with 343 additions and 253 deletions

View File

@ -8,15 +8,11 @@ export const getRepairListApi = (data: any = {}) => {
export const addRepairDataApi = (data: any = {}) => {
return post('/material-mall/ma_rm/add', data)
}
// 全证书列表
export const getSafeBookByMaIdListApi = (data: any = {}) => {
return get('/material-mall/safeBook/getSafeBookByMaId', data)
// 维修保养详情列表
export const getRmDetailsListApi = (data: any = {}) => {
return get('/material-mall/ma_rm/rmList', data)
}
// 安全证书编辑
export const editSafeBookApi = (data: any = {}) => {
return post('/material-mall/safeBook/editSafeBook', data)
}
// 安全证书列表删除
export const delSafeBookByIdApi = (data: any = {}) => {
return post('/material-mall/safeBook/delSafeBook', data)
// 维修保养列表删除
export const deleteRepairByIddApi = (data: any = {}) => {
return post('/material-mall/ma_rm/deleteById', data)
}

View File

@ -160,6 +160,21 @@
</div>
</div>
</div>
<div class="demand-record">
<div class="publicTitle">接单信息</div>
<div class="rental-record">
<el-table
style="width: 100%"
:header-cell-style="{ background: '#f2f2f2', color: '#333' }"
>
<el-table-column align="center" prop="orderCode" label="接单人" />
<el-table-column align="center" prop="leaseName" label="接单人联系电话" />
<el-table-column align="center" prop="leaseStartTime" label="接单公司" />
<el-table-column align="center" prop="leaseEndTime" label="接单时间" />
</el-table>
</div>
</div>
</div>
<FooterInfo />
</template>
@ -664,4 +679,40 @@ onMounted(() => {
// margin-right: 15px;
}
}
.demand-record {
margin-top: 20px;
width: 100%;
height: 100px;
}
.publicTitle {
font-size: 18px;
font-family: PingFangSC, PingFang SC;
color: #fff;
background-color: #1abc9c;
width: 150px;
height: 48px;
line-height: 48px;
text-align: center;
letter-spacing: 1px;
}
.publicLine {
width: 100%;
height: 12px;
border-bottom: 1px solid #e0e0e0;
position: relative;
&:before {
content: '';
height: 3px;
width: 40px;
background: #2282ff;
border-radius: 2px;
position: absolute;
bottom: -1px;
left: 20px;
}
}
</style>

View File

@ -580,11 +580,35 @@ const changeOption = (val: any) => {
}
// select
const selectScreen = (type: any, item: any, index: number) => {
const selectScreen = async (type: any, item: any, index: number) => {
screenChooseList[index].list.forEach((e: any) => {
e.isChecked = false
})
if (index == 1) {
screenChooseList[2].list = screenChooseList[2].list.slice(0, 1)
const params = {
typeId: '',
level: '',
}
if (item.value) {
params.typeId = item.typeId
params.level = item.level
} else {
params.typeId = route.query.typeId
params.level = route.query.level
}
const res = await getTypeListApi(params)
const typeList_2 = res.data
.filter((e: any) => e.level == route.query.level * 1 + 1)
.map((j: any) => {
return { ...j, name: j.typeName, value: j.typeId, isChecked: false, index: 1 }
})
screenChooseList[2].list.push(...typeList_2)
}
if (index == 2) {
currentIndex = route.query.level * 1 + 1
}
@ -612,6 +636,9 @@ onMounted(() => {
Promise.all([getCompanyAddressListData(), lowerClassData()]).then(() => {
if (route.query.level == 1) {
screenChooseList[1].list.forEach((e: any, index: number) => {
if (index == 0) {
e.isChecked = false
}
if (route.query.typeId == e.typeId) {
e.isChecked = true
}

View File

@ -16,6 +16,7 @@ const store2 = mainStore()
const isViewForm = ref(false)
const isDisabled = ref(false)
const isMaStatus = ref(false)
import {
getEquipmentTypeApi, //
getCompanyListApi, //
@ -129,16 +130,14 @@ getList()
//
const equipmentDeployment = () => {
settleinTitle.value = '新增装备'
isMaStatus.value = false
isViewForm.value = false
isEditForm.value = false
Object.assign(addAndEditForm, addAndEditFormTemp)
descriptionFormList.value = []
descriptionFormList.value.push({
newId: Date.now(),
insurancePdf: [],
insurancePdfs: [],
insuranceATempPdf: [],
examinationPdf: [],
examinationPdfs: [],
examinationTempPdf: [],
})
@ -174,7 +173,7 @@ const maId: any = ref('')
const editRowInfo = (row: any) => {
settleinTitle.value = '装备编辑'
getDetailData(row)
isMaStatus.value = true
disabledForm.value = false
isEditDisabled.value = true
isViewForm.value = false
@ -270,16 +269,14 @@ const getDetailData = async (row: any) => {
descriptionFormList.value = []
descriptionFormList.value.push({
newId: Date.now(),
insurancePdf: [],
insurancePdfs: [],
insuranceATempPdf: [],
examinationPdf: [],
examinationPdfs: [],
examinationTempPdf: [],
})
descriptionFormList.value[0].insurancePdfs = insurancePdf
descriptionFormList.value[0].examinationPdfs = examinationPdf
options.value=[]
options.value = []
addAndEditForm.deviceTypeList = getSelectId(deviceTypeTree.value, addAndEditForm.typeId)
propertyNames.value = addAndEditForm.devInfoProperties
// addAndEditForm.deviceTypeList[0].data.propertyNames.forEach((item:any) =>{
@ -395,8 +392,8 @@ const countDisabled = ref(false)
//-change
const dialogTypeCascader = ref()
//-change
const dialogTypeChange = async () => {
options.value=[]
const dialogTypeChange = async () => {
options.value = []
const deviceTypeList = dialogTypeCascader.value.getCheckedNodes()
// console.log(deviceTypeList)
// equipmentDeploymentParams.value.unitName = deviceTypeList[0].data.unitName
@ -412,14 +409,14 @@ const dialogTypeCascader = ref()
// equipmentDeploymentParams.value.deviceCount = 1
// countDisabled.value = true
// }
console.log('deviceTypeList',deviceTypeList[0].data.maTypeProperties)
if(deviceTypeList[0].data.maTypeProperties==null){
propertyNames.value=[]
}else{
propertyNames.value=[]
propertyNames.value = deviceTypeList[0].data.maTypeProperties;
deviceTypeList[0].data.maTypeProperties.forEach((item:any) =>{
options.value.push({'label':item.propertyName,'value':item.propertyName})
console.log('deviceTypeList', deviceTypeList[0].data.maTypeProperties)
if (deviceTypeList[0].data.maTypeProperties == null) {
propertyNames.value = []
} else {
propertyNames.value = []
propertyNames.value = deviceTypeList[0].data.maTypeProperties
deviceTypeList[0].data.maTypeProperties.forEach((item: any) => {
options.value.push({ label: item.propertyName, value: item.propertyName })
})
console.log(propertyNames.value)
}
@ -522,23 +519,18 @@ const equipRules = ref({
// ],
})
const getProertyNameRules = (item:any)=>{
if(item.mustHave ==1){
return [
{required: true, message: '请输入属性描述',trigger: 'blur',}
]
}else{
const getProertyNameRules = (item: any) => {
if (item.mustHave == 1) {
return [{ required: true, message: '请输入属性描述', trigger: 'blur' }]
} else {
return []
}
}
const getProertyValueRules = (item:any)=>{
if(item.mustHave ==1){
return [
{required: true, message: '请输入属性值',trigger: 'blur',}
]
}else{
const getProertyValueRules = (item: any) => {
if (item.mustHave == 1) {
return [{ required: true, message: '请输入属性值', trigger: 'blur' }]
} else {
return []
}
}
@ -605,8 +597,7 @@ const submitBtn = async () => {
// })
}
const submitFun = (type: any) => {
console.log(9999)
// type 1 2 稿 3
// type 1 () 2 稿() 3 4 稿
addAndEditForm.mainFileList = [
...addAndEditForm.mainFileList,
...addAndEditForm.mainFileTempList,
@ -622,10 +613,18 @@ const submitFun = (type: any) => {
descriptionFormList.value.forEach((e: any, index: number) => {
e.insurancePdfs = [...e.insurancePdfs, ...e.insuranceATempPdf]
e.examinationPdfs = [...e.examinationPdfs, ...e.examinationTempPdf]
addAndEditForm.insurancePdfs[index] = e.insurancePdfs
addAndEditForm.examinationPdfs[index] = e.examinationPdfs
console.log(e.insurancePdfs, ' e.insurancePdfs---')
if (type == 3 || type == 4) {
addAndEditForm.insurancePdf = e.insurancePdfs.map((e: any) => {
return { fileNam: e.fileName, fileUrl: e.fileUrl }
})
addAndEditForm.examinationPdf = e.examinationPdfs.map((e: any) => {
return { fileNam: e.fileName, fileUrl: e.fileUrl }
})
} else {
addAndEditForm.insurancePdfs[index] = e.insurancePdfs
addAndEditForm.examinationPdfs[index] = e.examinationPdfs
}
})
for (let index = 0; index < descriptionFormList.value.length; index++) {
@ -645,10 +644,10 @@ const submitFun = (type: any) => {
if (isDescription) return
addAndEditForm.devInfoProperties = propertyNames.value;
addAndEditForm.devInfoProperties = propertyNames.value
addAndEditForm.typeId =
addAndEditForm.deviceTypeList[addAndEditForm.deviceTypeList.length - 1]
let SEND_FUN_API: any = null
if (type == 1) {
SEND_FUN_API = equipmentAddApi
@ -658,9 +657,13 @@ const submitFun = (type: any) => {
}
if (type == 3) {
SEND_FUN_API = equipmentEditApi
addAndEditForm.maStatus = 1
}
if (type == 4) {
SEND_FUN_API = equipmentEditApi
addAndEditForm.maStatus = 0
}
const res: any = await SEND_FUN_API(addAndEditForm)
console.log(res, '提交结果---')
if (res.code === 200) {
ElMessage({
type: 'success',
@ -680,8 +683,7 @@ const submitFun = (type: any) => {
}
//稿
const saveTemp = async () => {
submitFun(2)
submitFun(isMaStatus.value ? 4 : 2)
if (true) return
}
@ -867,10 +869,8 @@ const onAddDescription = () => {
const newId = Date.now()
descriptionFormList.value.push({
newId,
insurancePdf: [],
insurancePdfs: [],
insuranceATempPdf: [],
examinationPdf: [],
examinationPdfs: [],
examinationTempPdf: [],
})
@ -900,43 +900,17 @@ const addAndEditForm = reactive<any>({
examinationPdf: [],
insurancePdfs: [],
examinationPdfs: [],
devInfoProperties:[],
})
const addAndEditFormTemp = reactive<any>({
deviceName: '',
deviceTypeList: [],
deviceCount: 1,
unitName: '',
code: '',
brand: '',
typeId: '',
companyId: '',
productionDate: '',
dayLeasePrice: '',
person: '',
personPhone: '',
deviceWeight: '',
checkDate: '',
checkCycle: '',
mainFileList: [],
detailsFileList: [],
mainFileTempList: [],
detailsFileTempList: [],
insurancePdf: [],
examinationPdf: [],
insurancePdfs: [],
examinationPdfs: [],
devInfoProperties: [],
})
// const addAndEditFormTemp = reactive<any>()
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
const addAndEditFormRef = ref()
//
const descriptionFormList = ref<any>([
{
newId: Date.now(),
insurancePdf: [],
insurancePdfs: [],
insuranceATempPdf: [],
examinationPdf: [],
examinationPdfs: [],
examinationTempPdf: [],
},
@ -1011,13 +985,35 @@ const onDeleteImgExaminationPdf = (j: any, index: any) => {
const onDialogClose = () => {
addAndEditFormRef.value.resetFields()
Object.assign(addAndEditForm, {
deviceName: '',
deviceTypeList: [],
deviceCount: 1,
unitName: '',
code: '',
brand: '',
typeId: '',
companyId: '',
productionDate: '',
dayLeasePrice: '',
person: '',
personPhone: '',
deviceWeight: '',
checkDate: '',
checkCycle: '',
mainFileList: [],
detailsFileList: [],
mainFileTempList: [],
detailsFileTempList: [],
insurancePdf: [],
examinationPdf: [],
insurancePdfs: [],
examinationPdfs: [],
})
}
const propertyNames = ref<any>([
])
const propertyNamesTwo = ref<any>([
])
const propertyNames = ref<any>([])
const propertyNamesTwo = ref<any>([])
const options = ref<any>([])
</script>
<template>
@ -1432,38 +1428,41 @@ const options = ref<any>([])
</el-form-item>
</el-col>
</el-row> -->
<div
v-for="(item, index) in propertyNames"
:key="index"
:model="item"
class="dynamic-item"
>
<el-row :gutter="20" style="display: flex;margin-top:10px;justify-content: left;">
<el-col :span="12" >
<el-form-item label="属性描述:">
<el-input
v-model="item.propertyName"
placeholder="请输入"
maxlength="20"
style="width: 350px;"
disabled
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item label="属性值:" >
<el-input
v-model="item.propertyValue"
placeholder="请输入"
maxlength="20"
style="width: 350px;"
<div
v-for="(item, index) in propertyNames"
:key="index"
:model="item"
class="dynamic-item"
>
<el-row
:gutter="20"
style="display: flex; margin-top: 10px; justify-content: left"
>
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-col :span="12">
<el-form-item label="属性描述:">
<el-input
v-model="item.propertyName"
placeholder="请输入"
maxlength="20"
style="width: 350px"
disabled
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="属性值:">
<el-input
v-model="item.propertyValue"
placeholder="请输入"
maxlength="20"
style="width: 350px"
>
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<TitleTip :titleText="`装备图片`" />
<el-row :gutter="20" v-if="!isViewForm">
@ -1638,7 +1637,7 @@ const options = ref<any>([])
:currentIndex="index"
:autoUpload="true"
:multiple="true"
:minLimit="item.insurancePdf.length"
:minLimit="item.insurancePdfs.length"
listType="picture-card"
:acceptTypeList="['.jpg', '.png']"
@onFileChange="onInsurancePdfChange"
@ -1697,7 +1696,7 @@ const options = ref<any>([])
height="100px"
:autoUpload="true"
:multiple="true"
:minLimit="item.examinationPdf.length"
:minLimit="item.examinationPdfs.length"
:currentIndex="index"
listType="picture-card"
:acceptTypeList="['.jpg', '.png']"

View File

@ -24,9 +24,9 @@
<el-form-item prop="minNum">
<el-input
inputmode="numeric"
v-model="searchParams.minNum"
style="width: 100%"
placeholder="维修保养次数"
v-model="searchParams.minNum"
/>
</el-form-item>
</el-col>
@ -35,9 +35,9 @@
<el-form-item prop="maxNum">
<el-input
inputmode="numeric"
v-model.trim="searchParams.maxNum"
style="width: 100%"
placeholder="维修保养次数"
v-model.trim="searchParams.maxNum"
/>
</el-form-item>
</el-col>
@ -49,21 +49,21 @@
style="width: 100%"
range-separator="-"
value-format="YYYY-MM-DD"
start-placeholder="最新质检日期"
end-placeholder="最新质检日期"
end-placeholder="最新维修保养日期"
start-placeholder="最新维修保养日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-date-picker
v-model="createTime"
type="daterange"
v-model="createTime"
style="width: 100%"
range-separator="-"
value-format="YYYY-MM-DD"
start-placeholder="更新日期"
end-placeholder="更新日期"
start-placeholder="更新日期"
/>
</el-form-item>
</el-col>
@ -101,10 +101,9 @@
<el-table-column align="center" label="序号" type="index" width="80" />
<el-table-column align="center" prop="deviceCode" label="装备编码" />
<el-table-column align="center" prop="deviceName" label="装备名称" />
<el-table-column align="center" prop="qcTime" label="最新质检日期" />
<el-table-column align="center" prop="createBy" label="创建人" width="120" />
<el-table-column align="center" prop="createTime" label="上传时间" />
<el-table-column align="center" prop="updateTime" label="更新时间" />
<el-table-column align="center" prop="rmTime" label="最新维修保养日期" />
<el-table-column align="center" prop="num" label="维修保养次数" />
<el-table-column align="center" prop="createTime" label="更新时间" />
<el-table-column align="center" label="操作" :width="220">
<template #default="{ row }">
<el-button
@ -113,7 +112,7 @@
class="primary-lease"
@click="onViewQualityRecord(row)"
>
装备质检记录
维修保养记录
</el-button>
<el-popconfirm
@ -121,7 +120,7 @@
:icon="InfoFilled"
icon-color="#626AEF"
title="确定删除该项需求吗?"
@confirm="onDelete(row.id, row.maId)"
@confirm="onDelete(row.maId)"
>
<template #reference>
<el-button size="small" type="danger"> 删除 </el-button>
@ -131,10 +130,10 @@
>取消</el-button
>
<el-button
class="primary-lease"
type="primary"
size="small"
type="primary"
@click="confirm()"
class="primary-lease"
>
确定
</el-button>
@ -146,8 +145,8 @@
<PagingComponent
:total="total"
:size="searchParams.pageSize"
:page="searchParams.pageNum"
:size="searchParams.pageSize"
@getListChange="getLeaseListData"
v-model:page-num="searchParams.pageNum"
v-model:page-size="searchParams.pageSize"
@ -155,14 +154,14 @@
<!-- 新增修改对话框 -->
<el-dialog
:width="dialogTitle == '质检新增' ? '40%' : '60%'"
align-center
@close="onClose"
destroy-on-close
:title="dialogTitle"
v-model="addOrEditDialogVisible"
:width="dialogTitle == '新建维修保养' ? '40%' : '60%'"
>
<template v-if="dialogTitle == '质检新增'">
<template v-if="dialogTitle == '新建维修保养'">
<el-form
label-width="auto"
label-position="right"
@ -191,10 +190,10 @@
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="维修保养名称" prop="qcName">
<el-form-item label="维修保养名称" prop="rmName">
<el-input
v-model.trim="addOrEditForm.qcName"
placeholder="请输入质检名称"
placeholder="请输入维修保养名称"
v-model.trim="addOrEditForm.rmName"
/>
</el-form-item>
</el-col>
@ -208,8 +207,8 @@
type="date"
style="width: 100%"
value-format="YYYY-MM-DD"
v-model="addOrEditForm.rmTime"
placeholder="请选择质检日期"
v-model="addOrEditForm.rmTime"
/>
</el-form-item>
</el-col>
@ -232,14 +231,16 @@
height="100px"
:multiple="true"
:autoUpload="true"
:minLimit="addOrEditForm.fileInfoList.length"
:actionUrl="uploadUrl"
listType="picture-card"
@onFileChange="onFileChange"
:acceptTypeList="['.jpg', '.png']"
:minLimit="addOrEditForm.fileInfoList.length"
>
<template v-slot:default>
<el-icon size="48" color="#aaa"><Plus /></el-icon>
<el-icon size="48" color="#aaa">
<Plus />
</el-icon>
</template>
</UploadComponentNew>
</el-form-item>
@ -247,18 +248,18 @@
</el-row>
</el-form>
</template>
<template #footer v-if="dialogTitle == '质检新增'">
<template #footer v-if="dialogTitle == '新建维修保养'">
<div class="dialog-footer">
<el-button type="primary" class="primary-lease" @click="onCancel"
>取消</el-button
>
<el-button type="primary" class="primary-lease" @click="onCancel">
取消
</el-button>
<el-button class="primary-lease" type="primary" @click="onSubmit()">
提交
</el-button>
</div>
</template>
<template v-if="dialogTitle == '质检记录'">
<template v-if="dialogTitle == '维修保养记录'">
<el-row style="padding-bottom: 20px">
<el-col :span="6">
<span> 装备编号 </span>
@ -278,55 +279,57 @@
>
<el-row>
<el-col :span="6">
<el-form-item prop="qcCode">
<el-form-item prop="rmCode">
<el-input
clearable
style="width: 100%"
placeholder="请输入质检编码"
v-model="searchParamsInDialog.qcCode"
placeholder="请输入维修保养编码"
v-model="searchParamsInDialog.rmCode"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-date-picker
type="daterange"
v-model="qcTime_1"
type="daterange"
style="width: 100%"
range-separator="-"
value-format="YYYY-MM-DD"
start-placeholder="质检日期"
end-placeholder="质检日期"
start-placeholder="质检日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-date-picker
v-model="createTime_1"
type="daterange"
style="width: 100%"
range-separator="-"
v-model="createTime_1"
value-format="YYYY-MM-DD"
start-placeholder="上传日期"
end-placeholder="上传日期"
start-placeholder="上传日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button
type="primary"
class="primary-lease"
@click="getLeaseListDataInDialog"
type="primary"
class="primary-lease"
>查询</el-button
>
查询
</el-button>
<el-button
@click="onResetInDialog"
type="primary"
class="primary-lease"
>重置</el-button
@click="onResetInDialog"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -342,24 +345,24 @@
}"
>
<el-table-column align="center" label="序号" type="index" width="80" />
<el-table-column align="center" prop="qcCode" label="维修保养编码" />
<el-table-column align="center" prop="qcName" label="维修保养名称" />
<el-table-column align="center" prop="qcTime" label="维修保养日期" />
<el-table-column align="center" prop="rmCode" label="维修保养编码" />
<el-table-column align="center" prop="rmName" label="维修保养名称" />
<el-table-column align="center" prop="rmTime" label="维修保养日期" />
<el-table-column align="center" prop="nickName" label="上传人" width="120" />
<el-table-column align="center" prop="createTime" label="上传时间" />
<el-table-column align="center" label="附件">
<template #default="{ row }">
<el-image
style="width: 60px; height: 60px"
fit="cover"
:src="row.url"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="[row.url]"
:zoom-rate="1.2"
:initial-index="0"
fit="cover"
:z-index="9999999999"
:preview-teleported="true"
:preview-src-list="[row.url]"
style="width: 60px; height: 60px"
/>
</template>
</el-table-column>
@ -367,8 +370,8 @@
<PagingComponent
:total="totalInDialog"
:size="searchParamsInDialog.pageSize"
:page="searchParamsInDialog.pageNum"
:size="searchParamsInDialog.pageSize"
@getListChange="getLeaseListDataInDialog"
v-model:page-num="searchParamsInDialog.pageNum"
v-model:page-size="searchParamsInDialog.pageSize"
@ -379,65 +382,63 @@
</template>
<script setup lang="ts">
import { ElMessage } from 'element-plus'
import { InfoFilled } from '@element-plus/icons-vue'
import { getAssociationListApi } from 'http/api/quality-manage'
import PagingComponent from 'components/PagingComponent/index.vue'
import UploadComponentNew from 'components/uploadComponentNew/index.vue'
import {
addQualityDataApi,
getQualityListApi,
getQualityDetailsApi,
qualityDeleteByIdApi,
getAssociationListApi,
} from 'http/api/quality-manage'
import { getRepairListApi, addRepairDataApi } from 'http/api/repair-manage/index'
import { InfoFilled } from '@element-plus/icons-vue'
import { ElMessage } from 'element-plus'
getRepairListApi,
addRepairDataApi,
getRmDetailsListApi,
deleteRepairByIddApi,
} from 'http/api/repair-manage/index'
const total = ref(0)
const totalInDialog = ref(0)
const qcTime = ref([])
const createTime = ref([])
const qcTime_1 = ref([])
const createTime = ref([])
const createTime_1 = ref([])
const totalInDialog = ref(0)
const isRepublish = ref(true)
const qualityLis = ref<any>([])
const dialogTitle = ref('新增')
const searchFormRef = ref<any>(null)
const searchFormRefInDialog = ref<any>(null)
const addOrEditFormRef = ref<any>(null)
const addOrEditDialogVisible = ref(false)
const associationList = ref<any>([])
const qualityDetailsList = ref<any>([])
const qualityLis = ref<any>([])
const qualityDetails = ref<any>({})
const searchFormRef = ref<any>(null)
const associationList = ref<any>([])
const addOrEditFormRef = ref<any>(null)
const qualityDetailsList = ref<any>([])
const addOrEditDialogVisible = ref(false)
const searchFormRefInDialog = ref<any>(null)
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
const searchParams = reactive({
deviceCode: '',
StartTime: '',
qcEndTime: '',
createStartTime: '',
createEndTime: '',
minNum: '',
maxNum: '',
pageSize: 10,
minNum: '',
pageNum: 1,
pageSize: 10,
rmEndTime: '',
deviceCode: '',
rmStartTime: '',
createEndTime: '',
createStartTime: '',
})
const searchParamsInDialog = reactive({
id: '',
qcCode: '',
qcStartTime: '',
qcEndTime: '',
createStartTime: '',
createEndTime: '',
pageSize: 10,
rmCode: '',
pageNum: 1,
pageSize: 10,
rmEndTime: '',
rmStartTime: '',
createEndTime: '',
createStartTime: '',
})
const addOrEditForm = ref<any>({
maId: '',
rmName: '',
rmUser: '',
rmTime: '',
rmName: '',
fileInfoList: [],
fileInfoTempList: [],
})
@ -461,10 +462,9 @@ const checkMaxNum = (rule: any, value: any, callback: any) => {
const addOrEditFormRules = reactive({
maId: [{ required: true, message: '请选择关联装备', trigger: 'change' }],
rmName: [{ required: true, message: '请输入质检名称', trigger: 'blur' }],
rmUser: [{ required: true, message: '请输入质检员', trigger: 'change' }],
rmTime: [{ required: true, message: '请选择质检日期', trigger: 'change' }],
fileInfoList: [{ required: true, message: '请上传质检附件', trigger: 'blur' }],
rmName: [{ required: true, message: '请输入维修保养名称', trigger: 'blur' }],
rmTime: [{ required: true, message: '请选择维修保养日期', trigger: 'change' }],
fileInfoList: [{ required: true, message: '请上传维修保养附件', trigger: 'blur' }],
})
const searchFormRules = reactive({
minNum: [
@ -494,14 +494,14 @@ const disabledDate = (date: any) => {
//
const getLeaseListData = async () => {
if (qcTime.value.length > 0) {
searchParams.qcStartTime = qcTime.value[0]
searchParams.qcEndTime = qcTime.value[1]
searchParams.rmStartTime = qcTime.value[0]
searchParams.rmEndTime = qcTime.value[1]
}
if (createTime.value.length > 0) {
searchParams.createStartTime = createTime.value[0]
searchParams.createEndTime = createTime.value[1]
}
const { data: res }: any = await getRepairListApi()
const { data: res }: any = await getRepairListApi(searchParams)
console.log(res, '维修列表')
qualityLis.value = res.rows
total.value = res.total
@ -525,30 +525,30 @@ const getAssociationListData = async () => {
const onReset = () => {
qcTime.value = []
createTime.value = []
searchParams.qcStartTime = ''
searchParams.qcEndTime = ''
searchParams.createStartTime = ''
searchParams.createEndTime = ''
searchParams.pageNum = 1
searchParams.pageSize = 10
searchParams.rmEndTime = ''
searchParams.rmStartTime = ''
searchParams.createEndTime = ''
searchParams.createStartTime = ''
searchFormRef.value.resetFields()
getLeaseListData()
}
const onResetInDialog = () => {
qcTime_1.value = []
createTime_1.value = []
searchParamsInDialog.qcStartTime = ''
searchParamsInDialog.qcEndTime = ''
searchParamsInDialog.createStartTime = ''
searchParamsInDialog.createEndTime = ''
searchParamsInDialog.pageNum = 1
searchParamsInDialog.pageSize = 10
searchParamsInDialog.rmEndTime = ''
searchParamsInDialog.rmStartTime = ''
searchParamsInDialog.createEndTime = ''
searchParamsInDialog.createStartTime = ''
searchFormRefInDialog.value.resetFields()
getLeaseListDataInDialog()
}
//
const onDelete = async (id: any, maId: any) => {
const res: any = await qualityDeleteByIdApi({ maId })
const onDelete = async (maId: any) => {
const res: any = await deleteRepairByIddApi({ maId })
if (res.code === 200) {
ElMessage({
type: 'success',
@ -563,7 +563,7 @@ const onSubmit = () => {
addOrEditForm.value.fileInfoList = addOrEditForm.value.fileInfoTempList
addOrEditFormRef.value.validate(async (valid: any) => {
if (valid) {
const res: any = await addQualityDataApi(addOrEditForm.value)
const res: any = await addRepairDataApi(addOrEditForm.value)
if (res.code === 200) {
ElMessage({
type: 'success',
@ -581,19 +581,19 @@ const onViewQualityRecord = (row: any) => {
qualityDetails.value = row
searchParamsInDialog.id = row.id
getLeaseListDataInDialog()
dialogTitle.value = '质检记录'
dialogTitle.value = '维修保养记录'
addOrEditDialogVisible.value = true
}
const getLeaseListDataInDialog = async () => {
if (qcTime_1.value.length > 0) {
searchParamsInDialog.qcStartTime = qcTime_1.value[0]
searchParamsInDialog.qcEndTime = qcTime_1.value[1]
searchParamsInDialog.rmStartTime = qcTime_1.value[0]
searchParamsInDialog.rmEndTime = qcTime_1.value[1]
}
if (createTime_1.value.length > 0) {
searchParamsInDialog.createStartTime = createTime_1.value[0]
searchParamsInDialog.createEndTime = createTime_1.value[1]
}
const { data: res }: any = await getQualityDetailsApi(searchParamsInDialog)
const { data: res }: any = await getRmDetailsListApi(searchParamsInDialog)
qualityDetailsList.value = res.rows
totalInDialog.value = res.total
}
@ -616,7 +616,7 @@ const onCancel = () => {
addOrEditDialogVisible.value = false
}
const onClose = () => {
if (dialogTitle.value !== '质检记录') {
if (dialogTitle.value !== '维修保养记录') {
addOrEditFormRef.value.resetFields()
}
}

View File

@ -188,7 +188,7 @@ const stepList = ref([
description: '',
},
])
const isReject = ref(false)
if (props.orderStatus == 1) {
currentActive.value = 0
}
@ -239,15 +239,21 @@ if (props.orderStatus == 20) {
stepList.value[5].title = '结算完成'
currentActive.value = 7
}
if (props.orderStatus == 99) {
currentActive.value = 7
stepList.value[6].title = '订单取消'
isReject.value = true
}
</script>
<template>
<!-- 订单管理 -->
<div class="container">
<el-breadcrumb separator="/" style="padding: 15px 0">
<el-breadcrumb-item @click="onOrderManage" class="order-title"
>订单管理</el-breadcrumb-item
>
<el-breadcrumb-item @click="onOrderManage" class="order-title">
订单管理
</el-breadcrumb-item>
<el-breadcrumb-item>订单明细</el-breadcrumb-item>
</el-breadcrumb>
<div class="order-details">
@ -256,8 +262,8 @@ if (props.orderStatus == 20) {
<div style="padding: 20px 40px">
<el-steps
:active="currentActive"
finish-status="success"
process-status="process"
:finish-status="isReject ? 'error' : 'success'"
:process-status="isReject ? 'error' : 'process'"
align-center
>
<el-step

View File

@ -58,6 +58,7 @@ const statusList: any = [
{ id: '8', name: '已驳回' },
{ id: '10', name: '已检修待结算' },
{ id: '20', name: '已完成' },
{ id: '99', name: '已取消' },
]
const orderText = (status: any) => {
@ -337,13 +338,13 @@ const handleViewWord = () => {
}
const confirmFail = async (index: number) => {
ElMessageBox.confirm('是否确定取消', {
ElMessageBox.confirm('是否确定取消订单', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return failApi({ orderId: cardList.value[index].orderId, orderStatus: 7 })
return failApi({ orderId: cardList.value[index].orderId, orderStatus: 99 })
// return removeDeviceApi([row.maId])
})
.then((res) => {
@ -700,15 +701,9 @@ const costSubmit = () => {
type="primary"
size="small"
@click="confirmReceipt(index)"
>确认收货</el-button
>
<el-button
v-if="item.orderStatus == '2'"
type="primary"
size="small"
@click="confirmFail(index)"
>取消</el-button
>
确认收货
</el-button>
<el-button
@click="handleViewOrder(j, item)"
@ -755,6 +750,14 @@ const costSubmit = () => {
全部退租
</el-button>
<el-button type="primary" size="small"> 发起减免 </el-button>
<el-button
v-if="item.orderStatus == '2'"
type="primary"
size="small"
@click="confirmFail(index)"
>
取消订单
</el-button>
</div>
</el-col>
</el-row>

View File

@ -188,7 +188,7 @@ const stepList = ref([
description: '',
},
])
const isReject = ref(false)
if (props.orderStatus == 1) {
currentActive.value = 0
}
@ -239,15 +239,21 @@ if (props.orderStatus == 20) {
stepList.value[5].title = '结算完成'
currentActive.value = 7
}
if (props.orderStatus == 99) {
currentActive.value = 7
stepList.value[6].title = '订单取消'
isReject.value = true
}
</script>
<template>
<!-- 订单管理 -->
<div class="container">
<el-breadcrumb separator="/" style="padding: 15px 0">
<el-breadcrumb-item @click="onOrderManage" class="order-title"
>订单管理</el-breadcrumb-item
>
<el-breadcrumb-item @click="onOrderManage" class="order-title">
订单管理
</el-breadcrumb-item>
<el-breadcrumb-item>订单明细</el-breadcrumb-item>
</el-breadcrumb>
<div class="order-details">
@ -256,8 +262,8 @@ if (props.orderStatus == 20) {
<div style="padding: 20px 40px">
<el-steps
:active="currentActive"
finish-status="success"
process-status="process"
:finish-status="isReject ? 'wait' : 'success'"
:process-status="isReject ? 'error' : 'process'"
align-center
>
<el-step

View File

@ -60,6 +60,7 @@ const statusList: any = [
{ id: '8', name: '已驳回' },
{ id: '10', name: '已检修待结算' },
{ id: '20', name: '已完成' },
{ id: '99', name: '已取消' },
]
const orderText = (status: any) => {
@ -195,7 +196,7 @@ const confirmFail = async (index: number) => {
type: 'warning',
})
.then(() => {
return failApi({ orderId: cardList.value[index].orderId, orderStatus: 7 })
return failApi({ orderId: cardList.value[index].orderId, orderStatus: 99 })
// return removeDeviceApi([row.maId])
})
.then((res) => {
@ -949,13 +950,6 @@ const downloadContract = () => {}
@click="confirmPass(index)"
>出库</el-button
>
<el-button
v-if="item.orderStatus == '2'"
type="primary"
size="small"
@click="confirmFail(index)"
>取消</el-button
>
<el-button
@click="handleViewOrder(j, item)"
@ -991,6 +985,14 @@ const downloadContract = () => {}
>
费用清单
</el-button>
<el-button
size="small"
type="primary"
v-if="item.orderStatus == '2'"
@click="confirmFail(index)"
>
取消订单
</el-button>
</div>
</el-col>
</el-row>