Преглед изворни кода

feat: 按地区导出信息价

vian пре 1 година
родитељ
комит
f0d2ed0bc2

+ 2 - 1
modules/price_info_lib/controllers/index.js

@@ -315,8 +315,9 @@ class PriceInfoController extends BaseController {
 
     async exportPriceData(request, response) {
         const libID = request.query.libID;
+        const areaID = request.query.areaID;
         try {
-            const excelData = await facade.exportExcelData(libID, '珠海市-珠海市');
+            const excelData = await facade.exportExcelData(libID, areaID);
             const buffer = excel.build([{ name: "信息价主表", data: excelData }]);
             const filePath = './public/exportInfo.xlsx';
             fs.writeFileSync(filePath, buffer, 'binary');

+ 7 - 3
modules/price_info_lib/facade/index.js

@@ -631,12 +631,16 @@ async function calcPriceIndex(libID, period, areaID, compilationID) {
     return message;
 }
 
-async function exportExcelData(libID, areaName) {
-    const area = await priceInfoAreaModel.findOne({ name: areaName }).lean();
+async function exportExcelData(libID, areaID) {
+    console.log(`libID`);
+    console.log(libID);
+    console.log(`areaID`);
+    console.log(areaID);
+    const area = await priceInfoAreaModel.findOne({ ID: areaID }).lean();
     if (!area) {
         return [];
     }
-    const priceItems = await priceInfoItemModel.find({ libID, areaID: area.ID }).lean();
+    const priceItems = await priceInfoItemModel.find({ libID, areaID }).lean();
     // 整理数据
     let priceData = [];
     for (const tmp of priceItems) {

+ 29 - 0
web/maintain/price_info_lib/html/main.html

@@ -236,6 +236,35 @@
     </div>
 </div>
 
+<!--弹出导出数据-->
+<div class="modal fade" id="export" 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">
+                <form>
+                    <div id="export-area" class="form-group" style="margin-bottom: 10px !important;">
+                        <div style="margin-bottom: 4px;">地区</div>
+                        <select id="export-parent-area" class="form-control-sm" name="parentArea" style="width: 100px;">
+                        </select>
+                        <select id="export-sub-area" class="form-control-sm" name="subArea" style="width: 100px">
+                        </select>
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-primary" id="export-confirm">确定导出</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+
 <script src="/public/web/lock_util.js"></script>
 <script src="/public/web/PerfectLoad.js"></script>
 <script src="/public/constants/price_info_constant.js"></script>

+ 27 - 5
web/maintain/price_info_lib/js/main.js

@@ -161,11 +161,6 @@ async function handleImportClick(libID, type) {
     }
 }
 
-// 点击导出按钮
-function handleExportClick(libID) {
-    window.location.href = '/priceInfo/export?libID=' + libID;
-}
-
 // 导入确认
 function handleImportConfirm() {
     $.bootstrapLoading.start();
@@ -225,6 +220,31 @@ function handleImportConfirm() {
     }
 }
 
+
+// 点击导出按钮
+async function handleExportClick(libID) {
+    try {
+        setCurLib(libID);
+        $('#export').modal('show');
+        const areaMap = await getAreaMap();
+        setAreaOption($('#export-parent-area'), $('#export-sub-area'), areaMap);
+    } catch (error) {
+        alert(error.message);
+    }
+}
+
+// 导出确认
+function handleExportConfirm() {
+    debugger;
+    const areaID = getAreaIDByOption($('#export-parent-area'), $('#export-sub-area'));
+    if (!areaID) {
+        alert('请选择地区!');
+        return;
+    }
+    $('#export').modal('hide');
+    window.location.href = `/priceInfo/export?libID=${curLib.id}&areaID=${areaID}`;
+}
+
 const { ProcessStatus, CRAWL_LOG_KEY } = window.PRICE_INFO_CONST;
 
 const CHECKING_TIME = 5000;
@@ -331,6 +351,8 @@ $(document).ready(function () {
     $('#delete').click(handleDeleteConfirm);
     // 爬取数据
     $('#crawl-confirm').click(throttle(handleCrawlConfirm, throttleTime));
+    // 导出excel
+    $('#export-confirm').click(throttle(handleExportConfirm, throttleTime));
     // 导入excel
     $('#import-confirm').click(throttle(handleImportConfirm, throttleTime));