@tripup-company/element-ui-extended 0.0.60 → 0.0.63

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.
@@ -15,6 +15,7 @@ export declare class ContactModel extends BaseModel implements Icontact {
15
15
  zip_code: string;
16
16
  street?: string;
17
17
  country?: string;
18
+ destination?: any;
18
19
  constructor(data?: any[]);
19
20
  }
20
21
  //# sourceMappingURL=contact-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-model.d.ts","sourceRoot":"","sources":["../../../examples/models/contact-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,qBAAa,YAAa,SAAQ,SAAU,YAAW,QAAQ;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEL,IAAI,QAAK;CAGtB"}
1
+ {"version":3,"file":"contact-model.d.ts","sourceRoot":"","sources":["../../../examples/models/contact-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,qBAAa,YAAa,SAAQ,SAAU,YAAW,QAAQ;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;gBAEN,IAAI,QAAK;CAGtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tripup-company/element-ui-extended",
3
- "version": "0.0.60",
3
+ "version": "0.0.63",
4
4
  "main": "./dist/element-ui-extended.umd.js",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve && tsc --emitDeclarationOnly",
@@ -1,16 +1,29 @@
1
1
  <template>
2
2
  <div class="editable-cell">
3
- <div
4
- v-if="!isEditMode"
5
- class="editable-cell__text"
6
- >
3
+ <div v-if="!isEditMode" class="editable-cell__text">
7
4
  <slot class="editable-cell__text__slot">
8
5
  <el-col :span="23">
9
- <div v-if="value && ['input', 'textarea', 'number'].includes(type)" v-html="value" />
10
- <el-checkbox v-else-if="type === 'checkbox'" v-model="value" disabled />
11
- <el-date-picker v-else-if="type === 'date-picker'" v-model="value" type="date" :format="format" :value-format="valueFormat" disabled placeholder="Pick a day" class="w-100 el-date-transparent" />
6
+ <div
7
+ v-if="value && ['input', 'textarea', 'number'].includes(type)"
8
+ v-html="value"
9
+ />
10
+ <el-checkbox
11
+ v-else-if="type === 'checkbox'"
12
+ v-model="value"
13
+ disabled
14
+ />
15
+ <el-date-picker
16
+ v-else-if="type === 'date-picker'"
17
+ v-model="value"
18
+ type="date"
19
+ :format="format"
20
+ :value-format="valueFormat"
21
+ disabled
22
+ placeholder="Pick a day"
23
+ class="w-100 el-date-transparent"
24
+ />
12
25
  <div v-else-if="isSelectValue" v-html="createList()" />
13
- <div v-else> {{ placeholder ? placeholder : '-' }}</div>
26
+ <div v-else>{{ placeholder ? placeholder : "-" }}</div>
14
27
  </el-col>
15
28
  <el-col v-if="!readonly" :span="1">
16
29
  <el-button
@@ -27,16 +40,42 @@
27
40
  </div>
28
41
  <div v-if="isEditMode" class="editable-cell__editor">
29
42
  <el-checkbox v-if="type === 'checkbox'" v-model="model" />
30
- <el-input-number v-else-if="type === 'number'" :controls="false" v-model="model" :precision="precision" class="w-100" />
31
- <el-select v-else-if="type === 'select'" v-model="model" :span="24" clearable :filterable="filterable" :remote="remote" :remote-method="remoteMethodHandler" placeholder="Select" :multiple="selectMultiple" class="w-100">
43
+ <el-input-number
44
+ v-else-if="type === 'number'"
45
+ :controls="false"
46
+ v-model="model"
47
+ :precision="precision"
48
+ class="w-100"
49
+ />
50
+ <el-select
51
+ v-else-if="type === 'select'"
52
+ v-model="model"
53
+ :span="24"
54
+ clearable
55
+ :filterable="filterable"
56
+ :remote="remote"
57
+ :remote-method="remoteMethodHandler"
58
+ placeholder="Select"
59
+ :value-key="objectValueKey"
60
+ :multiple="selectMultiple"
61
+ class="w-100"
62
+ >
32
63
  <el-option
33
64
  v-for="item in selectListLocal"
34
65
  :key="item[selectKey]"
35
66
  :label="item[selectLabel]"
36
- :value="item[selectValue]"
67
+ :value="selectJson ? item : item[selectValue]"
37
68
  />
38
69
  </el-select>
39
- <el-date-picker v-else-if="type === 'date-picker'" v-model="model" :format="format" :value-format="valueFormat" type="date" placeholder="Pick a day" class="w-100" />
70
+ <el-date-picker
71
+ v-else-if="type === 'date-picker'"
72
+ v-model="model"
73
+ :format="format"
74
+ :value-format="valueFormat"
75
+ type="date"
76
+ placeholder="Pick a day"
77
+ class="w-100"
78
+ />
40
79
  <el-input
41
80
  v-else
42
81
  v-model="model"
@@ -46,29 +85,44 @@
46
85
  class="editable-cell__input"
47
86
  />
48
87
  <el-button-group class="editable-cell__actions">
49
- <el-button v-if="isEditMode" type="success" size="mini" circle plain icon="el-icon-check" @click="handleSave" />
50
- <el-button v-if="isEditMode" type="warning" size="mini" circle plain icon="el-icon-close" @click="handleClose" />
88
+ <el-button
89
+ v-if="isEditMode"
90
+ type="success"
91
+ size="mini"
92
+ circle
93
+ plain
94
+ icon="el-icon-check"
95
+ @click="handleSave"
96
+ />
97
+ <el-button
98
+ v-if="isEditMode"
99
+ type="warning"
100
+ size="mini"
101
+ circle
102
+ plain
103
+ icon="el-icon-close"
104
+ @click="handleClose"
105
+ />
51
106
  </el-button-group>
52
107
  </div>
53
108
  </div>
54
109
  </template>
55
110
 
56
111
  <script>
57
-
58
112
  export default {
59
- name: 'EditableField',
113
+ name: "EditableField",
60
114
  model: {
61
- props: 'value',
62
- event: 'input',
115
+ props: "value",
116
+ event: "input",
63
117
  },
64
118
  props: {
65
119
  field: {
66
120
  type: [String, Boolean],
67
- default: '',
121
+ default: "",
68
122
  },
69
123
  value: {
70
124
  type: [String, Boolean, Date, Number, Array],
71
- default: '',
125
+ default: "",
72
126
  },
73
127
  filterable: {
74
128
  type: Boolean,
@@ -76,11 +130,11 @@ export default {
76
130
  },
77
131
  type: {
78
132
  type: String,
79
- default: 'input',
133
+ default: "input",
80
134
  },
81
135
  placeholder: {
82
136
  type: String,
83
- default: '',
137
+ default: "",
84
138
  },
85
139
  selectList: {
86
140
  type: Array,
@@ -90,17 +144,25 @@ export default {
90
144
  type: Boolean,
91
145
  default: false,
92
146
  },
147
+ objectValueKey: {
148
+ type: String,
149
+ default: "value",
150
+ },
151
+ selectJson: {
152
+ type: Boolean,
153
+ default: false,
154
+ },
93
155
  selectKey: {
94
156
  type: String,
95
- default: 'value',
157
+ default: "value",
96
158
  },
97
159
  selectLabel: {
98
160
  type: String,
99
- default: 'name',
161
+ default: "name",
100
162
  },
101
163
  selectValue: {
102
164
  type: String,
103
- default: '',
165
+ default: "",
104
166
  },
105
167
  precision: {
106
168
  type: Number,
@@ -120,24 +182,24 @@ export default {
120
182
  },
121
183
  format: {
122
184
  type: String,
123
- default: 'dd.MM.yyyy',
185
+ default: "dd.MM.yyyy",
124
186
  },
125
187
  valueFormat: {
126
188
  type: String,
127
- default: 'yyyy-MM-dd',
189
+ default: "yyyy-MM-dd",
128
190
  },
129
191
  },
130
192
  data: () => {
131
193
  return {
132
194
  isEditMode: false,
133
- model: '',
195
+ model: "",
134
196
  selectListLocal: [],
135
197
  };
136
198
  },
137
199
  computed: {
138
200
  isSelectValue: {
139
201
  get() {
140
- return (this.value || this.value === false) && this.type === 'select';
202
+ return (this.value || this.value === false) && this.type === "select";
141
203
  },
142
204
  },
143
205
  remote: {
@@ -159,48 +221,55 @@ export default {
159
221
  },
160
222
  methods: {
161
223
  createList() {
162
- let label = '';
224
+ let label = "";
163
225
  if (this.selectMultiple) {
164
226
  if (this.value.length) {
165
227
  let values = [];
166
- this.value.forEach(element => {
167
- const lab = this.selectList.find(x => x[this.selectKey] === element)[this.selectLabel];
168
- if (lab) {
169
- values.push(lab);
228
+ this.value.forEach((element) => {
229
+ const compareValue = this.selectJson ? element[this.selectKey] : element;
230
+ const labArray = this.selectList.find(
231
+ x => x[this.selectKey] === compareValue
232
+ );
233
+ if (labArray && labArray[this.selectLabel]) {
234
+ values.push(labArray[this.selectLabel]);
170
235
  }
171
- label = values.join('; ');
236
+ label = values.join("; ");
172
237
  });
173
238
  } else {
174
- label = '-';
239
+ label = "-";
175
240
  }
176
241
  } else if (this.selectList.length) {
177
- label = this.selectList.find(x =>
178
- x[this.selectKey] === this.value)[this.selectLabel];
242
+ label = this.selectList.find((x) => x[this.selectKey] === this.value)[
243
+ this.selectLabel
244
+ ];
179
245
  } else {
180
246
  label = this.value;
181
247
  }
182
248
  return label;
183
249
  },
184
250
  handleDoubleClick() {
185
- this.$emit('editable:open');
251
+ this.$emit("editable:open");
186
252
  this.isEditMode = true;
187
253
  this.model = this.value;
188
254
  },
189
255
  handleClose() {
190
256
  this.isEditMode = false;
191
- this.$emit('editable:close');
257
+ this.$emit("editable:close");
192
258
  },
193
259
  async remoteCall(query) {
194
260
  this.loading = true;
195
- const response = await this.remoteMethod.all({ search: this.selectLabel + ':' + query, searchFields: this.selectLabel + ':like' });
261
+ const response = await this.remoteMethod.all({
262
+ search: this.selectLabel + ":" + query,
263
+ searchFields: this.selectLabel + ":like",
264
+ });
196
265
  this.selectListLocal = response.data;
197
266
  this.loading = false;
198
267
  },
199
268
  async handleSave() {
200
269
  this.isEditMode = false;
201
- this.$emit('editable:close');
202
- this.$emit('editable:save', { 'field': this.field, 'value': this.model });
203
- this.$emit('update:value', { 'field': this.field, 'value': this.model });
270
+ this.$emit("editable:close");
271
+ this.$emit("editable:save", { field: this.field, value: this.model });
272
+ this.$emit("update:value", { field: this.field, value: this.model });
204
273
  },
205
274
  },
206
275
  };
@@ -4,16 +4,44 @@
4
4
  <slot class="editable-cell__text__slot">
5
5
  <el-col :span="24">
6
6
  <el-checkbox v-if="type === 'checkbox'" v-model="dataModel" />
7
- <el-select v-else-if="type === 'select'" v-model="dataModel" :filterable="filterable" :loading="loading" :remote="remote" :remote-method="remoteMethodHandler" :span="24" clearable placeholder="Select" :multiple="selectMultiple" class="w-100">
7
+ <el-select
8
+ v-else-if="type === 'select'"
9
+ v-model="dataModel"
10
+ :filterable="filterable"
11
+ :loading="loading"
12
+ :remote="remote"
13
+ :remote-method="remoteMethodHandler"
14
+ :span="24"
15
+ clearable
16
+ placeholder="Select"
17
+ :multiple="selectMultiple"
18
+ :value-key="objectValueKey"
19
+ class="w-100"
20
+ >
8
21
  <el-option
9
22
  v-for="item in selectListLocal"
10
23
  :key="item[selectKey]"
11
24
  :label="item[selectLabel]"
12
- :value="item[selectValue]"
25
+ :value="selectJson ? item : item[selectValue]"
13
26
  />
14
27
  </el-select>
15
- <el-date-picker v-else-if="type === 'date-picker'" v-model="dataModel" :format="format" :value-format="valueFormat" type="date" placeholder="Pick a day" class="w-100" />
16
- <el-input-number v-else-if="type === 'number'" v-model="dataModel" :controls="false" :step="step" :precision="precision" class="w-100" />
28
+ <el-date-picker
29
+ v-else-if="type === 'date-picker'"
30
+ v-model="dataModel"
31
+ :format="format"
32
+ :value-format="valueFormat"
33
+ type="date"
34
+ placeholder="Pick a day"
35
+ class="w-100"
36
+ />
37
+ <el-input-number
38
+ v-else-if="type === 'number'"
39
+ v-model="dataModel"
40
+ :controls="false"
41
+ :step="step"
42
+ :precision="precision"
43
+ class="w-100"
44
+ />
17
45
  <el-input
18
46
  v-else
19
47
  v-model="dataModel"
@@ -31,11 +59,11 @@
31
59
  import lodash from "lodash";
32
60
  const _ = lodash;
33
61
  export default {
34
- name: 'NewField',
62
+ name: "NewField",
35
63
  props: {
36
64
  field: {
37
65
  type: [String, Boolean],
38
- default: '',
66
+ default: "",
39
67
  },
40
68
  filterable: {
41
69
  type: Boolean,
@@ -43,15 +71,15 @@ export default {
43
71
  },
44
72
  value: {
45
73
  type: [String, Boolean, Date, Number, Array],
46
- default: '',
74
+ default: "",
47
75
  },
48
76
  type: {
49
77
  type: String,
50
- default: 'input',
78
+ default: "input",
51
79
  },
52
80
  placeholder: {
53
81
  type: String,
54
- default: '',
82
+ default: "",
55
83
  },
56
84
  selectList: {
57
85
  type: Array,
@@ -63,17 +91,25 @@ export default {
63
91
  type: Boolean,
64
92
  default: false,
65
93
  },
94
+ objectValueKey: {
95
+ type: String,
96
+ default: "value",
97
+ },
98
+ selectJson: {
99
+ type: Boolean,
100
+ default: false,
101
+ },
66
102
  selectKey: {
67
103
  type: String,
68
- default: '',
104
+ default: "",
69
105
  },
70
106
  selectLabel: {
71
107
  type: String,
72
- default: '',
108
+ default: "",
73
109
  },
74
110
  selectValue: {
75
111
  type: String,
76
- default: '',
112
+ default: "",
77
113
  },
78
114
  precision: {
79
115
  type: Number,
@@ -89,11 +125,11 @@ export default {
89
125
  },
90
126
  format: {
91
127
  type: String,
92
- default: 'dd.MM.yyyy',
128
+ default: "dd.MM.yyyy",
93
129
  },
94
130
  valueFormat: {
95
131
  type: String,
96
- default: 'yyyy-MM-dd',
132
+ default: "yyyy-MM-dd",
97
133
  },
98
134
  },
99
135
  data() {
@@ -119,10 +155,10 @@ export default {
119
155
  },
120
156
  },
121
157
  watch: {
122
- dataModel: function() {
123
- this.$emit('editable:save', { 'field': this.field, 'value': this.dataModel });
158
+ dataModel: function () {
159
+ this.$emit("editable:save", { field: this.field, value: this.dataModel });
124
160
  },
125
- value: function() {
161
+ value: function () {
126
162
  this.dataModel = _.cloneDeep(this.value);
127
163
  },
128
164
  },
@@ -132,7 +168,10 @@ export default {
132
168
  methods: {
133
169
  async remoteCall(query) {
134
170
  this.loading = true;
135
- const response = await this.remoteMethod.all({ search: this.selectLabel + ':' +query, searchFields: this.selectLabel + ':like' });
171
+ const response = await this.remoteMethod.all({
172
+ search: this.selectLabel + ":" + query,
173
+ searchFields: this.selectLabel + ":like",
174
+ });
136
175
  this.selectListLocal = response.data;
137
176
  this.loading = false;
138
177
  },
@@ -17,6 +17,8 @@
17
17
  :type="field.selectList ? 'select' : (field.type? field.type :'input')"
18
18
  :select-list="field.selectList ? field.selectList : []"
19
19
  :select-multiple="field.selectMultiple"
20
+ :select-json="field.selectJson ? field.selectJson : false"
21
+ :object-value-key="field.objectValueKey ? field.objectValueKey : 'value'"
20
22
  :select-key="field.selectList ? (field.selectKey ? field.selectKey : 'value' ) : ''"
21
23
  :select-label="field.selectList ? (field.selectLabel ? field.selectLabel : 'name' ) : ''"
22
24
  :select-value="field.selectList ? (field.selectValue ? field.selectValue : 'value' ) : ''"
@@ -16,6 +16,8 @@
16
16
  :type="field.selectList ? 'select' : (field.type? field.type :'input')"
17
17
  :select-list="field.selectList ? field.selectList : []"
18
18
  :select-multiple="field.selectMultiple"
19
+ :select-json="field.selectJson ? field.selectJson : false"
20
+ :object-value-key="field.objectValueKey ? field.objectValueKey : 'value'"
19
21
  :select-key="field.selectList ? (field.selectKey ? field.selectKey : 'value' ) : ''"
20
22
  :select-label="field.selectList ? (field.selectLabel ? field.selectLabel : 'name' ) : ''"
21
23
  :select-value="field.selectList ? (field.selectValue ? field.selectValue : 'value' ) : ''"