فهرست منبع

Merge remote-tracking branch 'origin/master'

sandm 2 سال پیش
والد
کامیت
08e5f2ed4a

+ 15 - 66
app/admin/view/integral_verify/detail.html

@@ -96,11 +96,10 @@
                                                 <td>
                                                     <div class="rowGroup">
                                                         <label class=" control-label spacing td-label"><span style="color: red">*</span>证件类型</label>
-                                                        <select class="form-control" id="card_type" name="card_type" value="{$row.card_type}">
-                                                            <option value="">请选择</option>
-                                                            <option value="1">身份证</option>
-                                                            <option value="2">通行证</option>
-                                                            <option value="3">护照</option>
+                                                        <select class="form-control" id="card_type" name="card_type">
+                                                            {eq name="row.card_type" value="1"}<option value="1">身份证</option>{/eq}
+                                                            {eq name="row.card_type" value="2"}<option value="2">通行证</option>{/eq}
+                                                            {eq name="row.card_type" value="3"}<option value="3">护照</option>{/eq}
                                                         </select>
                                                     </div>
                                                 </td>
@@ -143,7 +142,6 @@
                                 <div class="panel panel-default">
                                     <div class="panel-heading" onclick="$(this).next().toggle()">申报项目</div>
                                     <div class="panel-body" id="itemList">
-                                        {if condition="$row['detail']"}                                        
                                         {volist name="row.items" id="item"}                                 
                                         <table style="width:100%;border-collapse: collapse;" class="table table-bordered">
                                             <tr>
@@ -151,9 +149,9 @@
                                                     <div class="rowGroup">
                                                         <label class=" control-label spacing td-label"><span style="color: red">*</span>项目类别</label>
                                                         <select class="form-control" name="projectType[]">
-                                                            <eq name="item.projectType" value="1"><option value="1">基础分</option></eq>
-                                                            <eq name="item.projectType" value="2"><option value="2">贡献分</option></eq>
-                                                            <eq name="item.projectType" value="3"><option value="3">资历分</option></eq>
+                                                            {eq name="item.projectType" value="1"}<option value="1">基础分</option>{/eq}
+                                                            {eq name="item.projectType" value="2"}<option value="2">贡献分</option>{/eq}
+                                                            {eq name="item.projectType" value="3"}<option value="3">资历分</option>{/eq}
                                                         </select>
                                                     </div>
                                                 </td>
@@ -168,8 +166,8 @@
                                                 <td>
                                                     <div class="rowGroup">
                                                         <label class=" control-label spacing td-label"><span style="color: red">*</span>积分标准</label>
-                                                        <select class="form-control" name="item_id[]" value="{$item.item_id}">
-                                                            <option value="">{$item.itemName}</option>
+                                                        <select class="form-control" name="item_id[]">
+                                                            <option value="{$item.item_id}">{$item.itemName}</option>
                                                         </select>
                                                     </div>
                                                 </td>
@@ -180,63 +178,14 @@
                                                     </div>
                                                 </td>
                                             </tr>
-                                            <tr>
-                                                <td colspan="5">
-                                                    <table class="fileTable"></table>
-                                                </td>
-                                            </tr>
                                         </table>
                                         {/volist}
-                                        {else/}                                        
-                                        <table style="width:100%;border-collapse: collapse;" class="table table-bordered">
-                                            <tr>
-                                                <td style="width:40px;">
-                                                    <div class="rowGroup">
-                                                        <label class=" control-label spacing td-label">选择</label>
-                                                        <input type="checkbox" name="chk[]" class="form-control"/>
-                                                    </div>
-                                                </td>
-                                                <td>
-                                                    <div class="rowGroup">
-                                                        <label class=" control-label spacing td-label"><span style="color: red">*</span>项目类别</label>
-                                                        <select class="form-control" name="projectType[]" value="{$row.projectType}" onchange="IntegralInfoDlg.onProjectTypeChange(this);">
-                                                            <option value="">请选择</option>
-                                                            <option value="1">基础分</option>
-                                                            <option value="2">贡献分</option>
-                                                            <option value="3">资历分</option>
-                                                        </select>
-                                                    </div>
-                                                </td>
-                                                <td>
-                                                    <div class="rowGroup">
-                                                        <label class=" control-label spacing td-label"><span style="color: red">*</span>积分项目</label>
-                                                        <select class="form-control" name="projectId[]" value="{$row.projectId}" onchange="IntegralInfoDlg.onProjectChange(this);">
-                                                            <option value="">请选择</option>
-                                                        </select>
-                                                    </div>
-                                                </td>
-                                                <td>
-                                                    <div class="rowGroup">
-                                                        <label class=" control-label spacing td-label"><span style="color: red">*</span>积分标准</label>
-                                                        <select class="form-control" name="item_id[]" value="{$row.item_id}" onchange="IntegralInfoDlg.onItemChange(this);">
-                                                            <option value="">请选择</option>
-                                                        </select>
-                                                    </div>
-                                                </td>
-                                                <td>
-                                                    <div class="rowGroup">
-                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>数额<span class="unit"></span></label>
-                                                        <input type="text" class="form-control" name="amount[]" value="{$row.amount}"/>
-                                                    </div>
-                                                </td>
-                                            </tr>
-                                            <tr>
-                                                <td colspan="5">
-                                                    <table class="fileTable"></table>
-                                                </td>
-                                            </tr>
-                                        </table>
-                                        {/if}
+                                    </div>
+                                </div>
+                                <div class="panel panel-default">
+                                    <div class="panel-heading" onclick="$(this).next().toggle()">附件</div>
+                                    <div class="panel-body" id="itemList">
+                                        <table class="fileTable"></table>
                                     </div>
                                 </div>
                             </form>

