From e85439da9f2fb1be90509a72e637613a5c0bbc11 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期四, 09 十一月 2023 12:08:18 +0800
Subject: [PATCH] #副PLAN

---
 src/main/webapp/static/js/plan/plan.js |  331 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 217 insertions(+), 114 deletions(-)

diff --git a/src/main/webapp/static/js/plan/plan.js b/src/main/webapp/static/js/plan/plan.js
index 8ae8155..372ba08 100644
--- a/src/main/webapp/static/js/plan/plan.js
+++ b/src/main/webapp/static/js/plan/plan.js
@@ -139,19 +139,50 @@
         skin: 'line',
         cols: [[
             {type: 'checkbox'}
-            // ,{field: 'id', align: 'center',title: 'ID'}
+            ,{field: 'id', align: 'center',title: 'ID'}
             // ,{field: 'hostId$', align: 'center',title: '鎵�灞炲晢鎴�'}
             ,{field: 'userId$', align: 'left',title: '涓氬姟鍛�',hide: false, width: 100}
             ,{field: 'planType$', align: 'left',title: '涓氬姟绫诲瀷', width: 150,hide: false}
-            ,{field: 'name', align: 'left',title: '鍞墠瑙勫垝鐢宠鍗曞悕绉�', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'more',hide: false}
+            ,{
+                field: 'name',
+                align: 'left',
+                title: '鍞墠瑙勫垝鐢宠鍗曞悕绉�',
+                width: 220,
+                style: 'color: #1890ff;cursor:pointer',
+                event: 'more',
+                hide: false
+            }
             ,{field: 'uuid', align: 'left',title: '瑙勫垝鍗曞彿', width: 100,hide: false}
-            ,{field: 'planNeed$', align: 'left',title: '鎵�闇�', templet:function(d){return emptyShow(d.planNeed$)},hide: false}
+            ,{
+                field: 'planNeed$',
+                align: 'left',
+                title: '鎵�闇�',
+                templet:function(d){
+                    return emptyShow(d.planNeed$)
+                },
+                hide: false
+            }
             ,{field: 'deptId$', align: 'left',title: '鎵�灞為儴闂�',hide: true}
             ,{field: 'planner$', align: 'left',title: '瑙勫垝鍛�',hide: false, width: 100}
             // ,{field: 'nowHeadman$', align: 'left',title: '瑙勫垝缁勯暱',hide: true}
-            ,{field: 'orderId$', align: 'left',title: '璺熻釜椤圭洰', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'orderMore',hide: false}
-            // ,{field: 'cstmrId$', align: 'left',title: '鐢叉柟鍗曚綅', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'cstmrMore',hide: true}
-            ,{field: 'appleTime$', align: 'left',title: '鐢宠鏃ユ湡', hide: true}
+            ,{
+                field: 'orderId$',
+                align: 'left',
+                title: '璺熻釜椤圭洰',
+                width: 220,
+                style: 'color: #1890ff;cursor:pointer',
+                event: 'orderMore',hide: false
+            }
+            // ,{
+            //     field: 'cstmrId$',
+            //     align: 'left',
+            //     title: '鐢叉柟鍗曚綅',
+            //     width: 220,
+            //     style: 'color: #1890ff;cursor:pointer',
+            //     event: 'cstmrMore',
+            //     hide: true
+            // }
+            ,{field: 'appleTime$', align: 'left',title: '鐢宠鏃ユ湡', hide: false}
             // ,{field: 'beItem$', align: 'center',title: '绔嬮」'}
             // ,{field: 'planner', align: 'left',title: '瑙勫垝鍛�', templet:function(d){return emptyShow(d.planner)}}
             // ,{field: 'finishTime$', align: 'center',title: '瀹屾垚鏃堕棿'}
@@ -165,13 +196,15 @@
             ,{field: 'settle$', align: 'center',title: '杩涘害', width: 150}
             // ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
             // ,{field: 'comment', align: 'center',title: '璇勮'}
-            // ,{field: 'status$', align: 'center',title: '鐘舵��'}
-            ,{field: 'createTime$', align: 'left',title: '娣诲姞鏃ユ湡', width: 160, hide: false}
+            ,{field: 'status$', align: 'center',title: '鐘舵��'}
+            ,{field: 'createTime$', align: 'left',title: '娣诲姞鏃ユ湡', width: 160, hide: true}
             ,{field: 'updateBy$', align: 'left',title: '淇敼浜�', width: 100}
             ,{field: 'updateTime$', align: 'left',title: '淇敼鏃堕棿', hide: true}
             ,{field: 'memo', align: 'left',title: '娉ㄩ噴', hide: true}
-
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 280}
+            ,{field: 'assistantHostSign', align: 'left',title: '涓诲壇鏍囪', hide: false}
+            ,{field: 'hostPlanId', align: 'left',title: '涓籌D', hide: false}
+            ,{field: 'assistantPlanId', align: 'left',title: '鍓疘D', hide: false}
+            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 340}
         ]],
         request: {
             pageName: 'curr',
@@ -197,73 +230,94 @@
         }
     });
 
