Explorar el Código

Merge branch 'master' into 分摊功能

zhangweicheng hace 5 años
padre
commit
581f34dfc7

+ 1 - 1
modules/main/middleware/index.js

@@ -16,7 +16,7 @@ import UserModel from '../../../modules/users/models/user_model';
 
 async function rationNumberChecking(req, res, next) {
     if (req.session.systemSetting) {
-        let type = req.session.compilationVersion.indexOf("免费") == -1 ? "professional" : "normal";
+        let type = req.session.compilationVersion.indexOf("学习") == -1 ? "professional" : "normal";
         let data = req.body.data;
         if (typeof data === 'object') {
             data = JSON.stringify(data);

+ 1 - 1
modules/pm/controllers/pm_controller.js

@@ -324,7 +324,7 @@ module.exports = {
         let absoluteUrl = compilationData.overWriteUrl ? request.app.locals.rootDir + compilationData.overWriteUrl : request.app.locals.rootDir;
         let overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilationData.overWriteUrl : null;
         //欢迎页显示控制
-        let [isShow,context,showTime] = await pm_facade.getWelcomeInfo(sessionCompilation._id,request.session.sessionUser,request.session.compilationVersion.includes('免费'));
+        let [isShow,context,showTime] = await pm_facade.getWelcomeInfo(sessionCompilation._id,request.session.sessionUser,request.session.compilationVersion.includes('学习'));
         const unreadShareList = await pm_facade.getUnreadShareListByCompilation(request.session.sessionUser.id, sessionCompilation._id);
         let renderData = {
             unreadShareList: JSON.stringify(unreadShareList),

+ 2 - 2
modules/pm/facade/pm_facade.js

@@ -2132,13 +2132,13 @@ async function getSystemSetting() {
 async function isTenderOverrun(tenderCount, session) {
     const userID = session.sessionUser.id;
     const compilation = session.sessionCompilation._id;
-    const compilationVersion = session.compilationVersion || '免费';
+    const compilationVersion = session.compilationVersion || '学习';
     let systemSetting = session.systemSetting || (session.systemSetting = await getSystemSetting());
     // 这种情况只有在刚上线此功能时会出现,不考虑时间差
     if (!systemSetting) {
         return false;
     }
-    const type = compilationVersion.includes('免费') ? 'normal' : 'professional';
+    const type = compilationVersion.includes('学习') ? 'normal' : 'professional';
     const limit = systemSetting[type].project;
     const curTenderCount = await projectModel.count({userID, compilation, projType: 'Tender', '$or':[{deleteInfo: null}, {'deleteInfo.completeDeleted': false}]});
     return tenderCount + curTenderCount > limit;

+ 1 - 1
modules/users/models/user_model.js

@@ -394,7 +394,7 @@ class UserModel extends BaseModel {
         if (!sessionVersion) {
             return true;
         }
-        return sessionVersion.indexOf('免费') >= 0;
+        return sessionVersion.indexOf('学习') >= 0;
     }
 
     /*

+ 7 - 8
public/web/scMathUtil.js

@@ -173,21 +173,20 @@ let scMathUtil = {
     roundForObj:function(obj,decimal){
         let me = this;
         let value;
+        if(obj === undefined || obj === null) return 0;
+        let n = Math.pow(10,decimal);
         if(me.isNumber(obj)){
-            value = me.roundTo(obj,-decimal)
+          value = Math.round(obj * n) / n;
+          //value = me.roundTo(obj,-decimal)
         }else {
-            value = me.roundTo(Number(obj),-decimal);
+          value = Math.round(Number(obj) * n) / n;
+          //value = me.roundTo(Number(obj),-decimal);
         }
         return value
     },
     roundToString:function(obj,decimal){
         let me = this;
-        let value;
-        if(me.isNumber(obj)){
-            value = me.roundTo(obj,-decimal)
-        }else {
-            value = me.roundTo(Number(obj),-decimal);
-        }
+        let value = me.roundForObj(obj,decimal);
         return value.toFixed(decimal);
     },
     isNumOrFormula:function (text) {

+ 8 - 0
web/building_saas/main/js/models/bills.js

@@ -550,6 +550,14 @@ var Bills = {
                 return false;
             }
         };
+        bills.prototype.isConstructionInstall = function (node) {//判读是否属于第一部分建筑安装工程费CONSTRUCTION_INSTALL_FEE
+          let rootNode = this.getRootNode(node);
+           if(this.flagEquals(rootNode,fixedFlag.CONSTRUCTION_INSTALL_FEE)){
+               return true;
+           }else {
+               return false;
+           }
+       };
         bills.prototype.isFXorBX=function (node) {//是分项或者补项
             if(node.sourceType == projectObj.project.Bills.getSourceType()){
                 return   node.data.type == billType.FX || node.data.type == billType.BX;

+ 1 - 1
web/building_saas/main/js/models/project_glj.js

@@ -956,7 +956,7 @@ ProjectGLJ.prototype.calcEachFreightOrPrice = function (temp,type,priceMap,needU
           let exp = expList.length == 0?`${temp.otherFee}x${temp.weightCoe}`:`((${expList.join("+")})+${temp.otherFee})x${temp.weightCoe}`
           let ndoc = {};
           if(temp.unitFreight != sum) ndoc['unitFreight'] = sum;
-          if(temp.exp != exp) ndoc['exp'] = exp;
+          ndoc['exp'] = exp;
           if(temp.heightFee != heightFee) ndoc['heightFee'] = heightFee;
           if(!_.isEmpty(ndoc)) return {ID:temp.ID,doc:ndoc};
         }

+ 0 - 2
web/building_saas/main/js/views/electrovalence_view.js

@@ -43,8 +43,6 @@ let electrovalenceObj = {
         this.sheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onElectrovalenceSelectionChange);
         this.sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onElectrovalenceValueChange);
         this.sheet.bind(GC.Spread.Sheets.Events.EditStarting,this.onElectrovalenceEditStarting);
-    /*
-        ;*/
         this.sheet.name('electrovalence_sheet');
         if(projectReadOnly){
             disableSpread(this.spread);

+ 4 - 0
web/building_saas/main/js/views/glj_view.js

@@ -632,6 +632,8 @@ var gljOprObj = {
         return codeMap;
     },
     initRationTree: function (init,codeMap) {
+        this.sheet.suspendPaint();
+        this.sheet.suspendEvent();
         this.sheet.setRowCount(this.sheetData.length >30?this.sheetData.length:30);
         for (var i = 0; i < this.sheetData.length; i++) {
             let options = this.getCodeOptions(this.sheetData[i],codeMap);
@@ -643,6 +645,8 @@ var gljOprObj = {
                 }
             }
         }
+        this.sheet.resumeEvent();
+        this.sheet.resumePaint(); 
     },
     getCodeOptions:function (recode,codeMap) {
         let options = [];

+ 30 - 28
web/building_saas/main/js/views/importBills.js

@@ -12,12 +12,12 @@
 * 清单导入模块,前端导入excel,进行数据提取,用lz-string进行压缩上传处理
 * */
 
-const importBills = (function(){
+const importBills = (function () {
     //单元格数据是否存在
-    function _isDef(data){
+    function _isDef(data) {
         return typeof data !== 'undefined' && data !== null && data !== '';
     }
-    
+
     //去除转义字符
     function _deESC(data) {
         return _isDef(data) ? data.toString().replace(/[\r,\n,\s,\t]/g, '') : data;
@@ -39,11 +39,11 @@ const importBills = (function(){
         qdsl: 1 //清单示例
     };
     //获取列字段对应
-    function getColMapping(type){
+    function getColMapping(type) {
         if (type === 0) {   //工程量清单
-            return {code: 0, name: 1, unit: 2, quantity: 4};
+            return { code: 0, name: 1, unit: 2, quantity: 4 };
         } else {    //清单示例表
-            return {code: 0, name: 1, unit: 2, quantity: 3};
+            return { code: 0, name: 1, unit: 2, quantity: 3 };
         }
     }
     function isGCLHead(dataRow) {
@@ -76,11 +76,11 @@ const importBills = (function(){
                 let existsRoot = findLast(rst, x => x.name === name && x.depth === 0);
                 if (!existsRoot) {
                     let root = {
-                        ID: uuid.v1(), 
-                        NextSiblingID: -1, 
-                        ParentID: -1, 
-                        name: name, 
-                        depth: 0, 
+                        ID: uuid.v1(),
+                        NextSiblingID: -1,
+                        ParentID: -1,
+                        name: name,
+                        depth: 0,
                         parent: null,
                         unitPriceAnalysis: 1
                     };
@@ -104,13 +104,13 @@ const importBills = (function(){
             code = String(code);
             let depth = getDepth(code);
             let data = {
-                ID: uuid.v1(), 
-                NextSiblingID: -1, 
-                ParentID: -1, 
-                code: code, 
-                name: name, 
-                unit: unit, 
-                quantity: quantity, 
+                ID: uuid.v1(),
+                NextSiblingID: -1,
+                ParentID: -1,
+                code: code,
+                name: name,
+                unit: unit,
+                quantity: quantity,
                 depth: depth,
                 unitPriceAnalysis: 1,
             };
@@ -163,7 +163,7 @@ const importBills = (function(){
 
     //提取清单示例数据
     function extractSLDatas(sheetData) {
-        let colMapping = {code: 0, name: 1, unit: 2, quantity: 3};
+        let colMapping = { code: 0, name: 1, unit: 2, quantity: 3 };
         let dataTable = sheetData.data.dataTable,
             rowCount = sheetData.rowCount;
         let rst = [];
@@ -174,13 +174,15 @@ const importBills = (function(){
                 unit = dataTable[row][colMapping.unit] ? dataTable[row][colMapping.unit].value : null,
                 quantity = dataTable[row][colMapping.quantity] ? dataTable[row][colMapping.quantity].value : null;
             if (!code) {    //没有编号的数据,名称必须为:清单 第xx章,认为新的表根节点
-                if (name && /清单 第\d+章/.test(name)) {
+                const reg = /清单\s+第[^章]+章/;
+                //if (name && /清单 第\d+章/.test(name)) {
+                if (name && reg.test(name)) {
                     curRoot = {
-                        code: null, 
-                        name: name, 
-                        ID: uuid.v1(), 
-                        ParentID: -1, 
-                        NextSiblingID: -1, 
+                        code: null,
+                        name: name,
+                        ID: uuid.v1(),
+                        ParentID: -1,
+                        NextSiblingID: -1,
                         parent: null,
                         unitPriceAnalysis: 1
                     };
@@ -224,7 +226,7 @@ const importBills = (function(){
         console.log(rst);
         return rst;
     }
-    
+
     function extactDatas(sheets) {
         let rst = [];
         let curSheetType = null;
@@ -264,10 +266,10 @@ const importBills = (function(){
         //清单 第100章 总则清单需要加上固定ID
         let oneHundredBills = rootDatas.find(data => data.name && /第100章/.test(data.name));
         if (oneHundredBills) {
-            oneHundredBills.flags = [{flag: fixedFlag.ONE_HUNDRED_BILLS, fieldName: 'fixed'}];
+            oneHundredBills.flags = [{ flag: fixedFlag.ONE_HUNDRED_BILLS, fieldName: 'fixed' }];
         }
         return rst;
     }
 
-    return {extactDatas}
+    return { extactDatas }
 })();

+ 3 - 2
web/building_saas/main/js/views/material_calc_view.js

@@ -56,7 +56,7 @@ materialCalcObj = {
         },
          getText:{
           forExp:function (item) {
-             return _.isEmpty(item.exp)?materialCalcObj.getFreightEXP(item):item.exp;
+             return item.exp&&item.exp!=""?item.exp:materialCalcObj.getFreightEXP(item);
           }
       }
 
@@ -366,6 +366,7 @@ materialCalcObj = {
                     if(freigth.conveyance == "自办运输") args.cancel = true;
                 }
                 if(dataCode == "unitFreight"){
+                    if(freigth.conveyance == "自办运输") args.cancel = true;
                     if(freigth.rations && freigth.rations.length > 0) args.cancel = true;
                     if(gljUtil.isDef(freigth.materialType) && freigth.materialType != "") args.cancel = true;//当材料类型有值时,说明是内蒙古计算,运费是通过运距算出来的,不能编辑
                 }
@@ -466,7 +467,7 @@ materialCalcObj = {
       //(单位运价×(1+运距增加率%)+装卸费单价×装卸次数+其它费用)×单位毛重×加权系数
       if(item.conveyance == "自办运输"){
         let t = projectObj.project.projectGLJ.calcEachFreightOrPrice(item,"freight",{},needUpdate);
-        return t.doc.exp;
+        if(t) return t.doc.exp;
       }
 
       //(单位运价×km运距×(1+运距增加率%)+装卸费单价×装卸次数+其它费用)×单位毛重×加权系数

+ 22 - 17
web/building_saas/main/js/views/project_glj_view.js

@@ -662,6 +662,7 @@ projectGljObject={
 
     },
     showProjectGljData:function () {
+        let me = this;
         this.projectGljSpread.setActiveSheetIndex(0);
         let sel = this.projectGljSheet.getSelections()[0];
         let oldData = sel.row<this.projectGljSheetData.length?this.projectGljSheetData[sel.row]:"";
@@ -674,10 +675,12 @@ projectGljObject={
         }
         this.projectGljSheetData = projectGljSheetData;
         this.projectGljSheet.setRowCount(this.projectGljSheetData.length);
-        sheetCommonObj.showData(this.projectGljSheet, this.projectGljSetting,this.projectGljSheetData);
-        //this.projectGljSheet.setRowCount(this.projectGljSheetData.length);
-        sel.row = oldData?_.findIndex(this.projectGljSheetData,{'id':oldData.id}):0;
-        this.projectGljSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
+        sheetCommonObj.showData(this.projectGljSheet, this.projectGljSetting,this.projectGljSheetData,null,function(){
+          //this.projectGljSheet.setRowCount(this.projectGljSheetData.length);
+          sel.row = oldData?_.findIndex(me.projectGljSheetData,{'id':oldData.id}):0;
+          me.projectGljSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
+        });
+        
     },
     showMaterialTreeData:function () {
         this.projectGljSpread.setActiveSheetIndex(1);
@@ -692,22 +695,24 @@ projectGljObject={
         this.materialTreeSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
         this.materialTreeController.setTreeSelected(this.materialTree.items[sel.row==-1?0:sel.row]);
     },
-    refreshDataSheet:function () {
+    refreshDataSheet:function (refresh) {//refresh = true 的时候不用更新表头信息
         let me = projectGljObject;
         if(!me.projectGljSpread)  return;
-        let quantityCol = _.findIndex(me.projectGljSetting.header,function (header) {
+        if(!refresh){
+          let quantityCol = _.findIndex(me.projectGljSetting.header,function (header) {
             return header.dataCode ==  'quantity'|| header.dataCode == 'techQuantity' || header.dataCode =='subdivisionQuantity';
-        });
-        if(me.displayType == filterType.FBFX){//分部分项人材机,将“总消耗量”替换显示为“分部分项总消耗量”。
-            me.projectGljSetting.header[quantityCol].dataCode = 'subdivisionQuantity';
-            if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "分部分项总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
-        }else if(me.displayType == filterType.TECH) {//措施项目人材机,将“总消耗量”替换显示为“措施项目总消耗量”。
-            me.projectGljSetting.header[quantityCol].dataCode = 'techQuantity';
-            if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "措施项目总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
-        }else {
-            me.projectGljSetting.header[quantityCol].dataCode = 'quantity';
-            if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
-        }
+          });
+          if(me.displayType == filterType.FBFX){//分部分项人材机,将“总消耗量”替换显示为“分部分项总消耗量”。
+              me.projectGljSetting.header[quantityCol].dataCode = 'subdivisionQuantity';
+              if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "分部分项总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
+          }else if(me.displayType == filterType.TECH) {//措施项目人材机,将“总消耗量”替换显示为“措施项目总消耗量”。
+              me.projectGljSetting.header[quantityCol].dataCode = 'techQuantity';
+              if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "措施项目总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
+          }else {
+              me.projectGljSetting.header[quantityCol].dataCode = 'quantity';
+              if(me.projectGljSheet) me.projectGljSheet.setValue(0, quantityCol, "总消耗量", GC.Spread.Sheets.SheetArea.colHeader);
+          }
+        } 
         if(me.displayType == filterType.SCHZ){//三材汇总树节点
             me.showMaterialTreeData();
         }else {

+ 2 - 2
web/building_saas/pm/js/pm_share.js

@@ -797,8 +797,8 @@ const pmShare = (function () {
                       return !(selected && selected.data.allowCopy && selected.data.projType === projectType.project);
                   },
                   callback: function (key, opt) {
-                      if($(".p-title").text().includes('免费')){
-                        hintBox.versionBox('此功能仅在专业版中提供,免费公用版可选择单个分段进行拷贝');
+                      if($(".p-title").text().includes('学习')){
+                        hintBox.versionBox('此功能仅在专业版中提供,学习版可选择单个分段进行拷贝');
                         return;
                       }
                       copyContructionProject(tree.selected);

+ 2 - 2
web/building_saas/report/js/rpt_main.js

@@ -938,7 +938,7 @@ let rptControlObj = {
     },
     checkAndGetExcel: function () {
         if (zTreeOprObj.isFreeUser) {
-            hintBox.versionBox('对不起,您当前使用的是免费公用版,不提供导出、打印报表功能,请联系我们的客服人员。');
+            hintBox.versionBox('对不起,您当前使用的是学习版,不提供导出、打印报表功能,请联系我们的客服人员。');
             return;
         }
         if (zTreeOprObj.treeObj) {
@@ -1040,7 +1040,7 @@ let rptControlObj = {
     getPDFPre: function () {
         let me = rptControlObj;
         if (zTreeOprObj.isFreeUser) {
-            hintBox.versionBox('对不起,您当前使用的是免费公用版,不提供导出、打印报表功能,请联系我们的客服人员。');
+            hintBox.versionBox('对不起,您当前使用的是学习公用版,不提供导出、打印报表功能,请联系我们的客服人员。');
             return;
         }
         if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {

+ 1 - 1
web/building_saas/report/js/rpt_print.js

@@ -5,7 +5,7 @@
 let rptPrintHelper = {
     preview: function () {
         if (zTreeOprObj.isFreeUser) {
-            hintBox.versionBox('对不起,您当前使用的是免费公用版,不提供导出、打印报表功能,请联系我们的客服人员。');
+            hintBox.versionBox('对不起,您当前使用的是学习版,不提供导出、打印报表功能,请联系我们的客服人员。');
             return;
         }
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {

+ 1 - 1
web/building_saas/unit_price_file/index.html

@@ -61,7 +61,7 @@
                 <strong id="message"></strong>-
             </div>
         </div>
-        <nav class="navbar navbar-expand-lg p-0 d-flex <%= versionName.includes('免费') ? 'free-version' : 'pro-version' %>">
+        <nav class="navbar navbar-expand-lg p-0 d-flex <%= versionName.includes('学习') ? 'free-version' : 'pro-version' %>">
           <div class="unit_price_header header-logo ">
             <h5>单价文件编辑器</h5>
           </div>

+ 1 - 1
web/common/components/share/index.js

@@ -480,7 +480,7 @@ const SHARE_TO = (() => {
             $('#share-hint').text('');
             const { isFree, sharedUsers, recentUsers, contacts } = await getInitalData(projectID);
             if (isFree) {
-                hintBox.versionBox('此功能仅在专业版中提供,免费公用版可选择单个分段进行分享。');
+                hintBox.versionBox('此功能仅在专业版中提供,学习版可选择单个分段进行分享。');
             } else {
                 curSharedUsers = sharedUsers;
                 initSharedView(sharedUsers);

+ 1 - 1
web/common/html/header.html

@@ -65,7 +65,7 @@
                     <!--<a class="dropdown-item" href="/web/common/html/pdfViewer.html?type=userGuide" target="_blank">用户手册</a>
                     <a class="dropdown-item" href="/web/common/html/pdfViewer.html?type=upgradeGuide" target="_blank">升级说明</a>-->
                     <a class="dropdown-item" href="http://doc.zhzdwd.com/docs/yh_yhsc/yh_yhsc-1bup3dm7iacsg" target="_blank">用户手册</a>
-                    <a class="dropdown-item" href="/public/share/upgradeGuide/upgradeGuide.pdf" target="_blank">升级说明</a>
+                    <a class="dropdown-item" href="http://doc.zhzdwd.com/docs/yanghuUpdate/yanghuUpdate-1c67pn4g0dlkq" target="_blank">升级说明</a>
                     <a class="dropdown-item" href="https://smartcost.com.cn/" target="_blank">纵横官网</a>
                     <!--  <a class="dropdown-item" href="#">动画教程</a>-->
                     <a id="customerService" class="dropdown-item" href="javascript:void(0);">联系客服</a>

+ 25 - 1
web/over_write/js/hunan_2020.js

@@ -406,10 +406,34 @@ if (typeof baseFigureTemplate !== 'undefined') {
 
 if (typeof projectObj !== 'undefined') {
   projectObj.isInsertEquipmentVisable = function (selected) {
-      return true;   //湖南不管是预算或者工程量清单,都显示   
+    if(projectObj.project.property.valuationType =='bill' ){//预算项目中,右键“插入设备”,仅在第一部分中显示。
+      return projectObj.project.Bills.isConstructionInstall(selected); 
+    }
+    return true;   //湖南不管是预算或者工程量清单,都显示   
+  }
+}
+
+//湖南工地转移费率值修改特殊处理
+if (typeof feeRateObject !== 'undefined') {
+  feeRateObject.feeRateSpecialHandle = function (subRate, value) {
+      let result = {};
+      if (subRate.name == "工地转移(km)" && value && value < 50) {//工地转移50km以内按50km算
+          result.valueKey = "50";
+          result.value = scMathUtil.roundForObj(value, getDecimal("feeRate"));//设置显示的节点值
+      }
+      return result;
   }
 }
 
+if (typeof electrovalenceObj !== 'undefined') {
+  electrovalenceObj.options = [
+      { code: "3005003",name:"电网电",specs:"",unit:"kW·h",type:"201"},
+      { code: "8017001", name: "15kW以内柴油发电机组", specs: "12GF1", unit: "台班", type: "301" },
+      { code: "8017002", name: "30kW以内柴油发电机组", specs: "30GFY-2", unit: "台班", type: "301" },
+      { code: "8017003", name: "50kW以内柴油发电机组", specs: "50GFY-2", unit: "台班", type: "301" }
+  ]
+}
+
 // CommonJS module
 if (typeof module !== 'undefined' && !module.nodeType) { // 防止module是前端的一个html标签
     module.exports = {

+ 0 - 14
web/users/html/login-sms.html

@@ -56,20 +56,6 @@
                 </div>
                 <div class="modal-body">
                     <div class="row" id="version-area">
-                        <!--<div class="col-sm-6">-->
-                        <!--<div class="card card-block">-->
-                        <!--<h3 class="card-title">重庆版免费版</h3>-->
-                        <!--<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>-->
-                        <!--<a class="btn btn-primary" href="/boot/1">开始使用</a>-->
-                        <!--</div>-->
-                        <!--</div>-->
-                        <!--<div class="col-sm-6">-->
-                        <!--<div class="card card-block">-->
-                        <!--<h3 class="card-title">广东版免费版</h3>-->
-                        <!--<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>-->
-                        <!--<a class="btn btn-primary" href="/boot/2">开始使用</a>-->
-                        <!--</div>-->
-                        <!--</div>-->
                     </div>
                 </div>
             </div>

+ 0 - 14
web/users/html/login.html

@@ -72,20 +72,6 @@
                 </div>
                 <div class="modal-body">
                     <div class="row" id="version-area">
-                        <!--<div class="col-sm-6 mb-3">-->
-                            <!--<div class="card card-block">-->
-                                <!--<h3 class="card-title">重庆版免费版</h3>-->
-                                <!--<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>-->
-                                <!--<a class="btn btn-primary" href="/boot/1">开始使用</a>-->
-                            <!--</div>-->
-                        <!--</div>-->
-                        <!--<div class="col-sm-6">-->
-                            <!--<div class="card card-block">-->
-                                <!--<h3 class="card-title">广东版免费版</h3>-->
-                                <!--<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>-->
-                                <!--<a class="btn btn-primary" href="/boot/2">开始使用</a>-->
-                            <!--</div>-->
-                        <!--</div>-->
                     </div>
                 </div>
             </div>