+ 11 - 3
app/common/controller/Api.php

@@ -296,10 +296,18 @@ class Api extends BaseController {
                 }
                 break;
             case 20:
-                $itemId = $param["itemId"];
-                $integral_item = \app\common\api\IntegralItemApi::getOne($itemId);
+                $itemIds = $param["itemId"];
+                $redis = \app\common\Redis::instance(\think\facade\Config::get("cache.stores.redis.select"));
+                $fileTypeIds = [];
+                foreach ($itemIds as $item_id) {
+                    $integral_item = json_decode($redis->hGet("IntegralItem", $item_id), true);
+                    if ($integral_item["fileTypeId"]) {
+                        $fileTypeIds = array_filter(array_merge($fileTypeIds, explode(",", $integral_item["fileTypeId"])));
+                    }
+                }
+                //$integral_item = \app\common\api\IntegralItemApi::getOne($itemId);
                 if ($integral_item && $integral_item["fileTypeId"]) {
-                    $where[] = ["id", "in", explode(',', $integral_item["fileTypeId"])];
+                    $where[] = ["id", "in", $fileTypeIds];
                 } else {
                     return json([]);
                 }

+ 10 - 4
app/enterprise/view/integral/apply.html

@@ -187,11 +187,11 @@
                                                     </div>
                                                 </td>
                                             </tr>
-                                            <tr>
+                                            <!--<tr>
                                                 <td colspan="5">
                                                     <table class="fileTable"></table>
                                                 </td>
-                                            </tr>
+                                            </tr>-->
                                         </table>
                                         {/volist}
                                         {else/}                                        
@@ -237,11 +237,11 @@
                                                     </div>
                                                 </td>
                                             </tr>
-                                            <tr>
+                                            <!--<tr>
                                                 <td colspan="5">
                                                     <table class="fileTable"></table>
                                                 </td>
-                                            </tr>
+                                            </tr>-->
                                         </table>
                                         {/if}
                                         <div id="toolbar" style="text-align:center;">
@@ -254,6 +254,12 @@
                                         </div>
                                     </div>
                                 </div>
+                                <div class="panel panel-default">
+                                    <div class="panel-heading" onclick="$(this).next().toggle()">附件</div>
+                                    <div class="panel-body" id="itemList">
+                                        <table class="fileTable"></table>
+                                    </div>
+                                </div>
                             </form>
                             <form id="uploadForm" action="/common/api/addTalentFile" method="post" class="form-horizontal" enctype="multipart/form-data" target="hiddenIframe" style="display: none">
                                 <input type='hidden' id="fileId" name="fileId" />

+ 30 - 10
public/static/modular/gate/integral/integralInfo.js

@@ -181,23 +181,41 @@ IntegralInfoDlg.addItem = function () {
             '                                     </div>' +
             '                                 </td>' +
             '                             </tr>' +
-            '                             <tr>' +
-            '                                 <td colspan="5">' +
-            '                                     <table class="fileTable"></table>' +
-            '                                 </td>' +
-            '                             </tr>' +
             '                         </table>';
+    /*
+     * 
+     '                             <tr>' +
+     '                                 <td colspan="5">' +
+     '                                     <table class="fileTable"></table>' +
+     '                                 </td>' +
+     '                             </tr>' +
+     * 
+     */
     $("#toolbar").before(html);
 }
