浏览代码

打印维保订单

lizhen_gitee 4 月之前
父节点
当前提交
8b87381caa

+ 129 - 0
application/admin/controller/Maintain.php

@@ -8,6 +8,8 @@ use think\exception\DbException;
 use think\exception\PDOException;
 use think\exception\ValidateException;
 use Exception;
+
+use app\common\model\Maintain as Maintainmodel;
 /**
  * 维修单
  *
@@ -179,4 +181,131 @@ class Maintain extends Backend
         $this->success();
     }
 
+    /**
+     * 查看导出
+     */
+    public function showinfo(){
+        $id = input('id',0);
+
+        $info = Db::name('maintain')->alias('mt')
+            ->join('user_company uc','mt.uc_id = uc.id','LEFT')
+            ->join('user','mt.user_id = user.id','LEFT')
+            ->join('worker','mt.worker_id = worker.id','LEFT')
+            ->join('company','mt.company_id = company.id','LEFT')
+            ->field('mt.*,uc.projectname,uc.header,uc.header_mobile,uc.projectaddress,user.nickname as user_nickname,user.mobile as user_mobile,worker.truename as worker_truename,worker.mobile as worker_mobile,company.companyname')
+            ->where('mt.id',$id)
+            ->find();
+
+        $maintain_model = new Maintainmodel();
+        $info['status_text'] = $maintain_model->status_data($info['status']);
+
+        //pc用户,已流转订单,直接显示流转中
+        if($info['company_id'] != 1 && in_array($info['status'],[0,20,22,30,40]) && $info['liuzhuan_status'] == 1){
+            $info['status_text'] = '流转中';
+        }
+
+        $info['status_colorType'] = $maintain_model->status_colorType($info['status']);
+
+        //假状态
+        $info['fake_status']      = $this->fake_status($info['status']);
+        $info['fake_status_text'] = $this->fake_status_data($info['status']);
+
+        $info['filedata'] = json_decode($info['filedata'],true);
+
+        //追加报价历史
+        $baojia = Db::name('maintain_baojia')->alias('bj')
+            ->field('bj.*,admin.nickname as baojia_nickname,audit.nickname as baojia_audit_nickname')
+            ->join('pc_admin admin','bj.baojia_staffid = admin.id','LEFT')
+            ->join('pc_admin audit','bj.baojia_audit_staffid = audit.id','LEFT')
+            ->where('order_id',$id)->order('id desc')->select();
+        if(!empty($baojia)){
+            foreach($baojia as $key => $val){
+                $baojia[$key]['status_text'] = $maintain_model->baojia_status_data($val['status']);
+            }
+        }
+        $info['baojia_list'] = $baojia;
+
+        //追加材料列表
+        $info['cailiao_list'] = Db::name('maintain_cailiao')->field('id,name,number,danwei,images')->where('order_id',$id)->order('id desc')->select();
+
+        //追加多次维修+对应进度历史
+        $last_jindulist = [];
+        $new_jindulist = [];
+        $jindu_list = Db::name('maintain_jindu')->alias('jd')
+            ->join('worker','jd.worker_id = worker.id','LEFT')
+            ->field('jd.id,jd.worker_id,jd.weixiu_times,jd.title,jd.images,jd.createtime,worker.avatar,worker.truename')
+            ->where('jd.order_id',$id)
+            ->order('jd.id desc')->select();
+        if(!empty($jindu_list)){
+            for($i=$jindu_list[0]['weixiu_times'];$i>=1;$i--){
+                foreach($jindu_list as $key => $val){
+                    if($i == $val['weixiu_times']){
+                        $new_jindulist[$i][] = $val;
+                    }
+                }
+            }
+            foreach($new_jindulist as $key => $val){
+                $last_jindulist[] = [
+                    'title' => '第'.$val[0]['weixiu_times'].'次',
+                    'child' => $val
+                ];
+            }
+        }
+        $info['jindu'] = $last_jindulist;
+
+        $this->view->assign('info', $info);
+//        dump($info);exit;
+        $this->view->engine->layout(false);
+        return $this->view->fetch();
+    }
+
+    //整合过的状态
+    private function fake_status_data($status){
+        $data = [
+            0  => '待报价',
+            2  => '已取消',
+
+            20 => '评估报价',
+            22 => '评估报价',
+
+            30 => '用户待确认',
+            40 => '待处理',
+            50 => '待处理',
+            60 => '待处理',
+            70 => '待处理',
+
+            80 => '待处理',
+            90 => '待处理',
+            92 => '待处理',
+
+            100 => '已完成',
+        ];
+
+        return isset($data[$status]) ? $data[$status] : $status;
+    }
+    //整合过的状态
+    private function fake_status($status){
+        $data = [
+            0  => 0,
+            2  => 2,
+
+            20 => 20,
+            22 => 20,
+
+            30 => 30,
+            40 => 40,
+            50 => 40,
+            60 => 40,
+            70 => 40,
+
+            80 => 40,
+            90 => 40,
+            92 => 40,
+
+            100 => 100,
+        ];
+
+        return isset($data[$status]) ? $data[$status] : $status;
+    }
+
 }

