var baseUrl = "/jshdasrs";
|
|
// 详情窗口-高度
|
var detailHeight = '80%';
|
// 详情窗口-宽度
|
var detailWidth = '90%';
|
|
// 非空判断
|
function isEmpty(obj){
|
return typeof obj == "undefined" || obj == null || obj === "";
|
}
|
|
// let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false});
|
// layer.close(loadIndex);
|
|
// 时间 ==>> 字符串
|
function dateToStr(date, millisecond) {
|
var time = new Date(date);
|
var y = time.getFullYear();
|
var M = time.getMonth() + 1;
|
M = M < 10 ? ("0" + M) : M;
|
var d = time.getDate();
|
d = d < 10 ? ("0" + d) : d;
|
var h = time.getHours();
|
h = h < 10 ? ("0" + h) : h;
|
var m = time.getMinutes();
|
m = m < 10 ? ("0" + m) : m;
|
var s = time.getSeconds();
|
s = s < 10 ? ("0" + s) : s;
|
if (!millisecond) {
|
return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s;
|
} else {
|
var p = time.getMilliseconds();
|
if (p < 10) {
|
p = "00" + p;
|
}
|
if (p < 100) {
|
p = "0" + p;
|
}
|
return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s + "," + p;
|
}
|
}
|
|
// 字符串 ===>> 时间
|
function strToDate(str) {
|
var t = Date.parse(str);
|
if (!isNaN(t)) {
|
return new Date(Date.parse(str.replace(/-/g, "/")));
|
} else {
|
return null;
|
}
|
}
|
|
// 清理对象null值
|
function reObject(data) {
|
for (var obj in data) {
|
if (data[obj]===null){
|
delete data[obj];
|
}
|
}
|
return data;
|
}
|
|
/**
|
* disabled 属性转换
|
*/
|
function convertDisabled(el, param) {
|
el.each(function () {
|
$(this).attr("disabled", param);
|
});
|
}
|
|
// 权限
|
function limit(child){
|
if (child == null){
|
child = false;
|
}
|
var param = (child?parent.window:window).location.href.split("?")[1];
|
if (null != param) {
|
var resourceId = param.split("=")[1];
|
$.ajax({
|
url: baseUrl+"/power/menu/"+resourceId+"/auth",
|
headers: {'token': localStorage.getItem('token')},
|
method: 'GET',
|
async: false,
|
success: function (res) {
|
if (res.code === 200){
|
for(var i = 0, len = res.data.length; i < len; i++) {
|
(child?parent:window).$('#'+res.data[i].code).css("display", "inline-block");
|
(child?parent:window).$('.'+res.data[i].code).css("display", "inline-block");
|
}
|
} else if (res.code === 403){
|
top.location.href = baseUrl+"/";
|
} else {
|
layer.msg(res.msg)
|
}
|
}
|
});
|
}
|
}
|
|
|
// http请求
|
!function (n) {
|
"use strict";
|
|
var http = {
|
toAjax: function (params) {
|
$.ajax(params);
|
},
|
get: function (url, data, callback) {
|
http.toAjax({
|
method: 'GET',
|
url: url,
|
data: data,
|
dataType: 'json',
|
header: {'token': localStorage.getItem('token')},
|
timeout: 10000,
|
cache: false,
|
success: function (res) {
|
if (res.code === 200){
|
callback(res);
|
} else if (res.code === 403){
|
top.location.href = baseUrl+"/";
|
} else {
|
layer.msg(res.msg);
|
}
|
},
|
error: function (res, type) {
|
|
}
|
})
|
},
|
// 默认表单
|
post: function (url, param, callback, type) {
|
var headerType;
|
if (type === 'json') {
|
headerType = {'Content-Type': 'application/json'}
|
} else {
|
headerType = {'Content-Type': 'application/x-www-form-urlencoded'}
|
}
|
headerType['token'] = localStorage.getItem('token');
|
http.toAjax({
|
method: 'POST',
|
url: url,
|
data: param,
|
dataType: 'json',
|
headers: headerType,
|
timeout: 10000,
|
cache: false,
|
success: function (res) {
|
if (res.code === 200){
|
callback(res);
|
} else if (res.code === 403){
|
top.location.href = baseUrl+"/";
|
} else {
|
layer.msg(res.msg);
|
}
|
},
|
error: function (res, type) {
|
|
}
|
})
|
},
|
};
|
"function" == typeof define && define.amd ? define(function () {
|
return http
|
}) : "object" == typeof module && module.exports ? module.exports = http : n.http = http
|
}(this);
|
|
/*************************************************************************************************************/
|
/********************************************** 物料业务抽象 ***************************************************/
|
/*************************************************************************************************************/
|
|
function arrRemove(arr, key, val) {
|
for(var i=arr.length-1; i>=0; i--){
|
if(arr[i][key] === val){
|
arr.splice(i,1);
|
}
|
}
|
}
|
|
var matCols = [
|
{field: 'matnr', align: 'center',title: '商品编号', width: 180}
|
// {field: 'id', align: 'center',title: 'ID'}
|
// ,{field: 'uuid', align: 'center',title: '编号'}
|
// ,{field: 'tagId$', align: 'center',title: '所属归类'}
|
,{field: 'maktx', align: 'center',title: '名称', width: 200}
|
// ,{field: 'name', align: 'center',title: '别名'}
|
// ,{field: 'specs', align: 'center',title: '规格', hide: true}
|
// ,{field: 'model', align: 'center',title: '代码', hide: true}
|
// ,{field: 'color', align: 'center',title: '颜色', hide: true}
|
// ,{field: 'brand', align: 'center',title: '品牌', hide: true}
|
// ,{field: 'unit', align: 'center',title: '单位', hide: true}
|
// ,{field: 'price', align: 'center',title: '单价', hide: true}
|
,{field: 'standby2', align: 'center',title: '条码upc', hide: true}
|
,{field: 'units', align: 'center',title: '单箱毛重kg', hide: false}
|
,{field: 'barcode', align: 'center',title: '条码', hide: true}
|
,{field: 'origin', align: 'center',title: '在库标记', hide: true}
|
,{field: 'manu', align: 'center',title: '仓库编码', hide: true}
|
// ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
|
// ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
|
,{field: 'safeQty', align: 'center',title: '总件数', hide: true}
|
,{field: 'weight', align: 'center',title: '单箱净重kg', hide: false}
|
,{field: 'manLength', align: 'center',title: '长(毫米)', hide: false}
|
,{field: 'width', align: 'center',title: '宽(毫米)', hide: false}
|
,{field: 'height', align: 'center',title: '高(毫米)', hide: false}
|
|
|
// ,{field: 'length', align: 'center',title: '单箱毛重', hide: true}
|
// ,{field: 'volume', align: 'center',title: '单箱体积', hide: false}
|
// ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true}
|
,{field: 'standby1', align: 'center',title: '客户po', hide: true}
|
,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
|
// ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true}
|
// ,{field: 'deadTime', align: 'center',title: '保质期', hide: true}
|
// ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true}
|
// ,{field: 'source$', align: 'center',title: '制购', hide: true}
|
// ,{field: 'check$', align: 'center',title: '要求检验', hide: true}
|
// ,{field: 'danger$', align: 'center',title: '危险品', hide: true}
|
// ,{field: 'status$', align: 'center',title: '状态'}
|
// ,{field: 'createBy$', align: 'center',title: '添加人员'}
|
// ,{field: 'createTime$', align: 'center',title: '添加时间'}
|
,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true}
|
,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true}
|
,{field: 'memo', align: 'center',title: '备注', hide: true}
|
]
|
|
var detlCols = [
|
{field: 'matnr', align: 'center',title: '商品编号', sort:true}
|
,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
|
,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
|
// ,{field: 'batch', align: 'center',title: '货品特征', sort:true,hide:true}
|
,{field: 'anfme', align: 'center',title: '数量', hide: false}
|
,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false}
|
|
,{field: 'boxType3', align: 'center',title: '采购单号', hide: false}
|
// ,{field: 'model', align: 'center',title: '代码', hide: true}
|
// ,{field: 'color', align: 'center',title: '颜色', hide: true}
|
// ,{field: 'brand', align: 'center',title: '品牌', hide: true}
|
// ,{field: 'unit', align: 'center',title: '单位', hide: true}
|
// ,{field: 'price', align: 'center',title: '单价', hide: true}
|
,{field: 'standby2', align: 'center',title: '条码upc', hide: false}
|
,{field: 'units', align: 'center',title: '单箱毛重kg', hide: true}
|
// ,{field: 'barcode', align: 'center',title: '条码', hide: true}
|
// ,{field: 'origin', align: 'center',title: '在库标记', hide: true}
|
,{field: 'manu', align: 'center',title: '仓库编码', hide: true}
|
// ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
|
// ,{field: 'safeQty', align: 'center',title: '总件数', hide: true}
|
,{field: 'weight', align: 'center',title: '单箱净重kg', hide: false}
|
// ,{field: 'manLength', align: 'center',title: '长(毫米)', hide: false}
|
// ,{field: 'width', align: 'center',title: '宽(毫米)', hide: false}
|
// ,{field: 'height', align: 'center',title: '高(毫米)', hide: false}
|
// ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true}
|
,{field: 'standby1', align: 'center',title: '客户po', hide: false}
|
,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
|
// ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true}
|
// ,{field: 'deadTime', align: 'center',title: '保质期', hide: true}
|
// ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true}
|
// ,{field: 'source$', align: 'center',title: '制购', hide: true}
|
// ,{field: 'check$', align: 'center',title: '要求检验', hide: true}
|
// ,{field: 'danger$', align: 'center',title: '危险品', hide: true}
|
// ,{field: 'frozen$', align: 'center',title: '冻结否',hide: true,
|
// templet: function(d) {
|
// // 根据条件判断字体颜色
|
// if (d.frozen$ === '已冻结') {
|
// return '<span style="color: #34a8de;">' +d.frozen$ + '</span>';
|
// } else {
|
// return '<span">' +d.frozen$ + '</span>';
|
// }
|
// }}
|
,{field: 'memo', align: 'center',title: '备注', hide: false}
|
]
|
|
function getQueryVariable(variable)
|
{
|
var query = window.location.search.substring(1);
|
var vars = query.split("&");
|
for (var i=0;i<vars.length;i++) {
|
var pair = vars[i].split("=");
|
if(pair[0] == variable){return pair[1];}
|
}
|
return(false);
|
}
|
|
/**
|
* 获取AI助手SVG图标HTML
|
* @param {number} width 宽度,默认48
|
* @param {number} height 高度,默认48
|
* @returns {string} SVG HTML字符串
|
*/
|
function getAiIconHtml(width, height) {
|
width = width || 48;
|
height = height || 48;
|
// 生成唯一ID防止冲突
|
var uniqueId = 'ai_icon_' + Math.random().toString(36).substr(2, 9);
|
var textGradientId = 'textGradient_' + uniqueId;
|
var glowId = 'glow_' + uniqueId;
|
var spinName = 'spin_' + uniqueId;
|
|
return '<svg width="' + width + '" height="' + height + '" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" fill="none">' +
|
'<defs>' +
|
'<linearGradient id="' + textGradientId + '" gradientUnits="userSpaceOnUse" x1="25" y1="50" x2="75" y2="50">' +
|
'<stop offset="0%" stop-color="#8b5cf6"/>' +
|
'<stop offset="20%" stop-color="#f472b6"/>' +
|
'<stop offset="40%" stop-color="#fb923c"/>' +
|
'<stop offset="60%" stop-color="#fbbf24"/>' +
|
'<stop offset="80%" stop-color="#22d3ee"/>' +
|
'<stop offset="100%" stop-color="#3b82f6"/>' +
|
'<animateTransform attributeName="gradientTransform" type="rotate" from="0 50 50" to="360 50 50" dur="5s" repeatCount="indefinite" />' +
|
'</linearGradient>' +
|
'<filter id="' + glowId + '" x="-50%" y="-50%" width="200%" height="200%">' +
|
'<feGaussianBlur stdDeviation="1.6" result="blur"/>' +
|
'<feMerge>' +
|
'<feMergeNode in="blur"/>' +
|
'<feMergeNode in="SourceGraphic"/>' +
|
'</feMerge>' +
|
'</filter>' +
|
'<style>' +
|
'.' + spinName + ' { animation: ' + spinName + ' 5s linear infinite; transform-origin: 50px 50px; }' +
|
'@keyframes ' + spinName + ' { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }' +
|
'.geo-text-' + uniqueId + ' { fill: url(#' + textGradientId + '); stroke: rgba(0,0,0,0.40); stroke-width: 0.45; paint-order: stroke fill; }' +
|
'</style>' +
|
'</defs>' +
|
'<g class="' + spinName + '" filter="url(#' + glowId + ')">' +
|
'<g transform="rotate(0 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#8b5cf6"/></g>' +
|
'<g transform="rotate(60 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#f472b6"/></g>' +
|
'<g transform="rotate(120 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#fb923c"/></g>' +
|
'<g transform="rotate(180 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#fbbf24"/></g>' +
|
'<g transform="rotate(240 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#22d3ee"/></g>' +
|
'<g transform="rotate(300 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#3b82f6"/></g>' +
|
'</g>' +
|
'<g transform="translate(50 50) scale(0.35) translate(-32.5 -20)" class="geo-text-' + uniqueId + '">' +
|
'<path d="M0 40 L20 0 L40 40 Z"/><rect x="12" y="22" width="16" height="4" rx="1"/>' +
|
'<rect x="50" y="0" width="15" height="4" rx="1"/><rect x="55" y="4" width="5" height="32" rx="1.5"/><rect x="50" y="36" width="15" height="4" rx="1"/>' +
|
'</g>' +
|
'</svg>';
|
}
|