From cb3870820f63e6f7ba595d80dcbbfd3deae6fdf6 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 07 十一月 2023 17:49:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java |    5 
 src/main/webapp/static/js/priQuote/priQuote.js                        |  145 ++++++++++++++++++++
 src/main/webapp/views/priOnline2/priOnline.html                       |   39 ++++
 src/main/java/com/zy/crm/manager/controller/PlanController.java       |    5 
 src/main/resources/mapper/PriQuoteMapper.xml                          |    1 
 src/main/java/com/zy/crm/manager/controller/PriQuoteController.java   |    4 
 src/main/webapp/static/js/priOnline2/priOnline.js                     |  145 ++++++++++++++++++++
 src/main/java/com/zy/crm/manager/entity/PriQuote.java                 |    4 
 src/main/webapp/views/priQuote/priQuote.html                          |   28 ++++
 9 files changed, 366 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index ecd13fc..0cd26b0 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -306,11 +306,14 @@
     @RequestMapping(value = "/plan/view/file/auth")
 //    @ManagerAuth
     public R viewFile(@RequestParam("planId") String planId){
+        List<FileSaveExampleUtil.FileDTO> fileDTOS = new ArrayList<>();
+        if (Cools.isEmpty(planId)){
+            return R.ok(fileDTOS);
+        }
         int id = Integer.parseInt(planId);
 //        String savePath = "D:/crm/plan/file/"+id+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰�
         try{
             List<Integer> ids = planService.selectPlanUrlId(id);
-            List<FileSaveExampleUtil.FileDTO> fileDTOS = new ArrayList<>();
             for (int id2 : ids){
                 String url = planService.selectPlanUrlPlanIdUrl(id2);
                 String name = planService.selectPlanUrlPlanIdName(id2);
diff --git a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
index 8f72fd0..a78fcc4 100644
--- a/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
+++ b/src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
@@ -277,6 +277,7 @@
         users.add(userUp);
         priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPath(users, initNames, users.size())));
         priOnline2.setSettleSize(users.size());
+        priOnline2.setPlanId(plan.getId());
 
         //璁剧疆椤圭洰娴佺▼
         plan.setStep(2);
@@ -593,8 +594,8 @@
                 }
                 dto.setTime(DateUtils.convert(new Date()));
             } else if (dto.getStep().equals(priOnline2.getSettle() + 2)) {
-                if (priOnline2.getSettleSize().equals(4)){
-                    nextUserId = 0L;
+                if (Cools.isEmpty(dto.getUserId())){
+                    nextUserId= 0L;
                 }else {
                     nextUserId=dto.getUserId();
                 }
diff --git a/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java b/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java
index 8a25959..5bbb6fa 100644
--- a/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PriQuoteController.java
@@ -84,7 +84,7 @@
                   @RequestParam(required = false)String condition,
                   @RequestParam Map<String, Object> param){
         EntityWrapper<PriQuote> wrapper = new EntityWrapper<>();
-        wrapper.setSqlSelect("id,title,create_time as createTime,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,sheet_data as sheetData,user_id as userId,dept_id as deptId,settle,settle_msg as settleMsg,form,update_user_id as updateUserId,update_time as updateTime,in_order_num as inOrderNum,member_id as memberId,template");
+        wrapper.setSqlSelect("id,title,create_time as createTime,plan_id as planId,filepath,item_id as itemId,order_num as orderNum,template_name as templateName,sheet_data as sheetData,user_id as userId,dept_id as deptId,settle,settle_msg as settleMsg,form,update_user_id as updateUserId,update_time as updateTime,in_order_num as inOrderNum,member_id as memberId,template");
 //        wrapper.in("member_id", getUserRoleBelongsToUserId());
         excludeTrash(param);
         convert(param, wrapper);
@@ -169,6 +169,8 @@
         //妯℃澘
         priQuote.setTemplate(map.get("template").toString());
 
+        priQuote.setPlanId(priOnline2.getPlanId());
+
 
 
         //璁剧疆椤圭洰娴佺▼
diff --git a/src/main/java/com/zy/crm/manager/entity/PriQuote.java b/src/main/java/com/zy/crm/manager/entity/PriQuote.java
index 04ff459..7202cc5 100644
--- a/src/main/java/com/zy/crm/manager/entity/PriQuote.java
+++ b/src/main/java/com/zy/crm/manager/entity/PriQuote.java
@@ -113,6 +113,10 @@
     @TableField("host_id")
     private Long hostId;
 
+    @ApiModelProperty(value= "瑙勫垝鍗旾D")
+    @TableField("plan_id")
+    private Long planId;
+
     /**
      * 瀹℃牳杩涘害
      */
diff --git a/src/main/resources/mapper/PriQuoteMapper.xml b/src/main/resources/mapper/PriQuoteMapper.xml
index f5e1741..135c1bc 100644
--- a/src/main/resources/mapper/PriQuoteMapper.xml
+++ b/src/main/resources/mapper/PriQuoteMapper.xml
@@ -9,6 +9,7 @@
         <result column="sheet_data" property="sheetData" />
         <result column="create_time" property="createTime" />
         <result column="dept_id" property="deptId" />
+        <result column="plan_id" property="planId" />
         <result column="form" property="form" />
         <result column="settle" property="settle" />
         <result column="settle_msg" property="settleMsg" />
diff --git a/src/main/webapp/static/js/priOnline2/priOnline.js b/src/main/webapp/static/js/priOnline2/priOnline.js
index b2a6eb5..de4daa2 100644
--- a/src/main/webapp/static/js/priOnline2/priOnline.js
+++ b/src/main/webapp/static/js/priOnline2/priOnline.js
@@ -259,6 +259,96 @@
         }
     });
 