-    //澶氭枃浠跺垪琛�
-    var uploadListIns = upload.render({
-        elem: '#data-btn-file2'
-        ,elemList: $('#data-btn-file3') //鍒楄〃鍏冪礌瀵硅薄
-        ,url: '/plan/insert/file/auth'
-        ,accept: 'file'
-        ,multiple: true
-        ,number: 10
-        ,auto: false
-        ,bindAction: '#testListAction'
-        ,choose: function(obj){
-            // 璧嬪��
-            this.data.planId=$('.layui-layer-title').text()
-            var that = this;
-            var files = this.files = obj.pushFile(); //灏嗘瘡娆¢�夋嫨鐨勬枃浠惰拷鍔犲埌鏂囦欢闃熷垪
-            //璇诲彇鏈湴鏂囦欢
-            obj.preview(function(index, file, result){
-                var tr = $(['<tr id="upload-'+ index +'">'
-                    ,'<td>'+ file.name +'</td>'
-                    ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
-                    ,'<td><div class="layui-progress" lay-filter="progress-demo-'+ index +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
-                    ,'<td>'
-                    ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>'
-                    ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>'
-                    ,'<button id="file-download" class="layui-btn layui-btn-xs demo-reload layui-hide">涓嬭浇</button>'
-                    ,'</td>'
-                    ,'</tr>'].join(''));
+    $("#data-btn-file2").on("click", (e) => {
+        $("#data-btn-upload").click()
+    });
 
-                //鍗曚釜閲嶄紶
-                tr.find('.demo-reload').on('click', function(){
-                    obj.upload(index, file);
-                });
-
-                //鍒犻櫎
-                tr.find('.demo-delete').on('click', function(){
-                    delete files[index]; //鍒犻櫎瀵瑰簲鐨勬枃浠�
-                    tr.remove();
-                    uploadListIns.config.elem.next()[0].value = ''; //娓呯┖ input file 鍊硷紝浠ュ厤鍒犻櫎鍚庡嚭鐜板悓鍚嶆枃浠朵笉鍙��
-                });
-
-                that.elemList.append(tr);
-                element.render('progress'); //娓叉煋鏂板姞鐨勮繘搴︽潯缁勪欢
-            });
-        }
-        ,done: function(res, index, upload){ //鎴愬姛鐨勫洖璋�
-            var that = this;
-            //if(res.code == 0){ //涓婁紶鎴愬姛
-            var tr = that.elemList.find('tr#upload-'+ index)
-                ,tds = tr.children();
-            tds.eq(3).html(''); //娓呯┖鎿嶄綔
-            delete this.files[index]; //鍒犻櫎鏂囦欢闃熷垪宸茬粡涓婁紶鎴愬姛鐨勬枃浠�
+    var _uploadFile = null
+    //鍝嶅簲涓婁紶
+    $("#data-btn-upload").on("change",(evt) => {
+        var files = evt.target.files;
+        if(files==null || files.length==0){
+            alert("No files wait for import");
             return;
-            //}
-            this.error(index, upload);
         }
-        ,allDone: function(obj){ //澶氭枃浠朵笂浼犲畬姣曞悗鐨勭姸鎬佸洖璋�
-            console.log(obj)
+
+        var file = files[0]
+
+        var tr = $(['<tr id="upload-">'
+            ,'<td id="upload-filename-id-'+ file.lastModified + '">' + file.name +'</td>'
+            ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
+            ,'<td id="upload-file-id-' + file.lastModified + '">鍑嗗涓婁紶</td>'
+            ,'<td>'
+            ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">閲嶄紶</button>'
+            ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">鍒犻櫎</button>'
+            ,'<button id="file-download" class="layui-btn layui-btn-xs demo-reload layui-hide">涓嬭浇</button>'
+            ,'</td>'
+            ,'</tr>'].join(''));
+
+        //鍒犻櫎
+        tr.find('.demo-delete').on('click', function(){
+            tr.remove();
+            $("#data-btn-upload").val("")
+            _uploadFile = null
+        });
+
+        $('#data-btn-file3').append(tr)
+
+        _uploadFile = file
+    })
+
+    //寮�濮嬩笂浼�
+    $("#testListAction").on("click", async (e) => {
+        if (_uploadFile == null) {
+            return false;
         }
-        ,error: function(index, upload){ //閿欒鍥炶皟
-            var that = this;
-            var tr = that.elemList.find('tr#upload-'+ index)
-                ,tds = tr.children();
-            tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //鏄剧ず閲嶄紶
-        }
-        ,progress: function(n, elem, e, index){
-            element.progress('progress-demo-'+ index, n + '%'); //鎵ц杩涘害鏉°�俷 鍗充负杩斿洖鐨勮繘搴︾櫨鍒嗘瘮
-        }
+
+        var index = layer.load(1, {
+            shadeClose: false,
+            title: '涓婁紶涓�..',
+            shade: [0.5,'#000']
+        });
+
+        var file = _uploadFile
+        $("#upload-file-id-" + file.lastModified).html("涓婁紶涓�")
+
+        putObject(file).then((result) => {
+            var filename = result.name
+            layer.msg('涓婁紶鎴愬姛', {icon: 1});
+            $("#upload-file-id-" + file.lastModified).html("涓婁紶鎴愬姛")
+            $("#upload-filename-id-" + file.lastModified).html(filename)
+
+            $.ajax({
+                url: baseUrl+"/plan/insert/file/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: {
+                    'planId': $('.layui-layer-title').text(),
+                    'filename': filename,
+                    'filesize': file.size
+                },
+                method: 'POST',
+                success: function (res) {
+                    if (res.code === 200){
+                        layer.close(index)
+                        console.log(res)
+                    } else if (res.code === 403){
+                        top.location.href = baseUrl+"/";
+                    } else {
+                        layer.msg(res.msg)
+                    }
+                }
+            });
+        }).catch((e) => {
+            console.log(e)
+            layer.msg('涓婁紶澶辫触', {icon: 2});
+            $("#upload-file-id-" + file.lastModified).html("涓婁紶澶辫触")
+        })
+
+        //娓呯┖file
+        $("#data-btn-upload").val("")
+        _uploadFile = null
     });
 
     // 娣诲姞
@@ -323,7 +377,8 @@
                                                     ])
                                                     let planNeedSel = loadPlanNeedSel();
                                                     form.val('detail', {
-                                                        planTypeName: planType.name
+                                                        planTypeName: planType.name,
+                                                        userXmlSelPhone: res0.data.mobile
                                                     });
                                                     layDateRender();
                                                     form.on('submit(editSubmit)', function (data) {
@@ -476,7 +531,7 @@
                 }, function (i) {
                     layer.close(i);
                     // 鎸囧畾瑙勫垝鍛�
-                    if (data.settle === 2) {
+                    if (data.settle === 1) {
                         admin.open({
                             type: 1,
                             area: '300px',
@@ -488,6 +543,7 @@
                                     autoRow: true,
                                     filterable: true,
                                     remoteSearch: true,
+                                    clickClose: true,
                                     radio: true,
                                     remoteMethod: function (val, cb, show) {
                                         let loadIndex = layer.load(2);
@@ -529,6 +585,20 @@
                     }
                 });
                 break;
+            case 'approvalEnd':
+                layer.confirm('瀹℃壒鎷掔粷锛�', {
+                    skin: 'layui-layer-admin',
+                    shade: .1,
+                    offset: '200px',
+                    title: data.name
+                }, function (i) {
+                    layer.close(i);
+                    approvalEnd(data.id);
+                });
+                break;
+            case 'assistantPlan':
+                assistantPlan(data);
+                break;
             case 'edit':
                 showEditModel(data);
                 break;
@@ -536,18 +606,22 @@
                 del([data.id]);
                 break;
             case "uploadLink":
+                var planIdSign = data.id;
+                if (data.assistantHostSign==1){
+                    planIdSign = data.hostPlanId;
+                }
                 // 鎵撳紑寮圭獥
                 // 鏋勫缓甯﹀弬鏁扮殑鍐呭
                 layer.open({
                     type: 1,
-                    title: '涓婁紶鏂囦欢-'+data.id,
+                    title: '涓婁紶鏂囦欢-'+planIdSign,
                     content: $('#myModal')
                 });
                 // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶
                 $.ajax({
                     url: '/plan/view/file/auth',
                     data:{
-                        planId:data.id
+                        planId:planIdSign
                     },
                     success: function(response) {
                         if (response.code==200){
@@ -589,42 +663,10 @@
     // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞�
     $('#data-btn-file3').on('click', 'a', function() {
         var downloadUrl = $(this).attr('href');
-        // console.log(downloadUrl)
-        // console.log(baseUrl)
-        // window.open("/\//"+downloadUrl);
-        // return false;
-        // var downloadUrl = $(this).attr('href');
-        // console.log(downloadUrl)
-        // // 鍙戣捣 AJAX 璇锋眰锛岃幏鍙栨枃浠�
-        $.ajax({
-            url: '/plan/download/file/auth',
-            type: 'POST',
-            data: { downloadUrl: downloadUrl },  // 浼犻�掍笅杞介摼鎺ヤ綔涓哄弬鏁�
-            success: function(response) {
-                console.log(response)
-                layer.msg(response.msg+',宸蹭笅杞借嚦榛樿璺緞锛佽缁嗕笅杞借矾寰勶細'+response.data, {icon: 1});
-        //         // window.open(baseUrl+response.msg)
-        //         // 鍒涘缓涓�涓狟lob瀵硅薄
-        //         var blob = new Blob([response]);
-        //         // 浣跨敤FileSaver淇濆瓨鏂囦欢
-        //         var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1);
-        //         console.log(fileName)
-        //         saveAs(blob, fileName);
-        //         return false;
-            },
-            error: function() {
-                layer.msg('璇锋眰鏂囦欢涓嬭浇澶辫触');
-            }
-        });
-        // var downloadUrl = $(this).attr('href');
-        // console.log(downloadUrl)
-        // if (downloadUrl == "" || downloadUrl == null) {
-        //     layer.msg('璇峰厛涓婁紶app鏂囦欢',{time:1000},() => {
-        //         parent.location.reload()
-        //     })
-        // }else{
-        //     window.open(downloadUrl);
-        // }
+        let url = getObjectUrl(downloadUrl)
+        layer.msg("鍑嗗涓嬭浇涓�", {icon: 1});
+        // location.href = url
+        window.open(url)
         return false;  // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓�
     });
 
@@ -632,6 +674,33 @@
         let loadIndex = layer.load(2);
         $.ajax({
             url: baseUrl+"/plan/approval/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                planId: planId,
+                plannerId: plannerId
+            },
+            method: 'POST',
+            success: function (res) {
+                if (dIdx) {
+                    layer.close(dIdx);
+                }
+                layer.close(loadIndex);
+                if (res.code === 200){
+                    layer.msg(res.msg, {icon: 1});
+                    tableReload();
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg, {icon: 2});
+                }
+            }
+        })
+    }
+
+    function approvalEnd(planId, plannerId, dIdx) {
+        let loadIndex = layer.load(2);
+        $.ajax({
+            url: baseUrl+"/plan/approvalEnd/auth",
             headers: {'token': localStorage.getItem('token')},
             data: {
                 planId: planId,
@@ -748,6 +817,36 @@
         });
     }
 
+    /* 鏂板缓 */
+    function assistantPlan(data) {
+        layer.confirm('纭畾瑕佹柊寤鸿揣鏋惰鍒掑鎵瑰悧锛�', {
+            skin: 'layui-layer-admin',
+            shade: .1
+        }, function (i) {
+            layer.close(i);
+            var loadIndex = layer.load(2);
+            $.ajax({
+                url: baseUrl+"/plan/assistantPlan/add/auth",
+                headers: {'token': localStorage.getItem('token')},
+                data: {
+                    hostPlanId: data.id
+                },
+                method: 'POST',
+                success: function (res) {
+                    layer.close(loadIndex);
+                    if (res.code === 200){
+                        layer.msg(res.msg, {icon: 1});
+                        tableReload();
+                    } else if (res.code === 403){
+                        top.location.href = baseUrl+"/";
+                    } else {
+                        layer.msg(res.msg, {icon: 2});
+                    }
+                }
+            })
+        });
+    }
+
     /* 鍒犻櫎 */
     function del(ids) {
         layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
@@ -822,6 +921,7 @@
             autoRow: true,
             filterable: true,
             remoteSearch: true,
+            clickClose: true,
             radio: true,
             remoteMethod: function (val, cb, show) {
                 $.ajax({
@@ -898,6 +998,7 @@
             autoRow: true,
             filterable: true,
             remoteSearch: true,
+            clickClose: true,
             radio: true,
             remoteMethod: function (val, cb, show) {
                 $.ajax({
@@ -909,7 +1010,8 @@
                     method: 'POST',
                     success: function (res) {
                         if (res.code === 200) {
-                            cb(res.data)
+                            // cb(res.data)
+                            cb([]);
                         } else {
                             cb([]);
                             layer.msg(res.msg, {icon: 2});
@@ -956,6 +1058,7 @@
             autoRow: true,
             filterable: true,
             remoteSearch: true,
+            clickClose: true,
             radio: true,
             remoteMethod: function (val, cb, show) {
                 $.ajax({

--
Gitblit v1.9.1