|
@@ -6,310 +6,314 @@
|
|
{{ t('common.back') }}
|
|
{{ t('common.back') }}
|
|
</a-button>
|
|
</a-button>
|
|
</div>
|
|
</div>
|
|
- <div class="content" ref="print" id="print">
|
|
|
|
- <div class="content_left">
|
|
|
|
- <div class="content_left_info">
|
|
|
|
- <Descriptions title="客户信息" :column="3" v-if="detailData.customer">
|
|
|
|
- <DescriptionsItem label="客户名称">
|
|
|
|
- {{ detailData.customer.companyName }}</DescriptionsItem
|
|
|
|
- >
|
|
|
|
- <DescriptionsItem label="联系人">
|
|
|
|
- {{ detailData.customer.customerName }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="联系电话"> {{ detailData.customer.phone }} </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions title="发票信息" :column="3" v-if="detailData.repairInvoice">
|
|
|
|
- <DescriptionsItem label="是否开票">
|
|
|
|
- {{ detailData.repairInvoice.repairId ? '是' : '否' }}</DescriptionsItem
|
|
|
|
- >
|
|
|
|
- <DescriptionsItem
|
|
|
|
- v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceHead"
|
|
|
|
- label="发票抬头"
|
|
|
|
- >
|
|
|
|
- {{ detailData.repairInvoice.invoiceHead }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem
|
|
|
|
- v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceNum"
|
|
|
|
- label="税号"
|
|
|
|
- >
|
|
|
|
- {{ detailData.repairInvoice.invoiceNum }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions title="产品及故障信息" :column="3">
|
|
|
|
- <DescriptionsItem label="产品名称" v-if="detailData.repairerVo">
|
|
|
|
- {{ t(`routes.scene.tableType.${detailData.repairerVo.cameraType}`) }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="产品SN码" v-if="detailData.repairerVo">
|
|
|
|
- {{ detailData.repairerVo.cameraSnCode }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="保修届满日期">
|
|
|
|
- {{ detailData.repairerVo.warrantyDate }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="报修日期">
|
|
|
|
- {{ detailData.repairerVo?.createTime }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem class="ellipsis" label="送修方式" v-if="detailData.customerAddress">
|
|
|
|
- {{
|
|
|
|
- detailData.customerAddress.sendType == 0
|
|
|
|
- ? '前台送修'
|
|
|
|
- : `快递寄送:${detailData.customerAddress?.sendTrackingNum || '暂无单号'}`
|
|
|
|
- }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="保修类型">
|
|
|
|
- {{ t(`routes.spares.warrantyType.${detailData.repairerVo.warrantyType}`) }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="维修单号">
|
|
|
|
- {{ repairId }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="上次维修单号" :span="2">
|
|
|
|
- {{ detailData.lastRepairId }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="故障描述" :span="3">
|
|
|
|
- <div>
|
|
|
|
- <p class="htmlText" :title="detailData.repairerVo.faultMsg">{{
|
|
|
|
- detailData.repairerVo.faultMsg
|
|
|
|
- }}</p>
|
|
|
|
- <PreviewGroup>
|
|
|
|
- <Image
|
|
|
|
- :width="80"
|
|
|
|
- :height="80"
|
|
|
|
- v-for="item in detailData.repairerVo.faultImg"
|
|
|
|
- :key="item"
|
|
|
|
- :src="item"
|
|
|
|
- />
|
|
|
|
- </PreviewGroup>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="机器外观">
|
|
|
|
- <div>
|
|
|
|
- <p class="htmlText" :title="detailData.orderReceivingVo?.orderFaultMsg">{{
|
|
|
|
- detailData.orderReceivingVo?.orderFaultMsg
|
|
|
|
- }}</p>
|
|
|
|
- <PreviewGroup>
|
|
|
|
- <Image
|
|
|
|
- :width="80"
|
|
|
|
- :height="80"
|
|
|
|
- v-for="item in detailData.orderReceivingVo?.orderFaultImg"
|
|
|
|
- :key="item"
|
|
|
|
- :src="item"
|
|
|
|
- />
|
|
|
|
- </PreviewGroup>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="售后工程师">
|
|
|
|
- {{ detailData.orderReceivingVo?.sysUserName }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="接单日期">
|
|
|
|
- {{ detailData.orderReceivingVo?.createTime }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="附件、附带物品">
|
|
|
|
- {{ detailData.orderReceivingVo?.annex }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <!-- <Descriptions title="" :column="3">
|
|
|
|
|
|
+ <div ref="print" id="print">
|
|
|
|
+ <div class="content" :style="{ width: printInfo.width }">
|
|
|
|
+ <div class="content_left" style="width: calc(100% - 400px)">
|
|
|
|
+ <div class="content_left_info" style="width: 100%">
|
|
|
|
+ <Descriptions title="客户信息" :column="3" v-if="detailData.customer">
|
|
|
|
+ <DescriptionsItem label="客户名称">
|
|
|
|
+ {{ detailData.customer.companyName }}</DescriptionsItem
|
|
|
|
+ >
|
|
|
|
+ <DescriptionsItem label="联系人">
|
|
|
|
+ {{ detailData.customer.customerName }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="联系电话">
|
|
|
|
+ {{ detailData.customer.phone }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions title="发票信息" :column="3" v-if="detailData.repairInvoice">
|
|
|
|
+ <DescriptionsItem label="是否开票">
|
|
|
|
+ {{ detailData.repairInvoice.repairId ? '是' : '否' }}</DescriptionsItem
|
|
|
|
+ >
|
|
|
|
+ <DescriptionsItem
|
|
|
|
+ v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceHead"
|
|
|
|
+ label="发票抬头"
|
|
|
|
+ >
|
|
|
|
+ {{ detailData.repairInvoice.invoiceHead }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem
|
|
|
|
+ v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceNum"
|
|
|
|
+ label="税号"
|
|
|
|
+ >
|
|
|
|
+ {{ detailData.repairInvoice.invoiceNum }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions title="产品及故障信息" :column="3">
|
|
|
|
+ <DescriptionsItem label="产品名称" v-if="detailData.repairerVo">
|
|
|
|
+ {{ t(`routes.scene.tableType.${detailData.repairerVo.cameraType}`) }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="产品SN码" v-if="detailData.repairerVo">
|
|
|
|
+ {{ detailData.repairerVo.cameraSnCode }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="保修届满日期">
|
|
|
|
+ {{ detailData.repairerVo.warrantyDate }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="报修日期">
|
|
|
|
+ {{ detailData.repairerVo?.createTime }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem class="ellipsis" label="送修方式" v-if="detailData.customerAddress">
|
|
|
|
+ {{
|
|
|
|
+ detailData.customerAddress.sendType == 0
|
|
|
|
+ ? '前台送修'
|
|
|
|
+ : `快递寄送:${detailData.customerAddress?.sendTrackingNum || '暂无单号'}`
|
|
|
|
+ }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="保修类型">
|
|
|
|
+ {{ t(`routes.spares.warrantyType.${detailData.repairerVo.warrantyType}`) }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="维修单号">
|
|
|
|
+ {{ repairId }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="上次维修单号" :span="2">
|
|
|
|
+ {{ detailData.lastRepairId }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="故障描述" :span="3">
|
|
|
|
+ <div>
|
|
|
|
+ <p class="htmlText" :title="detailData.repairerVo.faultMsg">{{
|
|
|
|
+ detailData.repairerVo.faultMsg
|
|
|
|
+ }}</p>
|
|
|
|
+ <PreviewGroup>
|
|
|
|
+ <Image
|
|
|
|
+ :width="80"
|
|
|
|
+ :height="80"
|
|
|
|
+ v-for="item in detailData.repairerVo.faultImg"
|
|
|
|
+ :key="item"
|
|
|
|
+ :src="item"
|
|
|
|
+ />
|
|
|
|
+ </PreviewGroup>
|
|
|
|
+ </div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="机器外观">
|
|
|
|
+ <div>
|
|
|
|
+ <p class="htmlText" :title="detailData.orderReceivingVo?.orderFaultMsg">{{
|
|
|
|
+ detailData.orderReceivingVo?.orderFaultMsg
|
|
|
|
+ }}</p>
|
|
|
|
+ <PreviewGroup>
|
|
|
|
+ <Image
|
|
|
|
+ :width="80"
|
|
|
|
+ :height="80"
|
|
|
|
+ v-for="item in detailData.orderReceivingVo?.orderFaultImg"
|
|
|
|
+ :key="item"
|
|
|
|
+ :src="item"
|
|
|
|
+ />
|
|
|
|
+ </PreviewGroup>
|
|
|
|
+ </div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="售后工程师">
|
|
|
|
+ {{ detailData.orderReceivingVo?.sysUserName }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="接单日期">
|
|
|
|
+ {{ detailData.orderReceivingVo?.createTime }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="附件、附带物品">
|
|
|
|
+ {{ detailData.orderReceivingVo?.annex }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <!-- <Descriptions title="" :column="3">
|
|
<DescriptionsItem label="备注内容">
|
|
<DescriptionsItem label="备注内容">
|
|
{{ detailData.repairerVo?.remark }}
|
|
{{ detailData.repairerVo?.remark }}
|
|
</DescriptionsItem>
|
|
</DescriptionsItem>
|
|
</Descriptions> -->
|
|
</Descriptions> -->
|
|
- <Descriptions
|
|
|
|
- v-for="(Voitem, index) in detailData.repairRegisterVoList"
|
|
|
|
- :key="Voitem.createTime"
|
|
|
|
- :column="3"
|
|
|
|
- >
|
|
|
|
- <DescriptionsItem :label="index == '0' ? '检测结果' : '维修登记'">
|
|
|
|
- <div>
|
|
|
|
- <p class="htmlText" :title="Voitem.checkResult">{{ Voitem.checkResult }}</p>
|
|
|
|
- <PreviewGroup>
|
|
|
|
- <Image
|
|
|
|
- style="margin-right: 20px"
|
|
|
|
- :width="80"
|
|
|
|
- :height="80"
|
|
|
|
- v-for="item in Voitem.checkImg"
|
|
|
|
- :key="item"
|
|
|
|
- :src="item"
|
|
|
|
- />
|
|
|
|
- </PreviewGroup>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem :label="index == '0' ? '检测日期' : '登记日期'">
|
|
|
|
- {{ Voitem?.createTime }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="所需备件">
|
|
|
|
- {{ Voitem?.partNamesStr }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions
|
|
|
|
- title="维修清单"
|
|
|
|
- :column="3"
|
|
|
|
- layout="vertical"
|
|
|
|
- v-show="detailData.repairerVo.status > 30"
|
|
|
|
- >
|
|
|
|
- <DescriptionsItem label="费用明细" :span="3">
|
|
|
|
- <BasicTable @register="registerTable" />
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions :column="3">
|
|
|
|
- <DescriptionsItem label="维修工程师">
|
|
|
|
- {{ detailData.repairRegisterVo?.sysUserName }}</DescriptionsItem
|
|
|
|
|
|
+ <Descriptions
|
|
|
|
+ v-for="(Voitem, index) in detailData.repairRegisterVoList"
|
|
|
|
+ :key="Voitem.createTime"
|
|
|
|
+ :column="3"
|
|
>
|
|
>
|
|
- <DescriptionsItem label="维修完成日期">
|
|
|
|
- {{ detailData.repairRegisterVo?.overTime }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="维修记录">
|
|
|
|
- {{ detailData.repairRegisterVo?.remark }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="测试工程师">
|
|
|
|
- {{ detailData.repairTestVo?.sysUserName }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="测试通过时间" :span="2">
|
|
|
|
- {{ detailData.repairTestVo?.passTime }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="支付方式" :span="3">
|
|
|
|
- <div v-if="detailData.repairPay">
|
|
|
|
- <p>{{
|
|
|
|
- detailData.repairPay.payType == 1
|
|
|
|
- ? '微信'
|
|
|
|
- : detailData.repairPay.payType == 2
|
|
|
|
- ? '支付宝'
|
|
|
|
- : '银行'
|
|
|
|
- }}</p>
|
|
|
|
- <PreviewGroup>
|
|
|
|
- <Image
|
|
|
|
- :width="80"
|
|
|
|
- :height="80"
|
|
|
|
- v-for="item in detailData.repairPay.payImg"
|
|
|
|
- :key="item"
|
|
|
|
- :src="item"
|
|
|
|
- />
|
|
|
|
- </PreviewGroup>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem style="padding-bottom: 16px" label="支付备注" :span="3">
|
|
|
|
- {{ detailData.repairPay?.remark }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="回单备注" :span="3">
|
|
|
|
- <div v-if="detailData.repairCheckAccount">
|
|
|
|
- <p>{{ detailData.repairCheckAccount.remark }}</p>
|
|
|
|
- <PreviewGroup>
|
|
|
|
- <Image
|
|
|
|
- :width="80"
|
|
|
|
- :height="80"
|
|
|
|
- v-for="item in detailData.repairCheckAccount.checkAccountImg"
|
|
|
|
- :key="item"
|
|
|
|
- :src="item"
|
|
|
|
- />
|
|
|
|
- </PreviewGroup>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="取回方式" v-if="detailData.customerAddress">
|
|
|
|
- {{
|
|
|
|
- detailData.customerAddress.getType == 0
|
|
|
|
- ? '前台取回'
|
|
|
|
- : `快递寄回 ${detailData.customerAddress?.getTrackingNum || '暂无单号'}`
|
|
|
|
- }}</DescriptionsItem
|
|
|
|
- >
|
|
|
|
- <DescriptionsItem label="收件信息" :span="2" v-if="detailData.customerAddress">
|
|
|
|
- {{ detailData.customerAddress.getAddrName }}
|
|
|
|
- {{ detailData.customerAddress.getAddrPhone }}
|
|
|
|
- {{ detailData.customerAddress.getAddress }}
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions title="单据下载" :column="3" v-if="detailData.repairerVo.status > 20">
|
|
|
|
- <DescriptionsItem label="报价单" :span="3" v-if="detailData.repairerVo.status > 20">
|
|
|
|
- <div class="link" @click="dowmFile(0)"> {{ repairId }}报价单.pdf</div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="维修工单" :span="3" v-if="detailData.repairerVo.status > 70">
|
|
|
|
- <div class="link" @click="dowmFile(1)"> {{ repairId }}维修工单.pdf</div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions title="客户评价" :column="3" v-if="detailData.repairComment">
|
|
|
|
- <DescriptionsItem label="评价内容">
|
|
|
|
- <div class="htmlText" :title="detailData.repairComment.comment">{{
|
|
|
|
- detailData.repairComment.comment
|
|
|
|
- }}</div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="评分">
|
|
|
|
- {{ detailData.repairComment.starRank }}分
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- <Descriptions title="备注" :column="3">
|
|
|
|
- <DescriptionsItem label="备注内容">
|
|
|
|
- <div class="htmlText" :title="detailData.repairerVo?.remark">{{
|
|
|
|
- detailData.repairerVo?.remark
|
|
|
|
- }}</div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- </Descriptions>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content_right">
|
|
|
|
- <Timeline>
|
|
|
|
- <a-timeline>
|
|
|
|
- <timeline-item
|
|
|
|
- v-for="(item, indexs) in stepList"
|
|
|
|
- :color="indexs == 0 ? 'red' : 'green'"
|
|
|
|
- :key="indexs"
|
|
|
|
- >
|
|
|
|
- <div class="timeItem">
|
|
|
|
- <div class="name">
|
|
|
|
- <span>{{ item.title || item.remark }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="status" v-if="item.repairLogId">
|
|
|
|
- {{ item.subTitle }} <span>{{ item.createTime }}</span>
|
|
|
|
|
|
+ <DescriptionsItem :label="index == '0' ? '检测结果' : '维修登记'">
|
|
|
|
+ <div>
|
|
|
|
+ <p class="htmlText" :title="Voitem.checkResult">{{ Voitem.checkResult }}</p>
|
|
|
|
+ <PreviewGroup>
|
|
|
|
+ <Image
|
|
|
|
+ style="margin-right: 20px"
|
|
|
|
+ :width="80"
|
|
|
|
+ :height="80"
|
|
|
|
+ v-for="item in Voitem.checkImg"
|
|
|
|
+ :key="item"
|
|
|
|
+ :src="item"
|
|
|
|
+ />
|
|
|
|
+ </PreviewGroup>
|
|
</div>
|
|
</div>
|
|
- <div class="status" v-else>
|
|
|
|
- {{ item.subTitle }}
|
|
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem :label="index == '0' ? '检测日期' : '登记日期'">
|
|
|
|
+ {{ Voitem?.createTime }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="所需备件">
|
|
|
|
+ {{ Voitem?.partNamesStr }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions
|
|
|
|
+ title="维修清单"
|
|
|
|
+ :column="3"
|
|
|
|
+ layout="vertical"
|
|
|
|
+ v-show="detailData.repairerVo.status > 30"
|
|
|
|
+ >
|
|
|
|
+ <DescriptionsItem label="费用明细" :span="3">
|
|
|
|
+ <BasicTable @register="registerTable" />
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions :column="3">
|
|
|
|
+ <DescriptionsItem label="维修工程师">
|
|
|
|
+ {{ detailData.repairRegisterVo?.sysUserName }}</DescriptionsItem
|
|
|
|
+ >
|
|
|
|
+ <DescriptionsItem label="维修完成日期">
|
|
|
|
+ {{ detailData.repairRegisterVo?.overTime }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="维修记录">
|
|
|
|
+ {{ detailData.repairRegisterVo?.remark }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="测试工程师">
|
|
|
|
+ {{ detailData.repairTestVo?.sysUserName }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="测试通过时间" :span="2">
|
|
|
|
+ {{ detailData.repairTestVo?.passTime }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="支付方式" :span="3">
|
|
|
|
+ <div v-if="detailData.repairPay">
|
|
|
|
+ <p>{{
|
|
|
|
+ detailData.repairPay.payType == 1
|
|
|
|
+ ? '微信'
|
|
|
|
+ : detailData.repairPay.payType == 2
|
|
|
|
+ ? '支付宝'
|
|
|
|
+ : '银行'
|
|
|
|
+ }}</p>
|
|
|
|
+ <PreviewGroup>
|
|
|
|
+ <Image
|
|
|
|
+ :width="80"
|
|
|
|
+ :height="80"
|
|
|
|
+ v-for="item in detailData.repairPay.payImg"
|
|
|
|
+ :key="item"
|
|
|
|
+ :src="item"
|
|
|
|
+ />
|
|
|
|
+ </PreviewGroup>
|
|
</div>
|
|
</div>
|
|
- <div class="itemText" v-if="item.customerAddress">{{
|
|
|
|
- item.customerAddress.getType == 0
|
|
|
|
- ? '前台取回'
|
|
|
|
- : `快递寄回 ${item.customerAddress.getTrackingNum}`
|
|
|
|
- }}</div>
|
|
|
|
- <div
|
|
|
|
- class="itemText htmlText"
|
|
|
|
- v-if="item.repairRegisterVo"
|
|
|
|
- :title="item.repairRegisterVo.checkResult"
|
|
|
|
- >检测结论: {{ item.repairRegisterVo.checkResult }}</div
|
|
|
|
- >
|
|
|
|
- <div
|
|
|
|
- class="itemText htmlText"
|
|
|
|
- v-if="item.repairRegisterVo"
|
|
|
|
- :title="item.repairRegisterVo.partNamesStr"
|
|
|
|
- >所需备件: {{ item.repairRegisterVo.partNamesStr }}</div
|
|
|
|
- >
|
|
|
|
- <div
|
|
|
|
- class="itemText htmlText"
|
|
|
|
- v-if="item.orderReceiving"
|
|
|
|
- :title="item.orderReceiving.orderFaultMsg"
|
|
|
|
- >机器外观: {{ item.orderReceiving.orderFaultMsg }}</div
|
|
|
|
- >
|
|
|
|
- <div
|
|
|
|
- class="itemText htmlText"
|
|
|
|
- v-if="item.repairTest?.resultInfo"
|
|
|
|
- :title="item.repairTest?.resultInfo"
|
|
|
|
- >测试描述: {{ item.repairTest.resultInfo }}</div
|
|
|
|
- >
|
|
|
|
- <div
|
|
|
|
- class="itemText htmlText"
|
|
|
|
- v-if="item.remark"
|
|
|
|
- :title="item.remark"
|
|
|
|
- v-html="item.remark"
|
|
|
|
- ></div>
|
|
|
|
- <div class="iamgeList">
|
|
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem style="padding-bottom: 16px" label="支付备注" :span="3">
|
|
|
|
+ {{ detailData.repairPay?.remark }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="回单备注" :span="3">
|
|
|
|
+ <div v-if="detailData.repairCheckAccount">
|
|
|
|
+ <p>{{ detailData.repairCheckAccount.remark }}</p>
|
|
<PreviewGroup>
|
|
<PreviewGroup>
|
|
<Image
|
|
<Image
|
|
- style="overflow: hidden"
|
|
|
|
:width="80"
|
|
:width="80"
|
|
:height="80"
|
|
:height="80"
|
|
- v-for="itemSrc in item.imagesInfo"
|
|
|
|
- :key="itemSrc"
|
|
|
|
- :src="itemSrc"
|
|
|
|
|
|
+ v-for="item in detailData.repairCheckAccount.checkAccountImg"
|
|
|
|
+ :key="item"
|
|
|
|
+ :src="item"
|
|
/>
|
|
/>
|
|
</PreviewGroup>
|
|
</PreviewGroup>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </timeline-item>
|
|
|
|
- </a-timeline>
|
|
|
|
- </Timeline>
|
|
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="取回方式" v-if="detailData.customerAddress">
|
|
|
|
+ {{
|
|
|
|
+ detailData.customerAddress.getType == 0
|
|
|
|
+ ? '前台取回'
|
|
|
|
+ : `快递寄回 ${detailData.customerAddress?.getTrackingNum || '暂无单号'}`
|
|
|
|
+ }}</DescriptionsItem
|
|
|
|
+ >
|
|
|
|
+ <DescriptionsItem label="收件信息" :span="2" v-if="detailData.customerAddress">
|
|
|
|
+ {{ detailData.customerAddress.getAddrName }}
|
|
|
|
+ {{ detailData.customerAddress.getAddrPhone }}
|
|
|
|
+ {{ detailData.customerAddress.getAddress }}
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions title="单据下载" :column="3" v-if="detailData.repairerVo.status > 20">
|
|
|
|
+ <DescriptionsItem label="报价单" :span="3" v-if="detailData.repairerVo.status > 20">
|
|
|
|
+ <div class="link" @click="dowmFile(0)"> {{ repairId }}报价单.pdf</div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="维修工单" :span="3" v-if="detailData.repairerVo.status > 70">
|
|
|
|
+ <div class="link" @click="dowmFile(1)"> {{ repairId }}维修工单.pdf</div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions title="客户评价" :column="3" v-if="detailData.repairComment">
|
|
|
|
+ <DescriptionsItem label="评价内容">
|
|
|
|
+ <div class="htmlText" :title="detailData.repairComment.comment">{{
|
|
|
|
+ detailData.repairComment.comment
|
|
|
|
+ }}</div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ <DescriptionsItem label="评分">
|
|
|
|
+ {{ detailData.repairComment.starRank }}分
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ <Descriptions title="备注" :column="3">
|
|
|
|
+ <DescriptionsItem label="备注内容">
|
|
|
|
+ <div class="htmlText" :title="detailData.repairerVo?.remark">{{
|
|
|
|
+ detailData.repairerVo?.remark
|
|
|
|
+ }}</div>
|
|
|
|
+ </DescriptionsItem>
|
|
|
|
+ </Descriptions>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="content_right">
|
|
|
|
+ <Timeline>
|
|
|
|
+ <a-timeline>
|
|
|
|
+ <timeline-item
|
|
|
|
+ v-for="(item, indexs) in stepList"
|
|
|
|
+ :color="indexs == 0 ? 'red' : 'green'"
|
|
|
|
+ :key="indexs"
|
|
|
|
+ >
|
|
|
|
+ <div class="timeItem">
|
|
|
|
+ <div class="name">
|
|
|
|
+ <span>{{ item.title || item.remark }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="status" v-if="item.repairLogId">
|
|
|
|
+ {{ item.subTitle }} <span>{{ item.createTime }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="status" v-else>
|
|
|
|
+ {{ item.subTitle }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="itemText" v-if="item.customerAddress">{{
|
|
|
|
+ item.customerAddress.getType == 0
|
|
|
|
+ ? '前台取回'
|
|
|
|
+ : `快递寄回 ${item.customerAddress.getTrackingNum}`
|
|
|
|
+ }}</div>
|
|
|
|
+ <div
|
|
|
|
+ class="itemText htmlText"
|
|
|
|
+ v-if="item.repairRegisterVo"
|
|
|
|
+ :title="item.repairRegisterVo.checkResult"
|
|
|
|
+ >检测结论: {{ item.repairRegisterVo.checkResult }}</div
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="itemText htmlText"
|
|
|
|
+ v-if="item.repairRegisterVo"
|
|
|
|
+ :title="item.repairRegisterVo.partNamesStr"
|
|
|
|
+ >所需备件: {{ item.repairRegisterVo.partNamesStr }}</div
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="itemText htmlText"
|
|
|
|
+ v-if="item.orderReceiving"
|
|
|
|
+ :title="item.orderReceiving.orderFaultMsg"
|
|
|
|
+ >机器外观: {{ item.orderReceiving.orderFaultMsg }}</div
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="itemText htmlText"
|
|
|
|
+ v-if="item.repairTest?.resultInfo"
|
|
|
|
+ :title="item.repairTest?.resultInfo"
|
|
|
|
+ >测试描述: {{ item.repairTest.resultInfo }}</div
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="itemText htmlText"
|
|
|
|
+ v-if="item.remark"
|
|
|
|
+ :title="item.remark"
|
|
|
|
+ v-html="item.remark"
|
|
|
|
+ ></div>
|
|
|
|
+ <div class="iamgeList">
|
|
|
|
+ <PreviewGroup>
|
|
|
|
+ <Image
|
|
|
|
+ style="overflow: hidden"
|
|
|
|
+ :width="80"
|
|
|
|
+ :height="80"
|
|
|
|
+ v-for="itemSrc in item.imagesInfo"
|
|
|
|
+ :key="itemSrc"
|
|
|
|
+ :src="itemSrc"
|
|
|
|
+ />
|
|
|
|
+ </PreviewGroup>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </timeline-item>
|
|
|
|
+ </a-timeline>
|
|
|
|
+ </Timeline>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="bottom_but">
|
|
<div class="bottom_but">
|
|
@@ -391,6 +395,9 @@
|
|
const { createMessage, createConfirm } = useMessage();
|
|
const { createMessage, createConfirm } = useMessage();
|
|
const { t } = useI18n();
|
|
const { t } = useI18n();
|
|
const print = ref(null);
|
|
const print = ref(null);
|
|
|
|
+ const printInfo = reactive({
|
|
|
|
+ width: '100%',
|
|
|
|
+ });
|
|
const permissionStore = usePermissionStore();
|
|
const permissionStore = usePermissionStore();
|
|
const { getCheckPerm } = permissionStore;
|
|
const { getCheckPerm } = permissionStore;
|
|
const repairId = ref<string | string[]>(router.currentRoute.value.params.id || '0');
|
|
const repairId = ref<string | string[]>(router.currentRoute.value.params.id || '0');
|
|
@@ -442,17 +449,24 @@
|
|
},
|
|
},
|
|
];
|
|
];
|
|
async function enterDialog() {
|
|
async function enterDialog() {
|
|
- // const style = '@page { margin:0mm 10mm } .content_left{ width: calc(100% - 400px) !important} .content{width:100% !important} .content_right{width: 400px !important; float: right;}';
|
|
|
|
|
|
+ const style =
|
|
|
|
+ '@page { margin:0mm 10mm } @media print {.content{ width: 1200px !important}} ';
|
|
|
|
+ printInfo.width = '1200px !important';
|
|
// const style =
|
|
// const style =
|
|
// '@page {margin:0mm 10mm;width:100%};' +
|
|
// '@page {margin:0mm 10mm;width:100%};' +
|
|
// ' @media print { .status{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }} .content_left_info{ width: calc(100% - 400px) !important} .ant-descriptions{width: 400px !important}'; //打印时去掉眉页眉尾
|
|
// ' @media print { .status{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }} .content_left_info{ width: calc(100% - 400px) !important} .ant-descriptions{width: 400px !important}'; //打印时去掉眉页眉尾
|
|
- printJS({
|
|
|
|
- printable: 'print', // 标签元素id
|
|
|
|
- type: 'html',
|
|
|
|
- headerStyle: 'font-weight:400;text-align:center;',
|
|
|
|
- targetStyles: ['*'],
|
|
|
|
- // style: style,
|
|
|
|
- });
|
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ printJS({
|
|
|
|
+ printable: 'print', // 标签元素id
|
|
|
|
+ type: 'html',
|
|
|
|
+ headerStyle: 'font-weight:400;text-align:center;',
|
|
|
|
+ targetStyles: ['*'],
|
|
|
|
+ style: style,
|
|
|
|
+ });
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ printInfo.width = '100%';
|
|
|
|
+ }, 400);
|
|
|
|
+ }, 200);
|
|
}
|
|
}
|
|
async function getData() {
|
|
async function getData() {
|
|
const stepRes = await process({ repairId: repairId.value });
|
|
const stepRes = await process({ repairId: repairId.value });
|
|
@@ -680,6 +694,7 @@
|
|
t,
|
|
t,
|
|
enterDialog,
|
|
enterDialog,
|
|
print,
|
|
print,
|
|
|
|
+ printInfo,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
});
|
|
});
|