提交 8d939805 编写于 作者: Skyeye云's avatar Skyeye云

用品采购整改

上级 c8a7b02d
...@@ -71,7 +71,7 @@ layui.config({ ...@@ -71,7 +71,7 @@ layui.config({
} }
}); });
var tmpList = ['com.skyeye.eve.articles.service.impl.ArticlesUseServiceImpl']; var tmpList = ['com.skyeye.eve.articles.service.impl.ArticlesUseServiceImpl', 'com.skyeye.eve.articles.service.impl.ArticlesPurchaseServiceImpl'];
// 提交任务 // 提交任务
function subTasks(data, obj){ function subTasks(data, obj){
taskId = data.id; taskId = data.id;
......
...@@ -11,74 +11,95 @@ layui.config({ ...@@ -11,74 +11,95 @@ layui.config({
var $ = layui.$, var $ = layui.$,
form = layui.form; form = layui.form;
var serviceClassName = sysServiceMation["assetArticlesPurchase"]["key"]; var serviceClassName = sysServiceMation["assetArticlesPurchase"]["key"];
var rowNum = 1; //表格的序号
var typeHtml = ""; var typeHtml = "";
var purchasetableTemplate = $("#purchasetableTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl'); var selOption = getFileContent('tpl/template/select-option.tpl');
// 获取当前登录员工信息 skyeyeEnclosure.init('enclosureUpload');
systemCommonUtil.getSysCurrentLoginUserMation(function (data) { systemCommonUtil.getSysCurrentLoginUserMation(function (data) {
$("#useTitle").html("用品采购申请单-" + getYMDFormatDate() + '-' + data.bean.userName); $("#title").html("用品采购申请单-" + getYMDFormatDate() + '-' + data.bean.userName);
$("#useName").html(data.bean.userName); $("#useName").html(data.bean.userName);
}); });
initTypeHtml();
function initTypeHtml() { // 用品类别
// 用品类别 sysDictDataUtil.queryDictDataListByDictTypeCode(sysDictData["admAssetArticlesType"]["key"], function (data) {
sysDictDataUtil.queryDictDataListByDictTypeCode(sysDictData["admAssetArticlesType"]["key"], function (data) { typeHtml = getDataUseHandlebars(selOption, data);
typeHtml = getDataUseHandlebars(selOption, data); });
});
form.render(); initTableChooseUtil.initTable({
//类型加载变化事件 id: "articlesList",
form.on('select(selectTypeProperty)', function(data) { cols: [
var thisRowNum = data.elem.id.replace("typeId", ""); {id: 'typeId', title: '类别', formType: 'select', width: '150', verify: 'required', layFilter: 'selectTypeProperty', modelHtml: typeHtml},
var thisRowValue = data.value; {id: 'articleId', title: '用品', formType: 'select', width: '150', verify: 'required', layFilter: 'selectAssetarProperty'},
if (!isNull(thisRowValue) && thisRowValue != '请选择') { {id: 'specifications', title: '规格(单位)', formType: 'detail', width: '80'},
if(inPointArray(thisRowValue, assetArticles)) { {id: 'residualNum', title: '库存', formType: 'detail', width: '80'},
//类型对应的用品存在js对象中 {id: 'applyPurchaseNum', title: '采购数量', formType: 'input', width: '80', verify: 'required|number', value: '1'},
var list = getListPointArray(thisRowValue, assetArticles); {id: 'remark', title: '备注', formType: 'input', width: '100'}
resetAssetList(thisRowNum, list); //重置选择行的用品列表 ],
} else { deleteRowCallback: function (trcusid) {
//类型对应的用品不存在js对象中 },
AjaxPostUtil.request({url: flowableBasePath + "assetarticles018", params: {typeId: thisRowValue}, type: 'json', method: 'GET', callback: function(json) { addRowCallback: function (trcusid) {
assetArticles.push({ },
id: thisRowValue, form: form,
list: json.rows minData: 1
}); });
resetAssetList(thisRowNum, json.rows); //重置选择行的用品列表
}});
}
}
});
//商品加载变化事件 matchingLanguage();
form.on('select(selectAssetarProperty)', function(data) { form.render();
var thisRowNum = data.elem.id.replace("assetarId", "");
var thisRowValue = data.value; // 类型加载变化事件
var thisRowTypeChooseId = $("#typeId" + thisRowNum).val(); form.on('select(selectTypeProperty)', function(data) {
if (!isNull(thisRowValue) && thisRowValue != '请选择') { var thisRowNum = data.elem.id.replace("typeId", "");
var list = getListPointArray(thisRowTypeChooseId, assetArticles); var thisRowValue = data.value;
$.each(list, function(i, item) { if (!isNull(thisRowValue) && thisRowValue != '请选择') {
if(item.id === thisRowValue) { if (judgeInPoingArr(assetArticles, 'id', thisRowValue)) {
$("#specificationsName" + thisRowNum).html(item.specificationsName); // 类型对应的用品存在js对象中
$("#residualNum" + thisRowNum).html(item.residualNum); var list = getInPoingArr(assetArticles, 'id', thisRowValue, 'list');
return false; resetAssetList(thisRowNum, list); //重置选择行的用品列表
}
});
} else { } else {
$("#specificationsName" + thisRowNum).html(""); //重置规格为空 // 类型对应的用品不存在js对象中
$("#residualNum" + thisRowNum).html(""); //重置库存为空 AjaxPostUtil.request({url: flowableBasePath + "assetarticles018", params: {typeId: thisRowValue}, type: 'json', method: 'GET', callback: function(json) {
assetArticles.push({
id: thisRowValue,
list: json.rows
});
resetAssetList(thisRowNum, json.rows); //重置选择行的用品列表
}});
} }
}); }
});
matchingLanguage(); // 根据类型重置用户列表
//初始化一行数据 function resetAssetList(thisRowNum, list) {
addRow(); var sHtml = getDataUseHandlebars(selOption, {
rows: list
});
$("#articleId" + thisRowNum).html(sHtml);
$("#specifications" + thisRowNum).html("");
$("#residualNum" + thisRowNum).html("");
form.render('select');
} }
skyeyeEnclosure.init('enclosureUpload'); // 商品加载变化事件
form.on('select(selectAssetarProperty)', function(data) {
var thisRowNum = data.elem.id.replace("articleId", "");
var thisRowValue = data.value;
var thisRowTypeChooseId = $("#typeId" + thisRowNum).val();
if (!isNull(thisRowValue) && thisRowValue != '请选择') {
var list = getInPoingArr(assetArticles, 'id', thisRowTypeChooseId, 'list');
$.each(list, function(i, item) {
if(item.id === thisRowValue) {
$("#specifications" + thisRowNum).html(item.specificationsName);
$("#residualNum" + thisRowNum).html(item.residualNum);
return false;
}
});
} else {
$("#specifications" + thisRowNum).html(""); //重置规格为空
$("#residualNum" + thisRowNum).html(""); //重置库存为空
}
});
// 保存为草稿 // 保存为草稿
form.on('submit(formAddBean)', function(data) { form.on('submit(formAddBean)', function(data) {
if(winui.verifyForm(data.elem)) { if(winui.verifyForm(data.elem)) {
...@@ -98,143 +119,46 @@ layui.config({ ...@@ -98,143 +119,46 @@ layui.config({
}); });
function saveData(subType, approvalId) { function saveData(subType, approvalId) {
// 获取已选用品数据 var result = initTableChooseUtil.getDataList('articlesList');
var rowTr = $("#purchaseTable tr"); if (!result.checkResult) {
if(rowTr.length == 0) {
winui.window.msg('请选择需要采购的用品~', {icon: 2, time: 2000});
return false; return false;
} }
var tableData = new Array(); var noError = false;
var noError = false; //循环遍历表格数据时,是否有其他错误信息 var tableData = [];
$.each(rowTr, function(i, item) { $.each(result.dataList, function (i, item) {
var rowNum = $(item).attr("trcusid").replace("tr", ""); var rowNum = item["trcusid"].replace("tr", "");
if(parseInt($("#purchaseNum" + rowNum).val()) == 0) { if (parseInt(item.applyUseNum) == 0) {
$("#purchaseNum" + rowNum).addClass("layui-form-danger"); $("#applyUseNum" + rowNum).addClass("layui-form-danger");
$("#purchaseNum" + rowNum).focus(); $("#applyUseNum" + rowNum).focus();
winui.window.msg('采购数量不能为0', {icon: 2, time: 2000}); winui.window.msg('采购数量不能为0', {icon: 2, time: 2000});
noError = true; noError = true;
return false; return false;
} }
if(inTableDataArrayByAssetarId($("#assetarId" + rowNum).val(), tableData)){ if (judgeInPoingArr(tableData, 'articleId', $("#articleId" + rowNum).val())) {
winui.window.msg('采购单存在相同的用品', {icon: 2, time: 2000}); winui.window.msg('领用单存在相同的用品', {icon: 2, time: 2000});
noError = true; noError = true;
return false; return false;
} }
var row = { tableData.push(item);
typeId: $("#typeId" + rowNum).val(),
assetarId: $("#assetarId" + rowNum).val(),
purchaseNum: $("#purchaseNum" + rowNum).val(),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
}); });
if(noError) { if (noError) {
return false; return false;
} }
var params = { var params = {
title: $("#useTitle").html(), title: $("#title").html(),
remark: $("#remark").val(), remark: $("#remark").val(),
assetArticlesStr: JSON.stringify(tableData), purchaseLink: JSON.stringify(tableData),
enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload'), enclosureInfo: JSON.stringify({enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload')}),
subType: subType, // 表单类型 1.保存草稿 2.提交审批 formSubType: subType,
approvalId: approvalId approvalId: approvalId
}; };
AjaxPostUtil.request({url: flowableBasePath + "assetarticles024", params: params, type: 'json', callback: function(json) { AjaxPostUtil.request({url: flowableBasePath + "writeArticlesPurchasee", params: params, type: 'json', method: 'POST', callback: function(json) {
parent.layer.close(index); parent.layer.close(index);
parent.refreshCode = '0'; parent.refreshCode = '0';
}}); }});
} }
//判断选中的用品是否也在数组中
function inTableDataArrayByAssetarId(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.assetarId === str) {
isIn = true;
return false;
}
});
return isIn;
}
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
typeId: "typeId" + rowNum.toString(), //类型id
assetarId: "assetarId" + rowNum.toString(), //用品id
specificationsName: "specificationsName" + rowNum.toString(), //规格id
residualNum: "residualNum" + rowNum.toString(), //库存id
purchaseNum: "purchaseNum" + rowNum.toString(), //采购数量id
remark: "remark" + rowNum.toString() //备注id
};
$("#purchaseTable").append(getDataUseHandlebars(purchasetableTemplate, par));
//赋值给用品类别
$("#" + "typeId" + rowNum.toString()).html(typeHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#purchaseTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
//根据类型重置用户列表
function resetAssetList(thisRowNum, list) {
var sHtml = getDataUseHandlebars(selOption, {
rows: list
});
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#specificationsName" + thisRowNum).html(""); //重置规格为空
$("#residualNum" + thisRowNum).html(""); //重置库存为空
form.render('select');
}
//判断是否在数组中
function inPointArray(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.id === str) {
isIn = true;
return false;
}
});
return isIn;
}
//获取指定key对应的集合
function getListPointArray(str, array) {
var isList = [];
$.each(array, function(i, item) {
if(item.id === str) {
$.extend(true, isList, item.list);
return false;
}
});
return isList;
}
$("body").on("click", "#cancle", function() { $("body").on("click", "#cancle", function() {
parent.layer.close(index); parent.layer.close(index);
}); });
......
...@@ -6,20 +6,15 @@ layui.config({ ...@@ -6,20 +6,15 @@ layui.config({
window: 'js/winui.window' window: 'js/winui.window'
}).define(['window', 'jquery', 'winui'], function (exports) { }).define(['window', 'jquery', 'winui'], function (exports) {
winui.renderColor(); winui.renderColor();
layui.use(['form'], function (form) { var $ = layui.$,
var $ = layui.$; form = layui.form;
AjaxPostUtil.request({url: flowableBasePath + "assetarticles026", params: {rowId: parent.rowId}, type: 'json', callback: function (json) { AjaxPostUtil.request({url: flowableBasePath + "queryArticlesPurchaseById", params: {id: parent.rowId}, type: 'json', method: 'GET', callback: function (json) {
// 状态 $("#showForm").html(getDataUseHandlebars($("#useTemplate").html(), json));
json.bean.stateName = activitiUtil.showStateName2(json.bean.state, 1);
$("#showForm").html(getDataUseHandlebars($("#useTemplate").html(), json)); // 附件回显
skyeyeEnclosure.showDetails({"enclosureUploadBtn": json.bean.enclosureInfo});
// 附件回显 matchingLanguage();
skyeyeEnclosure.showDetails({"enclosureUploadBtn": json.bean.enclosureInfo}); form.render();
}});
matchingLanguage();
}});
});
}); });
\ No newline at end of file
...@@ -12,91 +12,124 @@ layui.config({ ...@@ -12,91 +12,124 @@ layui.config({
var $ = layui.$, var $ = layui.$,
form = layui.form; form = layui.form;
var serviceClassName = sysServiceMation["assetArticlesPurchase"]["key"]; var serviceClassName = sysServiceMation["assetArticlesPurchase"]["key"];
var rowNum = 1; //表格的序号
var typeHtml = ""; var typeHtml = "";
var usetableTemplate = $("#usetableTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl'); var selOption = getFileContent('tpl/template/select-option.tpl');
var sTableData = ""; AjaxPostUtil.request({url: flowableBasePath + "queryArticlesPurchaseById", params: {id: parent.rowId}, type: 'json', method: 'GET', callback: function(json) {
$("#title").html(json.bean.title);
AjaxPostUtil.request({url: flowableBasePath + "assetarticles028", params: {rowId: parent.rowId}, type: 'json', callback: function(json) { $("#useName").html(json.bean.createName);
$("#useTitle").html(json.bean.title);
$("#useName").html(json.bean.userName);
$("#remark").val(json.bean.remark); $("#remark").val(json.bean.remark);
// 附件回显 // 附件回显
skyeyeEnclosure.initTypeISData({'enclosureUpload': json.bean.enclosureInfo}); skyeyeEnclosure.initTypeISData({'enclosureUpload': json.bean.enclosureInfo});
if(json.bean.state == '1'){
$(".typeTwo").removeClass("layui-hide");
} else {
$(".typeOne").removeClass("layui-hide");
}
sTableData = json.bean.goods;
initTypeHtml();
matchingLanguage();
}});
function initTypeHtml() {
// 用品类别 // 用品类别
sysDictDataUtil.queryDictDataListByDictTypeCode(sysDictData["admAssetArticlesType"]["key"], function (data) { sysDictDataUtil.queryDictDataListByDictTypeCode(sysDictData["admAssetArticlesType"]["key"], function (data) {
typeHtml = getDataUseHandlebars(selOption, data); typeHtml = getDataUseHandlebars(selOption, data);
}); });
initTable();
initTableChooseUtil.deleteAllRow('articlesList');
$.each(json.bean.purchaseLink, function(i, item) {
var list = findArticlesByTypeId(item.assetArticles.typeId);
var params = {
"typeId": {
"value": item.assetArticles.typeId
},
"articleId": {
"html": getDataUseHandlebars(selOption, {rows: list}),
"value": item.articleId
},
"specifications": item.assetArticles.specifications,
"residualNum": item.assetArticles.residualNum,
"applyPurchaseNum": item.applyPurchaseNum,
"remark": item.remark
};
initTableChooseUtil.resetData('articlesList', params);
});
matchingLanguage();
form.render(); form.render();
//类型加载变化事件 }});
form.on('select(selectTypeProperty)', function(data) {
var thisRowNum = data.elem.id.replace("typeId", ""); function initTable() {
var thisRowValue = data.value; initTableChooseUtil.initTable({
if (!isNull(thisRowValue) && thisRowValue != '请选择') { id: "articlesList",
if(inPointArray(thisRowValue, assetArticles)) { cols: [
//类型对应的用品存在js对象中 {id: 'typeId', title: '类别', formType: 'select', width: '150', verify: 'required', layFilter: 'selectTypeProperty', modelHtml: typeHtml},
var list = getListPointArray(thisRowValue, assetArticles); {id: 'articleId', title: '用品', formType: 'select', width: '150', verify: 'required', layFilter: 'selectAssetarProperty'},
resetAssetList(thisRowNum, list); //重置选择行的用品列表 {id: 'specifications', title: '规格(单位)', formType: 'detail', width: '80'},
} else { {id: 'residualNum', title: '库存', formType: 'detail', width: '80'},
//类型对应的用品不存在js对象中 {id: 'applyPurchaseNum', title: '采购数量', formType: 'input', width: '80', verify: 'required|number', value: '1'},
AjaxPostUtil.request({url: flowableBasePath + "assetarticles018", params: {typeId: thisRowValue}, type: 'json', method: 'GET', callback: function(json) { {id: 'remark', title: '备注', formType: 'input', width: '100'}
assetArticles.push({ ],
id: thisRowValue, deleteRowCallback: function (trcusid) {
list: json.rows },
}); addRowCallback: function (trcusid) {
resetAssetList(thisRowNum, json.rows); //重置选择行的用品列表 },
}}); form: form,
} minData: 1
}
}); });
}
//商品加载变化事件 // 类型加载变化事件
form.on('select(selectAssetarProperty)', function(data) { form.on('select(selectTypeProperty)', function(data) {
var thisRowNum = data.elem.id.replace("assetarId", ""); var thisRowNum = data.elem.id.replace("typeId", "");
var thisRowValue = data.value; var thisRowValue = data.value;
var thisRowTypeChooseId = $("#typeId" + thisRowNum).val(); if (!isNull(thisRowValue) && thisRowValue != '请选择') {
if (!isNull(thisRowValue) && thisRowValue != '请选择') { var list = findArticlesByTypeId(thisRowValue);
var list = getListPointArray(thisRowTypeChooseId, assetArticles); resetAssetList(thisRowNum, list);
$.each(list, function(i, item) { }
if(item.id === thisRowValue) { });
$("#specificationsName" + thisRowNum).html(item.specificationsName);
$("#residualNum" + thisRowNum).html(item.residualNum); function findArticlesByTypeId(typeId) {
return false; var list;
} if (judgeInPoingArr(assetArticles, 'id', typeId)) {
// 类型对应的用品存在js对象中
list = getInPoingArr(assetArticles, 'id', typeId, 'list');
} else {
// 类型对应的用品不存在js对象中
AjaxPostUtil.request({url: flowableBasePath + "assetarticles018", params: {typeId: typeId}, type: 'json', method: 'GET', callback: function (json) {
assetArticles.push({
id: typeId,
list: json.rows
}); });
} else { list = json.rows;
$("#specificationsName" + thisRowNum).html(""); //重置规格为空 }, async: false});
$("#residualNum" + thisRowNum).html(""); //重置库存为空 }
} return list;
});
//加载表格数据
initTableAssetList();
} }
//加载表格数据 // 根据类型重置用户列表
function initTableAssetList() { function resetAssetList(thisRowNum, list) {
$.each(sTableData, function(i, item) { var sHtml = getDataUseHandlebars(selOption, {
addDataRow(item); rows: list
}); });
$("#articleId" + thisRowNum).html(sHtml);
$("#specifications" + thisRowNum).html("");
$("#residualNum" + thisRowNum).html("");
form.render('select');
} }
// 商品加载变化事件
form.on('select(selectAssetarProperty)', function(data) {
var thisRowNum = data.elem.id.replace("articleId", "");
var thisRowValue = data.value;
var thisRowTypeChooseId = $("#typeId" + thisRowNum).val();
if (!isNull(thisRowValue) && thisRowValue != '请选择') {
var list = getInPoingArr(assetArticles, 'id', thisRowTypeChooseId, 'list');
$.each(list, function (i, item) {
if (item.id === thisRowValue) {
$("#specifications" + thisRowNum).html(item.specificationsName);
$("#residualNum" + thisRowNum).html(item.residualNum);
return false;
}
});
} else {
$("#specifications" + thisRowNum).html("");
$("#residualNum" + thisRowNum).html("");
}
});
// 保存为草稿 // 保存为草稿
form.on('submit(formEditBean)', function(data) { form.on('submit(formEditBean)', function(data) {
if(winui.verifyForm(data.elem)) { if(winui.verifyForm(data.elem)) {
...@@ -115,208 +148,48 @@ layui.config({ ...@@ -115,208 +148,48 @@ layui.config({
return false; return false;
}); });
// 工作流中保存
form.on('submit(subBean)', function(data) {
if(winui.verifyForm(data.elem)) {
saveData('3', "");
}
return false;
});
function saveData(subType, approvalId) { function saveData(subType, approvalId) {
// 获取已选用品数据 var result = initTableChooseUtil.getDataList('articlesList');
var rowTr = $("#useTable tr"); if (!result.checkResult) {
if(rowTr.length == 0) {
winui.window.msg('请选择需要采购的用品~', {icon: 2, time: 2000});
return false; return false;
} }
var tableData = new Array(); var noError = false;
var noError = false; //循环遍历表格数据时,是否有其他错误信息 var tableData = [];
$.each(rowTr, function(i, item) { $.each(result.dataList, function (i, item) {
var rowNum = $(item).attr("trcusid").replace("tr", ""); var rowNum = item["trcusid"].replace("tr", "");
var residualNum = parseInt($("#residualNum" + rowNum).html()); if (parseInt(item.applyUseNum) == 0) {
if(parseInt($("#purchaseNum" + rowNum).val()) == 0) { $("#applyUseNum" + rowNum).addClass("layui-form-danger");
$("#purchaseNum" + rowNum).addClass("layui-form-danger"); $("#applyUseNum" + rowNum).focus();
$("#purchaseNum" + rowNum).focus();
winui.window.msg('采购数量不能为0', {icon: 2, time: 2000}); winui.window.msg('采购数量不能为0', {icon: 2, time: 2000});
noError = true; noError = true;
return false; return false;
} }
if(inTableDataArrayByAssetarId($("#assetarId" + rowNum).val(), tableData)){ if (judgeInPoingArr(tableData, 'articleId', $("#articleId" + rowNum).val())) {
winui.window.msg('采购单存在相同的用品', {icon: 2, time: 2000}); winui.window.msg('领用单存在相同的用品', {icon: 2, time: 2000});
noError = true; noError = true;
return false; return false;
} }
var row = { tableData.push(item);
typeId: $("#typeId" + rowNum).val(),
assetarId: $("#assetarId" + rowNum).val(),
purchaseNum: $("#purchaseNum" + rowNum).val(),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
}); });
if(noError) { if (noError) {
return false; return false;
} }
var params = { var params = {
id: parent.rowId,
title: $("#title").html(),
remark: $("#remark").val(), remark: $("#remark").val(),
assetArticlesStr: JSON.stringify(tableData), purchaseLink: JSON.stringify(tableData),
rowId: parent.rowId, enclosureInfo: JSON.stringify({enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload')}),
enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload'), formSubType: subType,
subType: subType, // 1:保存为草稿 2.提交到工作流 3.在工作流中编辑 approvalId: approvalId
approvalId: approvalId,
}; };
AjaxPostUtil.request({url: flowableBasePath + "assetarticles029", params: params, type: 'json', callback: function(json) { AjaxPostUtil.request({url: flowableBasePath + "writeArticlesPurchasee", params: params, type: 'json', method: 'POST', callback: function(json) {
parent.layer.close(index); parent.layer.close(index);
parent.refreshCode = '0'; parent.refreshCode = '0';
}}); }});
} }
//判断选中的用品是否也在数组中
function inTableDataArrayByAssetarId(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.assetarId === str) {
isIn = true;
return false;
}
});
return isIn;
}
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//加载数据行行
function addDataRow(item) {
var thisRowNum = rowNum.toString();
var par = {
id: "row" + thisRowNum, //checkbox的id
trId: "tr" + thisRowNum, //行的id
typeId: "typeId" + thisRowNum, //类型id
assetarId: "assetarId" + thisRowNum, //用品id
specificationsName: "specificationsName" + thisRowNum, //规格id
residualNum: "residualNum" + thisRowNum, //库存id
purchaseNum: "purchaseNum" + thisRowNum, //采购数量id
remark: "remark" + thisRowNum //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给用品类别
$("#" + "typeId" + thisRowNum).html(typeHtml);
//数据回显
$("#typeId" + thisRowNum).val(item.typeId);
$("#specificationsName" + thisRowNum).html(item.specificationsName);
$("#remark" + thisRowNum).val(item.remark);
$("#residualNum" + thisRowNum).html(item.residualNum);
$("#purchaseNum" + thisRowNum).val(item.applyPurchaseNum);
var thisRowValue = item.typeId;
if (!isNull(thisRowValue) && thisRowValue != '请选择') {
if(inPointArray(thisRowValue, assetArticles)) {
//类型对应的用品存在js对象中
var list = getListPointArray(thisRowValue, assetArticles);
//重置选择行的用品列表
var sHtml = getDataUseHandlebars(selOption, {rows: list});
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#assetarId" + thisRowNum).val(item.articleId);
form.render('select');
} else {
//类型对应的用品不存在js对象中
AjaxPostUtil.request({url: flowableBasePath + "assetarticles018", params: {typeId: thisRowValue}, type: 'json', method: 'GET', callback: function(json) {
assetArticles.push({
id: thisRowValue,
list: json.rows
});
//重置选择行的用品列表
var sHtml = getDataUseHandlebars(selOption, json);
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#assetarId" + thisRowNum).val(item.articleId);
form.render('select');
}, async: false});
}
}
form.render('select');
form.render('checkbox');
rowNum++;
}
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
typeId: "typeId" + rowNum.toString(), //类型id
assetarId: "assetarId" + rowNum.toString(), //用品id
specificationsName: "specificationsName" + rowNum.toString(), //规格id
residualNum: "residualNum" + rowNum.toString(), //库存id
purchaseNum: "purchaseNum" + rowNum.toString(), //采购数量id
remark: "remark" + rowNum.toString() //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给用品类别
$("#" + "typeId" + rowNum.toString()).html(typeHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
//根据类型重置用户列表
function resetAssetList(thisRowNum, list) {
var sHtml = getDataUseHandlebars(selOption, {
rows: list
});
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#specificationsName" + thisRowNum).html(""); //重置规格为空
$("#residualNum" + thisRowNum).html(""); //重置库存为空
form.render('select');
}
//判断是否在数组中
function inPointArray(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.id === str) {
isIn = true;
return false;
}
});
return isIn;
}
//获取指定key对应的集合
function getListPointArray(str, array) {
var isList = [];
$.each(array, function(i, item) {
if(item.id === str) {
$.extend(true, isList, item.list);
return false;
}
});
return isList;
}
$("body").on("click", "#cancle", function() { $("body").on("click", "#cancle", function() {
parent.layer.close(index); parent.layer.close(index);
}); });
......
...@@ -28,11 +28,11 @@ layui.config({ ...@@ -28,11 +28,11 @@ layui.config({
cols: [[ cols: [[
{ title: systemLanguage["com.skyeye.serialNumber"][languageType], type: 'numbers' }, { title: systemLanguage["com.skyeye.serialNumber"][languageType], type: 'numbers' },
{ field: 'title', title: '标题', width: 300, templet: function (d) { { field: 'title', title: '标题', width: 300, templet: function (d) {
return '<a lay-event="caigouDedails" class="notice-title-click">' + d.title + '</a>'; return '<a lay-event="details" class="notice-title-click">' + d.title + '</a>';
}}, }},
{ field: 'oddNumber', title: '单号', width: 200, align: 'center' }, { field: 'oddNumber', title: '单号', width: 200, align: 'center' },
{ field: 'processInstanceId', title: '流程ID', width: 100, templet: function (d) { { field: 'processInstanceId', title: '流程ID', width: 100, templet: function (d) {
return '<a lay-event="caigouProcessDetails" class="notice-title-click">' + d.processInstanceId + '</a>'; return '<a lay-event="processDetails" class="notice-title-click">' + d.processInstanceId + '</a>';
}}, }},
{ field: 'state', title: '状态', width: 90, templet: function (d) { { field: 'state', title: '状态', width: 90, templet: function (d) {
return activitiUtil.showStateName2(d.state, 1); return activitiUtil.showStateName2(d.state, 1);
...@@ -79,7 +79,7 @@ layui.config({ ...@@ -79,7 +79,7 @@ layui.config({
area: ['90vw', '90vh'], area: ['90vw', '90vh'],
callBack: function (refreshCode) { callBack: function (refreshCode) {
winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000}); winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000});
loadmessageTable(); loadTable();
}}); }});
}); });
...@@ -90,7 +90,7 @@ layui.config({ ...@@ -90,7 +90,7 @@ layui.config({
layer.close(index); layer.close(index);
AjaxPostUtil.request({url: flowableBasePath + "assetarticles035", params: {processInstanceId: data.processInstanceId}, type: 'json', method: "PUT", callback: function (json) { AjaxPostUtil.request({url: flowableBasePath + "assetarticles035", params: {processInstanceId: data.processInstanceId}, type: 'json', method: "PUT", callback: function (json) {
winui.window.msg("提交成功", {icon: 1, time: 2000}); winui.window.msg("提交成功", {icon: 1, time: 2000});
loadmessageTable(); loadTable();
}}); }});
}); });
} }
...@@ -105,7 +105,7 @@ layui.config({ ...@@ -105,7 +105,7 @@ layui.config({
area: ['90vw', '90vh'], area: ['90vw', '90vh'],
callBack: function (refreshCode) { callBack: function (refreshCode) {
winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000}); winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000});
loadmessageTable(); loadTable();
} }
}); });
} }
...@@ -116,12 +116,12 @@ layui.config({ ...@@ -116,12 +116,12 @@ layui.config({
layer.close(index); layer.close(index);
activitiUtil.startProcess(serviceClassName, null, function (approvalId) { activitiUtil.startProcess(serviceClassName, null, function (approvalId) {
var params = { var params = {
rowId: data.id, id: data.id,
approvalId: approvalId approvalId: approvalId
}; };
AjaxPostUtil.request({url: flowableBasePath + "assetarticles027", params: params, type: 'json', callback: function (json) { AjaxPostUtil.request({url: flowableBasePath + "assetarticles027", params: params, type: 'json', method: 'POST', callback: function (json) {
winui.window.msg("提交成功", {icon: 1, time: 2000}); winui.window.msg("提交成功", {icon: 1, time: 2000});
loadmessageTable(); loadTable();
}}); }});
}); });
}); });
...@@ -132,9 +132,9 @@ layui.config({ ...@@ -132,9 +132,9 @@ layui.config({
var msg = '确认作废该条采购申请吗?'; var msg = '确认作废该条采购申请吗?';
layer.confirm(msg, { icon: 3, title: '作废操作' }, function (index) { layer.confirm(msg, { icon: 3, title: '作废操作' }, function (index) {
layer.close(index); layer.close(index);
AjaxPostUtil.request({url: flowableBasePath + "assetarticles031", params: {rowId: data.id}, type: 'json', callback: function (json) { AjaxPostUtil.request({url: flowableBasePath + "assetarticles031", params: {id: data.id}, type: 'json', method: 'POST', callback: function (json) {
winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000}); winui.window.msg(systemLanguage["com.skyeye.successfulOperation"][languageType], {icon: 1, time: 2000});
loadmessageTable(); loadTable();
}}); }});
}); });
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<form class="layui-form" action="" id="showForm"> <form class="layui-form" action="" id="showForm">
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">标题<i class="red">*</i></label> <label class="layui-form-label">标题<i class="red">*</i></label>
<div class="layui-input-block ver-center" id="useTitle"> <div class="layui-input-block ver-center" id="title">
</div> </div>
</div> </div>
...@@ -29,29 +29,9 @@ ...@@ -29,29 +29,9 @@
</div> </div>
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">用品<i class="red">*</i></label> <label class="layui-form-label">用品<i class="red">*</i></label>
<div class="layui-input-block"> <div class="layui-input-block" id="articlesList">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;"> </div>
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th></th>
<th>用品类别<i class="red">*</i></th>
<th>用品名称<i class="red">*</i></th>
<th style="min-width: 100px;">规格(单位)</th>
<th style="min-width: 50px;">库存</th>
<th style="min-width: 50px;">采购数量<i class="red">*</i></th>
<th>备注</th>
</tr>
</thead>
<tbody id="purchaseTable" class="insurance-table">
</tbody>
</table>
</div>
</div> </div>
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">相关描述</label> <label class="layui-form-label">相关描述</label>
...@@ -74,19 +54,6 @@ ...@@ -74,19 +54,6 @@
</form> </form>
</div> </div>
<!-- purchasetableTemplate -->
<script type="text/x-handlebars-template" id="purchasetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{typeId}}" lay-filter="selectTypeProperty" win-verify="required"></select></td>
<td><select id="{{assetarId}}" lay-filter="selectAssetarProperty" win-verify="required"></select></td>
<td id="{{specificationsName}}"></td>
<td id="{{residualNum}}"></td>
<td><input type="text" class="layui-input" value="1" id="{{purchaseNum}}" win-verify="required|number"/></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<script src="../../assets/lib/layui/layui.js"></script> <script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script> <script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript"> <script type="text/javascript">
......
...@@ -34,16 +34,10 @@ ...@@ -34,16 +34,10 @@
{{{stateName}}} {{{stateName}}}
</div> </div>
</div> </div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">步骤</label>
<div class="layui-input-block ver-center">
填单
</div>
</div>
<div class="layui-form-item layui-col-xs6"> <div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">责任人</label> <label class="layui-form-label">责任人</label>
<div class="layui-input-block ver-center"> <div class="layui-input-block ver-center">
{{userName}} {{createName}}
</div> </div>
</div> </div>
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
...@@ -56,19 +50,17 @@ ...@@ -56,19 +50,17 @@
<th>用品名称</th> <th>用品名称</th>
<th style="min-width: 100px;">规格(单位)</th> <th style="min-width: 100px;">规格(单位)</th>
<th style="min-width: 50px;">采购数量</th> <th style="min-width: 50px;">采购数量</th>
<th style="min-width: 50px;">实际采购量</th>
<th>状态</th> <th>状态</th>
<th>备注</th> <th>备注</th>
</tr> </tr>
</thead> </thead>
<tbody id="useTable" class="insurance-table"> <tbody id="useTable" class="insurance-table">
{{#each goods}} {{#each purchaseLink}}
<tr> <tr>
<td>{{typeName}}</td> <td>{{assetArticles.typeName}}</td>
<td>{{articleName}}</td> <td>{{assetArticles.name}}</td>
<td>{{specificationsName}}</td> <td>{{assetArticles.specifications}}</td>
<td>{{applyPurchaseNum}}</td> <td>{{applyPurchaseNum}}</td>
<td>{{actualPurchaseNum}}</td>
<td>{{stateName}}</td> <td>{{stateName}}</td>
<td>{{remark}}</td> <td>{{remark}}</td>
</tr> </tr>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<form class="layui-form" action="" id="showForm"> <form class="layui-form" action="" id="showForm">
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">标题<i class="red">*</i></label> <label class="layui-form-label">标题<i class="red">*</i></label>
<div class="layui-input-block ver-center" id="useTitle"> <div class="layui-input-block ver-center" id="title">
</div> </div>
</div> </div>
...@@ -29,29 +29,9 @@ ...@@ -29,29 +29,9 @@
</div> </div>
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">用品<i class="red">*</i></label> <label class="layui-form-label">用品<i class="red">*</i></label>
<div class="layui-input-block"> <div class="layui-input-block" id="articlesList">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;"> </div>
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th></th>
<th>用品类别<i class="red">*</i></th>
<th>用品名称<i class="red">*</i></th>
<th style="min-width: 100px;">规格(单位)</th>
<th style="min-width: 50px;">库存</th>
<th style="min-width: 50px;">采购数量<i class="red">*</i></th>
<th>备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
</tbody>
</table>
</div>
</div> </div>
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">相关描述</label> <label class="layui-form-label">相关描述</label>
...@@ -68,27 +48,13 @@ ...@@ -68,27 +48,13 @@
<div class="layui-form-item layui-col-xs12"> <div class="layui-form-item layui-col-xs12">
<div class="layui-input-block"> <div class="layui-input-block">
<button class="winui-btn" id="cancle"><language showName="com.skyeye.cancel"></language></button> <button class="winui-btn" id="cancle"><language showName="com.skyeye.cancel"></language></button>
<button class="winui-btn typeOne layui-hide" lay-submit lay-filter="formEditBean">保存为草稿</button> <button class="winui-btn" lay-submit lay-filter="formEditBean">保存为草稿</button>
<button class="winui-btn typeOne layui-hide" lay-submit lay-filter="formSubBean">提交审批</button> <button class="winui-btn" lay-submit lay-filter="formSubBean">提交审批</button>
<button class="winui-btn typeTwo layui-hide" lay-submit lay-filter="subBean"><language showName="com.skyeye.save"></language></button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
<!-- usetableTemplate -->
<script type="text/x-handlebars-template" id="usetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{typeId}}" lay-filter="selectTypeProperty" win-verify="required"></select></td>
<td><select id="{{assetarId}}" lay-filter="selectAssetarProperty" win-verify="required"></select></td>
<td id="{{specificationsName}}"></td>
<td id="{{residualNum}}"></td>
<td><input type="text" class="layui-input" id="{{purchaseNum}}" win-verify="required|number"/></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<script src="../../assets/lib/layui/layui.js"></script> <script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script> <script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript"> <script type="text/javascript">
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
{{# if(auth('1596958874140')){ }} {{# if(auth('1596958874140')){ }}
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="cancellation">作废</a> <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="cancellation">作废</a>
{{# } }} {{# } }}
{{# if(auth('1596958822354')){ }} {{# if(auth('1596958747047')){ }}
<a class="layui-btn layui-btn-xs" lay-event="edit"><language showName="com.skyeye.editBtn"></language></a> <a class="layui-btn layui-btn-xs" lay-event="edit"><language showName="com.skyeye.editBtn"></language></a>
{{# } }} {{# } }}
{{# } }} {{# } }}
......
...@@ -34,12 +34,6 @@ ...@@ -34,12 +34,6 @@
{{{stateName}}} {{{stateName}}}
</div> </div>
</div> </div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">步骤</label>
<div class="layui-input-block ver-center">
填单
</div>
</div>
<div class="layui-form-item layui-col-xs6"> <div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">责任人</label> <label class="layui-form-label">责任人</label>
<div class="layui-input-block ver-center"> <div class="layui-input-block ver-center">
......
...@@ -37,12 +37,12 @@ var activitiUtil = { ...@@ -37,12 +37,12 @@ var activitiUtil = {
* @param data * @param data
*/ */
activitiDetails: function (data) { activitiDetails: function (data) {
var tmpList = ['com.skyeye.eve.articles.service.impl.ArticlesUseServiceImpl']; var tmpList = ['com.skyeye.eve.articles.service.impl.ArticlesUseServiceImpl', 'com.skyeye.eve.articles.service.impl.ArticlesPurchaseServiceImpl'];
taskType = data.taskType; taskType = data.taskType;
processInstanceId = data.processInstanceId; processInstanceId = data.processInstanceId;
var url = "../../tpl/activitiCommon/processDetails.html"; var url = "../../tpl/activitiCommon/processDetails.html";
if (tmpList.indexOf(data.serviceClassName) >= 0 if (tmpList.indexOf(data.serviceClassName) >= 0
|| (tmpList.indexOf(data.processMation.objectKey) >= 0 && data.processMation != null)) { || (data.processMation != null && tmpList.indexOf(data.processMation.objectKey) >= 0)) {
url = "../../tpl/activitiCommon/processInstanceDetails.html"; url = "../../tpl/activitiCommon/processInstanceDetails.html";
} }
_openNewWindows({ _openNewWindows({
......
...@@ -15,7 +15,7 @@ var dsFormUtil = { ...@@ -15,7 +15,7 @@ var dsFormUtil = {
'matchbrackets', 'closebrackets', 'showHint', 'anywordHint', 'lint', 'jsonLint', 'foldcode', 'foldgutter', 'braceFold', 'commentFold', 'form'], 'matchbrackets', 'closebrackets', 'showHint', 'anywordHint', 'lint', 'jsonLint', 'foldcode', 'foldgutter', 'braceFold', 'commentFold', 'form'],
showType: { showType: {
'1': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{displayValue}}</div></div>{{/bean}}', // 文本展示 '1': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{displayValue}}</div></div>{{/bean}}', // 文本展示
'2': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{#each displayValue}}<a rowid="{{id}}" class="enclosureItem" rowpath="{{fileAddress}}" href="javascript:;" style="color:blue;">{{name}}</a><br>{{/each}}</div></div>{{/bean}}', // 附件展示 '2': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{#each displayValue.enclosureInfoList}}<a rowid="{{id}}" class="enclosureItem" rowpath="{{fileAddress}}" href="javascript:;" style="color:blue;">{{name}}</a><br>{{/each}}</div></div>{{/bean}}', // 附件展示
'3': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{{displayValue}}}</div></div>{{/bean}}', // 富文本展示 '3': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{{displayValue}}}</div></div>{{/bean}}', // 富文本展示
'4': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{#each photo}}<img src="{{photoValue}}" class="photo-img">{{/each}}</div></div>{{/bean}}', // 图片展示 '4': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center">{{#each photo}}<img src="{{photoValue}}" class="photo-img">{{/each}}</div></div>{{/bean}}', // 图片展示
'5': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center" id="showTable{{orderBy}}">' + '5': '{{#bean}}<div class="layui-form-item {{proportion}}"><label class="layui-form-label">{{label}}:</label><div class="layui-input-block ver-center" id="showTable{{orderBy}}">' +
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册