@burh/nuxt-core 1.0.73 → 1.0.75
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.
|
@@ -2,51 +2,9 @@
|
|
|
2
2
|
<div class="card card--store mb-4" :class="isSelected && 'selected'" tabindex="0" @click="$emit('card-selected')">
|
|
3
3
|
<div class="card-header bg-transparent text-center card-header--store">
|
|
4
4
|
<h3 class="text-header display-3">{{ name }}</h3>
|
|
5
|
-
<h3 class="display-3">{{ price | convertToReal }}</h3>
|
|
6
|
-
|
|
7
|
-
<div class="d-block d-sm-none text-center">
|
|
8
|
-
<collapse :animation-duration="200">
|
|
9
|
-
<collapse-item class="card--shadowless" name="1">
|
|
10
|
-
<button slot="title" class="btn btn-link" @click="$emit('card-benefits')">Beneficios</button>
|
|
11
|
-
<div>
|
|
12
|
-
<ul class="list-unstyled">
|
|
13
|
-
<li v-for="(item, index) in features" :key="index">
|
|
14
|
-
<div class="d-flex align-items-center">
|
|
15
|
-
<span>
|
|
16
|
-
<i class="fas fa-check"></i>
|
|
17
|
-
</span>
|
|
18
|
-
<div class="ml-4 small text-left">
|
|
19
|
-
<span> {{ item }} </span>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
</li>
|
|
23
|
-
</ul>
|
|
24
|
-
</div>
|
|
25
|
-
</collapse-item>
|
|
26
|
-
</collapse>
|
|
27
|
-
|
|
28
|
-
</div>
|
|
29
5
|
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div>
|
|
33
|
-
<h6 class="card-text text-sm pl-mini">{{ description }}</h6>
|
|
34
|
-
<div class="h6 font-weight-bold text-sm pl-mini">{{ subtitle }}</div>
|
|
35
|
-
<div class="pl-mini">
|
|
36
|
-
<ul class="list-unstyled">
|
|
37
|
-
<li v-for="(item, index) in features" :key="index">
|
|
38
|
-
<div class="d-flex align-items-center">
|
|
39
|
-
<span>
|
|
40
|
-
<i class="fas fa-check"></i>
|
|
41
|
-
</span>
|
|
42
|
-
<div class="ml-4 small">
|
|
43
|
-
<span> {{ item }} </span>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
</li>
|
|
47
|
-
</ul>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
6
|
+
<div class="card-body py-0">
|
|
7
|
+
<h3 class="display-3 text-center">{{ price | convertToReal }}</h3>
|
|
50
8
|
</div>
|
|
51
9
|
</div>
|
|
52
10
|
</template>
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
@change="addNumber(receiver)"
|
|
18
18
|
/>
|
|
19
19
|
|
|
20
|
-
<div class="
|
|
20
|
+
<div class="row">
|
|
21
21
|
<badge
|
|
22
22
|
v-for="(numbers, index) in allNumbers"
|
|
23
23
|
:key="index"
|
|
24
24
|
type="primary"
|
|
25
|
-
class="col-3 mx-3"
|
|
25
|
+
class="col-3 mx-3 px-1"
|
|
26
26
|
>{{ numbers
|
|
27
27
|
}}<i
|
|
28
|
-
class="fas fa-times
|
|
28
|
+
class="fas fa-times ml-1 cursor-pointer"
|
|
29
29
|
@click="deleteNumber(index)"
|
|
30
30
|
></i
|
|
31
31
|
></badge>
|
|
@@ -34,25 +34,47 @@
|
|
|
34
34
|
|
|
35
35
|
<div class="mb-4">
|
|
36
36
|
<div class="d-flex flex-column">
|
|
37
|
-
<label for="
|
|
38
|
-
>
|
|
37
|
+
<label for="template" class="form-control-label"
|
|
38
|
+
>Modelo</label
|
|
39
39
|
>
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
<div class="d-flex align-items-center form-group">
|
|
41
|
+
<el-select
|
|
42
|
+
filterable
|
|
43
|
+
name="template"
|
|
44
|
+
no-match-text="Nenhum modelo encontrado"
|
|
45
|
+
no-data-text="Nenhum modelo encontrado"
|
|
46
|
+
placeholder="Escolha o modelo"
|
|
47
|
+
:class="'col-9 px-0'"
|
|
48
|
+
@change="changeMessage(messageTitle)"
|
|
49
|
+
v-model="messageTitle"
|
|
50
|
+
:clearable="true"
|
|
51
|
+
>
|
|
52
|
+
<el-option
|
|
53
|
+
v-for="(templates, index) in models"
|
|
54
|
+
class="select-danger"
|
|
55
|
+
:value="templates.title"
|
|
56
|
+
:key="index"
|
|
57
|
+
></el-option>
|
|
58
|
+
</el-select>
|
|
59
|
+
|
|
60
|
+
<el-tooltip
|
|
61
|
+
class="item"
|
|
62
|
+
effect="dark"
|
|
63
|
+
:content="'Remover Template'"
|
|
64
|
+
placement="top"
|
|
65
|
+
>
|
|
66
|
+
<i
|
|
67
|
+
v-if="messageTitle"
|
|
68
|
+
@click="deleteTemplate(messageTitle)"
|
|
69
|
+
class="fas fa-trash col-3 ml-5"
|
|
70
|
+
:class="
|
|
71
|
+
belongsToUser()
|
|
72
|
+
? 'text-danger cursor-pointer'
|
|
73
|
+
: ''
|
|
74
|
+
"
|
|
75
|
+
></i>
|
|
76
|
+
</el-tooltip>
|
|
77
|
+
</div>
|
|
56
78
|
</div>
|
|
57
79
|
|
|
58
80
|
<validation-provider
|
|
@@ -62,9 +84,13 @@
|
|
|
62
84
|
rules="required"
|
|
63
85
|
v-slot="{ errors }"
|
|
64
86
|
>
|
|
87
|
+
<label for="message" class="form-control-label"
|
|
88
|
+
>Mensagem</label
|
|
89
|
+
>
|
|
65
90
|
<textarea
|
|
66
|
-
class="form-control
|
|
91
|
+
class="form-control"
|
|
67
92
|
v-model="message"
|
|
93
|
+
name="message"
|
|
68
94
|
:class="{ 'is-invalid': errors.length }"
|
|
69
95
|
placeholder="Mensagem que será enviada"
|
|
70
96
|
></textarea>
|
|
@@ -84,6 +110,7 @@
|
|
|
84
110
|
<validation-provider
|
|
85
111
|
tag="div"
|
|
86
112
|
v-if="saveModel"
|
|
113
|
+
:class="'d-flex align-items-center'"
|
|
87
114
|
name="Titulo para o modelo"
|
|
88
115
|
rules="required"
|
|
89
116
|
v-slot="{ errors }"
|
|
@@ -91,10 +118,15 @@
|
|
|
91
118
|
<base-input
|
|
92
119
|
v-model="modelName"
|
|
93
120
|
placeholder="Titulo para o modelo"
|
|
94
|
-
:class="'mt-4'"
|
|
121
|
+
:class="'mt-4 col-9 px-0'"
|
|
95
122
|
:error="errors[0]"
|
|
96
123
|
:valid="errors.length ? true : false"
|
|
97
124
|
/>
|
|
125
|
+
|
|
126
|
+
<i
|
|
127
|
+
class="text-primary fas fa-save cursor-pointer col-3 ml-5"
|
|
128
|
+
@click="saveTemplate()"
|
|
129
|
+
></i>
|
|
98
130
|
</validation-provider>
|
|
99
131
|
</div>
|
|
100
132
|
<div class="d-flex">
|
|
@@ -113,7 +145,7 @@
|
|
|
113
145
|
</template>
|
|
114
146
|
|
|
115
147
|
<script>
|
|
116
|
-
import { Select, Option, Checkbox } from "element-ui";
|
|
148
|
+
import { Select, Option, Checkbox, Tooltip, Button } from "element-ui";
|
|
117
149
|
import { mask } from "vue-the-mask";
|
|
118
150
|
import swal from "sweetalert2";
|
|
119
151
|
export default {
|
|
@@ -122,7 +154,8 @@ export default {
|
|
|
122
154
|
components: {
|
|
123
155
|
[Select.name]: Select,
|
|
124
156
|
[Option.name]: Option,
|
|
125
|
-
[Checkbox.name]: Checkbox
|
|
157
|
+
[Checkbox.name]: Checkbox,
|
|
158
|
+
[Tooltip.name]: Tooltip
|
|
126
159
|
},
|
|
127
160
|
computed: {
|
|
128
161
|
isModalOpen: {
|
|
@@ -138,24 +171,23 @@ export default {
|
|
|
138
171
|
show: {
|
|
139
172
|
type: Boolean,
|
|
140
173
|
default: false
|
|
141
|
-
}
|
|
174
|
+
},
|
|
175
|
+
templates: null
|
|
142
176
|
},
|
|
143
177
|
model: {
|
|
144
178
|
prop: "show"
|
|
145
179
|
},
|
|
180
|
+
watch: {
|
|
181
|
+
templates(newValue) {
|
|
182
|
+
this.models = newValue;
|
|
183
|
+
}
|
|
184
|
+
},
|
|
146
185
|
data() {
|
|
147
186
|
return {
|
|
148
|
-
|
|
187
|
+
models: this.templates,
|
|
188
|
+
messageTitle: null,
|
|
149
189
|
receiver: null,
|
|
150
190
|
message: "",
|
|
151
|
-
models: [
|
|
152
|
-
{
|
|
153
|
-
id: 1,
|
|
154
|
-
name: "Modelo Pronto",
|
|
155
|
-
text: "Olá, somos a BURH"
|
|
156
|
-
}
|
|
157
|
-
],
|
|
158
|
-
hasModel: false,
|
|
159
191
|
saveModel: false,
|
|
160
192
|
modelName: null,
|
|
161
193
|
allNumbers: []
|
|
@@ -172,6 +204,17 @@ export default {
|
|
|
172
204
|
title: `Aviso`,
|
|
173
205
|
html: `Preecha todos os campos corretamente`,
|
|
174
206
|
buttonsStyling: false,
|
|
207
|
+
type: "error",
|
|
208
|
+
confirmButtonClass: "btn btn-primary btn-fill"
|
|
209
|
+
});
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (this.allNumbers.length == 0) {
|
|
213
|
+
swal.fire({
|
|
214
|
+
title: `Aviso`,
|
|
215
|
+
html: `Adicione pelo menos um número de telefone para continuar`,
|
|
216
|
+
buttonsStyling: false,
|
|
217
|
+
type: "error",
|
|
175
218
|
confirmButtonClass: "btn btn-primary btn-fill"
|
|
176
219
|
});
|
|
177
220
|
return;
|
|
@@ -179,20 +222,49 @@ export default {
|
|
|
179
222
|
this.$emit("send-sms", this.allNumbers, this.message);
|
|
180
223
|
}
|
|
181
224
|
},
|
|
225
|
+
saveTemplate() {
|
|
226
|
+
if (this.saveModel) {
|
|
227
|
+
this.$emit("save-model", this.modelName, this.message);
|
|
228
|
+
}
|
|
229
|
+
},
|
|
182
230
|
addNumber(number) {
|
|
183
231
|
this.allNumbers.push(number);
|
|
184
232
|
this.receiver = "";
|
|
185
|
-
console.log(this.allNumbers);
|
|
186
233
|
},
|
|
187
234
|
deleteNumber(index) {
|
|
188
|
-
console.log(index);
|
|
189
235
|
this.allNumbers.splice(index, 1);
|
|
236
|
+
},
|
|
237
|
+
changeMessage(messageName) {
|
|
238
|
+
let message = this.models.find(data => data.title == messageName);
|
|
239
|
+
this.message = message ? message.message : "";
|
|
240
|
+
},
|
|
241
|
+
deleteTemplate(messageName) {
|
|
242
|
+
let template = this.models.find(data => data.title == messageName);
|
|
243
|
+
this.$emit("remove-template", template.id);
|
|
244
|
+
},
|
|
245
|
+
belongsToUser() {
|
|
246
|
+
let template = this.models.find(
|
|
247
|
+
data => data.title == this.messageTitle
|
|
248
|
+
);
|
|
249
|
+
|
|
250
|
+
return (
|
|
251
|
+
parseInt(this.$store.state.user.currentUser.id) ==
|
|
252
|
+
template.user_id
|
|
253
|
+
);
|
|
190
254
|
}
|
|
191
|
-
}
|
|
255
|
+
},
|
|
256
|
+
mounted() {}
|
|
192
257
|
};
|
|
193
258
|
</script>
|
|
194
259
|
<style lang="scss" scoped>
|
|
195
260
|
.badge {
|
|
196
261
|
margin-bottom: 1.5rem;
|
|
197
262
|
}
|
|
263
|
+
.modal-body {
|
|
264
|
+
padding: 1.5rem !important;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.top .el-tooltip__popper {
|
|
268
|
+
padding: 8px 10px;
|
|
269
|
+
}
|
|
198
270
|
</style>
|