Adds comprehensive services management for employees
Introduces advanced drag-and-drop services selection interface with dynamic filtering and editing capabilities Enables employees to: - Customize service list with multi-select and drag functionality - Search and filter available services - Override individual service prices and durations - Manage services across expandable panel Supports responsive and interactive service management workflow
This commit is contained in:
parent
e86948a984
commit
439903fda4
3 changed files with 1100 additions and 143 deletions
125
wwwroot/data/kk-services.json
Normal file
125
wwwroot/data/kk-services.json
Normal file
|
|
@ -0,0 +1,125 @@
|
||||||
|
{
|
||||||
|
"Klip dame, herre og børn": [
|
||||||
|
{ "name": "Dameklip", "duration": 60, "price": 725 },
|
||||||
|
{ "name": "Dameklip uden snak", "duration": 60, "price": 725 },
|
||||||
|
{ "name": "Dameklip spidser mellemlangt og langt hår", "duration": 40, "price": 575 },
|
||||||
|
{ "name": "Dameklip Luksus ekstra glans og pleje", "duration": 75, "price": 925 },
|
||||||
|
{ "name": "Herreklip", "duration": 60, "price": 645 },
|
||||||
|
{ "name": "Herreklip uden snak", "duration": 60, "price": 645 },
|
||||||
|
{ "name": "Skin fade", "duration": 60, "price": 645 },
|
||||||
|
{ "name": "Klip med maskine (herre klip)", "duration": 30, "price": 475 },
|
||||||
|
{ "name": "Børneklip 0-4 år", "duration": 45, "price": 475 },
|
||||||
|
{ "name": "Børneklip 4-8 år", "duration": 45, "price": 525 },
|
||||||
|
{ "name": "Touch up Dame", "duration": 10, "price": 0 },
|
||||||
|
{ "name": "Touch up Herre", "duration": 10, "price": 0 },
|
||||||
|
{ "name": "Pandehår helt nyt", "duration": 20, "price": 325 },
|
||||||
|
{ "name": "Konsultation uden behandling", "duration": 10, "price": 0 },
|
||||||
|
{ "name": "Herreklip", "duration": 60, "price": 550 },
|
||||||
|
{ "name": "Klip med maskine (herre klip)", "duration": 45, "price": 525 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Farvebehandlinger": [
|
||||||
|
{ "name": "Bundfarve almindelig udgroning maks 3 cm", "duration": 90, "price": 785 },
|
||||||
|
{ "name": "Helfarve kort hår", "duration": 105, "price": 950 },
|
||||||
|
{ "name": "Helfarve mellemlangt hår", "duration": 120, "price": 1450 },
|
||||||
|
{ "name": "Helfarve langt hår", "duration": 120, "price": 1550 },
|
||||||
|
{ "name": "Bundfarve/ Lysning", "duration": 105, "price": 975 },
|
||||||
|
{ "name": "Afblegning kort hår + gloss", "duration": 150, "price": 1895 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Striber/ Refleksbehandling": [
|
||||||
|
{ "name": "Striber kort hår", "duration": 120, "price": 1465 },
|
||||||
|
{ "name": "Striber mellemlangt hår", "duration": 150, "price": 1665 },
|
||||||
|
{ "name": "Striber langt hår", "duration": 180, "price": 1865 },
|
||||||
|
{ "name": "Striber på toppen/ overhår", "duration": 90, "price": 1065 },
|
||||||
|
{ "name": "Striber babylights tæt lysning mellemlangt hår", "duration": 180, "price": 2650 },
|
||||||
|
{ "name": "Striber babylights tæt lysning langt hår", "duration": 180, "price": 2850 },
|
||||||
|
{ "name": "Striber babylights tæt lysning på toppen", "duration": 120, "price": 1650 },
|
||||||
|
{ "name": "AirTouch skulderlangt hår", "duration": 210, "price": 3250 },
|
||||||
|
{ "name": "AirTouch langt hår", "duration": 240, "price": 3850 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Hårvask med styling eller uden styling": [
|
||||||
|
{ "name": "Hårvask uden styling", "duration": 30, "price": 265 },
|
||||||
|
{ "name": "Hårvask med styling (kun føn)", "duration": 40, "price": 450 },
|
||||||
|
{ "name": "Vask + Styling med varme glatning/krøller (mellemlangt/langt)", "duration": 60, "price": 650 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Henna naturlig hårfarver": [
|
||||||
|
{ "name": "Henna kort hår", "duration": 90, "price": 965 },
|
||||||
|
{ "name": "Henna mellemlangt/langt hår", "duration": 90, "price": 1265 },
|
||||||
|
{ "name": "Henna bundfarve", "duration": 90, "price": 750 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Kurbehandling": [
|
||||||
|
{ "name": "Olaplex Stand alone", "duration": 60, "price": 550 },
|
||||||
|
{ "name": "Kurbehandling fugt/protein", "duration": 40, "price": 365 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Bryn og vipper": [
|
||||||
|
{ "name": "Farvning vipper & bryn", "duration": 30, "price": 345 },
|
||||||
|
{ "name": "Farvning vipper", "duration": 20, "price": 185 },
|
||||||
|
{ "name": "Farvning og retning af bryn", "duration": 20, "price": 185 },
|
||||||
|
{ "name": "Retning af bryn", "duration": 10, "price": 100 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Balayage": [
|
||||||
|
{ "name": "Balayage maks til skulderen", "duration": 150, "price": 1850 },
|
||||||
|
{ "name": "Balayage maks skulder + gloss/toning", "duration": 180, "price": 2250 },
|
||||||
|
{ "name": "Balayage langt hår", "duration": 150, "price": 2150 },
|
||||||
|
{ "name": "Balayage langt hår + gloss/toning", "duration": 180, "price": 2550 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Skæg": [
|
||||||
|
{ "name": "Skægtrim", "duration": 20, "price": 300 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Gloss": [
|
||||||
|
{ "name": "Gloss ekstra langt/tykt hår", "duration": 75, "price": 900 },
|
||||||
|
{ "name": "Glossing kort hår", "duration": 60, "price": 685 },
|
||||||
|
{ "name": "Glossing mellemlangt/ langt hår", "duration": 60, "price": 745 },
|
||||||
|
{ "name": "Glossing mænd", "duration": 40, "price": 350 },
|
||||||
|
{ "name": "Gloss ifb. anden farvebehandling", "duration": 20, "price": 450 },
|
||||||
|
{ "name": "Gloss ifb. anden farvebehandling", "duration": 30, "price": 450 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Håropsætning": [
|
||||||
|
{ "name": "Håropsætning kort hår", "duration": 60, "price": 850 },
|
||||||
|
{ "name": "Håropsætning langt hår", "duration": 60, "price": 1450 },
|
||||||
|
{ "name": "Håropsætning Brud/brudepiger/Galla/Oscar", "duration": 90, "price": 1599 },
|
||||||
|
{ "name": "Make-up Special Brud/Galla mm", "duration": 90, "price": 3000 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Modeller": [
|
||||||
|
{ "name": "Dameklip Model", "duration": 60, "price": 0 },
|
||||||
|
{ "name": "Herreklip Model", "duration": 60, "price": 0 },
|
||||||
|
{ "name": "Balayage Model", "duration": 240, "price": 0 },
|
||||||
|
{ "name": "Striber Model", "duration": 180, "price": 0 },
|
||||||
|
{ "name": "Bryn & Vippe Model", "duration": 40, "price": 0 },
|
||||||
|
{ "name": "Bundfarve Model", "duration": 120, "price": 0 },
|
||||||
|
{ "name": "Gloss", "duration": 30, "price": 0 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Tristan farve modeller": [
|
||||||
|
{ "name": "Bundfarve med HP/HPF", "duration": 90, "price": 325 },
|
||||||
|
{ "name": "Striber Model", "duration": 240, "price": 400 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Uden kategori": [
|
||||||
|
{ "name": "P-afgift", "duration": 0, "price": -25 },
|
||||||
|
{ "name": "Børneklip 9-12 år", "duration": 60, "price": 450 }
|
||||||
|
],
|
||||||
|
|
||||||
|
"Tilvalg services": [
|
||||||
|
{ "name": "Touch up kur", "duration": 15, "price": 175 },
|
||||||
|
{ "name": "Root shading", "duration": 30, "price": 425 },
|
||||||
|
{ "name": "Styling med varme (efter behandling)", "duration": 60, "price": 475 },
|
||||||
|
{ "name": "Styling kort hår (efter farve)", "duration": 20, "price": 175 },
|
||||||
|
{ "name": "Olaplex efter afblegning", "duration": 10, "price": 325 },
|
||||||
|
{ "name": "Let afrensning af gloss/klor/kemi", "duration": 20, "price": 220 },
|
||||||
|
{ "name": "Forpigmentering", "duration": 20, "price": 300 },
|
||||||
|
{ "name": "Knække bund ifb. farvebehandling", "duration": 20, "price": 400 },
|
||||||
|
{ "name": "Olaplex i farve", "duration": 10, "price": 230 },
|
||||||
|
{ "name": "Metal DX intens kur redken gloss", "duration": 20, "price": 225 }
|
||||||
|
]
|
||||||
|
}
|
||||||
2
wwwroot/icons/drag.svg
Normal file
2
wwwroot/icons/drag.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
|
<svg fill="#000000" width="800px" height="800px" viewBox="-32 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"/></svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue