瀏覽代碼

未改好

sugangqiang 2 年之前
父節點
當前提交
21a9b94f9d

+ 7 - 2
app/admin/controller/Talent.php

@@ -232,7 +232,10 @@ class Talent extends AdminController {
         }
         if ($rows) {
             $filename = "优秀人才公示预览导出";
-            export($columns, $rows, $filename);
+            $settings = [
+                "background-color" => ["A1:A10" => "ff0000"]
+            ];
+            export($columns, $rows, $filename, $settings);
         }
     }
 
@@ -718,7 +721,9 @@ class Talent extends AdminController {
             $i++;
         }
         $filename = "优秀人才核查征信名单导出";
-        export($columns, $rows, $filename);
+        if ($rows) {
+            export($columns, $rows, $filename, getCommonExcelSetting(count($columns), count($rows)));
+        }
     }
 
     public function commonExport() {

+ 102 - 6
app/common.php

@@ -86,11 +86,12 @@ function getExcelDatas($filepath, $sheetIndex = 0) {
  * @param type $columns 列标题
  * @param type $rows 内容
  * @param string $filename 文件名
+ * @param string $settings 样式批设置
  * @param type $sheetname sheet标题
  * @param type $saveurl 保存位置
  * @param type $author 作者
  */
-function export($columns, $rows, $filename = "jjrcw", $sheetname = "sheet1", $saveurl = "php://output", $author = "晋江人才网") {
+function export($columns, $rows, $filename = "jjrcw", $settings = [], $sheetname = "sheet1", $saveurl = "php://output", $author = "晋江人才网") {
     $datatype = new \PhpOffice\PhpSpreadsheet\Cell\DataType;
     $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
     $spreadsheet->getProperties()->setCreator($author)
@@ -121,10 +122,91 @@ function export($columns, $rows, $filename = "jjrcw", $sheetname = "sheet1", $sa
             }
         }
     }
+    $objPHPExcel->getDefaultColumnDimension()->setWidth(16); //默认列宽
+    $objPHPExcel->getDefaultRowDimension()->setRowHeight(30); //默认列高
+    //样式设置
+    foreach ($settings as $type => $cfg) {
+        switch ($type) {
+            case "width":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    $objPHPExcel->getColumnDimension($cfg[$i][0])->setWidth($cfg[$i][1]);
+                }
+                break;
+            case "height":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    $objPHPExcel->getRowDimension($cfg[$i][0])->setRowHeight($cfg[$i][1]);
+                }
+                break;
+            case "background-color":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    $objPHPExcel->getStyle($cfg[$i][0])->getFill()->setFillType(PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor($cfg[$i][1])->setARGB($cfg[$i][1]);
+                }
+                break;
+            case "border":
+                $objPHPExcel->getStyle($cfg)->applyFromArray(array(
+                    "borders" => array(
+                        "allBorders" => array(
+                            'borderStyle' => PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN
+                        )
+                    )
+                ));
+                break;
+            case "align":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    switch ($cfg[$i][1]) {
+                        case "left":
+                            $hAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT;
+                            break;
+                        case "right":
+                            $hAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT;
+                            break;
+                        case "hCenter":
+                            $hAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER;
+                            break;
+                        case "hJustify":
+                            $hAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY;
+                            break;
+                        case "top":
+                            $vAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP;
+                            break;
+                        case "bottom":
+                            $vAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM;
+                            break;
+                        case "vCenter":
+                            $vAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER;
+                            break;
+                        case "vJustify":
+                            $vAlign = PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY;
+                            break;
+                    }
+                    $align = [];
+                    if ($hAlign) {
+                        $align["horizontal"] = $hAlign;
+                    }
+                    if ($vAlign) {
+                        $align["vertical"] = $vAlign;
+                    }
+                    $objPHPExcel->getStyle($cfg[$i][0])->applyFromArray([
+                        "alignment" => $align
+                    ]);
+                }
+                break;
+            case "color":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    $objPHPExcel->getStyle($cfg[$i][0])->getFont()->getColor()->setARGB($cfg[$i][1]);
+                }
+                break;
+            case "wrap":
+                for ($i = 0; $i < count($cfg); $i++) {
+                    $objPHPExcel->getStyle($cfg[$i])->getAlignment()->setWrapText(true); //cellvalue包含\n设为自动换行
+                }
+                break;
+        }
+    }
 
     header('Content-Type: application/vnd.ms-excel');
-    header('Content-Disposition: attachment;filename="' . $filename . '.xlsx"');
-    $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+    header('Content-Disposition: attachment;filename="' . $filename . '"');
+    $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xls($spreadsheet);
     $writer->save($saveurl);
     //删除临时的sheet
     $spreadsheet->disconnectWorksheets();
@@ -146,6 +228,20 @@ function getExcelColumnByIndex(int $index) {
     return $letters[$rowIndex] . $letters[$colIndex];
 }
 
