代码调试
This commit is contained in:
parent
614dbaa31b
commit
0569af170e
|
|
@ -1,19 +1,18 @@
|
|||
let layer, laydate, table, form;
|
||||
$(function () {
|
||||
layui.use(['layer', 'laydate', 'table', 'form'], function () {
|
||||
layui.use(["layer", "laydate", "table", "form"], function () {
|
||||
layer = layui.layer;
|
||||
laydate = layui.laydate;
|
||||
form = layui.form;
|
||||
table = layui.table;
|
||||
laydate.render({
|
||||
elem: '#startDate',
|
||||
type: 'month',
|
||||
format: 'yyyy-MM',
|
||||
})
|
||||
businessDivisionPullDown(form,null);
|
||||
elem: "#startDate",
|
||||
type: "month",
|
||||
format: "yyyy-MM",
|
||||
});
|
||||
businessDivisionPullDown(form, null);
|
||||
initTable();
|
||||
});
|
||||
|
||||
});
|
||||
function search(type) {
|
||||
if (type === 1) {
|
||||
|
|
@ -23,12 +22,12 @@ function search(type) {
|
|||
$("#evStatus").val("");
|
||||
$("#auditStatus").val("");
|
||||
$("#startDate").val("");
|
||||
form.render('select');
|
||||
form.render("select");
|
||||
}
|
||||
table.reload('baseTable', {
|
||||
url: ctxPath + '/outsourcer/outsourcerEvaluateList',
|
||||
table.reload("baseTable", {
|
||||
url: ctxPath + "/outsourcer/outsourcerEvaluateList",
|
||||
page: {
|
||||
curr: 1
|
||||
curr: 1,
|
||||
},
|
||||
where: {
|
||||
keyWord: $("#keyWord").val(),
|
||||
|
|
@ -37,7 +36,7 @@ function search(type) {
|
|||
auditStatus: $("#auditStatus").val(),
|
||||
startDate: $("#startDate").val(),
|
||||
endDate: $("#endDate").val(),
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -57,111 +56,168 @@ function initTable() {
|
|||
let user = JSON.parse(loginUser);
|
||||
//渲染表格
|
||||
table.render({
|
||||
elem: '#baseTable'
|
||||
, url: ctxPath + '/outsourcer/outsourcerEvaluateList' //数据接口
|
||||
, method: 'get' //方式默认是get
|
||||
, toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
|
||||
, where: {
|
||||
} //post请求必须加where ,post请求需要的参数
|
||||
, cellMinWidth: 80
|
||||
, cols: [[ //表头
|
||||
{
|
||||
field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers'
|
||||
}
|
||||
, {field: 'evaluateDept', align: 'center', title: '评价事业部'}
|
||||
, {field: 'evaluateTitle', align: 'center', title: '评价标题'}
|
||||
, {field: 'evaluateMonth', align: 'center', title: '评价年月'}
|
||||
, {field: 'projectNum', align: 'center', title: '项目数量'}
|
||||
, {field: 'outsourcerNum', align: 'center', title: '外包商数量'}
|
||||
, {field: 'evaluateStatus', align: 'center', title: '评价状态', templet: d =>
|
||||
Number(d.evaluateNum) > 0 && d.rejectReason ? '评价驳回' : (Number(d.evaluateNum) > 0 ? '已评价' : '未评价')
|
||||
}
|
||||
, {
|
||||
field: 'auditStatus', align: 'center', title: '审核状态', templet: d => {
|
||||
if (Number(d.isApprove) > 0 && !isEmpty(d.rejectReason)) {
|
||||
return '已驳回';
|
||||
}
|
||||
if (Number(d.isApprove) > 0) {
|
||||
return '已通过';
|
||||
}
|
||||
if (Number(d.evaluateNum) > 0 && Number(d.isApprove) === 0 && isEmpty(d.rejectReason)) {
|
||||
return '待审批';
|
||||
}
|
||||
return '待评价';
|
||||
}
|
||||
}
|
||||
, {field: 'rejectReason', align: 'center', title: '驳回原因'}
|
||||
, {
|
||||
fixed: 'right', width: 180, title: '操作', align: 'center', templet: d => {
|
||||
let text = "";
|
||||
if (Number(d.isApprove) === 0 && Number(d.evaluateNum) ===0 ) {
|
||||
text += '<a lay-event="evaluation" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="evaluation">评价</a>';
|
||||
}else if (Number(d.isApprove) === 1) {
|
||||
text += '<a lay-event="viewReviews" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="viewReviews">查看评价</a>';
|
||||
}else if ((Number(d.isApprove) === 0 || Number(d.isApprove) === 2) && Number(d.evaluateNum) >0) {
|
||||
text += '<a lay-event="reevaluate" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="reevaluate">重新评价</a>';
|
||||
}
|
||||
return text;
|
||||
}
|
||||
},
|
||||
]]
|
||||
, id: 'baseTable'
|
||||
, page: true //开启分页
|
||||
, loading: true //数据加载中。。。
|
||||
, limits: [10, 20, 100] //一页选择显示3,5或10条数据
|
||||
, limit: 10 //一页显示5条数据
|
||||
, response: {
|
||||
statusCode: 200 //规定成功的状态码,默认:0
|
||||
}, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
|
||||
elem: "#baseTable",
|
||||
url: ctxPath + "/outsourcer/outsourcerEvaluateList", //数据接口
|
||||
method: "get", //方式默认是get
|
||||
toolbar: "default", //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
|
||||
where: {}, //post请求必须加where ,post请求需要的参数
|
||||
cellMinWidth: 80,
|
||||
cols: [
|
||||
[
|
||||
//表头
|
||||
{
|
||||
field: "number",
|
||||
width: 80,
|
||||
title: "序号",
|
||||
align: "center",
|
||||
type: "numbers",
|
||||
},
|
||||
{ field: "evaluateDept", align: "center", title: "评价事业部" },
|
||||
{ field: "evaluateTitle", align: "center", title: "评价标题" },
|
||||
{ field: "evaluateMonth", align: "center", title: "评价年月" },
|
||||
{ field: "projectNum", align: "center", title: "项目数量" },
|
||||
{
|
||||
field: "outsourcerNum",
|
||||
align: "center",
|
||||
title: "外包商数量",
|
||||
},
|
||||
{
|
||||
field: "evaluateStatus",
|
||||
align: "center",
|
||||
title: "评价状态",
|
||||
templet: (d) =>
|
||||
Number(d.evaluateNum) > 0 && d.rejectReason
|
||||
? "评价驳回"
|
||||
: Number(d.evaluateNum) > 0
|
||||
? "已评价"
|
||||
: "未评价",
|
||||
},
|
||||
{
|
||||
field: "auditStatus",
|
||||
align: "center",
|
||||
title: "审核状态",
|
||||
templet: (d) => {
|
||||
if (
|
||||
Number(d.isApprove) > 0 &&
|
||||
!isEmpty(d.rejectReason)
|
||||
) {
|
||||
return "已驳回";
|
||||
}
|
||||
if (Number(d.isApprove) > 0) {
|
||||
return "已通过";
|
||||
}
|
||||
if (
|
||||
Number(d.evaluateNum) > 0 &&
|
||||
Number(d.isApprove) === 0 &&
|
||||
isEmpty(d.rejectReason)
|
||||
) {
|
||||
return "待审批";
|
||||
}
|
||||
return "待评价";
|
||||
},
|
||||
},
|
||||
{ field: "rejectReason", align: "center", title: "驳回原因" },
|
||||
{
|
||||
fixed: "right",
|
||||
width: 180,
|
||||
title: "操作",
|
||||
align: "center",
|
||||
templet: (d) => {
|
||||
let text = "";
|
||||
if (
|
||||
Number(d.isApprove) === 0 &&
|
||||
Number(d.evaluateNum) === 0
|
||||
) {
|
||||
text +=
|
||||
'<a lay-event="evaluation" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="evaluation">评价</a>';
|
||||
} else if (Number(d.isApprove) === 1) {
|
||||
text +=
|
||||
'<a lay-event="viewReviews" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="viewReviews">查看评价</a>';
|
||||
} else if (
|
||||
(Number(d.isApprove) === 0 ||
|
||||
Number(d.isApprove) === 2) &&
|
||||
Number(d.evaluateNum) > 0
|
||||
) {
|
||||
text +=
|
||||
'<a lay-event="reevaluate" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="reevaluate">重新评价</a>';
|
||||
}
|
||||
return text;
|
||||
},
|
||||
},
|
||||
],
|
||||
],
|
||||
id: "baseTable",
|
||||
page: true, //开启分页
|
||||
loading: true, //数据加载中。。。
|
||||
limits: [10, 20, 100], //一页选择显示3,5或10条数据
|
||||
limit: 10, //一页显示5条数据
|
||||
response: {
|
||||
statusCode: 200, //规定成功的状态码,默认:0
|
||||
},
|
||||
parseData: function (res) {
|
||||
//将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
|
||||
let result;
|
||||
if (res.data !== '' && res.data != null && res.data !== "null") {
|
||||
if (res.data !== "" && res.data != null && res.data !== "null") {
|
||||
if (this.page.curr) {
|
||||
result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
|
||||
result = res.data.slice(
|
||||
this.limit * (this.page.curr - 1),
|
||||
this.limit * this.page.curr
|
||||
);
|
||||
} else {
|
||||
result = res.data.slice(0, this.limit);
|
||||
}
|
||||
}
|
||||
return {
|
||||
"code": res.code, //解析接口状态
|
||||
"msg": res.msg, //解析提示文本
|
||||
"count": res.count, //解析数据长度
|
||||
"data": result, //解析数据列表
|
||||
code: res.code, //解析接口状态
|
||||
msg: res.msg, //解析提示文本
|
||||
count: res.count, //解析数据长度
|
||||
data: result, //解析数据列表
|
||||
};
|
||||
},
|
||||
toolbar: "#toolbar"
|
||||
toolbar: "#toolbar",
|
||||
});
|
||||
|
||||
table.on('tool(test)', function (obj) {
|
||||
table.on("tool(test)", function (obj) {
|
||||
var data = obj.data; //当前行数据
|
||||
var rowIndex = obj.index;
|
||||
var layEvent = obj.event; //当前点击的事件名
|
||||
if (layEvent === 'evaluation') {
|
||||
evaluatingSubpages(0,data);
|
||||
if (layEvent === "evaluation") {
|
||||
evaluatingSubpages(0, data);
|
||||
}
|
||||
if (layEvent === 'reevaluate') {
|
||||
if (layEvent === "reevaluate") {
|
||||
evaluatingSubpages(2, data);
|
||||
}
|
||||
|
||||
if (layEvent === 'viewReviews') {
|
||||
if (layEvent === "viewReviews") {
|
||||
evaluatingSubpages(1, data);
|
||||
}
|
||||
});
|
||||
|
||||
//评价子页面
|
||||
function evaluatingSubpages(type,data) {
|
||||
function evaluatingSubpages(type, data) {
|
||||
data.type = type;
|
||||
let title = '';
|
||||
let title = "";
|
||||
if (type === 0) {
|
||||
title = '评价';
|
||||
}else if (type === 1) {
|
||||
title = '查看评价';
|
||||
}else if (type === 2) {
|
||||
title = '重新评价';
|
||||
title = "评价";
|
||||
} else if (type === 1) {
|
||||
title = "查看评价";
|
||||
} else if (type === 2) {
|
||||
title = "重新评价";
|
||||
}
|
||||
openPage(title, './evaluationForm.html?type=' + type + '&templateId=' + data.templateId + '&id=' + data.id + '&detailsId=' + data.detailsId);
|
||||
openPage(
|
||||
title,
|
||||
"./evaluationForm.html?type=" +
|
||||
type +
|
||||
"&templateId=" +
|
||||
data.templateId +
|
||||
"&id=" +
|
||||
data.id +
|
||||
"&detailsId=" +
|
||||
data.detailsId
|
||||
);
|
||||
}
|
||||
|
||||
function openPage(title, url) {
|
||||
|
|
@ -171,20 +227,20 @@ function initTable() {
|
|||
title: title,
|
||||
content: url,
|
||||
maxmin: false,
|
||||
area: ['90%', '95%'],
|
||||
success: function (layero, index) {}
|
||||
area: ["90%", "95%"],
|
||||
success: function (layero, index) {},
|
||||
};
|
||||
|
||||
if (title.indexOf('查看') !== -1) {
|
||||
if (title.indexOf("查看") !== -1) {
|
||||
layer.open(layerOptions);
|
||||
} else {
|
||||
layerOptions.btn = ["确定"];
|
||||
layerOptions.yes = function (index, layero) {
|
||||
//提交子页面时执行
|
||||
// 获取弹出层中的form表单元素
|
||||
const formSubmit = layer.getChildFrame('form', index);
|
||||
const formSubmit = layer.getChildFrame("form", index);
|
||||
// 查找class样式为submitBtn的按钮
|
||||
const submited = formSubmit.find('button.subBtn');
|
||||
const submited = formSubmit.find("button.subBtn");
|
||||
// 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息
|
||||
submited.click();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>外包商评价</title>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css" />
|
||||
</head>
|
||||
<style>
|
||||
a {
|
||||
|
|
@ -11,7 +12,8 @@
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover, a:focus {
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: #2a6496;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
|
@ -20,66 +22,67 @@
|
|||
background-color: #fff !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div class="layui-container" style="width: 100%;height: 100%;padding: 10px">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input type="text" name="keyWord" id="keyWord" placeholder="这里输入评价标题" class="layui-input"
|
||||
maxlength="30">
|
||||
</div>
|
||||
<div class="layui-inline" >
|
||||
<select id="evaluateDeptId" class="layui-select" name="evaluateDeptId" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="evStatus" name="evStatus">
|
||||
<option value="">请选择评价状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">已评价</option>
|
||||
<option value="3">评价驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="auditStatus" name="auditStatus">
|
||||
<option value="">请选择审核状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">待审批</option>
|
||||
<option value="3">已通过</option>
|
||||
<option value="4">已驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline" id="timeRange">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="startDate" class="layui-input"
|
||||
placeholder="请选择评价年月">
|
||||
<div class="layui-container" style="width: 100%;height: 100%;padding: 10px">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input type="text" name="keyWord" id="keyWord" placeholder="这里输入评价标题" class="layui-input"
|
||||
maxlength="30">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select id="evaluateDeptId" class="layui-select" name="evaluateDeptId">
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="evStatus" name="evStatus">
|
||||
<option value="">请选择评价状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">已评价</option>
|
||||
<option value="3">评价驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="auditStatus" name="auditStatus">
|
||||
<option value="">请选择审核状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">待审批</option>
|
||||
<option value="3">已通过</option>
|
||||
<option value="4">已驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline" id="timeRange">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="startDate" class="layui-input" placeholder="请选择评价年月">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" name="operType" id="operType" value="1" hidden>
|
||||
<div class="layui-inline">
|
||||
<button id='searchBtn' class="layui-btn layui-btn-warm" title="过滤" type="button"
|
||||
onclick="search(1)">
|
||||
搜索
|
||||
</button>
|
||||
<button class="layui-btn" title="重置" type="button" onclick="search(2)">重置</button>
|
||||
<button class="layui-btn layui-bg-blue" title="导出" type="button" onclick="exportData()">
|
||||
导出
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" name="operType" id="operType" value="1" hidden>
|
||||
<div class="layui-inline">
|
||||
<button id='searchBtn' class="layui-btn layui-btn-warm" title="过滤" type="button"
|
||||
onclick="search(1)">
|
||||
搜索
|
||||
</button>
|
||||
<button class="layui-btn" title="重置" type="button" onclick="search(2)">重置</button>
|
||||
<button class="layui-btn layui-bg-blue" title="导出" type="button" onclick="exportData()">
|
||||
导出
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<div id="tree-table-box">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
</div>
|
||||
</form>
|
||||
<div id="tree-table-box">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script type="text/javascript" src="../../../js/common_methon.js"></script>
|
||||
<script type="text/javascript" src="../../../js/select.js"></script>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script type="text/javascript" src="../../../js/common_methon.js"></script>
|
||||
<script type="text/javascript" src="../../../js/select.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<script>
|
||||
let layer, laydate, table, form;
|
||||
|
|
@ -94,7 +97,7 @@
|
|||
type: 'month',
|
||||
format: 'yyyy-MM',
|
||||
});
|
||||
businessDivisionPullDown(form,null);
|
||||
businessDivisionPullDown(form, null);
|
||||
initTable();
|
||||
});
|
||||
|
||||
|
|
@ -140,38 +143,40 @@
|
|||
{
|
||||
field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers'
|
||||
}
|
||||
, {field: 'evaluateDept', align: 'center', title: '评价事业部'}
|
||||
, {field: 'evaluateTitle', align: 'center', title: '评价标题'}
|
||||
, {field: 'evaluateMonth', align: 'center', title: '评价年月'}
|
||||
, {field: 'projectNum', align: 'center', title: '项目数量'}
|
||||
, {field: 'outsourcerNum', align: 'center', title: '外包商数量'}
|
||||
, {field: 'evaluateStatus', align: 'center', title: '评价状态', templet: d =>{
|
||||
, { field: 'evaluateDept', align: 'center', title: '评价事业部' }
|
||||
, { field: 'evaluateTitle', align: 'center', title: '评价标题' }
|
||||
, { field: 'evaluateMonth', align: 'center', title: '评价年月' }
|
||||
, { field: 'projectNum', align: 'center', title: '项目数量' }
|
||||
, { field: 'outsourcerNum', align: 'center', title: '外包商数量' }
|
||||
, {
|
||||
field: 'evaluateStatus', align: 'center', title: '评价状态', templet: d => {
|
||||
if (Number(d.evaluateNum) > 0 && d.rejectReason) {
|
||||
return '评价驳回';
|
||||
} else if (Number(d.evaluateNum) > 0 && d.isAuditTask > 0) {
|
||||
return '已评价';
|
||||
} else if (Number(d.evaluateNum) > 0 && d.isAuditTask == 0) {
|
||||
return '评价中';
|
||||
}else{
|
||||
} else {
|
||||
return '未评价'
|
||||
}
|
||||
}
|
||||
// Number(d.evaluateNum) > 0 && d.rejectReason ? '评价驳回' : (Number(d.evaluateNum) > 0 ? '已评价' : '未评价')
|
||||
// Number(d.evaluateNum) > 0 && d.rejectReason ? '评价驳回' : (Number(d.evaluateNum) > 0 ? '已评价' : '未评价')
|
||||
}
|
||||
, {field: 'auditStatus', align: 'center', title: '审核状态', templet: d =>
|
||||
Number(d.isApprove) > 0 && d.rejectReason ? '已驳回' : (Number(d.isApprove) > 0 ? '已通过' : (Number(d.evaluateNum) > 0 && d.isApprove == 0 ? '待审批' : '待评价' ))
|
||||
, {
|
||||
field: 'auditStatus', align: 'center', title: '审核状态', templet: d =>
|
||||
Number(d.isApprove) > 0 && d.rejectReason ? '已驳回' : (Number(d.isApprove) > 0 ? '已通过' : (Number(d.evaluateNum) > 0 && d.isApprove == 0 ? '待审批' : '待评价'))
|
||||
}
|
||||
, {field: 'rejectReason', align: 'center', title: '驳回原因'}
|
||||
, { field: 'rejectReason', align: 'center', title: '驳回原因' }
|
||||
, {
|
||||
fixed: 'right', width: 180, title: '操作', align: 'center', templet: d => {
|
||||
let text = "";
|
||||
if (Number(d.evaluateNum) > 0 && d.rejectReason){
|
||||
if (Number(d.evaluateNum) > 0 && d.rejectReason) {
|
||||
text +=
|
||||
'<a lay-event="view" style="color: #009688;cursor: pointer;font-size: 15px;margin-left: 10px"' +
|
||||
' id="view">查看</a>';
|
||||
return text;
|
||||
}
|
||||
if (Number(d.isAuditTask) > 0){
|
||||
if (Number(d.isAuditTask) > 0) {
|
||||
if (Number(d.isApprove === '0')) {
|
||||
text += '<a lay-event="audit" style="color: #009688;cursor: pointer;font-size: 15px"' +
|
||||
' id="audit">审核</a>';
|
||||
|
|
@ -215,7 +220,7 @@
|
|||
var rowIndex = obj.index;
|
||||
var layEvent = obj.event; //当前点击的事件名
|
||||
if (layEvent === 'evaluation') {
|
||||
evaluatingSubpages(1,data);
|
||||
evaluatingSubpages(1, data);
|
||||
}
|
||||
if (layEvent === 'audit') {
|
||||
evaluatingSubpages('审核', data);
|
||||
|
|
@ -226,7 +231,7 @@
|
|||
});
|
||||
|
||||
//评价子页面
|
||||
function evaluatingSubpages(title,data) {
|
||||
function evaluatingSubpages(title, data) {
|
||||
let code = title === '审核' ? 1 : 2
|
||||
openPage(title, './outsourceAuditForm.html?type=' + code + '&templateId=' +
|
||||
data.templateId +
|
||||
|
|
@ -241,7 +246,7 @@
|
|||
content: url,
|
||||
maxmin: false,
|
||||
area: ['90%', '95%'],
|
||||
success: function (layero, index) {},
|
||||
success: function (layero, index) { },
|
||||
end: function () {
|
||||
table.reload('baseTable', {
|
||||
url: ctxPath + '/outsourcer/getEvaluateAuditList',
|
||||
|
|
|
|||
|
|
@ -1,319 +1,331 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Demo</title>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form class="layui-form layui-form-pane fromData" action="">
|
||||
<div style="width: 100%;overflow:auto">
|
||||
<table class="layui-table" id="baseTable" lay-filter="baseTable" style="overflow-x: auto;">
|
||||
</table>
|
||||
</div>
|
||||
<div class="layui-form-item" style="display: none">
|
||||
<div class="layui-input-block">
|
||||
<button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交
|
||||
</button>
|
||||
<form class="layui-form layui-form-pane fromData" action="">
|
||||
<div style="width: 100%;overflow:auto">
|
||||
<table class="layui-table" id="baseTable" lay-filter="baseTable" style="overflow-x: auto;">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script src="../../../js/common_methon.js"></script>
|
||||
<script src="../../../js/common.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script>
|
||||
let headerRows;
|
||||
let layer, laydate, table, form;
|
||||
let tableLoading, tableIns;
|
||||
$(function () {
|
||||
layui.use(['layer', 'laydate', 'table', 'form'], function () {
|
||||
layer = layui.layer;
|
||||
laydate = layui.laydate;
|
||||
table = layui.table;
|
||||
form = layui.form;
|
||||
//自定义loading
|
||||
tableLoading = layer.load(2, {shade: [0.1, '#fff']});
|
||||
initTable();
|
||||
form.on('submit(formDemo)', function (data) {
|
||||
getTableData();
|
||||
return false;
|
||||
<div class="layui-form-item" style="display: none">
|
||||
<div class="layui-input-block">
|
||||
<button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script src="../../../js/common_methon.js"></script>
|
||||
<script src="../../../js/common.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script>
|
||||
let headerRows;
|
||||
let layer, laydate, table, form;
|
||||
let tableLoading, tableIns;
|
||||
$(function () {
|
||||
layui.use(['layer', 'laydate', 'table', 'form'], function () {
|
||||
layer = layui.layer;
|
||||
laydate = layui.laydate;
|
||||
table = layui.table;
|
||||
form = layui.form;
|
||||
//自定义loading
|
||||
tableLoading = layer.load(2, { shade: [0.1, '#fff'] });
|
||||
initTable();
|
||||
form.on('submit(formDemo)', function (data) {
|
||||
getTableData();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function initTable() {
|
||||
// headerRows = [
|
||||
// [
|
||||
// {title: '序号', mergeType: "rowspan", num: 3, field: 'index'},
|
||||
// {title: '施工业务外包商', mergeType: "rowspan", num: 3, field: 'subName'},
|
||||
// {title: '工程名称', mergeType: "rowspan", num: 3, field: 'proName'},
|
||||
// {title: '现场组织指标', mergeType: "colspan", num: 3},
|
||||
// {title: '安全管理指标', mergeType: "colspan", num: 4},
|
||||
// {title: '得分', mergeType: "rowspan", num: 3, field: 'score'}
|
||||
// ],
|
||||
// [
|
||||
// {title: '入场人员达标率', mergeType: "rowspan", num: 1},
|
||||
// {title: '管理人员到岗履职率', mergeType: "rowspan", num: 1},
|
||||
// {title: '合计', field: 'total1', mergeType: "rowspan", num: 2},
|
||||
// {title: '安全违章记分', mergeType: "colspan", num: 3},
|
||||
// {title: '合计', field: 'total2', mergeType: "rowspan", num: 2}
|
||||
// ],
|
||||
// [
|
||||
// {title: '项目部', field: 'dept1', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '项目部', field: 'dept2', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '项目部', field: 'dept3', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '事业部', field: 'dept4', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '安全监察部', field: 'dept5', mergeType: "rowspan", num: 1,edit: 'text'}
|
||||
// ]
|
||||
// ];
|
||||
//
|
||||
// const data = [
|
||||
// {
|
||||
// "subName": '外包商A',
|
||||
// "proName": '工程A',
|
||||
// "total1": 90,
|
||||
// "dept1": 30,
|
||||
// "dept2": 30,
|
||||
// "dept3": 30,
|
||||
// "total2": 80,
|
||||
// "dept4": 40,
|
||||
// "dept5": 40,
|
||||
// "score": 85
|
||||
// },
|
||||
// {
|
||||
// "subName": '外包商B',
|
||||
// "proName": '工程B',
|
||||
// "total1": 85,
|
||||
// "dept1": 25,
|
||||
// "dept2": 30,
|
||||
// "dept3": 30,
|
||||
// "total2": 75,
|
||||
// "dept4": 35,
|
||||
// "dept5": 40,
|
||||
// "score": 80
|
||||
// }
|
||||
// ];
|
||||
// //渲染表格
|
||||
// setCols(headerRows,data);
|
||||
getTitle();
|
||||
}
|
||||
|
||||
function setCols(data, msg) {
|
||||
headerRows = [];
|
||||
headerRows = JSON.parse(data);
|
||||
|
||||
// Clear existing headers
|
||||
const thead = document.querySelector('#baseTable thead');
|
||||
if (thead) {
|
||||
thead.innerHTML = '';
|
||||
} else {
|
||||
const newThead = document.createElement('thead');
|
||||
document.querySelector('#baseTable').appendChild(newThead);
|
||||
function initTable() {
|
||||
// headerRows = [
|
||||
// [
|
||||
// {title: '序号', mergeType: "rowspan", num: 3, field: 'index'},
|
||||
// {title: '施工业务外包商', mergeType: "rowspan", num: 3, field: 'subName'},
|
||||
// {title: '工程名称', mergeType: "rowspan", num: 3, field: 'proName'},
|
||||
// {title: '现场组织指标', mergeType: "colspan", num: 3},
|
||||
// {title: '安全管理指标', mergeType: "colspan", num: 4},
|
||||
// {title: '得分', mergeType: "rowspan", num: 3, field: 'score'}
|
||||
// ],
|
||||
// [
|
||||
// {title: '入场人员达标率', mergeType: "rowspan", num: 1},
|
||||
// {title: '管理人员到岗履职率', mergeType: "rowspan", num: 1},
|
||||
// {title: '合计', field: 'total1', mergeType: "rowspan", num: 2},
|
||||
// {title: '安全违章记分', mergeType: "colspan", num: 3},
|
||||
// {title: '合计', field: 'total2', mergeType: "rowspan", num: 2}
|
||||
// ],
|
||||
// [
|
||||
// {title: '项目部', field: 'dept1', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '项目部', field: 'dept2', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '项目部', field: 'dept3', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '事业部', field: 'dept4', mergeType: "rowspan", num: 1,edit: 'text'},
|
||||
// {title: '安全监察部', field: 'dept5', mergeType: "rowspan", num: 1,edit: 'text'}
|
||||
// ]
|
||||
// ];
|
||||
//
|
||||
// const data = [
|
||||
// {
|
||||
// "subName": '外包商A',
|
||||
// "proName": '工程A',
|
||||
// "total1": 90,
|
||||
// "dept1": 30,
|
||||
// "dept2": 30,
|
||||
// "dept3": 30,
|
||||
// "total2": 80,
|
||||
// "dept4": 40,
|
||||
// "dept5": 40,
|
||||
// "score": 85
|
||||
// },
|
||||
// {
|
||||
// "subName": '外包商B',
|
||||
// "proName": '工程B',
|
||||
// "total1": 85,
|
||||
// "dept1": 25,
|
||||
// "dept2": 30,
|
||||
// "dept3": 30,
|
||||
// "total2": 75,
|
||||
// "dept4": 35,
|
||||
// "dept5": 40,
|
||||
// "score": 80
|
||||
// }
|
||||
// ];
|
||||
// //渲染表格
|
||||
// setCols(headerRows,data);
|
||||
getTitle();
|
||||
}
|
||||
|
||||
//动态生成表头
|
||||
headerRows.forEach(rowData => {
|
||||
rowData.forEach(cellData => {
|
||||
cellData.cellMinWidth = 120;
|
||||
cellData.align = 'center';
|
||||
if (cellData.title === '序号') {
|
||||
cellData.type = 'numbers';
|
||||
function setCols(data, msg) {
|
||||
headerRows = [];
|
||||
headerRows = JSON.parse(data);
|
||||
|
||||
// Clear existing headers
|
||||
const thead = document.querySelector('#baseTable thead');
|
||||
if (thead) {
|
||||
thead.innerHTML = '';
|
||||
} else {
|
||||
const newThead = document.createElement('thead');
|
||||
document.querySelector('#baseTable').appendChild(newThead);
|
||||
}
|
||||
|
||||
//动态生成表头
|
||||
headerRows.forEach((rowData, index) => {
|
||||
const dataList = rowData
|
||||
if (index === 0) {
|
||||
dataList.push({
|
||||
field: "handle",
|
||||
mergeType: "rowspan",
|
||||
minWidth: 75,
|
||||
num: 3,
|
||||
title: "操作",
|
||||
})
|
||||
}
|
||||
if (!['审核', '序号', '施工业务外包商', '工程名称','评价人'].includes(cellData.title)) {
|
||||
if (cellData.field.split('-').length === 1) {
|
||||
cellData.title =
|
||||
`<span lay-event="checkTips">${cellData.title}<i class="layui-icon layui-icon-tips layui-font-14"
|
||||
title="计算方法" style="margin-left: 5px;"></i></span>`;
|
||||
rowData.forEach(cellData => {
|
||||
cellData.cellMinWidth = 120;
|
||||
cellData.align = 'center';
|
||||
if (cellData.title === '序号') {
|
||||
cellData.type = 'numbers';
|
||||
}
|
||||
}
|
||||
if (cellData.mergeType === "colspan") {
|
||||
cellData.colspan = cellData.num;
|
||||
} else if (cellData.mergeType === "rowspan") {
|
||||
cellData.rowspan = cellData.num;
|
||||
}
|
||||
//去除审核
|
||||
if (cellData.field === 'examineAndApprove') {
|
||||
cellData.hide = true;
|
||||
if (!['审核', '序号', '施工业务外包商', '工程名称', '评价人'].includes(cellData.title)) {
|
||||
if (cellData.field.split('-').length === 1) {
|
||||
cellData.title =
|
||||
`<span lay-event="checkTips">${cellData.title}<i class="layui-icon layui-icon-tips layui-font-14"
|
||||
title="计算方法" style="margin-left: 5px;"></i></span>`;
|
||||
}
|
||||
}
|
||||
if (cellData.mergeType === "colspan") {
|
||||
cellData.colspan = cellData.num;
|
||||
} else if (cellData.mergeType === "rowspan") {
|
||||
cellData.rowspan = cellData.num;
|
||||
}
|
||||
//去除审核
|
||||
if (cellData.field === 'examineAndApprove') {
|
||||
cellData.hide = true;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
tableIns = table.render({
|
||||
elem: '#baseTable',
|
||||
id: 'baseTable',
|
||||
cols: headerRows,
|
||||
data: JSON.parse(msg), // 使用从 API 获取的数据
|
||||
cellMinWidth: 120, // 设置列的最小宽度以实现自适应
|
||||
//data: msg, // 使用从 API 获取的数据
|
||||
loading: true,
|
||||
done: function (res) {
|
||||
var tableView = this.elem.next();
|
||||
layui.each(res.data, function (i, item) {
|
||||
if (item.isApprove == '1') { // Condition to make the row non-editable
|
||||
var cols = tableView.find('tr[data-index=' + i + ']').find('td');
|
||||
cols.each(function (index, item) {
|
||||
//对field为subName,proName 的列不进行设置
|
||||
if (index > 2) {
|
||||
$(this).data('edit', 'false');
|
||||
$(this).removeAttr('data-edit');
|
||||
$(this).addClass('layui-disabled');
|
||||
//将td元素的contentEditable属性设置为false,禁止编辑
|
||||
$(this).attr('contentEditable', 'false');
|
||||
//将td元素的style属性设置为pointer-events: none,禁止点击
|
||||
$(this).css('pointer-events', 'none');
|
||||
delete item.dataset.edit
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
var columsName = ['subName'];//需要合并的列名称 ['business_tenant_name','land','contract_begin','contract_end','history_arrears','period'];
|
||||
var columsIndex = [1];//需要合并的列索引值 [2,3,5,6,14,15];
|
||||
merge(res, columsName, columsIndex);
|
||||
tableLoading && layer.close(tableLoading);
|
||||
}
|
||||
});
|
||||
// 表头自定义元素工具事件 --- 2.8.8+
|
||||
table.on('colTool(baseTable)', function (obj) {
|
||||
var event = obj.event;
|
||||
if (event === 'checkTips') {
|
||||
let text = `<span><span style="color: red">*</span>指标定义及计算方法:</span> ${obj.col.method}`;
|
||||
text += `<br/><span><span style="color: red">*</span>积分标准:</span> ${obj.col.standard}`;
|
||||
layer.alert(text, {
|
||||
title: `${obj.col.title}`,
|
||||
});
|
||||
}
|
||||
});
|
||||
// 单元格普通编辑事件
|
||||
table.on('edit(baseTable)', function (obj) {
|
||||
var value = obj.value // 得到修改后的值
|
||||
var data = obj.data // 得到所在行所有键值
|
||||
var field = obj.field; // 得到字段
|
||||
//判断修改的是当前行的第几个单元格
|
||||
let index = headerRows[2].findIndex(item => item.field === field);
|
||||
//获取其对应的二级标题 用于计算
|
||||
let currentItem = headerRows[1][index];
|
||||
let standardScore = Number(currentItem.standardScore);
|
||||
//是否包含前缀0
|
||||
if (value.indexOf('0') === 0 && value.length > 1) {
|
||||
layer.msg('输入值不能以0开头');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
//判断是否数字
|
||||
if (value < 0) {
|
||||
layer.msg('输入值不能小于0');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!isPositiveInteger(value)) {
|
||||
layer.msg('请输入正整数');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (value > standardScore) {
|
||||
layer.msg('输入值不能大于标准值');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
// // 更新数据中对应的字段
|
||||
let update = {};
|
||||
update[field] = value;
|
||||
obj.update(update);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
tableIns = table.render({
|
||||
elem: '#baseTable',
|
||||
id: 'baseTable',
|
||||
cols: headerRows,
|
||||
data: JSON.parse(msg), // 使用从 API 获取的数据
|
||||
cellMinWidth: 120, // 设置列的最小宽度以实现自适应
|
||||
//data: msg, // 使用从 API 获取的数据
|
||||
loading: true,
|
||||
done: function (res) {
|
||||
var tableView = this.elem.next();
|
||||
layui.each(res.data, function (i, item) {
|
||||
if (item.isApprove == '1') { // Condition to make the row non-editable
|
||||
var cols = tableView.find('tr[data-index=' + i + ']').find('td');
|
||||
cols.each(function (index, item) {
|
||||
//对field为subName,proName 的列不进行设置
|
||||
if (index > 2) {
|
||||
$(this).data('edit', 'false');
|
||||
$(this).removeAttr('data-edit');
|
||||
$(this).addClass('layui-disabled');
|
||||
//将td元素的contentEditable属性设置为false,禁止编辑
|
||||
$(this).attr('contentEditable', 'false');
|
||||
//将td元素的style属性设置为pointer-events: none,禁止点击
|
||||
$(this).css('pointer-events', 'none');
|
||||
delete item.dataset.edit
|
||||
}
|
||||
|
||||
});
|
||||
function getTitle() {
|
||||
let path = getUrlParam("type") == '0' ? '/outsourcer/getTableTitle' : '/outsourcer/getAuditTitleData';
|
||||
$.ajax({
|
||||
url: ctxPath + path,
|
||||
type: 'get',
|
||||
data: {
|
||||
templateId: getUrlParam('templateId'),
|
||||
evaluateId: getUrlParam('id'),
|
||||
type: 'evaluate'
|
||||
},
|
||||
success: function (res) {
|
||||
setCols(res.obj, res.resMsg);
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function getTableData() {
|
||||
//获取表格填写的数据
|
||||
var tableData = table.cache.baseTable;
|
||||
//校验所有单元格是否填写
|
||||
for (var i = 0; i < tableData.length; i++) {
|
||||
var item = tableData[i];
|
||||
for (var key in item) {
|
||||
if (key.indexOf("-") !== -1) {
|
||||
if (item[key] === '' || item[key] === null) {
|
||||
layer.msg('请对所有指标评价完成,再点击提交!');
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
var columsName = ['subName'];//需要合并的列名称 ['business_tenant_name','land','contract_begin','contract_end','history_arrears','period'];
|
||||
var columsIndex = [1];//需要合并的列索引值 [2,3,5,6,14,15];
|
||||
merge(res, columsName, columsIndex);
|
||||
tableLoading && layer.close(tableLoading);
|
||||
}
|
||||
}
|
||||
});
|
||||
// 表头自定义元素工具事件 --- 2.8.8+
|
||||
table.on('colTool(baseTable)', function(obj){
|
||||
var event = obj.event;
|
||||
if(event === 'checkTips'){
|
||||
let text = `<span><span style="color: red">*</span>指标定义及计算方法:</span> ${obj.col.method}`;
|
||||
text += `<br/><span><span style="color: red">*</span>积分标准:</span> ${obj.col.standard}`;
|
||||
layer.alert(text, {
|
||||
title: `${obj.col.title}`,
|
||||
});
|
||||
let filed = [];
|
||||
//定义一个map
|
||||
let obj = tableData[0];
|
||||
for (let key in obj) {
|
||||
if (key.indexOf("-") !== -1) {
|
||||
filed.push(key);
|
||||
}
|
||||
}
|
||||
});
|
||||
// 单元格普通编辑事件
|
||||
table.on('edit(baseTable)', function(obj){
|
||||
var value = obj.value // 得到修改后的值
|
||||
var data = obj.data // 得到所在行所有键值
|
||||
var field = obj.field; // 得到字段
|
||||
//判断修改的是当前行的第几个单元格
|
||||
let index = headerRows[2].findIndex(item => item.field === field);
|
||||
//获取其对应的二级标题 用于计算
|
||||
let currentItem = headerRows[1][index];
|
||||
let standardScore = Number(currentItem.standardScore);
|
||||
//是否包含前缀0
|
||||
if (value.indexOf('0') === 0 && value.length > 1) {
|
||||
layer.msg('输入值不能以0开头');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
if (getUrlParam("type") == '2') {
|
||||
//对tableData进行处理 appraiser = 当前人
|
||||
for (let i = 0; i < tableData.length; i++) {
|
||||
tableData[i].appraiser = JSON.parse(localStorage.getItem('loginUser')).nickname;
|
||||
}
|
||||
}
|
||||
//判断是否数字
|
||||
if (value < 0) {
|
||||
layer.msg('输入值不能小于0');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!isPositiveInteger(value)) {
|
||||
layer.msg('请输入正整数');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (value > standardScore) {
|
||||
layer.msg('输入值不能大于标准值');
|
||||
//清空当前单元格
|
||||
obj.update({
|
||||
[field]: ''
|
||||
});
|
||||
return;
|
||||
}
|
||||
// // 更新数据中对应的字段
|
||||
let update = {};
|
||||
update[field] = value;
|
||||
obj.update(update);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getTitle() {
|
||||
let path = getUrlParam("type") == '0' ? '/outsourcer/getTableTitle' : '/outsourcer/getAuditTitleData';
|
||||
$.ajax({
|
||||
url: ctxPath + path,
|
||||
type: 'get',
|
||||
data: {
|
||||
//TODO 校验数据
|
||||
let data = {
|
||||
templateId: getUrlParam('templateId'),
|
||||
evaluateId: getUrlParam('id'),
|
||||
type: 'evaluate'
|
||||
},
|
||||
success: function (res) {
|
||||
setCols(res.obj, res.resMsg);
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function getTableData() {
|
||||
//获取表格填写的数据
|
||||
var tableData = table.cache.baseTable;
|
||||
//校验所有单元格是否填写
|
||||
for (var i = 0; i < tableData.length; i++) {
|
||||
var item = tableData[i];
|
||||
for (var key in item) {
|
||||
if (key.indexOf("-") !== -1) {
|
||||
if (item[key] === '' || item[key] === null) {
|
||||
layer.msg('请对所有指标评价完成,再点击提交!');
|
||||
return;
|
||||
id: getUrlParam('detailsId'),
|
||||
jsonData: JSON.stringify(tableData),
|
||||
titleFiled: filed.join(',')
|
||||
};
|
||||
let path = getUrlParam("type") == '0' ? '/outsourcer/saveEvaluateData' : '/outsourcer/updateEvaluateData';
|
||||
$.ajax({
|
||||
url: ctxPath + path,
|
||||
type: 'post',
|
||||
data: data,
|
||||
success: function (res) {
|
||||
if (res.res == '1') {
|
||||
layer.msg('保存成功');
|
||||
closePage();
|
||||
} else {
|
||||
layer.msg(res.resMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
let filed = [];
|
||||
//定义一个map
|
||||
let obj = tableData[0];
|
||||
for (let key in obj) {
|
||||
if (key.indexOf("-") !== -1) {
|
||||
filed.push(key);
|
||||
}
|
||||
}
|
||||
if(getUrlParam("type") == '2'){
|
||||
//对tableData进行处理 appraiser = 当前人
|
||||
for (let i = 0; i < tableData.length; i++) {
|
||||
tableData[i].appraiser = JSON.parse(localStorage.getItem('loginUser')).nickname;
|
||||
}
|
||||
}
|
||||
//TODO 校验数据
|
||||
let data = {
|
||||
templateId: getUrlParam('templateId'),
|
||||
evaluateId: getUrlParam('id'),
|
||||
id: getUrlParam('detailsId'),
|
||||
jsonData: JSON.stringify(tableData),
|
||||
titleFiled: filed.join(',')
|
||||
};
|
||||
let path = getUrlParam("type") == '0' ? '/outsourcer/saveEvaluateData' : '/outsourcer/updateEvaluateData';
|
||||
$.ajax({
|
||||
url: ctxPath + path,
|
||||
type: 'post',
|
||||
data: data,
|
||||
success: function (res) {
|
||||
if (res.res == '1') {
|
||||
layer.msg('保存成功');
|
||||
closePage();
|
||||
} else {
|
||||
layer.msg(res.resMsg);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function closePage() {
|
||||
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
|
||||
parent.search(1)
|
||||
parent.layer.close(index); // 再执行关闭
|
||||
}
|
||||
</script>
|
||||
function closePage() {
|
||||
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
|
||||
parent.search(1)
|
||||
parent.layer.close(index); // 再执行关闭
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>外包商评价</title>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css" />
|
||||
</head>
|
||||
<style>
|
||||
a {
|
||||
|
|
@ -11,7 +12,8 @@
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover, a:focus {
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: #2a6496;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
|
@ -20,65 +22,66 @@
|
|||
background-color: #fff !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div class="layui-container" style="width: 100%;height: 100%;padding: 10px">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input type="text" name="keyWord" id="keyWord" placeholder="这里输入评价标题" class="layui-input"
|
||||
maxlength="30">
|
||||
</div>
|
||||
<div class="layui-inline" >
|
||||
<select id="evaluateDeptId" class="layui-select" name="evaluateDeptId" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="evStatus" name="evStatus">
|
||||
<option value="">请选择评价状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">已评价</option>
|
||||
<option value="3">评价驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="auditStatus" name="auditStatus">
|
||||
<option value="">请选择审核状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">待审批</option>
|
||||
<option value="3">已通过</option>
|
||||
<option value="4">已驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline" id="timeRange">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="startDate" class="layui-input"
|
||||
placeholder="请选择评价年月">
|
||||
<div class="layui-container" style="width: 100%;height: 100%;padding: 10px">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input type="text" name="keyWord" id="keyWord" placeholder="这里输入评价标题" class="layui-input"
|
||||
maxlength="30">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select id="evaluateDeptId" class="layui-select" name="evaluateDeptId">
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="evStatus" name="evStatus">
|
||||
<option value="">请选择评价状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">已评价</option>
|
||||
<option value="3">评价驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<select class="layui-select" id="auditStatus" name="auditStatus">
|
||||
<option value="">请选择审核状态</option>
|
||||
<option value="1">待评价</option>
|
||||
<option value="2">待审批</option>
|
||||
<option value="3">已通过</option>
|
||||
<option value="4">已驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline" id="timeRange">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" id="startDate" class="layui-input" placeholder="请选择评价年月">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" name="operType" id="operType" value="1" hidden>
|
||||
<div class="layui-inline">
|
||||
<button id='searchBtn' class="layui-btn layui-btn-warm" title="过滤" type="button"
|
||||
onclick="search(1)">
|
||||
搜索
|
||||
</button>
|
||||
<button class="layui-btn" title="重置" type="button" onclick="search(2)">重置</button>
|
||||
<!-- <button class="layui-btn layui-bg-blue" title="导出" type="button" onclick="exportData()">-->
|
||||
<!-- 导出-->
|
||||
<!-- </button>-->
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" name="operType" id="operType" value="1" hidden>
|
||||
<div class="layui-inline">
|
||||
<button id='searchBtn' class="layui-btn layui-btn-warm" title="过滤" type="button"
|
||||
onclick="search(1)">
|
||||
搜索
|
||||
</button>
|
||||
<button class="layui-btn" title="重置" type="button" onclick="search(2)">重置</button>
|
||||
<!-- <button class="layui-btn layui-bg-blue" title="导出" type="button" onclick="exportData()">-->
|
||||
<!-- 导出-->
|
||||
<!-- </button>-->
|
||||
</div>
|
||||
</form>
|
||||
<div id="tree-table-box">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
</div>
|
||||
</form>
|
||||
<div id="tree-table-box">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script type="text/javascript" src="../../../js/common_methon.js"></script>
|
||||
<script type="text/javascript" src="../../../js/select.js"></script>
|
||||
<script src="../../../js/evaluate/outsourcerEvaluation/outsourcerEvaluationList.js?v=1"></script>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../js/my/permission.js"></script>
|
||||
<script src="../../../layui/layui.js"></script>
|
||||
<script type="text/javascript" src="../../../js/common_methon.js"></script>
|
||||
<script type="text/javascript" src="../../../js/select.js"></script>
|
||||
<script src="../../../js/evaluate/outsourcerEvaluation/outsourcerEvaluationList.js?v=1"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>发起评价</title>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="../../../layui/css/layui.css" />
|
||||
<style>
|
||||
.layui-table {
|
||||
width: 100%;
|
||||
|
|
@ -13,71 +14,67 @@
|
|||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container" style="padding: 10px">
|
||||
<div class="header">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-inline" style="width: 100%;display: flex;flex-direction: row">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label" style="width: auto"><span
|
||||
style="color: red">*</span>评价事业部:</label>
|
||||
<div class="container" style="padding: 10px">
|
||||
<div class="header">
|
||||
<form id="baseForm" class="layui-form" method="POST" onsubmit="return false;">
|
||||
<div class="layui-inline" style="width: 100%;display: flex;flex-direction: row">
|
||||
<div class="layui-inline">
|
||||
<select id="orgId" name="orgId" class="layui-select"
|
||||
lay-filter="changeOrg" lay-search lay-verify="required">
|
||||
</select>
|
||||
<label class="layui-form-label" style="width: auto"><span
|
||||
style="color: red">*</span>评价事业部:</label>
|
||||
<div class="layui-inline">
|
||||
<select id="orgId" name="orgId" class="layui-select" lay-filter="changeOrg" lay-search
|
||||
lay-verify="required">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline" style="width: 24%">
|
||||
<label class="layui-form-label"><span
|
||||
style="color: red">*</span>评价标题:</label>
|
||||
<div class="layui-inline" style="width: 65%">
|
||||
<input type="text" name="templateTitle" id="templateTitle"
|
||||
placeholder="提交之后根据所选月份自动生成"
|
||||
class="layui-input"
|
||||
disabled readonly
|
||||
autocomplete="off">
|
||||
<div class="layui-inline" style="width: 24%">
|
||||
<label class="layui-form-label"><span style="color: red">*</span>评价标题:</label>
|
||||
<div class="layui-inline" style="width: 65%">
|
||||
<input type="text" name="templateTitle" id="templateTitle" placeholder="提交之后根据所选月份自动生成"
|
||||
class="layui-input" disabled readonly autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label"><span
|
||||
style="color: red">*</span>评价模板:</label>
|
||||
<div class="layui-inline">
|
||||
<select id="templateId" name="templateId" class="layui-select" lay-search lay-verify="required">
|
||||
</select>
|
||||
<label class="layui-form-label"><span style="color: red">*</span>评价模板:</label>
|
||||
<div class="layui-inline">
|
||||
<select id="templateId" name="templateId" class="layui-select" lay-search
|
||||
lay-verify="required">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label"><span style="color: red">*</span>评价年月:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" name="evaluateDate" id="evaluateDate"
|
||||
lay-verify="required" autocomplete="off" placeholder="yyyy-MM">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label"><span
|
||||
style="color: red">*</span>评价年月:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" name="evaluateDate" id="evaluateDate"
|
||||
lay-verify="required"
|
||||
autocomplete="off"
|
||||
placeholder="yyyy-MM">
|
||||
<div class="layui-form-item" style="display: none">
|
||||
<div class="layui-input-block">
|
||||
<button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" style="display: none">
|
||||
<div class="layui-input-block">
|
||||
<button type="submit" class="layui-btn subBtn" id="commit" lay-submit lay-filter="formDemo">提交
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="content" style="margin-top: 10px;display: flex">
|
||||
<div class="left"
|
||||
style="border: 1px solid grey;width: 20%;height: 88vh;overflow-x: hidden;overflow-y: hidden;display: flex;flex-direction: column">
|
||||
<span><span style="color: red">* </span>选择评价外包商:</span>
|
||||
<div id="orgTree" style="height: 78vh;border: yellow;overflow-x: hidden;overflow-y: auto;"></div>
|
||||
<button class="layui-btn layui-bg-blue treeBtn" style="margin-top: 10px" onclick="submitTree()">确定</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="right" style="width: 79.5%;margin-left: 0.5%;overflow-y: auto;height: 88vh;">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
<div class="content" style="margin-top: 10px;display: flex">
|
||||
<div class="left"
|
||||
style="border: 1px solid grey;width: 20%;height: 88vh;overflow-x: hidden;overflow-y: hidden;display: flex;flex-direction: column">
|
||||
<span><span style="color: red">* </span>选择评价外包商:</span>
|
||||
<div id="orgTree" style="height: 78vh;border: yellow;overflow-x: hidden;overflow-y: auto;"></div>
|
||||
<button class="layui-btn layui-bg-blue treeBtn" style="margin-top: 10px"
|
||||
onclick="submitTree()">确定</button>
|
||||
</div>
|
||||
<div class="right" style="width: 79.5%;margin-left: 0.5%;overflow-y: auto;height: 88vh;">
|
||||
<table id="baseTable" class="layui-table" lay-filter="test"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<script src="../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
|
||||
|
|
@ -125,14 +122,14 @@
|
|||
data: data.field,
|
||||
success: function (res) {
|
||||
if (res.res === 1) {
|
||||
layer.msg('提交成功', {icon: 6});
|
||||
layer.msg('提交成功', { icon: 6 });
|
||||
table.reload('baseTable', {
|
||||
data: []
|
||||
});
|
||||
alreadyChooseTrees = [];
|
||||
closePage();
|
||||
} else {
|
||||
layer.msg(res.resMsg, {icon: 5});
|
||||
layer.msg(res.resMsg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -160,9 +157,9 @@
|
|||
$(".layui-input").attr("disabled", true);
|
||||
$(".layui-select").attr("disabled", true);
|
||||
$(".layui-select").attr("readonly", true);
|
||||
$("input[name^='layuiTreeCheck']").prop("disabled",true);
|
||||
$("input[name^='layuiTreeCheck']").prop("disabled", true);
|
||||
$("input[name^='layuiTreeCheck']").next(".layui-form-checkbox").addClass(".layui-checkbox-disbaled layui-disabled");
|
||||
$("input[name^='layTableCheckbox']").prop("disabled",true);
|
||||
$("input[name^='layTableCheckbox']").prop("disabled", true);
|
||||
}
|
||||
}
|
||||
form.render()
|
||||
|
|
@ -180,7 +177,7 @@
|
|||
let checkStatus = table.checkStatus('baseTable');
|
||||
let checkData = checkStatus.data;
|
||||
if (checkData.length <= 0) {
|
||||
layer.msg('请先选择需要评价的外包商', {icon: 5});
|
||||
layer.msg('请先选择需要评价的外包商', { icon: 5 });
|
||||
return false;
|
||||
} else {
|
||||
submit(data, checkData);
|
||||
|
|
@ -217,7 +214,7 @@
|
|||
oncheck: function (obj) {
|
||||
if (getUrlParam("type") === 'view') {
|
||||
return false;
|
||||
}else{
|
||||
} else {
|
||||
table.reload('baseTable', {
|
||||
data: []
|
||||
});
|
||||
|
|
@ -234,7 +231,7 @@
|
|||
});
|
||||
form.render();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
layer.msg(res.msg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -251,7 +248,7 @@
|
|||
let list = res.obj;
|
||||
setSelectValue(list, 'orgId');
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
layer.msg(res.msg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -268,7 +265,7 @@
|
|||
let list = res.obj;
|
||||
setSelectValue(list, 'templateId');
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
layer.msg(res.msg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -287,7 +284,7 @@
|
|||
|
||||
function submitTree() {
|
||||
if (alreadyChooseTrees.length <= 0) {
|
||||
layer.msg('请先选择评价外包商', {icon: 5});
|
||||
layer.msg('请先选择评价外包商', { icon: 5 });
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
|
|
@ -304,7 +301,7 @@
|
|||
data: tableData
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
layer.msg(res.msg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -312,10 +309,10 @@
|
|||
|
||||
function initTable() {
|
||||
var cols = [
|
||||
{type: 'checkbox', fixed: 'left'},
|
||||
{field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers'},
|
||||
{field: 'subName', title: '施工业务外包商', align: 'center', minWidth: 160},
|
||||
{field: 'proName', title: '项目名称', align: 'center', minWidth: 160}
|
||||
{ type: 'checkbox', fixed: 'left' },
|
||||
{ field: 'number', width: 80, title: '序号', align: 'center', type: 'numbers' },
|
||||
{ field: 'subName', title: '施工业务外包商', align: 'center', minWidth: 160 },
|
||||
{ field: 'proName', title: '项目名称', align: 'center', minWidth: 160 }
|
||||
];
|
||||
|
||||
if (getUrlParam("type") !== 'view') {
|
||||
|
|
@ -394,7 +391,7 @@
|
|||
//对tree进行赋值
|
||||
form.render()
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
layer.msg(res.msg, { icon: 5 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue