|
|
@@ -108,84 +108,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area', 'vue', 'ELEME
|
|
|
api: {
|
|
|
bindevent: function () {
|
|
|
Form.api.bindevent($("form[role=form]"));
|
|
|
- Vue.component('treeselect', VueTreeselect.Treeselect)
|
|
|
- let areaData = [];
|
|
|
- if ((Config.areaData).length > 0) areaData = JSON.parse(Config.areaData);
|
|
|
- let areas = markDisabled(area, areaData)
|
|
|
- new Vue({
|
|
|
- el: '#app',
|
|
|
- data() {
|
|
|
- return {
|
|
|
- data: areaData,
|
|
|
- options: areas,
|
|
|
- sortValueBy: "ORDER_SELECTED",
|
|
|
- selectedNodes: [],
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- handleChange(selectedValues) {
|
|
|
- let ids = []
|
|
|
- let labels = []
|
|
|
- this.selectedNodes = this.data.map((item) => {
|
|
|
- let obj = this.getNode1(this.$refs.treeselect.getNode(item))
|
|
|
- ids.push(obj.result)
|
|
|
- labels.push(obj.labels)
|
|
|
- return { label: obj.labels, result: obj.result };
|
|
|
- });
|
|
|
- //console.log(JSON.stringify(ids),JSON.stringify(labels));
|
|
|
- $('#c-product_area').val(JSON.stringify(ids))
|
|
|
- $('#c-product_area_txt').val(JSON.stringify(labels))
|
|
|
-
|
|
|
- },
|
|
|
- getNode(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("-");
|
|
|
- },
|
|
|
-
|
|
|
- getNode1(e1) {
|
|
|
- let labels = [];
|
|
|
- let result = [];
|
|
|
- // 递归获取 label
|
|
|
- function recurse(node) {
|
|
|
- if (node && node.label) {
|
|
|
- labels.push(node.label);
|
|
|
- result.push(node.id);
|
|
|
- if (node.parentNode) {
|
|
|
- recurse(node.parentNode); // 继续向上递归
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- recurse(e1);
|
|
|
- // 返回拼接的 label 路径
|
|
|
- return { labels: [labels.reverse().join("-")], result: result.reverse() };
|
|
|
- },
|
|
|
- }
|
|
|
- })
|
|
|
- //禁用已选择
|
|
|
- function markDisabled(area, data) {
|
|
|
- area.forEach((item) => {
|
|
|
- if (data.includes(item.id)) {
|
|
|
- item.isDisabled = true;
|
|
|
- }
|
|
|
- if (item.children && item.children.length > 0) {
|
|
|
- markDisabled(item.children, data);
|
|
|
- }
|
|
|
- });
|
|
|
- return area
|
|
|
- }
|
|
|
},
|
|
|
}
|
|
|
};
|