define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMENT', ], function ($, undefined, Backend, Table, Form, Area, Vue, ELEMENT, ) { ELEMENT.install(Vue) Vue.use(ELEMENT) var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'product/lists/index' + location.search, add_url: 'product/lists/add', edit_url: 'product/lists/edit', del_url: 'product/lists/del', multi_url: 'product/lists/multi', import_url: 'product/lists/import', dragsort_url: "", table: 'product_list', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'weigh', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'products.zh_title', title: __('Type_id'), operate: false}, {field: 'zh_name', title: __('Zh_name'), operate: false, formatter : function(value, row, index, field){ return "" + value + ""; }, cellStyle : function(value, row, index, field){ return { css: { "white-space": "nowrap", "text-overflow": "ellipsis", "overflow": "hidden", "max-width":"200px" } }; } }, {field: 'en_name', title: __('En_name'), operate: false, formatter : function(value, row, index, field){ return "" + value + ""; }, cellStyle : function(value, row, index, field){ return { css: { "white-space": "nowrap", "text-overflow": "ellipsis", "overflow": "hidden", "max-width":"200px" } }; } }, {field: 'thum', title: __('Thum'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images}, {field: 'weigh', title: __('Weigh'), operate: false}, {field: 'status', title: __('Status'), searchList: {"1":__('上架'),"0":__('下架')}, formatter: Table.api.formatter.toggle}, {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} ] ] }); // 为表格绑定事件 Table.api.bindevent(table); // 修改添加窗口的大小 $(".btn-add").data("area", ["60%", "80%"]); table.on('post-body.bs.table',function () { $('.btn-editone').data("area",["80%","100%"]); }); }, add: function () { let dataCode = []; if((Config.areaCode).length > 0) dataCode = JSON.parse(Config.areaCode); Vue.component('treeselect', VueTreeselect.Treeselect) new Vue({ el: '#app', data(){ return { data: [], options: area, sortValueBy: "ORDER_SELECTED", selectedNodes: [], } }, methods:{ // handleChange(e){ // let txt = this.$refs.ca.getCheckedNodes(),txtArr = Array(); // txt.forEach(vv => { // txtArr.push($.makeArray((vv.pathLabels).join('-')) ); // }); // $('#c-product_area').val(JSON.stringify(this.data)) // $('#c-product_area_txt').val(JSON.stringify(txtArr)) // } handleChange(selectedValues) { console.log(selectedValues, "selectedValues=========="); console.log(this.data, "data=========="); this.selectedNodes = this.data.map((item) => { // console.log(this.getNode(this.$refs.treeselect.getNode(item.id)),"label========="); return { id: item, label: this.getNode(this.$refs.treeselect.getNode(item)) }; }); console.log(this.selectedNodes,"this.selectedNodes============"); }, getNode(e1) { console.log(e1); let labels = []; // 递归获取 label function recurse(node) { if (node && node.label) { labels.push(node.label); if (node.parentNode) { recurse(node.parentNode); // 继续向上递归 } } } recurse(e1); // console.log(labels.reverse().join("/")); // 返回拼接的 label 路径 return labels.reverse().join("/"); }, } }) // Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); let dataCode = []; if((Config.areaCode).length > 0) dataCode = JSON.parse(Config.areaCode); new Vue({ el: '#app', data() { return { // data: dataCode, // props: { multiple: true }, // options:area data: dataCode, options: area, sortValueBy: "ORDER_SELECTED", selectedNodes: [], }; }, // components: { // Treeselect: window.VueTreeselect.treeselect // }, methods:{ // handleChange(e){ // let txt = this.$refs.ca.getCheckedNodes(),txtArr = Array(); // txt.forEach(vv => { // txtArr.push($.makeArray((vv.pathLabels).join('-')) ); // }); // $('#c-product_area').val(JSON.stringify(this.data)) // $('#c-product_area_txt').val(JSON.stringify(txtArr)) // } handleChange(selectedValues) { // console.log(this.$refs.treeselect, "e================"); console.log(selectedValues, "selectedValues=========="); console.log(this.data, "data=========="); this.selectedNodes = this.data.map((item) => { console.log(this.getNode(this.$refs.treeselect.getNode(item.id)),"========="); return { id: item.id, label: this.getNode(this.$refs.treeselect.getNode(item.id)) }; }); }, getNode(e1) { console.log(e1); let labels = []; // 递归获取 label function recurse(node) { if (node && node.label) { labels.push(node.label); if (node.parentNode) { recurse(node.parentNode); // 继续向上递归 } } } recurse(e1); // console.log(labels.reverse().join("/")); // 返回拼接的 label 路径 return labels.reverse().join("/"); }, } }) }, } }; return Controller; });