Browse Source

清单模板复制库

zeweizhong 5 years ago
parent
commit
2a29a10985

+ 12 - 0
modules/bills_template_lib/controllers/bills_template_controller.js

@@ -151,6 +151,18 @@ class BillsTemplateController extends BaseController {
         }
         response.redirect(request.headers.referer);
     }
+
+    async copyLib(req, res) {
+        try {
+            const data = JSON.parse(req.body.data);
+            const userName = req.session.managerData.username;
+            await billsTemplateFacade.copyLib(data.libID, data.name, userName);
+            res.json({error: 0, data: null, message: 'success'})
+        } catch (err) {
+            console.log(err);
+            res.json({error: 1, data: null, message: 'fail'});
+        }
+    }
 }
 
 export default BillsTemplateController;

+ 18 - 0
modules/bills_template_lib/facade/bills_template_facade.js

@@ -11,6 +11,7 @@ let billTemplateItemsModel = mongoose.model("std_bills_template_items");
 
 let billTemplate={
     addLib:addLib,
+    copyLib: copyLib,
     getAllLibs:getAllLibs,
     getLibByID:getLibByID,
     saveLib:saveLib,
@@ -95,5 +96,22 @@ async function addLib(data){
     }
 }
 
+async function copyLib(libID, name, userName) {
+    const lib = await billTemplateLibModel.findOne({ID: libID}, '-_id').lean();
+    const libItems = await billTemplateItemsModel.find({libID}, '-_id').lean();
+    lib.creator = userName;
+    lib.createDate = Date.now();
+    lib.recentOpr = [{operator: userName, operator: moment(lib.createDate).format('YYYY-MM-D HH:mm:ss')}];
+    lib.name = name;
+    lib.ID = uuidV1();
+    await billTemplateLibModel.create(lib);
+    libItems.forEach(item => {
+        item.libID = lib.ID;
+    });
+    if (libItems.length) {
+        await billTemplateItemsModel.insertMany(libItems);
+    }
+}
+
 
 export default  billTemplate

+ 1 - 0
modules/bills_template_lib/routes/bills_template_routes.js

@@ -16,6 +16,7 @@ module.exports =function (app) {
     templateRouter.post("/saveLib", billsTemplateController.auth, billsTemplateController.init, billsTemplateController.saveLib);
     templateRouter.post("/deleteLibByID", billsTemplateController.auth, billsTemplateController.init, billsTemplateController.deleteLibByID);
     templateRouter.post("/add-lib", billsTemplateController.auth, billsTemplateController.init, billsTemplateController.addLib);
+    templateRouter.post("/copyLib", billsTemplateController.auth, billsTemplateController.init, billsTemplateController.copyLib);
     templateRouter.post("/updateBillsTemplateItem/:libID", billsTemplateController.auth, billsTemplateController.init, billsTemplateController.updateBillsTemplateItem);
     app.use("/billsTemplate", templateRouter);
 

+ 38 - 1
web/maintain/bill_template_lib/html/main.html

@@ -19,7 +19,15 @@
                 <div class="col-md-8">
                     <div class="warp-p2 mt-3">
                         <table class="table table-hover table-bordered">
-                            <thead><tr><th>清单模板名称</th><th width="160">编办</th><th width="160">添加时间</th><th width="90">操作</th></tr></thead>
+                            <thead>
+                                <tr>
+                                    <th>清单模板名称</th>
+                                    <th width="160">编办</th>
+                                    <th width="160">添加时间</th>
+                                    <th width="60">操作</th>
+                                    <th width="60">复制</th>
+                                </tr>
+                            </thead>
                             <tbody id="showArea">
                             <% for(let lib of templateLibs){ %>
                             <tr class="libTr">
@@ -30,6 +38,9 @@
                                     <a href="javacript:void(0);" onclick='getTemplateLib("<%= lib.ID%>")' title="编辑"><i class="fa fa-pencil-square-o"></i></a>
                                     <a href="javacript:void(0);" onclick='showDeleteModal("<%= lib.ID%>")'class="text-danger" title="删除"><i class="fa fa-remove"></i></a>
                                 </td>
+                                <td>
+                                    <a href="javascript:void(0);" onclick="showCopyModal('<%= lib.ID %>')" class="btn btn-secondary btn-sm copy-data" title="复制数据"><i class="fa fa-clone"></i>复制</a>
+                                </td>
                             </tr>
                             <% } %>
                             </tbody>
@@ -124,5 +135,31 @@
     </div>
 </div>
 
+<!--弹出复制-->
+<div class="modal fade" id="copy" data-backdrop="static" style="display: none;" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">复制清单模板</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">×</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class="form-group">
+                    <label>清单模板名称</label>
+                    <input id="copyName" name="name" class="form-control" placeholder="输入清单模板名称" type="text" autofocus>
+                    <small class="form-text text-danger" id="copyNameError" style="display: none">请输入模板名称。</small>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <a id="copyTemplate"  href="javascript:void(0);" class="btn btn-primary">复制</a>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="/public/web/PerfectLoad.js"></script>
 <script src="/web/maintain/bills_lib/scripts/bills_lib_ajax.js"></script>
 <script type="text/javascript" src="/web/maintain/bill_template_lib/js/bills_template.js"></script>

+ 22 - 0
web/maintain/bill_template_lib/js/bills_template.js

@@ -52,6 +52,23 @@ $(document).ready(function() {
            }
         }
     });
+
+    //复制库
+    $('#copyTemplate').click(function () {
+        const libID = $('#libID').val();
+        const name = $('#copyName').val();
+        if (!name) {
+            $('#copyNameError').show();
+            return;
+        }
+        $.bootstrapLoading.start();
+        CommonAjax.post('/billsTemplate/copyLib', {libID, name}, function () {
+            $.bootstrapLoading.end();
+            window.location.reload();
+        }, function () {
+            $.bootstrapLoading.end();
+        });
+    });
 });
 
 function getTemplateLib (ID) {
@@ -66,4 +83,9 @@ function showDeleteModal(ID){
     $("#libID_del").val(ID);
     $("#delCount").val(0);
     $("#del").modal({show:true});
+}
+
+function showCopyModal(ID) {
+    $('#libID').val(ID);
+    $('#copy').modal('show');
 }