-IntegralInfoDlg.changeAndLoadFile = function (table, itemId) {
+IntegralInfoDlg.changeAndLoadFile = function () {
+    var table = $(".fileTable");
+    var items = $("select[name='item_id[]']");
+    var item_id = [];
+    for (var i = 0; i < items.length; i++) {
+        let _id = items.eq(i).val();
+        if (_id) {
+            item_id.push(_id);
+        }
+    }
+    if (item_id.length == 0) {
+        table.bootstrapTable("destroy");
+        return;
+    }
     var ajax = new $ax("/common/api/findCommonFileType", function (data) {
         if (data == null || data.length == 0) {
             return;
         }
+        table.bootstrapTable("destroy");
         table.bootstrapTable({
             columns: IntegralInfoDlg.initFileTypeColumn(),
             data: data.rows,
-            showHeader: false,
+            showHeader: true,
             rowStyle: function (row, index) {
                 return {classes: ""};
             },
@@ -242,7 +260,7 @@ IntegralInfoDlg.changeAndLoadFile = function (table, itemId) {
     queryData["mainId"] = $("#id").val();
     queryData['project'] = CONFIG.project_integral_apply;
     queryData['type'] = $("#type").val();
-    queryData["itemId"] = itemId;
+    queryData["itemId"] = item_id;
     queryData['checkState'] = $("#checkState").val();
     ajax.set(queryData);
     ajax.start();
@@ -253,8 +271,9 @@ IntegralInfoDlg.deleteItem = function () {
         Feng.info("请选择要移除的项目");
     }
     for (var i = 0; i < len; i++) {
-        $("input[name='chk[]']:checked").eq(i).parents("table").remove();
+        $("input[name='chk[]']:checked").eq(0).parents("table").remove();
     }
+    IntegralInfoDlg.changeAndLoadFile();
 }
 IntegralInfoDlg.onProjectTypeChange = function (obj) {
     var projectType = $(obj).val();
@@ -287,7 +306,7 @@ IntegralInfoDlg.onItemChange = function (obj) {
     } else {
         parent.find(".unit").html("");
     }
-    IntegralInfoDlg.changeAndLoadFile(parent.find(".fileTable"), $(obj).val());
+    IntegralInfoDlg.changeAndLoadFile();
 }
 
 /**
@@ -606,6 +625,7 @@ $(function () {
     $("#card_type").val($("#card_type").attr("value"));
     IntegralInfoDlg.validId();
     IntegralInfoDlg.setNoChangeField();
+    //IntegralInfoDlg.changeAndLoadFile();
 });
 
 

+ 53 - 107
public/static/modular/talentIdentify/integralMgr/IntegralVerify_info.js

@@ -44,126 +44,72 @@ IntegralVerifyInfoDlg.initFileTypeColumn = function () {
     ]
 };
 
-IntegralVerifyInfoDlg.initFileTable = function () {
+IntegralVerifyInfoDlg.changeAndLoadFile = function () {
+    var table = $(".fileTable");
+    var items = $("select[name='item_id[]']");
+    var item_id = [];
+    for (var i = 0; i < items.length; i++) {
+        let _id = items.eq(i).val();
+        if (_id) {
+            item_id.push(_id);
+        }
+    }
+    if (item_id.length == 0) {
+        table.bootstrapTable("destroy");
+        return;
+    }
     var ajax = new $ax("/common/api/findCommonFileType", function (data) {
         if (data == null || data.length == 0) {
             return;
         }
-        var datas = new Array();
-        for (var i = 0; i < $(".fileTable").length; i++) {
-            datas.push([]);//创建空的多维数组,等下用来存每个附件表的各自的列
-        }
-        var enterpriseTag = $("#enterprise_tag").val();
-        for (var k in data["rows"]) {
-            if (data["rows"][k].enterprise_tag != "" && data["rows"][k].enterprise_tag != null && data["rows"][k].enterprise_tag.indexOf(enterpriseTag) == -1) {
-                continue;
-            }
-            var rel = data["rows"][k].rel;
-            if ($("#" + rel).length > 0) {
-                if ($("#" + rel).parents(".table").length > 0) {
-                    var tableIndex = $("#" + rel).parents(".table").find("table.fileTable").index(".fileTable");
-                } else {
-                    var tableIndex = $("#" + rel).parents(".row").next(".row").find("table.fileTable").index(".fileTable");
-                }
-                data["rows"][k].tableIndex = tableIndex;
-                data["rows"][k].trIndex = datas[tableIndex].length;
-                datas[tableIndex].push(data["rows"][k]);
-                if (data["rows"][k].option) {
-                    //指定了选项
-                    if (rel == "birthday") {
-                        let birthday = parseInt($("#" + rel).val().substring(0, 4));
-                        let currentYear = parseInt(new Date().getFullYear());
-                        let age = currentYear - (isNaN(birthday) ? 0 : birthday);
-                        if (isNaN(birthday) || (!isNaN(birthday) && age < data["rows"][k].option))
-                            data["rows"][k].hidden = true;
-                    } else {
-                        let selectVal = $("#" + rel).data("value").toString();
-                        let options = data["rows"][k].option.split(",");
-                        if (options.indexOf(selectVal) == -1) {
-                            data["rows"][k].hidden = true;
+        table.bootstrapTable("destroy");
+        table.bootstrapTable({
+            columns: IntegralVerifyInfoDlg.initFileTypeColumn(),
+            data: data.rows,
+            showHeader: true,
+            rowStyle: function (row, index) {
+                return {classes: ""};
+            },
+            onPostBody: function (data) {
+                for (var k in data) {
+                    var files = data[k].files;
+                    var html = '<ul class="imgs"><li style="width: 70%;font-weight: bold;padding-top: 5px;">附件原名</li><li style="width: 10%;font-weight: bold;padding-top: 5px;">预览</li><li style="width: 20%;font-weight: bold;padding-top: 5px;">操作</li>';
+                    for (var key in files) {
+                        var sn = files[key].url.lastIndexOf(".");
+                        var suffix = files[key].ext; //files[key].url.substring(sn + 1, files[key].url.length);
+                        var imgStr = "";
+                        if (suffix == "pdf" || suffix == "PDF") {
+                            imgStr = "<button type='button'  onclick=\"Feng.showPdf('" + files[key].url + "','" + files[key].id + "','" + files[key].orignName + "')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-pdf-o\" aria-hidden=\"true\"></i></button>";
+                        } else if (suffix == "xlsx" || suffix == "XLSX" || suffix == 'xls' || suffix == 'XLS' || suffix == 'docx' || suffix == 'doc' || suffix == 'DOCX' || suffix == 'DOC') {
+                            imgStr = "<button type='button'  onclick=\"Feng.showExcel('" + files[key].url + "','" + files[key].id + "','" + files[key].orignName + "')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></button>";
+                        } else {
+                            imgStr = '<img class=\"imgUrl\" onclick=\"Feng.showImg(this)\" src=\"' + files[key].url + '\" style=\"width:25px;height:25px;\">';
                         }
-                    }
-                }
-            } else {
-                if (data["rows"][k].isConditionFile) {
-                    var isMatchZhiren = $("input[name=isMatchZhiren]").length > 0 ? parseInt($("input[name=isMatchZhiren]:checked").val()) : false;
-                    var isImport = parseInt($("#import").val());
-                    if (isImport == 1 && isMatchZhiren)
-                        continue;
-                    var tableIndex = 0;
-                    if ($("#talent_condition").parents(".table").length > 0) {
-                        tableIndex = $("#talent_condition").parents(".table").find("table.fileTable").index(".fileTable");
-                    } else {
-                        tableIndex = $("#talent_condition").parents(".row").next(".row").find("table.fileTable").index(".fileTable");
-                    }
-                    data["rows"][k].tableIndex = tableIndex;
-                    data["rows"][k].trIndex = datas[tableIndex].length;
-                    datas[tableIndex].push(data["rows"][k]);//放入人才条件后面的附件表
-                } else {
-                    var tableIndex = $(".fileTable").length - 1;
-                    data["rows"][k].tableIndex = tableIndex;
-                    data["rows"][k].trIndex = datas[tableIndex].length;
-                    datas[$(".fileTable").length - 1].push(data["rows"][k]);//没有归属,放入最后一个附件表
-                }
-            }
-        }
-        for (var i = 0; i < $(".fileTable").length; i++) {
-            var that = $(".fileTable").eq(i);
-            that.bootstrapTable({
-                columns: IntegralVerifyInfoDlg.initFileTypeColumn(),
-                data: datas[i],
-                showHeader: false,
-                rowStyle: function (row, index) {
-                    return {classes: ""};
-                },
-                onPostBody: function (data) {
-                    for (var k in data) {
-                        var files = data[k].files;
-                        var html = '<ul class="imgs"><li style="width: 60%;font-weight: bold;padding-top: 5px;">附件原名</li><li style="width: 15%;font-weight: bold;padding-top: 5px;">预览</li><li style="width: 25%;font-weight: bold;padding-top: 5px;">操作</li>';
-                        for (var key in files) {
-                            var sn = files[key].url.lastIndexOf(".");
-                            var suffix = files[key].ext;//files[key].url.substring(sn + 1, files[key].url.length);
-                            var imgStr = "";
-                            if (suffix == "pdf" || suffix == "PDF") {
-                                imgStr = "<button type='button'  onclick=\"Feng.showPdf('" + files[key].url + "','" + files[key].id + "','" + files[key].orignName + "')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-pdf-o\" aria-hidden=\"true\"></i></button>";
-                            } else if (suffix == "xlsx" || suffix == "XLSX" || suffix == 'xls' || suffix == 'XLS') {
-                                imgStr = "<button type='button'  onclick=\"Feng.showExcel('" + files[key].url + "','" + files[key].id + "','" + files[key].orignName + "')\" class=\"btn btn-xs btn-danger\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></button>";
-                            } else {
-                                imgStr = '<img class="imgUrl" onclick="Feng.showImg(this)" src="' + files[key].url + '" style="width:25px;height:25px;">';
-                            }
 
-                            html += '<li data-id="' + files[key].id + '">\n\
-                                    <div><input type="hidden" name="uploadFiles[]" value="' + files[key].id + '"></div>\n' +
-                                    '<div style="width: 60%;">' + files[key].orignName + '</div>\n' +
-                                    '<div style="width: 15%;">' + imgStr + '</div>\n' +
-                                    '<div style="width: 25%;"></div>\n\
+                        html += '<li data-id="' + files[key].id + '">\n\
+                                    <div>' + (data[k].step != 1 ? '<input type="hidden" name="uploadFiles[]" value="' + files[key].id + '">' : "") + '</div>\n' +
+                                '<div style="width: 70%;">' + files[key].orignName + '</div>\n' +
+                                '<div style="width: 10%;">' + imgStr + '</div>\n' +
+                                '<div style="width: 20%;"></div>\n\
                                     </li>';
-                        }
-                        html = html + '</ul>';
-                        that.find("tr[data-index='" + k + "']").attr("data-rel", data[k]["rel"]);
-                        that.find("tr[data-index='" + k + "']").attr("data-option", data[k]["option"]);
-                        that.find("tr[data-index='" + k + "']").after('<tr class="detail-view"><td colspan="5">' + html + '</td></tr>');
-                        if (typeof data[k].hidden != "undefined") {
-                            that.find("tr[data-index='" + k + "']").css("display", "none");
-                            that.find("tr[data-index='" + k + "']").next("tr.detail-view").css("display", "none");
-                        }
                     }
-                    $("td.uitd_showTip").bind("mouseover", function () {
-                        var htm = $(this).html();
-                        $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
-                    });
-                },
-            });
-        }
+                    html = html + '</ul>';
+                    table.find("tr[data-index='" + k + "']").after('<tr class="detail-view"><td colspan="5">' + html + '</td></tr>');
+                }
+                $("td.uitd_showTip").bind("mouseover", function () {
+                    var htm = $(this).html();
+                    $(this).webuiPopover({title: '详情', content: htm, trigger: 'hover'}).webuiPopover('show');
+                });
+            },
+        });
     }, function (data) {
         Feng.error("查询失败!" + data.responseJSON.message + "!");
     });
     var queryData = {};
     queryData["mainId"] = $("#id").val();
-    queryData['project'] = CONFIG.project_rcrd;
+    queryData['project'] = CONFIG.project_integral_apply;
     queryData['type'] = $("#type").val();
-    queryData["source"] = $("#source").val();
-    queryData["talent_condition"] = $("#talent_condition option:selected").val();
+    queryData["itemId"] = item_id;
     queryData['checkState'] = $("#checkState").val();
     ajax.set(queryData);
     ajax.start();
@@ -632,7 +578,7 @@ $(function () {
     });
     $('[data-toggle="tooltip"]').tooltip();
     var type = $("#type").val();
-    IntegralVerifyInfoDlg.initFileTable();
+    IntegralVerifyInfoDlg.changeAndLoadFile();
 
     Feng.getCheckLog("logTable", {"type": CONFIG.project_integral_apply, "mainId": $("#id").val(), "typeFileId": "", "active": 1})
 });