mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-05 17:42:49 +08:00
137 lines
4.2 KiB
PHP
137 lines
4.2 KiB
PHP
(function () {
|
|
const propertyInputCss = '/static/plugs/lay-module/propertyInput/propertyInput.css';
|
|
const propertyInputHtml = '/static/plugs/lay-module/propertyInput/propertyInput.html';
|
|
|
|
var propertyInput = function () {
|
|
$(function () {
|
|
var cssElement = document.createElement('link');
|
|
|
|
cssElement.setAttribute('rel', 'stylesheet');
|
|
|
|
cssElement.setAttribute('href', propertyInputCss);
|
|
|
|
document.body.appendChild(cssElement);
|
|
});
|
|
};
|
|
var propertyInputTemplate = '';
|
|
|
|
$.ajax({
|
|
type: "get",
|
|
url: propertyInputHtml,
|
|
cache: true,
|
|
async: false,
|
|
success: function (template) {
|
|
propertyInputTemplate = template;
|
|
}
|
|
|
|
});
|
|
|
|
propertyInput.prototype.render = function (elem, data) {
|
|
|
|
var defaultOption = {
|
|
placeholder: '请选择',
|
|
required: ''
|
|
};
|
|
|
|
var options = $.extend(defaultOption, data);
|
|
|
|
options.value = $.trim(options.value);
|
|
|
|
|
|
app = new Vue({
|
|
el: elem,
|
|
data() {
|
|
return {
|
|
setting: options,
|
|
value: '',
|
|
listItem: [
|
|
{
|
|
name: '',
|
|
value: ''
|
|
}
|
|
]
|
|
};
|
|
},
|
|
watch: {
|
|
listItem: {
|
|
handler(newValue, oldValue) {
|
|
// 在这里标记页面编辑状态
|
|
this.value = JSON.stringify(newValue);
|
|
},
|
|
// 通过指定deep属性为true, watch会监听对象里面每一个值的变化
|
|
deep: true
|
|
}
|
|
},
|
|
|
|
created() {
|
|
if (this.setting.value) {
|
|
if (typeof this.setting.value === 'string') {
|
|
this.setting.value = JSON.parse(this.setting.value);
|
|
}
|
|
this.listItem = this.setting.value;
|
|
this.value = this.setting.value;
|
|
}
|
|
|
|
},
|
|
mounted() {
|
|
if (options.required == 1) {
|
|
$(this.$refs['propertyInput']).closest('.layui-form-item').children('.layui-form-label').addClass('required');
|
|
}
|
|
},
|
|
template: propertyInputTemplate,
|
|
|
|
methods: {
|
|
|
|
removeItem(item, index) {
|
|
this.listTag.splice(index, 1);
|
|
},
|
|
onAddItem() {
|
|
this.listItem.push({
|
|
name: '',
|
|
value: ''
|
|
});
|
|
},
|
|
onItemNameChange(item, index, event) {
|
|
this.listItem[index].name = event.target.value;
|
|
},
|
|
onItemValueChange(item, index, event) {
|
|
|
|
this.listItem[index].value = event.target.value;
|
|
},
|
|
onItemMoveUp(item, index) {
|
|
var arr = this.listItem;
|
|
if (index != 0) {
|
|
arr[index] = arr.splice(index - 1, 1, arr[index])[0];
|
|
} else {
|
|
arr.push(arr.shift());
|
|
}
|
|
},
|
|
onItemMoveDown(item, index) {
|
|
var arr = this.listItem;
|
|
if (index != arr.length - 1) {
|
|
arr[index] = arr.splice(index + 1, 1, arr[index])[0];
|
|
} else {
|
|
arr.unshift(arr.splice(index, 1)[0]);
|
|
}
|
|
|
|
},
|
|
onItemDelete(item, index) {
|
|
if (this.listItem.length <= 1) {
|
|
this.listItem = [
|
|
{
|
|
name: '',
|
|
value: ''
|
|
}
|
|
];
|
|
} else {
|
|
this.listItem.splice(index, 1);
|
|
}
|
|
},
|
|
}
|
|
});
|
|
|
|
return app;
|
|
};
|
|
|
|
window.propertyInput = new propertyInput();
|
|
})(); |