Jelajahi Sumber

Merge branch 'master' of http://8.137.121.180:10880/longping/subject_gxj

zhongwei 3 bulan lalu
induk
melakukan
50c8358d53
18 mengubah file dengan 427 tambahan dan 288 penghapusan
  1. 0 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  2. 1 73
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  3. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.java
  4. 29 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml
  5. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java
  6. 5 13
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java
  7. 6 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java
  8. 14 14
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java
  9. 1 1
      projects/src/main/java/com/rtrh/projects/web/util/ExcelStyleUtil.java
  10. 53 25
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp
  11. 52 30
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp
  12. 30 16
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end.jsp
  13. 27 14
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end_sum.jsp
  14. 50 25
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp
  15. 50 25
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp
  16. 46 24
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp
  17. 46 25
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp
  18. 11 1
      projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp

+ 0 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java

@@ -65,8 +65,6 @@ public interface SubInfoMapper {
 
     List<SubInfoFixDetailPreNew> selectSubPreNewBySubIds(@Param("subIdList")List<String> subIdList);
 
-    List<RptCont> selectNewestMonthReport(@Param("ids") List<String> ids);
-
     List<SubInfoFixCbDetail> exportFixCbDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt,@Param("subjectIds") List<String> subjectIds);
 
     List<SubInfoFixZjDetail> exportFixZjDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt,@Param("subjectIds") List<String> subjectIds);

+ 1 - 73
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml

@@ -80,49 +80,6 @@
         si.id
     </select>
 
-<!--    <resultMap id="BaseResultMap" type="com.rtrh.projects.modules.projects.po.SubInfoGxj">
-        <id column="id" property="id" />
-        <result column="sub_id" property="subId" />
-        <result column="unit_id" property="unitId" />
-        <result column="unit_desc" property="unitDesc" />
-        <result column="sub_code" property="subCode" />
-        <result column="sub_name" property="subName" />
-        <result column="indus_kind" property="indusKind" />
-        <result column="amt_total" property="amtTotal" />
-        <result column="abc" property="abc" />
-        <result column="subject_id" property="subjectId" />
-        <result column="begin_date" property="beginDate" />
-        <result column="end_date" property="endDate" />
-        <result column="rt_date" property="rtDate" />
-        <result column="content" property="content" />
-        <result column="progress" property="progress" />
-        <result column="cb_status" property="cbStatus" />
-        <result column="qy_date" property="qyDate" />
-        <result column="xj_date" property="xjDate" />
-        <result column="zj_date" property="zjDate" />
-        <result column="tc_date" property="tcDate" />
-        <result column="cb_num" property="cbNum" />
-        <result column="xj_num" property="xjNum" />
-        <result column="zj_num" property="zjNum" />
-        <result column="remark" property="remark" />
-        <result column="name_zrr" property="nameZrr" />
-        <result column="tel" property="tel" />
-        <result column="name_lead" property="nameLead" />
-        <result column="tel_lead" property="telLead" />
-        <result column="status" property="status" />
-        <result column="is_rg" property="isRg" />
-        <result column="rg_date" property="rgDate" />
-        <result column="create_user_id" property="createUserId" />
-        <result column="create_user_name" property="createUserName" />
-        <result column="create_time" property="createTime" />
-        <result column="last_update_user_id" property="lastUpdateUserId" />
-        <result column="last_update_user_name" property="lastUpdateUserName" />
-        <result column="last_update_time" property="lastUpdateTime" />
-        <result column="logic_delete_flag" property="logicDeleteFlag" />
-        <result column="status_lamp" property="statusLamp" />
-        <result column="kind_nature" property="kindNature" />
-    </resultMap>-->
-
     <select id="queryPage" resultType="com.rtrh.projects.modules.projects.po.SubInfoGxj">
         SELECT
         s.id,
@@ -443,7 +400,7 @@
             <if test="status != null and status != ''">
                 AND status = #{status}
             </if>
-            AND amt_total &gt;= 10000
+            AND amt_total &gt;= 100000
         </where>
     </select>
 
@@ -597,35 +554,6 @@
             AND a.status = 1
             AND a.status_conf IN (1, 2);
     </select>
