eztech-core-components 1.0.66 → 1.0.68
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.
- package/comps/CoreFiles.vue +2 -2
- package/comps/CoreForm.vue +1 -1
- package/comps/CoreFormTable.vue +0 -1
- package/comps/CoreInputNumber.vue +1 -1
- package/comps/CorePdfDialog.vue +11 -11
- package/comps/CoreTableSearchDetail.vue +1 -1
- package/comps/Custom/UserClotheRow.vue +6 -4
- package/comps/Custom/UserClothes.vue +13 -9
- package/comps/PdfViewer.vue +46 -0
- package/package.json +1 -1
- package/utils/table-helper.js +1 -1
package/comps/CoreFiles.vue
CHANGED
|
@@ -340,10 +340,10 @@ export default {
|
|
|
340
340
|
},
|
|
341
341
|
handleDownload (item) {
|
|
342
342
|
if (item.mimetype === 'application/pdf') {
|
|
343
|
-
this.set_pdf_url({ title: 'Файл харах', url: `${this.permittedPath}/${item._id}?tid=${item.tid}${
|
|
343
|
+
this.set_pdf_url({ title: 'Файл харах', url: `${this.permittedPath}/${item._id}?tid=${item.tid}${this.routeId ? `&routeId=${this.routeId}` : ''}` })
|
|
344
344
|
} else {
|
|
345
345
|
const link = document.createElement('a')
|
|
346
|
-
link.href = item.public_link || `/api${this.permittedPath}/${item._id}?tid=${item.tid}${
|
|
346
|
+
link.href = item.public_link || `/api${this.permittedPath}/${item._id}?tid=${item.tid}${this.routeId ? `&routeId=${this.routeId}` : ''}`
|
|
347
347
|
link.setAttribute('download', `${item.orignalname}`)
|
|
348
348
|
document.body.appendChild(link)
|
|
349
349
|
link.click()
|
package/comps/CoreForm.vue
CHANGED
package/comps/CoreFormTable.vue
CHANGED
|
@@ -24,7 +24,7 @@ export default {
|
|
|
24
24
|
disabled: { type: Boolean, default: false },
|
|
25
25
|
controlsPosition: { type: String, default: 'right' },
|
|
26
26
|
precision: { type: Number, default: null },
|
|
27
|
-
size: { type: String, default: null }
|
|
27
|
+
size: { type: String, default: null }
|
|
28
28
|
},
|
|
29
29
|
computed: {
|
|
30
30
|
modelValue: {
|
package/comps/CorePdfDialog.vue
CHANGED
|
@@ -3,13 +3,20 @@
|
|
|
3
3
|
<div v-if="loading" class="bg-[#525659] px-20 h-[900px] flex items-center justify-center text-slate-200 text-lg font-medium gap-2">
|
|
4
4
|
<i class="el-icon-loading" /> Түр хүлээнэ үү..
|
|
5
5
|
</div>
|
|
6
|
-
<div v-else-if="hrefBlob" class="relative w-full h-[900px]">
|
|
6
|
+
<div v-else-if="hrefBlob" class="iframe-wrapper relative w-full h-[900px]">
|
|
7
|
+
<div v-if="isReadonly" class="bg-[#282828] flex flex-col items-center py-10">
|
|
8
|
+
<div class="w-[210mm] max-w-full">
|
|
9
|
+
<pdf-viewer :src="hrefBlob" />
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
7
12
|
<iframe
|
|
13
|
+
v-else="isReadonly"
|
|
8
14
|
id="pdfFrame"
|
|
9
|
-
:src="hrefBlob
|
|
15
|
+
:src="hrefBlob"
|
|
10
16
|
class="w-full h-full"
|
|
11
17
|
frameborder="0"
|
|
12
18
|
@load="handlePrintPdf"
|
|
19
|
+
@contextmenu="return false"
|
|
13
20
|
/>
|
|
14
21
|
</div>
|
|
15
22
|
</el-dialog>
|
|
@@ -27,11 +34,8 @@ export default {
|
|
|
27
34
|
},
|
|
28
35
|
computed: {
|
|
29
36
|
...mapGetters('settings', ['env', 'pdfUrl', 'pdfTitle', 'isPdfPrint', 'pdfPageSize']),
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return '#' + this.pdfUrl.split('#')[1]
|
|
33
|
-
}
|
|
34
|
-
return ''
|
|
37
|
+
isReadonly () {
|
|
38
|
+
return this.pdfUrl.includes('#')
|
|
35
39
|
},
|
|
36
40
|
visible: {
|
|
37
41
|
get () {
|
|
@@ -73,10 +77,6 @@ export default {
|
|
|
73
77
|
}
|
|
74
78
|
},
|
|
75
79
|
handlePrintPdf () {
|
|
76
|
-
const iframe = document.getElementById('pdfFrame')
|
|
77
|
-
if (iframe.contentWindow) {
|
|
78
|
-
iframe.contentWindow.document.addEventListener('contextmenu', e => e.preventDefault())
|
|
79
|
-
}
|
|
80
80
|
if (!this.isPdfPrint) {
|
|
81
81
|
return
|
|
82
82
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<tr
|
|
3
|
-
'
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
<tr
|
|
3
|
+
:class="['border-b', {
|
|
4
|
+
'bg-coreDanger/20 text-coreDanger font-bold !border-b-coreDanger/30': value?.next_receive_date && $moment(value?.next_receive_date).isBefore($moment()),
|
|
5
|
+
'bg-coreWarning/20 text-coreWarning font-bold !border-b-coreWarning/30': value?.next_receive_date && $moment().isBefore(value?.next_receive_date) && $moment().add(10, 'days').isAfter(value.next_receive_date)
|
|
6
|
+
}]"
|
|
7
|
+
>
|
|
6
8
|
<td class="text-center">
|
|
7
9
|
{{ ind + 1 }}
|
|
8
10
|
</td>
|
|
@@ -110,10 +110,12 @@
|
|
|
110
110
|
{{ item.clothe_reg_id?.type_general_id?.name }}
|
|
111
111
|
</td>
|
|
112
112
|
</tr>
|
|
113
|
-
<tr
|
|
114
|
-
'
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
<tr
|
|
114
|
+
:key="item._id" :class="['border-b', {
|
|
115
|
+
'bg-coreDanger/20 text-coreDanger font-bold !border-b-coreDanger/30': !item.next_receive_date || $moment(item.next_receive_date).isBefore($moment()),
|
|
116
|
+
'bg-coreWarning/20 text-coreWarning font-bold !border-b-coreWarning/30': item.next_receive_date && $moment().isBefore(item.next_receive_date) && $moment().add(10, 'days').isAfter(item.next_receive_date)
|
|
117
|
+
}]"
|
|
118
|
+
>
|
|
117
119
|
<td class="text-center">
|
|
118
120
|
{{ index + 1 }}
|
|
119
121
|
</td>
|
|
@@ -180,10 +182,12 @@
|
|
|
180
182
|
Хугацаа болсон авах хувцас хэрэгсэл байхгүй байна..
|
|
181
183
|
</td>
|
|
182
184
|
</tr>
|
|
183
|
-
<tr
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
<tr
|
|
186
|
+
v-for="(item, index) in expiredClothes" :key="item._id" :class="['border-b', {
|
|
187
|
+
'bg-coreDanger/20 text-coreDanger font-bold !border-b-coreDanger/30': !item.next_receive_date || $moment(item.next_receive_date).isBefore($moment()),
|
|
188
|
+
'bg-coreWarning/20 text-coreWarning font-bold !border-b-coreWarning/30': item.next_receive_date && $moment().isBefore(item.next_receive_date) && $moment().add(10, 'days').isAfter(item.next_receive_date)
|
|
189
|
+
}]"
|
|
190
|
+
>
|
|
187
191
|
<td class="text-center">
|
|
188
192
|
{{ index + 1 }}
|
|
189
193
|
</td>
|
|
@@ -212,10 +216,10 @@
|
|
|
212
216
|
</el-tab-pane> -->
|
|
213
217
|
</el-tabs>
|
|
214
218
|
<el-dialog
|
|
219
|
+
v-el-drag-dialog
|
|
215
220
|
:visible.sync="visible"
|
|
216
221
|
:title="title"
|
|
217
222
|
width="950px"
|
|
218
|
-
v-el-drag-dialog
|
|
219
223
|
append-to-body
|
|
220
224
|
:close-on-click-modal="false"
|
|
221
225
|
>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div ref="pdfContainer" class="pdf-container" @contextmenu.prevent />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
import * as pdfjsLib from 'pdfjs-dist/legacy/build/pdf'
|
|
7
|
+
import pdfjsWorker from 'pdfjs-dist/legacy/build/pdf.worker.entry'
|
|
8
|
+
|
|
9
|
+
pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
props: {
|
|
13
|
+
src: { type: String, required: true } // PDF file path or URL
|
|
14
|
+
},
|
|
15
|
+
mounted () {
|
|
16
|
+
this.renderPDF()
|
|
17
|
+
},
|
|
18
|
+
methods: {
|
|
19
|
+
async renderPDF () {
|
|
20
|
+
const loadingTask = pdfjsLib.getDocument(this.src)
|
|
21
|
+
const pdf = await loadingTask.promise
|
|
22
|
+
const container = this.$refs.pdfContainer
|
|
23
|
+
container.innerHTML = ''
|
|
24
|
+
for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
|
|
25
|
+
const page = await pdf.getPage(pageNum)
|
|
26
|
+
const viewport = page.getViewport({ scale: 2 })
|
|
27
|
+
const canvas = document.createElement('canvas')
|
|
28
|
+
const context = canvas.getContext('2d')
|
|
29
|
+
canvas.height = viewport.height
|
|
30
|
+
canvas.width = viewport.width
|
|
31
|
+
await page.render({ canvasContext: context, viewport }).promise
|
|
32
|
+
container.appendChild(canvas)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<style>
|
|
40
|
+
.pdf-container {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: 10px;
|
|
44
|
+
overflow: auto;
|
|
45
|
+
}
|
|
46
|
+
</style>
|
package/package.json
CHANGED
package/utils/table-helper.js
CHANGED
|
@@ -229,7 +229,7 @@ export const tableMethods = {
|
|
|
229
229
|
this.formSearching = true
|
|
230
230
|
const isEmployee = this.table?.name === 'hrm_employees'
|
|
231
231
|
if (isEmployee && !this.temp?._id) {
|
|
232
|
-
const { data } = await this.$axios.get(
|
|
232
|
+
const { data } = await this.$axios.get('one/5/service_search_hrm_employees', {
|
|
233
233
|
params: {
|
|
234
234
|
search: JSON.stringify({ [col_field]: { val: this.temp[col_field], t: 'string', op: 'eq' } }),
|
|
235
235
|
locale_id: this.localeId,
|