|
@@ -0,0 +1,941 @@
|
|
|
|
+<%@ page contentType="text/html;charset=UTF-8" %>
|
|
|
|
+<%@ include file="/webpage/include/taglib.jsp"%>
|
|
|
|
+<html>
|
|
|
|
+<head>
|
|
|
|
+ <title>合同归档管理</title>
|
|
|
|
+ <meta name="decorator" content="default"/>
|
|
|
|
+ <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
|
|
|
|
+ <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
|
|
|
|
+ <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
|
|
|
|
+ </div><script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
|
|
|
|
+ <script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
|
|
|
|
+ <script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
|
|
|
|
+ <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
|
|
|
|
+ <script src="${ctxStatic}/common/html/js/script.js"></script>
|
|
|
|
+ <%@include file="/webpage/include/treetable.jsp" %>
|
|
|
|
+
|
|
|
|
+ <style>
|
|
|
|
+ label.error:nth-child(2){
|
|
|
|
+ top:40px;
|
|
|
|
+ left:0;
|
|
|
|
+ }
|
|
|
|
+ .layui-table th{
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ /*表头内容居中显示*/
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+ .layui-table td{
|
|
|
|
+ /*表头内容居中显示*/
|
|
|
|
+ text-align: left;
|
|
|
|
+ }
|
|
|
|
+ span{
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ }
|
|
|
|
+ </style>
|
|
|
|
+ <script type="text/javascript">
|
|
|
|
+ var validateForm;
|
|
|
|
+ function listTr(obj){
|
|
|
|
+ var name=$(obj).attr("id");
|
|
|
|
+ var tiao="."+name;
|
|
|
|
+ var span=$(obj).find("td").eq(2);
|
|
|
|
+ $(span).toggle(function () {
|
|
|
|
+ $(tiao).hide();
|
|
|
|
+ $(span).find("span").eq(0).attr("class","default_shut")
|
|
|
|
+ },function () {
|
|
|
|
+ $(tiao).show();
|
|
|
|
+ $(span).find("span").eq(0).attr("class","default_open")
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
|
|
|
|
+ if(validateForm.form()){
|
|
|
|
+ var onsubmit = $("#onsubmit").val();
|
|
|
|
+ if("true" == onsubmit){
|
|
|
|
+ $("#onsubmit").val(false);
|
|
|
|
+ }else{
|
|
|
|
+ parent.layer.msg("请勿重复提交!", {icon: 5});
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ var caseBase = $("#file_caseBase tr").length;
|
|
|
|
+ for(var i=0; i<caseBase; i++) {
|
|
|
|
+ var numberStr = $("#file_caseBase tr").eq(i).find("td:first").html();
|
|
|
|
+ var second = $("#file_caseBase tr").eq(i).find("td:eq(1)").html();
|
|
|
|
+ var fileFlag = $("#file_caseBase tr").eq(i).find("td:last").html();
|
|
|
|
+ if(second == 1){
|
|
|
|
+ if(numberStr != undefined && numberStr !=null && numberStr !=''){
|
|
|
|
+ if (fileFlag==1){
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ top.layer.msg("请上传案例文件!", {icon: 0});
|
|
|
|
+ $("#onsubmit").val(true);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var flag=judgment();
|
|
|
|
+ if (flag){
|
|
|
|
+ $("#inputForm").attr("action","${ctx}/ruralProject/RuralProjectRecordsOwnCaseBase/saveSycnCaseBaseRecord");
|
|
|
|
+ }else if (!flag){
|
|
|
|
+ $("#onsubmit").val(true);
|
|
|
|
+ return flag;
|
|
|
|
+ }
|
|
|
|
+ $("#inputForm").submit();
|
|
|
|
+ return true;
|
|
|
|
+ }else {
|
|
|
|
+ parent.layer.msg("信息未填写完整!", {icon: 5});
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ $(document).ready(function() {
|
|
|
|
+ validateForm = $("#inputForm").validate({
|
|
|
|
+ submitHandler: function(form){
|
|
|
|
+ loading('正在提交,请稍等...');
|
|
|
|
+ form.submit();
|
|
|
|
+ },
|
|
|
|
+ errorContainer: "#messageBox",
|
|
|
|
+ errorPlacement: function(error, element) {
|
|
|
|
+ $("#messageBox").text("输入有误,请先更正。");
|
|
|
|
+ if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
|
|
|
|
+ error.appendTo(element.parent().parent());
|
|
|
|
+ } else {
|
|
|
|
+ error.insertAfter(element);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ $("#attachment_btn").click(function () {
|
|
|
|
+ $("#attachment_file").click();
|
|
|
|
+ });
|
|
|
|
+ $(".tabMove").mouseover(function(){
|
|
|
|
+ //tips层-下
|
|
|
|
+ var td=$(this)
|
|
|
|
+ var tdval=$(this).find("input").val();
|
|
|
|
+ layer.tips(tdval, td, {
|
|
|
|
+ tips: 3
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var value = '${projectCaseBaseAudit.projectDomain}';
|
|
|
|
+ if (value === '1') {
|
|
|
|
+ document.getElementById('engineeringTypeBlock').style.display = '';
|
|
|
|
+ } else {
|
|
|
|
+ document.getElementById('engineeringTypeBlock').style.display = 'none';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ layui.use(['form', 'layer'], function () {
|
|
|
|
+ var form = layui.form;
|
|
|
|
+
|
|
|
|
+ form.on('select', function(data){
|
|
|
|
+ var value = data.value;
|
|
|
|
+ if (value === '1') {
|
|
|
|
+ document.getElementById('engineeringTypeBlock').style.display = '';
|
|
|
|
+ } else {
|
|
|
|
+ document.getElementById('engineeringTypeBlock').style.display = 'none';
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ $.ajax({
|
|
|
|
+ type : "POST",
|
|
|
|
+ url : "${ctx}/ruralProject/RuralProjectRecordsOwnCaseBase/engineeringTreeMenu",
|
|
|
|
+ //请求成功
|
|
|
|
+ success : function(result) {
|
|
|
|
+ var s='{"title": "menu item 4","id": "4"}'
|
|
|
|
+ var str=jQuery.parseJSON(result);
|
|
|
|
+ //工程类型树形菜单
|
|
|
|
+ layui.dropdown.render({
|
|
|
|
+ elem: '#demo100'
|
|
|
|
+ ,style: 'width: 450px;'
|
|
|
|
+ ,data:str
|
|
|
|
+ ,click: function(item){
|
|
|
|
+ $("#demo100").find("span").html(item.title)
|
|
|
|
+ $("#demo100").find("#engineeringType").val(item.id)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ $('#areaId').on("change", function () {
|
|
|
|
+ console.log(3213213)
|
|
|
|
+ var areaId = $("#areaId").val();
|
|
|
|
+ $("#province").val('');
|
|
|
|
+ $("#city").val('');
|
|
|
|
+ $("#county").val('');
|
|
|
|
+ $.ajax({
|
|
|
|
+ type : "POST",
|
|
|
|
+ url : "${ctx}/sys/area/getParent",
|
|
|
|
+ data : {'areaId':areaId},
|
|
|
|
+ //请求成功
|
|
|
|
+ success : function(result) {
|
|
|
|
+ var pro = result.province;
|
|
|
|
+ var city = result.city;
|
|
|
|
+ if(pro != '') {
|
|
|
|
+ $("#province").val(pro);
|
|
|
|
+ }
|
|
|
|
+ if(city != '') {
|
|
|
|
+ $("#city").val(city);
|
|
|
|
+ }
|
|
|
|
+ $("#areaShow").html(pro+"-"+city);
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+ });
|
|
|
|
+ function insertTitle(tValue){
|
|
|
|
+ var list = "${projectReportRecord.workAttachments}";
|
|
|
|
+ var size = (list.split('url')).length-1;
|
|
|
|
+ var files = $("#attachment_file")[0].files; for(var i = 0;i<files.length;i++) { var file = files[i];
|
|
|
|
+ var attachmentId = "";
|
|
|
|
+ var attachmentFlag = "99";
|
|
|
|
+ console.log(file);
|
|
|
|
+ var timestamp=new Date().getTime();
|
|
|
|
+
|
|
|
|
+ var storeAs = "projectRecords";
|
|
|
|
+ var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
|
|
|
|
+ var divId = "_attachment";
|
|
|
|
+ $("#addFile"+divId).show();
|
|
|
|
+ multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size);}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function otherInsertTitle(tValue){
|
|
|
|
+ var files = $("#other_file")[0].files;
|
|
|
|
+ for(var i=0;i<files.length;i++) {
|
|
|
|
+ var file = files[i];
|
|
|
|
+ var attachmentId = "";
|
|
|
|
+ var attachmentFlag = "153";
|
|
|
|
+ console.log(file);
|
|
|
|
+ var timestamp = new Date().getTime();
|
|
|
|
+
|
|
|
|
+ var storeAs = "projectRecords";
|
|
|
|
+ var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
|
|
|
|
+ /*将这段字符串存到数据库即可*/
|
|
|
|
+ var divId = "_other";
|
|
|
|
+ $("#addFile" + divId).show();
|
|
|
|
+ multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, "0");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function caseBaseInsertTitle(tValue){
|
|
|
|
+ var files = $("#caseBase_file")[0].files;
|
|
|
|
+ for(var i=0;i<files.length;i++) {
|
|
|
|
+ var file = files[i];
|
|
|
|
+ var attachmentId = "";
|
|
|
|
+ var attachmentFlag = "154";
|
|
|
|
+ console.log(file);
|
|
|
|
+ var timestamp = new Date().getTime();
|
|
|
|
+
|
|
|
|
+ var storeAs = "projectRecords";
|
|
|
|
+ var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
|
|
|
|
+ /*将这段字符串存到数据库即可*/
|
|
|
|
+ var divId = "_caseBase";
|
|
|
|
+ $("#addFile" + divId).show();
|
|
|
|
+ multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, "0");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function readOpenInfo(value) {
|
|
|
|
+ layer.open({
|
|
|
|
+ title: '内容',
|
|
|
|
+ btn: ['关闭'],
|
|
|
|
+ content: value
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ </script>
|
|
|
|
+</head>
|
|
|
|
+<body>
|
|
|
|
+<div class="single-form">
|
|
|
|
+ <div class="container">
|
|
|
|
+ <form:form id="inputForm" modelAttribute="projectCaseBaseAudit" method="post" class="form-horizontal layui-form">
|
|
|
|
+ <form:hidden path="id"/>
|
|
|
|
+ <form:hidden path="projectId"/>
|
|
|
|
+ <input type="hidden" id="onsubmit" value="true">
|
|
|
|
+ <input type="hidden" id="areaType" value="${projectCaseBaseAudit.area.type}">
|
|
|
|
+ <input type="hidden" id="province" name="province" value="${projectCaseBaseAudit.province}">
|
|
|
|
+ <input type="hidden" id="city" name="city" value="${projectCaseBaseAudit.city}">
|
|
|
|
+ <input type="hidden" id="selectedIds" name="selectedIds" value="" />
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="form-group layui-row first lw12">
|
|
|
|
+ <div class="form-group-label"><h2>基本信息</h2></div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>项目名称:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <input id="projectName" name="projectName" htmlEscape="false" readonly="true" class="form-control layui-input required" value="${projectRecords.projectName}"/>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw6">
|
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>项目所在地:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectCaseBaseAudit.province}-${projectCaseBaseAudit.city}"/>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>工程建设开始日期:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <input class="laydate-icondate judgment form-control layui-input layer-date laydate-icon" style="background-color: #f1f1f1" readonly="readonly" id="startDate" name="startDate" placeholder="请选择开始日期" value="<fmt:formatDate value="${projectCaseBaseAudit.startDate}" pattern="yyyy-MM-dd"/>">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>工程建设结束日期:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <input class="laydate-icondate judgment form-control layui-input layer-date laydate-icon" style="background-color: #f1f1f1" readonly="readonly" id="endDate" name="endDate" placeholder="请选择结束日期" value="<fmt:formatDate value="${projectCaseBaseAudit.endDate}" pattern="yyyy-MM-dd"/>">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>工程领域:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <form:select placeholder="请选择" path="projectDomain" disabled="true" style="background-color: #f1f1f1" class="form-control judgment editable-select layui-input" id="projectProperties" value="${projectCaseBaseAudit.projectDomain}">
|
|
|
|
+ <form:option value=""/>
|
|
|
|
+ <form:options items="${fns:getMainDictList('project_domain')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
|
|
|
|
+ </form:select>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw7" id="engineeringTypeBlock" style="${showEngineeringType ? '' : 'display:none;'}">
|
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>工程类型:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left;background-color: #f1f1f1" id="demo100" disabled>
|
|
|
|
+ <span>${engineeringInfo.engineeringName}</span>
|
|
|
|
+ <input type="hidden" name="engineeringType" id="engineeringType" class="judgment" value="${engineeringInfo.id}"/>
|
|
|
|
+ <i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>
|
|
|
|
+ </button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group layui-row">
|
|
|
|
+ <div class="form-group-label"><h2>案例文件</h2></div>
|
|
|
|
+ <div id="addFile_caseBase" style="display: none" class="upload-progress">
|
|
|
|
+ <span id="fileName_caseBase" ></span>
|
|
|
|
+ <span id="_caseBase" ></span>
|
|
|
|
+ <b><span id="baifenbi_caseBase" ></span></b>
|
|
|
|
+ <div class="progress">
|
|
|
|
+ <div id="jindutiao_caseBase" class="progress-bar" style="width: 0%" aria-valuenow="0">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <input id="caseBase_file" type="file" name="caseBase_file" multiple="multiple" style="display: none;" onChange="if(this.value)caseBaseInsertTitle(this.value);"/>
|
|
|
|
+ <span id="caseBase_title"></span>
|
|
|
|
+ <div class="layui-item layui-col-xs12" style="padding:0 16px;">
|
|
|
|
+ <table id="upTable_caseBase" class="table table-bordered table-condensed tree_table">
|
|
|
|
+ <thead>
|
|
|
|
+ <tr>
|
|
|
|
+ <%-- <th>序号</th>--%>
|
|
|
|
+ <th width="20%">文件要求</th>
|
|
|
|
+ <th width="35%">文件描述/文件</th>
|
|
|
|
+ <th width="20%">文件类型</th>
|
|
|
|
+ <th width="160px">上传时间</th>
|
|
|
|
+ <th width="120px">文件大小(M)</th>
|
|
|
|
+ <th width="200px">操作</th>
|
|
|
|
+ </tr>
|
|
|
|
+ </thead>
|
|
|
|
+ <tbody id="file_caseBase">
|
|
|
|
+ <c:forEach items="${projectReportRecord.fileCaseBaseList}" var = "filecaseBase" varStatus="status">
|
|
|
|
+ <tr id="file_caseBase_${filecaseBase.id}_tr" onclick="listTr(this)">
|
|
|
|
+ <%-- <td>${status.index + 1}</td>--%>
|
|
|
|
+ <td style="display:none">${filecaseBase.id}</td>
|
|
|
|
+ <td style="display:none">${filecaseBase.mustFlag}</td>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${filecaseBase.mustFlag == 1}">
|
|
|
|
+ <td class="tabMove" style="text-align: left;"><span class='default_open ' style="padding-right: 15px; "></span><span style="color: red">* </span>${filecaseBase.attachName}<input type="hidden" value="${filecaseBase.attachName}"/></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${filecaseBase.attachName}<input type="hidden" value="${filecaseBase.attachName}"/></td>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ <td>
|
|
|
|
+ <%-- <div><span class="file_nei">内容:</span><div class="file_neirong">${filecaseBase.attachName}</div></div>--%>
|
|
|
|
+ <div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${filecaseBase.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;"> ${filecaseBase.attachTypes}</div>
|
|
|
|
+ </td>
|
|
|
|
+ <td></td>
|
|
|
|
+ <td></td>
|
|
|
|
+ <td></td>
|
|
|
|
+ <td class="op-td">
|
|
|
|
+ <div class="op-btn-box" >
|
|
|
|
+ <a href="javascript:void(0)" onclick="openBill2('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${filecaseBase.id}&projectId=${projectRecords.id}&uploadMode=${projectReportRecord.uploadMode}','70%','80%',false,'inputForm','upTable_caseBase')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
|
|
|
|
+ </div>
|
|
|
|
+ </td>
|
|
|
|
+ <td style="display:none">${filecaseBase.fileFlag}</td>
|
|
|
|
+
|
|
|
|
+ </tr>
|
|
|
|
+ <c:forEach items="${filecaseBase.workAttachments}" var = "workClientAttachment" varStatus="status">
|
|
|
|
+ <tr id="addFile_caseBase_${workClientAttachment.id}_tr" class="addFile_caseBase_${filecaseBase.id}_tr">
|
|
|
|
+ <td></td>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${projectReportRecord.uploadMode == 2}">
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
|
|
|
|
+ <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(filecaseBase.attachName,'rar')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
|
|
|
|
+ <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(filecaseBase.attachName,'rar')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
|
|
|
|
+ or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <td class="op-td" style="text-align:center;">
|
|
|
|
+ <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
|
|
|
|
+ </td>
|
|
|
|
+ <td class="op-td" style="text-align:center;">
|
|
|
|
+ ${workClientAttachment.fileSize}
|
|
|
|
+ </td>
|
|
|
|
+ <td class="op-td">
|
|
|
|
+ <div class="op-btn-box" >
|
|
|
|
+ <%--附件下载删除--%>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${projectReportRecord.uploadMode == 2}">
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
|
|
|
|
+ <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i> 下载1</a>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i> 下载</a>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i> 下载</a>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </td>
|
|
|
|
+ </tr>
|
|
|
|
+ </c:forEach>
|
|
|
|
+ </c:forEach>
|
|
|
|
+ </tbody>
|
|
|
|
+ </table>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <script type="text/template" id="caseBaseTpl">//<!--
|
|
|
|
+ <tr id="budgetList{{idx}}">
|
|
|
|
+ <td class="hide">
|
|
|
|
+ <input id="caseBaseTpl{{idx}}_id" type="hidden" value="{{row.id}}" class="clientId"/>
|
|
|
|
+ </td>
|
|
|
|
+ <td class="hide">
|
|
|
|
+ 0
|
|
|
|
+ </td>
|
|
|
|
+ <td style="text-align:center;">
|
|
|
|
+ {{row.attachName}}
|
|
|
|
+ </td>
|
|
|
|
+ <td style="text-align:center;">
|
|
|
|
+ {{row.attachLength}}
|
|
|
|
+ </td>
|
|
|
|
+ <td style="text-align:center;">
|
|
|
|
+ {{row.attachTypes}}
|
|
|
|
+ </td>
|
|
|
|
+ <td style="text-align:center;">
|
|
|
|
+
|
|
|
|
+ </td>
|
|
|
|
+ <td class="op-td">
|
|
|
|
+ <div class="op-btn-box" >
|
|
|
|
+ <a href="javascript:void(0)" onclick="openBill2('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId={{row.id}}&projectId=${project.id}','70%','80%',false,'inputForm','upTable_caseBase')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>
|
|
|
|
+ </div>
|
|
|
|
+ </td>
|
|
|
|
+ </tr>//-->
|
|
|
|
+ </script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="form-group layui-row page-end"></div>
|
|
|
|
+ </form:form>
|
|
|
|
+ </div>
|
|
|
|
+<script>
|
|
|
|
+ function openBill2(title,url,width,height,target,formId,tableId){
|
|
|
|
+ var rows = $(this).parent().prevAll().length + 1;
|
|
|
|
+ var frameIndex = parent.layer.getFrameIndex(window.name);
|
|
|
|
+ var urls = url+"&index="+frameIndex;
|
|
|
|
+ if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
|
|
|
|
+ width='auto';
|
|
|
|
+ height='auto';
|
|
|
|
+ }else{//如果是PC端,根据用户设置的width和height显示。
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ top.layer.open({
|
|
|
|
+ type: 2,
|
|
|
|
+ name : "iframeRefresh",
|
|
|
|
+ area: [width, height],
|
|
|
|
+ title: title,
|
|
|
|
+ skin:"two-btns",
|
|
|
|
+ maxmin: false, //开启最大化最小化按钮
|
|
|
|
+ content: urls ,
|
|
|
|
+ btn: ['确定','关闭'],
|
|
|
|
+ yes: function(index, layero){
|
|
|
|
+ var body = top.layer.getChildFrame('body', index);
|
|
|
|
+ var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
|
|
|
+ var inputForm = body.find('#inputForm');
|
|
|
|
+ var top_iframe;
|
|
|
|
+ if(target){
|
|
|
|
+ top_iframe = target;//如果指定了iframe,则在改frame中跳转
|
|
|
|
+ }else{
|
|
|
|
+ top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
|
|
|
|
+ }
|
|
|
|
+ inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
|
|
|
|
+ inputForm.attr("action","${ctx}/projectAccessory/projectAccessory/saveWorkAttachment");//表单提交成功后,从服务器返回的url在当前tab中展示
|
|
|
|
+ var $document = iframeWin.contentWindow.document;
|
|
|
|
+
|
|
|
|
+ formSubmit2($document,formId,index,tableId);
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ cancel: function(index){
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ function formSubmit2($document,inputForm,index,tableId){
|
|
|
|
+
|
|
|
|
+ var validateForm = $($document.getElementById(inputForm)).validate({
|
|
|
|
+ submitHandler: function(form){
|
|
|
|
+ loading('正在提交,请稍等...');
|
|
|
|
+ form.submit();
|
|
|
|
+ },
|
|
|
|
+ errorContainer: "#messageBox",
|
|
|
|
+ errorPlacement: function(error, element) {
|
|
|
|
+ $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
|
|
|
|
+ if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
|
|
|
|
+ error.appendTo(element.parent().parent());
|
|
|
|
+ } else {
|
|
|
|
+ error.insertAfter(element);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ if(validateForm.form()){
|
|
|
|
+ var action = $document.getElementById(inputForm).action;
|
|
|
|
+ var handleInfo = $($document.getElementById(inputForm)).serialize();
|
|
|
|
+ $.ajax({
|
|
|
|
+ type : "POST",
|
|
|
|
+ url : action,
|
|
|
|
+ data : handleInfo,
|
|
|
|
+ //请求成功
|
|
|
|
+ success:function(data) {
|
|
|
|
+ var d = data;
|
|
|
|
+ //输出提示信息
|
|
|
|
+ if(d.str.length>0){
|
|
|
|
+ parent.layer.msg(d.str,{icon:1});
|
|
|
|
+ }
|
|
|
|
+ //将数据临时挂载在父级页面
|
|
|
|
+ parent.tempSyncIds = [...confirmIdList]
|
|
|
|
+ location.reload();
|
|
|
|
+ top.layer.close(index)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //新增行方法
|
|
|
|
+ var caseBaseTpl = $("#caseBaseTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
|
|
|
|
+
|
|
|
|
+ function formAttachment(title,url,width,height,target,formId,divId){
|
|
|
|
+ var rows = $(this).parent().prevAll().length + 1;
|
|
|
|
+ var frameIndex = parent.layer.getFrameIndex(window.name);
|
|
|
|
+ var urls = url;
|
|
|
|
+ if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
|
|
|
|
+ width='auto';
|
|
|
|
+ height='auto';
|
|
|
|
+ }else{//如果是PC端,根据用户设置的width和height显示。
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ top.layer.open({
|
|
|
|
+ type: 2,
|
|
|
|
+ area: [width, height],
|
|
|
|
+ title: title,
|
|
|
|
+ skin:"two-btns",
|
|
|
|
+ maxmin: false, //开启最大化最小化按钮
|
|
|
|
+ content: urls ,
|
|
|
|
+ btn: ['确定','关闭'],
|
|
|
|
+ yes: function(index, layero){
|
|
|
|
+ var body = top.layer.getChildFrame('body', index);
|
|
|
|
+ var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
|
|
|
|
+ var inputForm = body.find('#inputForm');
|
|
|
|
+ var top_iframe;
|
|
|
|
+ inputForm.attr("action","${ctx}/projectTemplate/projectTemplate/getProjectTemplateInfo");//表单提交成功后,从服务器返回的url在当前tab中展示
|
|
|
|
+ var $document = iframeWin.contentWindow.document;
|
|
|
|
+ formSubmitAjax($document,formId,index,divId);
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ cancel: function(index){
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ function formSubmitAjax($document,inputForm,index,divId){
|
|
|
|
+ var validateForm = $($document.getElementById(inputForm)).validate({
|
|
|
|
+ submitHandler: function(form){
|
|
|
|
+ loading('正在提交,请稍等...');
|
|
|
|
+ form.submit();
|
|
|
|
+ },
|
|
|
|
+ errorContainer: "#messageBox",
|
|
|
|
+ errorPlacement: function(error, element) {
|
|
|
|
+ $($document.getElementById("#messageBox")).text("输入有误,请先更正。");
|
|
|
|
+ if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
|
|
|
|
+ error.appendTo(element.parent().parent());
|
|
|
|
+ } else {
|
|
|
|
+ error.insertAfter(element);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ if(validateForm.form()){
|
|
|
|
+ $($document.getElementById(inputForm)).ajaxSubmit({
|
|
|
|
+ success:function(data) {
|
|
|
|
+ if(!data.success){
|
|
|
|
+ top.layer.msg("保存依据资料信息异常!",{icon:2});
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ var idx = ''
|
|
|
|
+ if(divId == 'file_caseBase'){
|
|
|
|
+ idx = $("#file_caseBase tr").length;
|
|
|
|
+ addRowBaseData("#file_caseBase",idx,caseBaseTpl,data.body.projectAccessoryInfo);
|
|
|
|
+ }
|
|
|
|
+ parent.layer.msg(data.msg,{icon:1});
|
|
|
|
+ top.layer.close(index)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ function hasInArr(id,idArr) {
|
|
|
|
+ for(var i=0;i<idArr.length;i++){
|
|
|
|
+ if(id==$(idArr[i]).val()){
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ function existBaseData(id,length) {
|
|
|
|
+ for (var i=0;i<length;i++) {
|
|
|
|
+ var val = $('#file_attachment'+i+'_id').val();
|
|
|
|
+ if(id==val){
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function addRowBaseData(list, idx, tpl, row){
|
|
|
|
+ bornTemplete(list, idx, tpl, row, idx);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function bornTemplete(list, idx, tpl, row, idx1){
|
|
|
|
+ var idx1 = '';
|
|
|
|
+ if(list == 'file_attachment'){
|
|
|
|
+ idx1 = $("#file_attachment tr").length +1;
|
|
|
|
+ }else if(list == 'file_gistdata'){
|
|
|
|
+ idx1 = $("#file_gistdata tr").length +1;
|
|
|
|
+ }else if(list == 'file_other'){
|
|
|
|
+ idx1 = $("#file_other tr").length +1;
|
|
|
|
+ }else if(list == 'file_caseBase'){
|
|
|
|
+ idx1 = $("#file_caseBase tr").length +1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $(list).append(Mustache.render(tpl, {
|
|
|
|
+ idx: idx, delBtn: true, row: row,
|
|
|
|
+ order:idx1 + 1, idx1:idx1
|
|
|
|
+ }));
|
|
|
|
+ $(list+idx).find("select").each(function(){
|
|
|
|
+ $(this).val($(this).attr("data-value"));
|
|
|
|
+ });
|
|
|
|
+ $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
|
|
|
|
+ var ss = $(this).attr("data-value").split(',');
|
|
|
|
+ for (var i=0; i<ss.length; i++){
|
|
|
|
+ if($(this).val() == ss[i]){
|
|
|
|
+ $(this).attr("checked","checked");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ function delRowBaseData(obj, prefix,userId){
|
|
|
|
+ var id = $(prefix+"_id").val();
|
|
|
|
+ var currentUser = '${fns:getUser().id}';
|
|
|
|
+ var contentId = '${projectcontentinfo.projectContentData.id}';
|
|
|
|
+ console.log(contentId);
|
|
|
|
+ var condition = "${flag}";
|
|
|
|
+ $.ajax({
|
|
|
|
+ type:"post",
|
|
|
|
+ url:'${ctx}/projectcontentinfo/projectContentData/ajaxdelete',
|
|
|
|
+ data:{"contentId":contentId,"basedId":id,"condition":condition},
|
|
|
|
+ dataType:"json",
|
|
|
|
+ success:function(data){
|
|
|
|
+ if(data.success) {
|
|
|
|
+ if("according" == condition || "completion" == condition || "early" == condition || "claim" == condition || "design" == condition || "visa" == condition || "interim" == condition || "distribution" == condition || "material" == condition || "armor" == condition ){
|
|
|
|
+ $(obj).parent().parent().remove();
|
|
|
|
+ }else{
|
|
|
|
+ $(obj).parent().parent().remove();
|
|
|
|
+ }
|
|
|
|
+ if(data.body.inuse){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (currentUser == userId) {
|
|
|
|
+ confirmDelete('是否同步删除资料库的文件?','${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+id+'&id=${projectcontentinfo.id}&type=1');
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ top.layer.msg("删除依据资料失败!", {icon: 0});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function delBaseData(obj, prefix,userId){
|
|
|
|
+ var id = $(prefix+"_id").val();
|
|
|
|
+ var currentUser = '${fns:getUser().id}';
|
|
|
|
+ var contentId = '${projectcontentinfo.projectContentData.id}';
|
|
|
|
+ console.log(contentId);
|
|
|
|
+ var condition = "${flag}";
|
|
|
|
+ $.ajax({
|
|
|
|
+ type:"post",
|
|
|
|
+ url:'${ctx}/projectcontentinfo/projectContentData/ajaxdelete',
|
|
|
|
+ data:{"contentId":contentId,"basedId":id,"condition":condition},
|
|
|
|
+ dataType:"json",
|
|
|
|
+ success:function(data){
|
|
|
|
+ if(data.success) {
|
|
|
|
+ if("according" == condition || "completion" == condition || "early" == condition || "claim" == condition || "design" == condition || "visa" == condition || "interim" == condition || "distribution" == condition || "material" == condition || "armor" == condition ){
|
|
|
|
+ $(obj).parent().parent().parent().remove();
|
|
|
|
+ }else{
|
|
|
|
+ $(obj).parent().parent().remove();
|
|
|
|
+ }
|
|
|
|
+ if(data.body.inuse){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (currentUser == userId) {
|
|
|
|
+ confirmDelete('是否同步删除资料库的文件?','${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+id+'&id=${projectcontentinfo.id}&type=1');
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ top.layer.msg("删除依据资料失败!", {icon: 0});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function confirmDelete(mess, href){
|
|
|
|
+ top.layer.confirm(mess, {icon: 3, title:'系统提示'}, function(index){
|
|
|
|
+ if (typeof href == 'function') {
|
|
|
|
+ href();
|
|
|
|
+ }else{
|
|
|
|
+ $.ajax({
|
|
|
|
+ url:href,
|
|
|
|
+ type:"post",
|
|
|
|
+ success:function(data){
|
|
|
|
+ if(data.success){
|
|
|
|
+ top.layer.msg("删除依据资料成功!", {icon: 0});
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ top.layer.close(index);
|
|
|
|
+ });
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var allDataList = [
|
|
|
|
+ <c:forEach var="item" items="${projectReportRecord.fileCaseBaseList}" varStatus="i">
|
|
|
|
+ <c:forEach var="attachment" items="${item.workAttachments}">
|
|
|
|
+ {
|
|
|
|
+ id: '${attachment.id}',
|
|
|
|
+ syncDifySync: '${attachment.syncDifySync}',
|
|
|
|
+ attachmentName:'${attachment.attachmentName}'
|
|
|
|
+ }
|
|
|
|
+ <c:if test="${!i.last || !attachment.last}">,</c:if>
|
|
|
|
+ </c:forEach>
|
|
|
|
+ </c:forEach>
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ var confirmIdList = []; // 用于存储已同步的项的 id
|
|
|
|
+
|
|
|
|
+ //文件类型列表
|
|
|
|
+ const fileExtensions = [
|
|
|
|
+ "MARKDOWN",
|
|
|
|
+ "MDX",
|
|
|
|
+ "PDF",
|
|
|
|
+ "XLSX",
|
|
|
|
+ "XLS",
|
|
|
|
+ "DOCX",
|
|
|
|
+ "TXT",
|
|
|
|
+ "HTML",
|
|
|
|
+ "CSV",
|
|
|
|
+ "VTT",
|
|
|
|
+ "PROPERTIES",
|
|
|
|
+ "MD",
|
|
|
|
+ "HTM"
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ // 判断后缀
|
|
|
|
+ function isSupportedExtension(attachmentName) {
|
|
|
|
+ console.log(12312)
|
|
|
|
+ if (typeof attachmentName !== 'string') return false;
|
|
|
|
+
|
|
|
|
+ const parts = attachmentName.split('.');
|
|
|
|
+ if (parts.length < 2) return false; // 没有后缀
|
|
|
|
+
|
|
|
|
+ const ext = parts.pop().toUpperCase();
|
|
|
|
+
|
|
|
|
+ return fileExtensions.includes(ext);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 初始化同步状态列表
|
|
|
|
+ function initConfirmIdList() {
|
|
|
|
+ console.log(456456)
|
|
|
|
+ confirmIdList = allDataList.filter(item => item.syncDifySync === '1').map(item => item.id);
|
|
|
|
+ updateSelectedIds(); // 初始化时同步 selectedIds
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 渲染按钮
|
|
|
|
+ function renderButtons() {
|
|
|
|
+ console.log(789789)
|
|
|
|
+ allDataList.forEach(function(item) {
|
|
|
|
+ // 判断文件类型
|
|
|
|
+ if(!isSupportedExtension(item.attachmentName)){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 获取当前行(tr)元素和最后一个 td 元素
|
|
|
|
+ var trEl = document.getElementById('addFile_caseBase_' + item.id + '_tr');
|
|
|
|
+ if (!trEl) return;
|
|
|
|
+
|
|
|
|
+ var tdEl = trEl.getElementsByTagName('td')[trEl.getElementsByTagName('td').length - 1]; // 获取最后一个 td 元素
|
|
|
|
+ var id = String(item.id || '').trim();
|
|
|
|
+
|
|
|
|
+ // 获取现有的同步或取消同步按钮
|
|
|
|
+ var existingConfirmBtn = tdEl.querySelector('.op-btn-confirm'); // 只选择同步按钮
|
|
|
|
+ // 如果同步按钮已存在
|
|
|
|
+ if (existingConfirmBtn) {
|
|
|
|
+ if (confirmIdList.indexOf(item.id) !== -1) {
|
|
|
|
+ existingConfirmBtn.textContent = '取消同步';
|
|
|
|
+ existingConfirmBtn.setAttribute('onclick', 'changeStatus(\'0\', \'' + id + '\')');
|
|
|
|
+ existingConfirmBtn.classList.remove('layui-bg-green');
|
|
|
|
+ existingConfirmBtn.classList.add('layui-bg-red');
|
|
|
|
+ } else {
|
|
|
|
+ existingConfirmBtn.textContent = '同步';
|
|
|
|
+ existingConfirmBtn.setAttribute('onclick', 'changeStatus(\'1\', \'' + id + '\')');
|
|
|
|
+ existingConfirmBtn.classList.remove('layui-bg-red');
|
|
|
|
+ existingConfirmBtn.classList.add('layui-bg-green');
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 如果没有按钮,则插入一个新的同步/取消同步按钮
|
|
|
|
+ var confirmBtn = document.createElement('a');
|
|
|
|
+ confirmBtn.classList.add('op-btn', 'op-btn-confirm');
|
|
|
|
+
|
|
|
|
+ if (confirmIdList.indexOf(item.id) !== -1) {
|
|
|
|
+ confirmBtn.textContent = '取消同步';
|
|
|
|
+ confirmBtn.setAttribute('onclick', 'changeStatus(\'0\', \'' + id + '\')');
|
|
|
|
+ confirmBtn.classList.add('layui-bg-red');
|
|
|
|
+ } else {
|
|
|
|
+ confirmBtn.textContent = '同步';
|
|
|
|
+ confirmBtn.setAttribute('onclick', 'changeStatus(\'1\', \'' + id + '\')');
|
|
|
|
+ confirmBtn.classList.add('layui-bg-green');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ tdEl.appendChild(confirmBtn); // 将同步按钮添加到最后一个 td 元素
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 设置行背景色
|
|
|
|
+ if (confirmIdList.indexOf(item.id) !== -1) {
|
|
|
|
+ trEl.style.backgroundColor = '#fff3cd'; // 已同步,背景色
|
|
|
|
+ } else {
|
|
|
|
+ trEl.style.backgroundColor = ''; // 清除背景色
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ // 每次渲染按钮后更新 selectedIds
|
|
|
|
+ updateSelectedIds();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 更新 selectedIds 到隐藏的 input 中
|
|
|
|
+ function updateSelectedIds() {
|
|
|
|
+ const selectedIds = confirmIdList.join(','); // 将 selectedIds 列表转为逗号分隔的字符串
|
|
|
|
+ document.getElementById('selectedIds').value = selectedIds; // 将值同步到 input 中
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 变更状态(同步/取消同步)
|
|
|
|
+ function changeStatus(status, id) {
|
|
|
|
+ if (status === '1') {
|
|
|
|
+ if (!confirmIdList.includes(id)) confirmIdList.push(id); // 将 id 加入已同步列表
|
|
|
|
+ } else {
|
|
|
|
+ confirmIdList = confirmIdList.filter(i => i !== id); // 从已同步列表中移除 id
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 更新 allDataList 中的状态
|
|
|
|
+ const item = allDataList.find(i => i.id === id);
|
|
|
|
+ if (item) item.syncDifySync = status;
|
|
|
|
+
|
|
|
|
+ // 重新渲染按钮并更新 selectedIds
|
|
|
|
+ renderButtons();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ window.onload = function() {
|
|
|
|
+ // 获取临时挂载在父级页面的数据
|
|
|
|
+ var tempConfirmIdList = parent.tempSyncIds
|
|
|
|
+ // 判断临时数据是否存在
|
|
|
|
+ if(tempConfirmIdList){
|
|
|
|
+ confirmIdList = [...tempConfirmIdList]
|
|
|
|
+ parent.tempSyncIds = null
|
|
|
|
+ }else{
|
|
|
|
+ initConfirmIdList();
|
|
|
|
+ }
|
|
|
|
+ renderButtons();
|
|
|
|
+ };
|
|
|
|
+</script>
|
|
|
|
+</body>
|
|
|
|
+</html>
|