-    <select id="selectNewestMonthReport" resultType="com.rtrh.projects.modules.projects.po.RptCont">
-        SELECT
-            DISTINCT
-            src.sub_id AS subId,src.content
-        FROM
-            sub_rpt_cont src
-                JOIN (
-                SELECT
-                    sub_id,
-                    MAX(kj_month) AS latest_kj_month
-                FROM
-                    sub_rpt_cont
-                WHERE
-                    logic_delete_flag = 0
-                  AND sub_id IN
-                  <foreach collection="ids" item="item" separator="," open="(" close=")">
-                      #{item}
-                  </foreach>
-                  AND kind = '1'
-                  AND content IS NOT NULL
-                GROUP BY
-                    sub_id
-            ) AS latest_src ON src.sub_id = latest_src.sub_id
-                AND src.kj_month = latest_src.latest_kj_month
-        WHERE
-            src.logic_delete_flag = 0
-          AND src.kind = '1'
-          AND src.content IS NOT NULL
-    </select>
     <select id="exportFixCbDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SubInfoFixCbDetail">
         SELECT sub_info.id as id,
                sub_info.sub_name as subName,

+ 3 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.java

@@ -1,6 +1,7 @@
 package com.rtrh.projects.modules.projects.mapper;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.RptCont;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,4 +18,6 @@ public interface SubRptContMapper {
     List<Map<String,Object>>  pageQueryMonthWarnData(Map<String, Object> params);
 
     String selectNewestMonthReportByIdAndKind(@Param("subId") String subId,@Param("kind") String kind);
+
+    List<RptCont> selectNewestMonthReport(@Param("ids") List<String> ids);
 }

+ 29 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml

@@ -85,4 +85,33 @@
             kj_month DESC
             LIMIT 1
     </select>
+    <select id="selectNewestMonthReport" resultType="com.rtrh.projects.modules.projects.po.RptCont">
+        SELECT
+            DISTINCT
+            src.sub_id AS subId,src.content
+        FROM
+            sub_rpt_cont src
+        JOIN (
+            SELECT
+                sub_id,
+                MAX(kj_month) AS latest_kj_month
+                FROM
+                sub_rpt_cont
+                WHERE
+                logic_delete_flag = 0
+                AND sub_id IN
+                <foreach collection="ids" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+                AND kind = '1'
+                AND content IS NOT NULL
+                GROUP BY
+                sub_id
+            ) AS latest_src ON src.sub_id = latest_src.sub_id
+            AND src.kj_month = latest_src.latest_kj_month
+        WHERE
+            src.logic_delete_flag = 0
+            AND src.kind = '1'
+            AND src.content IS NOT NULL
+    </select>
 </mapper>

+ 3 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java

@@ -9,6 +9,7 @@ import com.rtrh.projects.modules.projects.enums.RptContKindEnum;
 import com.rtrh.projects.modules.projects.po.RptCont;
 import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.system.vo.LoginUserVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.web.bind.annotation.RequestBody;
 
 public interface SubRptContService {
@@ -177,5 +178,7 @@ public interface SubRptContService {
 
     String selectNewestMonthReportByIdAndKind(String subId, String code);
 
+	List<RptCont> selectNewestMonthReport(List<String> ids);
+
 	RptCont getBySubIdAndMonthFgw(String subId, String year, String week, RptContKindEnum contKindEnum);
 }

+ 5 - 13
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java

@@ -19,6 +19,7 @@ import com.rtrh.projects.modules.projects.enums.*;
 import com.rtrh.projects.modules.projects.mapper.SubInfoQueryMapper;
 import com.rtrh.projects.modules.projects.po.*;
 import com.rtrh.projects.modules.projects.service.SubPreNewService;
+import com.rtrh.projects.modules.projects.service.SubRptContService;
 import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
 import com.rtrh.projects.modules.system.dao.JUnitDao;
@@ -92,6 +93,9 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
     @Autowired
     private ISubInduService subInduService;
 
+    @Autowired
+    private SubRptContService subRptContService;
+
     @Override
     public Map<String, Integer> getWarningBySubId(String subId) {
 
@@ -198,7 +202,7 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
         // [在建、投产] 查询项目 最新月报内容(建设进度)
         Map<String, String> rptContentMap = new HashMap<>();
         if (Arrays.asList(SubInfoStatusEnum.ZJ.getCode(), SubInfoStatusEnum.TC.getCode()).contains(queryVO.getStatus())) {
-            List<RptCont> rptContList = subInfoMapper.selectNewestMonthReport(ids);
+            List<RptCont> rptContList = subRptContService.selectNewestMonthReport(ids);
             rptContentMap = rptContList.stream().collect(Collectors.toMap(RptCont::getSubId, RptCont::getContent, (v1, v2) -> v1));
         }
 
@@ -263,18 +267,6 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
     public Page queryPage(Page page, LoginUserVO loginUser, SubInfoQueryTzVO queryVO) {
         PageHelper.startPage(page.getPageNo(), page.getPageSize());
         List<SubInfoGxj> data = this.queryAll(loginUser, queryVO);
-        data.forEach(e -> {
-            if (StringUtils.isNotBlank(e.getContent())) {
-                int maxLength = Math.min(e.getContent().length(), 48);
-                String content = e.getContent().substring(0, maxLength);
-                e.setContent(content.length()>=48? content + "..." : content);
-            }
-            if (StringUtils.isNotBlank(e.getProgress())) {
-                int maxLength = Math.min(e.getProgress().length(), 48);
-                String progress = e.getProgress().substring(0, maxLength);
-                e.setProgress(progress.length()>=48? progress + "..." : progress);
-            }
-        });
         PageInfo<SubInfoGxj> pageInfo = new PageInfo<>(data);
         page.setList(data);
         page.setTotalCount(pageInfo.getTotal());

+ 6 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java

@@ -1499,6 +1499,12 @@ public class SubRptContServiceImpl implements SubRptContService {
 		return subRptContMapper.selectNewestMonthReportByIdAndKind(subId, kind);
 	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public List<RptCont> selectNewestMonthReport(List<String> ids) {
+		return subRptContMapper.selectNewestMonthReport(ids);
+	}
+
 	private StringBuffer buildSql(LoginUserVO loginUserVO, SubInfoQueryTzVO queryVO) {
 		StringBuffer sql = new StringBuffer();
 		if (StringUtil.isEmpty(queryVO.getYear())) {

+ 14 - 14
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -905,28 +905,28 @@ public class SubInfoExportController extends BaseController {
             ExportParams exportParams = new ExportParams("“四个一批”工业项目表(在建项目库)","在建项目库",ExcelType.XSSF);
             exportParams.setStyle(ExcelStyleUtil.class);
             exportDetail(response, exportParams, SubInfoZjVO.class, list, hyDictMap, groupMap);
-        }else if(SubInfoStatusEnum.TC.getCode().equals(queryVO.getStatus())) {
+        } else if (SubInfoStatusEnum.TC.getCode().equals(queryVO.getStatus())) {
             List<SubInfoTcVO> exportList = new ArrayList<>();
             // 合计行
             SubInfoTcVO hjCount = new SubInfoTcVO();
-            hjCount.setIndex(String.format("合计(%s个)",list.size()));
+            hjCount.setIndex(String.format("合计(%s个)", list.size()));
             exportList.add(hjCount);
 
             int index = 1;
             List<Integer> allSize = new ArrayList<>();
-            for (Map.Entry<String, List<SubInfoGxj>> entry : groupMap.entrySet()){
+            for (Map.Entry<String, List<SubInfoGxj>> entry : groupMap.entrySet()) {
                 String key = entry.getKey();
                 List<SubInfoGxj> value = entry.getValue();
                 List<SubInfoTcVO> hyList = new ArrayList<>();
                 // 行业合计行
                 SubInfoTcVO hyCount = new SubInfoTcVO();
-                hyCount.setIndex(String.format("%s、%s( %s个 )",toChineseNumber(index), hyDictMap.getOrDefault(key, key), value.size()));
+                hyCount.setIndex(String.format("%s、%s( %s个 )", toChineseNumber(index), hyDictMap.getOrDefault(key, key), value.size()));
                 // 每条数据行
                 hyList.add(hyCount);
                 for (int i = 0; i < value.size(); i++) {
                     SubInfoGxj subInfoGxj = value.get(i);
                     SubInfoTcVO vo = new SubInfoTcVO();
-                    BeanUtils.copyProperties(subInfoGxj,vo);
+                    BeanUtils.copyProperties(subInfoGxj, vo);
                     // BigDecimal divide = subInfoGxj.getAmtTotal() != null ? subInfoGxj.getAmtTotal().divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP) : BigDecimal.ZERO;
                     // vo.setAmtTotal(divide);
                     vo.setIndex(i + 1 + "");
@@ -937,33 +937,33 @@ public class SubInfoExportController extends BaseController {
                 exportList.addAll(hyList);
                 index++;
             }
-            ExportParams exportParams = new ExportParams("“四个一批”工业项目表(投产项目库)","投产项目库",ExcelType.XSSF);
+            ExportParams exportParams = new ExportParams("“四个一批”工业项目表(投产项目库)", "投产项目库", ExcelType.XSSF);
             exportParams.setStyle(ExcelStyleUtil.class);
             // 设置默认样式(这里设置所有单元格都有边框)
             workbook = ExcelExportUtil.exportExcel(exportParams, SubInfoTcVO.class, exportList);
             extracted(response, list, workbook, allSize);
-        }else {
+        } else {
             List<SubInfoZkVO> exportList = new ArrayList<>();
             // 合计行
             SubInfoZkVO hjCount = new SubInfoZkVO();
-            hjCount.setIndex(String.format("合计(%s个)",list.size()));
+            hjCount.setIndex(String.format("合计(%s个)", list.size()));
             exportList.add(hjCount);
 
             int index = 1;
             List<Integer> allSize = new ArrayList<>();
-            for (Map.Entry<String, List<SubInfoGxj>> entry : groupMap.entrySet()){
+            for (Map.Entry<String, List<SubInfoGxj>> entry : groupMap.entrySet()) {
                 String key = entry.getKey();
                 List<SubInfoGxj> value = entry.getValue();
                 List<SubInfoZkVO> hyList = new ArrayList<>();
                 // 行业合计行
                 SubInfoZkVO hyCount = new SubInfoZkVO();
-                hyCount.setIndex(String.format("%s、%s( %s个 )",toChineseNumber(index), hyDictMap.getOrDefault(key, key), value.size()));
+                hyCount.setIndex(String.format("%s、%s( %s个 )", toChineseNumber(index), hyDictMap.getOrDefault(key, key), value.size()));
                 // 每条数据行
                 hyList.add(hyCount);
                 for (int i = 0; i < value.size(); i++) {
                     SubInfoGxj subInfoGxj = value.get(i);
                     SubInfoZkVO vo = new SubInfoZkVO();
-                    BeanUtils.copyProperties(subInfoGxj,vo);
+                    BeanUtils.copyProperties(subInfoGxj, vo);
                     vo.setAmtTotal(convertAmount(subInfoGxj.getAmtTotal()));
                     vo.setIndex(i + 1 + "");
                     hyList.add(vo);
@@ -975,7 +975,7 @@ public class SubInfoExportController extends BaseController {
             }
             ExportParams exportParams = new ExportParams("“四个一批”工业项目表(项目总库)", "项目总库", ExcelType.XSSF);
             exportParams.setStyle(ExcelStyleUtil.class);
-            // exportParams.setHeight((short)-1);
+            // exportParams.setHeight((short) -1);
             workbook = ExcelExportUtil.exportExcel(exportParams, SubInfoZkVO.class, exportList);
             // workbook = ExcelExportUtil.exportBigExcel(exportParams, SubInfoZkVO.class, new IExcelExportServer() {
             //     /**
@@ -1066,8 +1066,8 @@ public class SubInfoExportController extends BaseController {
             }
         }
         // 设置自适应行高,i为需要自适应行高的起始行号, 起始行号为3 但是因为下标从0开始3需要减一,因为表格是循环生成,需要一行一行设置自适应高度
-        for (int i = 4; i <= list.size() + 3; i++) {
-            sheet.getRow(i).setHeight((short) -1);
+        for (int i = 4; i <= list.size() + allSize.size() + 3; i++) {
+            Optional.ofNullable(sheet.getRow(i)).ifPresent(row -> row.setHeight((short) -1));
         }
         list.clear();
         try (OutputStream outputStream = response.getOutputStream()) {

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/util/ExcelStyleUtil.java

@@ -114,7 +114,7 @@ public class ExcelStyleUtil implements IExcelExportStyler {
         CellStyle style = getBaseCellStyle(workbook);
         style.setFont(getFont(workbook, FONT_SIZE_ELEVEN, false));
         //背景色
-        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+        // style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
         return style;
     }

+ 53 - 25
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp

@@ -89,6 +89,18 @@
         .layui-form-select dl {
             height: 230px;
         }
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -263,6 +275,9 @@
     <span lay-event="toDetail" title="{{d.subName}}">{{d.subName}}</span>
 </script>
 
+<script type="text/html" id="progress">
+    <span title="{{d.progress}}">{{d.progress}}</span>
+</script>
 <script type="text/html" id="unitName">
     <span lay-event="toQcc" title="{{d.unitName}}">{{d.unitName}}</span>
 </script>
@@ -296,6 +311,35 @@
     </div>
 </script>
 
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="储备库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="2">新建</option>
+                    <option value="3">在建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
+
 <script>
     layui.use('element', function () {
         let element = layui.element;
@@ -514,14 +558,20 @@
                         {type: 'numbers', align: 'center', width: 44, title: '序号', fixed: 'left'},
                         {field: 'subName', fixed: 'left', title: '项目名称', width: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目建设内容', minWidth: 300},
+                        {field: 'content', title: '项目建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal',
                             title: '计划总投资(亿元)',
                             width: 80,
                             templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
                         },
-                        {field: 'progress', title: '进展情况', minWidth: 300},
+                        {field: 'progress', title: '进展情况', minWidth: 300,
+                            templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark', title: '备注', minWidth: 200},
                         {title: '操作', width: 225, toolbar: '#toolBar', fixed: 'right'},
                     ]],
@@ -549,29 +599,7 @@
             },
             move(obj) {
                 this.moveDbParam.id = obj.data.id
-                const formTemplate = `<div class="layui-form" style="padding: 20px;">
-                <div class="layui-form-item">
-                    <label class="layui-form-label">当前状态:</label>
-                    <div class="layui-input-block">
-                        <input type="text" name="currentState" value="储备库" disabled class="layui-input">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">移入到:</label>
-                    <div class="layui-input-block">
-                        <select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">
-                            <option value="">请选择</option>
-                            <option value="2">新建</option>
-                            <option value="3">在建</option>
-                            <option value="9">投产</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-form-item" style="text-align: right;">
-                    <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
-                    <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
-                </div>
-            </div>`;
+                const formTemplate = document.getElementById('moveForm').innerHTML;
                 layer.open({
                     type: 1,
                     title: '移入',

+ 52 - 30
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp

@@ -89,7 +89,18 @@
         .layui-form-select dl {
             height: 120px;
         }
-
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -715,7 +726,34 @@
     {{#}}}
 </script>
 
-
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="储备库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="2">新建</option>
+                    <option value="3">在建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
 <script>
     layui.use('element', function () {
         let element = layui.element;
@@ -782,29 +820,7 @@
                 layer.open({
                     type: 1,
                     title: '标题',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">当前状态:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<input type="text" name="currentState" value="储备库" disabled class="layui-input">' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">移入到:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">' +
-                        '<option value="">请选择</option>' +
-                        '<option value="2">新建</option>' +
-                        '<option value="3">在建</option>' +
-                        '<option value="9">投产</option>' +
-                        '</select>' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: right;">' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: document.getElementById('moveForm').innerHTML,
                     area: ['350px', '300px'],
                     success: function(layero, index){
                         layui.form.render();
@@ -1093,13 +1109,19 @@
                         {type: 'numbers', fixed: 'left', align: 'center', width: 44, title: '序号'},
                         {field: 'subName', fixed: 'left', title: '项目名称', width: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content',  title: '项目建设内容', minWidth: 300},
+                        {field: 'content', title: '项目建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
-                            field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
-                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
-                            }
+                            field: 'amtTotal',
+                            title: '计划总投资(亿元)',
+                            width: 80,
+                            templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
                         },
-                        {field: 'progress', title: '进展情况', minWidth: 200},
+                        {field: 'progress', title: '进展情况', minWidth: 300,templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark',  title: '备注', minWidth: 200},
                         {title: '操作', width: 225, toolbar: '#toolBar', fixed: 'right'},
                     ]],

+ 30 - 16
projects/src/main/webapp/vmodules/subject/subInfo/tz/end.jsp

@@ -67,6 +67,14 @@
         .layui-form-select dl {
             height: 230px;
         }
+
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -436,7 +444,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            入规率<span class="lanse-first">{{beginRate.rgRate}}</span>
+                            入规率<span class="lanse-first">{{beginRate.rgRate}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
@@ -444,7 +452,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            投产率<span class="lanse-first">{{beginRate.tcRate}}</span>
+                            投产率<span class="lanse-first">{{beginRate.tcRate}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
@@ -758,23 +766,23 @@
                 this.closeAllLayers();
                 this.getData();
             },
-            rg (obj) {
+            rg(obj) {
                 this.rgParam.id = obj.data.id
                 layer.open({
                     type: 1,
                     title: '入规',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                            '<label class="layui-form-label">入规日期:</label>' +
-                            '<input class="layui-form-input" type="text" id="rgDate" placeholder="请选择入规日期">'+
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: center;margin-top: 50px">' +
-                            '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认</button>' +
-                            '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">返回</button>' +
-                        '</div>' +
-                    '</div>',
+                    content: `<div class="layui-form" style="padding: 20px;">
+                           <div class="layui-form-item">
+                               <label class="layui-form-label">入规日期:</label>
+                               <input class="layui-form-input" type="text" id="rgDate" placeholder="请选择入规日期">
+                           </div>
+                           <div class="layui-form-item" style="text-align: center;margin-top: 50px">
+                               <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认</button>
+                               <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">返回</button>
+                           </div>
+                       </div>`,
                     area: ['350px', '300px'],
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         layui.laydate.render({
                             elem: '#rgDate'
                         });
@@ -1046,9 +1054,15 @@
                         {type: 'numbers', fixed: 'left', align: 'center', title: '序号', width: 44},
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目基本情况', minWidth: 300},
+                        {field: 'content', title: '项目基本情况', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {field: 'rtDate', title: '升规入统时间', minWidth: 160,templet: '#date'},
-                        {field: 'progress', title: '进展情况', minWidth: 300},
+                        {field: 'progress', title: '进展情况', minWidth: 300,
+                            templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark', title: '备注', minWidth: 150},
                         {title: '操作', width: 200, toolbar: '#toolBar', fixed: 'right'},
                     ]],

+ 27 - 14
projects/src/main/webapp/vmodules/subject/subInfo/tz/end_sum.jsp

@@ -67,6 +67,13 @@
         .layui-form-select dl {
             height: 120px;
         }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -650,23 +657,23 @@
                 })
                 this.closeAllLayers();
             },
-            rg (obj) {
+            rg(obj) {
                 this.rgParam.id = obj.data.id
                 layer.open({
                     type: 1,
                     title: '入规',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">入规日期:</label>' +
-                        '<input class="layui-form-input" type="text" id="rgDate" placeholder="请选择入规日期">'+
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: center;margin-top: 50px">' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认</button>' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">返回</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: `<div class="layui-form" style="padding: 20px;">
+                           <div class="layui-form-item">
+                               <label class="layui-form-label">入规日期:</label>
+                               <input class="layui-form-input" type="text" id="rgDate" placeholder="请选择入规日期">
+                           </div>
+                           <div class="layui-form-item" style="text-align: center;margin-top: 50px">
+                               <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认</button>
+                               <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">返回</button>
+                           </div>
+                       </div>`,
                     area: ['350px', '300px'],
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         layui.laydate.render({
                             elem: '#rgDate'
                         });
@@ -915,9 +922,15 @@
                         {type: 'numbers', fixed: 'left', align: 'center', title: '序号', width: 44},
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目基本情况', minWidth: 300},
+                        {field: 'content', title: '项目基本情况', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {field: 'rgDate', title: '升规入统时间', width: 150},
-                        {field: 'progress', title: '进展情况', minWidth: 300},
+                        {field: 'progress', title: '进展情况', minWidth: 300,
+                            templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark', title: '备注', minWidth: 200},
                         {title: '操作', width: 200, toolbar: '#toolBar', fixed: 'right'},
                     ]],

+ 50 - 25
projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp

@@ -68,6 +68,18 @@
         .layui-form-select dl {
             height: 230px;
         }
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 
@@ -680,6 +692,34 @@
         <span title="移入" lay-event="move" class="no-wrap">移入</span>
     </div>
 </script>
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="在建库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="1">储备</option>
+                    <option value="2">新建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
 <script>
     let vm = new Vue({
         el: "#app",
@@ -746,32 +786,11 @@
             },
             move (obj) {
                 this.moveDbParam.id = obj.data.id
+                const formTemplate = document.getElementById('moveForm').innerHTML;
                 layer.open({
                     type: 1,
                     title: '移入',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">当前状态:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<input type="text" name="currentState" value="储备库" disabled class="layui-input">' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">移入到:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">' +
-                        '<option value="">请选择</option>' +
-                        '<option value="2">新建</option>' +
-                        '<option value="3">在建</option>' +
-                        '<option value="9">投产</option>' +
-                        '</select>' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: right;">' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: formTemplate,
                     area: ['350px', '300px'],
                     success: function(layero, index){
                         layui.form.render();
@@ -1122,7 +1141,10 @@
                         },
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目建设内容', width: 300},
+                        {field: 'content', title: '项目建设内容', width: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal',  title: '计划总投资(亿元)', width: 80, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";
@@ -1130,7 +1152,10 @@
                         },
                         {field: 'endDate',  title: '建成投产时间', width: 100,templet: '#date'},
                         {field: 'yearPlanAmt', title: '年度投资(万元)', width: 100},
-                        {field: 'progress',  title: '进展情况', width: 300},
+                        {field: 'progress',  title: '进展情况', width: 300,
+                            templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark', title: '备注', width: 200},
                         {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right'},
                     ]],

+ 50 - 25
projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp

@@ -68,6 +68,18 @@
         .layui-form-select dl {
             height: 120px;
         }
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 
@@ -678,6 +690,34 @@
         <span title="移入" lay-event="move" class="no-wrap">移入</span>
     </div>
 </script>
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="在建库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="1">储备</option>
+                    <option value="2">新建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
 <script>
     let vm = new Vue({
         el: "#app",
@@ -744,32 +784,11 @@
             },
             move (obj) {
                 this.moveDbParam.id = obj.data.id
+                const formTemplate = document.getElementById('moveForm').innerHTML;
                 layer.open({
                     type: 1,
                     title: '标题',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">当前状态:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<input type="text" name="currentState" value="储备库" disabled class="layui-input">' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">移入到:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">' +
-                        '<option value="">请选择</option>' +
-                        '<option value="2">新建</option>' +
-                        '<option value="3">在建</option>' +
-                        '<option value="9">投产</option>' +
-                        '</select>' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: right;">' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: formTemplate,
                     area: ['350px', '300px'],
                     success: function(layero, index){
                         layui.form.render();
@@ -1113,7 +1132,10 @@
                         },
                         {field: 'subName',fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', minWidth: 100},
-                        {field: 'content', title: '项目建设内容', minWidth: 200},
+                        {field: 'content', title: '项目建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal',  title: '计划总投资(亿元)', minWidth: 80, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";
@@ -1121,7 +1143,10 @@
                         },
                         {field: 'tcDate',  title: '建成投产时间', minWidth: 160,templet: '#date'},
                         {field: 'amtTotal', title: '年度投资', minWidth: 100},
-                        {field: 'progress',  title: '进展情况', minWidth: 200},
+                        {field: 'progress',  title: '进展情况', minWidth: 200,
+                            templet: function (row) {
+                                return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';
+                            }},
                         {field: 'remark', title: '备注', minWidth: 160},
                         {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right'},
                     ]],

+ 46 - 24
projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp

@@ -89,7 +89,18 @@
         .layui-form-select dl {
             height: 230px;
         }
-
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -617,6 +628,34 @@
     {{#}}}
 </script>
 
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="新建库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="1">储备</option>
+                    <option value="3">在建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
 
 <script>
     layui.use('element', function () {
@@ -681,31 +720,11 @@
             },
             move (obj) {
                 this.moveDbParam.id = obj.data.id
+                const formTemplate = document.getElementById('moveForm').innerHTML;
                 layer.open({
                     type: 1,
                     title: '移入',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">当前状态:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<input type="text" name="currentState" value="新建库" disabled class="layui-input">' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">移入到:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">' +
-                        '<option value="">请选择</option>' +
-                        '<option value="3">在建</option>' +
-                        '<option value="9">投产</option>' +
-                        '</select>' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: right;">' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: formTemplate,
                     area: ['350px', '300px'],
                     success: function(layero, index){
                         layui.form.render();
@@ -1040,7 +1059,10 @@
                         {type: 'numbers',  align: 'center', width: 44, title: '序号',fixed: 'left'},
                         {field: 'subName',  title: '项目名称', minWidth: 200, templet: '#subName',fixed: 'left'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目建设内容', minWidth: 300},
+                        {field: 'content', title: '项目建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";

+ 46 - 25
projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp

@@ -89,7 +89,18 @@
         .layui-form-select dl {
             height: 120px;
         }
-
+        /* 针对特定 select 的样式 */
+        .custom-select + .layui-form-select dl {
+            height: auto; /* 恢复默认高度 */
+            max-height: 150px; /* 设置一个合适的高度 */
+        }
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -681,7 +692,34 @@
                                        src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
     {{#}}}
 </script>
-
+<script type="text/html" id="moveForm">
+    <div class="layui-form" style="padding: 20px;">
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <input type="text" name="currentState" value="新建库" disabled class="layui-input">
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;">移入到:</label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
+                <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
+                    <option value="">请选择</option>
+                    <option value="1">储备</option>
+                    <option value="3">在建</option>
+                    <option value="9">投产</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item" style="display: flex; align-items: center;">
+            <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
+            <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
+                <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
+                <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
+            </div>
+        </div>
+    </div>
+</script>
 
 <script>
     layui.use('element', function () {
@@ -747,31 +785,11 @@
             },
             move (obj) {
                 this.moveDbParam.id = obj.data.id
+                const formTemplate = document.getElementById('moveForm').innerHTML;
                 layer.open({
                     type: 1,
                     title: '标题',
-                    content: '<div class="layui-form" style="padding: 20px;">' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">当前状态:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<input type="text" name="currentState" value="新建库" disabled class="layui-input">' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item">' +
-                        '<label class="layui-form-label">移入到:</label>' +
-                        '<div class="layui-input-block">' +
-                        '<select v-model="subInfo.status" lay-filter="moveStatus" lay-verify="required">' +
-                        '<option value="">请选择</option>' +
-                        '<option value="3">在建</option>' +
-                        '<option value="9">投产</option>' +
-                        '</select>' +
-                        '</div>' +
-                        '</div>' +
-                        '<div class="layui-form-item" style="text-align: right;">' +
-                        '<button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>' +
-                        '<button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>' +
-                        '</div>' +
-                        '</div>',
+                    content: formTemplate,
                     area: ['350px', '300px'],
                     success: function(layero, index){
                         layui.form.render();
@@ -1110,7 +1128,10 @@
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
 
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '项目建设内容', minWidth: 300},
+                        {field: 'content', title: '项目建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";

+ 11 - 1
projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp

@@ -90,6 +90,13 @@
             height: 230px;
         }
 
+        .layui-table-cell .cut {
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
     </style>
 </head>
 <body>
@@ -876,7 +883,10 @@
                         {type: 'numbers', align: 'center', width: 44, title: '序号',fixed: 'left'},
                         {field: 'subName', title: '项目名称', minWidth: 200, templet: '#subName',fixed: 'left'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
-                        {field: 'content', title: '建设内容', minWidth: 300},
+                        {field: 'content', title: '建设内容', minWidth: 300,
+                            templet: function (row) {
+                                return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
+                            }},
                         {
                             field: 'amtTotal',
                             title: '总投资',