+    $("#data-btn-file2").on("click", (e) => {
+        $("#data-btn-upload").click()
+    });
+
+    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;
+        }
+
+        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;
+        }
+
+        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
+    });
+
     // 鐩戝惉琛屽伐鍏蜂簨浠�
     table.on('tool(priOnline)', function (obj) {
         var data = obj.data;
@@ -507,9 +597,64 @@
                     }
                 });
                 break;
+            case "uploadLink":
+                // 鎵撳紑寮圭獥
+                // 鏋勫缓甯﹀弬鏁扮殑鍐呭
+                console.log(data)
+                layer.open({
+                    type: 1,
+                    title: '涓婁紶鏂囦欢-'+data.itemId,
+                    content: $('#myModal')
+                });
+                // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶
+                $.ajax({
+                    url: '/plan/view/file/auth',
+                    data:{
+                        planId:data.itemId
+                    },
+                    success: function(response) {
+                        if (response.code==200){
+                            var targetTable = document.getElementById("data-btn-file3");
+                            targetTable.innerHTML = '';
+                            // 灏嗚幏鍙栧埌鐨勬枃浠跺垪琛ㄦ坊鍔犲埌鏂囦欢闃熷垪涓繘琛屾樉绀�
+                            response.data.forEach(function(file,index) {
+                                // 鍒涘缓tr鍏冪礌
+                                var tr = document.createElement("tr");
+                                tr.id = "upload-"+index;
+                                tr.innerHTML = '<td>' + file.name + '</td>'
+                                    + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>'
+                                    // + '<td><div class="layui-progress" lay-filter="progress-demo-' + index ,100 + '%'+ '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
+                                    + '<td>'+'宸插畬鎴�'+'</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>'
+                                    + '<a href="' + file.path + '" download class="layui-btn layui-btn-xs layui-btn-primary">涓嬭浇</a>'
+                                    + '</td>';
+                                // 灏唗r鍏冪礌娣诲姞鍒扮洰鏍噒able涓�
+                                targetTable.appendChild(tr);
+                            });
+                        }else {
+                            console.log('Failed to get file list error.');
+                        }
+                    },
+                    error: function() {
+                        console.log('Failed to get file list.');
+                    }
+                });
+                break;
         }
     });
 
+    // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞�
+    $('#data-btn-file3').on('click', 'a', function() {
+        console.log(this)
+        var downloadUrl = $(this).attr('href');
+        let url = getObjectUrl(downloadUrl)
+        layer.msg("鍑嗗涓嬭浇涓�", {icon: 1});
+        location.href = url
+        return false;  // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓�
+    });
+
     // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
