Explorar el Código

项目管理日期控件,抖动提示

zhongzewei hace 6 años
padre
commit
ed8ba2c8dc

+ 14 - 0
web/building_saas/css/custom.css

@@ -326,4 +326,18 @@ input.text-right{
 .export-check{
 .export-check{
     overflow: auto;
     overflow: auto;
     height: 400px;
     height: 400px;
+}
+.shake-input {
+    animation: shake-input 0.2s 4;
+}
+@keyframes shake-input {
+    0% {
+        transform: translateX(0);
+    }
+    30% {
+        transform: translateX(-2%);
+    }
+    100% {
+        transform: translateX(4%)
+    }
 }
 }

+ 2 - 0
web/building_saas/pm/html/project-management.html

@@ -6,6 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
     <meta http-equiv="x-ua-compatible" content="ie=edge">
     <meta http-equiv="x-ua-compatible" content="ie=edge">
     <title>项目管理-纵横建筑计价</title>
     <title>项目管理-纵横建筑计价</title>
+    <link rel="stylesheet" href="/lib/jquery-ui/jquery-ui.css" type="text/css">
     <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css">
     <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css">
     <link rel="stylesheet" href="/web/building_saas/css/main.css">
     <link rel="stylesheet" href="/web/building_saas/css/main.css">
     <link rel="stylesheet" href="/web/building_saas/css/custom.css">
     <link rel="stylesheet" href="/web/building_saas/css/custom.css">
@@ -910,6 +911,7 @@
 <script src = "/lib/spreadjs/sheets/gc.spread.sheets.all.11.1.2.min.js"></script>
 <script src = "/lib/spreadjs/sheets/gc.spread.sheets.all.11.1.2.min.js"></script>
 <script>GC.Spread.Sheets.LicenseKey = '<%- LicenseKey %>';</script>
 <script>GC.Spread.Sheets.LicenseKey = '<%- LicenseKey %>';</script>
 <script src="/lib/x2js/xml2json.min.js"></script>
 <script src="/lib/x2js/xml2json.min.js"></script>
+<script type="text/javascript" src="/lib/jquery-ui/jquery-ui-datepickerCN.js"></script>
 <script type="text/javascript">
 <script type="text/javascript">
     let billValuation = JSON.parse('<%- billValuation %>');
     let billValuation = JSON.parse('<%- billValuation %>');
     let rationValuation = JSON.parse('<%- rationValuation %>');
     let rationValuation = JSON.parse('<%- rationValuation %>');

+ 13 - 1
web/building_saas/pm/js/pm_newMain.js

@@ -2154,6 +2154,7 @@ $(document).ready(function() {
     }
     }
     //根据基本信息、工程特征数据获取对应节点
     //根据基本信息、工程特征数据获取对应节点
     function getFormRow(data) {
     function getFormRow(data) {
+        let dateReg = /([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))/;
         let cellType = data.cellType ? data.cellType : 'text';
         let cellType = data.cellType ? data.cellType : 'text';
         let $label = $(`<label for="staticEmail" class="col-3 col-form-label col-form-label-sm">${data.dispName}</label>`),
         let $label = $(`<label for="staticEmail" class="col-3 col-form-label col-form-label-sm">${data.dispName}</label>`),
             $cell;
             $cell;
@@ -2163,6 +2164,15 @@ $(document).ready(function() {
             for (let opt of opts) {
             for (let opt of opts) {
                 $cell.append($(`<option ${data.value === opt ? 'selected' : ''} value="${opt}">${opt}</option>`));
                 $cell.append($(`<option ${data.value === opt ? 'selected' : ''} value="${opt}">${opt}</option>`));
             }
             }
+        } else if (cellType === 'date') {   //不用原生的日期控件
+            $cell = $(`<input type="pm-${cellType}" name="${data.key}"
+                       value="${data.value}" class="form-control form-control-sm" placeholder="请输入">`);
+            $cell.datepicker({dateFormat: 'yy-mm-dd'});
+            $cell.change(function () {
+                if (!dateReg.test($($cell).val())) {
+                    $($cell).val('');
+                }
+            });
         } else {
         } else {
             $cell = $(`<input type="${cellType}" ${cellType === 'number' ? 'min="0"' : ''} name="${data.key}"
             $cell = $(`<input type="${cellType}" ${cellType === 'number' ? 'min="0"' : ''} name="${data.key}"
                        value="${data.value}" class="form-control form-control-sm" placeholder="请输入">`);
                        value="${data.value}" class="form-control form-control-sm" placeholder="请输入">`);
@@ -2179,8 +2189,11 @@ $(document).ready(function() {
     function validRequiredData($form) {
     function validRequiredData($form) {
         let eles = $form.find('input, select');
         let eles = $form.find('input, select');
         for (let ele of eles) {
         for (let ele of eles) {
+            $(ele).removeClass('shake-input');
             let v = $(ele).val().trim();
             let v = $(ele).val().trim();
             if (!v || v === '请选择') {
             if (!v || v === '请选择') {
+                $(ele).focus();
+                $(ele).addClass('shake-input');
                 return false;
                 return false;
             }
             }
         }
         }
@@ -2467,7 +2480,6 @@ $(document).ready(function() {
     $('#tender-feeStandard').change(function () {
     $('#tender-feeStandard').change(function () {
        changeFeeStandard();
        changeFeeStandard();
     });
     });
-
     //导入相关
     //导入相关
     importView.eventListen();
     importView.eventListen();
 });
 });