zartui 2.0.53 → 2.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,8 @@ import Icon from "../icon";
4
4
 
5
5
  var _createNamespace = createNamespace('hierarchy-select-breadcrumb'),
6
6
  createComponent = _createNamespace[0],
7
- bem = _createNamespace[1];
7
+ bem = _createNamespace[1],
8
+ t = _createNamespace[2];
8
9
 
9
10
  export default createComponent({
10
11
  props: {
@@ -21,47 +22,43 @@ export default createComponent({
21
22
  textKey: {
22
23
  type: String,
23
24
  default: "name"
24
- },
25
- breadcrumbTitle: {
26
- type: String,
27
- default: "全部"
28
25
  }
29
26
  },
27
+ data: function data() {
28
+ return {};
29
+ },
30
30
  methods: {
31
31
  chooseSenior: function chooseSenior(index) {
32
- if (this.data.length === index + 1) {
33
- return;
34
- }
35
-
36
32
  this.$emit("chooseSenior", index);
37
33
  }
38
34
  },
39
- render: function render() {
35
+ render: function render(h) {
40
36
  var _this = this;
41
37
 
42
- var h = arguments[0];
43
- return h("section", {
38
+ return h("div", [this.data.length > 0 ? h("div", {
44
39
  "class": bem()
45
- }, [h("div", {
46
- "class": bem('list')
47
- }, [h("div", {
48
- "class": bem('default'),
40
+ }, [h("span", {
41
+ "class": bem("fill-blur")
42
+ }), h("div", {
43
+ "class": bem("indicator-crumb-list")
44
+ }, [h("span", {
45
+ "style": {
46
+ color: '#0091fa'
47
+ },
49
48
  "on": {
50
49
  "click": function click() {
51
50
  _this.chooseSenior(-1);
52
51
  }
53
52
  }
54
- }, [this.breadcrumbTitle]), this.data.map(function (item, index) {
53
+ }, ["\u5168\u90E8"]), this.data.map(function (item, index) {
55
54
  return h("div", {
56
- "class": bem('item')
55
+ "class": bem("crumb-item")
57
56
  }, [h(Icon, {
58
- "class": bem('icon'),
59
57
  "attrs": {
60
- "name": "arrow-right",
61
- "color": "#C6CED9"
62
- }
58
+ "name": "arrow-right"
59
+ },
60
+ "class": bem("icon-arrow")
63
61
  }), h("span", {
64
- "class": bem('name'),
65
62
  "style": {
66
63
  color: index === _this.data.length - 1 ? '' : '#0091fa'
67
64
  },
@@ -71,6 +68,8 @@ export default createComponent({
71
68
  }
72
69
  }
73
70
  }, [item[_this.textKey]])]);
74
- })])]);
71
+ })]), h("span", {
72
+ "class": "fill-blur"
73
+ })]) : h()]);
75
74
  }
76
75
  });
@@ -0,0 +1,162 @@
1
+ // Utils
2
+ import { createNamespace } from '../utils';
3
+ import { resetObject } from "../utils/index";
4
+ import { deepClone } from '../utils/deep-clone';
5
+ import Breadcrumb from "./breadcrumb";
6
+ import MarkList from "./markList";
7
+ import Loading from '../loading';
8
+ import Toast from '../toast';
9
+
10
+ var _createNamespace = createNamespace('hierarchy-select-core'),
11
+ createComponent = _createNamespace[0],
12
+ bem = _createNamespace[1],
13
+ t = _createNamespace[2];
14
+
15
+ var defaultData = function defaultData() {
16
+ return {
17
+ dataList: [],
18
+ indexTree: [],
19
+ breadcrumbData: [],
20
+ callback: null,
21
+ historyLayers: [],
22
+ loading: false
23
+ };
24
+ };
25
+
26
+ export default createComponent({
27
+ props: {
28
+ treeData: {
29
+ type: Array,
30
+ default: function _default() {
31
+ return [];
32
+ }
33
+ },
34
+ disableParent: {
35
+ type: Boolean,
36
+ default: false
37
+ },
38
+ asyncGetter: {
39
+ type: Function,
40
+ default: null
41
+ },
42
+ multiple: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ resetReplaceCancel: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ valueKey: {
51
+ type: String,
52
+ default: "id"
53
+ },
54
+ textKey: {
55
+ type: String,
56
+ default: "name"
57
+ },
58
+ returnChainData: {
59
+ type: Boolean,
60
+ default: false
61
+ }
62
+ },
63
+ data: function data() {
64
+ return defaultData();
65
+ },
66
+ mounted: function mounted() {
67
+ // resetObject(this, defaultData())
68
+ // if (this.$refs.markList) {
69
+ // this.$refs.markList.reset()
70
+ // }
71
+ this.dataList = deepClone(this.treeData);
72
+ },
73
+ methods: {
74
+ clickNext: function clickNext(obj) {
75
+ var _this = this;
76
+
77
+ var item = obj.item,
78
+ index = obj.index;
79
+
80
+ if (item["children"] && item["children"].length) {
81
+ this.historyLayers.push(this.dataList);
82
+ this.breadcrumbData.push(item);
83
+ this.dataList = item["children"];
84
+ } else {
85
+ if (this.asyncGetter) {
86
+ this.loading = true;
87
+ this.asyncGetter(item[this.valueKey]).then(function (list) {
88
+ _this.loading = false;
89
+
90
+ if (!list || list.length === 0) {
91
+ Toast("无下级数据");
92
+ _this.dataList[index].children = null;
93
+ return;
94
+ }
95
+
96
+ _this.historyLayers.push(_this.dataList);
97
+
98
+ _this.breadcrumbData.push(item);
99
+
100
+ _this.dataList = list;
101
+ }).catch(function () {
102
+ _this.loading = false;
103
+ });
104
+ }
105
+ }
106
+ },
107
+ selected: function selected(item) {
108
+ var data = deepClone(this.breadcrumbData);
109
+ data.push(item);
110
+ this.$emit("selected", this.returnChainData ? data : item);
111
+ },
112
+ chooseSenior: function chooseSenior(index) {
113
+ this.breadcrumbData.splice(index + 1);
114
+ this.dataList = this.historyLayers[index + 1];
115
+ this.historyLayers.splice(index + 1);
116
+ },
117
+ reset: function reset() {
118
+ this.$emit("reset");
119
+ },
120
+ cancel: function cancel() {
121
+ this.$emit("cancel");
122
+ },
123
+ confirm: function confirm(list) {
124
+ this.$emit("confirm", list);
125
+ }
126
+ },
127
+ render: function render(h) {
128
+ return h("div", {
129
+ "class": bem()
130
+ }, [h(Breadcrumb, {
131
+ "attrs": {
132
+ "data": this.breadcrumbData,
133
+ "valueKey": this.valueKey,
134
+ "textKey": this.textKey
135
+ },
136
+ "on": {
137
+ "chooseSenior": this.chooseSenior
138
+ }
139
+ }), h("div", {
140
+ "class": bem("list")
141
+ }, [this.loading ? h(Loading, {
142
+ "class": bem('loading')
143
+ }) : h(), h(MarkList, {
144
+ "ref": "markList",
145
+ "attrs": {
146
+ "dataList": this.dataList,
147
+ "multiple": this.multiple,
148
+ "resetReplaceCancel": this.resetReplaceCancel,
149
+ "disableParent": this.disableParent,
150
+ "valueKey": this.valueKey,
151
+ "textKey": this.textKey
152
+ },
153
+ "on": {
154
+ "clickNext": this.clickNext,
155
+ "selected": this.selected,
156
+ "cancel": this.cancel,
157
+ "confirm": this.confirm,
158
+ "reset": this.reset
159
+ }
160
+ })])]);
161
+ }
162
+ });
@@ -1 +1 @@
1
- .zt2-hierarchy-select__loading{height:100%;width:100%;position:absolute;top:calc(50% - 18px);left:calc(50% - 18px);z-index:2}.zt2-hierarchy-select__list{position:relative}.zt2-hierarchy-select__list span{height:24px;font-size:16px;font-family:PingFangSC,PingFangSC-Semibold;font-weight:600;color:#0091fa;line-height:24px}.zt2-hierarchy-select__list .flex{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-select-breadcrumb{padding:0 16px}.zt2-hierarchy-select-breadcrumb__list{box-sizing:border-box;height:44px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;color:#0091fa;width:100%;overflow-x:scroll}.zt2-hierarchy-select-breadcrumb__list::-webkit-scrollbar{width:0;height:0}.zt2-hierarchy-select-breadcrumb__default{display:-webkit-box;display:-webkit-flex;display:flex;white-space:nowrap}.zt2-hierarchy-select-breadcrumb__item{height:44px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;white-space:nowrap}.zt2-hierarchy-select-breadcrumb__item:last-child{color:#2d4b73}.zt2-hierarchy-select-breadcrumb__icon{padding:0 4px}.zt2-hierarchy-mark-list{background-color:#fff}.zt2-hierarchy-mark-list>div:last-child::after{display:none}.zt2-hierarchy-mark-list__multiple-button{margin-right:8px}.zt2-hierarchy-mark-list__select-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-align:center;border-radius:100%;font-size:22px;cursor:pointer}.zt2-hierarchy-mark-list__select-icon--normal{color:transparent;background-image:-webkit-linear-gradient(315deg,#e6ebf0 0,#fff 100%);background-image:linear-gradient(135deg,#e6ebf0 0,#fff 100%);border:1px solid rgba(45,75,115,.13);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2)}.zt2-hierarchy-mark-list__select-icon--checked{color:#fff;background-color:#0091fa;border:1px solid rgba(255,255,255,.5);box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2)}.zt2-hierarchy-mark-list__score-item{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:10px 0;background-color:#fff;margin-left:16px}.zt2-hierarchy-mark-list__score-item::after{content:" ";position:absolute;bottom:0;height:1px;width:100%;background-color:rgba(0,0,0,.1);box-shadow:0 0 0 0 #000 inset}.zt2-hierarchy-mark-list__item-content{-webkit-box-flex:1;-webkit-flex:1;flex:1;margin-right:16px;width:278px;font-size:16px;font-family:PingFangSC,PingFangSC-Regular;font-weight:400;text-align:left;color:#2d4b73;line-height:24px;word-break:break-all}.zt2-hierarchy-mark-list__item-content span{color:#0091fa}.zt2-hierarchy-mark-list__item-nav{padding:0 16px;border-left:rgba(0,0,0,.1) 1px solid}.zt2-hierarchy-mark-list__sub-level{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-mark-list__sub-level span{color:#0091fa}.zt2-hierarchy-mark-list__sub-level--disable{opacity:.2}.zt2-hierarchy-mark-list__sub-icon{margin-right:4px;font-size:0;width:20px;height:20px}.zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__item-content,.zt2-hierarchy-mark-list__disable-parent .zt2-hierarchy-mark-list__item-content{color:#c8c9cc}.zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__multiple-button>.zt2-icon,.zt2-hierarchy-mark-list__disable-parent .zt2-hierarchy-mark-list__multiple-button>.zt2-icon{cursor:not-allowed;background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%);border:1px solid rgba(45,75,115,.08);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2)}.zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__item-nav{cursor:not-allowed;opacity:.4}
1
+ .zt2-hierarchy-select__popup{height:100%}.zt2-hierarchy-select__popup .zt2-hierarchy-select{background-color:#f5f5ff;height:100%}.zt2-hierarchy-select__popup .zt2-hierarchy-select__title{height:44px;position:relative;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.zt2-hierarchy-select__popup .zt2-hierarchy-select__title i{font-size:14px;position:absolute;left:15px;top:16px}.zt2-hierarchy-select__popup .zt2-hierarchy-select__title div{line-height:44px;text-align:center;font-weight:700;font-size:18px;color:#142841}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-core .zt2-loading{position:absolute;top:50%;left:50%;margin-left:-18px;margin-right:-18px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-core__list span{height:24px;font-size:16px;font-family:PingFangSC,PingFangSC-Semibold;font-weight:600;color:#0091fa;line-height:24px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-core__list .flex{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;padding:10px 0;background-color:#fff;margin-bottom:16px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__indicator-crumb-list{-webkit-box-flex:1;-webkit-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 16px;overflow-x:auto}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__indicator-crumb-list span{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;white-space:nowrap;height:24px;font-size:16px;font-family:PingFangSC,PingFangSC-Regular;text-align:left;color:#000;line-height:24px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__indicator-crumb-list__icon-arrow{margin:0 4px;width:20px;height:20px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__crumb-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__fill-blur{position:absolute;top:0;width:16px;height:44px;background:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,0)),to(#fff))}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-select-breadcrumb__fill-blur:last-child{right:0;top:0;background:-webkit-gradient(linear,right top,left top,from(#fff),to(rgba(255,255,255,0)))}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list{background-color:#fff}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__multiple-button{margin-right:8px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__select-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-align:center;border-radius:100%;font-size:22px;cursor:pointer}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__select-icon--normal{color:transparent;background-image:-webkit-linear-gradient(315deg,#e6ebf0 0,#fff 100%);background-image:linear-gradient(135deg,#e6ebf0 0,#fff 100%);border:1px solid rgba(45,75,115,.13);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2)}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__select-icon--checked{color:#fff;background-color:#0091fa;border:1px solid rgba(255,255,255,.5);box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2)}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__score-item{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:10px 0;background-color:#fff;margin-left:16px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__score-item:after{content:" ";position:absolute;bottom:0;height:1px;width:100%;background-color:rgba(0,0,0,.1);box-shadow:0 0 0 0 #000 inset}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__item-content{-webkit-box-flex:1;-webkit-flex:1;flex:1;margin-right:16px;width:278px;font-size:16px;font-family:PingFangSC,PingFangSC-Regular;font-weight:400;text-align:left;color:#000;line-height:24px;word-break:break-all}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__item-content span{color:#0091fa}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__item-nav{padding:0 16px;border-left:rgba(0,0,0,.1) 1px solid}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__sub-level{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__sub-level span{color:#0091fa}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__sub-level--disable{opacity:.2}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__sub-icon{margin-right:4px;font-size:0;width:20px;height:20px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__result-box{position:fixed;left:0;bottom:0;background:#fff;width:100%}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__result-list{height:160px;box-shadow:0 -4px 8px 0 rgba(0,0,0,.1);border-radius:8px 8px 0 0;padding:12px 16px;font-size:14px;color:#000;line-height:24px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__operate-box{display:-webkit-box;display:-webkit-flex;display:flex;height:44px;line-height:44px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__selected{border-top:1px solid rgba(0,0,0,.1);display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 16px;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:44px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__selected i{color:#0091fa;font-size:20px;margin-right:4px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__selected span{font-size:14px;color:rgba(0,0,0,.6)}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__selected span.zt2-hierarchy-mark-list__blue{color:#0091fa;margin-left:8px}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__line{width:1px;height:24px;background:rgba(0,0,0,.1);-webkit-transform:scaleX(.5);transform:scaleX(.5);border-top:1px solid rgba(0,0,0,.1)}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__reset-button{width:110px;border-top:1px solid rgba(0,0,0,.1);font-size:16px;color:#000;text-align:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__cancel-button{width:110px;border-top:1px solid rgba(0,0,0,.1);font-size:16px;color:#000;text-align:center}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__confirm-button{width:110px;border-top:1px solid #0091fa;font-weight:700;font-size:16px;color:#fff;text-align:center;background:#0091fa}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__item-content,.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__disable-parent .zt2-hierarchy-mark-list__item-content{color:#c8c9cc}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__multiple-button>.zt2-icon,.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__disable-parent .zt2-hierarchy-mark-list__multiple-button>.zt2-icon{cursor:not-allowed;background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%);border:1px solid rgba(45,75,115,.08);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2)}.zt2-hierarchy-select__popup .zt2-hierarchy-select .zt2-hierarchy-mark-list__disable .zt2-hierarchy-mark-list__item-nav{cursor:not-allowed;opacity:.4}
@@ -1,22 +1,21 @@
1
1
  // Utils
2
2
  import { createNamespace } from '../utils';
3
- import { deepClone } from '../utils/deep-clone';
4
- import Breadcrumb from "./breadcrumb";
5
- import MarkList from "./markList";
6
- import Loading from '../loading';
7
- import Toast from '../toast';
8
3
 
9
4
  var _createNamespace = createNamespace('hierarchy-select'),
10
5
  createComponent = _createNamespace[0],
11
- bem = _createNamespace[1];
6
+ bem = _createNamespace[1],
7
+ t = _createNamespace[2];
12
8
 
9
+ import HierarchySelect from './hierarchySelect';
10
+ import Popup from '../popup';
11
+ import { PopupMixin } from '../mixins/popup';
12
+ import Icon from "../icon";
13
13
  export default createComponent({
14
+ mixins: [PopupMixin()],
14
15
  props: {
15
16
  treeData: {
16
17
  type: Array,
17
- default: function _default() {
18
- return [];
19
- }
18
+ default: []
20
19
  },
21
20
  disableParent: {
22
21
  type: Boolean,
@@ -38,104 +37,109 @@ export default createComponent({
38
37
  type: String,
39
38
  default: "name"
40
39
  },
41
- breadcrumbTitle: {
40
+ title: {
42
41
  type: String,
43
- default: "全部"
42
+ default: "选择"
43
+ },
44
+ returnChainData: {
45
+ type: Boolean,
46
+ default: false
47
+ },
48
+ showTitle: {
49
+ type: Boolean,
50
+ default: true
51
+ },
52
+ customCancel: {
53
+ type: Boolean,
54
+ default: false
44
55
  },
45
- autoChangeToChildren: {
56
+ resetReplaceCancel: {
46
57
  type: Boolean,
47
58
  default: false
48
59
  }
49
60
  },
50
61
  data: function data() {
51
62
  return {
52
- dataList: [],
53
- indexTree: [],
54
- breadcrumbData: [],
55
- callback: null,
56
- historyLayers: [],
57
- loading: false
63
+ showPicker: false
58
64
  };
59
65
  },
60
- mounted: function mounted() {
61
- this.dataList = deepClone(this.treeData);
62
- },
63
66
  methods: {
64
- clickNext: function clickNext(obj) {
65
- var _this = this;
66
-
67
- var item = obj.item,
68
- index = obj.index;
69
-
70
- if (item.children && item.children.length) {
71
- this.historyLayers.push(this.dataList);
72
- this.breadcrumbData.push(item);
73
- this.dataList = item.children;
74
- } else if (this.asyncGetter) {
75
- this.loading = true;
76
- this.asyncGetter(item[this.valueKey]).then(function (list) {
77
- _this.loading = false;
78
-
79
- if (!list || list.length === 0) {
80
- Toast("无下级数据");
81
- _this.dataList[index].children = _this.autoChangeToChildren ? undefined : [];
82
- return;
83
- }
84
-
85
- _this.historyLayers.push(_this.dataList);
86
-
87
- _this.breadcrumbData.push(item);
88
-
89
- _this.dataList = list;
90
- }).catch(function () {
91
- _this.loading = false;
92
- });
93
- }
94
- },
95
- selected: function selected(item) {
67
+ onSelected: function onSelected(item) {
96
68
  this.$emit("selected", item);
97
69
  },
98
- chooseSenior: function chooseSenior(index) {
99
- this.breadcrumbData.splice(index + 1);
100
- this.dataList = this.historyLayers[index + 1];
101
- this.historyLayers.splice(index + 1);
70
+ show: function show() {
71
+ this.showPicker = true;
72
+ },
73
+ hide: function hide() {
74
+ this.showPicker = false;
75
+ },
76
+ reset: function reset() {
77
+ this.$emit("reset");
78
+ this.hide();
79
+ },
80
+ cancel: function cancel() {
81
+ if (this.customCancel) {
82
+ this.$emit("cancel");
83
+ } else {
84
+ this.hide();
85
+ }
102
86
  },
103
- change: function change(item) {
104
- this.$emit("change", item);
87
+ confirm: function confirm(list) {
88
+ this.$emit("confirm", list);
105
89
  }
106
90
  },
107
91
  render: function render(h) {
108
- return h("div", {
92
+ var _this = this;
93
+
94
+ return h(Popup, {
95
+ "attrs": {
96
+ "position": "bottom",
97
+ "closeOnPopstate": true,
98
+ "getContainer": this.getContainer
99
+ },
100
+ "class": bem('popup'),
101
+ "model": {
102
+ value: _this.showPicker,
103
+ callback: function callback($$v) {
104
+ _this.showPicker = $$v;
105
+ }
106
+ }
107
+ }, [h("div", {
109
108
  "class": bem()
110
- }, [h(Breadcrumb, {
109
+ }, [h("div", {
110
+ "directives": [{
111
+ name: "show",
112
+ value: this.showTitle
113
+ }],
114
+ "class": bem("title")
115
+ }, [h(Icon, {
111
116
  "attrs": {
112
- "data": this.breadcrumbData,
113
- "valueKey": this.valueKey,
114
- "textKey": this.textKey,
115
- "breadcrumbTitle": this.breadcrumbTitle
117
+ "name": "back"
118
+ },
119
+ "style": {
120
+ fontSize: '18px'
116
121
  },
117
122
  "on": {
118
- "chooseSenior": this.chooseSenior
123
+ "click": function click() {
124
+ _this.showPicker = false;
125
+ }
119
126
  }
120
- }), h("div", {
121
- "class": bem("list")
122
- }, [this.loading ? h(Loading, {
123
- "class": bem('loading')
124
- }) : h(), h(MarkList, {
125
- "ref": "markList",
127
+ }), h("div", [this.title])]), h(HierarchySelect, {
126
128
  "attrs": {
127
- "dataList": this.dataList,
128
- "multiple": this.multiple,
129
- "resetReplaceCancel": this.resetReplaceCancel,
129
+ "treeData": this.treeData,
130
130
  "disableParent": this.disableParent,
131
+ "asyncGetter": this.asyncGetter,
132
+ "resetReplaceCancel": this.resetReplaceCancel,
133
+ "multiple": this.multiple,
131
134
  "valueKey": this.valueKey,
132
135
  "textKey": this.textKey,
133
- "autoChangeToChildren": this.autoChangeToChildren
136
+ "returnChainData": this.returnChainData
134
137
  },
135
138
  "on": {
136
- "clickNext": this.clickNext,
137
- "selected": this.selected,
138
- "change": this.change
139
+ "selected": this.onSelected,
140
+ "cancel": this.cancel,
141
+ "confirm": this.confirm,
142
+ "reset": this.reset
139
143
  }
140
144
  })])]);
141
145
  }