Merge branch 'ASTRA-80' into 'master'
Resolve ASTRA-80 See merge request andrusyakka/urban-couscous!369
This commit is contained in:
@@ -141,6 +141,8 @@ export default {
|
|||||||
z-index: 5
|
z-index: 5
|
||||||
opacity: 0
|
opacity: 0
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
|
::file-selector-button
|
||||||
|
cursor: pointer
|
||||||
</style>
|
</style>
|
||||||
<style lang="sass">
|
<style lang="sass">
|
||||||
.q-field--standout.q-field--readonly .q-field__control:before
|
.q-field--standout.q-field--readonly .q-field__control:before
|
||||||
|
|||||||
@@ -8,21 +8,32 @@
|
|||||||
)
|
)
|
||||||
.protocol-body.flex.flex-col
|
.protocol-body.flex.flex-col
|
||||||
.flex.items-center.gap-x-11px(:class="{'open-header': list.change || fillInspection}")
|
.flex.items-center.gap-x-11px(:class="{'open-header': list.change || fillInspection}")
|
||||||
.flex.gap-x-4(:style="{height: list.change || fillInspection ? '300px' : ''}")
|
.flex.flex-col.gap-y-4(:class="{'changed': list.change || fillInspection}")
|
||||||
.flex.flex-col.gap-y-1(:class="{'open-textarea': list.change || fillInspection}")
|
.flex.flex-col.gap-y-1(:class="{'open-textarea': list.change || fillInspection}")
|
||||||
.tag-wrap.flex.gap-x-1.gap-y-1(v-if="!fillInspection")
|
.tag-wrap.flex.gap-x-1.gap-y-1(v-if="!fillInspection")
|
||||||
.tag.flex.items-center.px-3.cursor-pointer.font-medium.text-smm(
|
.tag.flex.items-center.px-3.cursor-pointer.font-medium.text-smm(
|
||||||
v-for="tag in list.tags" :key="tag.id"
|
v-for="tag in list.tags", :key="tag.id"
|
||||||
) {{tag.label}}
|
) {{tag.label}}
|
||||||
base-input.px-3(v-if="list.change || fillInspection", type="textarea", autogrow, borderless, placeholder="Введите жалобу...")
|
base-input.px-3(v-if="list.change || fillInspection", type="textarea", autogrow, borderless, placeholder="Введите жалобу...")
|
||||||
|
.wrap.gap-1.flex.flex-col(v-if="(scanData.length || docData.length) && !(list.change || fillInspection)", v-for="file in list.files")
|
||||||
|
.title.font-semibold.text-smm {{file.name}}
|
||||||
|
.wrap.flex.gap-x-1.gap-y-1
|
||||||
|
.flex.gap-x-2.items-center.pl-2.pr-4.py-2.gap-y-3(
|
||||||
|
v-for="item in file.data"
|
||||||
|
:class="{'photo-field': checkedName(file.name), 'scan-field': file.name === 'Сканы'}"
|
||||||
|
)
|
||||||
|
q-avatar(:size="checkedName(file.name) ? '24px' : '40px'", :rounded="checkedName(file.name)")
|
||||||
|
img.h-10.w-10.object-cover(
|
||||||
|
:src="checkedName(file.name) ? iconDictionary[item.name.substr(item.name.lastIndexOf('.') + 1)] : item.file"
|
||||||
|
)
|
||||||
|
.doc-text.font-medium.text-smm(v-if="checkedName(file.name)") {{item.name}}
|
||||||
|
.flex.flex-col.gap-y-1(v-else)
|
||||||
|
.doc-text.font-medium.text-smm {{item.name.substr(0, item.name.lastIndexOf('.'))}}
|
||||||
|
.title.font-medium.text-xsx {{item.size + " Мб"}}
|
||||||
.filter.flex.flex-col.gap-y-4(v-if="list.change || fillInspection")
|
.filter.flex.flex-col.gap-y-4(v-if="list.change || fillInspection")
|
||||||
.flex.gap-x-2
|
.flex.gap-x-2
|
||||||
base-input(placeholder="Поиск", outlined, :width="232", iconLeft)
|
base-input(placeholder="Поиск", outlined, :width="232", iconLeft)
|
||||||
q-icon(
|
q-icon(name="app:icon-search", size="20px", style="color: var(--font-grey-color)")
|
||||||
name="app:icon-search",
|
|
||||||
size="20px",
|
|
||||||
style="color: var(--font-grey-color)"
|
|
||||||
)
|
|
||||||
.button
|
.button
|
||||||
q-btn(
|
q-btn(
|
||||||
icon="filter_alt",
|
icon="filter_alt",
|
||||||
@@ -47,52 +58,34 @@
|
|||||||
)
|
)
|
||||||
.name.flex.items-center.font-medium.text-smm {{ name?.label }}
|
.name.flex.items-center.font-medium.text-smm {{ name?.label }}
|
||||||
.protocol-data.flex.gap-x-20(v-if="list.change || fillInspection")
|
.protocol-data.flex.gap-x-20(v-if="list.change || fillInspection")
|
||||||
.flex.flex-col.gap-y-3
|
.flex.flex-col.gap-y-3(v-for="file in list.files")
|
||||||
.title.text-smm.font-semibold Документы
|
.title.text-smm.font-semibold {{file.name}}
|
||||||
.download.flex.relative
|
.download.flex.relative
|
||||||
base-input(
|
base-input(
|
||||||
@change="addNewDoc",
|
@update:model-value="(e) => addNewFiles(e, file.name)",
|
||||||
doc,
|
doc,
|
||||||
:width="548",
|
:width="548",
|
||||||
type="file",
|
type="file",
|
||||||
id="upload",
|
id="upload",
|
||||||
accept=".xlsx, .xls, .doc, .docx, .pdf, .odt",
|
:accept="checkedName(file.name) ? '.xlsx, .xls, .doc, .docx, .pdf, .odt' : 'image/*'",
|
||||||
borderless,
|
borderless,
|
||||||
multiple
|
multiple
|
||||||
)
|
)
|
||||||
.text.flex.flex-col.items-center.justify-center.absolute.font-medium.text-smm
|
.text.flex.flex-col.items-center.justify-center.absolute.font-medium.text-smm
|
||||||
span Загрузите документ
|
span {{checkedName(file.name) ? 'Загрузите документ' : 'Загрузите скан документа'}}
|
||||||
label.label.cursor-pointer(for="upload") с компьютера
|
label.label.cursor-pointer(for="upload") с компьютера
|
||||||
span или перетащите его в это поле
|
span или перетащите его в это поле
|
||||||
.doc.flex(v-if="docData.length")
|
.wrap.gap-1.flex(v-if="file?.data?.length")
|
||||||
.photo-field.flex.gap-x-2.items-center(v-for="item in docData")
|
.flex.gap-x-2.items-center(
|
||||||
q-avatar(size="24px")
|
v-for="item in file.data",
|
||||||
img.h-10.w-10.object-cover(
|
:class="{'photo-field': checkedName(file.name), 'scan-field': file.name === 'Сканы'}"
|
||||||
:src="iconDictionary[item.name.substr(item.name.lastIndexOf('.') + 1)]"
|
|
||||||
)
|
|
||||||
.doc-text.font-medium.text-smm {{item.name}}
|
|
||||||
.flex.flex-col.gap-y-3
|
|
||||||
.title.text-smm.font-semibold Сканы
|
|
||||||
.download.flex.relative.cursor-pointer
|
|
||||||
base-input(
|
|
||||||
@change="addNewScan"
|
|
||||||
doc,
|
|
||||||
:width="548",
|
|
||||||
type="file",
|
|
||||||
id="upload",
|
|
||||||
accept="image/*",
|
|
||||||
borderless,
|
|
||||||
multiple
|
|
||||||
)
|
)
|
||||||
.text.flex.flex-col.items-center.justify-center.absolute.font-medium.text-smm
|
q-avatar(:size="checkedName(file.name) ? '24px' : '40px'", :rounded="checkedName(file.name)")
|
||||||
span Загрузите скан документа
|
img.h-10.w-10.object-cover(
|
||||||
label.label(for="upload") с компьютера
|
:src="checkedName(file.name) ? iconDictionary[item.name.substr(item.name.lastIndexOf('.') + 1)] : item.file"
|
||||||
span или перетащите его в это поле
|
)
|
||||||
.doc.flex(v-if="scanData.length")
|
.doc-text.font-medium.text-smm(v-if="checkedName(file.name)") {{item.name}}
|
||||||
.scan-field.flex.gap-x-2.items-center.pl-2.pr-4.py-2(v-for="item in scanData")
|
.flex.flex-col.gap-y-1(v-else)
|
||||||
q-avatar(size="40px", rounded)
|
|
||||||
img.h-10.w-10.object-cover(:src="item.file")
|
|
||||||
.flex.flex-col.gap-y-1
|
|
||||||
.doc-text.font-medium.text-smm {{item.name.substr(0, item.name.lastIndexOf('.'))}}
|
.doc-text.font-medium.text-smm {{item.name.substr(0, item.name.lastIndexOf('.'))}}
|
||||||
.title.font-medium.text-xsx {{item.size + " Мб"}}
|
.title.font-medium.text-xsx {{item.size + " Мб"}}
|
||||||
</template>
|
</template>
|
||||||
@@ -137,6 +130,10 @@ export default {
|
|||||||
{ id: 7, label: "Удаление зуба" },
|
{ id: 7, label: "Удаление зуба" },
|
||||||
{ id: 2, label: "Жжение языка" },
|
{ id: 2, label: "Жжение языка" },
|
||||||
],
|
],
|
||||||
|
files: [
|
||||||
|
{ name: "Документы", data: null },
|
||||||
|
{ name: "Сканы", data: null },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
selected: [],
|
selected: [],
|
||||||
docData: [],
|
docData: [],
|
||||||
@@ -151,7 +148,14 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
checkedName(e) {
|
||||||
|
return e === "Документы" ? true : false;
|
||||||
|
},
|
||||||
|
addNewFiles(e, name) {
|
||||||
|
return name === "Документы" ? this.addNewDoc(e) : this.addNewScan(e);
|
||||||
|
},
|
||||||
textSorting(arr) {
|
textSorting(arr) {
|
||||||
let srt = [];
|
let srt = [];
|
||||||
this.abc.forEach((letter) => {
|
this.abc.forEach((letter) => {
|
||||||
@@ -173,11 +177,12 @@ export default {
|
|||||||
closeCard() {
|
closeCard() {
|
||||||
this.list.change = false;
|
this.list.change = false;
|
||||||
},
|
},
|
||||||
addNewDoc(e) {
|
addNewDoc(arr) {
|
||||||
this.docData = [...this.docData, ...e.target.files];
|
this.docData = [...this.docData, ...arr];
|
||||||
|
this.list.files.find((e) => e.name === "Документы").data = this.docData;
|
||||||
},
|
},
|
||||||
addNewScan(e) {
|
addNewScan(arr) {
|
||||||
[...e.target.files].forEach((file) => {
|
[...arr].forEach((file) => {
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
reader.onload = (e) => {
|
reader.onload = (e) => {
|
||||||
this.scanData.push({
|
this.scanData.push({
|
||||||
@@ -188,12 +193,21 @@ export default {
|
|||||||
};
|
};
|
||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file);
|
||||||
});
|
});
|
||||||
|
this.list.files.find((e) => e.name === "Сканы").data = this.scanData;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
<style lang="sass" scoped>
|
||||||
|
#upload :deep(.q-field__native)
|
||||||
|
cursor: pointer
|
||||||
|
|
||||||
|
.changed
|
||||||
|
height: 300px
|
||||||
|
column-gap: 16px
|
||||||
|
flex-direction: row
|
||||||
|
|
||||||
.protocol-body
|
.protocol-body
|
||||||
background: var(--default-white)
|
background: var(--default-white)
|
||||||
border-radius: 4px
|
border-radius: 4px
|
||||||
@@ -273,9 +287,9 @@ export default {
|
|||||||
cursor: pointer
|
cursor: pointer
|
||||||
|
|
||||||
.text
|
.text
|
||||||
width: 520px
|
width: 548px
|
||||||
height: 60px
|
height: 62px
|
||||||
background: white
|
cursor: pointer
|
||||||
color: var(--font-grey-color)
|
color: var(--font-grey-color)
|
||||||
|
|
||||||
.title
|
.title
|
||||||
@@ -294,9 +308,7 @@ export default {
|
|||||||
padding: 4px 8px
|
padding: 4px 8px
|
||||||
width: fit-content
|
width: fit-content
|
||||||
|
|
||||||
.doc
|
.wrap
|
||||||
column-gap: 4px
|
|
||||||
row-gap: 4px
|
|
||||||
flex-wrap: wrap !important
|
flex-wrap: wrap !important
|
||||||
|
|
||||||
.scan-field
|
.scan-field
|
||||||
@@ -304,4 +316,5 @@ export default {
|
|||||||
background: var(--bg-light-grey)
|
background: var(--bg-light-grey)
|
||||||
border-radius: 4px
|
border-radius: 4px
|
||||||
width: fit-content
|
width: fit-content
|
||||||
|
padding: 8px 16px 8px 8px
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user