You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
493 lines
20 KiB
493 lines
20 KiB
|
|
let productsinfo = new Vue({
|
|
el: '#ProductTable',
|
|
components: {
|
|
'BootstrapTable': BootstrapTable
|
|
},
|
|
data: {
|
|
columns: [
|
|
{
|
|
title: '序号',
|
|
sortable: true,
|
|
align: "center",
|
|
width: 20,
|
|
formatter: function (value, row, index) {
|
|
console.log(index);
|
|
////获取每页显示的数量
|
|
//var pageSize = $('#tbqc').bootstrapTable('getOptions').pageSize;
|
|
////获取当前是第几页
|
|
//var pageNumber = $('#tbqc').bootstrapTable('getOptions').pageNumber;
|
|
////返回序号,注意index是从0开始的,所以要加上1
|
|
//return pageSize * (pageNumber - 1) + index + 1;
|
|
return ++index;
|
|
}
|
|
},
|
|
{
|
|
title: '产品类型',
|
|
field: 'productcode',
|
|
align: 'center'
|
|
}, {
|
|
title: '描述',
|
|
field: 'descriptions',
|
|
align: 'center'
|
|
}, {
|
|
title: '产品系列',
|
|
field: 'familycode',
|
|
align: 'center'
|
|
}, {
|
|
title: '栅线类型',
|
|
field: 'busbartype',
|
|
align: 'center'
|
|
}, {
|
|
title: '晶体类型',
|
|
field: 'crystype',
|
|
align: 'center'
|
|
}, {
|
|
title: '组件规格',
|
|
field: 'modulespec',
|
|
align: 'center'
|
|
}, {
|
|
title: '工艺流程',
|
|
field: 'flow',
|
|
align: 'center'
|
|
}, {
|
|
title: '电池片数',
|
|
field: 'cellqty',
|
|
align: 'center'
|
|
}, {
|
|
title: '工艺类型',
|
|
field: 'processtype',
|
|
align: 'center'
|
|
}, {
|
|
title: '组件特征码',
|
|
field: 'featurecode',
|
|
align: 'center'
|
|
}, {
|
|
title: 'Action',
|
|
align: 'center',
|
|
formatter: function (value, row, index) {
|
|
//// 由于id不能使用纯数字所有在id前面统一加上row字符串。取得时候截取即可
|
|
//var id = "row" + index;
|
|
//var ans = "<div class='rowOperator' id=" + id + "></div>";
|
|
//return ans;
|
|
return [
|
|
'<a class="like" href="javascript:void(0)" title="Like">',
|
|
'<i class="fa fa-edit fa-lg"></i>',
|
|
'</a>    ',
|
|
'<a class="remove" href="javascript:void(0)" title="Remove">',
|
|
'<i class="fa fa-trash fa-lg"></i>',
|
|
'</a>'
|
|
].join('')
|
|
},
|
|
events: {
|
|
'click .like': function (e, value, row) {
|
|
event.stopPropagation();
|
|
for (let i = 0; i < $('.select').length; i++) {
|
|
//$('.select:eq(' + i + ')').find("option").each(function () {
|
|
// if ($(this).text() == '组件1部') {$(this).attr('selected','selected')}
|
|
// if ($(this).text() == '组件1部') { console.log('组件一部') }
|
|
//});
|
|
//$('.select').eq(i).val('组件1部').trigger('change');
|
|
//$('.select').eq(i).select2({ width: '100%' }).change();
|
|
addproduct.selection[i].selectedValue = row[addproduct.index[i]];
|
|
addproduct.passToOptions[addproduct.index[i]] = addproduct.selection[i].selectedValue
|
|
if (i==0||i==1) {
|
|
$('.select:eq(' + i + ')').attr('disabled', 'disabled');
|
|
}
|
|
}
|
|
$('.select').eq(0).val('组件1部').trigger('change');
|
|
//$('.select').eq(0).select2().val('组件1部').trigger('change');
|
|
//$('.select').eq(0).select2({ width: '100%' }).change();
|
|
console.log(addproduct.passToOptions);
|
|
$('#RoleModal').modal({ backdrop: 'static', keyboard: false });
|
|
//$('#affirm').click(function () {
|
|
// toastr.clear();
|
|
// toastr.success('产品[' + row.productcode + ']修改成功', '', { progressBar: true });
|
|
// setTimeout(function () { $('#cancel').click(); }, 6000)
|
|
|
|
//})
|
|
|
|
},
|
|
'click .remove': function (e, value, row,index) {
|
|
event.stopPropagation();
|
|
console.log(row);
|
|
console.log(productsinfo.data);
|
|
$('tr[data-index=' + index + ']').css('background-color', '#f39c12');
|
|
productsinfo.requestApi({
|
|
modulename: "Orders",
|
|
funname: "QueryWorkshop", //BatchRate
|
|
para: { prodectcode: row.productcode },
|
|
success: (res) => {
|
|
console.log(res);
|
|
toastr.success('产品[' + row.productcode + ']已经删除', '', { progressBar: true }).then(setTimeout(function () {
|
|
productsinfo.data.splice(index, 1);
|
|
},5500));
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
})
|
|
//setTimeout(function () {
|
|
|
|
// productsinfo.data.splice(index, 1);
|
|
//},3000)
|
|
|
|
},
|
|
}
|
|
}
|
|
],
|
|
data: [
|
|
// {
|
|
// powergrade: 1,
|
|
// igrade: 321,
|
|
// color:'123'
|
|
// }
|
|
],
|
|
stations: [], //for循环用作显示流程快
|
|
hide: null,
|
|
options: {
|
|
//pagination: true, //是否显示分页(*)
|
|
//pageSize: 12, //每页的记录行数(*)
|
|
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,
|
|
strictSearch: true,
|
|
//showColumns: true, //是否显示所有的列
|
|
showRefresh: true,
|
|
height: 580,
|
|
onClickRow: function (row, $element, field) {
|
|
console.log(row);
|
|
var flow = row.flow;
|
|
console.log(flow);
|
|
productsinfo.requestApi({
|
|
modulename: "Orders",
|
|
funname: "QueryWorkshop", //BatchRate
|
|
para: {flow:flow},
|
|
success: (res) => {
|
|
console.log(res);
|
|
productsinfo.stations = res;
|
|
//显示工艺流程
|
|
//clearTimeout(produstsinfo.hide);
|
|
$("#flow").slideDown('slow');
|
|
console.log(productsinfo.hide);
|
|
productsinfo.hide = setTimeout(function () { $("#flow").slideUp('slow'); }, 6000);
|
|
$("#flow").mouseover(function () {
|
|
clearTimeout(productsinfo.hide);
|
|
console.log(productsinfo.hide);
|
|
$("#flow").stop(false, true);
|
|
});
|
|
$("#flow").mouseleave(function () {
|
|
$("#flow").slideUp('slow');
|
|
});
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
})
|
|
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.inquireinfo();
|
|
|
|
},
|
|
mounted() {
|
|
//var self = this;
|
|
//$('button[title =刷新]').click(function () {
|
|
// self.data = [];
|
|
// self.inquireinfo('refresh');
|
|
//})
|
|
},
|
|
methods: {
|
|
//查询表格数据
|
|
inquireinfo: function (estimate) {
|
|
var self = this;
|
|
self.requestApi({
|
|
modulename: "ProductsInfo",
|
|
funname: "ProductsInfo", //BatchRate
|
|
para: {},
|
|
success: (res) => {
|
|
if (estimate == 'refresh') {
|
|
console.log(res)
|
|
self.data = res;
|
|
} else {
|
|
console.log(res)
|
|
self.data = res;
|
|
console.log(self.data);
|
|
var $height = parseInt($(window).height());
|
|
var footer = $('#top').outerHeight();
|
|
console.log(footer);
|
|
$('#flow').css('top', eval(footer - 3) + 'px');
|
|
}
|
|
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
})
|
|
},
|
|
requestApi: function (config) {//modulename, funname, para, success, fail) {
|
|
fetch("/api/" + config.modulename + "/" + config.funname + "", {
|
|
method: "post",
|
|
headers: {
|
|
"Accept": "application/json, text/plain, */*",
|
|
"Content-Type": "application/json"
|
|
},
|
|
body: JSON.stringify(config.para)
|
|
}).then(
|
|
(res) => { return res.json() }
|
|
).then(
|
|
(res) => { config.success(res) }
|
|
).catch(
|
|
(ex) => { config.fail(ex) }
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
//添加产品
|
|
var addproduct = new Vue({
|
|
el: '#AddProduct',
|
|
data: {
|
|
selection: [{ name: '产品类型', passInOptions: [], selectedValue: '' }, { name: '产品系列', passInOptions: [], selectedValue: '' }, { name: '栅线类型', passInOptions: [], selectedValue: '' },
|
|
{ name: '晶体类型', passInOptions: [], selectedValue: '' }, { name: '组件规格', passInOptions: [], selectedValue: '' }, { name: '工艺流程', passInOptions: [], selectedValue: '' },
|
|
{ name: '电池片数', passInOptions: [], selectedValue: '' }, { name: '工艺类型', passInOptions: [], selectedValue: '' }, { name: '组件特征码', passInOptions: [], selectedValue: '' }],
|
|
passToOptions: { productcode: '', familycode: '', busbartype: '', crystype: '', modulespec: '', flow: '', cellqty: '', processtype: '', featurecode: '' },
|
|
index: [],
|
|
|
|
},
|
|
mounted() {
|
|
$('.select').val('');
|
|
$('.select').select2({
|
|
width: '100%',
|
|
placeholder: '',
|
|
allowClear: true
|
|
});
|
|
var self = this;
|
|
for (let attribute in self.passToOptions) {
|
|
self.index.push(attribute);
|
|
}
|
|
console.log(self.index);
|
|
for (let i = 0; i < $('.select').length; i++) {
|
|
$(".select:eq(" + i + ")").on('change', function (e) {
|
|
|
|
console.log(e);
|
|
console.log(e.target.value);
|
|
self.selection[i].selectedValue = e.target.value;
|
|
self.passToOptions[self.index[i]] = self.selection[i].selectedValue
|
|
//var value = e.target.value;
|
|
//var obj = {};
|
|
//if (value) {
|
|
// obj = $(".select:eq(" + i + ")").find(item => {
|
|
// return item.id === value;
|
|
// })
|
|
// console.log(obj);
|
|
// //self.selection[i].selectedValue = obj.text;
|
|
//}
|
|
});
|
|
}
|
|
productsinfo.requestApi({
|
|
modulename: "Orders",
|
|
funname: "QueryWorkshop",
|
|
para: {},
|
|
success: (res) => {
|
|
console.log(res);
|
|
//根据后台数据进行处理
|
|
console.log(self.selection);
|
|
var selections = self.selection;
|
|
console.log(selections);
|
|
for (let i = 0; i < selections.length; i++) {
|
|
selections[i].passInOptions = res.info;
|
|
}
|
|
console.log(selections[0].passInOptions);
|
|
//$('#RoleModal').modal({ backdrop: 'static', keyboard: false });
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
});
|
|
},
|
|
methods: {
|
|
addproduct() {
|
|
var self = this;
|
|
//新增产品每次都进行查询所有下拉的值
|
|
//productsinfo.requestApi({
|
|
// modulename: "Orders",
|
|
// funname: "QueryWorkshop",
|
|
// para: {},
|
|
// success: (res) => {
|
|
// console.log(res);
|
|
// //根据后台数据进行处理
|
|
// console.log(self.selection);
|
|
// var selections = self.selection;
|
|
// console.log(selections);
|
|
// for (let i = 0; i < selections.length; i++) {
|
|
// selections[i].passInOptions = res.info;
|
|
// }
|
|
// console.log(selections[0].passInOptions);
|
|
// $('#RoleModal').modal({ backdrop: 'static', keyboard: false });
|
|
// },
|
|
// fail: (ex) => {
|
|
// console.log(ex);
|
|
// }
|
|
//});
|
|
$('#RoleModal').modal({ backdrop: 'static', keyboard: false });
|
|
//for (let i = 0; i < $('.select').length; i++) {
|
|
// $(".select:eq(" + i + ")").on('change', function (e) {
|
|
// console.log(e);
|
|
// console.log(e.target.value);
|
|
// self.selection[i].selectedValue = e.target.value;
|
|
// self.passToOptions[self.index[i]] = self.selection[i].selectedValue
|
|
// });
|
|
//}
|
|
|
|
},
|
|
save: function () {
|
|
var self = this;
|
|
console.log($('.select2-selection__placeholder').text());
|
|
console.log(self.selection);
|
|
console.log(self.passToOptions);
|
|
console.log($(".select:eq(0)").find("option:selected").text())
|
|
//进行存储数据库和页面增加
|
|
console.log(self.selection[0].selectedValue);
|
|
var i = 0;
|
|
$(".select").each(function () {
|
|
//console.log($(".select"));
|
|
//console.log($(this).select2().find("option:selected").text());
|
|
|
|
if ($(this).select2().find("option:selected").text() == '') {
|
|
i++;
|
|
$(this).next().css('box-shadow', '2px 0px 4px red');
|
|
$(this).on("select2:select", function () {
|
|
if ($(this).select2().find("option:selected").text() == '') {
|
|
$(this).next().css('box-shadow', '')
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
console.log(i);
|
|
if (i == 0) {
|
|
$('.select').attr('disabled', 'disabled');
|
|
productsinfo.requestApi({
|
|
modulename: "Orders",
|
|
funname: "QueryWorkshop",
|
|
para: self.passToOptions,
|
|
success: (res) => {
|
|
console.log(res);
|
|
toastr.clear();
|
|
toastr.success('产品添加成功', '', { progressBar: true });
|
|
setTimeout(function () {
|
|
$('#cancel').click();
|
|
$('.select').removeAttr("disabled");
|
|
}, 6000)
|
|
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
});
|
|
}
|
|
|
|
},
|
|
cancel: function () {
|
|
var self = this;
|
|
$('.select').val('').trigger("change");
|
|
$('.select').removeAttr("disabled");
|
|
for (let i = 0; i < $('.select').length;i++) {
|
|
self.selection[i].selectedValue = '';
|
|
self.passToOptions[self.index[i]] = '';
|
|
}
|
|
$(".select").each(function () {
|
|
$(this).next().css('box-shadow', '')
|
|
})
|
|
console.log(self.selection);
|
|
console.log(self.passToOptions);
|
|
//for (let i = 0; i < self.selection.length; i++) {
|
|
// self.selection[i].selectedValue = '';
|
|
//}
|
|
//console.log(self.selection);
|
|
//console.log(self.passToOptions)
|
|
}
|
|
}
|
|
})
|
|
|
|
//增加产品类型、产品系列
|
|
var increase = new Vue({
|
|
el: '#increase',
|
|
data: {
|
|
producttype: '',
|
|
typeDetail: '',
|
|
productline: '',
|
|
lineDetail: ''
|
|
},
|
|
methods: {
|
|
addtype() {
|
|
if (this.producttype != '' && this.typeDetail != '') {
|
|
|
|
produstsinfo.requestApi({
|
|
modulename: "",
|
|
funname: "",
|
|
para: { producttype: this.producttype, typedetail: this.typeDetail },
|
|
success: (res) => {
|
|
console.log(res);
|
|
//直接获取addproduct.selection的值,就是所有的产品类型
|
|
console.log(addproduct.selection);
|
|
//进行判断是否已经存在相同的产品类型
|
|
//如果存在提示产品类型已经存在
|
|
//不存在再进行传递参数
|
|
|
|
toastr.success('产品类型添加成功', '', { progressBar: true });
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
});
|
|
} else {
|
|
//toastr.warning('请完善信息', '', { progressBar: true });
|
|
$(".color1:text").each(function () {
|
|
if ($.trim($(this).val()) == "") {
|
|
$(this).css('box-shadow', '2px 0px 4px red')
|
|
}
|
|
$(this).bind("input propertychange", function () {//监控输入框的变化
|
|
$(this).css('box-shadow', '')
|
|
});
|
|
});
|
|
|
|
return;
|
|
}
|
|
},
|
|
addline() {
|
|
if (this.producttype != '' && this.typeDetail != '') {
|
|
produstsinfo.requestApi({
|
|
modulename: "",
|
|
funname: "",
|
|
para: { productline: productline, linedetail: lineDetail },
|
|
success: (res) => {
|
|
console.log(res);
|
|
toastr.success('产品系列添加成功', '', { progressBar: true });
|
|
},
|
|
fail: (ex) => {
|
|
console.log(ex);
|
|
}
|
|
});
|
|
} else {
|
|
//toastr.warning('请完善信息', '', { progressBar: true });
|
|
$(".color2:text").each(function () {
|
|
if ($.trim($(this).val()) == "") {
|
|
$(this).css('box-shadow', '2px 0px 4px red')
|
|
}
|
|
$(this).bind("input propertychange", function () {//监控输入框的变化
|
|
$(this).css('box-shadow', '')
|
|
});
|
|
});
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
|
|
|