|
@@ -0,0 +1,1306 @@
|
|
|
+<%@ 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;
|
|
|
+ font-family: "Times New Roman", Times, serif;
|
|
|
+ }
|
|
|
+
|
|
|
+ .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: 230px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 针对特定 select 的样式 */
|
|
|
+ .custom-select + .layui-form-select dl {
|
|
|
+ height: auto; /* 恢复默认高度 */
|
|
|
+ max-height: 150px; /* 设置一个合适的高度 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .layui-table-cell .cut {
|
|
|
+ display: -webkit-box; /* 使用旧版的弹性盒子布局 */
|
|
|
+ -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
|
|
|
+ overflow: hidden; /* 隐藏溢出内容 */
|
|
|
+ text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
|
|
|
+ -webkit-line-clamp: 2; /* 显示的行数 */
|
|
|
+ }
|
|
|
+ .search_pop .layui-layer-content {
|
|
|
+ overflow: visible;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+<div id="app"></div>
|
|
|
+<template id="template">
|
|
|
+ <div class="layui-layout layui-layout-admin pd0">
|
|
|
+ <!-- 内容区域 -->
|
|
|
+ <div class="right_title">
|
|
|
+ <div class="txt">项目总库 <div class="top-breadcrumb"></div></div>
|
|
|
+ <div class="layui-collapse search_form">
|
|
|
+ <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>--%>
|
|
|
+ <select name="indusKind">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <c:forEach items="${HYFL }" var="hy">
|
|
|
+ <option value="${hy.code }">${hy.title}
|
|
|
+ <c:forEach items="${hy.children }" var="hy2">
|
|
|
+ <option value="${hy2.code }">  ${hy2.title}
|
|
|
+ </c:forEach>
|
|
|
+ </option>
|
|
|
+ </c:forEach>
|
|
|
+ </select>
|
|
|
+ </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="subInfoStatus"></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 class="table_box" style="padding-top: 0;">
|
|
|
+ <div class="table_process" style="position: relative">
|
|
|
+
|
|
|
+ <div style="position: relative; display: inline-block" @mouseover="openExport" @mouseout="choseExport">
|
|
|
+ <div class="export">
|
|
|
+ <img src="${WebSite.asset}/css/images/left/export.svg"/>
|
|
|
+ <span>导出</span>
|
|
|
+ </div>
|
|
|
+ <div class="export-item" v-if="showExport" :style="{ top: '-93px' }">
|
|
|
+ <button type="button" class="" @click="exportTotalExcel">汇总导出</button>
|
|
|
+ <button type="button" class="" @click="exportFixDetailExcel">项目明细导出</button>
|
|
|
+ <button type="button" class="" @click="exportAnalysis">分析报告导出</button>
|
|
|
+ <%-- <button type="button" class="" @click="exportMoreExcel">自定义导出</button>--%>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="position: relative; display: inline-block">
|
|
|
+ <div class="export" id="uploadBtn">
|
|
|
+ <img src="${WebSite.asset}/css/images/left/export.svg"/>
|
|
|
+ <span>导入</span>
|
|
|
+ </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操作按钮 --%>
|
|
|
+<%-- table操作按钮 --%>
|
|
|
+<script type="text/html" id="toolBar">
|
|
|
+ <div class="toolBar">
|
|
|
+ <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"> 编辑</span>
|
|
|
+ {{#} }}
|
|
|
+ <span title="红黄灯" lay-event="toEditLight" class="no-wrap">红黄灯</span>
|
|
|
+ <span title="转库" lay-event="move" class="no-wrap">转库</span>
|
|
|
+ {{# if(d.status != '5') { }}
|
|
|
+ <span title="移出4库" lay-event="removeFour" class="no-wrap">移出4库</span>
|
|
|
+ {{#} }}
|
|
|
+ {{# if(d.status == '5') { }}
|
|
|
+ <span title="取消移除" lay-event="cancelRemove" 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 type="text/html" id="moveForm">
|
|
|
+ <div class="layui-form" style="padding: 20px;">
|
|
|
+ <div class="layui-form-item" style="display: flex; align-items: center;">
|
|
|
+ <label class="layui-form-label" style="text-align: right; width: 90px;">当前状态:</label>
|
|
|
+ <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
|
|
|
+ <input type="text" name="currentState" value="储备库" disabled class="layui-input">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-form-item" style="display: flex; align-items: center;">
|
|
|
+ <label class="layui-form-label" style="text-align: right; width: 90px;">转库到:</label>
|
|
|
+ <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px);">
|
|
|
+ <select class="custom-select" lay-filter="moveStatus" lay-verify="required">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <c:forEach items="${subInfoStatus }" var="item">
|
|
|
+ <option value="${item.code}">${item.desc}</option>
|
|
|
+ </c:forEach>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-form-item" style="display: flex; align-items: center;">
|
|
|
+ <label class="layui-form-label" style="text-align: right; width: 90px;"></label>
|
|
|
+ <div class="layui-input-block" style="flex: 1; max-width: calc(100% - 120px); text-align: right;">
|
|
|
+ <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
|
|
|
+ <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认转库</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</script>
|
|
|
+
|
|
|
+<script>
|
|
|
+ layui.use('element', function () {
|
|
|
+ let element = layui.element;
|
|
|
+ });
|
|
|
+ let vm = new Vue({
|
|
|
+ el: "#app",
|
|
|
+ template: "#template",
|
|
|
+ data: {
|
|
|
+ subInfoStatusData: [],
|
|
|
+ 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: {
|
|
|
+ // 红黄灯
|
|
|
+ toEditLight(obj){
|
|
|
+ let self = this;
|
|
|
+ App.openLayer({
|
|
|
+ title: "红黄灯设置",
|
|
|
+ content: App.getUrl("/subject/subInfo/light?subId=" + obj.data.id),
|
|
|
+ width: 500,
|
|
|
+ height: 400,
|
|
|
+ end: function() {
|
|
|
+ self.getData();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ closeAllLayers() {
|
|
|
+ layui.layer.closeAll(); // 关闭所有弹框
|
|
|
+ },
|
|
|
+ confirmMove: function () {
|
|
|
+ let param = this.moveDbParam
|
|
|
+ // 数据验证
|
|
|
+ if (!param || !param.status) {
|
|
|
+ App.msg.error("请选择转库状态");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // param.statusName = this.getStatusName(param.status)
|
|
|
+ param.statusName = this.subInfoStatusData.find(item => item.value === param.status).name
|
|
|
+ let self = this;
|
|
|
+ self.closeAllLayers();
|
|
|
+ App.msg.confirm(`是否转入` + param.statusName + `库?`, () => {
|
|
|
+ App.postJson("/api/subject/subInfo/moveDb", {id: param.id, status: param.status}, (res) => {
|
|
|
+ if (res.success) {
|
|
|
+ App.msg.success("转库成功");
|
|
|
+ self.getData()
|
|
|
+ } else {
|
|
|
+ App.msg.error(res.message || "转库失败,请重试");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ },
|
|
|
+ removeFour(obj){
|
|
|
+ let self = this;
|
|
|
+ App.msg.confirm(`是否移除`, () => {
|
|
|
+ App.postJson("/api/subject/subInfo/removeFour", {id: obj.data.id}, (res) => {
|
|
|
+ if (res.success) {
|
|
|
+ App.msg.success("移除成功");
|
|
|
+ self.getData()
|
|
|
+ } else {
|
|
|
+ App.msg.error(res.message || "移除失败,请重试");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ cancelRemove(obj){
|
|
|
+ let self = this;
|
|
|
+ App.msg.confirm(`是否取消`, () => {
|
|
|
+ App.postJson("/api/subject/subInfo/cancelRemove", {id: obj.data.id}, (res) => {
|
|
|
+ if (res.success) {
|
|
|
+ App.msg.success("取消成功");
|
|
|
+ self.getData()
|
|
|
+ } else {
|
|
|
+ App.msg.error(res.message || "取消失败,请重试");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ move(obj) {
|
|
|
+ this.moveDbParam.id = obj.data.id
|
|
|
+ const formTemplate = document.getElementById('moveForm').innerHTML;
|
|
|
+ layer.open({
|
|
|
+ type: 1,
|
|
|
+ title: '转库',
|
|
|
+ content: formTemplate,
|
|
|
+ area: ['350px', '300px'],
|
|
|
+ skin: 'search_pop',
|
|
|
+ success: function (layero, index) {
|
|
|
+ layui.form.render();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ init: function () {
|
|
|
+ let self = this;
|
|
|
+ layui.form.on("select(moveStatus)", function (data) {
|
|
|
+ self.moveDbParam.status = data.value;
|
|
|
+ });
|
|
|
+
|
|
|
+ // 文件上传
|
|
|
+ layui.upload.render({
|
|
|
+ elem: '#uploadBtn',
|
|
|
+ url: App.getUrl("/api/subject/subInfo/importXmzkDetailExcel"),
|
|
|
+ accept: 'file', // 普通文件
|
|
|
+ exts: 'xls|xlsx', // 限制文件类型
|
|
|
+ done: function (res) {
|
|
|
+ if (res.success === true) {
|
|
|
+ self.getData();
|
|
|
+ layui.layer.msg('导入成功!');
|
|
|
+ } else {
|
|
|
+ layui.layer.msg('导入失败:' + res.message, {icon: 5});
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function (res) {
|
|
|
+ layui.layer.msg('上传失败,请稍后再试' + res.message, {icon: 5});
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ 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>
|
|
|
+
|
|
|
+
|
|
|
+ <%--var indusKindData = [];--%>
|
|
|
+ <%--<c:forEach items="${HYFL}" var="xm">--%>
|
|
|
+ <%--var childData = [];--%>
|
|
|
+ <%--<c:forEach items="${xm.children}" var="c">--%>
|
|
|
+ <%--childData.push({--%>
|
|
|
+ <%-- value: "${c.code}",--%>
|
|
|
+ <%-- name: "${c.title}",--%>
|
|
|
+ <%--})--%>
|
|
|
+ <%--</c:forEach>--%>
|
|
|
+ <%--indusKindData.push(--%>
|
|
|
+ <%-- {--%>
|
|
|
+ <%-- value: "${xm.code}",--%>
|
|
|
+ <%-- name: "${xm.title}",--%>
|
|
|
+ <%-- children: childData--%>
|
|
|
+ <%-- });--%>
|
|
|
+ <%--</c:forEach>--%>
|
|
|
+ <%--this.indusKind = layui.xmSelect.render({--%>
|
|
|
+ <%-- el: "#indusKind",--%>
|
|
|
+ <%-- language: 'zn',--%>
|
|
|
+ <%-- data: indusKindData,--%>
|
|
|
+ <%--});--%>
|
|
|
+
|
|
|
+
|
|
|
+ // var subInfoStatusData = [];
|
|
|
+ <c:forEach items="${subInfoStatus}" var="xm">
|
|
|
+ self.subInfoStatusData.push({value: "${xm.code}", name: "${xm.desc}"});
|
|
|
+ </c:forEach>
|
|
|
+ this.subInfoStatus = layui.xmSelect.render({
|
|
|
+ el: "#subInfoStatus",
|
|
|
+ language: 'zn',
|
|
|
+ data: self.subInfoStatusData
|
|
|
+ });
|
|
|
+ console.log(self.subInfoStatusData)
|
|
|
+ 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.addEventListener('message', this.receiveMessage, false);
|
|
|
+ window.parent.postMessage('init loaded')
|
|
|
+ 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.subInfoStatus) {
|
|
|
+ param.statusList = this.subInfoStatus.getValue("valueList").map(item => item.value);
|
|
|
+ }
|
|
|
+ delete (param.select);
|
|
|
+ /* param.kind = this.kind.getValue("value").sort().join(",");*/
|
|
|
+ return param;
|
|
|
+ },
|
|
|
+ getData: function () {
|
|
|
+ var self = this;
|
|
|
+ var param = this.getSearchParams();
|
|
|
+ console.log("param====getData",param)
|
|
|
+ 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();
|
|
|
+ // });
|
|
|
+
|
|
|
+ // 表格分页数据
|
|
|
+ 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': '储备',
|
|
|
+ '2': '新建',
|
|
|
+ '3': '在建',
|
|
|
+ '5': '移除项目',
|
|
|
+ '9': '投产'
|
|
|
+ };
|
|
|
+ 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', width: 44, title: '序号',fixed: 'left'},
|
|
|
+ {field: 'subName', title: '项目名称', minWidth: 200, templet: '#subName',fixed: 'left'},
|
|
|
+ {field: 'subjectName', title: '项目所在地', width: 100},
|
|
|
+ {field: 'content', title: '建设内容', minWidth: 100,
|
|
|
+ templet: function (row) {
|
|
|
+ return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
|
|
|
+ }},
|
|
|
+ {
|
|
|
+ field: 'amtTotal',
|
|
|
+ title: '总投资',
|
|
|
+ width: 100,
|
|
|
+ templet: d => `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元",
|
|
|
+ },
|
|
|
+ {field: 'statusName', title: '状态', width: 60},
|
|
|
+ {field: 'beginDate', title: '计划开工日期', minWidth: 100,
|
|
|
+ templet: (d)=> `<span class="new-roman">` + d.beginDate + `</span>`
|
|
|
+ },
|
|
|
+ {field: 'endDate', title: '计划完工日期', minWidth: 100,
|
|
|
+ templet: (d)=> `<span class="new-roman">` + d.endDate + `</span>`
|
|
|
+ },
|
|
|
+ {title: '操作', width: 160, 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);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ exportTotalExcel: function () {
|
|
|
+ var param = this.getSearchParams();
|
|
|
+ App.common.utils.downFile(App.getUrl("subInfoExport/exportTotalExcelByStatus"), "POST", param, "项目情况表(总库).xlsx", "导出失败");
|
|
|
+ },
|
|
|
+ exportFixDetailExcel: function () {
|
|
|
+ var param = this.getSearchParams();
|
|
|
+ console.log("param====",param)
|
|
|
+ App.common.utils.downFile(App.getUrl("/subInfoExport/exportXmzkDetailExcel"), "POST", param, "项目明细表(总库).xlsx", "导出失败");
|
|
|
+ },
|
|
|
+ exportAnalysis: function () {
|
|
|
+ var param = this.getSearchParams();
|
|
|
+ App.common.utils.downFile(App.getUrl("/subInfoExport/xmzkAnalysisExport"), "POST", param, "“四个一批”工业项目情况分析报告.docx", "导出失败");
|
|
|
+ },
|
|
|
+ exportDetailExcel: function () {
|
|
|
+ var param = this.getSearchParams();
|
|
|
+ App.common.utils.downFile(App.getUrl("subInfoExport/exportDetailExcel"), "POST", param, "项目明细表(总库).xlsx", "导出失败");
|
|
|
+ },
|
|
|
+ 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 + "¶ms=" + 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('移出了')
|
|
|
+ },
|
|
|
+ receiveMessage (e) {
|
|
|
+ console.log('cb receiveMessage: ', e.data)
|
|
|
+ if (e.data.topBreadcrumb) {
|
|
|
+ $(".top-breadcrumb").html(e.data.topBreadcrumb)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+</script>
|
|
|
+
|
|
|
+</body>
|
|
|
+</html>
|