function getUrlVar(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 urldecode(pair[1])}
}
return(false);
}
function urldecode(encodedString)
{
var output = encodedString;
var binVal, thisString;
var myregexp = /(%[^%]{2})/;
function utf8to16(str)
{
var out, i, len, c;
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while(i < len)
{
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
out += str.charAt(i-1);
break;
case 12: case 13:
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}
while((match = myregexp.exec(output)) != null
&& match.length > 1
&& match[1] != '')
{
binVal = parseInt(match[1].substr(1),16);
thisString = String.fromCharCode(binVal);
output = output.replace(match[1], thisString);
}
//output = utf8to16(output);
output = output.replace(/\\+/g, " ");
output = utf8to16(output);
return output;
}
var url_id = getUrlVar('id');
var url_no = getUrlVar('no');
var url_type = getUrlVar('type');
var url_vendor_id = getUrlVar('vendor_id');
var url_vendor_txt = getUrlVar('vendor_txt');
var url_category_flow_id = getUrlVar('category_flow_id');
var url_category_flow_txt = getUrlVar('category_flow_txt');
var url_flow_type = getUrlVar('flow_type');
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
var ajax = function (url, data) {
return new Promise(function (resolve, reject) {
$.post(url, data, function (res) {
if(res.status == 1) {
resolve(res);
} else if (res.status == -1) {
window.location.href = '/CheckList/Public/login?redirect=' + window.location.href;
} else {
reject(res);
}
}, 'json');
});
};
Array.prototype.removeByValue = function(val) {
for(var i = 0; i < this.length; i++) {
if(this[i] == val) {
this.splice(i, 1);
break;
}
}
}
var mytab = function (config) {
this.cfg = {
id: '',
current_index: 0,
data: [
/*{
id : 0,
text : 'Search',
url_filter : pim_api.URL_FILTER,
url_content : pim_api.URL_ITEM_LIST
}*/
],
max_len: 100,
after_click: function () {}
};
this.cfg = $.extend(this.cfg, config);
if(typeof this.cfg != 'object' || typeof this.cfg.id == 'undefined') {
console.log('TAB ID NULL error');
return false;
}
this.init = function (index) {
this._event();
this.trigger(index);
},
this._event = function () {
var that = this;
/* $(that.cfg.id).on('click', 'li', function () {
console.log(1);
$(this).siblings().removeClass('active');
$(this).addClass('active');
that.cfg.current_index = $(this).index();
if(typeof that.cfg.after_click == 'function') {
that.cfg.after_click.call(this, that.cfg);
}
});*/
},
//append to last
this.add = function (obj) {
let index = -1;
$.each(this.cfg.data, function (k, v) {
if(v.id == obj.id) {
index = k;
}
});
if(index >= 0) {
this.trigger(index);
return;
}
this.cfg.data.splice(this.cfg.max_len, 0, obj);
//if(this.cfg.data.length > this.cfg.max_len) {
// this.cfg.data.splice(this.cfg.max_len, 1);
//}
this.trigger(this.cfg.data.length-1);
return this;
},
//insert before first
this.add_old = function (obj) {
let index = -1;
$.each(this.cfg.data, function (k, v) {
if(v.id == obj.id) {
index = k;
}
});
if(index >= 0) {
this.trigger(index);
return;
}
this.cfg.data.splice(1, 0, obj);
if(this.cfg.data.length > this.cfg.max_len) {
this.cfg.data.splice(this.cfg.max_len, 1);
}
this.trigger(1);
return this;
},
this.remove_all = function () {
this.cfg.data.splice(1);
this.set_current_index(0);
this.trigger(0);
},
this.remove_all_right = function () {
if((this.current_index()+1) <= this.get_length()) {
this.cfg.data.splice(this.current_index()+1);
}
},
this.remove = function (index) {
if(this.cfg.data.length < index) {
return;
}
this.cfg.data.splice(index, 1);
//this.set_current_index(0);
//this.trigger(0);
},
this.get_length = function () {
return this.cfg.data.length;
},
this.current_index = function () {
return this.cfg.current_index;
},
this.set_current_index = function (index) {
this.cfg.current_index = index;
},
this.get_current = function () {
return this.cfg.data[this.current_index()];
},
this.trigger = function (index) {
let that = this;
setTimeout(function () {
$(that.cfg.id).find('.tab_el:eq('+index+')').click();
}, 40);
},
this.set = function (index, obj) {
$.extend(this.cfg.data[index], obj);
},
this.remove_diff_type = function (type) {
let that = this;
$.each(that.cfg.data, function (k, v) {
if(v.type != 'system' && v.type != type) {
that.cfg.data.splice(k, 1);
}
});
}
};
Vue.component('com_menu_comment', {
props: ['myclass', 'menudata', 'autolist', 'item_completion_list','comment_list','p_category_flow_id'],
template: '#com_menu_comment',
methods: {
comment_read: function () {
this.$emit('comment_read');
}
}
});
Vue.component('com_menu', {
props: ['myclass', 'menudata', 'autolist', 'item_completion_list', 'is_mobile'],
template: '#com_menu',
methods: {
load_item_flow: function () {
this.$emit('load_item_flow');
}
}
});
Vue.component('com_menu_item', {
props: ['deep_index', 'child_count', 'category_flow_id'],
template: '#com_menu_item'
});
Vue.component('com_upload', {
props: ['upload_cfg', 'attr', 'attr_val', 'item_vendor_id', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass'],
template: '#com_upload',
data: function () {
return {
per_length: 0, //姣忎釜鏂囦欢鍗犵敤鐨勮繘搴︽潯闀垮害
show_progress: false,
show_loading: false,
progress: '1%',
progress_text: '0%',
result_msg: '',
bytesPerPiece : 1024 * 1024 * 50, //鍒嗘涓婁紶澶у皬涓�50M
totalPieces: 0, //鍒嗘鐗囨暟
pieceProgress: 0, //澶ф枃浠朵笂浼犺繘搴﹁繘搴�
}
},
beforeUpdate: function () {
let that = this;
},
updated: function () {
let that = this;
that.$nextTick(function () {
if(that.is_set ==0) {
new Swiper('#swiper' + that.item_vendor_id + '_' + that.attr.category_flow_id + '_' + that.attr.id + ' .swiper-img', {
slidesPerView: 'auto',
spaceBetween: 30,
navigation: {
nextEl: '.tab-next',
prevEl: '.tab-prev',
},
});
}
});
},
created: function () {
let that = this;
$('.photo-area').owlCarousel({
items: 1,
loop: false,
center: true,
margin: 20,
nav: true
});
that.$nextTick(function () {
if(that.is_set == 0) {
new Swiper('#swiper' + that.item_vendor_id + '_' + that.attr.category_flow_id + '_' + that.attr.id + ' .swiper-img', {
slidesPerView: 'auto',
spaceBetween: 30,
navigation: {
nextEl: '.tab-next',
prevEl: '.tab-prev',
},
});
}
});
},
methods: {
on_file_change: function (cfg, attr, item_vendor_id, event) {
let that = this;
let obj = event.target;
let pk = $(obj).closest('.browse-area').data('pk');
let files = obj.files;
if(files && FormData && XMLHttpRequest) {
that.show_progress = true;
that.ajaxUploadFile(files, 0, cfg, pk, attr, item_vendor_id);
}
},
ajaxUploadLarge: function (files, fKey, cfg, pk, attr, item_vendor_id) {
let that = this;
let blob = files[fKey];
var start = 0;
var end;
var index = 0;
var filesize = blob.size;
var filename = blob.name;
that.pieceProgress = 0;
that.md5File(blob, that.bytesPerPiece).then(function (md5) {
//璁$畻鏂囦欢鍒囩墖鎬绘暟
that.totalPieces = Math.ceil(filesize / that.bytesPerPiece);
let parr = []
let last = null
while(start < filesize) {
end = start + that.bytesPerPiece;
if(end > filesize) {
end = filesize;
}
var chunk = blob.slice(start,end);//鍒囧壊鏂囦欢
let formData = new FormData();
formData.append(cfg.key, chunk, filename);
formData.append("chunk", index);
formData.append("chunks", that.totalPieces);
formData.append("md5", md5);
if (attr.metadata.dir != undefined) {
formData.append('dir', attr.metadata.dir);
}
if (end == filesize) {
formData.append("size", filesize);
last = formData;
} else {
parr.push(that.pro(formData, cfg, fKey))
}
start = end;
index++;
}
Promise.all(parr).then(res => {
if (res.length == parr.length) {
//璇锋眰鏈€鍚庝竴涓枃浠�
that.pro(last, cfg, fKey).then(function (res) {
//瀹屾垚涓婁紶
that.getContent(res, cfg, pk, attr, item_vendor_id);
that.ajaxUploadFile(files, fKey+1, cfg, pk, attr, item_vendor_id);
})
}
})
})
},
md5File: function(file, chunkSize) {
let that = this;
return new Promise((resolve, reject) => {
let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;
let chunks = Math.ceil(file.size / chunkSize);
let currentChunk = 0;
let spark = new SparkMD5.ArrayBuffer();
let fileReader = new FileReader();
fileReader.onload = function(e) {
spark.append(e.target.result);
currentChunk++;
if (currentChunk < chunks) {
loadNext();
} else {
let md5 = spark.end();
resolve(md5);
}
};
fileReader.onerror = function(e) {
reject(e);
};
function loadNext() {
let start = currentChunk * chunkSize;
let end = start + chunkSize;
if (end > file.size){
end = file.size;
}
fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
}
loadNext();
});
},
pro: function(formData, cfg, fKey) {
let that = this;
let gateway = cfg.gateway;
return new Promise((resolve, reject) => {
$.ajax({
type: 'post',
url: gateway,
cache: false,
data: formData,
processData: false,
contentType: false,
success: function(res) {
that.setPrecent(++that.pieceProgress, fKey)
resolve(res)
},
fail: function() {
reject()
}
})
})
},
setPrecent: function(progress, fKey) {
let that = this;
var percentComplete = Math.round(that.per_length*fKey + (progress / that.totalPieces) * that.per_length );
var width = percentComplete.toString() + '%';
that.progress = width;
that.progress_text = width;
if(percentComplete == 100) {
that.show_loading = true;
that.show_progress = false;
}
},
ajaxUploadFile: function (files, fKey, cfg, pk, attr, item_vendor_id) {
let gateway = cfg.gateway;
let that = this;
if(!files[fKey]) {
that.show_progress = false;
that.progress = '1%';
that.progress_text = '0%';
return;
}
that.result_msg = '';
that.per_length = 100/files.length;
if (files[fKey].size >= 1024 * 1024 * 1024) {
//瓒呰繃1G鍒嗙墖涓婁紶
that.ajaxUploadLarge(files, fKey, cfg, pk, attr, item_vendor_id)
} else {
var fd = new FormData();
fd.append(cfg.key, files[fKey]);
if (attr.metadata.dir != undefined) {
fd.append('dir', attr.metadata.dir);
}
/*for(var k in cfg.postData) {
fd.append(k, cfg.postData[k]);
}*/
var xhr = new XMLHttpRequest();
try {
xhr.upload.addEventListener('progress', function (evt) {
if(evt.lengthComputable) {
var percentComplete = Math.round(that.per_length*fKey+evt.loaded * that.per_length / evt.total);
var width = percentComplete.toString() + '%';
that.progress = width;
that.progress_text = width;
if(percentComplete == 100) {
that.show_loading = true;
that.show_progress = false;
}
} else {
//loading.show();
//progress_show.hide();
}
}, false);
xhr.addEventListener('load', function(evt) {
if(typeof result == 'object' && result[0]) {
that.result_msg = '';
}
that.getContent(evt.target.responseText, cfg, pk, attr, item_vendor_id);
that.ajaxUploadFile(files, fKey+1, cfg, pk, attr, item_vendor_id);
}, false);
xhr.addEventListener("error", function(evt) {
that.result_msg = 'There was an error attempting to upload the file.';
}, false);
xhr.addEventListener("abort", function(evt) {
that.result_msg = 'The upload has been canceled by the user or the browser dropped the connection.';
}, false);
xhr.open("POST", gateway);
xhr.send(fd);
} catch (e) {
console.log('Upload Exception');
}
}
},
getContent: function (responseText, cfg, pk, attr, item_vendor_id) {
let that = this;
if(responseText) {
that.show_loading = false;
try {
eval('var data=('+responseText+');');
if(data.status == 1) {
that.$emit('add_new_file', pk, data.data[0], attr, item_vendor_id);
}
} catch(e) {
that.result_msg = 'Upload Error';
}
}
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
if(!window.confirm('Are you sure to delete?')) {
return false;
}
let obj = event.target;
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
rotate_img: function (path) {
this.$emit('rotate_img', path);
},
gallery: function (attr_val, index) {
this.$emit('gallery', attr_val, index);
/*let that = this;
let e = $(event.target).closest('a');
e = e[0] ? e : $(event.target).closest('div');
let qstr = '';
qstr += 'file_location='+e.data('file_location')+'&attr_id='+e.data('attr_id')+'&category_flow_id='+e.data('category_flow_id');
let current = app.item_tab_obj.get_current();
qstr += '&vendor_id='+app.vendor_selected;
qstr += '&subject='+JSON.stringify(current);
window.open(pim_config.host+'/Pim/Index/gallery?'+qstr);
return false;*/
}
}
});
Vue.component('com_field', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field',
methods: {
gallery: function (attr_val, index) {
this.$emit('gallery', attr_val, index);
},
external_call: function () {
this.$emit('external_call');
},
pdf_extract: function () {
this.$emit('pdf_extract');
},
item_click: function () {
this.$emit('item_click');
},
item_link_click: function () {
this.$emit('item_link_click');
}
}
});
Vue.component('com_field_edit', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit',
methods: {
add_new_file: function (pk, data, attr, item_vendor_id) {
this.$emit('add_new_file', pk, data, attr, item_vendor_id);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
rotate_img: function (path) {
this.$emit('rotate_img', path);
},
pick_date: function () {
this.$emit('pick_date');
},
pick_date_time: function () {
this.$emit('pick_date_time');
},
auto_complete: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete', item_vendor_id, category_flow_id, attr_id);
},
auto_complete_dynamic_item_no: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_item_no', item_vendor_id, category_flow_id, attr_id);
},
auto_complete_dynamic_multi: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_multi', item_vendor_id, category_flow_id, attr_id);
},
delete_dynamic_multiselect: function () {
this.$emit('delete_dynamic_multiselect');
},
add_set_element: function () {
this.$emit('add_set_element');
},
del_set_element: function () {
this.$emit('del_set_element');
},
external_call: function () {
this.$emit('external_call');
},
pdf_extract: function () {
this.$emit('pdf_extract');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_text', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_text',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_text', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_text',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
item_link_click: function () {
this.$emit('item_link_click');
}
}
});
Vue.component('com_field_edit_textarea', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_textarea',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_textarea', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_textarea'
});
Vue.component('com_field_edit_number', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_number',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_number', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_number'
});
Vue.component('com_field_edit_unit', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_unit',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_date', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_date',
methods: {
pick_date: function () {
this.$emit('pick_date');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_date', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_date'
});
Vue.component('com_field_edit_time', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_time',
methods: {
pick_date_time: function () {
this.$emit('pick_date_time');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_time', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_time'
});
Vue.component('com_field_edit_select', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_select',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_select', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_select'
});
Vue.component('com_field_edit_multiselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_multiselect',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_multiselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_multiselect'
});
Vue.component('com_field_edit_dynamicselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_dynamicselect',
methods: {
auto_complete: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete', item_vendor_id, category_flow_id, attr_id);
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_dynamicselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_dynamicselect',
methods: {
item_link_click: function () {
this.$emit('item_link_click');
}
}
});
Vue.component('com_field_edit_dynamicmultiselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_dynamicmultiselect',
methods: {
auto_complete_dynamic_multi: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_multi', item_vendor_id, category_flow_id, attr_id);
},
delete_dynamic_multiselect: function () {
this.$emit('delete_dynamic_multiselect');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_dynamicmultiselect', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_dynamicmultiselect',
methods: {
item_link_click: function () {
this.$emit('item_link_click');
}
}
});
Vue.component('com_field_edit_image', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_image',
methods: {
add_new_file: function (pk, data, attr, item_vendor_id) {
this.$emit('add_new_file', pk, data, attr, item_vendor_id);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
rotate_img: function (path) {
this.$emit('rotate_img', path);
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_image', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_image',
methods: {
gallery: function (attr_val, index) {
this.$emit('gallery',attr_val, index);
}
}
});
Vue.component('com_field_edit_video', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_video',
methods: {
add_new_file: function (pk, data, attr, item_vendor_id) {
this.$emit('add_new_file', pk, data, attr, item_vendor_id);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_video', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_video'
});
Vue.component('com_field_edit_file', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_file',
methods: {
add_new_file: function (pk, data, attr, item_vendor_id) {
this.$emit('add_new_file', pk, data, attr, item_vendor_id);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_file', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_file'
});
Vue.component('com_field_edit_calculatedvalue', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_calculatedvalue',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_referencevalue', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_referencevalue',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_checkbox', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_checkbox',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_checkbox', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_checkbox'
});
Vue.component('com_field_edit_yesno', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_yesno',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_yesno', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_yesno'
});
Vue.component('com_field_edit_table', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_table',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_qie', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_qie',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_set', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_set',
methods: {
gallery: function (attr_val, index) {
this.$emit('gallery', attr_val, index);
},
external_call: function () {
this.$emit('external_call');
},
pdf_extract: function () {
this.$emit('pdf_extract');
},
item_click: function () {
this.$emit('item_click');
},
item_link_click: function () {
this.$emit('item_link_click');
},
}
});
Vue.component('com_field_edit_set', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'upload_cfg', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_set',
methods: {
add_new_file: function (pk, data, attr, item_vendor_id) {
this.$emit('add_new_file', pk, data, attr, item_vendor_id);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
this.$emit('delete_a_file', pk, index, attr, item_vendor_id);
},
rotate_img: function (path) {
this.$emit('rotate_img', path);
},
pick_date: function () {
this.$emit('pick_date');
},
pick_date_time: function () {
this.$emit('pick_date_time');
},
auto_complete: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete', item_vendor_id, category_flow_id, attr_id);
},
auto_complete_dynamic_multi: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_multi', item_vendor_id, category_flow_id, attr_id);
},
auto_complete_dynamic_item_no: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_item_no', item_vendor_id, category_flow_id, attr_id);
},
delete_dynamic_multiselect: function () {
this.$emit('delete_dynamic_multiselect');
},
add_set_element: function () {
this.$emit('add_set_element');
},
del_set_element: function () {
this.$emit('del_set_element');
},
external_call: function () {
this.$emit('external_call');
},
pdf_extract: function () {
this.$emit('pdf_extract');
},
item_click: function () {
this.$emit('item_click');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_external_call', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_external_call',
methods: {
external_call: function () {
this.$emit('external_call');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_pdf_extract', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_pdf_extract',
methods: {
pdf_extract: function () {
this.$emit('pdf_extract');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_edit_relate', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_relate',
methods: {
auto_complete_dynamic_item_no: function (item_vendor_id, category_flow_id, attr_id) {
this.$emit('auto_complete_dynamic_item_no', item_vendor_id, category_flow_id, attr_id);
},
delete_dynamic_multiselect: function () {
this.$emit('delete_dynamic_multiselect');
},
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_relate', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_relate',
methods: {
item_click: function () {
this.$emit('item_click');
}
}
});
Vue.component('com_field_edit_rich_text', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview', 'confirm_correlation_role'],
template: '#com_field_edit_rich_text',
methods: {
item_correlation_confirm: function () {
this.$emit('item_correlation_confirm');
},
auto_save_attr_value: function (item_vendor_id, attr) {
this.$emit('auto_save_attr_value', item_vendor_id, attr);
}
}
});
Vue.component('com_field_rich_text', {
props: ['attr', 'item_value', 'item_vendor_id', 'item_correlation', 'is_set', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_rich_text'
});
Vue.component('com_field_reference_value', {
props: ['attr', 'item_vendor_id', 'is_set', 'flag_flow_detail_op_style', 'is_mobile', 'myclass', 'is_preview'],
template: '#com_field_reference_value',
});
Vue.component('com_image_tag', {
props: ['src', 'myclass', 'width'],
data: function () {
return {
is_tiff: false,
canvas_img : '',
cache :{}
}
},
template: '#com_image_tag',
watch : {
src : {
handler(newVal, oldVal){
let that = this;
var tiff_reg = /(\.tiff|\.tif)$/;
if (tiff_reg.test(newVal)) {
that.is_tiff = true;
that.canvas_img = newVal.replace(tiff_reg, '.jpg');
} else {
that.is_tiff = false;
that.canvas_img = '';
}
},
deep:true //true 娣卞害鐩戝惉
}
},
mounted: function () {
let that = this;
var tiff_reg = /(\.tiff|\.tif)$/;
if (tiff_reg.test(that.src)) {
that.is_tiff = true;
that.canvas_img = that.src.replace(tiff_reg, '.jpg');
} else {
that.is_tiff = false;
that.canvas_img = '';
}
},
methods: {
set_cache : function(key, value, expire = -1) {
let timestamp = Date.parse(new Date()) / 1000;
if (expire == -1) {
timestamp = -1;
} else {
timestamp = timestamp + expire;
}
let res = {
expire : timestamp,
data : value
}
window.localStorage.setItem(key, JSON.stringify(res));
},
get_cache : function(key) {
let that = this;
let res = window.localStorage.getItem(key);
let timestamp = Date.parse(new Date()) / 1000;
if (res) {
res = JSON.parse(res);
if (res == undefined || res.expire == undefined || (res.expire < timestamp && res.expire > 0)) {
that.clear_cache(key)
return undefined;
}
return res.data;
}
return undefined;
},
clear_cache: function(key = '') {
if (key != '') {
window.localStorage.removeItem(key);
} else {
window.localStorage.clear();
}
},
}
});
var baseMixin = {
data: {
multi_item_no : [], //閲嶅item no
flag_show_multi_item_no : false, //閫夋嫨閲嶅item no
multi_group_no : [], //閲嶅item no
flag_show_multi_group_no : false, //閫夋嫨閲嶅group no
flag_shadow_div : false,
flag_close_btn : false,
flag_photo_shadow_div : false,
},
created: function () {
},
methods: {
item_click: function (target_id = 0) {
//鎵撳紑鏂伴〉闈�
let that = this;
if (target_id > 0) {
let url = pim_config.detail_api + '?item_id=' + target_id;
window.open(url);
} else {
let e = $(event.target).closest('[data-id]');
let url = pim_config.detail_api + '?item_id=' + $(e).attr('data-id').split('|')[1];
window.open(url);
}
},
item_link_click: function () {
let that = this;
let e = $(event.target).closest('[data-id]');
if ($(e).attr('data-type') == 2) {
that.group_link_click();
return;
}
ajax(pim_api.URL_CHECK_ITEM, {item_no : $(e).attr('data-text'), attr_id : $(e).attr('data-attr_id')}).then(function (res) {
if (res.data.length == 1) {
//鍙湁涓€涓�
that.item_click(res.data[0].id);
} else {
//闇€瑕侀€夋嫨
that.multi_item_no = res.data;
that.flag_show_multi_item_no = true;
that.flag_shadow_div = true;
that.flag_close_btn = true;
// $('#ask-source').setPosition();
that.$nextTick(function () {
selectBox('#ask-source .select-box', -1);
$('#ask-source .select-box dt').html('Please Select');
$('#ask-source .select-box dt').attr('data-value', '');
})
}
}, function (res) {
layer.msg(res.info);
})
},
select_multi_item: function() {
let that = this;
let item_id = $('#ask-source .select-box dt').attr('data-value');
if (item_id != undefined && item_id != '') {
that.item_click(item_id);
}
},
group_click: function (group_no, item_id, group_id) {
//鎵撳紑鏂伴〉闈�
let that = this;
let url = pim_config.group_api + '?group_no=' + group_no + '&item_id=' + item_id + '&group_id=' + group_id;
window.open(url);
},
group_link_click: function () {
let that = this;
let e = $(event.target).closest('[data-id]');
ajax(pim_api.URL_CHECK_GROUP, {group_no : $(e).attr('data-text')}).then(function (res) {
if (res.data.length == 1) {
//鍙湁涓€涓�
that.group_click(res.data[0].group_no, res.data[0].item_id, res.data[0].group_id);
} else {
//闇€瑕侀€夋嫨
that.multi_group_no = res.data;
that.flag_show_multi_group_no = true;
that.flag_shadow_div = true;
that.flag_close_btn = true;
// $('#ask-group').setPosition();
that.$nextTick(function () {
selectBox('#ask-group .select-box', -1);
$('#ask-group .select-box dt').html('Please Select');
$('#ask-group .select-box dt').attr('data-value', '');
})
}
}, function (res) {
layer.msg(res.info);
})
},
select_multi_group: function() {
let that = this;
let group_data = $('#ask-group .select-box dt').attr('data-value');
group_data = group_data.split(';');
that.group_click(group_data[0], group_data[1], group_data[2]);
},
add_user_log: function (page, type, data_id = '', params = []) {
let that = this;
let post_data = {
page: page,
type: type,
data_id: data_id,
params: params,
};
ajax(pim_api.URL_USER_LOG, post_data);
},
gallery: function (photos, index) {
let that = this;
that.gallery_data = photos;
that.gallery_obj_index = index;
that.gallery_current_src = that.gallery_data[that.gallery_obj_index].web_path;
if(that.is_mobile) {
that.flag_show_gallery = true;
initPhotoSwipeFromDOM('.gallery');
} else {
that.flag_show_gallery = true;
that.flag_photo_shadow_div = true;
// $("#photo-view").setPosition();
//$(".shade-div").show();
//$(".close-btn").show();
that.$nextTick(function () {
setTimeout(function () {
mouseScroll($('#scrolllayout'), 10);
}, 100);
});
}
return false;
},
close_gallery: function () {
let that = this;
that.flag_show_gallery = false;
that.flag_photo_shadow_div = false;
},//璁剧疆cookie
set_cookie: function(key, value, exdays = 30) {
var exdate = new Date(); //鑾峰彇鏃堕棿
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //淇濆瓨鐨勫ぉ鏁�
//瀛楃涓叉嫾鎺ookie
window.document.cookie = key + "=" + value + ";path=/;expires=" + exdate.toGMTString();
},
//璇诲彇cookie
get_cookie: function(key) {
let that = this;
if (document.cookie.length > 0) {
var arr = document.cookie.split('; '); //杩欓噷鏄剧ず鐨勬牸寮忛渶瑕佸垏鍓蹭竴涓嬭嚜宸卞彲杈撳嚭鐪嬩笅
for (var i = 0; i < arr.length; i++) {
var arr2 = arr[i].split('='); //鍐嶆鍒囧壊
//鍒ゆ柇鏌ユ壘鐩稿搴旂殑鍊�
if (arr2[0] == key) {
return arr2[1];
}
}
}
return null;
},
//娓呴櫎cookie
clear_cookie: function() {
this.set_cookie("", "", -1);
},
set_cache : function(key, value, expire = -1) {
let timestamp = Date.parse(new Date()) / 1000;
if (expire == -1) {
timestamp = -1;
} else {
timestamp = timestamp + expire;
}
let res = {
expire : timestamp,
data : value
}
window.localStorage.setItem(key, JSON.stringify(res));
},
get_cache : function(key) {
let that = this;
let res = window.localStorage.getItem(key);
let timestamp = Date.parse(new Date()) / 1000;
if (res) {
res = JSON.parse(res);
if (res == undefined || res.expire == undefined || (res.expire < timestamp && res.expire > 0)) {
that.clear_cache(key)
return undefined;
}
return res.data;
}
return undefined;
},
clear_cache: function(key = '') {
if (key != '') {
window.localStorage.removeItem(key);
} else {
window.localStorage.clear();
}
},
jump_index: function (category_id) {
let that = this;
let post_data = {
top_category_id : category_id,
category_ids : [],
}
ajax(pim_api.URL_USER_CATEGORY_SET, post_data).then(function (res) {
window.location.href = pim_config.index;
});
},
download_file: function (web_path) {
let that = this;
window.open(web_path, '_blank');
},
jump_flow: function(flow_id) {
scrollTo('.panel-r.slimscroll', '.card-' + flow_id);
},
auto_list: function () {
let that = this;
let p1 = new Promise(function (resolve, reject) {
let cache = that.get_cache('pim_auto_list');
if (cache != undefined) {
$.extend(that.autolist, cache);
} else {
ajax(pim_api.URL_AUTOLIST, {}).then(function (res) {
$.extend(that.autolist, res.data);
that.sub_category_list = {};
$.each(that.autolist.sub_category, function(k, v) {
if (v.list != undefined) {
$.each(v.list, function(id, cate) {
if (cate != undefined && id != undefined) {
Vue.set(that.sub_category_list, id, cate);
}
});
}
})
that.set_cache('pim_auto_list', res.data, 600);
}, function (res) {
});
}
});
let p2 = new Promise(function (resolve, reject) {
ajax(pim_api.URL_AUTOLIST_DYNAMIC, {}).then(function (res) {
$.extend(that.autolist, res.data);
}, function() {});
});
},
init_multi_select: function () {
let that = this;
$('.s1').ySelect(
{
placeholder: 'Please Select',
searchText: 'Search',
showSearch: true,
numDisplayed: 100,
isCheck:false
}
);
$('.s1').change(function () {
let val = $(this).ySelectedValuesArr();
let item_vendor_id = $(this).attr('item_vendor_id');
let category_flow_id = $(this).attr('category_flow_id');
let attr_id = $(this).attr('attr_id');
that.$set(that.item_value[item_vendor_id][category_flow_id][attr_id] , 'val', val);
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
})
refresh_event();
$('.select-box li').click(function () {
let value = $(this).attr('value');
let item_vendor_id = $(this).attr('item_vendor_id');
let category_flow_id = $(this).attr('category_flow_id');
let attr_id = $(this).attr('attr_id');
that.$set(that.item_value[item_vendor_id][category_flow_id][attr_id] , 'val', value);
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
})
},
multiple_select_click: function () {
let that = this;
let e = $(event.target);
let val = e.closest('.s1').ySelectedValues(",");
},
add_new_file: function (pk, data, attr, item_vendor_id) {
let that = this;
if(typeof that.item_value[item_vendor_id][attr.category_flow_id][pk].val == 'undefined' || that.item_value[item_vendor_id][attr.category_flow_id][pk].val == '') {
that.$set(that.item_value[item_vendor_id][attr.category_flow_id][pk], 'val', []);
}
data.icon = get_icon(data.extension);
data.size_formated = getfilesize(data.size);
if(attr.metadata.multiple && attr.metadata.multiple == 1) {
let tmp = that.item_value[item_vendor_id][attr.category_flow_id][pk].val;
tmp.push(data);
that.$set(that.item_value[item_vendor_id][attr.category_flow_id][pk], 'val', tmp);
} else {
let tmp = [data];
that.$set(that.item_value[item_vendor_id][attr.category_flow_id][pk], 'val', tmp);
}
that.auto_save_attr_value(item_vendor_id, attr);
},
external_call: function () {
let that = this;
let e = $(event.target).closest('a');
let url = $.trim(e.data('url'));
let item_vendor_id = $.trim(e.data('item_vendor_id'));
var patrn=/{{([a-zA-Z0-9_-]*)}}/;
while (url.match(patrn)) {
let str = url.match(patrn)[0];
let key = url.match(patrn)[1];
let value = '';
if (key == 'item_id') {
value = that.item_flow.id;
} else if (key == 'item_no') {
value = that.item_flow.no;
} else if (key == 'item_office') {
//sample妯℃澘鐨勫畾鍒跺瓧娈�
value = that.item_flow.office;
} else if (key == 'vendor') {
value = 0;
$.each(that.vendor_list, function(index, vendor_item) {
if (vendor_item.id == item_vendor_id) {
value = vendor_item.vendor_id;
}
});
value = that.autolist.vendor[value].vendor_no;
} else if (key == 'show_market') {
value = '';
$.each(that.vendor_list, function(index, vendor_item) {
if (vendor_item.id == item_vendor_id) {
value = vendor_item.show_market_id;
}
});
value = that.autolist.show_market[value].label;
} else if (key == 'office') {
value = '';
$.each(that.vendor_list, function(index, vendor_item) {
if (vendor_item.id == item_vendor_id) {
value = vendor_item.office_id;
}
});
value = that.autolist.office[value].label;
} else {
let arr = key.split('-');
category_flow_id = arr[0];
attr_id = arr[1];
if (that.item_value[item_vendor_id] && that.item_value[item_vendor_id][category_flow_id] && that.item_value[item_vendor_id][category_flow_id][attr_id]) {
value = that.item_value[item_vendor_id][category_flow_id][attr_id].val;
}
}
url = url.replace(str, value);
}
window.open(url);
return;
},
external_call_val: function (url, item_vendor_id, cur_category_flow_id, cur_attr_id) {
let that = this;
// let e = $(event.target).closest('span');
// let url = $.trim(e.data('url'));
// let item_vendor_id = $.trim(e.data('item_vendor_id'));
// let cur_category_flow_id = $.trim(e.data('category_flow_id'));
// let cur_attr_id = $.trim(e.data('attr_id'));
var patrn=/{{([a-zA-Z0-9_-]*)}}/;
while (url.match(patrn)) {
let str = url.match(patrn)[0];
let key = url.match(patrn)[1];
let value = '';
if (key == 'item_no') {
value = that.item_flow.no;
} else if (key == 'vendor') {
value = 0;
$.each(that.vendor_list, function(index, vendor_item) {
if (vendor_item.id == item_vendor_id) {
value = vendor_item.vendor_id;
}
});
value = that.autolist.vendor[value].vendor_no;
} else {
let arr = key.split('-');
category_flow_id = arr[0];
attr_id = arr[1];
if (that.item_value[item_vendor_id] && that.item_value[item_vendor_id][category_flow_id] && that.item_value[item_vendor_id][category_flow_id][attr_id]) {
value = that.item_value[item_vendor_id][category_flow_id][attr_id].val;
}
}
url = url.replace(str, value);
}
let result = '';
$.ajaxSettings.async = false;
$.get(url, function (res) {
result = res.data;
}, 'json');
$.ajaxSettings.async = true;
return result;
},
pdf_extract: function () {
let that = this;
let e = $(event.target).closest('[data-url]');
let subject = that.main_tab[that.main_tab_obj.current_index()].id;
let url = $.trim(e.data('url'));
url += (/\?/.test(url) ? '&' : '?')+'subject='+subject+'&vendor_id='+that.vendor_selected;
url += '&call_from=pim';
window.open(url);
},
delete_a_file: function (pk, index, attr, item_vendor_id) {
let that = this;
that.item_value[item_vendor_id][attr.category_flow_id][pk].val.splice(index, 1);
that.auto_save_attr_value(item_vendor_id, attr);
// that.$set(that.item_value[item_vendor_id][attr.category_flow_id][pk].val[index], 'deleted', 1);
},
rotate_img: function (path) {
console.log(path);
},
add_set_element: function () {
let that = this;
let e = $(event.target).closest('.btn-add');
let item_vendor_id = e.attr('data-item_vendor_id');
let category_flow_id = e.attr('data-category_flow_id');
let attr_id = e.attr('data-attr_id');
$.each(that.flow_data, function (k, v) {
$.each(v.groups, function (gk, gv) {
$.each(gv.attrs, function (ak, av) {
if(av.id == e.attr('data-attr_id') && av.category_flow_id == e.attr('data-category_flow_id')) {
let tmp = JSON.parse(JSON.stringify(that.flow_data[k].groups[gk].attrs[ak].child_attr));
let index = that.item_value[item_vendor_id][category_flow_id][attr_id].set.length;
let new_set_line = {};
$.each(tmp, function (tk, tv) {
let attr = JSON.parse(JSON.stringify(tv));
attr.category_flow_id = av.category_flow_id;
let new_id = attr_id+'|'+index+'|'+attr.id;
let el_val = '';
if($.inArray(attr.type_id, ['8', '10', '16'])!=-1) { el_val = []; }
that.item_value[item_vendor_id][category_flow_id][new_id] = {
val: el_val,
type_id: attr.type_id,
attr: attr
};
new_set_line[attr.id] = that.item_value[item_vendor_id][category_flow_id][new_id];
attr.id = new_id
});
that.item_value[item_vendor_id][category_flow_id][attr_id].set.push(new_set_line);
that.$nextTick(function () {
that.init_multi_select();
refresh_event();
});
}
});
});
});
},
del_set_element: function () {
let that = this;
let e = $(event.target).closest('.btn-delete');
let index = $(event.target).closest('tr').data('index');
let item_vendor_id = e.attr('data-item_vendor_id');
let category_flow_id = e.attr('data-category_flow_id');
let attr_id = e.attr('data-attr_id');
let set_line = that.item_value[item_vendor_id][category_flow_id][attr_id].set[index];
let length = that.item_value[item_vendor_id][category_flow_id][attr_id].set.length;
//閲嶆柊澶勭悊 attr_id | index | child_attr_id 鐨勫唴瀹癸紝浠ュ強 set 閲宨ndex涔嬪悗鐨勫唴瀹�
for(var i = index;i < length -1; i++) {
//褰撳墠鍏冪礌鐢变笅涓€涓厓绱犱唬鏇�
$.each(that.item_value[item_vendor_id][category_flow_id][attr_id].set[i], function (set_index, set_value) {
let id_arr = set_value.attr.id.split('|');
let next_id = id_arr[0]+'|'+(i + 1)+'|'+id_arr[2];
that.item_value[item_vendor_id][category_flow_id][set_value.attr.id] = JSON.parse(JSON.stringify(that.item_value[item_vendor_id][category_flow_id][next_id]))
that.item_value[item_vendor_id][category_flow_id][set_value.attr.id].attr.id = set_value.attr.id
set_value = JSON.parse(JSON.stringify(that.item_value[item_vendor_id][category_flow_id][attr_id].set[i+1][set_index]));
set_value.attr.id = id_arr[0]+'|'+i+'|'+id_arr[2];
})
}
//鍓嶉潰鐨勫厓绱犳洿鏂颁负涓嬩竴涓紝鍒犳帀鏈€鍚庝竴涓厓绱�
let set_attr_id = '';
$.each(that.item_value[item_vendor_id][category_flow_id][attr_id].set[length - 1], function (set_index, set_value) {
set_attr_id = set_value.attr.id;
delete that.item_value[item_vendor_id][category_flow_id][set_value.attr.id]
})
that.item_value[item_vendor_id][category_flow_id][attr_id].set.splice(length - 1, 1);
that.auto_save_attr_value(item_vendor_id, {id:set_attr_id, category_flow_id:category_flow_id});
return;
},
pick_date: function (item_vendor_id) {
let that = this;
let e = event.target;
WdatePicker({
el: e,
onpicked: function () {
let attr_id = $(this).attr('data-attr_id');
let category_flow_id = $(this).attr('data-category_flow_id');
let item_vendor_id = $(this).attr('data-item_vendor_id');
that.$set(that.item_value[item_vendor_id][category_flow_id][attr_id], 'val', $(this).val());
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
}
});
},
pick_date_time: function () {
let that = this;
let e = event.target;
WdatePicker({
el: e,
dateFmt: 'yyyy-MM-dd HH:mm:00',
onpicked: function () {
let attr_id = $(this).attr('data-attr_id');
let category_flow_id = $(this).attr('data-category_flow_id');
let item_vendor_id = $(this).attr('data-item_vendor_id');
that.$set(that.item_value[item_vendor_id][category_flow_id][attr_id], 'val', $(this).val());
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
}
});
},
item_correlation_confirm: function() {
let that = this;
let e = $(event.target);
let post = {
item_id: that.item_flow.id,
item_correlation_attribute_id : that.item_correlation_attribute_tree[e.data('item_vendor_id')][e.data('category_flow_id')][e.data('attr_id')].id
};
ajax(pim_api.URL_CONFIRM_ITEM_CORRELATION_ATTRIBUTE, post).then(function (res) {
that.item_correlation_attribute_tree[e.data('item_vendor_id')][e.data('category_flow_id')][e.data('attr_id')].status = 1;
layer.close();
}, function (res) {
layer.msg(res.info);
layer.close();
});
},
auto_group_no: function () {
let that = this;
let e = $(event.target);
jq17(e).autocomplete({
source: pim_api.URL_AUTO_COMPLETE+'?type=group&style=0',
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
that.sample_or_item_group = ui.item.label;
}
});
},
auto_no: function () {
let that = this;
let e = $(event.target);
jq17(e).autocomplete({
source: pim_api.URL_AUTO_COMPLETE+'?type=item&style=0',
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
that.sample_or_item = ui.item.label;
}
});
},
auto_complete_type: function (type) {
let that = this;
let e = $(event.target);
e.devbridgeAutocomplete({
serviceUrl: pim_api.URL_AUTO_COMPLETE+'?type='+type+'&style=0',
minChars: 1,
delimiter:"",
triggerSelectOnValidInput: false,
showNoSuggestionNotice: false,
paramName: 'term',
dataType: 'json',
onSelect: function(suggestion) {
e.next("input").val(suggestion.data.id)
},
beforeRender(container, suggestions) {
let els = container[0].querySelectorAll('.autocomplete-suggestion');
suggestions.forEach((item, index) => {
if (item.data.class) {
els[index].classList.add(item.data.class);
}
});
},
transformResult:function(response) {
return {
suggestions: $.map(response, function (dataItem) {
if (dataItem.label) {
return {value: dataItem.label, data: dataItem};
}
})
};
}
});
},
auto_vendor: function (item_id) {
let that = this;
let e = $(event.target);
jq17(e).autocomplete({
source: pim_api.URL_AUTO_COMPLETE+'?type=vendor&style=0',
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
let post_data = {
vendor_no: ui.item.vendor_no,
item_id: item_id
};
let layer_index = layer.load(1,{shade :0.3});
ajax(pim_api.URL_ADD_ITEM_VENDOR, post_data).then(function (res) {
layer.msg(res.info);
layer.close(layer_index);
//瑙﹀彂涓€娆$偣鍑�
e.val('');
e.closest('.search-area').hide();
that.item_detail_show(0); //鏄剧ずitem璇︽儏
}).catch(function (res) {
layer.msg(res.info);
layer.close(layer_index);
});
}
});
},
auto_complete: function (item_vendor_id, category_flow_id, attr_id) {
let that = this;
let e = $(event.target);
let url = e.data('url');
if(!/^https/.test(url)) {
url = pim_config.api+$.trim(url);
}
jq17(e).autocomplete({
source: url,
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
that.item_value[item_vendor_id][category_flow_id][attr_id].val = ui.item.label;
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
}
});
},
auto_complete_related_item_no: function () {
let that = this;
let e = $(event.target);
jq17(e).autocomplete({
source: pim_api.URL_AUTO_COMPLETE + '?type=item&style=0',
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
//related item check
item_id = ui.item.label;
let post = {
item_bid :ui.item.label,
item_aid: that.item_flow.id
};
ajax(pim_api.URL_ADD_CORRELATION_ITEM, post).then(function (res) {
if (res.status == 1) {
$('.search-related-item').val('');
that.show_data_correlation();
}
}).catch(function (res) {
layer.msg(res.info);
});
return false;
}
});
},
auto_complete_dynamic_item_no: function (item_vendor_id, category_flow_id, attr_id) {
let that = this;
let e = $(event.target);
jq17(e).autocomplete({
source: pim_api.URL_AUTO_COMPLETE + '?type=item&style=0',
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
//related item check
let post = {
item_bid :ui.item.label,
item_aid: that.item_flow.id
};
ajax(pim_api.URL_CHECK_RELATED_ITEM, post).then(function (res) {
if (res.status == 1) {
that.item_value[item_vendor_id][category_flow_id][attr_id].val.push(ui.item.label);
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
setTimeout(function () {
e.val('');
}, 5);
}
}).catch(function (res) {
layer.msg(res.info);
});
return false;
}
});
},
auto_complete_dynamic_multi: function (item_vendor_id, category_flow_id, attr_id) {
let that = this;
let e = $(event.target);
let url = e.data('url');
if (url == undefined || url == '') {
url = pim_api.URL_AUTO_COMPLETE + '?type=item&style=0';
}
if(!/^https/.test(url)) {
url = pim_config.api+url;
}
jq17(e).autocomplete({
source: url,
minLength: 1,
open: function(){
$('.ui-autocomplete').css('z-index', 10001)
},
select: function(event, ui) {
that.item_value[item_vendor_id][category_flow_id][attr_id].val.push(ui.item.label);
that.auto_save_attr_value(item_vendor_id, {id:attr_id, category_flow_id:category_flow_id});
setTimeout(function () {
e.val('');
}, 5);
}
});
},
delete_dynamic_multiselect: function () {
let that = this;
let e = $(event.target);
if(!window.confirm('Are you sure to delete it?')) {
return false;
}
that.item_value[e.data('item_vendor_id')][e.data('category_flow_id')][e.data('attr_id')].val.splice(e.data('index'), 1);
that.auto_save_attr_value(e.data('item_vendor_id'), {id:e.data('attr_id'), category_flow_id:e.data('category_flow_id')});
},
auto_save_attr_value: function (item_vendor_id, attr) {
let that = this;
if (that.page_type == 'DETAIL') {
let data = {
item_id : that.item_flow.id,
item_vendor_id : item_vendor_id,
category_flow_id : attr.category_flow_id,
attr_id : attr.id,
}
let reg = /(\|)/;
if (String(attr.id).search(reg) != -1) {
//set 瀛楁鏇存柊
let arr = attr.id.split('|');
let set_attr_id = arr[0];
let flow_data = that.item_value[item_vendor_id][attr.category_flow_id];
let set_value = {};
$.each(flow_data, function (attr_id, attr_value) {
if (attr_id.search(reg) != -1 && attr.id.split('|')[0] == set_attr_id) {
set_value[attr_id] = {val : attr_value.val, type_id : attr_value.type_id}
}
})
data.attr_id = set_attr_id;
data.value = JSON.stringify(set_value);
} else {
data.value = that.item_value[item_vendor_id][attr.category_flow_id][attr.id].val;
}
ajax(pim_api.URL_SAVE_ATTR_VALUE, data).then(function (res) {
}, function (res) {
});
} else if (that.page_type == 'GROUP') {
let data = {
item_id : that.item_id,
group_id : that.group_id,
item_vendor_id : item_vendor_id,
category_flow_id : attr.category_flow_id,
attr_id : attr.id,
}
let reg = /(\|)/;
if (String(attr.id).search(reg) != -1) {
//set 瀛楁鏇存柊
let arr = attr.id.split('|');
let set_attr_id = arr[0];
let flow_data = that.item_value[item_vendor_id][attr.category_flow_id];
let set_value = {};
$.each(flow_data, function (attr_id, attr_value) {
if (attr_id.search(reg) != -1 && attr.id.split('|')[0] == set_attr_id) {
set_value[attr_id] = {val : attr_value.val, type_id : attr_value.type_id}
}
})
data.attr_id = set_attr_id;
data.value = JSON.stringify(set_value);
} else {
data.value = that.item_value[item_vendor_id][attr.category_flow_id][attr.id].val;
}
ajax(pim_api.URL_SAVE_GROUP_ATTR_VALUE, data).then(function (res) {
}, function (res) {
});
}
},
nav_ctrl: function () {
let that = this;
that.flag_show_nav = true;
that.flag_shadow_div = true;
},
}
}
function display_tinymce(html) {
return "<head><link type='text/css' rel='stylesheet' href='/Public/Js/tinymce2/skins/content/default/content.min.css'>" +
"<link type='text/css' rel='stylesheet' href='/Public/Js/tinymce2/skins/ui/oxide/content.min.css'></head>" +
"<body>" + html +
"</body>"
}
function get_db_file_str(file) {
if (file.is_img) {
return "[img]https://" + window.location.host + file.web_path + "[/img]";
} else {
return "[pim_file=https://" + window.location.host + file.web_path + ";icon=" + file.icon + ";name=" + file.file_name + ";ext=" + file.extension + ";size=" + file.read_size + "][/pim_file]";
}
}
// 璁$畻鏂囦欢澶у皬鍑芥暟(淇濈暀涓や綅灏忔暟),Size涓哄瓧鑺傚ぇ灏�
// size锛氬垵濮嬫枃浠跺ぇ灏�
function getfilesize(size) {
if (!size)
return "";
var num = 1024.00; //byte
if (size < num)
return size + "B";
if (size < Math.pow(num, 2))
return (size / num).toFixed(2) + "K"; //kb
if (size < Math.pow(num, 3))
return (size / Math.pow(num, 2)).toFixed(2) + "M"; //M
if (size < Math.pow(num, 4))
return (size / Math.pow(num, 3)).toFixed(2) + "G"; //G
return (size / Math.pow(num, 4)).toFixed(2) + "T"; //T
}
function get_icon(ext) {
let icon = 'icon-o';
switch (ext) {
case 'pdf':
icon = 'icon-p';
break;
case 'mp4':
icon = 'icon-m';
break;
case 'zip':
case 'rar':
icon = 'icon-z';
break;
case 'xls':
case 'xlsx':
icon = 'icon-x';
break;
case 'doc':
case 'docx':
icon = 'icon-w';
break;
case 'txt':
icon = 'icon-t';
break;
}
return icon;
}
function pim_download(src, name) {
var a = document.createElement("a");
a.href = src;//鏈嶅姟鍣ㄤ繚瀛樼殑璺緞
a.download = name;//涓嬭浇鍚庣殑鏂囦欢鍚嶄负test.doc
a.click()
}