+ 1 - 0
application/admin/view/maintain/index.html

@@ -34,6 +34,7 @@
                         
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
+                           data-operate-showinfo="{:$auth->check('maintain/showinfo')}"
                            data-operate-edit="{:$auth->check('maintain/edit')}"
                            data-operate-del="{:$auth->check('maintain/del')}"
                            data-operate-zhipai="{:$auth->check('maintain/zhipai')}"

+ 161 - 0
application/admin/view/maintain/showinfo.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>维保订单</title>
+    {include file="common/meta" /}
+</head>
+<style>
+    /* 默认情况下,屏幕上显示 */
+    .hide-on-print {
+        display: block;
+        text-align: right;
+        margin-bottom: 20px;
+        padding-top: 20px;
+    }
+
+    .table-bordered {
+        border: 1px solid #ddd;
+    }
+    .panel-heading {
+        padding: 10px 0px;
+    }
+
+    .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td {
+        border: 1px solid #ddd;
+    }
+
+    /* 打印时隐藏 */
+    @media print {
+        .hide-on-print {
+            display: none;
+        }
+    }
+</style>
+
+<body  style="width: 760px;margin: 0 auto">
+
+<div class="hide-on-print">
+    <button type="button" onclick="printPage()" class="btn btn-primary dropdown-toggle">打印</button>
+</div>
+
+<table class="table table-striped table-bordered table-hover table-nowrap">
+
+    <tr>
+        <th colspan="4">报修信息</th>
+    </tr>
+    <tr>
+        <td>订单编号</td><td>{$info.orderno}</td>
+        <td>项目名称</td><td>{$info.projectname}</td>
+    </tr>
+    <tr>
+        <td>公司名</td><td>{$info.companyname}</td>
+        <td>项目负责人</td><td>{$info.header}</td>
+    </tr>
+    <tr>
+        <td>订单状态</td><td>{$info.status_text}</td>
+        <td>项目地址</td><td>{$info.projectaddress}</td>
+    </tr>
+    <tr>
+        <td>维修人员</td><td>{$info.worker_truename}<?php if($info['liuzhuan_status'] == 1){ ?> (流转)<?php } ?></td>
+        <td>维修人电话</td><td>{$info.worker_mobile}</td>
+    </tr>
+    <tr>
+        <td>完成时间</td><td>{$info.finishtime|date="Y-m-d H:i:s",###}</td>
+        <td>报价金额</td><td>{$info.price}</td>
+    </tr>
+    <tr>
+        <td>报修人员</td><td>{$info.user_nickname}</td>
+        <td>报修人电话</td><td>{$info.user_mobile}</td>
+    </tr>
+    <tr>
+        <td>报修时间</td><td>{$info.createtime|date="Y-m-d H:i:s",###}</td>
+        <td>联系地址</td><td>{$info.address}</td>
+    </tr>
+    <tr>
+        <td>评价</td><td>{$info.eva_info}</td>
+        <td>评价分</td><td>{$info.eva_score}</td>
+    </tr>
+    <tr>
+        <td>报修内容</td><td colspan="3">{$info.info}</td>
+    </tr>
+
+    <tr>
+        <td>报修图片/视频</td>
+        <td colspan="3">
+            {volist name="$info['filedata']" id="vo"}
+                <?php if($vo['type'] == 'img') { ?>
+                    <div><img src="{$vo['url']}" width="100" height="100" /></div>
+                <?php }else{ ?>
+                    <div><video width="100" height="100" controls><source src="{$vo['url']}" type="video/ogg"></video></div>
+            <?php } ?>
+            {/volist}
+        </td>
+    </tr>
+
+</table>
+{volist name="$info['baojia_list']" id="baojia"}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="4">评估报价 第<?php echo count($info['baojia_list']) - $key; ?>次</th>
+    </tr>
+    <tr>
+        <td>报价人</td><td>{$baojia.baojia_nickname}</td>
+        <td>报价时间</td><td>{$baojia.baojia_time|date="Y-m-d H:i:s",###}</td>
+    </tr>
+    <tr>
+        <td>报价文件</td><td colspan="3"><a href="{$baojia.baojia_file}">{$baojia.baojia_filename}</a></td>
+    </tr>
+    <tr>
+        <td>审核人</td><td>{$baojia.baojia_audit_nickname}</td>
+        <td>审核时间</td><td>{$baojia.baojia_audit_time}</td>
+    </tr>
+    <tr>
+        <td>审核原因</td><td>{$baojia.baojia_audit_reason}</td>
+        <td>报价状态</td><td>{$baojia.status_text}</td>
+    </tr>
+</table>
+{/volist}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="8">领取材料</th>
+    </tr>
+    {volist name="$info['cailiao_list']" id='cailiao'}
+    <tr>
+        <td>材料</td><td>{$cailiao.name}</td>
+        <td>数量</td><td>{$cailiao.number}</td>
+        <td>单位</td><td>{$cailiao.danwei}</td>
+        <td>图片</td><td><img href="{$cailiao.images}" width="100" height="100"></td>
+    </tr>
+    {/volist}
+</table>
+{volist name="$info['jindu']" id="jd"}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="3">维修进度 {$jd.title}</th>
+    </tr>
+    {volist name="$jd['child']" id="child"}
+    <tr>
+        <td><img src="{$child.avatar}" height="50" width="50">{$child.truename} {$child.createtime|date="Y-m-d H:i:s",###}</td>
+        <td>
+            {$child.title}
+        </td>
+
+        <td>
+            <?php
+            if(!empty($child['images'])){
+                $child['images'] = explode(',',$child['images']);
+                foreach($child['images'] as $cik => $civ){
+            ?>
+            <img href="{$civ}" src="{$civ}" height="50" width="50">
+            <?php }} ?>
+        </td>
+    </tr>
+    {/volist}
+</table>
+{/volist}
+
+
+{include file="common/script" /}
+
+</body>
+</html>

+ 1 - 1
application/company/controller/Maintain.php

@@ -327,7 +327,7 @@ class Maintain extends Apic
         $info['status_text'] = $maintain_model->status_data($info['status']);
 
         //pc用户,已流转订单,直接显示流转中
-        if($this->auth->company_id != 1 && in_array($info['status'],[0,20,22,30,40]) && $info['liuzhuan_status'] == 1){
+        if($info['company_id'] != 1 && in_array($info['status'],[0,20,22,30,40]) && $info['liuzhuan_status'] == 1){
             $info['status_text'] = '流转中';
         }
 

+ 16 - 0
public/assets/js/backend/maintain.js

@@ -68,6 +68,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'operate', title: __('Operate'), table: table,
                             buttons:[
                                 {
+                                    name:'showinfo',
+                                    text:'查看导出',
+                                    title:'查看导出',
+                                    icon:'fa fa-exclamation-circle',
+                                    classname:'btn btn-xs btn-info btn-dialog btn-jindu',
+                                    url:'maintain/showinfo/id/{ids}?dialog=1',
+                                    target:'_self',
+                                },
+                                {
                                     name:'jindu',
                                     text:'进度',
                                     title:'进度',
@@ -127,6 +136,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             // 为表格绑定事件
             Table.api.bindevent(table);
         },
+        showinfo: function () {
+            Controller.api.bindevent();
+        },
         add: function () {
             Controller.api.bindevent();
         },
@@ -144,3 +156,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
     };
     return Controller;
 });
+//打印ctrl+P
+function printPage() {
+    window.print();
+}