|
|
|
|
@ -32,7 +32,8 @@ |
|
|
|
|
: "" |
|
|
|
|
}} |
|
|
|
|
</el-tag> --> |
|
|
|
|
<el-tag :type="getStatus('maintain',role_id,row.status).type">{{ getStatus('maintain',role_id,row.status).name }}</el-tag> |
|
|
|
|
<el-tag :type="getStatus('maintain', role_id, row.status).type">{{ getStatus('maintain', role_id, row.status).name |
|
|
|
|
}}</el-tag> |
|
|
|
|
</template> |
|
|
|
|
<template slot-scope="{ type, disabled }" slot="statusForm"> |
|
|
|
|
<div v-if="type == 'view'"> |
|
|
|
|
@ -79,7 +80,7 @@ |
|
|
|
|
<el-button v-show="row.status == -1" @click="handleSubmit(row)">提交</el-button> |
|
|
|
|
<el-button v-show="row.status == 4" @click="confirmOrder(row)">确认</el-button> |
|
|
|
|
<el-button v-show="row.status == 6 || row.status == 20" @click="handleEvaluate(row)">评价</el-button> |
|
|
|
|
<el-button @click="handleExport(row)">导出</el-button> |
|
|
|
|
<el-button @click="handleExport(row)">导出</el-button> |
|
|
|
|
<!-- <el-button v-show="row.status == 9" @click="clickPrint(row)">发票打印</el-button> --> |
|
|
|
|
</template> |
|
|
|
|
</avue-crud> |
|
|
|
|
@ -89,7 +90,7 @@ |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
<el-dialog :title="detailTitle" :visible.sync="detailVisible" :append-to-body="true" width="50%"> |
|
|
|
|
<div style="height:500px;overflow:auto;" > |
|
|
|
|
<div style="height:500px;overflow:auto;"> |
|
|
|
|
<el-form ref="form" :model="detailForm" label-width="150px" label-position="left"> |
|
|
|
|
<div> |
|
|
|
|
<div style=" |
|
|
|
|
@ -104,13 +105,16 @@ |
|
|
|
|
<el-input placeholder="请输入填报人" disabled v-model="detailForm.informantName" style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="填报人电话" prop="informantPhone" v-show="viewType == 'view'"> |
|
|
|
|
<el-input placeholder="请输入填报人电话" disabled v-model="detailForm.informantPhone" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入填报人电话" disabled v-model="detailForm.informantPhone" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="故障现象描述" prop="faultDescribe"> |
|
|
|
|
<el-input placeholder="请输入故障现象描述" disabled type="textarea" v-model="detailForm.faultDescribe" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入故障现象描述" disabled type="textarea" v-model="detailForm.faultDescribe" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="故障位置" prop="faultLocation" v-show="viewType == 'view'"> |
|
|
|
|
<el-input placeholder="请输入故障位置" disabled v-model="detailForm.faultLocation" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入故障位置" disabled v-model="detailForm.faultLocation" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="设备名称" prop="deviceName" v-show="viewType == 'view'"> |
|
|
|
|
<!-- <el-select |
|
|
|
|
@ -136,7 +140,8 @@ |
|
|
|
|
<video v-show="detailForm.errorVideo != ''" :src="detailForm.errorVideo" |
|
|
|
|
style="width: 148px; height: 148px" controls></video> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="故障图片" v-show="viewType == 'view' && detailForm.errorImg && detailForm.errorImg.length != 0"> |
|
|
|
|
<el-form-item label="故障图片" |
|
|
|
|
v-show="viewType == 'view' && detailForm.errorImg && detailForm.errorImg.length != 0"> |
|
|
|
|
<img v-for="item in detailForm.errorImg" :key="item" :src="item.url" alt="" |
|
|
|
|
style="width: 148px; height: 148px;margin-right:10px;"> |
|
|
|
|
</el-form-item> |
|
|
|
|
@ -146,7 +151,7 @@ |
|
|
|
|
</el-date-picker> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="rowStatus == 20"> |
|
|
|
|
<div v-show="rowStatus == 20 && detailForm.closeReason != ''"> |
|
|
|
|
<div style=" |
|
|
|
|
color: #101010; |
|
|
|
|
font-size: 20px; |
|
|
|
|
@ -159,7 +164,7 @@ |
|
|
|
|
<el-input type="textarea" v-model="detailForm.closeReason" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="rowStatus != 0 && rowStatus != 20"> |
|
|
|
|
<div v-show="rowStatus != 0 && rowStatus != 20 && detailForm.closeReason == ''"> |
|
|
|
|
<div style=" |
|
|
|
|
color: #101010; |
|
|
|
|
font-size: 20px; |
|
|
|
|
@ -177,7 +182,8 @@ |
|
|
|
|
<el-input type="textarea" v-model="detailForm.customerOpinion" disabled style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="rowStatus != 0 && rowStatus != 20 && rowStatus != 1 && rowStatus != 2 && rowStatus != 3"> |
|
|
|
|
<div |
|
|
|
|
v-show="rowStatus != 0 && rowStatus != 20 && rowStatus != 1 && rowStatus != 2 && rowStatus != 3 && detailForm.closeReason == ''"> |
|
|
|
|
<div style=" |
|
|
|
|
color: #101010; |
|
|
|
|
font-size: 20px; |
|
|
|
|
@ -187,7 +193,8 @@ |
|
|
|
|
维修详情 |
|
|
|
|
</div> |
|
|
|
|
<el-form-item label="填报人" prop="repairPersonName"> |
|
|
|
|
<el-input placeholder="请输入填报人" disabled v-model="detailForm.repairPersonName" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入填报人" disabled v-model="detailForm.repairPersonName" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="设备名称" prop="deviceId"> |
|
|
|
|
<!-- <el-select placeholder="请选择设备名称" disabled v-model="detailForm.deviceId" style="width: 100%"> |
|
|
|
|
@ -196,10 +203,12 @@ |
|
|
|
|
<el-input placeholder="请输入设备名称" v-model="detailForm.deviceName" disabled style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="故障原因" prop="faultCause"> |
|
|
|
|
<el-input placeholder="请输入故障原因" disabled type="textarea" v-model="detailForm.faultCause" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入故障原因" disabled type="textarea" v-model="detailForm.faultCause" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="处理方法" prop="processMethod"> |
|
|
|
|
<el-input placeholder="请输入处理方法" disabled type="textarea" v-model="detailForm.processMethod" style="width: 98%;"></el-input> |
|
|
|
|
<el-input placeholder="请输入处理方法" disabled type="textarea" v-model="detailForm.processMethod" |
|
|
|
|
style="width: 98%;"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<!-- <el-form-item label="是否需要申领物料" prop="isNeedMaterial"> |
|
|
|
|
<el-select v-model="detailForm.isNeedMaterial" placeholder="请选择是否申领物料" disabled style="width:98%;"> |
|
|
|
|
@ -246,14 +255,14 @@ |
|
|
|
|
<el-option label="驳回" :value="0"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="审批意见" prop="approveRemark" > |
|
|
|
|
<el-form-item label="审批意见" prop="approveRemark"> |
|
|
|
|
<el-input type="textarea" v-model="detailForm.approveRemark" style="width: 98%;" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-show="rowStatus == 5" label="审批人" prop="approvePersonName"> |
|
|
|
|
<el-input v-model="detailForm.approvePersonName" style="width: 98%;" disabled></el-input> |
|
|
|
|
<el-input v-model="detailForm.approvePersonName" style="width: 98%;" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-show="rowStatus == 5" label="审批时间" prop="approveTime"> |
|
|
|
|
<el-input v-model="detailForm.approveTime" style="width: 98%;" disabled></el-input> |
|
|
|
|
<el-input v-model="detailForm.approveTime" style="width: 98%;" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="(rowStatus == 4 || rowStatus == 5) && viewType != 'view'"> |
|
|
|
|
@ -266,19 +275,21 @@ |
|
|
|
|
客户审批 |
|
|
|
|
</div> |
|
|
|
|
<el-form-item label="审批结果" prop="approveResult"> |
|
|
|
|
<el-select style="width: 98%;" placeholder="请选择审批结果" v-model="detailForm.approveResult" :disabled="rowStatus == 5"> |
|
|
|
|
<el-select style="width: 98%;" placeholder="请选择审批结果" v-model="detailForm.approveResult" |
|
|
|
|
:disabled="rowStatus == 5"> |
|
|
|
|
<el-option label="通过" :value="1"></el-option> |
|
|
|
|
<el-option label="驳回" :value="0"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="审批意见" prop="approveRemark" > |
|
|
|
|
<el-input type="textarea" v-model="detailForm.approveRemark" style="width: 98%;" :disabled="rowStatus == 5"></el-input> |
|
|
|
|
<el-form-item label="审批意见" prop="approveRemark"> |
|
|
|
|
<el-input type="textarea" v-model="detailForm.approveRemark" style="width: 98%;" |
|
|
|
|
:disabled="rowStatus == 5"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-show="rowStatus == 5" label="审批人" prop="approvePersonName"> |
|
|
|
|
<el-input v-model="detailForm.approvePersonName" style="width: 98%;" disabled></el-input> |
|
|
|
|
<el-input v-model="detailForm.approvePersonName" style="width: 98%;" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-show="rowStatus == 5" label="审批时间" prop="approveTime"> |
|
|
|
|
<el-input v-model="detailForm.approveTime" style="width: 98%;" disabled></el-input> |
|
|
|
|
<el-input v-model="detailForm.approveTime" style="width: 98%;" disabled></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="rowStatus == 6"> |
|
|
|
|
@ -291,17 +302,20 @@ |
|
|
|
|
维修效果确认 |
|
|
|
|
</div> |
|
|
|
|
<el-form-item label="是否维修完成"> |
|
|
|
|
<el-select placeholder="请确认是否维修完成" style="width: 98%;" v-model="detailForm.approveResult1" @change="changeResult" :disabled="viewType == 'view'"> |
|
|
|
|
<el-select placeholder="请确认是否维修完成" style="width: 98%;" v-model="detailForm.approveResult1" |
|
|
|
|
@change="changeResult" :disabled="viewType == 'view'"> |
|
|
|
|
<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 == 6 && detailForm.approveResult1 == 0"> |
|
|
|
|
<el-input type="textarea" v-model="detailForm.approveRemark" placeholder="请输入维修未完成原因" style="width: 98%;" :disabled="viewType == 'view'"></el-input> |
|
|
|
|
<el-input type="textarea" v-model="detailForm.approveRemark" placeholder="请输入维修未完成原因" style="width: 98%;" |
|
|
|
|
:disabled="viewType == 'view'"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="(rowStatus == 6 && detailForm.approveResult1 == 0)"></div> |
|
|
|
|
<div v-show="((rowStatus == 6 || isEvalute) && detailForm.approveResult1 == 1) || (rowStatus == 20 || isEvalute) || rowStatus == 7 || rowStatus == 8 || rowStatus == 9"> |
|
|
|
|
<div |
|
|
|
|
v-show="((rowStatus == 6 || isEvalute) && detailForm.approveResult1 == 1) || (rowStatus == 20 || isEvalute) || rowStatus == 7 || rowStatus == 8 || rowStatus == 9"> |
|
|
|
|
<div style=" |
|
|
|
|
color: #101010; |
|
|
|
|
font-size: 20px; |
|
|
|
|
@ -380,7 +394,8 @@ |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="((rowStatus == 6 || isEvalute) && detailForm.approveResult1 == 1) || (rowStatus == 20 || isEvalute) || rowStatus == 7 || rowStatus == 8 || rowStatus == 9"> |
|
|
|
|
<div |
|
|
|
|
v-show="((rowStatus == 6 || isEvalute) && detailForm.approveResult1 == 1) || (rowStatus == 20 || isEvalute) || rowStatus == 7 || rowStatus == 8 || rowStatus == 9"> |
|
|
|
|
<div style=" |
|
|
|
|
color: #101010; |
|
|
|
|
font-size: 20px; |
|
|
|
|
@ -389,13 +404,15 @@ |
|
|
|
|
"> |
|
|
|
|
签名 |
|
|
|
|
</div> |
|
|
|
|
<div style="margin-bottom: 10px;cursor: pointer;" @click="clickAssign" v-show="nameImg == '' && rowStatus != 7 && rowStatus != 8 && rowStatus != 9"> |
|
|
|
|
<div style="margin-bottom: 10px;cursor: pointer;" @click="clickAssign" |
|
|
|
|
v-show="nameImg == '' && rowStatus != 7 && rowStatus != 8 && rowStatus != 9"> |
|
|
|
|
<img src="@/assets/images/assign.png" alt=""> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="nameImg != ''" @click="clickAssign"> |
|
|
|
|
<div v-show="nameImg != ''" @click="clickAssign"> |
|
|
|
|
<img :src="nameImg" alt=""> |
|
|
|
|
</div> |
|
|
|
|
<div v-show="detailForm.signatureUrl != '' && (rowStatus == 7 || rowStatus == 8 || rowStatus == 9)" @click="clickAssign"> |
|
|
|
|
<div v-show="detailForm.signatureUrl != '' && (rowStatus == 7 || rowStatus == 8 || rowStatus == 9)" |
|
|
|
|
@click="clickAssign"> |
|
|
|
|
<img :src="detailForm.signatureUrl" alt=""> |
|
|
|
|
</div> |
|
|
|
|
<!-- <div v-show="isEvalute"> |
|
|
|
|
@ -409,18 +426,13 @@ |
|
|
|
|
<el-form-item label="签名人" prop="signaturePerson"> |
|
|
|
|
<el-input :disabled="!isEvalute" placeholder="请输入签名人" v-model="detailForm.signaturePerson"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<!-- <el-form-item label="签名时间" prop="signatureTime"> |
|
|
|
|
<el-date-picker :disabled="viewType == 'view'" v-model="detailForm.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> |
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
|
<el-button @click="handleClose">关闭</el-button> |
|
|
|
|
<el-button v-show="isEvalute" type="primary" @click="handleConfirm">{{ detailForm.approveResult1 == 0 ? '提交' : '评价并签字' }}</el-button> |
|
|
|
|
<el-button v-show="isEvalute" type="primary" @click="handleConfirm">{{ detailForm.approveResult1 == 0 ? '提交' : |
|
|
|
|
'评价并签字' }}</el-button> |
|
|
|
|
<el-button v-show="viewType == 'confirm'" type="primary" @click="confirmWork">提交</el-button> |
|
|
|
|
</span> |
|
|
|
|
</el-dialog> |
|
|
|
|
@ -444,6 +456,93 @@ |
|
|
|
|
<el-button @click="confirmName" type="primary">确定</el-button> |
|
|
|
|
</span> |
|
|
|
|
</el-dialog> |
|
|
|
|
<el-dialog title="流程信息查看" :visible.sync="infoDialog" :append-to-body="true" width="70%"> |
|
|
|
|
<div> |
|
|
|
|
<div class="el-card is-hover-shadow"> |
|
|
|
|
<!-- <div class="el-card__header"> |
|
|
|
|
<div><span>流程信息</span></div> |
|
|
|
|
</div> --> |
|
|
|
|
<div class="el-card__body"> |
|
|
|
|
<div class="row-bg el-row el-row--flex"> |
|
|
|
|
<ul class="el-timeline"> |
|
|
|
|
<li class="el-timeline-item" > |
|
|
|
|
<div class="el-timeline-item__tail" style="color: #0bbd87;"></div> |
|
|
|
|
<div class="el-timeline-item__node el-timeline-item__node--normal el-timeline-item__node--" style="background: #0bbd87;"><!----> |
|
|
|
|
</div> |
|
|
|
|
<!----> |
|
|
|
|
<div class="el-timeline-item__wrapper"> |
|
|
|
|
<div class="el-timeline-item__timestamp is-top"> |
|
|
|
|
2024-12-13 16:40:46 |
|
|
|
|
</div> |
|
|
|
|
<div class="el-timeline-item__content"> |
|
|
|
|
<div class="el-card is-hover-shadow"><!----> |
|
|
|
|
<div class="el-card__body"> |
|
|
|
|
<p>维修人员提交需求工单维修方案</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div><!----> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="el-timeline-item"> |
|
|
|
|
<div class="el-timeline-item__tail"></div> |
|
|
|
|
<div class="el-timeline-item__node el-timeline-item__node--normal el-timeline-item__node--"><!----> |
|
|
|
|
</div> |
|
|
|
|
<!----> |
|
|
|
|
<div class="el-timeline-item__wrapper"> |
|
|
|
|
<div class="el-timeline-item__timestamp is-top"> |
|
|
|
|
2024-12-13 16:38:46 |
|
|
|
|
</div> |
|
|
|
|
<div class="el-timeline-item__content"> |
|
|
|
|
<div class="el-card is-hover-shadow"><!----> |
|
|
|
|
<div class="el-card__body"> |
|
|
|
|
<p>维修人员接单</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div><!----> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="el-timeline-item"> |
|
|
|
|
<div class="el-timeline-item__tail"></div> |
|
|
|
|
<div class="el-timeline-item__node el-timeline-item__node--normal el-timeline-item__node--"><!----> |
|
|
|
|
</div> |
|
|
|
|
<!----> |
|
|
|
|
<div class="el-timeline-item__wrapper"> |
|
|
|
|
<div class="el-timeline-item__timestamp is-top"> |
|
|
|
|
2024-12-13 16:38:46 |
|
|
|
|
</div> |
|
|
|
|
<div class="el-timeline-item__content"> |
|
|
|
|
<div class="el-card is-hover-shadow"><!----> |
|
|
|
|
<div class="el-card__body"> |
|
|
|
|
<p>客服接单</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div><!----> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
<li class="el-timeline-item"> |
|
|
|
|
<div class="el-timeline-item__tail"></div> |
|
|
|
|
<div class="el-timeline-item__node el-timeline-item__node--normal el-timeline-item__node--"><!----> |
|
|
|
|
</div> |
|
|
|
|
<!----> |
|
|
|
|
<div class="el-timeline-item__wrapper"> |
|
|
|
|
<div class="el-timeline-item__timestamp is-top"> |
|
|
|
|
2024-12-13 16:39:43 |
|
|
|
|
</div> |
|
|
|
|
<div class="el-timeline-item__content"> |
|
|
|
|
<div class="el-card is-hover-shadow"><!----> |
|
|
|
|
<div class="el-card__body"> |
|
|
|
|
<p>山东烁今实验室提报需求工单</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div><!----> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
<div id="pdfDom" style="padding: 20px;"> |
|
|
|
|
<requirement :detailForm="requireForm"></requirement> |
|
|
|
|
</div> |
|
|
|
|
@ -458,10 +557,11 @@ import moment from "moment"; |
|
|
|
|
import { dateFormat } from "../../util/date"; |
|
|
|
|
import requestSub from '../components/requestSub.vue' |
|
|
|
|
import requirement from '../components/requirement.vue' |
|
|
|
|
import { getList, getDetail, evaluateSign, addFile, saveData,customerConfirm,customerReject,customerRepairConfirm,customerRepairReject,serviceInvoice } from '@/api/operation/hand' |
|
|
|
|
import { getList, getDetail, evaluateSign, addFile, saveData, customerConfirm, customerReject, customerRepairConfirm, customerRepairReject, serviceInvoice } from '@/api/operation/hand' |
|
|
|
|
import { getDeviceList } from '@/api/device/device' |
|
|
|
|
import { getChildList } from '@/api/system/dictbiz' |
|
|
|
|
import statusData from "@/assets/json/status.json"; // 引入状态数据 |
|
|
|
|
import { color } from "echarts"; |
|
|
|
|
let action = "https://api.avuejs.com/imgupload"; |
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
@ -473,10 +573,11 @@ export default { |
|
|
|
|
// directives: { print }, |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
infoDialog: false, |
|
|
|
|
searchForm: { |
|
|
|
|
timeRange: [] |
|
|
|
|
}, |
|
|
|
|
requireForm:{}, |
|
|
|
|
requireForm: {}, |
|
|
|
|
showPrint: false, |
|
|
|
|
dialogTitle: "需求填报", |
|
|
|
|
dialogVisible: false, |
|
|
|
|
@ -533,6 +634,7 @@ export default { |
|
|
|
|
labelWidth: 120, |
|
|
|
|
prop: "requirementCode", |
|
|
|
|
overHidden: true, |
|
|
|
|
search:true |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: "设备名称", |
|
|
|
|
@ -547,7 +649,7 @@ export default { |
|
|
|
|
// type: "select", |
|
|
|
|
overHidden: true, |
|
|
|
|
// hide: true, |
|
|
|
|
search: true, |
|
|
|
|
// search: true, |
|
|
|
|
// viewDisplay: false, |
|
|
|
|
// dicUrl: '/lab/blade-system/dict-biz/get-hc-project', |
|
|
|
|
// props: { |
|
|
|
|
@ -563,7 +665,7 @@ export default { |
|
|
|
|
type: "input", |
|
|
|
|
searchLabelWidth: 100, |
|
|
|
|
// hide: true, |
|
|
|
|
search: true, |
|
|
|
|
// search: true, |
|
|
|
|
viewDisplay: false, |
|
|
|
|
// dicUrl: '/lab/blade-system/dict-biz/get-hc-project', |
|
|
|
|
props: { |
|
|
|
|
@ -719,13 +821,13 @@ export default { |
|
|
|
|
requestForm: {}, |
|
|
|
|
viewType: '', |
|
|
|
|
selectionList: [], |
|
|
|
|
printVisible:false, |
|
|
|
|
assignVisible:false, |
|
|
|
|
tableData:[], |
|
|
|
|
isFinish:'', |
|
|
|
|
role_id:'', |
|
|
|
|
isClear:false, |
|
|
|
|
htmlTitle:'需求单报告' |
|
|
|
|
printVisible: false, |
|
|
|
|
assignVisible: false, |
|
|
|
|
tableData: [], |
|
|
|
|
isFinish: '', |
|
|
|
|
role_id: '', |
|
|
|
|
isClear: false, |
|
|
|
|
htmlTitle: '需求单报告' |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
@ -739,22 +841,24 @@ export default { |
|
|
|
|
editBtn: this.vaildData(this.permission.notice_edit, false), |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
getStatus(){ |
|
|
|
|
return (type,id,status) =>{ |
|
|
|
|
for(let i in statusData[type]){ |
|
|
|
|
let val |
|
|
|
|
statusData[type][id].map(item =>{ |
|
|
|
|
if(item.status == status){ |
|
|
|
|
val = item |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return val |
|
|
|
|
getStatus() { |
|
|
|
|
return (type, id, status) => { |
|
|
|
|
for (let i in statusData[type]) { |
|
|
|
|
let val |
|
|
|
|
statusData[type][id].map(item => { |
|
|
|
|
if (item.status == status) { |
|
|
|
|
val = item |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return val |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
created() { |
|
|
|
|
console.log('userInfo--------->', this.userInfo) |
|
|
|
|
console.log('route---------->',this.$route) |
|
|
|
|
this.searchForm.requirementCode = this.$route.query.requirementCode |
|
|
|
|
this.role_id = this.userInfo.role_id |
|
|
|
|
// 获取设备列表 |
|
|
|
|
// getDeviceList({ current: 1, size: 100 }).then(res => { |
|
|
|
|
@ -770,7 +874,7 @@ export default { |
|
|
|
|
mounted() { }, |
|
|
|
|
methods: { |
|
|
|
|
// 点击签名 |
|
|
|
|
clickAssign(){ |
|
|
|
|
clickAssign() { |
|
|
|
|
this.assignVisible = true |
|
|
|
|
}, |
|
|
|
|
// 多选选择 |
|
|
|
|
@ -778,19 +882,19 @@ export default { |
|
|
|
|
this.selectionList = val |
|
|
|
|
}, |
|
|
|
|
// 客户选择是否维修完成 |
|
|
|
|
changeResult(val){ |
|
|
|
|
changeResult(val) { |
|
|
|
|
this.isFinish = val |
|
|
|
|
console.log(this.isFinish) |
|
|
|
|
}, |
|
|
|
|
// 开具发票 |
|
|
|
|
clickInvoice() { |
|
|
|
|
if(this.selectionList.length == 0){ |
|
|
|
|
if (this.selectionList.length == 0) { |
|
|
|
|
this.$message.warning('请至少选择一条数据') |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
let tmp = this.selectionList.find(item => item.status != 8) |
|
|
|
|
if(tmp){ |
|
|
|
|
if (tmp) { |
|
|
|
|
this.$message.warning('请选择状态为待开发票的数据') |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
this.$confirm('请确认是否为已选择数据开具发票?', '提示', { |
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
@ -802,11 +906,11 @@ export default { |
|
|
|
|
id: item.id |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
serviceInvoice(queryData).then(res=>{ |
|
|
|
|
serviceInvoice(queryData).then(res => { |
|
|
|
|
this.$message.success('发票开具成功') |
|
|
|
|
this.onLoad() |
|
|
|
|
}) |
|
|
|
|
}).catch(() =>{ |
|
|
|
|
}).catch(() => { |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
@ -854,7 +958,7 @@ export default { |
|
|
|
|
picAttaches: form.picAttaches, |
|
|
|
|
faultDescribe: form.faultDescribe, |
|
|
|
|
submitType: 1, |
|
|
|
|
id:form.id |
|
|
|
|
id: form.id |
|
|
|
|
}) |
|
|
|
|
console.log('data---------->', data) |
|
|
|
|
saveData(data).then(res => { |
|
|
|
|
@ -900,16 +1004,16 @@ export default { |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
confirmName() { |
|
|
|
|
console.log('name===========>',this.nameImg) |
|
|
|
|
if(this.isClear){ |
|
|
|
|
console.log('name===========>', this.nameImg) |
|
|
|
|
if (this.isClear) { |
|
|
|
|
this.nameImg = '' |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
this.nameImg = this.$refs.sign.submit(80, 50); |
|
|
|
|
} |
|
|
|
|
this.assignVisible = false |
|
|
|
|
}, |
|
|
|
|
closeName(){ |
|
|
|
|
if(this.nameImg == ''){ |
|
|
|
|
closeName() { |
|
|
|
|
if (this.nameImg == '') { |
|
|
|
|
this.$refs.sign.clear() |
|
|
|
|
} |
|
|
|
|
this.assignVisible = false |
|
|
|
|
@ -938,8 +1042,8 @@ export default { |
|
|
|
|
return file |
|
|
|
|
}, |
|
|
|
|
// 客户确认方案 |
|
|
|
|
confirmOrder(row){ |
|
|
|
|
getDetail({id:row.id}).then(res =>{ |
|
|
|
|
confirmOrder(row) { |
|
|
|
|
getDetail({ id: row.id }).then(res => { |
|
|
|
|
this.rowStatus = res.data.data.status |
|
|
|
|
this.viewType = 'confirm' |
|
|
|
|
this.detailVisible = true |
|
|
|
|
@ -982,33 +1086,33 @@ export default { |
|
|
|
|
this.discountPrice = res.data.data.discountPrice |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
handleExport(row){ |
|
|
|
|
getDetail({id:row.id}).then(res =>{ |
|
|
|
|
handleExport(row) { |
|
|
|
|
getDetail({ id: row.id }).then(res => { |
|
|
|
|
this.requireForm = res.data.data |
|
|
|
|
setTimeout(() =>{ |
|
|
|
|
setTimeout(() => { |
|
|
|
|
this.getPdf() |
|
|
|
|
},100) |
|
|
|
|
}, 100) |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
// 评价并签字提交 |
|
|
|
|
handleConfirm() { |
|
|
|
|
console.log('this.detailForm.approveResult1',this.detailForm.approveResult1) |
|
|
|
|
if(this.detailForm.approveResult1 == 0){ |
|
|
|
|
console.log('this.detailForm.approveResult1', this.detailForm.approveResult1) |
|
|
|
|
if (this.detailForm.approveResult1 == 0) { |
|
|
|
|
let query = { |
|
|
|
|
id:this.detailForm.id, |
|
|
|
|
approveResult:this.detailForm.approveResult1, |
|
|
|
|
approvePerson:this.userInfo.user_id, |
|
|
|
|
approveTime:moment().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
approveRemark:this.detailForm.approveRemark |
|
|
|
|
id: this.detailForm.id, |
|
|
|
|
approveResult: this.detailForm.approveResult1, |
|
|
|
|
approvePerson: this.userInfo.user_id, |
|
|
|
|
approveTime: moment().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
approveRemark: this.detailForm.approveRemark |
|
|
|
|
} |
|
|
|
|
customerRepairReject(query).then(res =>{ |
|
|
|
|
if(res.data.code == 200){ |
|
|
|
|
customerRepairReject(query).then(res => { |
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
this.$message.success('提交成功') |
|
|
|
|
this.detailVisible = false |
|
|
|
|
this.onLoad() |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
if (this.nameImg != '') { |
|
|
|
|
const formData = new FormData(); |
|
|
|
|
formData.append('file', this.base64toFile(this.nameImg)); |
|
|
|
|
@ -1043,24 +1147,24 @@ export default { |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
// 客户方案确认 |
|
|
|
|
confirmWork(){ |
|
|
|
|
confirmWork() { |
|
|
|
|
let query = { |
|
|
|
|
id:this.detailForm.id, |
|
|
|
|
approvePerson:this.userInfo.user_id, |
|
|
|
|
approveResult:this.detailForm.approveResult, |
|
|
|
|
approveTime:moment().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
approveRemark:this.detailForm.approveRemark |
|
|
|
|
id: this.detailForm.id, |
|
|
|
|
approvePerson: this.userInfo.user_id, |
|
|
|
|
approveResult: this.detailForm.approveResult, |
|
|
|
|
approveTime: moment().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
approveRemark: this.detailForm.approveRemark |
|
|
|
|
} |
|
|
|
|
if(query.approveResult == 0){ |
|
|
|
|
customerReject(query).then(res =>{ |
|
|
|
|
if (query.approveResult == 0) { |
|
|
|
|
customerReject(query).then(res => { |
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
this.$message.success('审批成功') |
|
|
|
|
this.detailVisible = false |
|
|
|
|
this.onLoad() |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}else{ |
|
|
|
|
customerConfirm(query).then(res =>{ |
|
|
|
|
} else { |
|
|
|
|
customerConfirm(query).then(res => { |
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
this.$message.success('审批成功') |
|
|
|
|
this.detailVisible = false |
|
|
|
|
@ -1089,6 +1193,7 @@ export default { |
|
|
|
|
url: item.link |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
this.nameImg = '' |
|
|
|
|
if (this.rowStatus == 3) { |
|
|
|
|
this.isOkValidity = 1 |
|
|
|
|
this.isOkQuality = 1 |
|
|
|
|
@ -1137,7 +1242,8 @@ export default { |
|
|
|
|
endTime: this.searchForm.timeRange && this.searchForm.timeRange.length != 0 ? this.searchForm.timeRange[1].toString() + ' 23:59:59' : '', //结束时间 |
|
|
|
|
faultLocation: this.searchForm.faultLocation ? this.searchForm.faultLocation : '', //设备位置 |
|
|
|
|
faultType: this.searchForm.faultType ? this.searchForm.faultType : '', //故障类型 |
|
|
|
|
dataType: 1 |
|
|
|
|
dataType: 1, |
|
|
|
|
requirementCode:this.searchForm.requirementCode |
|
|
|
|
} |
|
|
|
|
console.log('query--------->', query) |
|
|
|
|
getList(query).then(res => { |
|
|
|
|
|