diff --git a/src/main/webapp/static/js/priQuote/priQuote.js b/src/main/webapp/static/js/priQuote/priQuote.js
index 72ca174..5ef585b 100644
--- a/src/main/webapp/static/js/priQuote/priQuote.js
+++ b/src/main/webapp/static/js/priQuote/priQuote.js
@@ -149,6 +149,96 @@
         }
     });
 
+    $("#data-btn-file2").on("click", (e) => {
+        $("#data-btn-upload").click()
+    });
+
+    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;
+        }
+
+        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;
+        }
+
+        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
+    });
+
     // 鐩戝惉鎺掑簭浜嬩欢
     table.on('sort(priQuote)', function (obj) {
         var searchData = {};
@@ -362,9 +452,64 @@
                     })
                 });
                 break;
+            case "uploadLink":
+                // 鎵撳紑寮圭獥
+                // 鏋勫缓甯﹀弬鏁扮殑鍐呭
+                console.log(data)
+                layer.open({
+                    type: 1,
+                    title: '涓婁紶鏂囦欢-'+data.itemId,
+                    content: $('#myModal')
+                });
+                // 鑾峰彇璺緞涓嬬殑鏂囦欢鍒楄〃锛屼娇鐢� jQuery 鐨� ajax 鏂规硶
+                $.ajax({
+                    url: '/plan/view/file/auth',
+                    data:{
+                        planId:data.itemId
+                    },
+                    success: function(response) {
+                        if (response.code==200){
+                            var targetTable = document.getElementById("data-btn-file3");
+                            targetTable.innerHTML = '';
+                            // 灏嗚幏鍙栧埌鐨勬枃浠跺垪琛ㄦ坊鍔犲埌鏂囦欢闃熷垪涓繘琛屾樉绀�
+                            response.data.forEach(function(file,index) {
+                                // 鍒涘缓tr鍏冪礌
+                                var tr = document.createElement("tr");
+                                tr.id = "upload-"+index;
+                                tr.innerHTML = '<td>' + file.name + '</td>'
+                                    + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>'
+                                    // + '<td><div class="layui-progress" lay-filter="progress-demo-' + index ,100 + '%'+ '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
+                                    + '<td>'+'宸插畬鎴�'+'</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>'
+                                    + '<a href="' + file.path + '" download class="layui-btn layui-btn-xs layui-btn-primary">涓嬭浇</a>'
+                                    + '</td>';
+                                // 灏唗r鍏冪礌娣诲姞鍒扮洰鏍噒able涓�
+                                targetTable.appendChild(tr);
+                            });
+                        }else {
+                            console.log('Failed to get file list error.');
+                        }
+                    },
+                    error: function() {
+                        console.log('Failed to get file list.');
+                    }
+                });
+                break;
         }
     });
 
+    // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞�
+    $('#data-btn-file3').on('click', 'a', function() {
+        console.log(this)
+        var downloadUrl = $(this).attr('href');
+        let url = getObjectUrl(downloadUrl)
+        layer.msg("鍑嗗涓嬭浇涓�", {icon: 1});
+        location.href = url
+        return false;  // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓�
+    });
+
     // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
diff --git a/src/main/webapp/views/priOnline2/priOnline.html b/src/main/webapp/views/priOnline2/priOnline.html
index 72e86c3..3bee7d9 100644
--- a/src/main/webapp/views/priOnline2/priOnline.html
+++ b/src/main/webapp/views/priOnline2/priOnline.html
@@ -76,6 +76,31 @@
     <input type="button" onclick="upload()" value="涓婁紶"/>
 </form>
 
