Skip to content

Commit 1bdb0dd

Browse files
authored
QR Print 2 (#22)
1 parent 9b5f40b commit 1bdb0dd

7 files changed

Lines changed: 126 additions & 22 deletions

File tree

.env.development

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
VUE_APP_API_PRINTER =https://printer.api.test.profcomff.com
2-
VUE_APP_API_MARKETING =https://marketing.api.test.profcomff.com/v1
1+
VUE_APP_API_PRINTER=https://printer.api.test.profcomff.com
2+
VUE_APP_API_MARKETING=https://marketing.api.test.profcomff.com/v1
3+
VUE_APP_FEEDBACK_FORM=https://forms.yandex.ru/u/630f979143537dde00621b0b/

.env.production

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
VUE_APP_API_PRINTER =https://printer.api.profcomff.com
2-
VUE_APP_API_MARKETING =https://marketing.api.profcomff.com/v1
1+
VUE_APP_API_PRINTER=https://printer.api.profcomff.com
2+
VUE_APP_API_MARKETING=https://marketing.api.profcomff.com/v1
3+
VUE_APP_FEEDBACK_FORM=https://forms.yandex.ru/u/630f979143537dde00621b0b/

src/App.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
<div v-if="!this.$route.query.embeded">
66
<small class="text-muted">
7-
Сделано в <a href="https://dyakov.space/">dyakov.space</a>
7+
Сделано в
8+
<a href="https://dyakov.space/" target="_blank">dyakov.space</a>
89
</small>
910
</div>
1011
</div>

src/components/TaskCompleteDialog.vue

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,41 @@
11
<template>
22
<div class="dialog-container">
33
<div v-if="status === 'OK'">
4-
<p class="h5">Успех! Код для печати:</p>
5-
<p class="h1">{{ pin }}</p>
4+
<span class="success material-icons"> thumb_up </span>
5+
<span class="success"><b>Готово!</b></span>
6+
<span class="success">
7+
Код для печати:<br />
8+
<b>{{ pin }}</b>
9+
</span>
610
</div>
711
<div v-else-if="status == 403">
8-
<p class="h5">Не вышло =(</p>
9-
<p class="h3">
12+
<span class="error material-icons"> thumb_down </span>
13+
<span class="error"><b>Не вышло!</b></span>
14+
<span class="error small">
1015
Проверьте правильность ввода фамилии и номера профсоюзного билета
11-
</p>
16+
</span>
1217
</div>
1318
<div v-else-if="status == 415">
14-
<p class="h5">Не вышло =(</p>
15-
<p class="h3">Отправлять можно только файлы PDF</p>
19+
<span class="error material-icons"> thumb_down </span>
20+
<span class="error"><b>Не вышло!</b></span>
21+
<span class="error small"> Отправлять можно только файлы PDF </span>
1622
</div>
1723
<div v-else-if="status == 422">
18-
<p class="h5">Не вышло =(</p>
19-
<p class="h3">Проверьте параметры печати и попробуйте снова</p>
24+
<span class="error material-icons"> thumb_down </span>
25+
<span class="error"><b>Не вышло!</b></span>
26+
<span class="error small">
27+
Проверьте параметры печати и попробуйте снова
28+
</span>
2029
</div>
2130
<div v-else>
22-
<p class="h5">Не вышло =(</p>
23-
<p class="h3">Мы не знаем почему, но попробуйте обновить страницу</p>
31+
<span class="error material-icons"> thumb_down </span>
32+
<span class="error"><b>Не вышло!</b></span>
33+
<span class="error small">
34+
Мы не знаем почему, но попробуйте обновить страницу
35+
</span>
2436
<sup>
25-
Если не помогло - <a href="https://vk.me/profcomff">напишите нам</a>
37+
Если не помогло -
38+
<a :href="feedback_url" target="_blank">напишите нам</a>
2639
</sup>
2740
</div>
2841
<div class="form-actions">
@@ -53,6 +66,9 @@ export default {
5366
isMobile() {
5467
return isMobile();
5568
},
69+
feedback_url() {
70+
return process.env.VUE_APP_FEEDBACK_FORM;
71+
},
5672
},
5773
props: {
5874
status: {
@@ -66,3 +82,36 @@ export default {
6682
},
6783
};
6884
</script>
85+
86+
<style scoped>
87+
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);
88+
span.success {
89+
display: block;
90+
font-size: 32px;
91+
width: 100%;
92+
color: var(--bs-success);
93+
text-align: center;
94+
margin: 0 auto;
95+
}
96+
span.error {
97+
display: block;
98+
font-size: 32px;
99+
width: 100%;
100+
color: var(--bs-danger);
101+
text-align: center;
102+
}
103+
span.error.small {
104+
display: block;
105+
font-size: 20px;
106+
width: 100%;
107+
color: var(--bs-black);
108+
text-align: center;
109+
}
110+
span.pending {
111+
display: block;
112+
font-size: 32px;
113+
width: 100%;
114+
color: var(--bs-dark);
115+
text-align: center;
116+
}
117+
</style>

src/views/History.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,18 @@ export default defineComponent({
7171
justify-content: space-between;
7272
margin: 20px;
7373
font-size: 1.5rem;
74+
gap: 8px;
7475
}
7576
.hist-item > * {
7677
display: block;
7778
}
7879
.hist-item > small {
7980
font-size: 1rem;
81+
overflow: hidden;
82+
text-overflow: ellipsis;
83+
min-width: 0;
84+
flex: 0 1 100%;
85+
white-space: nowrap;
8086
}
8187
8288
.material-icons {

src/views/Home.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ export default defineComponent({
6868
});
6969
</script>
7070

71+
<style scoped>
72+
h1 {
73+
margin: 16px 0;
74+
}
75+
</style>
76+
7177
<style>
7278
p,
7379
.form-group,

src/views/QrPrint.vue

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
Для быстрой печати по QR подойдите к принтеру и отсканируйте код под
1111
кнопкой "Печать".
1212
</p>
13-
<div v-if="qrInitSuccess === undefined">
13+
<div v-if="!isMobile">
14+
<p class="alert alert-success" role="alert">
15+
Откройте эту страницу с смартфона или планшета
16+
</p>
17+
</div>
18+
<div v-else-if="qrInitSuccess === undefined">
1419
<p class="alert alert-success" role="alert">
1520
Попытка подключиться к камере
1621
</p>
@@ -33,15 +38,17 @@
3338
<qrcode-stream
3439
@decode="onDecode"
3540
@init="onInit"
36-
v-if="(qrInitSuccess !== false) & !qrPrintStatus"
41+
v-if="isMobile & (qrInitSuccess !== false) & !qrPrintStatus"
3742
>
3843
</qrcode-stream>
3944
<div class="form-actions">
4045
<div v-if="qrPrintStatus === 'pending'">
41-
<p>Обработка...</p>
46+
<span class="pending material-icons"> pending </span>
47+
<span class="pending"><b>Выполняю</b></span>
4248
</div>
4349
<div v-if="qrPrintStatus === 'success'">
44-
<p>Готово!</p>
50+
<span class="success material-icons"> thumb_up </span>
51+
<span class="success"><b>Готово!</b></span>
4552
<router-link to="/" class="btn btn-lg btn-primary">
4653
Вернуться на главную
4754
</router-link>
@@ -50,7 +57,8 @@
5057
</router-link>
5158
</div>
5259
<div v-if="qrPrintStatus === 'error'">
53-
<p>Не вышло!</p>
60+
<span class="error material-icons"> thumb_down </span>
61+
<span class="error"><b>Не вышло!</b></span>
5462
<p>{{ qrPrintErrorMsg }}</p>
5563
<router-link to="/" class="btn btn-lg btn-primary">
5664
Вернуться на главную
@@ -69,6 +77,7 @@
6977
<script>
7078
import { QrcodeStream } from "vue3-qrcode-reader";
7179
import { log_open_qr, log_print_qr, log_error_qr } from "@/utils/marketing";
80+
import { isMobile } from "@/utils/mobile";
7281
7382
export default {
7483
data: () => ({
@@ -77,6 +86,11 @@ export default {
7786
qrPrintStatus: undefined,
7887
qrPrintErrorMsg: "",
7988
}),
89+
computed: {
90+
isMobile() {
91+
return isMobile();
92+
},
93+
},
8094
components: {
8195
QrcodeStream,
8296
},
@@ -160,3 +174,29 @@ export default {
160174
},
161175
};
162176
</script>
177+
178+
<style scoped>
179+
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);
180+
span.success {
181+
display: block;
182+
font-size: 32px;
183+
width: 100%;
184+
color: var(--bs-success);
185+
text-align: center;
186+
margin: 0 auto;
187+
}
188+
span.error {
189+
display: block;
190+
font-size: 32px;
191+
width: 100%;
192+
color: var(--bs-danger);
193+
text-align: center;
194+
}
195+
span.pending {
196+
display: block;
197+
font-size: 32px;
198+
width: 100%;
199+
color: var(--bs-dark);
200+
text-align: center;
201+
}
202+
</style>

0 commit comments

Comments
 (0)