|
|
|
@ -1,75 +1,55 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<basic-container style="max-height: 800px; overflow: hidden"> |
|
|
|
<basic-container style="max-height: 800px; overflow: hidden"> |
|
|
|
<avue-crud |
|
|
|
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="form" |
|
|
|
:option="option" |
|
|
|
:permission="permissionList" :before-open="beforeOpen" :before-close="beforeClose" |
|
|
|
:table-loading="loading" |
|
|
|
@selection-change="selectionChange" @search-change="searchChange" @search-reset="searchReset" |
|
|
|
:data="data" |
|
|
|
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> |
|
|
|
:page.sync="page" |
|
|
|
|
|
|
|
ref="crud" |
|
|
|
|
|
|
|
v-model="form" |
|
|
|
|
|
|
|
:permission="permissionList" |
|
|
|
|
|
|
|
:before-open="beforeOpen" |
|
|
|
|
|
|
|
:before-close="beforeClose" |
|
|
|
|
|
|
|
@selection-change="selectionChange" |
|
|
|
|
|
|
|
@search-change="searchChange" |
|
|
|
|
|
|
|
@search-reset="searchReset" |
|
|
|
|
|
|
|
@current-change="currentChange" |
|
|
|
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
|
|
|
@refresh-change="refreshChange" |
|
|
|
|
|
|
|
@on-load="onLoad" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<template slot-scope="{ row }" slot="repairStatus"> |
|
|
|
<template slot-scope="{ row }" slot="repairStatus"> |
|
|
|
<el-tag size="small" :type="row.repairStatus == 0 ? 'info' |
|
|
|
<el-tag size="small" :type="row.repairStatus == 0 ? 'info' |
|
|
|
: row.approvePoint != '' && (row.approvePoint == '客户审核维修方案' || row.approvePoint == '主管审核维修方案') && row.repairStatus == 1 ? 'danger' |
|
|
|
: row.approvePoint != '' && (row.approvePoint == '客户审核维修方案' || row.approvePoint == '主管审核维修方案') && row.repairStatus == 1 ? 'danger' |
|
|
|
: row.repairStatus == 1 ? '' |
|
|
|
: row.repairStatus == 1 ? '' |
|
|
|
: (row.repairStatus == 2 || row.repairStatus == 3) ? '' |
|
|
|
: (row.repairStatus == 2 || row.repairStatus == 3) ? '' |
|
|
|
: row.repairStatus == 4 ? 'warning' |
|
|
|
: row.repairStatus == 4 ? 'warning' |
|
|
|
: (row.repairStatus == 5 || row.repairStatus == 6) ? 'success' : '' " |
|
|
|
: (row.repairStatus == 5 || row.repairStatus == 6) ? 'success' : ''"> |
|
|
|
> |
|
|
|
|
|
|
|
{{ row.repairStatus == 0 ? "无需维修" |
|
|
|
{{ row.repairStatus == 0 ? "无需维修" |
|
|
|
: row.approvePoint != '' && (row.approvePoint == '客户审核维修方案' || row.approvePoint == '主管审核维修方案') && row.repairStatus == 1 ? '已驳回' |
|
|
|
: row.approvePoint != '' && (row.approvePoint == '客户审核维修方案' || row.approvePoint == '主管审核维修方案') && |
|
|
|
|
|
|
|
row.repairStatus == 1 ? '已驳回' |
|
|
|
: row.repairStatus == 1 ? "待提交" |
|
|
|
: row.repairStatus == 1 ? "待提交" |
|
|
|
: row.repairStatus == 2 ? "待审批" |
|
|
|
: row.repairStatus == 2 ? "待审批" |
|
|
|
: row.repairStatus == 3 ? '待确认' |
|
|
|
: row.repairStatus == 3 ? '待确认' |
|
|
|
: row.repairStatus == 4 ? '维修中' |
|
|
|
: row.repairStatus == 4 ? '维修中' |
|
|
|
: row.repairStatus == 5 ? '维修完成' |
|
|
|
: row.repairStatus == 5 ? '维修完成' |
|
|
|
: "" |
|
|
|
: row.repairStatus == 6 ? '待付款' : row.repairStatus == 7 ? '待开发票' : row.repairStatus == 8 ? '已开发票' : "" |
|
|
|
}} |
|
|
|
}} |
|
|
|
</el-tag> |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template slot-scope="scope" slot="menuLeft"> |
|
|
|
<template slot-scope="scope" slot="menuLeft"> |
|
|
|
<el-button |
|
|
|
<el-button size="small" type="primary" @click="handleAdd">确认</el-button> |
|
|
|
size="small" |
|
|
|
<el-button size="small" @click="clickInvoice">开具发票</el-button> |
|
|
|
type="primary" |
|
|
|
|
|
|
|
@click="handleAdd" |
|
|
|
|
|
|
|
>确认</el-button |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template slot-scope="{ row }" slot="menu"> |
|
|
|
<template slot-scope="{ row }" slot="menu"> |
|
|
|
<el-button @click="handleView(row)">查看</el-button> |
|
|
|
<el-button @click="handleView(row)" v-show="permission.repairDetails">查看</el-button> |
|
|
|
<el-button @click="handleSubmit(row)" v-show="row.repairStatus == 1">提交</el-button> |
|
|
|
<el-button @click="handleSubmit(row)" v-show="permission.repairsubmit && row.repairStatus == 1">提交</el-button> |
|
|
|
<el-button @click="handleCheck(row)" v-show="row.repairStatus == 2">审核</el-button> |
|
|
|
<el-button @click="handleCheck(row)" v-show="permission.repairapprove && row.repairStatus == 2">审核</el-button> |
|
|
|
<el-button v-show="row.repairStatus == 3" @click="handleAccept(row)">确认</el-button> |
|
|
|
<el-button v-show="permission.repairconfirm && row.repairStatus == 3" @click="handleAccept(row)">确认</el-button> |
|
|
|
<el-button v-show="row.repairStatus == 4" @click="handleFinish(row)">维修完成</el-button> |
|
|
|
<el-button v-show="permission.repaircomplete && row.repairStatus == 4" |
|
|
|
|
|
|
|
@click="handleFinish(row)">维修完成</el-button> |
|
|
|
|
|
|
|
<el-button v-show="permission.repairevaluate && row.repairStatus == 5" |
|
|
|
|
|
|
|
@click="handleEvaluate(row)">评价</el-button> |
|
|
|
|
|
|
|
<el-button v-show="permission.confirmpayment && row.repairStatus == 6" |
|
|
|
|
|
|
|
@click="paymentFinish(row)">确认付款</el-button> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</avue-crud> |
|
|
|
</avue-crud> |
|
|
|
<el-dialog |
|
|
|
<el-dialog title="巡检异常维修" :visible.sync="dialogerror" :append-to-body="true" width="70%"> |
|
|
|
title="巡检异常维修" |
|
|
|
|
|
|
|
:visible.sync="dialogerror" |
|
|
|
|
|
|
|
:append-to-body="true" |
|
|
|
|
|
|
|
width="70%" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div style="height: 500px; overflow: auto"> |
|
|
|
<div style="height: 500px; overflow: auto"> |
|
|
|
<el-form ref="errorForm" :model="errorForm" :rules="addRules" label-width="120px" label-position="left"> |
|
|
|
<el-form ref="errorForm" :model="errorForm" :rules="addRules" label-width="120px" label-position="left"> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<div |
|
|
|
<div style=" |
|
|
|
style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
color: #101010; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: 550; |
|
|
|
font-weight: 550; |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-bottom: 20px; |
|
|
|
" |
|
|
|
"> |
|
|
|
> |
|
|
|
|
|
|
|
基本信息 |
|
|
|
基本信息 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-form-item label="单位名称" prop="deptName"> |
|
|
|
<el-form-item label="单位名称" prop="deptName"> |
|
|
|
@ -77,14 +57,12 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<div |
|
|
|
<div style=" |
|
|
|
style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
color: #101010; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: 550; |
|
|
|
font-weight: 550; |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-bottom: 20px; |
|
|
|
" |
|
|
|
"> |
|
|
|
> |
|
|
|
|
|
|
|
巡检异常清单 |
|
|
|
巡检异常清单 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-form-item label="异常清单"> |
|
|
|
<el-form-item label="异常清单"> |
|
|
|
@ -116,14 +94,12 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-show="errorForm.repairStatus == 2"> |
|
|
|
<div v-show="errorForm.repairStatus == 2"> |
|
|
|
<div |
|
|
|
<div style=" |
|
|
|
style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
color: #101010; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: 550; |
|
|
|
font-weight: 550; |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-bottom: 20px; |
|
|
|
" |
|
|
|
"> |
|
|
|
> |
|
|
|
|
|
|
|
主管审核 |
|
|
|
主管审核 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-form-item label="审核结果"> |
|
|
|
<el-form-item label="审核结果"> |
|
|
|
@ -137,14 +113,12 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-show="errorForm.repairStatus == 3"> |
|
|
|
<div v-show="errorForm.repairStatus == 3"> |
|
|
|
<div |
|
|
|
<div style=" |
|
|
|
style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
color: #101010; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: 550; |
|
|
|
font-weight: 550; |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-bottom: 20px; |
|
|
|
" |
|
|
|
"> |
|
|
|
> |
|
|
|
|
|
|
|
客户确认 |
|
|
|
客户确认 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-form-item label="审核结果"> |
|
|
|
<el-form-item label="审核结果"> |
|
|
|
@ -157,6 +131,134 @@ |
|
|
|
<el-input type="textarea" v-model="errorForm.approveRemark" style="width: 98%;"></el-input> |
|
|
|
<el-input type="textarea" v-model="errorForm.approveRemark" style="width: 98%;"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div v-show="errorForm.repairStatus == 5"> |
|
|
|
|
|
|
|
<div style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
|
|
|
|
font-size: 20px; |
|
|
|
|
|
|
|
font-weight: 550; |
|
|
|
|
|
|
|
margin-bottom: 20px; |
|
|
|
|
|
|
|
"> |
|
|
|
|
|
|
|
维修效果确认 |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<el-form-item label="是否维修完成"> |
|
|
|
|
|
|
|
<el-select placeholder="请确认是否维修完成" style="width: 98%;" v-model="errorForm.approveResult1" |
|
|
|
|
|
|
|
@change="changeResult"> |
|
|
|
|
|
|
|
<el-option label="是" :value="1"></el-option> |
|
|
|
|
|
|
|
<el-option label="否" :value="0"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="维修未完成原因" v-show="rowStatus == 5 && errorForm.approveResult1 == 0"> |
|
|
|
|
|
|
|
<el-input type="textarea" v-model="errorForm.approveRemark" placeholder="请输入维修未完成原因" |
|
|
|
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<div v-show="(rowStatus == 5 || isEvalute) && errorForm.approveResult1 == 1"> |
|
|
|
|
|
|
|
<div style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
|
|
|
|
font-size: 20px; |
|
|
|
|
|
|
|
font-weight: 550; |
|
|
|
|
|
|
|
margin-bottom: 20px; |
|
|
|
|
|
|
|
"> |
|
|
|
|
|
|
|
评价 |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
|
|
<p>1.您对本次维修的质量方面满意吗?</p> |
|
|
|
|
|
|
|
<div style="display:flex;"> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px; |
|
|
|
|
|
|
|
cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkQuality == '1' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkQuality == '1' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickQualityYes">满意</div> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
background: rgb(239, 239, 239); |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px;cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkQuality == '0' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkQuality == '0' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickQualityNo">不满意</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
|
|
<p>2.您对本次维修的安全方面满意吗?</p> |
|
|
|
|
|
|
|
<div style="display:flex;"> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
background: rgb(239, 239, 239); |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px;cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkSecure == '1' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkSecure == '1' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickSafeYes">满意</div> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
background: rgb(239, 239, 239); |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px;cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkSecure == '0' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkSecure == '0' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickSafeNo">不满意</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
|
|
<p>3.您对本次维修的时效方面满意吗?</p> |
|
|
|
|
|
|
|
<div style="display:flex;margin-bottom:30px;"> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
background: rgb(239, 239, 239); |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px;cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkValidity == '1' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkValidity == '1' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickTimeYes">满意</div> |
|
|
|
|
|
|
|
<div style="width: 150px; |
|
|
|
|
|
|
|
border-radius: 5px; |
|
|
|
|
|
|
|
height: 30px; |
|
|
|
|
|
|
|
background: rgb(239, 239, 239); |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
|
|
|
line-height: 30px; |
|
|
|
|
|
|
|
margin-right: 20px;cursor:pointer;" |
|
|
|
|
|
|
|
:style="{ background: errorForm.isOkValidity == '0' ? '#3a62d733' : 'rgb(239, 239, 239)', color: errorForm.isOkValidity == '0' ? '#3a62d7' : '#4f4f4f' }" |
|
|
|
|
|
|
|
@click="clickTimeNo">不满意</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-show="(rowStatus == 5 || isEvalute) && errorForm.approveResult1 == 1"> |
|
|
|
|
|
|
|
<div style=" |
|
|
|
|
|
|
|
color: #101010; |
|
|
|
|
|
|
|
font-size: 20px; |
|
|
|
|
|
|
|
font-weight: 550; |
|
|
|
|
|
|
|
margin-bottom: 20px; |
|
|
|
|
|
|
|
"> |
|
|
|
|
|
|
|
签名 |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-show="isEvalute"> |
|
|
|
|
|
|
|
<avue-sign ref="sign"></avue-sign> |
|
|
|
|
|
|
|
<el-button @click="clearName">清空</el-button> |
|
|
|
|
|
|
|
<el-button @click="confirmName">确定</el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-show="!isEvalute"> |
|
|
|
|
|
|
|
<img :src="errorForm.signatureUrl" alt=""> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<el-form-item label="签名人" prop="signaturePerson"> |
|
|
|
|
|
|
|
<el-input :readonly="!isEvalute" placeholder="请输入签名人" v-model="errorForm.signaturePerson"></el-input> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="签名时间" prop="signatureTime"> |
|
|
|
|
|
|
|
<el-date-picker :disabled="viewType == 'view'" v-model="errorForm.signatureTime" type="datetime" |
|
|
|
|
|
|
|
style="width:98%;" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
|
|
|
|
placeholder="请选择签名时间"> |
|
|
|
|
|
|
|
</el-date-picker> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
@ -169,7 +271,8 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import {getRepairPage,solutionSave,solutionSubmit,supervisorConfirm,supervisorRefuse,customerConfirm,customerRefuse,servicemanSubmit} from '@/api/labManagement/repair' |
|
|
|
import { getRepairPage, solutionSave, solutionSubmit, supervisorConfirm, supervisorRefuse, customerConfirm, customerRefuse, servicemanSubmit, repairServiceConfirm, customerConfirmFinish, customerRefuseFinish, repairConfirmConfirm } from '@/api/labManagement/repair' |
|
|
|
|
|
|
|
import { addFile } from '@/api/operation/hand' |
|
|
|
import { getDetail } from '@/api/labManagement/task' |
|
|
|
import { getDetail } from '@/api/labManagement/task' |
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
export default { |
|
|
|
export default { |
|
|
|
@ -249,7 +352,11 @@ export default { |
|
|
|
total: 0, |
|
|
|
total: 0, |
|
|
|
}, |
|
|
|
}, |
|
|
|
selectedList: [], |
|
|
|
selectedList: [], |
|
|
|
viewType:'' |
|
|
|
viewType: '', |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isEvalute: false, |
|
|
|
|
|
|
|
rowStatus: '', |
|
|
|
|
|
|
|
nameImg: '', |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
computed: { |
|
|
|
@ -305,6 +412,65 @@ export default { |
|
|
|
// this.errorForm = row |
|
|
|
// this.errorForm = row |
|
|
|
// this.dialogerror = true |
|
|
|
// this.dialogerror = true |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
// 点击行内的评价并签字按钮 |
|
|
|
|
|
|
|
handleEvaluate(row) { |
|
|
|
|
|
|
|
getDetail({ id: row.id }).then(res => { |
|
|
|
|
|
|
|
this.rowStatus = res.data.data.repairStatus |
|
|
|
|
|
|
|
this.viewType = 'evaluate' |
|
|
|
|
|
|
|
this.errorForm = res.data.data |
|
|
|
|
|
|
|
this.dialogerror = true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.isEvalute = true |
|
|
|
|
|
|
|
this.errorForm.isOkValidity = '' |
|
|
|
|
|
|
|
this.errorForm.isOkQuality = '' |
|
|
|
|
|
|
|
this.errorForm.isOkSecure = '' |
|
|
|
|
|
|
|
let data = this.checkDeepData(res.data.data.details) |
|
|
|
|
|
|
|
this.errorForm.tableData = data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 客户选择是否维修完成 |
|
|
|
|
|
|
|
changeResult(val) { |
|
|
|
|
|
|
|
this.isFinish = val |
|
|
|
|
|
|
|
console.log(this.isFinish) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickQualityYes() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkQuality = 1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickQualityNo() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkQuality = 0 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickSafeYes() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkSecure = 1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickSafeNo() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkSecure = 0 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickTimeYes() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkValidity = 1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clickTimeNo() { |
|
|
|
|
|
|
|
if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.errorForm.isOkValidity = 0 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
clearName() { |
|
|
|
|
|
|
|
this.$refs.sign.clear() |
|
|
|
|
|
|
|
this.nameImg = '' |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
confirmName() { |
|
|
|
|
|
|
|
this.nameImg = this.$refs.sign.submit(80, 50); |
|
|
|
|
|
|
|
}, |
|
|
|
//维修人员提交方案 |
|
|
|
//维修人员提交方案 |
|
|
|
handleSubmit(row) { |
|
|
|
handleSubmit(row) { |
|
|
|
this.viewType = 'submit' |
|
|
|
this.viewType = 'submit' |
|
|
|
@ -353,6 +519,57 @@ export default { |
|
|
|
}) |
|
|
|
}) |
|
|
|
// this.errorForm = row |
|
|
|
// this.errorForm = row |
|
|
|
// this.dialogerror = true |
|
|
|
// this.dialogerror = true |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 评价并签字提交 |
|
|
|
|
|
|
|
handleConfirm() { |
|
|
|
|
|
|
|
console.log('this.detailForm.approveResult1', this.errorForm.approveResult1) |
|
|
|
|
|
|
|
if (this.errorForm.approveResult1 == 0) {//否 |
|
|
|
|
|
|
|
let query = { |
|
|
|
|
|
|
|
id: this.errorForm.id, |
|
|
|
|
|
|
|
approveResult: this.errorForm.approveResult1, |
|
|
|
|
|
|
|
approvePerson: this.userInfo.user_id, |
|
|
|
|
|
|
|
approveTime: moment().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
|
|
|
approveRemark: this.errorForm.approveRemark |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
customerRefuseFinish(query).then(res => { |
|
|
|
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
|
|
|
this.$message.success('提交成功') |
|
|
|
|
|
|
|
this.dialogerror = false |
|
|
|
|
|
|
|
this.onLoad() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} else {//是 |
|
|
|
|
|
|
|
if (this.nameImg != '') { |
|
|
|
|
|
|
|
const formData = new FormData(); |
|
|
|
|
|
|
|
formData.append('file', this.base64toFile(this.nameImg)); |
|
|
|
|
|
|
|
addFile(formData).then(res => { |
|
|
|
|
|
|
|
console.log('res----------->', res) |
|
|
|
|
|
|
|
let query = { |
|
|
|
|
|
|
|
id: this.errorForm.id, |
|
|
|
|
|
|
|
isOkValidity: this.errorForm.isOkValidity, |
|
|
|
|
|
|
|
isOkQuality: this.errorForm.isOkQuality, |
|
|
|
|
|
|
|
isOkSecure: this.errorForm.isOkSecure, |
|
|
|
|
|
|
|
signatureUrl: res.data.data.link, |
|
|
|
|
|
|
|
signaturePerson: this.errorForm.signaturePerson, |
|
|
|
|
|
|
|
signatureTime: this.errorForm.signatureTime, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
customerConfirmFinish(query).then(res => { |
|
|
|
|
|
|
|
console.log('res ========>', res) |
|
|
|
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
|
|
|
this.$message.success('评价成功') |
|
|
|
|
|
|
|
this.dialogerror = false |
|
|
|
|
|
|
|
this.onLoad() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
this.$message.warning("请进行手写签名并点击确定按钮") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
handleFinish(row) { |
|
|
|
handleFinish(row) { |
|
|
|
this.$confirm('请确认是否维修完成?', '提示', { |
|
|
|
this.$confirm('请确认是否维修完成?', '提示', { |
|
|
|
@ -368,6 +585,39 @@ export default { |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
base64toFile(dataurl, filename = 'file') { |
|
|
|
|
|
|
|
let arr = dataurl.split(',') |
|
|
|
|
|
|
|
let mime = arr[0].match(/:(.*?);/)[1] |
|
|
|
|
|
|
|
let suffix = mime.split('/')[1] |
|
|
|
|
|
|
|
let bstr = atob(arr[1]) |
|
|
|
|
|
|
|
let n = bstr.length |
|
|
|
|
|
|
|
let u8arr = new Uint8Array(n) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (n--) { |
|
|
|
|
|
|
|
u8arr[n] = bstr.charCodeAt(n) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let file = new File([u8arr], `${filename}.${suffix}`, { |
|
|
|
|
|
|
|
type: mime |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
console.log(file) |
|
|
|
|
|
|
|
return file |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 确认付款是否完成 |
|
|
|
|
|
|
|
paymentFinish(row) { |
|
|
|
|
|
|
|
this.$confirm('请确认付款是否完成?', '提示', { |
|
|
|
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
|
|
|
type: 'warning' |
|
|
|
|
|
|
|
}).then(() => { |
|
|
|
|
|
|
|
repairServiceConfirm({ id: row.id }).then(res => { |
|
|
|
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
|
|
|
this.$message.success('维修完成') |
|
|
|
|
|
|
|
this.onLoad() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
//用于回调的函数 |
|
|
|
//用于回调的函数 |
|
|
|
checkData(data, list) { |
|
|
|
checkData(data, list) { |
|
|
|
data.forEach((item) => { |
|
|
|
data.forEach((item) => { |
|
|
|
@ -526,6 +776,8 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else if (this.viewType == 'evaluate') { |
|
|
|
|
|
|
|
this.handleConfirm() |
|
|
|
} |
|
|
|
} |
|
|
|
// console.log('errorForm--------------->',this.errorForm) |
|
|
|
// console.log('errorForm--------------->',this.errorForm) |
|
|
|
// this.$confirm('请确认提交保存当前数据?', '提示', { |
|
|
|
// this.$confirm('请确认提交保存当前数据?', '提示', { |
|
|
|
@ -572,10 +824,39 @@ export default { |
|
|
|
this.page.total = res.data.data.total |
|
|
|
this.page.total = res.data.data.total |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
// 开具发票 |
|
|
|
|
|
|
|
clickInvoice() { |
|
|
|
|
|
|
|
if (this.selectedList.length == 0) { |
|
|
|
|
|
|
|
this.$message.warning('请至少选择一条数据') |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
let tmp = this.selectedList.find(item => item.repairStatus != 7) |
|
|
|
|
|
|
|
if (tmp) { |
|
|
|
|
|
|
|
this.$message.warning('请选择状态为待开发票的数据') |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
this.$confirm('请确认是否为已选择数据开具发票?', '提示', { |
|
|
|
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
|
|
|
type: 'warning' |
|
|
|
|
|
|
|
}).then(() => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let queryData = [] |
|
|
|
|
|
|
|
this.selectedList.forEach(item => { |
|
|
|
|
|
|
|
queryData.push({ |
|
|
|
|
|
|
|
id: item.id |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
repairConfirmConfirm(queryData).then(res => { |
|
|
|
|
|
|
|
this.$message.success('发票开具成功') |
|
|
|
|
|
|
|
this.onLoad() |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style> |
|
|
|
<style></style> |
|
|
|
|
|
|
|
|
|
|
|
</style> |
|
|
|
|
|
|
|
|