+<div id="myModal"  style="display: none;">
+    <div style="padding: 10px">
+        <div class="layui-upload">
+            <button type="button" class="layui-btn layui-btn-normal" id="data-btn-file2">閫夋嫨鏂囦欢</button><input id="data-btn-upload" class="layui-upload-file" type="file" accept="" name="file" multiple="">
+            <div class="layui-upload-list" style="max-width: 1000px;">
+                <table class="layui-table">
+                    <colgroup>
+                        <col>
+                        <col width="150">
+                        <col width="260">
+                        <col width="150">
+                    </colgroup>
+                    <thead>
+                    <tr><th>鏂囦欢鍚�</th>
+                        <th>澶у皬</th>
+                        <th>涓婁紶杩涘害</th>
+                        <th>鎿嶄綔</th>
+                    </tr></thead>
+                    <tbody id="data-btn-file3"></tbody>
+                </table>
+            </div>
+            <button type="button" class="layui-btn" id="testListAction">寮�濮嬩笂浼�</button>
+        </div>
+    </div>
+</div>
 
 <script type="text/html" id="operate">
     {{# if ((d.settle == 0) || (d.settle == 1 && d.settleSize == 4)){ }}
@@ -88,6 +113,7 @@
     {{# if (d.settle == 1 || (d.settle == 2 && d.settleSize == 4)){ }}
     <a class="layui-btn layui-btn-xs btn-edit" lay-event="approvalEnd">鍥為��瀹℃壒</a>
     {{# } }}
+    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="uploadLink">闄勪欢</a>
     <a class="layui-btn layui-btn-xs btn-edit" lay-event="check">鏍镐环</a>
     <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
     <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="upload">涓婁紶璇环</a>
@@ -115,6 +141,7 @@
 <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/aliyun-oss-sdk.min.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/priOnline2/priOnline.js" charset="utf-8"></script>
 <!-- 琛ㄥ崟寮圭獥 -->
 <script type="text/html" id="editDialog">
@@ -140,12 +167,12 @@
                     </div>
                 </div>
 
-                <div class="layui-form-item">
-                    <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" type="text" name="name" placeholder="鏍镐环鍚�" autocomplete="off">
-                    </div>
-                </div>
+<!--                <div class="layui-form-item">-->
+<!--                    <label class="layui-form-label layui-form-required">鏍镐环鍚�: </label>-->
+<!--                    <div class="layui-input-block">-->
+<!--                        <input class="layui-input" type="text" name="name" placeholder="鏍镐环鍚�" autocomplete="off">-->
+<!--                    </div>-->
+<!--                </div>-->
 
                 <div class="layui-form-item">
                     <label class="layui-form-label layui-form-required">妯℃澘: </label>
diff --git a/src/main/webapp/views/priQuote/priQuote.html b/src/main/webapp/views/priQuote/priQuote.html
index 20e9c86..fd6c2b9 100644
--- a/src/main/webapp/views/priQuote/priQuote.html
+++ b/src/main/webapp/views/priQuote/priQuote.html
@@ -92,6 +92,32 @@
     </div>
 </div>
 
+<div id="myModal"  style="display: none;">
+    <div style="padding: 10px">
+        <div class="layui-upload">
+            <button type="button" class="layui-btn layui-btn-normal" id="data-btn-file2">閫夋嫨鏂囦欢</button><input id="data-btn-upload" class="layui-upload-file" type="file" accept="" name="file" multiple="">
+            <div class="layui-upload-list" style="max-width: 1000px;">
+                <table class="layui-table">
+                    <colgroup>
+                        <col>
+                        <col width="150">
+                        <col width="260">
+                        <col width="150">
+                    </colgroup>
+                    <thead>
+                    <tr><th>鏂囦欢鍚�</th>
+                        <th>澶у皬</th>
+                        <th>涓婁紶杩涘害</th>
+                        <th>鎿嶄綔</th>
+                    </tr></thead>
+                    <tbody id="data-btn-file3"></tbody>
+                </table>
+            </div>
+            <button type="button" class="layui-btn" id="testListAction">寮�濮嬩笂浼�</button>
+        </div>
+    </div>
+</div>
+
 <script type="text/html" id="toolbar">
     <div class="layui-btn-container">
         <button class="layui-btn layui-btn-sm" lay-event="addBlank">鏂板缓鎶ヤ环鍗�</button>
@@ -106,6 +132,7 @@
     {{# if (d.settle == 2 || d.settle == 3) { }}
         <a class="layui-btn layui-btn-xs btn-edit" lay-event="refuse">鍥為��瀹℃壒</a>
     {{# } }}
+    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="uploadLink">闄勪欢</a>
     <a class="layui-btn layui-btn-xs btn-edit" lay-event="quote">鎶ヤ环</a>
     <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
     <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
@@ -116,6 +143,7 @@
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/aliyun-oss-sdk.min.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/layui/lay/modules/cascader/citys-data.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/priQuote/priQuote.js" charset="utf-8"></script>
 <!-- 琛ㄥ崟寮圭獥 -->

--
Gitblit v1.9.1