+/**
+ * 公共的excel设置
+ * @return type
+ */
+function getCommonExcelSetting($columns, $rows) {
+    return $settings = [
+        "background-color" => [[sprintf("A1:%s1", getExcelColumnByIndex($columns - 1)), "0066CC"]],
+        "color" => [[sprintf("A1:%s1", getExcelColumnByIndex($columns - 1)), "FFFFFF"]],
+        "border" => sprintf("A1:%s%d", getExcelColumnByIndex($columns - 1), $rows + 1),
+        "wrap" => [sprintf("A2:%s%d", getExcelColumnByIndex($columns - 1), $rows + 1)],
+        "align" => [[sprintf("A1:%s%d", getExcelColumnByIndex($columns - 1), $rows + 1), "hCenter"], [sprintf("A1:%s%d", getExcelColumnByIndex($columns - 1), $rows + 1), "vCenter"]]
+    ];
+}
+
 /**
  * 检查是不是excel格式,不确定是否都是可用文件,主要还是第一和最后一个比较常见
  * @param type $mime
@@ -177,7 +273,7 @@ function getStoragePath($path) {
     return "";
 }
 
-function getFileView($path){
-    $complete_path = "https://report.jinjianghc.com/".getStoragePath($path);
-    return "https://fileview.jinjianghc.com/onlinePreview?url=".base64_encode($complete_path);
+function getFileView($path) {
+    $complete_path = "https://report.jinjianghc.com/" . getStoragePath($path);
+    return "https://fileview.jinjianghc.com/onlinePreview?url=" . base64_encode($complete_path);
 }

+ 4 - 0
app/common/api/TalentState.php

@@ -22,6 +22,10 @@ class TalentState {
     public const REVERIFY_PASS = 11; //复核通过
     public const REVERIFY_REJECT = 12; //复核驳回
     public const REVERIFY_FAIL = 13; //复核失败
+    public const ZX_PASS = 21; //征信通过
+    public const ZX_FAIL = 22; //征信失信
+    public const GS_PASS = 31; //公示通过
+    public const GS_FAIL = 32; //公示失信
     public const BASE_VERIFY_FAIL = -1; //条件验证失败
     public const FST_VERIFY_FAIL = -2; //初审失败
 

+ 2 - 2
app/common/api/VerifyApi.php

@@ -161,7 +161,7 @@ class VerifyApi {
         $list = Talent::alias("ti")->leftJoin("new_enterprise e", "e.id=ti.enterprise_id")
                         ->where($where)
                         ->limit($offset, $limit)
-                        ->order("ti.createTime " . $order)->field("ti.*,e.name as enterpriseNname,e.type as enterprise_type,enterpriseTag")->select()->toArray();
+                        ->order("ti.createTime " . $order)->field("ti.*,e.name as enterpriseName,e.type as enterprise_type,enterpriseTag")->select()->toArray();
         foreach ($list as &$item) {
             $item["talent_type"] = $item["enterprise_type"] == 1 ? "晋江优秀人才" : "集成电路优秀人才";
             $item["enterprise_tag"] = $enterprise_tag_kvs[$item["enterpriseTag"]];
@@ -202,7 +202,7 @@ class VerifyApi {
                     $where[] = ["ti.checkState", "in", [6, -2]];
                     break;
                 case 5:
-                    $where[] = ["ti.checkState", "=", 11];
+                    $where[] = ["ti.checkState", ">=", 11];
                     break;
             }
             $count = Talent::alias("ti")->leftJoin("new_enterprise e", "e.id=ti.enterprise_id")->where($where)->count();

+ 1 - 26
public/static/modular/talentIdentify/talentInfo/talentInfo_prepare.js

@@ -68,31 +68,6 @@ TalentInfo.initColumn = function () {
                 }
             }
         },
-        {title: '公示状态', field: 'isPublic', visible: true, align: 'center', valign: 'middle', width: '120px',
-            formatter: function (value, row, index) {
-                if (value == 1) {
-                    return "<span class='label label-info'>待核查征信</span>"
-                }
-                if (value == 2) {
-                    return "<span class='label label-success'>待公示</span>"
-                }
-                if (value == 3) {
-                    return "<span class='label label-danger'>公示中</span>"
-                }
-                if (value == 4) {
-                    return "<span class='label label-warning'>待公布</span>"
-                }
-                if (value == 5) {
-                    if (row.checkState == 13) {
-                        return "<span class='label label-danger'>审核不通过</span>"
-                    }
-                    return "<span class='label label-primary'>待发证</span>"
-                }
-                if (value == 6) {
-                    return "<span class='label label-primary'>已发证</span>"
-                }
-            }
-        },
         {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle', width: '80px',
             formatter: function (value, row, index) {
                 return "<span class='label label-success' onclick=\"TalentInfo.showLog('" + value + "')\" >" +
@@ -231,7 +206,7 @@ TalentInfo.showDataCheckModal = function (type) {
                             if (value == 13) {
                                 return "<span style='color: #ed5565;'>审核不通过</span>";
                             }
-                            if (value == 12) {
+                            if (value == 11) {
                                 return "<span style='color: #1ab394;'>审核通过</span>";
                             }
                         }