ah_sz_gqj/src/main/resources/static/js/samples/samplesMge.js

394 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let form, layer, table, tableIns;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为10
let orgData,selectOrgId;
let quanju = new Array();//全局
let huancun = new Array();//缓存
layui.use(['form', 'layer', 'table', 'laydate'], function () {
form = layui.form;
layer = layui.layer;
table = layui.table;
layui.form.render();
pages(1, 10, 1);
getToolsSelected();
})
function getToolsSelected() {
let url = dataUrl + '/tools/all';
ajaxRequest(url, "POST", null, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'sampleTools');
// return result.data
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 获取数据
*/
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/samples/getList"
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.log("result.data:",result.data);
if (result.code === 200) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 分页
*/
function laypages(total, page, limit) {
layui.use(['laypage'], function () {
let laypage = layui.laypage;
laypage.render({
elem: 'voi-page',
count: total,
curr: page,
limit: limit,
limits: [10, 20, 50, 100, 200, 500],
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5,
jump: function (obj, first) {
if (!first) {
pageNum = obj.curr, limitSize = obj.limit;
pages(obj.curr, obj.limit, null);
}
}
});
})
}
/**
* 初始化表格
*/
function initTable(dataList, limit, page) {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
tableIns = table.render({
elem: "#table_data",
height: "full-130",
data: dataList,
limit: limit,
cols: [
[
{
type: 'checkbox',
fixed: 'left',
align: "center"
},
//表头
{title: "序号", width: 80, unresize: true, align: "center",
templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
}
},
{field: "customName", title: "送样单位", unresize: true, align: "center"},
{field: "sampleUser", title: "送样人", unresize: true, align: "center"},
{field: "sampleTime", title: "送样时间", unresize: true, align: "center"},
{field: "sampleTools", title: "送样设备", unresize: true, align: "center"},
{field: "collectSamplesUser", title: "收样人", unresize: true, align: "center"},
{field: "collectSamplesTime", title: "收样时间", unresize: true, align: "center"},
{
field: "teamName", title: "试验班组", unresize: true, align: "center", templet: function (d) {
let html = '';
let view ='';
if (d.teamName == null) {
view="<a style='cursor:pointer; background: #F2F3FF'' >未派工</a>";
} else {
view="<a style='color: black;'>" + d.teamName + "</a>";
}
html=view;
return html;
}
},
{title: "操作", unresize: true, width: 85, align: "center",
templet: function (d) {
let html = '';
let view="<a style='cursor:pointer;' onclick=\"addData('" + d.id + "')\">详情</a>";
html=view;
if(d.delFlag==1){
return '';
}
return html;
}
},
],
],
done: function (res, curr, count) {
layer.close(loadingMsg);
table.resize("table_data");
count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block");
count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto");
var suborders_data_arr=res.data;
for (let suborders_key in suborders_data_arr) {
if (suborders_data_arr[suborders_key]['teamName']!=null&&suborders_data_arr[suborders_key]['teamName']!="") {
let index = suborders_data_arr[suborders_key]['LAY_TABLE_INDEX'];
$('tr[data-index=' + index + '] input[type="checkbox"]').prop('disabled', true).attr("name","layTableCheckboxDisabled"); // 禁止部分选择
}
};
form.render('checkbox');
},
});
}
/**
* 获取选中的数据
*/
function getCheckedValues() {
let data = table.checkStatus("table_data").data;
let ids = [];
if (data.length === 0) {
return '';
}
for (let i = 0; i < data.length; i++) {
if (!data[i].teamName) {
// teamName 为空时才加入 ids 数组
ids.push(data[i].id);
}
}
console.log("ids1:", ids);
console.log("ids2:", ids.join(','))
// 将 ids 数组用逗号分隔成字符串
return ids.join(',');
}
// 获取参数
function getReqParams(page, limit, type) {
var selectedValue =$('#sampleTools').val()
// 2. 查找对应的选项文本
var selectedText = $('#sampleTools option[value="' + selectedValue + '"]').text();
if (selectedText=='请选择'){
selectedText=''
}
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
sampleTools: selectedText,
collectSamplesUser:$('#collectSamplesUser').val(),
keyWord:$('#keyWord').val()
};
} else {
obj = {
page: '1',
limit: '10',
sampleTools: '',
collectSamplesUser: '',
keyWord: ''
};
}
console.log(obj)
obj={
encryptedData:encryptCBC(JSON.stringify(obj))
}
return obj;
}
// 查询/重置
function query() {
let pattern = new RegExp("[%_<>]");
if (pattern.test($("#loginName").val())) {
$("#loginName").val('');
return layer.msg('用户名查询包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
if (pattern.test($("#phone").val())) {
$("#phone").val('');
return layer.msg('手机号查询包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
pageNum = 1;
pages(1, limitSize);
}
//重置
function reset() {
pages(1, limitSize, 1)
}
function reloadData() {
pages(pageNum, limitSize);
}
// 新增/修改平台用户
function addData(id) {
if (id) {
title = '收样管理/详情';
}
let param = {
'id': id
}
openIframe2("addOrEditUser", title, "child/samplesForm.html", '100%', '100%', param);
}
/**
* 收样
*/
function collectSamples(id) {
title = '收样';
let param = {
'id': id
}
openIframe2("addOrEditUser", title, "child/samplesAdd.html", '70%', '90%', param);
}
/**
* 检查是否有权限
*/
function isHasAuth(name) {
//先去查一下是否有权限,后台接口查询
let url = dataUrl + '/samples/getAuthority';
let params = {
'name': name
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
if (result.code === 200) {
if (result.data){
if (name=='派工'){
dispatch();
}else if (name=='收样'){
collectSamples('');
}
}else {
return layer.msg('您不具有该功能权限', {icon: 7})
}
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 派工
*/
function dispatch() {
//获取复选框选中数据的Id
var ids = getCheckedValues();
if (ids==='') {
return layer.msg('请选择需要派工的数据', {icon: 7})
} else {
layer.open({
type: 1,
id: 'dispatch',
area: ['380px', '45%'],
resize: false,
shadeClose: true,
title: '请选择试验班组',
content: `
<div class="layui-form" lay-filter="filter-test-layer" style="margin: 16px;">
<div class="demo-login-container">
<div class="layui-form-item">
<div class="layui-input-wrap">
<select id="teamId" lay-filter="teamId" lay-verify="required" placeholder="请选择班组" name="teamId" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-form-item" style="margin-top: 45%;margin-left: 46%">
<button class="layui-btn" lay-filter="demo-login">取消</button>
<button class="layui-btn" lay-submit lay-filter="upload">确认派工</button>
</div>
</div>
</div>
`,
success: function () {
// 对弹层中的表单进行初始化渲染
form.render();
getTeamSelected();
// 表单提交事件
form.on('submit(upload)', function (data) {
console.log("data.field:",data.field)
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + '/samples/dispatchWork';
let params = {
"ids": ids,
teamId: data.field.teamId
}
params={
encryptedData:encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
closePage(1);
parent.layer.msg("派工成功", {icon: 1});
}else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
});
}
});
}
}
/**
* 获取班组数据
*/
function getTeamSelected() {
let url = dataUrl + '/samples/getTeamSelected';
ajaxRequest(url, "POST", null, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'teamId');
// return result.data
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}
/**
* 下拉选表单赋值
*/
function setSelectValue(list, selectName) {
console.log("list",list)
let html = '<option value="" selected>请选择</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
})
$('#' + selectName).empty().append(html);
layui.form.render();
}
function closePage(type) {
layer.closeAll();
if (type === 1) {
pages(1, 10, 1)
}
}