Procházet zdrojové kódy

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

Wayne před 4 měsíci
rodič
revize
4369167899
18 změnil soubory, kde provedl 1857 přidání a 871 odebrání
  1. 23 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  2. 1 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubInfoGxj.java
  3. 17 6
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java
  4. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/SubInfoQueryTzVO.java
  5. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/TSysTableService.java
  6. 8 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/TSysTableServiceImpl.java
  7. 5 3
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java
  8. 9 0
      projects/src/main/webapp/vmodules/leftMenu.jsp
  9. 6 7
      projects/src/main/webapp/vmodules/subject/subInfo/editSubInfo.jsp
  10. 4 78
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp
  11. 69 217
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp
  12. 11 19
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end.jsp
  13. 135 65
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end_sum.jsp
  14. 76 48
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp
  15. 133 198
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp
  16. 6 27
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp
  17. 140 201
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp
  18. 1209 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp

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

@@ -170,24 +170,45 @@
             <if test="vo.subName!=null and vo.subName!=''">
                 and sub_name like CONCAT('%', #{vo.subName}, '%')
             </if>
+            <if test="vo.kindNature!=null and vo.kindNature!=''">
+                and kind_nature = #{vo.kindNature}
+            </if>
+            <if test="vo.subjects!=null and vo.subjects!=''">
+                and subject_id = #{vo.subjects}
+            </if>
             <if test="vo.subjectId!=null and vo.subjectId!=''">
                 and subject_id = #{vo.subjectId}
             </if>
             <if test="vo.indusKind!=null and vo.indusKind!=''">
                 and indus_kind = #{vo.indusKind}
             </if>
+            <if test="vo.indusKinds!=null and vo.indusKinds!=''">
+                and indus_kind = #{vo.indusKinds}
+            </if>
             <if test="vo.startAmt!=null and vo.startAmt!=''">
                 and amt_total >= #{vo.startAmt}
             </if>
             <if test="vo.endAmt!=null and vo.endAmt!=''">
                 and amt_total &lt;= #{vo.endAmt}
             </if>
-            <if test="vo.beginDate!=null and vo.beginDate!=''">
+            <if test="vo.status=='2' and vo.beginDate!=null and vo.beginDate!=''">
                 and begin_date >= #{vo.beginDate}
             </if>
-            <if test="vo.endDate!=null and vo.endDate!=''">
+            <if test="vo.status=='2' and vo.endDate!=null and vo.endDate!=''">
                 and begin_date &lt;= #{vo.endDate}
             </if>
+            <if test="vo.status=='3' and vo.beginDate!=null and vo.beginDate!=''">
+                and end_date >= #{vo.beginDate}
+            </if>
+            <if test="vo.status=='3' and vo.endDate!=null and vo.endDate!=''">
+                and end_date &lt;= #{vo.endDate}
+            </if>
+            <if test="vo.status=='9' and vo.beginDate!=null and vo.beginDate!=''">
+                and rg_date >= #{vo.beginDate}
+            </if>
+            <if test="vo.status=='9' and vo.endDate!=null and vo.endDate!=''">
+                and rg_date &lt;= #{vo.endDate}
+            </if>
             <if test="vo.sbdw!=null and vo.sbdw!=''">
                 and unit_desc = #{vo.sbdw}
             </if>

+ 1 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubInfoGxj.java

@@ -158,4 +158,5 @@ public class SubInfoGxj extends TableBaseColomn implements Serializable {
     // 前期手续数量
     private String preProceNum;
     private String preEndNum;
+    private String yearAmtSj;
 }

+ 17 - 6
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java

@@ -88,6 +88,7 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
     private RptContDao rptContDao;
     @Autowired
     private SubPreNewService subPreNewService;
+
     @Override
     public Map<String, Integer> getWarningBySubId(String subId) {
 
@@ -175,15 +176,16 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
         if (StringUtils.isNotBlank(queryVO.getEndAmt())) {
             queryVO.setEndAmt(new BigDecimal(queryVO.getEndAmt()).multiply(new BigDecimal("10000")).toString());
         }
-        List<SubInfoGxj> data = subInfoMapper.queryPage(queryVO);
 
+        List<SubInfoGxj> data = subInfoMapper.queryPage(queryVO);
         PageInfo<SubInfoGxj> pageInfo = new PageInfo<>(data);
         page.setList(data);
+
         List<TSystable> byKind = tSysTableService.getByKind(SysTableKind.JSDD);
         if (CollectionUtil.isNotEmpty(data)) {
             for (SubInfoGxj e : data) {
                 // 查询月报中的建设进度
-                if (!Lists.newArrayList("1","2").contains(e.getStatus())){
+                if (!Lists.newArrayList("1", "2").contains(e.getStatus())) {
                     String hql = "FROM RptCont WHERE logicDeleteFlag = 0 AND subId = :subId AND kind = :kind AND content IS NOT NULL ORDER BY kjMonth DESC";
                     Query query = rptContDao.createQuery(hql);
                     query.setParameter("subId", e.getSubId());
@@ -192,17 +194,26 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
                     Object result = query.uniqueResult();
                     Optional.ofNullable(result).map(o -> (RptCont) o).ifPresent(o -> e.setProgress(o.getContent()));
                 }
+
                 byKind.stream()
                         .filter(k -> e.getSubjectId().equals(k.getCode()))
                         .findFirst()
                         .ifPresent(k -> e.setSubjectName(k.getTitle()));
-                if ("2".equals(e.getStatus())){
+                if ("2".equals(e.getStatus())) {
                     // 新建库查询前期手续
                     List<SubPreNewResultVO> preList = subPreNewService.listBySubId(e.getSubId());
                     Map<String, Long> numMap = preList.stream().collect(Collectors.groupingBy(SubPreNewResultVO::getStatusConf, Collectors.counting()));
                     e.setPreProceNum(numMap.getOrDefault("1", 0L) + "");
                     e.setPreEndNum(numMap.getOrDefault("2", 0L) + "");
                 }
+                // 在建项目年度投资
+                if ("3".equals(e.getStatus())) {
+                    Object o = rptContDao.queryForObjectBySql("SELECT sum(src.amt) AS yearAmtSj FROM sub_rpt_cont src WHERE src.logic_delete_flag = 0 AND src.kj_month >= ? AND src.sub_id=? GROUP BY src.sub_id", DateUtil.thisYear() + "01", e.getSubId());
+                    if (o != null) {
+                        Object o1 = ((Map<String, Object>) o).get("yearAmtSj");
+                        e.setYearAmtSj(o1 != null ? o1.toString() : "");
+                    }
+                }
             }
         }
         page.setTotalCount(pageInfo.getTotal());
@@ -213,7 +224,7 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
     public StatisticsVO queryStatistics(SubInfoQueryTzVO queryVO, LoginUserVO loginUser) {
         List<SubInfoGxj> list = subInfoMapper.queryStatistics(queryVO);
         long num = 0;
-        if(StringUtils.isNotBlank(queryVO.getStatus())){
+        if (StringUtils.isNotBlank(queryVO.getStatus())) {
             num = list.stream().filter(e -> queryVO.getStatus().equals(e.getStatus())).count();
         }
         // abc类统计
@@ -240,11 +251,11 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
         Map<String, Long> indusKind = list.stream().filter(e -> StringUtils.isNotBlank(e.getIndusKind())).collect(Collectors.groupingBy(SubInfoGxj::getIndusKind, Collectors.counting()));
         List<StatisticsVO.KvNum> hyflList = new ArrayList<>();
         indusKind.forEach((k, v) -> {
-            hyflDict.stream().filter(d -> d.getCode().equals(k))
+            hyflDict.stream().filter(d -> d.getId().equals(k))
                     .findFirst()
                     .ifPresent(d -> {
                         hyflList.add(new StatisticsVO.KvNum()
-                                .setCode(d.getCode())
+                                .setCode(d.getId())
                                 .setName(d.getTitle())
                                 .setNum(v));
                     });

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

@@ -350,4 +350,7 @@ public class SubInfoQueryTzVO {
 
 	//建设地点
 	private   String  subjects;
+	// 年度投资查询
+	private   String  yearMixAmt;
+	private   String  yearMaxAmt;
 }

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/TSysTableService.java

@@ -79,4 +79,6 @@ public interface TSysTableService {
 	 * @param id
 	 */
 	void delUnit(String id);
+
+	List<TSystable> getGxjHyfl(SysTableKind hyfl);
 }

+ 8 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/TSysTableServiceImpl.java

@@ -152,6 +152,14 @@ public class TSysTableServiceImpl implements TSysTableService {
 		tSystableDao.update(systable);
 	}
 
+	@Override
+	public List<TSystable> getGxjHyfl(SysTableKind hyfl) {
+		return (List<TSystable>) tSystableDao.queryForClsListBySql(
+				"SELECT t.id,t.kind,t.code,t.title FROM t_systable t, indu_config i WHERE i.kind = '1' and i.indu_id = t.id AND t.kind=?",
+				TSystable.class, hyfl.getCode()
+		);
+	}
+
 	@Override
 	public String getTitleByKindAndCode(SysTableKind kind, String code) {
 		if(kind == null || !StringUtils.hasLength(code)) {

+ 5 - 3
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java

@@ -219,7 +219,8 @@ public class SubInfoController extends BaseController {
             //默认为重点项目台账
             type = "1";
         }
-        model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));   //行业分类
+        // model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));   //行业分类
+        model.put("HYFL", tSysTableService.getGxjHyfl(SysTableKind.HYFL));
         model.put("ZJLY", tSysTableService.getByKind(SysTableKind.ZJLY));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));   //项目类型
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -280,7 +281,8 @@ public class SubInfoController extends BaseController {
                 return new ModelAndView("/vmodules/subject/subInfo/tz/end.jsp");
             case "5":
                 //项目总库
-                return new ModelAndView("/vmodules/subject/subInfo/tz/zk.jsp");
+                // return new ModelAndView("/vmodules/subject/subInfo/tz/zk.jsp");
+                return new ModelAndView("/vmodules/subject/subInfo/tz/xmzk.jsp");
             case "6":
                 //重点项目-中央资金
                 return new ModelAndView("/vmodules/subject/subInfo/tz/main_zy.jsp");
@@ -391,7 +393,7 @@ public class SubInfoController extends BaseController {
         model.put("params", params);
         model.put("tips", tips);
 
-        model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
+        model.put("HYFL", tSysTableService.getGxjHyfl(SysTableKind.HYFL));
         model.put("ZJLY", tSysTableService.getByKind(SysTableKind.ZJLY));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));

+ 9 - 0
projects/src/main/webapp/vmodules/leftMenu.jsp

@@ -101,6 +101,15 @@
                                 window.localStorage.removeItem("TzQueryParam_end_${loginUserId}")
                             }
                         }
+                        ,
+                        {
+                            txt: '项目总库',
+                            code: '404',
+                            url: 'subject/subInfo/projTz?type=5',
+                            before: function () {
+                                window.localStorage.removeItem("TzQueryParam_end_${loginUserId}")
+                            }
+                        }
                     ]
                 },
                 {

+ 6 - 7
projects/src/main/webapp/vmodules/subject/subInfo/editSubInfo.jsp

@@ -398,14 +398,13 @@
                             </div>
                         </div>
                     </div>
-
                     <div class="layui-row">
                         <div class="layui-col-xs12 layui-col-sm12">
                             <div class="layui-form-item">
                                 <label class="layui-form-label"
                                 >项目进展情况</label>
                                 <div class="layui-input-block">
-                                    <textarea required lay-verify="required" autocomplete="off" class="layui-textarea"
+                                    <textarea  autocomplete="off" class="layui-textarea"
                                               v-model="subInfo.progress"></textarea>
                                 </div>
                             </div>
@@ -443,7 +442,7 @@
                             <div class="layui-form-item">
                                 <label class="layui-form-label">状态</label>
                                 <div class="layui-input-block">
-                                    <select v-model="subInfo.cbStatus" lay-filter="cbStatus" lay-verify="required">
+                                    <select v-model="subInfo.cbStatus" lay-filter="cbStatus">
                                         <option value="">请选择</option>
                                         <option value="1">正在谋划</option>
                                         <option value="2">正在洽谈</option>
@@ -460,7 +459,7 @@
                             <div class="layui-form-item">
                                 <label class="layui-form-label">签约日期</label>
                                 <div class="layui-input-block">
-                                    <input type="text" id=qyDate readonly="readonly" required lay-verify="required"
+                                    <input type="text" id=qyDate readonly="readonly" required
                                            placeholder="请输入" autocomplete="off" class="layui-input"
                                            v-model="subInfo.qyDate">
                                 </div>
@@ -473,7 +472,7 @@
                                 <label class="layui-form-label">储备转新建周期</label>
                                 <div class="layui-input-block">
                                     <input type="number" name="cbNum" id="cbNum" placeholder="请输入"
-                                           autocomplete="off" required lay-verify="required" class="layui-input"
+                                           autocomplete="off"  class="layui-input"
                                            v-model="subInfo.cbNum">
                                 </div>
                             </div>
@@ -485,7 +484,7 @@
                                 <label class="layui-form-label">新建转在建周期</label>
                                 <div class="layui-input-block">
                                     <input type="number" name="xjNum" id="xjNum" placeholder="请输入"
-                                           autocomplete="off" required lay-verify="required" class="layui-input"
+                                           autocomplete="off"  class="layui-input"
                                            v-model="subInfo.xjNum">
                                 </div>
                             </div>
@@ -497,7 +496,7 @@
                                 <label class="layui-form-label">在建转投产周期</label>
                                 <div class="layui-input-block">
                                     <input type="number" name="zjNum" id="zjNum" placeholder="请输入"
-                                           autocomplete="off" required lay-verify="required" class="layui-input"
+                                           autocomplete="off" class="layui-input"
                                            v-model="subInfo.zjNum">
                                 </div>
                             </div>

+ 4 - 78
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp

@@ -215,14 +215,14 @@
                 </div>
                 <div style="display: flex;margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
+                           @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
                         {{item.name}} <span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
                         {{item.name?item.name:item.code}}
                         <span class="lanse-first">{{item.num}}</span>
@@ -548,7 +548,6 @@
             init: function () {
                 let self = this;
                 layui.form.on("select(moveStatus)", function (data) {
-                    console.log(data.value,"===========")
                     self.moveDbParam.status = data.value;
                 });
 
@@ -716,36 +715,9 @@
                 } else {
                     $(".hiddenParam").hide();
                 }
-                /*      var self = this;
-
-                    layer.open({
-                          title: "查询条件",
-                          type: 1,
-                          area: ['800px', ''],
-                          offset:0,
-                          shade: 0.1,
-                          shadeClose: true,
-                          content: $("#searchForm"),
-                          btn: ["查询"],
-                          yes: function (index) {
-                              self.search();
-                              layer.close(index);
-                          },
-                          success: function () {
-                              self.setQueryForm2();
-                              $(".hiddenParam").show();
-                              $(".hiddenParams").hide();
-                          },
-                          end: function () {
-                              self.setQueryForm4();
-                              $(".hiddenParam").hide();
-                              $(".hiddenParams").show();
-                          }
-                      })*/
             },
             getSearchParams: function () {
                 var param = layui.form.getValue("searchForm");
-                console.log(param)
                 if (param.rangeDate) {
                     param.beginDate = param.rangeDate.split(" ~ ")[0];
                     param.endDate = param.rangeDate.split(" ~ ")[1];
@@ -768,12 +740,6 @@
                 param.pageSize = this.pageSize;
                 param.orderBy = this.sort.field;
                 param.orderType = this.sort.type || "asc";
-                // 查询 table 数据列表
-                // App.postJson("/api/subInfo/query/all", param, function (res) {
-                //     self.dataList = res.rows;
-                //     self.loadPage(res.total);
-                //     self.loadTable();
-                // });
 
                 // 表格分页数据
                 param.status = 1;
@@ -791,47 +757,6 @@
                         self.beginRate.jsddList = self.beginRate.jsddData;
                     }
                 });
-
-                /*App.postJson("/api/subInfo/query/beginRate", param, function (res) {
-                    if (res.success) {
-                        self.beginRate = res.data;
-                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 0;
-                        }
-                        if (res.data.yearAmt != 0) {
-                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                        } else if (res.data.yearAmtSj != 0) {
-                            self.beginRate.amtRate = 100;
-                        } else {
-                            self.beginRate.amtRate = 0;
-                        }
-                        if (res.data.total != 0) {
-                            self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
-                        } else {
-                            self.beginRate.noRate = "0%";
-                            self.beginRate.beginRate = "0%";
-                            self.beginRate.endRate = "0%";
-                            self.beginRate.stopRate = "0%";
-                            self.beginRate.aRate = "0%";
-                            self.beginRate.bRate = "0%";
-                            self.beginRate.cRate = "0%";
-                        }
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
-                    }
-                });*/
             },
             getStatusName: function (status) {
                 const statusMap = {
@@ -866,9 +791,10 @@
                         {type: 'numbers', align: 'center', minwidth: 44, title: '序号'},
                         {field: 'subName', title: '项目名称', minwidth: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', minwidth: 200},
+                        {field: 'content', title: '项目建设内容', minwidth: 200},
                         {
                             field: 'amtTotal',
-                            title: '项目建设内容(亿元)',
+                            title: '计划总投资(亿元)',
                             minwidth: 200,
                             templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
                         },

+ 69 - 217
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp

@@ -378,25 +378,17 @@
             <div class="layui-row">
                 <div style="display: flex">
                     <label class="juli">
-                        储备项目总数<span class="lanse-first">{{beginRate.total}}</span>
+                        储备项目总数<span class="lanse-first">{{beginRate.num}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar"></div>
                             </div>
                         </div>
                     </label>
-                    <%--                    <label class="juli">--%>
-                    <%--                        未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
 
                     <label class="juli" onclick="levelList('abcs','A类','A')">
                         A类项目数
-                        <span class="lanse-first">{{beginRate.aNum}}</span>
+                        <span class="lanse-first">{{beginRate.anum}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar" :style="'width:'+beginRate.aRate"></div>
@@ -405,7 +397,7 @@
                     </label>
                     <label class="juli">
                         B类项目数
-                        <span class="lanse-first" onclick="levelList('abcs','B类','B')">{{beginRate.bNum}}</span>
+                        <span class="lanse-first" onclick="levelList('abcs','B类','B')">{{beginRate.bnum}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar" :style="'width:'+beginRate.bRate"></div>
@@ -414,82 +406,30 @@
                     </label>
                     <label class="juli" onclick="levelList('abcs','C类','C')">
                         C类项目数
-                        <span class="lanse-first">{{beginRate.cNum}}</span>
+                        <span class="lanse-first">{{beginRate.cnum}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar" :style="'width:'+beginRate.cRate"></div>
                             </div>
                         </div>
                     </label>
-<%--                    <label class="juli">--%>
-<%--                        &lt;%&ndash;                        已开工项目数&ndash;%&gt;储备已转化的项目数--%>
-<%--                        <span class="lanse-first">{{beginRate.cbzh}}</span>--%>
-<%--                        <div class="progress-div">--%>
-<%--                            <div class="layui-progress">--%>
-<%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
-<%--                            </div>--%>
-<%--                        </div>--%>
-<%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress" lay-filter="layui-progress-bar">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-<%--                    <label class="juli">--%>
-<%--                        &lt;%&ndash;                        开工率&ndash;%&gt;储备转化率--%>
-<%--                        <span class="lanse-first">{{beginRate.cbRate}}%</span>--%>
-<%--                        <div class="progress-div">--%>
-<%--                            <div class="layui-progress">--%>
-<%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
-<%--                            </div>--%>
-<%--                        </div>--%>
-<%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        竣工率--%>
-                    <%--                        --%>
-                    <%--                        <span class="lanse-first">{{beginRate.endRate}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        投资进度<span class="lanse-first">{{beginRate.amtRate}}%</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.amtRate+'%'"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
                 </div>
                 <div style="display: flex;margin-bottom: 3px">
 
                     <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                     <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
-                        {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
             </div>
@@ -709,34 +649,6 @@
         <span title="编辑" lay-event="toEditSubInfo" class="no-wrap">&nbsp;编辑</span>
         {{#} }}
         <span title="移入" lay-event="move" class="no-wrap">移入</span>
-<%--        <span title="项目信息" lay-event="toDetail" class="no-wrap">项目信息</span>--%>
-<%--        <c:if test="${isHydw}">--%>
-<%--            <span title="项目大事迹" lay-event="leaderSupervise" class="no-wrap">项目大事迹</span>--%>
-<%--            &lt;%&ndash;      <span title="问题督办" lay-event="problem" class="no-wrap">&nbsp;问题督办</span>&ndash;%&gt;--%>
-<%--        </c:if>--%>
-<%--        {{# if(d.unitId == "${currUnitId}") { }}--%>
-<%--        <span title="原因录入" lay-event="setSubReason" class="no-wrap">&nbsp;原因录入</span>--%>
-<%--        {{#}}}--%>
-
-<%--        {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}--%>
-<%--        <span title="信息修改" lay-event="toEditSubInfo" class="no-wrap">&nbsp;信息修改</span>--%>
-<%--        {{#} }}--%>
-<%--        <span title="退回" lay-event="toBack" class="no-wrap">&nbsp;退回</span>--%>
-<%--        &lt;%&ndash;	{{# if("${currUser.edit}" == 'true') { }}&ndash;%&gt;--%>
-<%--        &lt;%&ndash;	{{# if(d.status != '0' && d.status != '6' && d.status != '7' && d.status != '8' && d.status != '9' && d.status != 'A') { }}&ndash;%&gt;--%>
-<%--        &lt;%&ndash;		<span title="退回暂存" lay-event="toTh">&nbsp;退回暂存</span>&ndash;%&gt;--%>
-<%--        &lt;%&ndash;	{{#}}}&ndash;%&gt;--%>
-<%--        &lt;%&ndash;	{{#} }}&ndash;%&gt;--%>
-<%--        <span title="手续办理" lay-event="preNew" class="no-wrap">&nbsp;手续办理</span>--%>
-<%--        <c:if test="${admin || isSfgw}">--%>
-<%--     &lt;%&ndash;       {{# if(d.isHide == "1") { }}--%>
-<%--            <span title="取消在建库" lay-event="isNoHide" class="no-wrap">&nbsp;取消在建库</span>--%>
-<%--            {{#} else { }}&ndash;%&gt;--%>
-<%--            <span title="移入在建库" lay-event="isHide" class="no-wrap">&nbsp;移入在建库</span>--%>
-<%--   &lt;%&ndash;         {{#} }}&ndash;%&gt;--%>
-<%--            <span title="移入新建库" lay-event="setIsNew" class="no-wrap">&nbsp;移入新建库</span>--%>
-<%--        </c:if>--%>
-
     </div>
 </script>
 
@@ -755,43 +667,6 @@
         <div class="line"><span class="qianse">已办理完成手续:</span> <span class="shense">{{d.preEndNum}}</span>个
 
         </div>
-        <%--		{{# if(d.xmbaIs == '' || d.xmbaIs == null ) { }}--%>
-        <%--			<span class="qianse">项目备案:</span> <span class="shense">未办理</span>  <br/>--%>
-        <%--		{{#} else if(d.xmbaIs == '2' ) { }}--%>
-        <%--			<span class="qianse">项目备案:</span> <span class="shense">无需办理</span> <br/>--%>
-
-        <%--		{{#} else { }}--%>
-
-        <%--			{{# if(d.xmbaStatus == '' || d.xmbaStatus == null ) { }}--%>
-        <%--						<span class="qianse">项目备案:</span> <span class="shense">未办理</span>	 <br/>--%>
-        <%--			{{#} else if(d.xmbaStatus == '0') { }}--%>
-        <%--					<span class="qianse">项目备案:</span> <span class="shense">未办理</span>	 <br/>--%>
-        <%--			{{#} else if(d.xmbaStatus == '1') { }}--%>
-        <%--					<span class="qianse">项目备案:</span> <span class="shense">开始办理</span>	 <br/>--%>
-        <%--			{{#} else if(d.xmbaStatus == '2') { }}--%>
-        <%--					<span class="qianse">项目备案:</span> <span class="shense">已办理</span>	 <br/>--%>
-        <%--			{{#} }}--%>
-
-        <%--		{{#} }}--%>
-
-
-        <%--		{{# if(d.yjbgIs == '' || d.yjbgIs == null ) { }}--%>
-        <%--			可行性研究报告:未办理 <br/>--%>
-        <%--		{{#} else if(d.yjbgIs == '2' ) { }}--%>
-        <%--			可行性研究报告:无需办理 <br/>--%>
-        <%--		{{#} else { }}--%>
-        <%--			{{# if(d.yjbgStatus == '' || d.yjbgStatus == null ) { }}--%>
-        <%--							可行性研究报告:未办理 <br/>--%>
-        <%--			{{#} else if(d.yjbgStatus == '0') { }}--%>
-        <%--						可行性研究报告:未办理 <br/>--%>
-        <%--			{{#} else if(d.yjbgStatus == '1') { }}--%>
-        <%--						可行性研究报告:开始办理 <br/>--%>
-        <%--			{{#} else if(d.yjbgStatus == '2') { }}--%>
-        <%--						可行性研究报告:已办理 <br/>--%>
-        <%--			{{#} }}--%>
-
-        <%--		{{#} }}--%>
-
     </>
 
 </script>
@@ -861,7 +736,7 @@
     layui.use('element', function () {
         let element = layui.element;
     });
-    new Vue({
+    let vm = new Vue({
         el: "#app",
         template: "#template",
         data: {
@@ -878,13 +753,66 @@
             light: null,
             sort: {field: "abc", type: ""},
             pageSize: 10,
-            showExport: false
+            showExport: false,
+            moveDbParam:{
+                status: "",
+                id: ""
+            }
         },
         mounted: function () {
             this.init()
         },
         methods: {
+            closeAllLayers() {
+                layui.layer.closeAll(); // 关闭所有弹框
+            },
+            confirmMove: function () {
+                let param = this.moveDbParam
+                App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+            },
+            move (obj) {
+                this.moveDbParam.id = obj.data.id
+                this.moveDbParam.status = obj.data.cbStatus
+                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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.form.render();
+                    }
+                });
+            },
             init: function () {
+                let self = this;
+                layui.form.on("select(moveStatus)", function (data) {
+                    self.moveDbParam.status = data.value;
+                });
                 this.winH = document.body.clientHeight;
                 var nowdate = new Date();
                 nowdate.setMonth(nowdate.getMonth() + 1);
@@ -1116,51 +1044,12 @@
                     self.loadPage(res.total);
                     self.loadTable();
                 });
-
-
-                // App.postJson("/api/subInfo/query/all", param, function (res) {
-                //     self.dataList = res.rows;
-                //     self.loadPage(res.total);
-                //     self.loadTable();
-                // });
-                App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                // 统计数据
+                App.postJson("/api/subInfo/query/statistics", param, function (res) {
                     if (res.success) {
                         self.beginRate = res.data;
-                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 0;
-                        }
-                        if (res.data.yearAmt != 0) {
-                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                        } else if (res.data.yearAmtSj != 0) {
-                            self.beginRate.amtRate = 100;
-                        } else {
-                            self.beginRate.amtRate = 0;
-                        }
-                        if (res.data.total != 0) {
-                            self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
-                        } else {
-                            self.beginRate.noRate = "0%";
-                            self.beginRate.beginRate = "0%";
-                            self.beginRate.endRate = "0%";
-                            self.beginRate.stopRate = "0%";
-                            self.beginRate.aRate = "0%";
-                            self.beginRate.bRate = "0%";
-                            self.beginRate.cRate = "0%";
-                        }
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
+                        self.beginRate.hyflList = self.beginRate.hyflData;
+                        self.beginRate.jsddList = self.beginRate.jsddData;
                     }
                 });
             },
@@ -1200,47 +1089,10 @@
                     cols: [[ // 设置表头
                         {type: 'numbers', fixed: 'left', align: 'center', width: 44, title: '序号'},
                         {field: 'subName', fixed: 'left', title: '项目名称', width: 200, templet: '#subName'},
-                        /*{
-                            field: 'abc',
-                            type: 'string',
-                            title: 'ABC',
-                            fixed: 'left',
-                            align: 'center',
-                            width: 60,
-                            templet: "#abcSpan"
-                        },
-                        // {field: 'offsetLight', title: '偏离状态', fixed: 'left', minWidth: 150, templet: '#offsetLight'},
-                        // {field: 'statusName', title: '项目进度', width: 200},
-                        // {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt', sort:"amtTotal"},
-                        // {field: 'offset', title: '偏离度-%', width: 100},
-                        // {field: 'fileId', title: '现场影像', width: 150, templet:'#imageDiv'},
-                        /!*  {field: 'xmbaStatus', title: '前期手续办理情况', width: 160, templet: '#preInfo'},*!/
-                        {field: 'xmbaStatus', title: '计划时间', width: 160, templet: '#date'},
-                        {field: 'xmbaStatus', title: '总投资', width: 245, templet: '#amtTotal'},
-                        {field: 'indusKindName', title: '所属行业', width: 115},
-                        {field: 'zjly', title: '资金来源', width: 115, templet: '#zjly'},
-                        {field: 'mainName', title: '日常责任监管单位', width: 115},
-                        {field: 'unitName', title: '项目单位', minWidth: 150},
-                        // {field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight'},
-                        // {field: 'statusName', title: '项目进度', width: 200},
-                   /!*     {
-                            field: 'isHide',
-                            type: 'string',
-                            title: '在建库',
-                            align: 'center',
-                            width: 70,
-                            templet: function (row) {
-                                if (row.isHide == "1") {
-                                    return '<span style="color: #08AF00">是</span>';
-                                } else {
-                                    return '<span style="color: #666666">否</span>';
-                                }
-                                return "";
-                            }
-                        },*!/*/
                         {field: 'subjectName', fixed: 'left', title: '项目所在地', width: 200},
+                        {field: 'content', fixed: 'left', title: '项目建设内容', width: 200},
                         {
-                            field: 'amtTotal', fixed: 'left', title: '项目建设内容(亿元)', width: 200, templet: function (d) {
+                            field: 'amtTotal', fixed: 'left', title: '计划总投资(亿元)', width: 200, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";
                             }
                         },

+ 11 - 19
projects/src/main/webapp/vmodules/subject/subInfo/tz/end.jsp

@@ -75,8 +75,7 @@
     <div class="layui-layout layui-layout-admin">
         <!-- 内容区域 -->
         <div class="right_title">
- <%--           <span class="txt">竣工项目库</span>--%>
-            <div class="txt" style="width: 100%; font-size: 35px; font-family: '方正小标宋', '仿宋', sans-serif; text-align: center;font-weight: bold;">竣工项目库</div>
+            <div class="txt" style="width: 100%; font-size: 35px; font-family: '方正小标宋', '仿宋', sans-serif; text-align: center;font-weight: bold;">投产项目库</div>
      <div class="layui-btn-container" style="margin-top: 20px;margin-left: 20px">
          <button type="button" class="layui-btn">导出明细</button>
          <button type="button" class="layui-btn">导出总表</button>
@@ -200,13 +199,9 @@
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label required label-longers" style="width: 100px;">升规入统时间</label>
-                                        <div class="layui-input-block time_box">
-                                            <input type="number" name="startAmt" placeholder="请输入最小金额"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                            <span class="split_txt">至</span>
-                                            <input type="number" name="endAmt" placeholder="请输入最大金额" autocomplete="off"
-                                                   class="layui-input">
+                                        <div class="layui-input-block time_box" style="margin-left:120px">
+                                            <input type="text" id="startTime" name="rangeDate" placeholder="请选择时间段"
+                                                   autocomplete="off" class="layui-input" style="margin-left: 20px;">
                                         </div>
                                     </div>
                                 </div>
@@ -406,7 +401,8 @@
                     <%--							</div>--%>
                     <%--						</label>--%>
                     <label class="juli">
-                        竣工项目总数<span class="lanse-first">{{endData||0}}</span>
+<%--                        投产项目总数<span class="lanse-first">{{endData||0}}</span>--%>
+                        投产项目总数<span class="lanse-first">{{beginRate.num}}</span>
 <%--                        <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar" style=""></div>
@@ -435,7 +431,7 @@
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.name?item.name:item.code,item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
                         {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
@@ -749,7 +745,7 @@
                     content: '<div class="layui-form" style="padding: 20px;">' +
                         '<div class="layui-form-item">' +
                             '<label class="layui-form-label">入规日期:</label>' +
-                            '<input class="layui-form-label" type="date" id="rgDate">' +
+                            '<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>' +
@@ -758,17 +754,13 @@
                     '</div>',
                     area: ['350px', '300px'],
                     success: function(layero, index){
-                        layui.form.render();
+                        layui.laydate.render({
+                            elem: '#rgDate'
+                        });
                     }
                 });
             },
             init: function () {
-                layui.form.on("select(rgDate)", function (data) {
-                    console.log(data,data.value)
-                    console.log("=========")
-
-                    self.rgParam.rgDate = data.value;
-                });
                 this.winH = document.body.clientHeight;
                 var nowdate = new Date();
                 nowdate.setMonth(nowdate.getMonth() + 1);

+ 135 - 65
projects/src/main/webapp/vmodules/subject/subInfo/tz/end_sum.jsp

@@ -75,8 +75,7 @@
     <div class="layui-layout layui-layout-admin">
         <!-- 内容区域 -->
         <div class="right_title">
-            <%--           <span class="txt">竣工项目库</span>--%>
-            <div class="txt" style="width: 100%;text-align: center">竣工项目库</div>
+            <div class="txt" style="width: 100%;text-align: center">投产项目库</div>
             <div style="width: 100%;text-align: center">${tips}</div>
             <%-- <div class="layui-collapse">
                  <div class="layui-colla-item">
@@ -336,7 +335,7 @@
                     <%--							</div>--%>
                     <%--						</label>--%>
                     <label class="juli">
-                        竣工项目总数<span class="lanse-first">{{endData||0}}</span>
+                        投产项目总数<span class="lanse-first">{{beginRate.num}}</span>
                         <%--                        <div class="progress-div">
                                                     <div class="layui-progress">
                                                         <div class="layui-progress-bar" style=""></div>
@@ -356,20 +355,20 @@
 
                 <div style="display: flex;margin-bottom: 3px">
 
-                    <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
+                    <label @click="levelList('kindNatures',item.name,item.code)" class="juli"
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
-                    <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
+                    <label class="juli" @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
-                        {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
             </div>
@@ -614,26 +613,15 @@
 
 <script type="text/html" id="toolBar">
     <div class="toolBar">
-        <span title="项目信息" lay-event="toDetail" class="no-wrap">项目信息</span>
-        <c:if test="${isHydw}">
-            <span title="项目大事迹" lay-event="leaderSupervise" class="no-wrap">项目大事迹</span>
-        </c:if>
-        {{# if("${currUser.edit}" == 'true') { }}
-        <span title="信息修改" lay-event="toEditSubInfo" class="no-wrap">&nbsp;信息修改</span>
-        <span title="退回" lay-event="toBack" class="no-wrap">&nbsp;退回</span>
+        <span title="项目查询" lay-event="toDetail" class="no-wrap">项目查询</span>
+        {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}
+        <span title="编辑" lay-event="toEditSubInfo" class="no-wrap">&nbsp;编辑</span>
         {{#} }}
-        <c:if test="${admin}">
-            {{# if(d.isHide == "1") { }}
-            <span title="取消在建库" lay-event="isNoHide" class="no-wrap">&nbsp;取消在建库</span>
-            {{#} else { }}
-            <span title="移入在建库" lay-event="isHide" class="no-wrap">&nbsp;移入在建库</span>
-            {{#} }}
-            <span title="项目后评价" lay-event="setAssess" class="no-wrap">&nbsp;项目后评价</span>
-        </c:if>
+        <span title="入规" lay-event="rg" class="no-wrap">入规</span>
     </div>
 </script>
 <script>
-    new Vue({
+    let vm = new Vue({
         el: "#app",
         template: "#template",
         data: {
@@ -651,12 +639,62 @@
             sort: {field: "amtTotal", type: "desc"},
             pageSize: 10,
             endData: '',
-            showExport: false
+            showExport: false,
+            rgParam:{
+                rgDate: "",
+                id: ""
+            }
         },
         mounted: function () {
             this.init()
         },
         methods: {
+            closeAllLayers() {
+                layui.layer.closeAll();
+            },
+
+            confirmMove: function() {
+                let rgDate = document.getElementById('rgDate').value;
+                if (!rgDate) {
+                    App.msg.error('请选择入规日期');
+                }
+                let param = {rgDate:rgDate,id:this.rgParam.id}
+                App.postJson("/api/subject/subInfo/rg",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+            },
+            // confirmMove: function () {
+            //     let param = this.rgParam
+            //     console.log(param,"=====")
+            //     App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+            //         App.msg.success(res.msg);
+            //     })
+            //     this.closeAllLayers();
+            // },
+            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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.laydate.render({
+                            elem: '#rgDate'
+                        });
+                    }
+                });
+            },
             init: function () {
                 this.winH = document.body.clientHeight;
                 var nowdate = new Date();
@@ -815,35 +853,51 @@
                 param.orderType = this.sort.type || null;
                 param = Object.assign(param, ${sumParams});
                 /*           alert(JSON.stringify(param));*/
-                App.postJson("/api/subInfo/query/all", param, function (res) {
+                // 表格分页数据
+                param.status = 9;
+                App.postJson("/api/subInfo/query/queryPage", param, function (res) {
                     self.dataList = res.rows;
                     self.loadPage(res.total);
                     self.loadTable();
                 });
-                App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+
+                // 统计数据
+                App.postJson("/api/subInfo/query/statistics", param, function (res) {
                     if (res.success) {
                         self.beginRate = res.data;
-                        self.endData = res.data.total;
-                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 0;
-                        }
-                        if (res.data.yearAmt != 0) {
-                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                        } else if (res.data.yearAmtSj != 0) {
-                            self.beginRate.amtRate = 100;
-                        } else {
-                            self.beginRate.amtRate = 0;
-                        }
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
+                        self.beginRate.hyflList = self.beginRate.hyflData;
+                        self.beginRate.jsddList = self.beginRate.jsddData;
                     }
                 });
+                // App.postJson("/api/subInfo/query/all", param, function (res) {
+                //     self.dataList = res.rows;
+                //     self.loadPage(res.total);
+                //     self.loadTable();
+                // });
+                // App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                //     if (res.success) {
+                //         self.beginRate = res.data;
+                //         self.endData = res.data.total;
+                //         self.beginRate.hyflList = self.beginRate.hyflData.split(";");
+                //         self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
+                //         self.beginRate.jsddList = self.beginRate.jsddData.split(";");
+                //         if (res.data.total != 0) {
+                //             self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
+                //         } else {
+                //             self.beginRate.beginRate = 0;
+                //         }
+                //         if (res.data.yearAmt != 0) {
+                //             self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
+                //         } else if (res.data.yearAmtSj != 0) {
+                //             self.beginRate.amtRate = 100;
+                //         } else {
+                //             self.beginRate.amtRate = 0;
+                //         }
+                //     } else {
+                //         self.beginRate.beginRate = 0;
+                //         self.beginRate.amtRate = 0;
+                //     }
+                // });
             },
             loadTable: function () {
                 for (var i = 0; i < this.dataList.length; i++) {
@@ -895,24 +949,40 @@
                         <%--	return temp;--%>
                         <%--	}},--%>
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 300, templet: '#subName'},
-                        <c:if test="${sfgw}">
-                        {field: 'score', title: '得分', width: 70, templet: '#scoreTem'},
-                        {field: 'assessReason', title: '项目后评价', minWidth: 150, templet: '#assessReasonTem'},
-                        </c:if>
-                        {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt'},
-                        // {field: 'offset', title: '偏离度-%', width: 100 },
-                        {field: 'mainName', title: '日常责任监管单位', minWidth: 100},
-                        {field: 'unitName', title: '项目单位', minWidth: 120},
-                        // {field: 'statusName', title: '项目进度', width: 200},
-                        // {field: 'isHide', title: '在建库', minWidth: 120,templet: function(row) {
-                        // 		if(row.isHide == "1") {
-                        // 			return '<span>是</span>';
-                        // 		}else{
-                        // 			return '<span>否</span>';
-                        // 		}
-                        // 		return "";
-                        // 	}},
-                        // {field: 'reason', title: '退回/不同意原因', width: 160},
+                        <%--                        <c:if test="${sfgw}">--%>
+                        <%--                        // {field: 'score', title: '得分', width: 70, templet: '#scoreTem'},--%>
+                        <%--                        {field: 'assessReason', title: '项目后评价', minWidth: 150, templet: '#assessReasonTem'},--%>
+                        <%--                        </c:if>--%>
+                        {field: 'subjectName', title: '项目所在地', minWidth: 150},
+                        {field: 'content', title: '项目基本情况', minWidth: 150},
+                        {field: 'rgDate', title: '升规入统时间', minWidth: 150},
+                        {field: 'progress', title: '进展情况', minWidth: 150},
+                        {field: 'remark', title: '备注', minWidth: 150},
+                        // {field: 'acceptanceReports', title: '验收报告', minWidth: 150, templet: function(row) {
+                        //         if (row.acceptanceReports && row.acceptanceReports.length > 0) {
+                        //             // 渲染所有文件名,并绑定文件路径
+                        //             return row.acceptanceReports.map(function(report) {
+                        //                 return '<a href="' + report.picAddre + '" target="_blank">' + report.picName + '</a>';
+                        //             }).join('<br>');  // 使用 <br> 分隔多个文件
+                        //         } else {
+                        //             return '无报告';
+                        //         }
+                        //     }},
+                        // // {field: 'regulationStatus', title: '申规入统', minWidth: 150},
+                        // {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt'},
+                        // // {field: 'offset', title: '偏离度-%', width: 100 },
+                        // {field: 'mainName', title: '日常责任监管单位', minWidth: 100},
+                        // {field: 'unitName', title: '项目单位', minWidth: 120},
+                        // // {field: 'statusName', title: '项目进度', width: 200},
+                        // // {field: 'isHide', title: '在建库', minWidth: 120,templet: function(row) {
+                        // // 		if(row.isHide == "1") {
+                        // // 			return '<span>是</span>';
+                        // // 		}else{
+                        // // 			return '<span>否</span>';
+                        // // 		}
+                        // // 		return "";
+                        // // 	}},
+                        // // {field: 'reason', title: '退回/不同意原因', width: 160},
                         {title: '操作', width: 200, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,

+ 76 - 48
projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp

@@ -163,13 +163,9 @@
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label required label-longers" style="width: 100px;">建成投产时间</label>
-                                        <div class="layui-input-block time_box">
-                                            <input type="number" name="startAmt" placeholder="请输入最小金额"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                            <span class="split_txt"> - </span>
-                                            <input type="number" name="endAmt" placeholder="请输入最大金额" autocomplete="off"
-                                                   class="layui-input">
+                                        <div class="layui-input-block time_box" style="margin-left:120px">
+                                            <input type="text" id="startTime" name="rangeDate" placeholder="请选择时间段"
+                                                   autocomplete="off" class="layui-input" style="margin-left: 20px;">
                                         </div>
                                     </div>
                                 </div>
@@ -177,11 +173,11 @@
                                     <div class="layui-form-item">
                                         <label class="layui-form-label required label-longers" style="width: 100px;">年度投资</label>
                                         <div class="layui-input-block time_box">
-                                            <input type="number" name="startAmt" placeholder="请输入最小金额"
+                                            <input type="number" name="yearMixAmt" placeholder="请输入最小金额"
                                                    autocomplete="off"
                                                    class="layui-input">
                                             <span class="split_txt"> - </span>
-                                            <input type="number" name="endAmt" placeholder="请输入最大金额" autocomplete="off"
+                                            <input type="number" name="yearMaxAmt" placeholder="请输入最大金额" autocomplete="off"
                                                    class="layui-input">
                                         </div>
                                     </div>
@@ -213,15 +209,16 @@
         </div>
         <div>
             <div class="layui-row">
-                <%--                <div style="display: flex;margin-bottom: 3px">--%>
-                <%--                    <label class="juli">--%>
-                <%--                        在建项目总数<span class="lanse-first">{{beginRate.total}}</span>--%>
-                <%--                        <div class="progress-div">--%>
-                <%--                            <div class="layui-progress">--%>
-                <%--                                <div class="layui-progress-bar"></div>--%>
-                <%--                            </div>--%>
-                <%--                        </div>--%>
-                <%--                    </label>--%>
+                                <div style="display: flex;margin-bottom: 3px">
+                                    <label class="juli">
+                                        在建项目总数<span class="lanse-first">{{beginRate.num}}</span>
+                                        <div class="progress-div">
+                                            <div class="layui-progress">
+                                                <div class="layui-progress-bar"></div>
+                                            </div>
+                                        </div>
+                                    </label>
+                                </div>
                 <%--         &lt;%&ndash;           <label class="juli">--%>
                 <%--                        未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>--%>
                 <%--                        <div class="progress-div">--%>
@@ -325,9 +322,9 @@
 
                 <div style="display: flex;margin-bottom: 3px">
 
-                    <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
+                    <label @click="levelList('kindNatures',item.name,item.code)" class="juli"
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                     <label class="juli" @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
@@ -336,7 +333,7 @@
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
                         {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
@@ -690,7 +687,7 @@
     </div>
 </script>
 <script>
-    new Vue({
+    let vm = new Vue({
         el: "#app",
         template: "#template",
         data: {
@@ -712,13 +709,66 @@
                          field: 'amtTotal',
                          type: null
                      },*/
-            showExport: false
+            showExport: false,
+            moveDbParam: {
+                id:null,
+                status:null
+            }
         },
         mounted: function () {
             this.init()
         },
         methods: {
+            closeAllLayers() {
+                layui.layer.closeAll(); // 关闭所有弹框
+            },
+            confirmMove: function () {
+                let param = this.moveDbParam
+                App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+            },
+            move (obj) {
+                this.moveDbParam.id = obj.data.id
+                this.moveDbParam.status = obj.data.cbStatus
+                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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.form.render();
+                    }
+                });
+            },
             init: function () {
+                let self = this;
+                layui.form.on("select(moveStatus)", function (data) {
+                    self.moveDbParam.status = data.value;
+                });
                 this.winH = document.body.clientHeight;
                 layui.laydate.render({
                     elem: '#startTime',
@@ -1045,39 +1095,17 @@
                             }
                         },
                         {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
-                        // {field: 'abc',type:'string', title: 'ABC',fixed: 'left', align:'center', width: 60, templet: "#abcSpan"},
-                        /*                 {field: 'offset', title: '偏离状态', fixed: 'left', minWidth: 150},*/
-                        // {
-                        //     field: 'offsetLight',
-                        //     // title: '偏离状态',
-                        //     title: '投资偏离度',
-                        //     type: 'string',
-                        //     align: 'center',
-                        //     fixed: 'left',
-                        //     width: 100,
-                        //     templet: '#offsetLight'
-                        // },
                         {field: 'subjectName', title: '项目所在地', width: 200},
+                        {field: 'content', title: '项目建设内容', width: 200},
                         {
-                            field: 'amtTotal',  title: '项目建设内容(亿元)', width: 200, templet: function (d) {
+                            field: 'amtTotal',  title: '计划总投资(亿元)', width: 200, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";
                             }
                         },
                         {field: 'tcDate',  title: '建成投产时间', width: 200,templet: '#date'},
-                        {field: 'amtTotal', title: '年度投资', width: 200},
+                        {field: 'yearAmtSj', title: '年度投资', width: 200},
                         {field: 'progress',  title: '进展情况', width: 200},
                         {field: 'remark', title: '备注', width: 200},
-
-                        // {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt', sort: true},
-                        // // {field: 'statusName', title: '建设进度', width: 60},
-                        // {field: 'ybContent', title: '建设进度', width: 60},
-                        // {field: 'state', title: '计划时间', width: 140, templet: '#date'},
-                        // // {field: 'leaderName', title: '分管领导', minWidth: 180, templet: '#leaderInfo'},
-                        // {field: 'fileId', title: '现场影像', width: 90, templet: '#imageDiv'},
-                        //
-                        // {field: 'mainName', title: '日常责任监管单位', minWidth: 100},
-                        // {field: 'unitName', title: '项目单位', minWidth: 110},
-                        // // { field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight' },
                         {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,

+ 133 - 198
projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp

@@ -349,106 +349,7 @@
             <div class="layui-row">
                 <div style="display: flex;margin-bottom: 3px">
                     <label class="juli">
-                        在建项目总数<span class="lanse-first">{{beginRate.total}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar"></div>
-                            </div>
-                        </div>
-                    </label>
-         <%--           <label class="juli">
-                        未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <label class="juli">
-                        已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                            </div>
-                        </div>
-                    </label>--%>
-                    <%-- <label class="juli">
-                         已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>
-                         <div class="progress-div">
-                             <div class="layui-progress">
-                                 <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                             </div>
-                         </div>
-                     </label>
-                     <label class="juli">
-                         停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>
-                         <div class="progress-div">
-                             <div class="layui-progress" lay-filter="layui-progress-bar">
-                                 <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>
-                             </div>
-                         </div>
-                     </label>--%>
-
-             <%--       <label class="juli">
-                        开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                            </div>
-                        </div>
-                    </label>--%>
-                    <label class="juli">
-                        转竣工项目数<span class="lanse-first">{{beginRate.zjzh}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.jgRate"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <label class="juli">
-                        竣工项目转化率<span class="lanse-first">{{beginRate.jgRate}}%</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.jgRate"></div>
-                            </div>
-                        </div>
-                    </label>
-   <%--                 <label class="juli">
-                        竣工率<span class="lanse-first">{{beginRate.endRate}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                            </div>
-                        </div>
-                    </label>--%><%--
-                    <label class="juli">
-                        投资进度<span class="lanse-first">{{beginRate.amtRate}}%</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.amtRate+'%'"></div>
-                            </div>
-                        </div>
-                    </label>--%>
-                </div>
-                <div style="display: flex;margin-bottom: 3px">
-                    <label class="juli">
-                        年初计划投资<span class="lanse-first">{{beginRate.yearAmt}}亿元</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <label class="juli">
-                        月度任务<span class="lanse-first">{{beginRate.yearAmtAssign}}亿元</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <label class="juli">
-                        月度实际投资<span class="lanse-first">{{beginRate.yearAmtSj}}亿元</span>
+                        在建项目总数<span class="lanse-first">{{beginRate.num}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar"></div>
@@ -459,20 +360,20 @@
 
                 <div style="display: flex;margin-bottom: 3px">
 
-                    <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
+                    <label @click="levelList('kindNatures',item.name,item.code)" class="juli"
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
-                    <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
+                    <label class="juli" @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
-                        {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
             </div>
@@ -792,37 +693,15 @@
 </script>
 <script type="text/html" id="toolBar">
     <div class="toolBar">
-        <span title="项目信息" lay-event="toDetail" class="no-wrap">项目信息</span>
-        <c:if test="${isHydw}">
-            <%--            <span title="问题督办" lay-event="problem" class="no-wrap">&nbsp;问题督办</span>--%>
-            <span title="项目大事迹" lay-event="leaderSupervise" class="no-wrap">项目大事迹</span>
-        </c:if>
-        {{# if(d.unitId == "${currUnitId}") { }}
-        <span title="原因录入" lay-event="setSubReason" class="no-wrap">&nbsp;原因录入</span>
-        {{#}}}
-        {{# if("${currUser.edit}" == 'true') { }}
-        <span title="信息修改" lay-event="toEditSubInfo" class="no-wrap">&nbsp;信息修改</span>
-        <span title="退回" lay-event="toBack" class="no-wrap">&nbsp;退回</span>
+        <span title="项目查询" lay-event="toDetail" class="no-wrap">项目查询</span>
+        {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}
+        <span title="编辑" lay-event="toEditSubInfo" class="no-wrap">&nbsp;编辑</span>
         {{#} }}
-
-        {{#if(d.status == "8"){ }}
-        <span title="开工" lay-event="changeTg" class="no-wrap">&nbsp;开工</span>
-        {{#} else if(d.status === "7"){ }}
-        <span title="停工" lay-event="changeTg" class="no-wrap">&nbsp;停工</span>
-        {{#} }}
-
-        <c:if test="${admin}">
-        <%--    {{# if(d.isHide == "1") { }}--%>
-            <span title="取消在建库" lay-event="isNoHide">&nbsp;取消在建库</span>
-   <%--         {{#} else { }}
-            <span title="移入在建库" lay-event="isHide">&nbsp;移入在建库</span>--%>
-<%--            {{#} }}--%>
-        </c:if>
-
+        <span title="移入" lay-event="move" class="no-wrap">移入</span>
     </div>
 </script>
 <script>
-    new Vue({
+    let vm = new Vue({
         el: "#app",
         template: "#template",
         data: {
@@ -844,12 +723,61 @@
                 field: 'yearPlanAmt',
                 type: null
             },*/
-            showExport: false
+            showExport: false,
+            moveDbParam: {
+                id:null,
+                status:null
+            }
         },
         mounted: function () {
             this.init()
         },
         methods: {
+            closeAllLayers() {
+                layui.layer.closeAll(); // 关闭所有弹框
+            },
+            confirmMove: function () {
+                let param = this.moveDbParam
+                App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+            },
+            move (obj) {
+                this.moveDbParam.id = obj.data.id
+                this.moveDbParam.status = obj.data.cbStatus
+                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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.form.render();
+                    }
+                });
+            },
             init: function () {
                 this.winH = document.body.clientHeight;
             /*   layui.laydate.render({
@@ -1053,57 +981,73 @@
                 param.orderBy = this.sort.field;
                 param.orderType = this.sort.type || null;
                 param = Object.assign(param, ${sumParams});
-                App.postJson("/api/subInfo/query/all", param, function (res) {
+                // 表格分页数据
+                param.status = 3;
+                App.postJson("/api/subInfo/query/queryPage", param, function (res) {
                     self.dataList = res.rows;
                     self.loadPage(res.total);
-                    self.loadTable(param);
+                    self.loadTable();
                 });
 
-                App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                // 统计数据
+                App.postJson("/api/subInfo/query/statistics", param, function (res) {
                     if (res.success) {
                         self.beginRate = res.data;
-                        res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
-                        res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
-                        res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
-                        self.beginRate.yearAmtSj = res.data.monthAmtSj
-                        self.beginRate.yearAmtAssign = res.data.monthAmtAssign
-                        self.beginRate.yearAmt = res.data.monthAmt
-                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                        //  alert(JSON.stringify( self.beginRate.hyflList));
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 0;
-                            self.beginRate.endRate = 0;
-                        }
-                        if (res.data.yearAmt != 0) {
-                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                        } else if (res.data.yearAmtSj != 0) {
-                            self.beginRate.amtRate = 100;
-                        } else {
-                            self.beginRate.amtRate = 0;
-                        }
-                        if (res.data.total != 0) {
-                            self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                        } else {
-                            self.beginRate.noRate = "0%";
-                            self.beginRate.beginRate = "0%";
-                            self.beginRate.endRate = "0%";
-                            self.beginRate.stopRate = "0%";
-                        }
-
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
-                        self.beginRate.endRate = 0;
+                        self.beginRate.hyflList = self.beginRate.hyflData;
+                        self.beginRate.jsddList = self.beginRate.jsddData;
                     }
                 });
+                // App.postJson("/api/subInfo/query/all", param, function (res) {
+                //     self.dataList = res.rows;
+                //     self.loadPage(res.total);
+                //     self.loadTable(param);
+                // });
+
+                // App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                //     if (res.success) {
+                //         self.beginRate = res.data;
+                //         res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
+                //         res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
+                //         res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
+                //         self.beginRate.yearAmtSj = res.data.monthAmtSj
+                //         self.beginRate.yearAmtAssign = res.data.monthAmtAssign
+                //         self.beginRate.yearAmt = res.data.monthAmt
+                //         self.beginRate.hyflList = self.beginRate.hyflData.split(";");
+                //         self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
+                //         self.beginRate.jsddList = self.beginRate.jsddData.split(";");
+                //         //  alert(JSON.stringify( self.beginRate.hyflList));
+                //         if (res.data.total != 0) {
+                //             self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
+                //             self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
+                //         } else {
+                //             self.beginRate.beginRate = 0;
+                //             self.beginRate.endRate = 0;
+                //         }
+                //         if (res.data.yearAmt != 0) {
+                //             self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
+                //         } else if (res.data.yearAmtSj != 0) {
+                //             self.beginRate.amtRate = 100;
+                //         } else {
+                //             self.beginRate.amtRate = 0;
+                //         }
+                //         if (res.data.total != 0) {
+                //             self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
+                //         } else {
+                //             self.beginRate.noRate = "0%";
+                //             self.beginRate.beginRate = "0%";
+                //             self.beginRate.endRate = "0%";
+                //             self.beginRate.stopRate = "0%";
+                //         }
+                //
+                //     } else {
+                //         self.beginRate.beginRate = 0;
+                //         self.beginRate.amtRate = 0;
+                //         self.beginRate.endRate = 0;
+                //     }
+                // });
             },
             levelList: function (field, title, val) {
                 //详情
@@ -1122,7 +1066,7 @@
             loadTable: function (params) {
                 for (var i = 0; i < this.dataList.length; i++) {
                     var tem = this.dataList[i];
-                    tem.queryYear = params.year;
+                    // tem.queryYear = params.year;
                     switch (tem.status) {
                         case '0':
                             tem.statusName = '暂存';
@@ -1157,7 +1101,6 @@
                     cols: [[ // 设置表头
                         {
                             type: 'numbers',
-                            fixed: 'left',
                             align: 'center',
                             title: '序号',
                             width: 50,
@@ -1169,27 +1112,19 @@
                                 }
                             }
                         },
-                        {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
-                        // {field: 'abc',type:'string', title: 'ABC',fixed: 'left', align:'center', width: 60, templet: "#abcSpan"},
-                        /*                 {field: 'offset', title: '偏离状态', fixed: 'left', minWidth: 150},*/
+                        {field: 'subName', title: '项目名称', minWidth: 200, templet: '#subName'},
+                        {field: 'subjectName', title: '项目所在地', minWidth: 100},
+                        {field: 'content', title: '项目建设内容', minWidth: 200},
                         {
-                            field: 'offsetLight',
-                            title: '偏离状态',
-                            type: 'string',
-                            align: 'center',
-                            fixed: 'left',
-                            width: 100,
-                            templet: '#offsetLight'
+                            field: 'amtTotal',  title: '计划总投资(亿元)', minWidth: 120, templet: function (d) {
+                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
+                            }
                         },
-                        {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt', sort: true},
-                        {field: 'fileId', title: '现场影像', width: 90, templet: '#imageDiv'},
-                        {field: 'state', title: '计划时间', width: 140, templet: '#date'},
-                        // {field: 'leaderName', title: '分管领导', minWidth: 180, templet: '#leaderInfo'},
-                        {field: 'statusName', title: '项目进度', width: 60},
-                        {field: 'mainName', title: '日常责任监管单位', minWidth: 100},
-                        {field: 'unitName', title: '项目单位', minWidth: 110},
-                        // { field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight' },
-                        {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},
+                        {field: 'tcDate',  title: '建成投产时间', minWidth: 100,templet: '#date'},
+                        {field: 'amtTotal', title: '年度投资', minWidth: 100},
+                        {field: 'progress',  title: '进展情况', minWidth: 200},
+                        {field: 'remark', title: '备注', minWidth: 100},
+                        {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,
                     height: window.screen.availHeight - 470,

+ 6 - 27
projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp

@@ -207,7 +207,7 @@
             <div class="layui-row">
                 <div style="display: flex">
                     <label class="juli">
-                        新建项目总数<span class="lanse-first">{{beginRate.cbNum}}</span>
+                        新建项目总数<span class="lanse-first">{{beginRate.num}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar"></div>
@@ -309,16 +309,16 @@
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
                         {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
-                    <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
+                    <label class="juli" @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
                         {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.code,item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
-                        {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
             </div>
@@ -661,7 +661,6 @@
                     App.msg.success(res.msg);
                 })
                 this.closeAllLayers();
-                this.getData()
             },
             move (obj) {
                 this.moveDbParam.id = obj.data.id
@@ -1028,35 +1027,15 @@
                         // {field: 'fileId', title: '现场影像', width: 150, templet:'#imageDiv'},
                         // {field: 'subName',  title: '项目名称', width: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', minwidth: 200},
+                        {field: 'content', title: '项目建设内容', minwidth: 200},
                         {
-                            field: 'amtTotal', title: '项目建设内容(亿元)', minwidth: 200, templet: function (d) {
+                            field: 'amtTotal', title: '计划总投资(亿元)', minwidth: 200, templet: function (d) {
                                 return (d.amtTotal / 10000).toFixed(2) + "亿元";
                             }
                         },
                         {field: 'preProceNum', title: '预计开工时间', minwidth: 160, templet: '#date'},
                           {field: 'xmbaStatus', title: '前期手续办理情况', minwidth: 160, templet: '#preInfo'},
                         {field: 'remark', title: '备注', minwidth: 245, templet: '#remark'},
-                        // {field: 'indusKindName', title: '所属行业', width: 115},
-                        // {field: 'zjly', title: '资金来源', width: 115, templet: '#zjly'},
-                        // {field: 'mainName', title: '日常责任监管单位', width: 115},
-                        // {field: 'unitName', title: '项目单位', minWidth: 150},
-                        // // {field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight'},
-                        // // {field: 'statusName', title: '项目进度', width: 200},
-                 /*       {
-                            field: 'isHide',
-                            type: 'string',
-                            title: '在建库',
-                            align: 'center',
-                            width: 70,
-                            templet: function (row) {
-                                if (row.isHide == "1") {
-                                    return '<span style="color: #08AF00">是</span>';
-                                } else {
-                                    return '<span style="color: #666666">否</span>';
-                                }
-                                return "";
-                            }
-                        },*/
                         {title: '操作', minwidth: 225, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,

+ 140 - 201
projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp

@@ -378,118 +378,30 @@
             <div class="layui-row">
                 <div style="display: flex">
                     <label class="juli">
-                        新建项目总数<span class="lanse-first">{{beginRate.total}}</span>
+                        新建项目总数<span class="lanse-first">{{beginRate.num}}</span>
                         <div class="progress-div">
                             <div class="layui-progress">
                                 <div class="layui-progress-bar"></div>
                             </div>
                         </div>
                     </label>
-                    <%--                    <label class="juli">--%>
-                    <%--                        未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-
-                    <%--                  <label class="juli" onclick="levelList('abcs','A类','A')">
-                                          A类项目数
-                                          <span class="lanse-first" >{{beginRate.aNum}}</span>
-                                          <div class="progress-div">
-                                              <div class="layui-progress">
-                                                  <div class="layui-progress-bar" :style="'width:'+beginRate.aRate"></div>
-                                              </div>
-                                          </div>
-                                      </label>
-                                      <label class="juli">
-                                          B类项目数
-                                          <span class="lanse-first" onclick="levelList('abcs','B类','B')">{{beginRate.bNum}}</span>
-                                          <div class="progress-div">
-                                              <div class="layui-progress">
-                                                  <div class="layui-progress-bar" :style="'width:'+beginRate.bRate"></div>
-                                              </div>
-                                          </div>
-                                      </label>
-                                      <label class="juli" onclick="levelList('abcs','C类','C')">
-                                          C类项目数
-                                          <span class="lanse-first">{{beginRate.cNum}}</span>
-                                          <div class="progress-div">
-                                              <div class="layui-progress">
-                                                  <div class="layui-progress-bar" :style="'width:'+beginRate.cRate"></div>
-                                              </div>
-                                          </div>
-                                      </label>--%>
-                    <label class="juli">
-                        <%--                        已开工项目数--%>转开工项目数
-                        <span class="lanse-first">{{beginRate.xjzh}}%</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.zjRate"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <%--                    <label class="juli">--%>
-                    <%--                        已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress" lay-filter="layui-progress-bar">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-                    <label class="juli">
-                        <%--                        开工率--%>开工项目转化率
-                        <span class="lanse-first">{{beginRate.zjRate}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.zjRate"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <%--                    <label class="juli">--%>
-                    <%--                        竣工率--%>
-                    <%--                        --%>
-                    <%--                        <span class="lanse-first">{{beginRate.endRate}}</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
-                    <%--                    <label class="juli">--%>
-                    <%--                        投资进度<span class="lanse-first">{{beginRate.amtRate}}%</span>--%>
-                    <%--                        <div class="progress-div">--%>
-                    <%--                            <div class="layui-progress">--%>
-                    <%--                                <div class="layui-progress-bar" :style="'width:'+beginRate.amtRate+'%'"></div>--%>
-                    <%--                            </div>--%>
-                    <%--                        </div>--%>
-                    <%--                    </label>--%>
                 </div>
                 <div style="display: flex;margin-bottom: 3px">
 
-                    <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
+                    <label @click="levelList('kindNatures',item.name,item.code)" class="juli"
                            v-for="(item, index) in beginRate.tzlxList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
-                    <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
+                    <label class="juli" @click="levelList('subjects',item.name,item.code)"
                            v-for="(item, index) in beginRate.jsddList" :key="index">
-                        {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
                 <div style="margin-bottom: 3px">
                     <label class="juli"
-                           @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
+                           @click="levelList('indusKinds',item.name?item.name:item.split(',')[0],item.code)"
                            v-for="(item, index) in beginRate.hyflList" :key="index">
-                        {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        {{item.name?item.name:item.code}}<span class="lanse-first">{{item.num}}</span>
                     </label>
                 </div>
             </div>
@@ -704,34 +616,11 @@
 </script>
 <script type="text/html" id="toolBar">
     <div class="toolBar">
-        <span title="项目信息" lay-event="toDetail" class="no-wrap">项目信息</span>
-        <c:if test="${isHydw}">
-            <span title="项目大事迹" lay-event="leaderSupervise" class="no-wrap">项目大事迹</span>
-            <%--      <span title="问题督办" lay-event="problem" class="no-wrap">&nbsp;问题督办</span>--%>
-        </c:if>
-        {{# if(d.unitId == "${currUnitId}") { }}
-        <span title="原因录入" lay-event="setSubReason" class="no-wrap">&nbsp;原因录入</span>
-        {{#}}}
-
+        <span title="项目查询" lay-event="toDetail" class="no-wrap">项目查询</span>
         {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}
-        <span title="信息修改" lay-event="toEditSubInfo" class="no-wrap">&nbsp;信息修改</span>
+        <span title="编辑" lay-event="toEditSubInfo" class="no-wrap">&nbsp;编辑</span>
         {{#} }}
-        <span title="退回" lay-event="toBack" class="no-wrap">&nbsp;退回</span>
-        <%--	{{# if("${currUser.edit}" == 'true') { }}--%>
-        <%--	{{# if(d.status != '0' && d.status != '6' && d.status != '7' && d.status != '8' && d.status != '9' && d.status != 'A') { }}--%>
-        <%--		<span title="退回暂存" lay-event="toTh">&nbsp;退回暂存</span>--%>
-        <%--	{{#}}}--%>
-        <%--	{{#} }}--%>
-        <span title="手续办理" lay-event="preNew" class="no-wrap">&nbsp;手续办理</span>
-        <c:if test="${admin || isSfgw}">
-  <%--          {{# if(d.isHide == "1") { }}
-            <span title="取消在建库" lay-event="isNoHide" class="no-wrap">&nbsp;取消在建库</span>
-            {{#} else { }}--%>
-            <span title="移入在建库" lay-event="isHide" class="no-wrap">&nbsp;移入在建库</span>
-      <%--      {{#} }}--%>
-            <span title="移入储备库" lay-event="setIsCb" class="no-wrap">&nbsp;移入储备库</span>
-        </c:if>
-
+        <span title="移入" lay-event="move" class="no-wrap">移入</span>
     </div>
 </script>
 
@@ -741,9 +630,9 @@
         <%--        <div class="line"><span class="qianse">总的手续:</span> <span class="shense">{{d.preTotal}}</span>个--%>
 
         <%--        </div>--%>
-        <div class="line"><span class="qianse">无需办理的手续:</span> <span class="shense">{{d.preNoNum}}</span>个
+<%--        <div class="line"><span class="qianse">无需办理的手续:</span> <span class="shense">{{d.preNoNum}}</span>个--%>
 
-        </div>
+<%--        </div>--%>
         <div class="line"><span class="qianse">办理中的手续:</span> <span class="shense">{{d.preProceNum}}</span>个
 
         </div>
@@ -819,7 +708,7 @@
     layui.use('element', function () {
         let element = layui.element;
     });
-    new Vue({
+    let vm = new Vue({
         el: "#app",
         template: "#template",
         data: {
@@ -836,13 +725,65 @@
             light: null,
             sort: {field: "amtTotal", type: ""},
             pageSize: 10,
-            showExport: false
+            showExport: false,
+            moveDbParam:{
+                id: "",
+                status: ""
+            }
         },
         mounted: function () {
             this.init()
         },
         methods: {
+            closeAllLayers() {
+                layui.layer.closeAll();
+            },
+            confirmMove: function () {
+                let param = this.moveDbParam
+                App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+                this.getData()
+            },
+            move (obj) {
+                this.moveDbParam.id = obj.data.id
+                this.moveDbParam.status = obj.data.cbStatus
+                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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.form.render();
+                    }
+                });
+            },
             init: function () {
+                layui.form.on("select(moveStatus)", function (data) {
+                    self.moveDbParam.status = data.value;
+                });
                 this.winH = document.body.clientHeight;
                 var nowdate = new Date();
                 nowdate.setMonth(nowdate.getMonth() + 1);
@@ -1069,52 +1010,69 @@
                 param.orderBy = this.sort.field;
                 param.orderType = this.sort.type || "asc";
                 param = Object.assign(param, ${sumParams});
-                App.postJson("/api/subInfo/query/all", param, function (res) {
+
+                // 表格分页数据
+                param.status = 2;
+                App.postJson("/api/subInfo/query/queryPage", param, function (res) {
                     self.dataList = res.rows;
                     self.loadPage(res.total);
                     self.loadTable();
                 });
 
-                App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                // 统计数据
+                App.postJson("/api/subInfo/query/statistics", param, function (res) {
                     if (res.success) {
                         self.beginRate = res.data;
-                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 0;
-                        }
-                        if (res.data.yearAmt != 0) {
-                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                        } else if (res.data.yearAmtSj != 0) {
-                            self.beginRate.amtRate = 100;
-                        } else {
-                            self.beginRate.amtRate = 0;
-                        }
-                        if (res.data.total != 0) {
-                            self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
-                        } else {
-                            self.beginRate.noRate = "0%";
-                            self.beginRate.beginRate = "0%";
-                            self.beginRate.endRate = "0%";
-                            self.beginRate.stopRate = "0%";
-                            self.beginRate.aRate = "0%";
-                            self.beginRate.bRate = "0%";
-                            self.beginRate.cRate = "0%";
-                        }
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
+                        self.beginRate.hyflList = self.beginRate.hyflData;
+                        self.beginRate.jsddList = self.beginRate.jsddData;
                     }
                 });
+                // App.postJson("/api/subInfo/query/all", param, function (res) {
+                //     self.dataList = res.rows;
+                //     self.loadPage(res.total);
+                //     self.loadTable();
+                // });
+                //
+                // App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                //     if (res.success) {
+                //         self.beginRate = res.data;
+                //         self.beginRate.hyflList = self.beginRate.hyflData.split(";");
+                //         self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
+                //         self.beginRate.jsddList = self.beginRate.jsddData.split(";");
+                //         if (res.data.total != 0) {
+                //             self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
+                //         } else {
+                //             self.beginRate.beginRate = 0;
+                //         }
+                //         if (res.data.yearAmt != 0) {
+                //             self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
+                //         } else if (res.data.yearAmtSj != 0) {
+                //             self.beginRate.amtRate = 100;
+                //         } else {
+                //             self.beginRate.amtRate = 0;
+                //         }
+                //         if (res.data.total != 0) {
+                //             self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
+                //             self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
+                //         } else {
+                //             self.beginRate.noRate = "0%";
+                //             self.beginRate.beginRate = "0%";
+                //             self.beginRate.endRate = "0%";
+                //             self.beginRate.stopRate = "0%";
+                //             self.beginRate.aRate = "0%";
+                //             self.beginRate.bRate = "0%";
+                //             self.beginRate.cRate = "0%";
+                //         }
+                //     } else {
+                //         self.beginRate.beginRate = 0;
+                //         self.beginRate.amtRate = 0;
+                //     }
+                // });
             },
             loadTable: function () {
                 for (var i = 0; i < this.dataList.length; i++) {
@@ -1152,45 +1110,26 @@
                     cols: [[ // 设置表头
                         {type: 'numbers', fixed: 'left', align: 'center', width: 44, title: '序号'},
                         {field: 'subName', fixed: 'left', title: '项目名称', width: 200, templet: '#subName'},
-        /*                {
-                            field: 'abc',
-                            type: 'string',
-                            title: 'ABC',
-                            fixed: 'left',
-                            align: 'center',
-                            width: 60,
-                            templet: "#abcSpan"
-                        },*/
-                        // {field: 'offsetLight', title: '偏离状态', fixed: 'left', minWidth: 150, templet: '#offsetLight'},
-                        // {field: 'statusName', title: '项目进度', width: 200},
-                        // {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt', sort:"amtTotal"},
-                        // {field: 'offset', title: '偏离度-%', width: 100},
-                        // {field: 'fileId', title: '现场影像', width: 150, templet:'#imageDiv'},
-                        {field: 'xmbaStatus', title: '前期手续办理情况', width: 160, templet: '#preInfo'},
-                        {field: 'xmbaStatus', title: '计划时间', width: 160, templet: '#date'},
-                        {field: 'xmbaStatus', title: '总投资', width: 245, templet: '#amtTotal'},
-                        {field: 'indusKindName', title: '所属行业', width: 115},
-                        {field: 'zjly', title: '资金来源', width: 115, templet: '#zjly'},
-                        {field: 'mainName', title: '日常责任监管单位', width: 115},
-                        {field: 'unitName', title: '项目单位', minWidth: 150},
-                        // {field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight'},
-                        // {field: 'statusName', title: '项目进度', width: 200},
-                     /*   {
-                            field: 'isHide',
-                            type: 'string',
-                            title: '在建库',
-                            align: 'center',
-                            width: 70,
-                            templet: function (row) {
-                                if (row.isHide == "1") {
-                                    return '<span style="color: #08AF00">是</span>';
-                                } else {
-                                    return '<span style="color: #666666">否</span>';
-                                }
-                                return "";
+
+                        {field: 'subjectName', title: '项目所在地', minwidth: 200},
+                        {field: 'content', title: '项目建设内容', minwidth: 200},
+                        {
+                            field: 'amtTotal', title: '计划总投资(亿元)', minwidth: 200, templet: function (d) {
+                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
                             }
-                        },*/
-                        {title: '操作', width: 225, toolbar: '#toolBar', fixed: 'right'},
+                        },
+                        {field: 'preProceNum', title: '预计开工时间', minwidth: 160, templet: '#date'},
+                        {field: 'xmbaStatus', title: '前期手续办理情况', minwidth: 160, templet: '#preInfo'},
+                        {field: 'remark', title: '备注', minwidth: 245, templet: '#remark'},
+                        {title: '操作', minwidth: 225, toolbar: '#toolBar', fixed: 'right'},
+                        // {field: 'xmbaStatus', title: '前期手续办理情况', width: 160, templet: '#preInfo'},
+                        // {field: 'xmbaStatus', title: '计划时间', width: 160, templet: '#date'},
+                        // {field: 'xmbaStatus', title: '总投资', width: 245, templet: '#amtTotal'},
+                        // {field: 'indusKindName', title: '所属行业', width: 115},
+                        // {field: 'zjly', title: '资金来源', width: 115, templet: '#zjly'},
+                        // {field: 'mainName', title: '日常责任监管单位', width: 115},
+                        // {field: 'unitName', title: '项目单位', minWidth: 150},
+                        // {title: '操作', width: 225, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,
                     height: window.screen.availHeight - 450,
@@ -1397,7 +1336,7 @@
                     type: 2,
                     title: '',
                     area: ['1000px', '800px'],
-                    content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
+                    content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
                 });
                 layui.layer.full(index);
             },

+ 1209 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp

@@ -0,0 +1,1209 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+    <jsp:include page="../../../common/common-meta-include.jsp"></jsp:include>
+    <jsp:include page="../../../common/common-js-include.jsp"></jsp:include>
+    <jsp:include page="../../../common/common-css-include.jsp"></jsp:include>
+    <!--[if lt IE 9]>
+    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <style type="text/css">
+        .layui-table-view .layui-table td {
+            border-right: 1px solid #DDD !important;
+        }
+
+        .layui-table-body .layui-table-cell {
+            padding: 5px !important;
+        }
+
+        .layui-table-header .layui-table-cell {
+            height: 42px !important;
+        }
+
+        .qianse {
+            color: #666666;
+        }
+
+        .lanse {
+            color: #1869F6;
+        }
+
+        .shense {
+            color: #111111;
+        }
+
+        .no-wrap {
+            white-space: nowrap;
+        }
+
+        .lanse-first {
+            color: #1C56A3;
+            font-size: 12px;
+        }
+
+        .layui-table-col-special .layui-table-cell {
+            display: flex;
+            justify-content: space-between;
+        }
+
+        .queryTimeType {
+            margin-top: -4px;
+            position: absolute;
+        }
+
+        .hiddenParam,
+        .hiddenParams {
+            display: none;
+        }
+
+        .morePan {
+            position: absolute;
+            margin-left: 11px;
+        }
+
+        .morePan a {
+            color: #2C6EC6;
+        }
+
+        .table_box .table_process {
+            height: fit-content;
+            max-height: 60vh;
+            overflow-x: scroll;
+            overflow-y: scroll;
+        }
+
+        .layui-table-body::-webkit-scrollbar {
+            width: 0px;
+            /*height: 10px;*/
+        }
+
+        .table_box,
+        .table_box .table_process {
+            overflow: visible;
+        }
+
+        .layui-form-select dl {
+            height: 120px;
+        }
+
+    </style>
+</head>
+<body>
+<div id="app"></div>
+<template id="template">
+    <div class="layui-layout layui-layout-admin">
+        <!-- 内容区域 -->
+        <div class="right_title">
+            <div class="txt"
+                 style="width: 100%; font-size: 35px; font-family: '方正小标宋', '仿宋', sans-serif; text-align: center; font-weight: bold;">
+                项目总库
+            </div>
+            <div class="layui-btn-container" style="margin-top: 20px;margin-left: 20px">
+                <button type="button" class="layui-btn">导出明细</button>
+                <button type="button" class="layui-btn">导出总表</button>
+                <button type="button" class="layui-btn">自定义导出</button>
+            </div>
+            <div class="layui-collapse">
+                <div class="layui-colla-item">
+                    <div class="layui-colla-content layui-show">
+                        <form class="layui-form" lay-filter="searchForm" id="searchForm">
+                            <input type="hidden" name="queryType" value="1">
+                            <div class="layui-row">
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label label-longers required">项目名称</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="subName" placeholder="请输入" autocomplete="off"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label required label-longers">项目属地</label>
+                                        <div class="layui-input-block">
+                                            <select name="subjectId">
+                                                <option value="">请选择</option>
+                                                <c:forEach items="${JSDD }" var="hy">
+                                                    <option value="${hy.code }">${hy.title }</option>
+                                                </c:forEach>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label required label-longers">行业类别</label>
+                                        <div class="layui-input-block">
+                                            <div id="indusKind"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label required label-longers" style="width: 100px;">项目总投资</label>
+                                        <div class="layui-input-block time_box">
+                                            <input type="number" name="startAmt" placeholder="请输入最小金额"
+                                                   autocomplete="off"
+                                                   class="layui-input">
+                                            <span class="split_txt">至</span>
+                                            <input type="number" name="endAmt" placeholder="请输入最大金额" autocomplete="off"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label required label-longers">投资类型</label>
+                                        <div class="layui-input-block">
+                                            <div id="kindNature"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label label-longers">项目单位</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="sbdw" placeholder="请输入项目项目单位名称"
+                                                   autocomplete="off"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParams">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"></label>
+                                        <div class="layui-input-block">
+                                            <button type="button" class="layui-btn layui-btn-normal" @click="search">查询
+                                            </button>
+                                            <span class="morePan" @click="showMore"><a v-if="!showMoreFlag">更多  <ion-icon
+                                                    name="chevron-forward-outline"></ion-icon></a><a
+                                                    v-if="showMoreFlag">收起 V</a></span>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-row">
+
+                            </div>
+                        </form>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div>
+<%--            <div class="layui-row">--%>
+<%--                <div style="display: flex;margin-bottom: 3px">--%>
+<%--                    <label class="juli" onclick="levelList('abcs','A类','A')">--%>
+<%--                        储备项目总数--%>
+<%--                        <span class="info-icon" title="A类项目:成熟类项目,可研或初设已编制并完成初审,达到项目等资金的进度">?</span>--%>
+<%--                        <span class="lanse-first">{{beginRate.num}}</span>--%>
+<%--                    </label>--%>
+<%--                    <label class="juli" onclick="levelList('abcs','A类','A')">--%>
+<%--                        A类项目数--%>
+<%--                        <span class="info-icon" title="A类项目:成熟类项目,可研或初设已编制并完成初审,达到项目等资金的进度">?</span>--%>
+<%--                        <span class="lanse-first">{{beginRate.anum}}</span>--%>
+<%--                    </label>--%>
+<%--                    <label class="juli">--%>
+<%--                        B类项目数--%>
+<%--                        <span class="info-icon" title="B类项目:推进类项目,正在抓紧推进前期手续,预计6-12个月可开工项目">?</span>--%>
+<%--                        <span class="lanse-first" onclick="levelList('abcs','B类','B')">{{beginRate.bnum}}</span>--%>
+<%--                    </label>--%>
+<%--                    <label class="juli" onclick="levelList('abcs','C类','C')">--%>
+<%--                        C类项目数--%>
+<%--                        <span class="info-icon" title="C类项目:意向类项目,还处于谋划论证阶段项目">?</span>--%>
+<%--                        <span class="lanse-first">{{beginRate.cnum}}</span>--%>
+<%--                    </label>--%>
+
+<%--                </div>--%>
+<%--                <div style="display: flex;margin-bottom: 3px">--%>
+<%--                    <label class="juli"--%>
+<%--                           @click="levelList('subjects',item.name,item.code)"--%>
+<%--                           v-for="(item, index) in beginRate.jsddList" :key="index">--%>
+<%--                        {{item.name}} <span class="lanse-first">{{item.num}}</span>--%>
+<%--                    </label>--%>
+<%--                </div>--%>
+<%--                <div style="margin-bottom: 3px">--%>
+<%--                    <label class="juli"--%>
+<%--                           @click="levelList('indusKinds',item.name?item.name:item.code,item.split(',')[3])"--%>
+<%--                           v-for="(item, index) in beginRate.hyflList" :key="index">--%>
+<%--                        {{item.name?item.name:item.code}}--%>
+<%--                        <span class="lanse-first">{{item.num}}</span>--%>
+<%--                    </label>--%>
+<%--                </div>--%>
+<%--            </div>--%>
+        </div>
+        <div class="table_box" style="padding-top: 0;">
+            <div class="table_process" style="position: relative">
+                <div class="export" style="background: transparent" @mouseover="openExport" @mouseout="choseExport">
+                    <div class="export" style="right: 25px;top: 0">
+                        <img src="${WebSite.asset}/css/images/left/export.svg"/>
+                        <span>导出</span>
+                    </div>
+                    <div class="export-item" v-if="showExport">
+                        <button type="button" class="" @click="exportExcel">
+                            项目汇总
+                        </button>
+                        <button type="button" class=""
+                                @click="exportExcelByIndusKind">按所属行业
+                        </button>
+                        <button type="button" class=""
+                                @click="exportSchedulingExcel">项目调度表
+                        </button>
+                        <!-- <button type="button" class="" @click="exportExcel2">项目明细导出</button> -->
+                        <button type="button" class=""
+                                @click="exportMoreExcel">自定义
+                        </button>
+                    </div>
+                </div>
+                <table id="table1" lay-filter="test"></table>
+                <div class="pagination-box" id="pagination"></div>
+            </div>
+        </div>
+        <div style="height: 20px;"></div>
+    </div>
+</template>
+<div id="setReason" style="display: none;">
+    <form class="layui-form" lay-filter="reasonForm">
+        <div class="layui-row">
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">已开工未入库原因:</label>
+                    <div class="layui-input-block">
+                        <textarea name="reasonNoRk" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoRk"
+                                  autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">已入库无投资原因:</label>
+                    <div class="layui-input-block">
+                        <textarea name="reasonNoAmt" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoAmt"
+                                  autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">是否入统:</label>
+                    <div class="layui-input-block">
+                        <input type="radio" name="isRk" value="0" title="否" checked="checked"/>
+                        <input type="radio" name="isRk" value="1" title="是"/>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">未开工建设原因:</label>
+                    <div class="layui-input-block">
+                        <textarea name="reasonNoKg" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoKg"
+                                  autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">存在的问题:</label>
+                    <div class="layui-input-block">
+                        <textarea name="reasonq" maxlength="200" style="height: 50px;width: 80%;" id="reasonq"
+                                  autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-col-xs6 layui-col-sm6">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">已开工进度慢原因:</label>
+                    <div class="layui-input-block">
+                        <textarea name="reasonJd" maxlength="200" style="height: 50px;width: 80%;" id="reasonJd"
+                                  autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </form>
+</div>
+
+
+<div id="problem" class="layuimini-main" style="display: none;">
+    <form class="layui-form" lay-filter="problemForm">
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">状态:</label>
+                    <div class="layui-input-block block-width">
+                        <input type="radio" name="statusF" value="2" title="红灯" checked="checked"/>
+                        <input type="radio" name="statusF" value="1" title="黄灯"/>
+                        <input type="radio" name="statusF" value="0" title="绿灯"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">问题描述:</label>
+                    <div class="layui-input-block block-width">
+                        <textarea name="status_reason" maxlength="400" style="height: 300px;width: 80%;"
+                                  id="problemReason" autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">要求解决日期:</label>
+                    <div class="layui-input-block  block-width" style="width: 25%">
+                        <input type="text" id="dateConfirm" name="dateConfirm" autocomplete="off" class="layui-input">
+                    </div>
+                </div>
+            </div>
+        </div>
+    </form>
+</div>
+
+<div id="toBack" class="layuimini-main" style="display: none;">
+    <form class="layui-form" lay-filter="toBackForm">
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label" style="width: 100px">退回到状态:</label>
+                    <div class="layui-input-block">
+                        <input type="radio" name="status" value="1" title="项目前期" checked="checked"/>
+                        <input type="radio" name="status" value="6" title="待开工"/>
+                        <input type="radio" name="status" value="7" title="施工中"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </form>
+</div>
+
+<script type="text/html" id="subName">
+    <span lay-event="toDetail" title="{{d.subName}}">{{d.subName}}</span>
+</script>
+
+<script type="text/html" id="mainName">
+    <span lay-event="toManagerUnit" title="{{d.mainName}}">{{d.mainName}}</span>
+</script>
+
+<script type="text/html" id="unitName">
+    <span lay-event="toQcc" title="{{d.unitName}}">{{d.unitName}}</span>
+</script>
+
+
+<script type="text/html" id="date">
+    <div title="">
+        <div class="line"><span class="qianse">计划开工:</span> <span class="shense">{{d.beginDate}}</span>
+
+        </div>
+        <div class="line"><span class="qianse">计划竣工:</span> <span class="shense">{{d.endDate}}</span>
+
+        </div>
+    </div>
+</script>
+
+
+<script type="text/html" id="amtTotal">
+    <div title="">
+        <span class="qianse">总投资金额:</span><span class="lanse">{{d.amtTotal}}</span> 万元<br/>
+    </div>
+</script>
+
+
+<script type="text/html" id="zjly">
+    <div title="">
+        <span class="lanse">{{d.zjlyName}}</span>
+    </div>
+</script>
+
+
+<script type="text/html" id="abcSpan">
+    {{# if(d.abc == "A") { }}
+    <span style="font-size:16px;font-weigh:500 !important;color: #26B520">{{d.abc||''}}</span>
+    {{#} }}
+    {{# if(d.abc == "B") { }}
+    <span style="font-size:16px;font-weigh:500 !important;color: #1869F6">{{d.abc||''}}</span>
+    {{#} }}
+    {{# if(d.abc == "C") { }}
+    <span style="font-size:16px;font-weigh:500 !important;color: #FF9600">{{d.abc||''}}</span>
+    {{#} }}
+</script>
+<%-- table操作按钮 --%>
+<script type="text/html" id="toolBar">
+    <div class="toolBar">
+        <span title="项目查询" lay-event="toDetail" class="no-wrap">项目查询</span>
+    </div>
+</script>
+
+<script type="text/html" id="imageDiv">
+    <div style="width:50px;height:50px" onclick="showImage(this)">
+        {{# if(d.fileId != null && d.fileId != '') { }}
+        <img src="${domain}/static/file/{{d.fileId}}/showfile" realUrl="${domain}/static/file/{{d.fileId}}/showfile"
+             width="50px" height="50px"/>
+        {{#} }}
+    </div>
+</script>
+
+
+<script type="text/html" id="offsetLight">
+    {{#if(d.offset >= -30 && d.offset <= -10 ) { }}
+    <span style="color: yellow"><image class="light-rgb"
+                                       src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
+    {{#} else if(d.offset < -30) { }}
+    <span style="color: red"><image class="light-rgb"
+                                    src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
+    {{#}}}
+    {{#if(d.offset !="" || d.offset != undefined || d.offset != null) { }}
+    {{#if(d.offset<0) { }}
+    <span class="grey">{{d.offset||"--"}}%</span>
+    {{# } }}
+    {{#if(d.offset>0) { }}
+    <span class="green">{{d.offset||"--"}}%</span>
+    {{# } }}
+    {{# } }}
+</script>
+
+
+<script type="text/html" id="openLight">
+
+
+    {{# var computedPer1 = function(beginDate){
+
+    var beginDate =new Date(beginDate);
+    var beginDate7 =new Date(beginDate);
+    var beginDate3 =new Date(beginDate);
+    beginDate7.setDate(beginDate7.getDate()-7);
+    beginDate3.setDate(beginDate3.getDate()-3);
+
+    var newDate =  new Date();
+    if(newDate.getTime() >=beginDate7.getTime()  && newDate.getTime() <=beginDate3.getTime()){
+    return "yellow";
+    }else if(newDate.getTime() >=beginDate3.getTime() && newDate.getTime()  <=  beginDate.getTime()  ){
+    return "red";
+    }else{
+    return "-";
+    }
+    };
+    }}
+
+    {{#if(computedPer1(d.beginDate)=="yellow" ) { }}
+    <span style="color: yellow">  <image style="width:20px;height:20px;margin: auto;"
+                                         src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
+    {{#} else if(computedPer1(d.beginDate)=="red") { }}
+    <span style="color: red">   <image style="width:20px;height:20px;margin: auto;"
+                                       src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
+    {{#}}}
+</script>
+
+
+<script>
+    layui.use('element', function () {
+        let element = layui.element;
+    });
+    let vm = new Vue({
+        el: "#app",
+        template: "#template",
+        data: {
+            JSDD: [],
+            winH: 0,
+            dataList: [],
+            startDate: "",
+            endDate: "",
+            tableName: 'test',
+            cacheName: 'TzQueryParam_cb_${currUser.id}',
+            pageNo: 1,
+            kind: {},
+            beginRate: {},
+            showMoreFlag: false,
+            light: null,
+            sort: {field: "abc", type: ""},
+            pageSize: 10,
+            showExport: false,
+            moveDbParam:{
+                status: "",
+                id: ""
+            }
+        },
+        mounted: function () {
+            this.init()
+        },
+        methods: {
+            closeAllLayers() {
+                layui.layer.closeAll(); // 关闭所有弹框
+            },
+            confirmMove: function () {
+                let param = this.moveDbParam
+                App.postJson("/api/subject/subInfo/moveDb",param, (res)=>{
+                    App.msg.success(res.msg);
+                })
+                this.closeAllLayers();
+            },
+            init: function () {
+                let self = this;
+                layui.form.on("select(moveStatus)", function (data) {
+                    self.moveDbParam.status = data.value;
+                });
+
+                App.postJson("/api/dict/query/index", {}, function (res) {
+                    self.JSDD = res.data.JSDD;
+                })
+
+                this.winH = document.body.clientHeight;
+                var nowdate = new Date();
+                nowdate.setMonth(nowdate.getMonth() + 1);
+                var y = nowdate.getFullYear();
+                var m = nowdate.getMonth() + 1;
+                var d = nowdate.getDate();
+                layui.laydate.render({
+                    elem: '#startTime',
+                    range: '~',
+                    theme: layDateTheme,
+                    /*     value: y + "-01-01 ~ " + y + "-12-31"*/
+                });
+                var formatwdate = y + '-' + m + '-' + d;
+                layui.laydate.render({
+                    elem: '#dateConfirm',
+                    theme: layDateTheme,
+                    value: formatwdate
+                });
+                /*  $("#month").val(new Date().getMonth() + 1);*/
+                var xmlx = [];
+                <c:forEach items="${XMLX}" var="xm">
+                xmlx.push({value: "${xm.code}", name: "${xm.title}"});
+                </c:forEach>
+                /*           this.kind = layui.xmSelect.render({
+                               el: "#kind",
+                               language: 'zn',
+                               data: xmlx
+                           });*/
+                var indusKindData = [];
+                <c:forEach items="${HYFL}" var="xm">
+                indusKindData.push({value: "${xm.id}", name: "${xm.title}"});
+                </c:forEach>
+                this.indusKind = layui.xmSelect.render({
+                    el: "#indusKind",
+                    language: 'zn',
+                    data: indusKindData
+                });
+                var kindNatureData = [];
+                <c:forEach items="${TZXZ}" var="xm">
+                kindNatureData.push({value: "${xm.code}", name: "${xm.title}"});
+                </c:forEach>
+                this.kindNature = layui.xmSelect.render({
+                    el: "#kindNature",
+                    language: 'zn',
+                    data: kindNatureData
+                });
+                layui.laydate.render({
+                    elem: '#year',
+                    type: 'year',
+                    theme: layDateTheme,
+                    /*                value: new Date().getFullYear()*/
+                })
+                var params = window.localStorage.getItem(this.cacheName);
+                if (params) {
+                    layui.form.val("searchForm", JSON.parse(params));
+                }
+                <%--if(${isHydw}) {--%>
+                <%--	this.light = layui.xmSelect.render({--%>
+                <%--		el: "#light",--%>
+                <%--		language:'zn',--%>
+                <%--		data: [--%>
+                <%--			{value: '0', name:'绿灯'},--%>
+                <%--			{value: '1', name:'黄灯'},--%>
+                <%--			{value: '2', name:'红灯'}--%>
+                <%--		]--%>
+                <%--	})--%>
+                <%--}--%>
+                this.getData();
+                window.toDetail = this.toDetail;
+                window.levelList = this.levelList;
+                window.showImage = this.showImage;
+                $(".hiddenParams").show();
+            },
+            leaderSupervise: function (obj) {
+
+                App.openLayer({
+                    title: "督办信息",
+                    content: App.getUrl("/meetingRecords/leaderMeeting?subId=" + obj.data.id),
+                    height: "600",
+                    width: "800"
+                })
+
+            },
+            setIsNew: function (obj) {
+                var self = this;
+                App.msg.confirm("是否移入新建库?", function () {
+                    App.postJson("/api/subject/subInfo/setIsNew", {subId: obj.data.id}, function (res) {
+                        if (res.success) {
+                            App.msg.success("设置成功");
+                            self.getData();
+                            layer.close(index);
+                        }
+                    });
+                });
+            },
+            showImage: function (that) {
+                var imageUrl = $(that).find("img").eq(0).attr("realUrl");
+                if (imageUrl) {
+                    // layer.open({
+                    // 	type: 2,
+                    // 	content: imageUrl,
+                    // 	area: ['500px', '1000px'],
+                    // 	offset: 'auto',
+                    // 	success: function(obj,index){
+                    // 		layer.full(index);
+                    // 	}
+                    // })
+                    layer.photos({
+                        photos: {
+                            "title": "",
+                            "id": "",
+                            "start": 0,
+                            "data": [
+                                {
+                                    "alt": "",
+                                    "pid": "",
+                                    "src": imageUrl,
+                                    "thumb": imageUrl
+                                }
+                            ]
+                        },
+                        anim: 5,
+                        closeBtn: "1",
+                        success: function () {
+                            //以鼠标位置为中心的图片滚动放大缩小
+                            $(document).on("mousewheel", ".layui-layer-photos", function (ev) {
+                                var oImg = this;
+                                var ev = event || window.event;//返回WheelEvent
+                                //ev.preventDefault();
+                                var delta = ev.detail ? ev.detail > 0 : ev.wheelDelta < 0;
+                                var ratioL = (ev.clientX - oImg.offsetLeft) / oImg.offsetWidth,
+                                    ratioT = (ev.clientY - oImg.offsetTop) / oImg.offsetHeight,
+                                    ratioDelta = !delta ? 1 + 0.1 : 1 - 0.1,
+                                    w = parseInt(oImg.offsetWidth * ratioDelta),
+                                    h = parseInt(oImg.offsetHeight * ratioDelta),
+                                    l = Math.round(ev.clientX - (w * ratioL)),
+                                    t = Math.round(ev.clientY - (h * ratioT));
+                                $(".layui-layer-photos").css({
+                                    width: w, height: h
+                                    , left: l, top: t
+                                });
+                                $("#layui-layer-photos").css({width: w, height: h});
+                                $("#layui-layer-photos>img").css({width: w, height: h});
+                            });
+                        }
+                        , end: function () { //销毁回调
+
+                        }
+
+                    });
+                }
+            },
+            setQueryForm2: function () {
+                $("#searchForm").find(".layui-form-item").parent()
+                    .removeClass("layui-col-xs3").removeClass("layui-col-sm3").removeClass("layui-col-md3")
+                    .addClass("layui-col-xs5").addClass("layui-col-sm5").addClass("layui-col-md5");
+            },
+            setQueryForm4: function () {
+                $("#searchForm").find(".layui-form-item").parent()
+                    .removeClass("layui-col-xs5").removeClass("layui-col-sm5").removeClass("layui-col-md5")
+                    .addClass("layui-col-xs3").addClass("layui-col-sm3").addClass("layui-col-md3");
+            },
+            showMore: function () {
+                this.showMoreFlag = !this.showMoreFlag;
+                if (this.showMoreFlag) {
+                    $(".hiddenParam").show();
+                } else {
+                    $(".hiddenParam").hide();
+                }
+                /*      var self = this;
+
+                    layer.open({
+                          title: "查询条件",
+                          type: 1,
+                          area: ['800px', ''],
+                          offset:0,
+                          shade: 0.1,
+                          shadeClose: true,
+                          content: $("#searchForm"),
+                          btn: ["查询"],
+                          yes: function (index) {
+                              self.search();
+                              layer.close(index);
+                          },
+                          success: function () {
+                              self.setQueryForm2();
+                              $(".hiddenParam").show();
+                              $(".hiddenParams").hide();
+                          },
+                          end: function () {
+                              self.setQueryForm4();
+                              $(".hiddenParam").hide();
+                              $(".hiddenParams").show();
+                          }
+                      })*/
+            },
+            getSearchParams: function () {
+                var param = layui.form.getValue("searchForm");
+                if (param.rangeDate) {
+                    param.beginDate = param.rangeDate.split(" ~ ")[0];
+                    param.endDate = param.rangeDate.split(" ~ ")[1];
+                    param.rangeDate = null;
+                }
+                if (this.light) {
+                    param.light = this.light.getValue("valueStr");
+                }
+                if (this.indusKind) {
+                    param.indusKind = this.indusKind.getValue("valueStr");
+                }
+                if (this.kindNature) {
+                    param.kindNature = this.kindNature.getValue("valueStr");
+                }
+                delete (param.select);
+                /*     param.kind = this.kind.getValue("value").sort().join(",");*/
+                return param;
+            },
+            getData: function () {
+                var self = this;
+                var param = this.getSearchParams();
+                param.pageNo = this.pageNo;
+                param.pageSize = this.pageSize;
+                param.orderBy = this.sort.field;
+                param.orderType = this.sort.type || "asc";
+                // 查询 table 数据列表
+                // App.postJson("/api/subInfo/query/all", param, function (res) {
+                //     self.dataList = res.rows;
+                //     self.loadPage(res.total);
+                //     self.loadTable();
+                // });
+
+                // 表格分页数据
+                param.status = 1;
+                App.postJson("/api/subInfo/query/queryPage", param, function (res) {
+                    self.dataList = res.rows;
+                    self.loadPage(res.total);
+                    self.loadTable();
+                });
+
+                // 统计数据
+                App.postJson("/api/subInfo/query/statistics", param, function (res) {
+                    if (res.success) {
+                        self.beginRate = res.data;
+                        self.beginRate.hyflList = self.beginRate.hyflData;
+                        self.beginRate.jsddList = self.beginRate.jsddData;
+                    }
+                });
+
+                /*App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                    if (res.success) {
+                        self.beginRate = res.data;
+                        self.beginRate.hyflList = self.beginRate.hyflData.split(";");
+                        self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
+                        self.beginRate.jsddList = self.beginRate.jsddData.split(";");
+                        if (res.data.total != 0) {
+                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
+                        } else {
+                            self.beginRate.beginRate = 0;
+                        }
+                        if (res.data.yearAmt != 0) {
+                            self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
+                        } else if (res.data.yearAmtSj != 0) {
+                            self.beginRate.amtRate = 100;
+                        } else {
+                            self.beginRate.amtRate = 0;
+                        }
+                        if (res.data.total != 0) {
+                            self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
+                            self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
+                        } else {
+                            self.beginRate.noRate = "0%";
+                            self.beginRate.beginRate = "0%";
+                            self.beginRate.endRate = "0%";
+                            self.beginRate.stopRate = "0%";
+                            self.beginRate.aRate = "0%";
+                            self.beginRate.bRate = "0%";
+                            self.beginRate.cRate = "0%";
+                        }
+                    } else {
+                        self.beginRate.beginRate = 0;
+                        self.beginRate.amtRate = 0;
+                    }
+                });*/
+            },
+            getStatusName: function (status) {
+                const statusMap = {
+                    '0': '暂存',
+                    '1': '项目前期',
+                    '6': '待开工',
+                    '7': '施工中',
+                    '8': '暂停施工',
+                    'A': '已竣工'
+                };
+                return statusMap[status] || '未知状态';
+            },
+            adjustFrozenRowHeight: function () {
+                $(".layui-table-body tr").each(function (index, val) {
+                    const fixedRow = $(".layui-table-fixed .layui-table-body table tr")[index];
+                    $(fixedRow).height($(val).height());
+                });
+            },
+            loadTable: function () {
+                // 状态名称映射
+                this.dataList.forEach(item => {
+                    item.statusName = this.getStatusName(item.status);
+                });
+
+                const self = this;
+                layui.table.render({
+                    elem: '#table1',
+                    even: true,
+                    autoSort: false,
+                    initSort: self.sort,
+                    cols: [[
+                        {type: 'numbers', align: 'center', minwidth: 44, title: '序号'},
+                        {field: 'subName', title: '项目名称', minwidth: 200, templet: '#subName'},
+                        {field: 'subjectName', title: '项目所在地', minwidth: 200},
+                        {field: 'content', title: '建设内容', minwidth: 200},
+                        {
+                            field: 'amtTotal',
+                            title: '总投资',
+                            minwidth: 200,
+                            templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
+                        },
+                        {field: 'statusName', title: '状态', minwidth: 200},
+                        {field: 'beginDate', title: '计划开工日期', minwidth: 200},
+                        {field: 'endDate', title: '计划完工日期', minwidth: 200},
+                        {title: '操作', minwidth: 225, toolbar: '#toolBar', fixed: 'right'},
+                    ]],
+                    fixed: true,
+                    height: $(window).height() - $('#table1').offset().top - 50,
+                    data: self.dataList,
+                    done: function () {
+                        self.adjustFrozenRowHeight();
+                    }
+                });
+
+                layui.table.on('tool(' + this.tableName + ')', obj => {
+                    const { event } = obj;
+                    if (typeof self[event] === 'function') {
+                        self[event](obj);
+                    } else {
+                        console.warn(`未定义的事件: ${event}`);
+                    }
+                });
+
+                layui.table.on('sort(' + this.tableName + ')', function (obj) {
+                    self.sort = obj;
+                    self.getData();
+                });
+            },
+            toBack: function (obj) {
+                layer.open({
+                    type: 1,
+                    title: "退回",
+                    content: $("#toBack"),
+                    area: ['600px', ''],
+                    btn: ["保存", "取消"],
+                    yes: function (index) {
+                        var data = layui.form.val("toBackForm");
+                        var status = data.status;
+                        if (status != undefined) {
+                            if (parseInt(obj.data.status) <= parseInt(data.status)) {
+                                App.msg.warn("只能退回下级状态,请检查!!!!");
+                                return;
+                            }
+
+                        }
+                        App.postJson("/api/subject/subInfo/toTemp", {
+                            subId: obj.data.id,
+                            status: data.status
+                        }, function (res) {
+                            if (res.success) {
+                                layer.msg("成功", {icon: 6, time: 1000});
+                                //
+                                window.location.href = App.getUrl("subject/subInfo/projTz?type=4");
+                            }
+                        });
+
+                    },
+                    close: function (index) {
+                        layer.close(index);
+                    }
+                })
+            },
+            isNoHide: function (obj) {
+                var self = this;
+                App.msg.confirm("是否移除在建库?", function () {
+                    App.postJson("/api/subject/subInfo/setBackIsHide", {subId: obj.data.id}, function (res) {
+                        if (res.success) {
+                            App.msg.success("设置成功");
+                            self.getData();
+                            layer.close(index);
+                        }
+                    });
+                });
+            },
+
+            move (obj) {
+                this.moveDbParam.id = obj.data.id
+                this.moveDbParam.status = obj.data.cbStatus
+                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>',
+                    area: ['350px', '300px'],
+                    success: function(layero, index){
+                        layui.form.render();
+                    }
+                });
+            },
+            isHide: function (obj) {
+                var self = this;
+                App.msg.confirm("是否移入在建库?", function () {
+                    App.postJson("/api/subject/subInfo/setIsHide", {subId: obj.data.id}, function (res) {
+                        if (res.success) {
+                            App.msg.success("设置成功");
+                            self.getData();
+                            layer.close(index);
+                        }
+                    });
+                });
+            },
+            loadPage: function (totalCount) {
+                var self = this;
+                layui.laypage.render({
+                    elem: 'pagination',
+                    count: totalCount,
+                    curr: self.pageNo,
+                    limit: self.pageSize,
+                    layout: ['count', 'prev', 'page', 'next', 'skip'],
+                    jump: function (obj, first) {
+                        //首次不执行
+                        if (!first) {
+                            self.pageNo = obj.curr;
+                            self.getData();
+                        }
+                    }
+                });
+            },
+            yearPlan: function (obj) {
+                window.location.href = App.getUrl("amtPlan/detail?subId=" + obj.data.id);
+            },
+            setSubReason: function (obj) {
+                var self = this;
+                layui.form.val("reasonForm", obj.data);
+                layer.open({
+                    type: 1,
+                    title: "项目原因录入",
+                    content: $("#setReason"),
+                    area: ['880px', '560px'],
+                    btn: ["保存", "取消"],
+                    yes: function (index) {
+                        var reason = layui.form.val("reasonForm");
+                        reason.subId = obj.data.id;
+                        App.postJson("/api/subject/subInfo/setSubReason", reason, function (res) {
+                            if (res.success) {
+                                App.msg.success("设置成功");
+                                self.getData();
+                                layer.close(index);
+                            }
+                        });
+                    },
+                    close: function (index) {
+                        layer.close(index);
+                    }
+                })
+            },
+            problem: function (obj) {
+                var self = this;
+                obj.data.status_reason = "";
+                layui.form.val("problemForm", obj.data);
+                layer.open({
+                    type: 1,
+                    title: "问题督办",
+                    content: $("#problem"),
+                    area: ['800px', '600px'],
+                    btn: ["保存", "取消"],
+                    yes: function (index) {
+                        var reason = layui.form.val("problemForm");
+                        reason.subId = obj.data.id;
+
+                        if (reason.statusF == "2" || reason.statusF == "1") {
+                            if (reason.status_reason == "" || reason.status_reason == undefined) {
+                                layer.msg("红灯,黄灯必须输入原因");
+                                return;
+                            }
+                        }
+                        App.postJson("/api/subject/subInfo/setStatus", {
+                            subId: obj.data.id,
+                            statusFgw: reason.statusF,
+                            reason: reason.status_reason,
+                            dateConfirm: reason.dateConfirm
+                        }, function (res) {
+                            if (res.success) {
+                                App.msg.success("设置成功");
+                                self.getData();
+                                layer.close(index);
+                            }
+                        });
+                    },
+                    close: function (index) {
+                        layer.close(index);
+                    }
+                })
+            },
+            exportExcel: function () {
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportSumExcel"), "POST", param, "项目情况表.xlsx", "导出失败");
+            },
+            exportExcelByIndusKind: function () {
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportExcelByIndusKind"), "POST", param, "项目情况表(按所属行业统计).xlsx", "导出失败");
+            },
+            exportSchedulingExcel: function () {
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportSchedulingExcel"), "POST", param, "项目调度表.xlsx", "导出失败");
+            },
+            /* exportExcel2: function(){
+                var param = this.getSearchParams();
+                 App.common.utils.downFile(App.getUrl("subInfoExport/exportExcelTz"),"POST", param,"项目详情信息表.xlsx", "导出失败");
+            }, */
+            exportMoreExcel: function () {
+                top.window.getSearchParams = this.getSearchParams;
+                App.openLayer({
+                    title: "自定义导出",
+                    content: App.getUrl("/subInfoExport/index"),
+                    height: "800",
+                    width: "1000"
+                })
+            },
+            toQcc: function (obj) {
+                window.open('https://www.qcc.com/web/search?key=' + obj.data.unitName, '_blank')
+            },
+
+            toManagerUnit: function (obj) {
+                //详情
+                var index = layer.open({
+                    type: 2,
+                    title: '',
+                    area: ['1000px', '800px'],
+                    // /subject/subInfo/editSubInfo
+                    content: App.getUrl("/subject/subInfo/manageUnit?subId=" + obj.data.id + "&queryType=3"),
+                });
+                layui.layer.full(index);
+            },
+            toDetail: function (obj) {
+                //详情
+                var index = layer.open({
+                    type: 2,
+                    title: '',
+                    area: ['1000px', '800px'],
+                    content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
+                });
+                layui.layer.full(index);
+            },
+            /*            toDetail: function (obj) {
+                            //详情
+                            var index = layer.open({
+                                type: 2,
+                                title: '',
+                                area: ['1000px', '800px'],
+                                content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
+                            });
+                            layui.layer.full(index);
+                        },*/
+            levelList: function (field, title, val) {
+                //详情
+                var param = field + "," + title + "," + val
+                var params = encodeURIComponent(JSON.stringify(this.getSearchParams()));
+                var index = top.layer.open({
+                    type: 2,
+                    title: '',
+                    area: ['90%', '90%'],
+                    content: App.getUrl("/subject/subInfo/levelList?layer=true&type=" + this.getSearchParams().queryType + "&curParam=" + param + "&params=" + params),
+                });
+                //top.layer.full(index);
+            },
+            print: function (obj) {
+                window.open(App.getUrl("/subject/apply/downPdf?subId=" + obj.data.id));
+            },
+            toEditSubInfo: function (obj) {
+                window.location.href = App.getUrl("/subject/subInfo/editSubInfo2?subId=" + obj.data.id + "&queryType=3");
+            },
+            preNew: function (obj) {
+                window.location.href = App.getUrl("/subPreNew/todo?subId=" + obj.data.id);
+            },
+            toTh: function (obj) {
+                if (obj.data.statusJh == null || obj.data.statusJh == '0' || obj.data.statusJh == '1') {
+                    App.msg.confirm("是否需要退回到暂存状态?", function () {
+                        App.postJson("/api/subject/subInfo/toTemp", {subId: obj.data.id, status: "0"}, function (res) {
+                            if (res.success) {
+                                layer.msg("成功", {icon: 6, time: 1000});
+                                //
+                                window.location.href = App.getUrl("subject/subInfo/projTz");
+                            }
+                        });
+                    })
+                } else {
+                    App.msg.warn("已做过开工申报,需要走变更流程");
+                }
+            },
+            search: function () {
+                var param = layui.form.getValue("searchForm");
+                window.localStorage.setItem(this.cacheName, JSON.stringify(param));
+                this.pageNo = 1;
+                this.getData();
+            },
+            openExport: function () {
+                this.showExport = true;
+                console.log('移入了')
+            },
+            choseExport: function () {
+                this.showExport = false;
+                console.log('移出了')
+            }
+        }
+    });
+</script>
+
+</body>
+</html>