Kaynağa Gözat

20250207 任务添加编辑,同一个故障现象只允许一个故障部位

贾小兵 2 ay önce
ebeveyn
işleme
445267a0bd

+ 2 - 0
application/admin/controller/teacher/Task.php

@@ -45,6 +45,7 @@ class Task extends Backend
         if (false === $this->request->isPost()) {
             $this->assignConfig('rel_Ids', []);
             $this->assignConfig('rel_Names', []);
+            $this->assignConfig('prel_Ids', []);
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');
@@ -118,6 +119,7 @@ class Task extends Backend
             $this->view->assign('row', $row);
             $this->assignConfig('rel_Ids',explode(',',$row->fault_id));
             $this->assignConfig('rel_Names',explode(',',$row->fault_name));
+            $this->assignConfig('prel_Ids',explode(',',$row->pfault_id));
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');

+ 1 - 0
application/admin/view/teacher/task/add.html

@@ -64,6 +64,7 @@
 
     <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="" data-rule="required">
     <input class="form-control fault_names" name="row[fault_name]" type="hidden" value="" data-rule="required">
+    <input class="form-control pfault_ids" name="row[pfault_id]" type="hidden" value="" data-rule="required">
 
 
     <div class="col-lg-12" style="margin: 20px 10px 0px">

+ 13 - 13
application/admin/view/teacher/task/edit.html

@@ -59,6 +59,7 @@
     </div>
     <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="{$row.fault_id|htmlentities}" data-rule="required">
     <input class="form-control fault_names" name="row[fault_name]" type="hidden" value="{$row.fault_name|htmlentities}" data-rule="required">
+    <input class="form-control pfault_ids" name="row[pfault_id]" type="hidden" value="{$row.pfault_id|htmlentities}" data-rule="required">
 
     <div class="col-lg-12" style="margin: 20px 10px">
         <div class="tab-content">
@@ -93,16 +94,16 @@
                                     if($k>0){
                                         echo '</tr><tr><td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }else{
                                         echo '<td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                        echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                        echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                        echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                        echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }
                                 }
@@ -124,16 +125,16 @@
                                     if($k>0){
                                         echo '</tr><tr><td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }else{
                                         echo '<td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }
                                 }
@@ -159,16 +160,16 @@
                                     if($k>0){
                                         echo '</tr><tr><td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }else{
                                         echo '<td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.' pvalue='.$vo["fault_id"].'></td>';
                                         }
                                     }
                                 }
@@ -181,5 +182,4 @@
             </div>
         </div>
     </div>
-
 </form>

+ 23 - 7
public/assets/js/backend/teacher/task.js

@@ -83,6 +83,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             bindevent: function () {
                 var rel_Ids = [];
                 var rel_Names = [];
+                var prel_Ids = [];
                 if(Config.rel_Ids){
                     $.each(Config.rel_Ids, function(index, value) {
                         rel_Ids.push(value);
@@ -90,12 +91,17 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     $.each(Config.rel_Names, function(index, value) {
                         rel_Names.push(value);
                     });
+                    $.each(Config.prel_Ids, function(index, value) {
+                        prel_Ids.push(value);
+                    });
                 }
                 $('select[name="row[sim_type]"]').change(function () {
                     $(".fault_ids").val('');
                     $(".fault_names").val('');
+                    $(".pfault_ids").val('');
                     rel_Ids = [];
                     rel_Names = [];
+                    prel_Ids = [];
                     console.log($(this).val());
                     console.log( $(this).find("option:selected").text())
                     var xinghao = $(this).find("option:selected").text();
@@ -124,10 +130,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             var ret1 = ret[i].children;
                                             if(j>0){
                                                 task_tr += '    </tr><tr><td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }else{
                                                 task_tr += '    <td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }
                                         }
                                         task_tr += '</tr>';
@@ -145,14 +151,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             var ret1 = ret[i].children;
                                             if(j>0){
                                                 task_tr += '    </tr><tr><td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }else{
                                                 task_tr += '    <td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }
                                         }
                                     }else if(ret[0].sim_type == '0003'){
-                                        //003 暂缺
                                         task_tr += '<tr>';
                                         if(i==0){
                                             task_tr += '    <td rowspan="15">'+xinghao+'</td>';
@@ -170,10 +175,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             var ret1 = ret[i].children;
                                             if(j>0){
                                                 task_tr += '    </tr><tr><td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }else{
                                                 task_tr += '    <td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
+                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'" pvalue="'+ret[i].fault_id+'"></td>';
                                             }
                                         }
                                     }
@@ -191,14 +196,25 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         if (index > -1) {
                             rel_Ids.splice(index, 1);
                             rel_Names.splice(rel_Names.indexOf($(this).attr('vname')), 1);
+                            prel_Ids.splice(prel_Ids.indexOf($(this).attr('pvalue')), 1);
                         }
                         $(".fault_ids").val(rel_Ids.join(','));
                         $(".fault_names").val(rel_Names.join(','));
+                        $(".pfault_ids").val(prel_Ids.join(','))
+                        $(this).removeAttr("checked");
                     } else {
                         if(rel_Ids.length>2){
                             Layer.alert('故障内容只允许选择3个');
                             return false
                         }
+                        var pfault_id = $(this).attr('pvalue');
+                        var index2 = prel_Ids.indexOf(pfault_id);
+                        if (index2 > -1) {
+                            Layer.alert('一个故障现象下只允许申请一个故障部位');
+                            return false
+                        }
+                        prel_Ids.push(pfault_id);
+                        $(".pfault_ids").val(prel_Ids.join())
                         $(this).attr("checked", "true");
                         rel_Ids.push($(this).val());
                         $(".fault_ids").val(rel_Ids.join())