Compare commits
67 Commits
piyango-Id
...
8cae0be757
| Author | SHA1 | Date | |
|---|---|---|---|
| 8cae0be757 | |||
| 4024d539d7 | |||
| 1ba8b9b269 | |||
| da432261ba | |||
| 58cd065977 | |||
| 4f6b14b43c | |||
| 51264f9e72 | |||
| 674c0b2e1e | |||
| e07a867023 | |||
| b31b075e1f | |||
| 76523182da | |||
| fe132ec672 | |||
| 206eb2ab44 | |||
| f7d47af153 | |||
| fb99deeaeb | |||
| c34d64d505 | |||
| 457cb58256 | |||
| eff6b4e27e | |||
| bb2765c0ac | |||
| db77c305ce | |||
| fdc2372288 | |||
| 216cf1fb73 | |||
| 97f60c8df9 | |||
| 95da9eb689 | |||
| 7379f4ae5e | |||
| 847b1c1b37 | |||
| 62dbaef278 | |||
| aae7512498 | |||
| 75ff9823fe | |||
| 3b9173b881 | |||
| fb1ddf085a | |||
| b1274cf3ab | |||
| 9650194cb9 | |||
| 9e6c1f3840 | |||
| 343e93c168 | |||
| b1c23985ff | |||
| a4358afa11 | |||
| 9869edf4a6 | |||
| 624b8fae56 | |||
| 6c44487489 | |||
| 7353d957c1 | |||
| 915aa1757e | |||
| 10d95b6763 | |||
| 97a77a2a37 | |||
| 2338cf04d8 | |||
| de3a1f549a | |||
| b521ad0278 | |||
| 7872259102 | |||
| 7cff75e82c | |||
| 92d0a0dde7 | |||
| a4e2a922d3 | |||
| 190815193a | |||
| 26f843416d | |||
| 7adabf5abd | |||
| ed8b6fd3eb | |||
| 7776e24ddd | |||
| 408724cf67 | |||
| f4c0511afb | |||
| 7998b7bd6c | |||
| 6ff319cb1d | |||
| 10011eacd6 | |||
| 36d646e0bf | |||
| 908e63b896 | |||
| 0e130eafff | |||
| ff0304b4d9 | |||
| 0d58b0ad10 | |||
| 9a66af25c2 |
2
.env.development
Normal file
2
.env.development
Normal file
@ -0,0 +1,2 @@
|
||||
VITE_API_URL=http://panelapi.cekilisevitest.gov.tr/
|
||||
VITE_SOCKET_URL=http://panelapi.cekilisevitest.gov.tr/uploadHub
|
||||
2
.env.localdev
Normal file
2
.env.localdev
Normal file
@ -0,0 +1,2 @@
|
||||
VITE_API_URL=https://localhost:7241/
|
||||
VITE_SOCKET_URL=https://localhost:7241/uploadHub
|
||||
2
.env.production
Normal file
2
.env.production
Normal file
@ -0,0 +1,2 @@
|
||||
VITE_API_URL=https://panelapi.cekilisevi.gov.tr/
|
||||
VITE_SOCKET_URL=https://panelapi.cekilisevi.gov.tr/uploadHub
|
||||
7
env.d.ts
vendored
7
env.d.ts
vendored
@ -1,2 +1,9 @@
|
||||
/// <reference types="vite/client" />
|
||||
|
||||
interface ImportMetaEnv {
|
||||
readonly VITE_API_URL: string;
|
||||
}
|
||||
|
||||
interface ImportMeta {
|
||||
readonly env: ImportMetaEnv;
|
||||
}
|
||||
588
package-lock.json
generated
588
package-lock.json
generated
@ -54,13 +54,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
|
||||
"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
|
||||
"version": "7.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
|
||||
"integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/highlight": "^7.24.7",
|
||||
"picocolors": "^1.0.0"
|
||||
"@babel/helper-validator-identifier": "^7.27.1",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@ -278,17 +280,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
||||
"version": "7.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
|
||||
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
||||
"version": "7.27.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
|
||||
"integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
@ -303,39 +307,26 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.25.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
|
||||
"integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
|
||||
"version": "7.28.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz",
|
||||
"integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.25.0",
|
||||
"@babel/types": "^7.25.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/highlight": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
||||
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.24.7",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.0.0"
|
||||
"@babel/template": "^7.27.2",
|
||||
"@babel/types": "^7.28.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
|
||||
"integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
|
||||
"version": "7.28.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz",
|
||||
"integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.9"
|
||||
"@babel/types": "^7.28.2"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
@ -394,14 +385,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.25.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
|
||||
"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
|
||||
"version": "7.27.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
|
||||
"integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.24.7",
|
||||
"@babel/parser": "^7.25.0",
|
||||
"@babel/types": "^7.25.0"
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/parser": "^7.27.2",
|
||||
"@babel/types": "^7.27.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@ -426,12 +418,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
|
||||
"integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
|
||||
"version": "7.28.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz",
|
||||
"integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.25.9",
|
||||
"@babel/helper-validator-identifier": "^7.25.9"
|
||||
"@babel/helper-string-parser": "^7.27.1",
|
||||
"@babel/helper-validator-identifier": "^7.27.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@ -913,208 +906,294 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.1.tgz",
|
||||
"integrity": "sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz",
|
||||
"integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.1.tgz",
|
||||
"integrity": "sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz",
|
||||
"integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.1.tgz",
|
||||
"integrity": "sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz",
|
||||
"integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.1.tgz",
|
||||
"integrity": "sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz",
|
||||
"integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz",
|
||||
"integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz",
|
||||
"integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.1.tgz",
|
||||
"integrity": "sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz",
|
||||
"integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.1.tgz",
|
||||
"integrity": "sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz",
|
||||
"integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.1.tgz",
|
||||
"integrity": "sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.1.tgz",
|
||||
"integrity": "sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz",
|
||||
"integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.1.tgz",
|
||||
"integrity": "sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==",
|
||||
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.1.tgz",
|
||||
"integrity": "sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz",
|
||||
"integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.1.tgz",
|
||||
"integrity": "sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.1.tgz",
|
||||
"integrity": "sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz",
|
||||
"integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.1.tgz",
|
||||
"integrity": "sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz",
|
||||
"integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.1.tgz",
|
||||
"integrity": "sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==",
|
||||
"node_modules/@rollup/rollup-openharmony-arm64": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz",
|
||||
"integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openharmony"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz",
|
||||
"integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.1.tgz",
|
||||
"integrity": "sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz",
|
||||
"integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.1.tgz",
|
||||
"integrity": "sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz",
|
||||
"integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
@ -1127,10 +1206,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||
"dev": true
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
|
||||
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/html-to-pdfmake": {
|
||||
"version": "2.4.4",
|
||||
@ -1489,30 +1569,20 @@
|
||||
"node": ">=6.5"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^1.9.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
|
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
|
||||
"integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
"form-data": "^4.0.4",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
}
|
||||
},
|
||||
@ -1536,10 +1606,11 @@
|
||||
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
@ -1602,6 +1673,19 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bind-apply-helpers": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/camelcase": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
|
||||
@ -1634,20 +1718,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/clone": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
|
||||
@ -1656,25 +1726,11 @@
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
@ -1695,10 +1751,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
@ -1804,6 +1861,7 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
@ -1813,6 +1871,20 @@
|
||||
"resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz",
|
||||
"integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="
|
||||
},
|
||||
"node_modules/dunder-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.3",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.3.tgz",
|
||||
@ -1831,12 +1903,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
},
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
||||
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
@ -1849,6 +1919,33 @@
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-object-atoms": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-set-tostringtag": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
|
||||
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.6",
|
||||
"has-tostringtag": "^1.0.2",
|
||||
"hasown": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
|
||||
@ -1896,15 +1993,6 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
@ -1965,12 +2053,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
|
||||
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"es-set-tostringtag": "^2.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
@ -1983,6 +2074,7 @@
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@ -2017,15 +2109,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
||||
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"es-define-property": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-object-atoms": "^1.1.1",
|
||||
"function-bind": "^1.1.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
"hasown": "^2.0.0"
|
||||
"get-proto": "^1.0.1",
|
||||
"gopd": "^1.2.0",
|
||||
"has-symbols": "^1.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"math-intrinsics": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@ -2034,6 +2132,19 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/get-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dunder-proto": "^1.0.1",
|
||||
"es-object-atoms": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "11.12.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
|
||||
@ -2044,25 +2155,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/gopd": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.1.3"
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
||||
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/has-property-descriptors": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
||||
@ -2074,21 +2177,11 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-proto": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
||||
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@ -2230,7 +2323,8 @@
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/jsesc": {
|
||||
"version": "2.5.2",
|
||||
@ -2302,6 +2396,15 @@
|
||||
"@jridgewell/sourcemap-codec": "^1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/math-intrinsics": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/memorystream": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
|
||||
@ -2315,6 +2418,7 @@
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -2323,6 +2427,7 @@
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
@ -2771,12 +2876,13 @@
|
||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.19.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.1.tgz",
|
||||
"integrity": "sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==",
|
||||
"version": "4.50.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz",
|
||||
"integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.5"
|
||||
"@types/estree": "1.0.8"
|
||||
},
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
@ -2786,22 +2892,27 @@
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.19.1",
|
||||
"@rollup/rollup-android-arm64": "4.19.1",
|
||||
"@rollup/rollup-darwin-arm64": "4.19.1",
|
||||
"@rollup/rollup-darwin-x64": "4.19.1",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.19.1",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.19.1",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.19.1",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.19.1",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.19.1",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.19.1",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.19.1",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.19.1",
|
||||
"@rollup/rollup-linux-x64-musl": "4.19.1",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.19.1",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.19.1",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.19.1",
|
||||
"@rollup/rollup-android-arm-eabi": "4.50.0",
|
||||
"@rollup/rollup-android-arm64": "4.50.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.50.0",
|
||||
"@rollup/rollup-darwin-x64": "4.50.0",
|
||||
"@rollup/rollup-freebsd-arm64": "4.50.0",
|
||||
"@rollup/rollup-freebsd-x64": "4.50.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.50.0",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.50.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.50.0",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-ppc64-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.50.0",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.50.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.50.0",
|
||||
"@rollup/rollup-openharmony-arm64": "4.50.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.50.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.50.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.50.0",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
@ -2911,18 +3022,6 @@
|
||||
"node": ">=17.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/svg-tags": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
|
||||
@ -3066,14 +3165,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.3.5",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz",
|
||||
"integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==",
|
||||
"version": "5.4.19",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
|
||||
"integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"esbuild": "^0.21.3",
|
||||
"postcss": "^8.4.39",
|
||||
"rollup": "^4.13.0"
|
||||
"postcss": "^8.4.43",
|
||||
"rollup": "^4.20.0"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
@ -3092,6 +3192,7 @@
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"sass-embedded": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
@ -3109,6 +3210,9 @@
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"sass-embedded": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
|
||||
@ -5,9 +5,12 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"localdev": "vite",
|
||||
"build": "run-p type-check \"build-only {@}\" --",
|
||||
"buildtest": "run-p type-check \"build-only-test {@}\" --",
|
||||
"preview": "vite preview",
|
||||
"build-only": "vite build",
|
||||
"build-only-test": "vite build --mode development",
|
||||
"type-check": "vue-tsc --build --force"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
BIN
public/data/mpi-sablon.zip
Normal file
BIN
public/data/mpi-sablon.zip
Normal file
Binary file not shown.
@ -237,4 +237,18 @@
|
||||
d="M16.1362 14.1067H14.7781C14.3632 14.1067 14.0268 14.4424 14.0268 14.8564V19.8401C14.0268 20.2541 14.3632 20.5897 14.7781 20.5897H16.1362C16.5511 20.5897 16.8875 20.2541 16.8875 19.8401V14.8564C16.8875 14.4424 16.5511 14.1067 16.1362 14.1067Z"
|
||||
/>
|
||||
</symbol>
|
||||
<symbol id="trash" viewBox="0 0 20 22">
|
||||
<path
|
||||
d="M19.4015 6.14128H18.7672L18.8227 5.47865C18.8227 5.47865 18.8227 5.44229 18.8227 5.42613C18.8227 3.9837 17.6691 2.80795 16.2538 2.80795H14.8544V1.78976C14.8544 0.803906 14.0695 0.00390625 13.1022 0.00390625H6.88614C5.91885 0.00390625 5.13391 0.803906 5.13391 1.78976V2.80795H3.73451C2.31924 2.80795 1.16563 3.9837 1.16563 5.42613C1.16563 5.44229 1.16563 5.46249 1.16563 5.47865L1.22113 6.14128H0.586836C0.257797 6.14128 -0.0078125 6.41199 -0.0078125 6.74734C-0.0078125 7.08269 0.257797 7.3534 0.586836 7.3534H1.3242L2.35096 19.41C2.36682 20.8403 3.5125 21.9999 4.91984 21.9999H15.0645C16.4719 21.9999 17.6176 20.8403 17.6334 19.41L18.6602 7.3534H19.3975C19.7266 7.3534 19.9922 7.08269 19.9922 6.74734C19.9922 6.41199 19.7266 6.14128 19.3975 6.14128H19.4015ZM6.32321 1.78572C6.32321 1.46653 6.57692 1.21199 6.88614 1.21199H13.1022C13.4154 1.21199 13.6651 1.47057 13.6651 1.78572V2.80391H6.32321V1.78572ZM2.35492 5.40189C2.36682 4.63825 2.98129 4.02007 3.73451 4.02007H16.2578C17.011 4.02007 17.6255 4.63825 17.6374 5.40189L17.5739 6.14128H2.41835L2.35492 5.40189ZM16.452 19.3292C16.452 19.3292 16.452 19.3655 16.452 19.3817C16.452 20.1574 15.8336 20.7877 15.0725 20.7877H4.9238C4.16265 20.7877 3.54422 20.1574 3.54422 19.3817C3.54422 19.3655 3.54422 19.3453 3.54422 19.3292L2.52539 7.3534H17.4748L16.456 19.3292H16.452Z"
|
||||
/>
|
||||
<path
|
||||
d="M14.7236 13.9756H5.2687C4.93966 13.9756 4.67405 14.2463 4.67405 14.5817C4.67405 14.917 4.93966 15.1877 5.2687 15.1877H14.7196C15.0487 15.1877 15.3143 14.917 15.3143 14.5817C15.3143 14.2463 15.0487 13.9756 14.7196 13.9756H14.7236Z"
|
||||
/>
|
||||
<path
|
||||
d="M4.87227 11.6766H15.1161C15.4451 11.6766 15.7107 11.4059 15.7107 11.0706C15.7107 10.7352 15.4451 10.4645 15.1161 10.4645H4.87227C4.54323 10.4645 4.27762 10.7352 4.27762 11.0706C4.27762 11.4059 4.54323 11.6766 4.87227 11.6766Z"
|
||||
/>
|
||||
<path
|
||||
d="M14.3272 17.4867H5.66513C5.33609 17.4867 5.07048 17.7574 5.07048 18.0928C5.07048 18.4281 5.33609 18.6989 5.66513 18.6989H14.3232C14.6522 18.6989 14.9179 18.4281 14.9179 18.0928C14.9179 17.7574 14.6522 17.4867 14.3232 17.4867H14.3272Z"
|
||||
/>
|
||||
</symbol>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 43 KiB |
@ -659,7 +659,9 @@ svg {
|
||||
max-width: 24px;
|
||||
max-height: 24px;
|
||||
}
|
||||
|
||||
.ico-c.ico-btn:hover{
|
||||
background-color: navy;
|
||||
}
|
||||
/* colors */
|
||||
.back-grad {
|
||||
padding: 6px 8px;
|
||||
@ -715,7 +717,11 @@ svg {
|
||||
color: #000;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.back-grad-dgrey {
|
||||
background-image: linear-gradient(24deg, #797979, #a1a1a1);
|
||||
color: #000;
|
||||
padding: 12px;
|
||||
}
|
||||
.back-grey {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
@ -13,6 +13,10 @@
|
||||
v-if="localData.content !== undefined && localData.content !== ''">
|
||||
{{ localData.content }}
|
||||
</div>
|
||||
<div
|
||||
class="dialog-content"
|
||||
v-if="localData.contentHtml !== undefined && localData.contentHtml !== ''"
|
||||
v-html="localData.contentHtml"></div>
|
||||
<div class="dialog-footer">
|
||||
<template
|
||||
v-if="localData.buttons !== undefined && localData.buttons.length > 0"
|
||||
@ -49,6 +53,7 @@
|
||||
const localData = reactive({
|
||||
title: '',
|
||||
content: '',
|
||||
contentHtml: '',
|
||||
showClose: true,
|
||||
closeText: 'Kapat',
|
||||
closeFunction: () => {
|
||||
|
||||
@ -18,14 +18,17 @@
|
||||
{{ fileName }}
|
||||
</div>
|
||||
</a>
|
||||
<div class="actions-c" v-if="editable || $slots.actionButtons">
|
||||
<slot name="actionButtons"></slot>
|
||||
<i
|
||||
class="ico-c ico-section ico-section-header-btn ico-replace"
|
||||
class="ico-c ico-section ico-btn back-grad-dgrey"
|
||||
@click="OnClick"
|
||||
v-if="editable">
|
||||
<svg><use href="/src/assets/images/icons.svg#replace"></use></svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class="form-item-picture only-image clickable">
|
||||
@ -35,13 +38,16 @@
|
||||
</div>
|
||||
<div v-else>{{ fileType.toLocaleUpperCase() }}</div>
|
||||
</a>
|
||||
<div class="actions-c actions-top" v-if="editable || $slots.actionButtons">
|
||||
<slot name="actionButtons"></slot>
|
||||
<i
|
||||
class="ico-c ico-section ico-section-header-btn ico-replace"
|
||||
class="ico-c ico-section ico-btn back-grad-dgrey"
|
||||
@click="OnClick"
|
||||
v-if="editable">
|
||||
<svg><use href="/src/assets/images/icons.svg#replace"></use></svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@ -75,8 +81,8 @@
|
||||
|
||||
if (props.filePath !== undefined && props.filePath !== null) {
|
||||
localFilePath.value = props.usePath
|
||||
? props.filePath as string
|
||||
: (axios.defaults.baseURL as string + props.filePath as string) as string
|
||||
? (props.filePath as string)
|
||||
: (((axios.defaults.baseURL as string) + props.filePath) as string as string)
|
||||
|
||||
fileType.value = globalStore.FileType(localFilePath.value)
|
||||
fileName.value = globalStore.FileName(localFilePath.value)
|
||||
@ -96,8 +102,29 @@
|
||||
() => props.filePath,
|
||||
() => {
|
||||
localFilePath.value = props.usePath
|
||||
? props.filePath as string
|
||||
: (axios.defaults.baseURL as string + props.filePath as string) as string
|
||||
? (props.filePath as string)
|
||||
: (((axios.defaults.baseURL as string) + props.filePath) as string as string)
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style scoped>
|
||||
.actions-c {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
padding: 8px;
|
||||
align-items: center;
|
||||
pointer-events: fill;
|
||||
}
|
||||
.actions-c.actions-top{
|
||||
align-items: flex-start;
|
||||
}
|
||||
.form-item-picture.only-image{
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
}
|
||||
.actions-c .ico-btn:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -91,9 +91,9 @@
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'change', 'click'])
|
||||
|
||||
const localValue = ref<(string | number)[] | boolean | null | string | number|undefined>(
|
||||
props.modelValue
|
||||
)
|
||||
const localValue = ref<
|
||||
(string | number)[] | boolean | null | string | number | undefined
|
||||
>(props.modelValue)
|
||||
|
||||
const InvalidMessageText = reactive<Record<string, any>>({})
|
||||
const InvalidMessages = computed<string>(() => {
|
||||
|
||||
@ -161,6 +161,7 @@
|
||||
computeHtml?: Function
|
||||
sort?: boolean
|
||||
filter?: Record<string, any>
|
||||
style?: Record<string, any>
|
||||
}
|
||||
interface IPagination {
|
||||
[key: string]: any
|
||||
@ -296,18 +297,47 @@
|
||||
GetLocalData()
|
||||
}
|
||||
const GetLocalData = async () => {
|
||||
console.log("GetLocalData",selectedExport.value)
|
||||
if (selectedExport.value !== null) {
|
||||
const exportUrl =
|
||||
axios.defaults.baseURL + dataStore.apiBase + props.apiList + '?isPdf=true'
|
||||
let exportUrl = ''
|
||||
let fileType = ''
|
||||
let fileName = ''
|
||||
|
||||
// Export tipine göre URL ve dosya ayarları
|
||||
if (selectedExport.value === 1) {
|
||||
// PDF
|
||||
exportUrl = axios.defaults.baseURL + dataStore.apiBase + props.apiList + '/Pdf'
|
||||
fileType = 'application/pdf'
|
||||
fileName = 'export.pdf'
|
||||
} else if (selectedExport.value === 2) {
|
||||
// Excel
|
||||
exportUrl = axios.defaults.baseURL + dataStore.apiBase + props.apiList + '/Excel'
|
||||
fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
||||
fileName = 'export.xlsx'
|
||||
}
|
||||
|
||||
console.log("dataStore",dataStore)
|
||||
|
||||
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
|
||||
try {
|
||||
const response = await axios.get(exportUrl, {
|
||||
responseType: 'blob'
|
||||
})
|
||||
|
||||
const blob = new Blob([response.data], { type: fileType })
|
||||
const url = window.URL.createObjectURL(blob)
|
||||
const link = document.createElement('a')
|
||||
link.href = exportUrl
|
||||
link.href = url
|
||||
link.download = fileName
|
||||
document.body.appendChild(link)
|
||||
link.dispatchEvent(
|
||||
new MouseEvent('click', { bubbles: true, cancelable: true, view: window })
|
||||
)
|
||||
link.remove()
|
||||
window.URL.revokeObjectURL(link.href)
|
||||
window.URL.revokeObjectURL(url)
|
||||
} catch (error) {
|
||||
console.error('Export error:', error)
|
||||
}
|
||||
|
||||
selectedExport.value = null
|
||||
exportPanel.value = false
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-content-item" v-if="showExport">
|
||||
<!-- <div class="panel-content-item" v-if="showExport">
|
||||
<div class="button-c button-icon button-export" @click="SelectExport(3)">
|
||||
<i class="ico-c">
|
||||
<svg>
|
||||
@ -31,7 +31,7 @@
|
||||
</i>
|
||||
<span class="panel-date">CSV</span>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@ -45,7 +45,7 @@
|
||||
const emit = defineEmits(['update:selectedExport'])
|
||||
|
||||
const selected = ref<number>(0)
|
||||
const showExport = ref<boolean>(false)
|
||||
const showExport = ref<boolean>(true)
|
||||
|
||||
const SelectExport = (exp: number) => {
|
||||
selected.value = exp
|
||||
|
||||
@ -2,7 +2,7 @@ import axios from 'axios'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
import router from '@/router'
|
||||
|
||||
axios.defaults.baseURL = 'https://panelapi.cekilisevi.gov.tr/'
|
||||
axios.defaults.baseURL = import.meta.env.VITE_API_URL
|
||||
//axios.defaults.timeout = 2000;
|
||||
axios.defaults.headers['Content-Type'] = 'application/json; charset=utf-8'
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
|
||||
@ -109,7 +109,7 @@
|
||||
{
|
||||
title: 'Site Yönetimi',
|
||||
ico: 'sitemanagement',
|
||||
show: usersStore.isPanelUser && !usersStore.isAccounting,
|
||||
show: usersStore.isSuperAdmin,
|
||||
sub: [
|
||||
{
|
||||
title: 'Yeni Sayfa',
|
||||
@ -142,6 +142,10 @@
|
||||
title: 'Piyango Listesi',
|
||||
to: '/muhasebe/piyango-listesi'
|
||||
},
|
||||
{
|
||||
title: 'İzin Bedel Oranı',
|
||||
to: '/muhasebe/izin-bedel-orani'
|
||||
},
|
||||
{
|
||||
title: 'Ayarlar',
|
||||
to: '/muhasebe/ayarlar'
|
||||
|
||||
@ -80,8 +80,8 @@
|
||||
v-model="uyeBilgileriStore.formData.gercekVergiNo"
|
||||
required
|
||||
label="Vergi No"
|
||||
maxlength="11"
|
||||
minlength="11"
|
||||
maxlength="10"
|
||||
minlength="10"
|
||||
:invalidText="uyeBilgileriStore.invalidTexts.gercekVergiNo"
|
||||
@keydown="validationStore.allowNumbersWithKeys" />
|
||||
|
||||
@ -355,8 +355,6 @@
|
||||
const globalDataStore = useGlobalDataStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { useAuthValidationStore } from '../stores/authValidationStore'
|
||||
const authValidationStore = useAuthValidationStore()
|
||||
import router from '@/router'
|
||||
@ -365,12 +363,6 @@
|
||||
const uyeBilgileriStore = useUyeBilgileriStore()
|
||||
uyeBilgileriStore.ResetStore()
|
||||
|
||||
interface IIl {
|
||||
[key: string]: any
|
||||
ad: string
|
||||
id: number
|
||||
}
|
||||
|
||||
const kvkkCheck = ref([
|
||||
{
|
||||
label: '',
|
||||
|
||||
14
src/module/cekilisler/components/TabPiyangoDosyaKapama.vue
Normal file
14
src/module/cekilisler/components/TabPiyangoDosyaKapama.vue
Normal file
@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div class="form-content">
|
||||
<div class="form-inner-content form-inner-content-left">
|
||||
<form-piyango-dosya-kapama />
|
||||
</div>
|
||||
<div class="form-inner-content form-inner-content-left">
|
||||
<form-piyango-dosya-kapama-ikramiye-listesi />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import FormPiyangoDosyaKapama from './form/FormPiyangoDosyaKapama.vue'
|
||||
import FormPiyangoDosyaKapamaIkramiyeListesi from './form/FormPiyangoDosyaKapamaIkramiyeListesi.vue'
|
||||
</script>
|
||||
@ -57,7 +57,12 @@
|
||||
<panel-katilimci-document />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<button class="button-c button-save" @click="FileUpload">Yükle</button>
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="FileUpload"
|
||||
:disabled="uploadProgressPanel">
|
||||
Yükle
|
||||
</button>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
<panel-wrapper
|
||||
@ -142,18 +147,10 @@
|
||||
import { usePiyangoOnayService } from '../service/piyangoOnayService'
|
||||
const piyangoOnayService = usePiyangoOnayService()
|
||||
|
||||
import {
|
||||
connectToHub,
|
||||
onProgress,
|
||||
onInsertProgress,
|
||||
onCompleted,
|
||||
onError
|
||||
} from '../service/signalrService'
|
||||
import { connectToHub, onProgress, onCompleted } from '../service/signalrService'
|
||||
|
||||
const uploadProgressValue = ref(0)
|
||||
const uploadProgressPanel = ref(false)
|
||||
const today = ref<Date>(new Date())
|
||||
const ilanTarihi = ref<Date>(new Date(piyangoStore.lotteryIlanTarihi!))
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>([
|
||||
{
|
||||
@ -315,8 +312,8 @@
|
||||
headers: { 'Content-Type': 'multipart/form-data' }
|
||||
}
|
||||
)
|
||||
|
||||
if (response.data !== 'errorfalse') {
|
||||
console.log('excel response', response)
|
||||
if (response !== 'errorfalse') {
|
||||
// Başarı işlemi zaten onCompleted içinde yapıldı
|
||||
} else {
|
||||
// Hata olursa paneli kapat
|
||||
|
||||
@ -8,6 +8,11 @@
|
||||
<form-piyango-onay-kisiler />
|
||||
</div>
|
||||
</!--div-->
|
||||
<div class="form-inner-content">
|
||||
<div class="form-part">
|
||||
<form-piyango-onay-durum />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inner-content">
|
||||
<div class="form-part">
|
||||
<form-piyango-onay-log />
|
||||
@ -16,6 +21,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import FormPiyangoOnayDurum from './form/FormPiyangoOnayDurum.vue'
|
||||
import FormPiyangoOnayLog from './form/FormPiyangoOnayLog.vue'
|
||||
import FormPiyangoOnay from './form/FormPiyangoOnay.vue'
|
||||
import FormPiyangoOnayKisiler from './form/FormPiyangoOnayKisiler.vue'
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div class="form-inner-content">
|
||||
<div class="form-part">
|
||||
<form-piyango-onay-log />
|
||||
<form-piyango-onay-durum />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -19,6 +19,6 @@
|
||||
import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
import FormPiyangoOnayLog from './form/FormPiyangoOnayLog.vue'
|
||||
import FormPiyangoOnayDurum from './form/FormPiyangoOnayDurum.vue'
|
||||
import FormPiyangoUserOnayaGonder from './form/FormPiyangoUserOnayaGonder.vue'
|
||||
</script>
|
||||
|
||||
@ -22,13 +22,20 @@
|
||||
v-if="
|
||||
usersStore.isPanelUser ||
|
||||
(!usersStore.isPanelUser &&
|
||||
piyangoStore.lotteryApprove !== 0 &&
|
||||
piyangoStore.lotteryApprove !== 1 &&
|
||||
piyangoStore.lotteryApprove !== 2 &&
|
||||
piyangoStore.lotteryApprove !== 3 &&
|
||||
!piyangoTeminatStore.isNew)
|
||||
" />
|
||||
<panel-piyango-teminat-durumu
|
||||
v-if="
|
||||
!usersStore.isPanelUser &&
|
||||
(piyangoStore.lotteryApprove === 3 || piyangoTeminatStore.isNew)
|
||||
(piyangoStore.lotteryApprove === 0 ||
|
||||
piyangoStore.lotteryApprove === 1 ||
|
||||
piyangoStore.lotteryApprove === 2 ||
|
||||
piyangoStore.lotteryApprove === 3 ||
|
||||
piyangoTeminatStore.isNew)
|
||||
" />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
@ -36,7 +43,15 @@
|
||||
class="button-c button-save"
|
||||
:disabled="!piyangoTeminatValidationStore.formChanged"
|
||||
@click="piyangoTeminatService.SaveTeminatDurum"
|
||||
v-if="piyangoTeminatStore.isNew || usersStore.isPanelUser">
|
||||
v-if="
|
||||
usersStore.isPanelUser ||
|
||||
(!usersStore.isPanelUser &&
|
||||
(piyangoStore.lotteryApprove === 0 ||
|
||||
piyangoStore.lotteryApprove === 1 ||
|
||||
piyangoStore.lotteryApprove === 2 ||
|
||||
piyangoStore.lotteryApprove === 3)) ||
|
||||
piyangoTeminatStore.isNew
|
||||
">
|
||||
Kaydet
|
||||
</button>
|
||||
</template>
|
||||
@ -143,10 +158,7 @@
|
||||
])
|
||||
|
||||
const teminatAddAction = computed(() => {
|
||||
if (
|
||||
!usersStore.isPanelUser
|
||||
)
|
||||
return NewTeminatDurum
|
||||
if (!usersStore.isPanelUser) return NewTeminatDurum
|
||||
else return ''
|
||||
})
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
</template>
|
||||
|
||||
<div class="form-inner-comment success-d" v-if="piyangoStore.lotteryApprove === 4">
|
||||
Başvuru onaylanmıştır.
|
||||
Başvuruya izin verildi.
|
||||
</div>
|
||||
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 5">
|
||||
Başvuru uygun görülmemiştir.
|
||||
@ -84,7 +84,7 @@
|
||||
Başvuru admin tarafından kapsam dışı olarak işaretlenmiştir.
|
||||
</template>
|
||||
</div>
|
||||
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 11">
|
||||
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 13">
|
||||
Kampanya için cezai işlem uygulanmıştır.
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -24,6 +24,19 @@
|
||||
v-model="piyangoStore.lotteryData.izinBedelNo"
|
||||
label="İzin Bedel No" />
|
||||
</template>
|
||||
|
||||
<form-display
|
||||
type="date"
|
||||
v-if="piyangoStore.lotteryData.izinTarihi !== undefined"
|
||||
v-model="piyangoStore.lotteryData.izinTarihi"
|
||||
half
|
||||
label="İzin Tarihi" />
|
||||
<form-display
|
||||
v-if="piyangoStore.lotteryData.izinSayisi !== undefined"
|
||||
v-model="piyangoStore.lotteryData.izinSayisi"
|
||||
half
|
||||
label="İzin Sayısı" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoStore.lotteryData.baslik"
|
||||
label="Piyango Başlığı"
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onBeforeMount } from 'vue'
|
||||
import { ref, onBeforeMount } from 'vue'
|
||||
import { usePDF } from 'vue3-pdfmake'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
@ -10,7 +10,15 @@
|
||||
:editable="false"
|
||||
:data="file"
|
||||
title="dokumanAdi"
|
||||
:filePath="file.url" />
|
||||
:filePath="file.url">
|
||||
<template #actionButtons v-if="usersStore.isPanelUser">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteDocumentPop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
</file-list-item>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@ -33,6 +41,35 @@
|
||||
const piyangoDocumentStore = usePiyangoDocumentStore()
|
||||
import { usePiyangoDocumentService } from '../../service/piyangoDocumentService'
|
||||
const piyangoDocumentService = usePiyangoDocumentService()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
|
||||
const DeleteDocumentPop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Doküman Sil',
|
||||
id: 'deletedoc',
|
||||
content: 'Dokümanı silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Doküman Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteDocument(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteDocument = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('Dokuman/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deletedoc')
|
||||
await piyangoDocumentService.GetDocumentList()
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await piyangoDocumentService.GetDocumentList()
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
</template>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount, watch } from 'vue'
|
||||
import { ref, onBeforeMount, watch } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
@ -36,8 +36,6 @@
|
||||
|
||||
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
|
||||
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
|
||||
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
|
||||
const piyangoIkramiyeService = usePiyangoIkramiyeService()
|
||||
|
||||
export interface Props {
|
||||
isPreview?: boolean
|
||||
@ -45,8 +43,6 @@
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), { isPreview: false })
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
|
||||
const ikramiyeTableHeader = ref<Record<string, any>>([
|
||||
{
|
||||
name: 'cinsi',
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
<div class="form-part">
|
||||
<div class="form-part-title">
|
||||
<h4>Piyango Resimleri</h4>
|
||||
<a href="/data/mpi-sablon.zip" class="button-c" target="_blank">
|
||||
Örnek Resim Şablonları
|
||||
</a>
|
||||
</div>
|
||||
<div class="form-part-content">
|
||||
<template v-for="(file, i) in fileList">
|
||||
@ -9,9 +12,19 @@
|
||||
:data="file"
|
||||
onlyPreview
|
||||
:editable="false"
|
||||
:filePath="file.resimYolu" />
|
||||
:filePath="file.resimYolu">
|
||||
<template #actionButtons v-if="usersStore.isPanelUser">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteImagePop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
<div v-if="usersStore.isPanelUser && fileList.length === 0" class="form-inner-comment">
|
||||
</file-list-item>
|
||||
</template>
|
||||
<div
|
||||
v-if="usersStore.isPanelUser && fileList.length === 0"
|
||||
class="form-inner-comment">
|
||||
Eklenmiş resim bulunamadı.
|
||||
</div>
|
||||
</div>
|
||||
@ -26,13 +39,43 @@
|
||||
const usersStore = useUsersStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
|
||||
const fileList = ref<Record<string, any>[]>([])
|
||||
|
||||
const GetData = async () => {
|
||||
let dt = await dataStore.dataGet('CekilisResim/Cekilis/' + piyangoStore.selectedLottery)
|
||||
let dt = await dataStore.dataGet(
|
||||
'CekilisResim/Cekilis/' + piyangoStore.selectedLottery
|
||||
)
|
||||
if (dt !== 'errorfalse') fileList.value.splice(0, fileList.value.length, ...dt.data)
|
||||
}
|
||||
|
||||
const DeleteImagePop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Resim Sil',
|
||||
id: 'deleteimage',
|
||||
content: 'Resimi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Resmi Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteImage(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteImage = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('CekilisResim/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteimage')
|
||||
await GetData()
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await GetData()
|
||||
})
|
||||
|
||||
@ -1,102 +0,0 @@
|
||||
<template>
|
||||
<div class="form-part form-title" v-if="usersStore.isPanelUser">
|
||||
<div class="form-title-buttons">
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="piyangoTeminatService.SaveTeminatDurum"
|
||||
:disabled="!piyangoTeminatValidationStore.formChanged">
|
||||
Kaydet
|
||||
</button>
|
||||
<button
|
||||
v-if="piyangoTeminatValidationStore.formChanged"
|
||||
class="button-c button-cancel panel-close"
|
||||
@click="piyangoTeminatStore.ResetFormData">
|
||||
Vazgeç
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="['form-part', piyangoTeminatValidationStore.formChanged ? 'changed' : '']"> <div
|
||||
class="form-part-content"
|
||||
v-if="piyangoTeminatStore.loaded">
|
||||
<form-select
|
||||
v-if="usersStore.isPanelUser"
|
||||
label="İşlem"
|
||||
:listData="piyangoDataStore.piyangoTeminatDurumlari"
|
||||
listText="value"
|
||||
listVal="id"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.state"
|
||||
required
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.state"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
|
||||
half
|
||||
label="Tutarı" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminatParentTypeText"
|
||||
half
|
||||
label="Para Birimi" />
|
||||
|
||||
<form-display
|
||||
label="Teminat Türü"
|
||||
half
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantChildTypeText" />
|
||||
|
||||
<form-display
|
||||
type="date"
|
||||
half
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantDate"
|
||||
label="Tarih" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantNo"
|
||||
half
|
||||
label="No" />
|
||||
<div class="form-item form-item-half"></div>
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankName"
|
||||
half
|
||||
label="Banka Adı" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankBranch"
|
||||
half
|
||||
label="Banka Şubesi" />
|
||||
|
||||
<!--form-display
|
||||
label="İşlem"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.stateText" /-->
|
||||
|
||||
<file-list-item
|
||||
title="Dosya"
|
||||
:data="piyangoTeminatStore.piyangoTeminatFormData"
|
||||
:editable="false"
|
||||
:filePath="piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl"
|
||||
:usePath="true"
|
||||
:onlyPreview="true" />
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.description"
|
||||
label="Açıklama" />
|
||||
</div></div>
|
||||
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { usePiyangoTeminatStore } from '../../stores/piyangoTeminatStore'
|
||||
const piyangoTeminatStore = usePiyangoTeminatStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoTeminatValidationStore } from '../../validation/piyangoTeminatValidationStore'
|
||||
const piyangoTeminatValidationStore = usePiyangoTeminatValidationStore()
|
||||
import { usePiyangoTeminatService } from '../../service/piyangoTeminatService'
|
||||
const piyangoTeminatService = usePiyangoTeminatService()
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoTeminatValidationStore.formChanged = true
|
||||
}
|
||||
</script>
|
||||
@ -3,8 +3,8 @@
|
||||
style="
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
font-size: 13pt;
|
||||
margin-bottom: 12px;
|
||||
font-size: 10pt;
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
">
|
||||
MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
|
||||
@ -18,18 +18,15 @@
|
||||
düzenlemek üzere, aşağıda belirtilen koşullarda piyango düzenlemek üzere gerekli iznin
|
||||
verilmesi hususunda bilgilerinizi ve gereğini arz ederiz.
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
<strong style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong style="font-size: 10pt; margin-bottom: 10px">
|
||||
PİYANGO İLE İLGİLİ BİLGİLER
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<strong style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong style="font-size: 10pt; margin-bottom: 10px">
|
||||
PİYANGO ID: {{ piyangoStore.lotteryData.piyangoId }}
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<table
|
||||
cellspacing="0"
|
||||
class="table-no-line"
|
||||
@ -37,7 +34,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong style="font-size: 10pt; margin-bottom: 10px">
|
||||
1- Piyangoyu Düzenleyenin
|
||||
</strong>
|
||||
</td>
|
||||
@ -48,7 +45,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
|
||||
<tr>
|
||||
@ -208,7 +205,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
Piyangoyu Yürütenin:
|
||||
</strong>
|
||||
</td>
|
||||
@ -257,7 +254,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
2- Kampanyanın:
|
||||
</strong>
|
||||
</td>
|
||||
@ -267,7 +264,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
@ -313,7 +310,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
3-Çekilişe katılma şekil ve şartları:
|
||||
</strong>
|
||||
</td>
|
||||
@ -324,7 +321,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -348,7 +345,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
4-Çekilişin;
|
||||
</strong>
|
||||
</td>
|
||||
@ -359,7 +356,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -409,7 +406,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
5-Çekiliş sonuçlarının ilan edileceği gazetenin:
|
||||
</strong>
|
||||
</td>
|
||||
@ -420,7 +417,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -469,7 +466,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -515,7 +512,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
7-Diğer hususlar:
|
||||
</strong>
|
||||
</td>
|
||||
@ -526,7 +523,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -555,7 +552,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
8-Piyangoya konu ikramiyeler:
|
||||
</strong>
|
||||
</td>
|
||||
@ -566,7 +563,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': ['10%', '30%', '15%', '15%', '15%', '15%'],'layout': 'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt"
|
||||
style="margin-bottom: 10px; font-size: 10pt"
|
||||
v-if="piyangoIkramiyeStore.piyangoAllIkramiyeData.length > 0">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -626,7 +623,7 @@
|
||||
cellspacing="0"
|
||||
class="table-no-line"
|
||||
data-pdfmake="{'widths': [ '50%', '30%','20%'],'layout':'pdfTableLayoutNoLine'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
@ -635,7 +632,13 @@
|
||||
</td>
|
||||
<td></td>
|
||||
<td>
|
||||
Tarih: / /
|
||||
Tarih:{{
|
||||
dateStore.dateFormat({
|
||||
date: new Date(),
|
||||
pattern: 'dd-mm-yy',
|
||||
splitDate: '/'
|
||||
})
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
style="
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
font-size: 14pt;
|
||||
margin-bottom: 12px;
|
||||
font-size: 10pt;
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
">
|
||||
MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
|
||||
@ -12,12 +12,10 @@
|
||||
Bahisler ve Oyunlar Dairesi Başkanlığına
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<strong style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong style="font-size: 10pt; margin-bottom: 10px">
|
||||
PİYANGO ID: {{ piyangoStore.lotteryData.piyangoId }}
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<table
|
||||
cellspacing="0"
|
||||
class="table-no-line"
|
||||
@ -25,7 +23,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong style="font-size: 10pt; margin-bottom: 10px">
|
||||
1- Piyangoyu Düzenleyenin:
|
||||
</strong>
|
||||
</td>
|
||||
@ -36,7 +34,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
|
||||
<tr>
|
||||
@ -166,7 +164,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
2- Piyangonun Geçerli Olduğu Yerler:
|
||||
</strong>
|
||||
</td>
|
||||
@ -176,7 +174,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -199,7 +197,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
3- Basılacak Biletlerin:
|
||||
</strong>
|
||||
</td>
|
||||
@ -209,7 +207,7 @@
|
||||
|
||||
<table
|
||||
data-pdfmake="{'widths': [ '31%', '23%' , '23%' , '23%' ],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
@ -285,7 +283,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
4- Biletlerin Basımı
|
||||
</strong>
|
||||
</td>
|
||||
@ -295,7 +293,7 @@
|
||||
|
||||
<table
|
||||
data-pdfmake="{'widths': [ '50%', '50%' ],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -320,7 +318,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
5- Çekiliş Tarih, Saati ve Adresi:
|
||||
</strong>
|
||||
</td>
|
||||
@ -331,7 +329,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -381,7 +379,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
6- İkramiye Kazananların İlanı:
|
||||
</strong>
|
||||
</td>
|
||||
@ -392,7 +390,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -448,7 +446,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
7- Talihlilerin Başvuru Tarihi:
|
||||
</strong>
|
||||
</td>
|
||||
@ -459,7 +457,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -494,7 +492,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
8- Diğer Hususlar:
|
||||
</strong>
|
||||
</td>
|
||||
@ -505,7 +503,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt">
|
||||
style="margin-bottom: 10px; font-size: 10pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@ -534,7 +532,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
|
||||
<strong class="title" style="font-size: 10pt; margin-bottom: 10px">
|
||||
9-Piyangoya Konu İkramiyeler:
|
||||
</strong>
|
||||
</td>
|
||||
@ -545,7 +543,7 @@
|
||||
<table
|
||||
cellspacing="0"
|
||||
data-pdfmake="{'widths': ['10%', '45%', '15%', '15%', '15%'],'layout': 'pdfTableLayout'}"
|
||||
style="margin-bottom: 12px; font-size: 10pt"
|
||||
style="margin-bottom: 10px; font-size: 10pt"
|
||||
v-if="piyangoIkramiyeStore.piyangoAllIkramiyeData.length > 0">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -611,8 +609,6 @@
|
||||
const dateStore = useDateStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { usePiyangoContactStore } from '../../stores/piyangoContactStore'
|
||||
const piyangoContactStore = usePiyangoContactStore()
|
||||
import { usePiyangoMecraStore } from '../../stores/piyangoMecraStore'
|
||||
const piyangoMecraStore = usePiyangoMecraStore()
|
||||
import { usePiyangoMecraService } from '../../service/piyangoMecraService'
|
||||
@ -621,8 +617,6 @@
|
||||
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
|
||||
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
|
||||
const piyangoIkramiyeService = usePiyangoIkramiyeService()
|
||||
import { useCustomerIrtibatStore } from '@/module/uyeler/stores/customerIrtibatStore'
|
||||
const customerIrtibatStore = useCustomerIrtibatStore()
|
||||
import { useCustomerIrtibatService } from '@/module/uyeler/service/customerIrtibatService'
|
||||
const customerIrtibatService = useCustomerIrtibatService()
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
|
||||
252
src/module/cekilisler/components/form/FormPiyangoDosyaKapama.vue
Normal file
252
src/module/cekilisler/components/form/FormPiyangoDosyaKapama.vue
Normal file
@ -0,0 +1,252 @@
|
||||
<template>
|
||||
<div class="form-part form-title" v-if="piyangoDosyaKapamaStore.isNew">
|
||||
<div class="form-title-buttons">
|
||||
<div
|
||||
class="button-c button-save"
|
||||
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
|
||||
Kaydet
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
:class="[
|
||||
'form-part',
|
||||
piyangoDosyaKapamaStore.formChanged && !piyangoDosyaKapamaStore.isNew
|
||||
? 'changed'
|
||||
: ''
|
||||
]">
|
||||
<div class="form-part-title">
|
||||
<h4>Teminat İade Evrak Kontrol</h4>
|
||||
</div>
|
||||
<div class="form-part-content" v-if="piyangoDosyaKapamaStore.loaded">
|
||||
<form-input
|
||||
modelKey="katilimSekli"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.katilimSekli"
|
||||
label="1. Katılım Şekli"
|
||||
placeholder="Katılım Şekli"
|
||||
@keyup="OnKeyup" />
|
||||
|
||||
<form-checkbox
|
||||
label="2. CD"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cD"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="3. Kutu Mühürleme Tutanağı"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kutuMuhurlemeTutanagi"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="4. Kutu Açma Tutanağı"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kutuAcmaTutanagi"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<div class="form-part-title">
|
||||
<h4>5. Çekiliş Tutanağı</h4>
|
||||
</div>
|
||||
<form-checkbox
|
||||
label="Çekiliş Tutanağı"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisTutanagi"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Çekiliş izin alınan tarih, saat, adreste yapılmış"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisIzinAlinanTarihSaatAdres"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Çekilişte önceden belirlenen ikramiyeler çekiliş"
|
||||
v-model="
|
||||
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisOncedenBelirlenenIkramiyeler
|
||||
"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Çekilişte önceden belirlenen ikramiyeler çekiliş"
|
||||
v-model="
|
||||
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisOncedenBelirlenenIkramiyeler
|
||||
"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Çekiliş numara üzerinden/isimden"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisNumaraUzerindenCekilis"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Dağıtılmayan kupon tespiti"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.dagitilmayanKuponTespiti"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<div class="form-part-title">
|
||||
<h4>6. Çekiliş Sonucu İlan</h4>
|
||||
</div>
|
||||
<form-checkbox
|
||||
label="Çekiliş Sonucu İlan"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisSonucuIlani"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Taahhüt edilen tarih ve gazetede ilan"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilandaTarihGazete"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="İlanda toplam katılımcı sayısı"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilandaToplamKatilimci"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Çekiliş tutanağı ile uyumlu kazanan numara/isim"
|
||||
v-model="
|
||||
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisTutanagiIleUyumluKazananlar
|
||||
"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="İlanda ikramiyeler son teslim süresi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilanSonBasvuruTeslimSuresi"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-input
|
||||
modelKey="taahhutEdilenIkramiyeAdedi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.taahhutEdilenIkramiyeAdedi"
|
||||
label="7. Taahhüt Edilen İkramiye Adedi"
|
||||
placeholder="Taahhüt Edilen İkramiye Adedi"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
|
||||
<div class="form-part-title">
|
||||
<h4>8. Teslim Edilen İkramiye</h4>
|
||||
</div>
|
||||
<form-input
|
||||
modelKey="teslimEdilenIkramiyeAdedi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teslimEdilenIkramiyeAdedi"
|
||||
label="Teslim Edilen İkramiye Adedi"
|
||||
placeholder="Teslim Edilen İkramiye Adedi"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="asilIkramiyeSayisi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.asilIkramiyeSayisi"
|
||||
label="Teslim Edilen Asıl İkramiye Adedi"
|
||||
placeholder="Teslim Edilen Asıl İkramiye Adedi"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="yedekIkramiyeSayisi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.yedekIkramiyeSayisi"
|
||||
label="Teslim Edilen Yedek İkramiye Adedi"
|
||||
placeholder="Teslim Edilen Yedek İkramiye Adedi"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Nüfus Cüzdanları"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.nufusCuzdani"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Kazanan numaralı noter onaylı ibraname"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.noterOnayliIbraname"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Teslim Belgesi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teslimBelgesi"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Fatura fotokopileri"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.faturaFotokopileri"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Tescile ait belgeler"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.tescileAitBelgeler"
|
||||
@change="OnKeyup" />
|
||||
<div class="form-part-title">
|
||||
<h4>9. Süresi İçinde Alınmayan İkramiye</h4>
|
||||
</div>
|
||||
<form-input
|
||||
modelKey="sureIcindesAlinmayanIkramiyeAdedi"
|
||||
v-model="
|
||||
piyangoDosyaKapamaStore.dosyaKapamaData.sureIcindesAlinmayanIkramiyeAdedi
|
||||
"
|
||||
label="Süresi İçinde Alınmayan İkramiye Adedi"
|
||||
placeholder="Süresi İçinde Alınmayan İkramiye Adedi"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Tebligat"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.tebligat"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Feragat"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.feragat"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Bağış"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.bagis"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<div class="form-part-title">
|
||||
<h4>10. Kupon (Aslı) ve Duyuru Örneği</h4>
|
||||
</div>
|
||||
<form-checkbox
|
||||
label="Kupon Aslı"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kuponAsli"
|
||||
@change="OnKeyup" />
|
||||
<form-checkbox
|
||||
label="Duyuru Örneği"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.duyuruMateryali"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-date
|
||||
type="date"
|
||||
modelKey="ikramiyelerinSonTeslimTarihi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ikramiyelerinSonTeslimTarihi"
|
||||
label="11. İkramiyelerin Son Teslim Tarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-date
|
||||
type="date"
|
||||
modelKey="teminatIadeTarihi"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teminatIadeTarihi"
|
||||
label="12. Teminat İade Tarihi"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<div
|
||||
class="form-item"
|
||||
v-if="piyangoDosyaKapamaStore.formChanged && !piyangoDosyaKapamaStore.isNew">
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
|
||||
Kaydet
|
||||
</button>
|
||||
<button class="button-c button-cancel" @click="CancelSave">Vazgeç</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-part form-title" v-if="piyangoDosyaKapamaStore.isNew">
|
||||
<div class="form-title-buttons">
|
||||
<div
|
||||
class="button-c button-save"
|
||||
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
|
||||
Kaydet
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount } from 'vue'
|
||||
|
||||
import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore'
|
||||
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
|
||||
import { usePiyangoDosyaKapamaService } from '../../service/piyangoDosyaKapamaService'
|
||||
const piyangoDosyaKapamaService = usePiyangoDosyaKapamaService()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoDosyaKapamaStore.formChanged = true
|
||||
}
|
||||
|
||||
const CancelSave = () => {
|
||||
piyangoDosyaKapamaStore.RestoreFormData()
|
||||
piyangoDosyaKapamaStore.formChanged = false
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
piyangoDosyaKapamaStore.formChanged = false
|
||||
await piyangoDosyaKapamaService.GetDosyaKapama()
|
||||
|
||||
if (piyangoDosyaKapamaStore.isNew) {
|
||||
piyangoDosyaKapamaStore.ResetFormData()
|
||||
piyangoDosyaKapamaStore.loaded = true
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<div class="form-part section-list" v-if="piyangoDosyaKapamaStore.loaded">
|
||||
<list-table-content
|
||||
title="Dosya Kapama İkramiye Listesi"
|
||||
icon="draws"
|
||||
:tableHeader="ikramiyeTableHeader"
|
||||
:rowAction="EditIkramiye"
|
||||
listText="İkramiye"
|
||||
:addAction="NewIkramiye"
|
||||
:apiList="'TeminatIadeEvrak/ByPiyangoId/' + piyangoStore.selectedLottery"
|
||||
apiText="Dosya Kapama İkramiye Listesi"
|
||||
v-model:refresh="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeListesiRefresh"
|
||||
rowNumber />
|
||||
</div>
|
||||
<panel-wrapper
|
||||
wide
|
||||
v-if="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel"
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel"
|
||||
:panel-title="
|
||||
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate
|
||||
? 'İkramiye Düzenle'
|
||||
: 'İkramiye Ekle'
|
||||
">
|
||||
<template #panelContent>
|
||||
<panel-piyango-dosya-kapama-ikramiye />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<div
|
||||
class="button-c button-save"
|
||||
@click="piyangoDosyaKapamaService.SaveDosyaKapamaIkramiye">
|
||||
{{ piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate ? 'Kaydet' : 'Ekle' }}
|
||||
</div>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore'
|
||||
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
|
||||
import { usePiyangoDosyaKapamaService } from '../../service/piyangoDosyaKapamaService'
|
||||
const piyangoDosyaKapamaService = usePiyangoDosyaKapamaService()
|
||||
|
||||
import PanelPiyangoDosyaKapamaIkramiye from '../panel/PanelPiyangoDosyaKapamaIkramiye.vue'
|
||||
import PanelWrapper from '@/components/PanelWrapper.vue'
|
||||
|
||||
const ikramiyeTableHeader = ref<Record<string, any>[]>([
|
||||
{
|
||||
name: 'tahhutEdilenIkramiye',
|
||||
title: 'Taahhüt Edilen İkramiye',
|
||||
style: { width: '20%' },
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
return `<span>${v.tahhutEdilenIkramiyeAdet} ${v.tahhutEdilenIkramiye}</span>`
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'teslimEdilenIkramiye',
|
||||
title: 'Teslim Edilen İkramiye',
|
||||
style: { width: '20%' },
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
let asil: string = ''
|
||||
let yedek: string = ''
|
||||
if (
|
||||
v.teslimEdilenIkramiyeAsil &&
|
||||
v.teslimEdilenIkramiyeAsil !== null &&
|
||||
v.teslimEdilenIkramiyeAsil !== 0 &&
|
||||
v.teslimEdilenIkramiyeAsil !== ''
|
||||
) {
|
||||
asil = `<span >${v.teslimEdilenIkramiyeAsil} ASIL</span>`
|
||||
}
|
||||
if (
|
||||
v.teslimEdilenIkramiyeYedek &&
|
||||
v.teslimEdilenIkramiyeYedek !== null &&
|
||||
v.teslimEdilenIkramiyeYedek !== 0 &&
|
||||
v.teslimEdilenIkramiyeYedek !== ''
|
||||
) {
|
||||
yedek = `<span >${v.teslimEdilenIkramiyeYedek} YEDEK</span>`
|
||||
}
|
||||
return asil !== ''
|
||||
? yedek !== ''
|
||||
? asil + '<br/>' + yedek
|
||||
: asil
|
||||
: yedek !== ''
|
||||
? yedek
|
||||
: ''
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'alinmayanIkramiye',
|
||||
title: 'Alınmayan İkramiye',
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama'
|
||||
}
|
||||
])
|
||||
|
||||
const NewIkramiye = () => {
|
||||
piyangoDosyaKapamaStore.ResetIkramiyeFormData()
|
||||
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = false
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel = true
|
||||
}
|
||||
|
||||
const EditIkramiye = (d: Record<string, any>) => {
|
||||
Object.assign(piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData, d)
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel = true
|
||||
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = true
|
||||
}
|
||||
</script>
|
||||
@ -29,15 +29,9 @@
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount, watch } from 'vue'
|
||||
import { useDateStore } from '@/stores/dateStore'
|
||||
const dateStore = useDateStore()
|
||||
import { ref, onBeforeMount, watch } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
|
||||
@ -19,6 +19,29 @@
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId" />
|
||||
<template v-if="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4">
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayı No"
|
||||
placeholder="İzin Sayı No"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
<form-date
|
||||
type="date"
|
||||
required
|
||||
modelKey="izinTarihi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinTarihi"
|
||||
label="İzin Tarihi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinTarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinAciklamasi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinAciklamasi"
|
||||
label="İzin Açıklaması"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
<form-file
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.file"
|
||||
elclass="panel-documents-item"
|
||||
|
||||
@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<list-table-content
|
||||
v-if="loaded"
|
||||
:tableHeader="tableHeader"
|
||||
formTitle="Piyango Onay Durumları"
|
||||
listText="Kayıt"
|
||||
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
|
||||
apiText="Piyango Onay Log Listesi"
|
||||
page="form"
|
||||
:refresh="piyangoOnayStore.refreshList" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref,onBeforeMount,computed } from 'vue'
|
||||
import axios from 'axios'
|
||||
import { useDateStore } from '@/stores/dateStore'
|
||||
const dateStore = useDateStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
|
||||
const piyangoOnayDurumlari = computed<Record<string, any>[]>(() => {
|
||||
return piyangoDataStore.piyangoOnayDurumlari
|
||||
})
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>([
|
||||
{
|
||||
name: 'tarih',
|
||||
title: 'Tarih',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.tarih === null
|
||||
? ''
|
||||
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.tarih })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'kisiAdi',
|
||||
title: 'Kişi',
|
||||
sort: true,
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'onayDurumuIslemTipiAdi',
|
||||
title: 'İşlem',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'onayDurumuIslemTipiId'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama',
|
||||
sort: true,
|
||||
style: { width: '30%' }
|
||||
},
|
||||
{
|
||||
dosyaUrl: 'aciklama',
|
||||
title: 'Dosya',
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
if (v.dosyaUrl !== null && v.dosyaUrl !== undefined) {
|
||||
return globalStore.TableCellDocument(v.dosyaUrl)
|
||||
}
|
||||
},
|
||||
style: { width: '20%' }
|
||||
}
|
||||
])
|
||||
|
||||
onBeforeMount(async () => {
|
||||
loaded.value = true
|
||||
})
|
||||
</script>
|
||||
@ -4,7 +4,7 @@
|
||||
:tableHeader="tableHeader"
|
||||
formTitle="Piyango Onay Logları"
|
||||
listText="Kayıt"
|
||||
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
|
||||
:apiList="'OnayDurumLog/Cekilis/' + piyangoStore.selectedLottery"
|
||||
apiText="Piyango Onay Log Listesi"
|
||||
page="form"
|
||||
:refresh="piyangoOnayStore.refreshList" />
|
||||
@ -47,38 +47,24 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'kisiAdi',
|
||||
name: 'islemYapanKullanici.email',
|
||||
title: 'Kişi',
|
||||
sort: true,
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'onayDurumuIslemTipiAdi',
|
||||
title: 'İşlem',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'onayDurumuIslemTipiId'
|
||||
}
|
||||
name: 'eskiDurum',
|
||||
title: 'Eski Durum',
|
||||
},
|
||||
{
|
||||
name: 'yeniDurum',
|
||||
title: 'Yeni Durum',
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama',
|
||||
sort: true,
|
||||
style: { width: '30%' }
|
||||
},
|
||||
{
|
||||
dosyaUrl: 'aciklama',
|
||||
title: 'Dosya',
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
if (v.dosyaUrl !== null && v.dosyaUrl !== undefined) {
|
||||
return globalStore.TableCellDocument(v.dosyaUrl)
|
||||
}
|
||||
},
|
||||
style: { width: '20%' }
|
||||
}
|
||||
])
|
||||
|
||||
|
||||
@ -2,6 +2,9 @@
|
||||
<div class="form-part">
|
||||
<div class="form-part-title">
|
||||
<h4>Piyango Resimleri</h4>
|
||||
<a href="/data/mpi-sablon.zip" class="button-c" target="_blank">
|
||||
Örnek Resim Şablonları
|
||||
</a>
|
||||
</div>
|
||||
<div class="form-part-content">
|
||||
<template v-for="(file, i) in fileList">
|
||||
@ -9,7 +12,17 @@
|
||||
:data="file"
|
||||
@click="EditImage"
|
||||
onlyPreview
|
||||
:filePath="file.resimYolu" />
|
||||
:filePath="file.resimYolu">
|
||||
<template
|
||||
#actionButtons
|
||||
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteImagePop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
</file-list-item>
|
||||
</template>
|
||||
<div
|
||||
class="form-item form-item-picture clickable"
|
||||
@ -23,7 +36,9 @@
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="usersStore.isPanelUser && fileList.length === 0" class="form-inner-comment">
|
||||
<div
|
||||
v-if="usersStore.isPanelUser && fileList.length === 0"
|
||||
class="form-inner-comment">
|
||||
Eklenmiş resim bulunamadı.
|
||||
</div>
|
||||
</div>
|
||||
@ -57,16 +72,14 @@
|
||||
const usersStore = useUsersStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
|
||||
const picturePanel = ref<boolean>(false)
|
||||
const isUpdate = ref<boolean>(false)
|
||||
const isFormValid = ref<boolean>(true)
|
||||
|
||||
interface IFileList {
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
const fileList = ref<IFileList[]>([] as IFileList[])
|
||||
const fileList = ref<Record<string, any>[]>([])
|
||||
|
||||
const AddNewImage = () => {
|
||||
dataStore.panelData = {
|
||||
@ -82,7 +95,9 @@
|
||||
}
|
||||
|
||||
const GetData = async () => {
|
||||
let dt = await dataStore.dataGet('CekilisResim/Cekilis/' + piyangoStore.selectedLottery)
|
||||
let dt = await dataStore.dataGet(
|
||||
'CekilisResim/Cekilis/' + piyangoStore.selectedLottery
|
||||
)
|
||||
if (dt !== 'errorfalse') fileList.value.splice(0, fileList.value.length, ...dt.data)
|
||||
}
|
||||
|
||||
@ -129,6 +144,30 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
const DeleteImagePop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Resim Sil',
|
||||
id: 'deleteimage',
|
||||
content: 'Resimi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Resmi Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteImage(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteImage = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('CekilisResim/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteimage')
|
||||
await GetData()
|
||||
}
|
||||
}
|
||||
onBeforeMount(async () => {
|
||||
await GetData()
|
||||
})
|
||||
|
||||
@ -1,135 +0,0 @@
|
||||
<template>
|
||||
<div class="form-part form-title">
|
||||
<div class="form-title-buttons">
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="piyangoTeminatService.SaveTeminatDurum"
|
||||
:disabled="!piyangoTeminatValidationStore.formChanged">
|
||||
Kaydet
|
||||
</button>
|
||||
<button
|
||||
v-if="piyangoTeminatValidationStore.formChanged"
|
||||
class="button-c button-cancel panel-close"
|
||||
@click="piyangoTeminatStore.ResetFormData">
|
||||
Vazgeç
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div :class="['form-part', piyangoTeminatValidationStore.formChanged ? 'changed' : '']">
|
||||
<div class="form-part-title">
|
||||
<h4>Teminat Durumu</h4>
|
||||
</div>
|
||||
<div class="form-part-content" v-if="piyangoTeminatStore.loaded">
|
||||
<form-input
|
||||
modelKey="amount"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
|
||||
required
|
||||
half
|
||||
label="Tutarı"
|
||||
minlength="2"
|
||||
@keyup="OnKeyup"
|
||||
@keydown="validationStore.allowPrice"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.amount" />
|
||||
|
||||
<form-select
|
||||
modelKey="teminatParentType"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminatParentType"
|
||||
required
|
||||
half
|
||||
label="Para Birimi"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminatParentType"
|
||||
:listData="piyangoDataStore.piyangoTeminatParaBirimleri"
|
||||
listVal="id"
|
||||
listText="value"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-select
|
||||
label="Teminat Türü"
|
||||
:listData="piyangoDataStore.piyangoTeminatTurleri"
|
||||
listText="value"
|
||||
listVal="id"
|
||||
half
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantChildType"
|
||||
required
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantChildType"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-date
|
||||
type="date"
|
||||
half
|
||||
required
|
||||
modelKey="teminantDate"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantDate"
|
||||
label="Tarih"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantDate"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-input
|
||||
modelKey="teminantNo"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantNo"
|
||||
required
|
||||
half
|
||||
label="No"
|
||||
minlength="2"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantNo"
|
||||
@keyup="OnKeyup" />
|
||||
<div class="form-item form-item-half"></div>
|
||||
|
||||
<form-input
|
||||
modelKey="bankName"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankName"
|
||||
required
|
||||
half
|
||||
label="Banka Adı"
|
||||
minlength="2"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.bankName"
|
||||
@keyup="OnKeyup" />
|
||||
|
||||
<form-input
|
||||
modelKey="bankBranch"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankBranch"
|
||||
required
|
||||
half
|
||||
label="Banka Şubesi"
|
||||
minlength="2"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.bankBranch"
|
||||
@keyup="OnKeyup" />
|
||||
|
||||
<form-display :disabled="!usersStore.isPanelUser"
|
||||
label="İşlem Durumu"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.stateText" />
|
||||
|
||||
<form-file
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.file"
|
||||
elclass="panel-documents-item"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.file"
|
||||
@change="OnKeyup" />
|
||||
|
||||
<form-textarea
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.description"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.description"
|
||||
label="Açıklama"
|
||||
@keyup="OnKeyup" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { usePiyangoTeminatStore } from '../../stores/piyangoTeminatStore'
|
||||
const piyangoTeminatStore = usePiyangoTeminatStore()
|
||||
import { usePiyangoTeminatValidationStore } from '../../validation/piyangoTeminatValidationStore'
|
||||
const piyangoTeminatValidationStore = usePiyangoTeminatValidationStore()
|
||||
import { usePiyangoTeminatService } from '../../service/piyangoTeminatService'
|
||||
const piyangoTeminatService = usePiyangoTeminatService()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoTeminatValidationStore.formChanged = true
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,137 @@
|
||||
<template>
|
||||
<form-select
|
||||
@change="OnIkramiyeChanged"
|
||||
modelKey="ikramiyeId"
|
||||
clearable
|
||||
label="Kazandığı İkramiye"
|
||||
:listData="piyangoIkramiyeStore.piyangoAllIkramiyeData"
|
||||
listText="cinsi"
|
||||
listVal="id"
|
||||
v-model="selectedIkramiye"
|
||||
:invalidText="
|
||||
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.taahhutEdilenIkramiye
|
||||
">
|
||||
<template #activator="data">
|
||||
{{
|
||||
data.activatorData !== undefined &&
|
||||
Object.keys(data.activatorData).length > 0 &&
|
||||
selectedIkramiye !== null
|
||||
? data.activatorData.cinsi +
|
||||
', ' +
|
||||
data.activatorData.marka +
|
||||
', ' +
|
||||
data.activatorData.model +
|
||||
' (' +
|
||||
data.activatorData.asilTalihliAdedi +
|
||||
' adet)'
|
||||
: 'Lütfen Seçim Yapınız'
|
||||
}}
|
||||
</template>
|
||||
<template #option="data">
|
||||
{{
|
||||
data.optionData.cinsi +
|
||||
', ' +
|
||||
data.optionData.marka +
|
||||
', ' +
|
||||
data.optionData.model +
|
||||
' (' +
|
||||
data.activatorData.asilTalihliAdedi +
|
||||
' adet)'
|
||||
}}
|
||||
</template>
|
||||
</form-select>
|
||||
<div class="form-item">Toplam İkramiye: {{ totalIkramiye }}</div>
|
||||
<form-input
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil"
|
||||
label="Teslim Edilen İkramiye Asil Adet"
|
||||
modelKey="teslimEdilenIkramiyeAsil"
|
||||
:invalidText="
|
||||
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil
|
||||
"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="CalculateAlinmayanIkramiye" />
|
||||
<form-input
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek"
|
||||
label="Teslim Edilen İkramiye Yedek Adet"
|
||||
modelKey="teslimEdilenIkramiyeYedek"
|
||||
:invalidText="
|
||||
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek
|
||||
"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="CalculateAlinmayanIkramiye" />
|
||||
<form-input
|
||||
disabled
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye"
|
||||
label="Alınmayan İkramiye Adet"
|
||||
modelKey="alinmayanIkramiye"
|
||||
:invalidText="
|
||||
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.alinmayanIkramiye
|
||||
" />
|
||||
<form-input
|
||||
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.aciklama"
|
||||
label="Açıklama"
|
||||
modelKey="aciklama" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount, ref } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore'
|
||||
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
|
||||
import { usePiyangoDosyaKapamaValidationStore } from '../../validation/piyangoDosyaKapamaValidationStore'
|
||||
const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore()
|
||||
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
|
||||
const piyangoIkramiyeService = usePiyangoIkramiyeService()
|
||||
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
|
||||
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
|
||||
|
||||
const selectedIkramiye = ref<string | number | null>(null)
|
||||
const totalIkramiye = ref<number | null>(null)
|
||||
|
||||
const CalculateAlinmayanIkramiye = () => {
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye =
|
||||
Number(totalIkramiye.value) -
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil || 0
|
||||
) -
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek || 0
|
||||
)
|
||||
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiye =
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil || 0
|
||||
) +
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek || 0
|
||||
)
|
||||
}
|
||||
|
||||
const OnIkramiyeChanged = (e: Event, val: any, item: Record<string, any>) => {
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiye = `
|
||||
${item.cinsi}, ${item.marka}, ${item.model}, (${item.asilTalihliAdedi} adet)
|
||||
`
|
||||
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiyeAdet =
|
||||
item.asilTalihliAdedi
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
if (piyangoIkramiyeStore.piyangoAllIkramiyeData.length === 0)
|
||||
await piyangoIkramiyeService.GetAllIkramiyeler()
|
||||
|
||||
piyangoIkramiyeStore.piyangoAllIkramiyeData.forEach((item) => {
|
||||
if (
|
||||
`${item.cinsi}, ${item.marka}, ${item.model}, (${item.asilTalihliAdedi} adet)` ===
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.taahhutEdilenIkramiye
|
||||
) {
|
||||
selectedIkramiye.value = item.id
|
||||
}
|
||||
})
|
||||
|
||||
totalIkramiye.value = piyangoIkramiyeStore.piyangoAllIkramiyeData.reduce(
|
||||
(acc, item) => acc + (item.asilTalihliAdedi || 0),
|
||||
0
|
||||
)
|
||||
})
|
||||
</script>
|
||||
@ -12,6 +12,39 @@
|
||||
@change="OnKeyup"
|
||||
:disabled="!usersStore.isPanelUser" />
|
||||
|
||||
<template
|
||||
v-if="
|
||||
piyangoTeminatStore.piyangoTeminatFormData.state === 2 ||
|
||||
piyangoTeminatStore.piyangoTeminatFormData.state === 3
|
||||
">
|
||||
<form-date
|
||||
type="date"
|
||||
half
|
||||
modelKey="refundDate"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDate"
|
||||
label="İade Tarihi"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDate"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="refundCount"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundCount"
|
||||
half
|
||||
label="Sayısı"
|
||||
@keyup="OnKeyup"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundCount" />
|
||||
<form-file
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl"
|
||||
label='Klasör Arşiv'
|
||||
elclass="panel-documents-item"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDocumentUrl"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="refundDescription"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDescription"
|
||||
label="İade Açıklama"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
|
||||
<form-display
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
|
||||
half
|
||||
@ -51,7 +84,10 @@
|
||||
label="Banka Şubesi" />
|
||||
|
||||
<file-list-item
|
||||
v-if="piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== null && piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== undefined"
|
||||
v-if="
|
||||
piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== null &&
|
||||
piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== undefined
|
||||
"
|
||||
title="Dosya"
|
||||
:data="piyangoTeminatStore.piyangoTeminatFormData"
|
||||
:editable="false"
|
||||
|
||||
84
src/module/cekilisler/service/piyangoDosyaKapamaService.ts
Normal file
84
src/module/cekilisler/service/piyangoDosyaKapamaService.ts
Normal file
@ -0,0 +1,84 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore'
|
||||
import { usePiyangoDosyaKapamaValidationStore } from '../validation/piyangoDosyaKapamaValidationStore'
|
||||
|
||||
export const usePiyangoDosyaKapamaService = defineStore(
|
||||
'piyangoDosyaKapamaService',
|
||||
() => {
|
||||
const dataStore = useDataStore()
|
||||
const piyangoStore = usePiyangoStore()
|
||||
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
|
||||
const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore()
|
||||
|
||||
const GetDosyaKapama = async () => {
|
||||
let data: Record<string, any> | any = await dataStore.dataGet(
|
||||
'TeminatIadeEvrakKontrol/' + piyangoStore.selectedLottery
|
||||
)
|
||||
|
||||
if (data !== 'errorfalse' || data.data.id === undefined) {
|
||||
Object.assign(piyangoDosyaKapamaStore.dosyaKapamaData, data.data)
|
||||
Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaData, data.data)
|
||||
piyangoDosyaKapamaStore.isNew = false
|
||||
setTimeout(() => {
|
||||
piyangoDosyaKapamaStore.loaded = true
|
||||
}, 30)
|
||||
} else {
|
||||
piyangoDosyaKapamaStore.isNew = true
|
||||
}
|
||||
}
|
||||
|
||||
const SaveDosyaKapama = async () => {
|
||||
let dt: any
|
||||
const localData = Object.assign({}, piyangoDosyaKapamaStore.dosyaKapamaData)
|
||||
if (localData.cekilisId === undefined)
|
||||
localData.cekilisId = piyangoStore.selectedLottery
|
||||
|
||||
if (!piyangoDosyaKapamaStore.isUpdate) {
|
||||
dt = await dataStore.dataPost('TeminatIadeEvrakKontrol', {
|
||||
data: localData
|
||||
})
|
||||
} else {
|
||||
dt = await dataStore.dataPut('TeminatIadeEvrakKontrol/' + localData.id, {
|
||||
data: localData
|
||||
})
|
||||
}
|
||||
if (dt !== 'errorfalse') {
|
||||
piyangoDosyaKapamaStore.isUpdate = false
|
||||
await GetDosyaKapama()
|
||||
}
|
||||
}
|
||||
|
||||
const SaveDosyaKapamaIkramiye = async () => {
|
||||
if (piyangoDosyaKapamaValidationStore.IkramiyeFormCheck()) {
|
||||
let dt: any
|
||||
const localData = Object.assign(
|
||||
{},
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData
|
||||
)
|
||||
if (localData.cekilisId === undefined)
|
||||
localData.cekilisId = piyangoStore.selectedLottery
|
||||
|
||||
if (!piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate) {
|
||||
dt = await dataStore.dataPost('TeminatIadeEvrak', {
|
||||
data: localData
|
||||
})
|
||||
} else {
|
||||
dt = await dataStore.dataPut('TeminatIadeEvrak/' + localData.id, {
|
||||
data: localData
|
||||
})
|
||||
}
|
||||
if (dt !== 'errorfalse') {
|
||||
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = false
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel = false
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeListesiRefresh = true
|
||||
}
|
||||
} else {
|
||||
piyangoDosyaKapamaValidationStore.isIkramiyeFormValid = true
|
||||
}
|
||||
}
|
||||
|
||||
return { GetDosyaKapama, SaveDosyaKapama, SaveDosyaKapamaIkramiye }
|
||||
}
|
||||
)
|
||||
@ -17,6 +17,12 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
piyangoOnayStore.loaded = false
|
||||
let form: any
|
||||
let dataForm = new FormData()
|
||||
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== 4) {
|
||||
piyangoOnayStore.piyangoOnayForm.izinSayisi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinTarihi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi = ''
|
||||
}
|
||||
dataForm.append(
|
||||
'onayDurumuIslemTipiId',
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
||||
@ -25,6 +31,9 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
dataForm.append('kisiId', String(usersStore.userId))
|
||||
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi)
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi)
|
||||
dataForm.append('izinAciklamasi', piyangoOnayStore.piyangoOnayForm.izinAciklamasi)
|
||||
|
||||
form = await dataStore.dataPost('OnayDurumu/', {
|
||||
data: dataForm,
|
||||
|
||||
@ -52,6 +52,11 @@ export const usePiyangoServices = defineStore('piyangoServices', () => {
|
||||
}
|
||||
const GetPiyangoTeminatDurumList = async () => {
|
||||
if (piyangoDataStore.piyangoTeminatDurumlari.length === 0) {
|
||||
/*
|
||||
1: Açık
|
||||
2: İade
|
||||
3: Zaman Aşımı İade
|
||||
*/
|
||||
let data = await dataStore.dataGet('TeminantStates/Durumlar')
|
||||
piyangoDataStore.piyangoTeminatDurumlari = data
|
||||
}
|
||||
|
||||
@ -20,7 +20,10 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
|
||||
let dataForm = new FormData()
|
||||
|
||||
dataForm.append('state', piyangoTeminatStore.piyangoTeminatFormData.state)
|
||||
dataForm.append('amount', globalStore.floatEnLocale(piyangoTeminatStore.piyangoTeminatFormData.amount))
|
||||
dataForm.append(
|
||||
'amount',
|
||||
globalStore.floatEnLocale(piyangoTeminatStore.piyangoTeminatFormData.amount)
|
||||
)
|
||||
dataForm.append('bankName', piyangoTeminatStore.piyangoTeminatFormData.bankName)
|
||||
dataForm.append('bankBranch', piyangoTeminatStore.piyangoTeminatFormData.bankBranch)
|
||||
dataForm.append(
|
||||
@ -43,6 +46,32 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
|
||||
'description',
|
||||
piyangoTeminatStore.piyangoTeminatFormData.description
|
||||
)
|
||||
|
||||
if (usersStore.isPanelUser) {
|
||||
if (piyangoTeminatStore.piyangoTeminatFormData.state === 1) {
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDate = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundCount = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDescription = ''
|
||||
}
|
||||
dataForm.append(
|
||||
'refundDate',
|
||||
String(piyangoTeminatStore.piyangoTeminatFormData.refundDate)
|
||||
)
|
||||
dataForm.append(
|
||||
'refundCount',
|
||||
String(piyangoTeminatStore.piyangoTeminatFormData.refundCount)
|
||||
)
|
||||
dataForm.append(
|
||||
'refundDocumentUrl',
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl
|
||||
)
|
||||
dataForm.append(
|
||||
'refundDescription',
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDescription
|
||||
)
|
||||
}
|
||||
|
||||
if (piyangoTeminatStore.isNew) {
|
||||
form = await dataStore.dataPost('TeminantStates/', {
|
||||
data: dataForm,
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
import * as signalR from "@microsoft/signalr";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import * as signalR from '@microsoft/signalr'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
let connection: signalR.HubConnection;
|
||||
let connectionId = "";
|
||||
let connection: signalR.HubConnection
|
||||
let connectionId = ''
|
||||
|
||||
export const connectToHub = async () => {
|
||||
connection = new signalR.HubConnectionBuilder()
|
||||
.withUrl("https://panelapi.cekilisevi.gov.tr/uploadHub", {
|
||||
.withUrl(import.meta.env.VITE_SOCKET_URL, {
|
||||
withCredentials: false // Bu zorunlu, yoksa cookie vs gönderilmez
|
||||
}) // backend adresine göre düzenle
|
||||
.withAutomaticReconnect()
|
||||
.build();
|
||||
.build()
|
||||
|
||||
await connection.start();
|
||||
connectionId = connection.connectionId || uuidv4(); // SignalR id'si ya da frontend'de de guid üretilebilir
|
||||
return connectionId;
|
||||
};
|
||||
await connection.start()
|
||||
connectionId = connection.connectionId || uuidv4() // SignalR id'si ya da frontend'de de guid üretilebilir
|
||||
return connectionId
|
||||
}
|
||||
|
||||
export const onProgress = (callback: (data: any) => void) => {
|
||||
connection.on("ReceiveProgress", callback);
|
||||
};
|
||||
connection.on('ReceiveProgress', callback)
|
||||
}
|
||||
|
||||
export const onInsertProgress = (callback: (data: any) => void) => {
|
||||
connection.on("ReceiveInsertProgress", callback);
|
||||
};
|
||||
connection.on('ReceiveInsertProgress', callback)
|
||||
}
|
||||
|
||||
export const onCompleted = (callback: (data: any) => void) => {
|
||||
connection.on("ReceiveCompleted", callback);
|
||||
};
|
||||
connection.on('ReceiveCompleted', callback)
|
||||
}
|
||||
|
||||
export const onError = (callback: (data: any) => void) => {
|
||||
connection.on("ReceiveError", callback);
|
||||
};
|
||||
connection.on('ReceiveError', callback)
|
||||
}
|
||||
|
||||
104
src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts
Normal file
104
src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts
Normal file
@ -0,0 +1,104 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
import { usePiyangoStore } from './piyangoStore'
|
||||
|
||||
export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => {
|
||||
const globalStore = useGlobalStore()
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
const baseDosyaKapamaData = reactive<Record<string, any>>({
|
||||
katilimSekli: '',
|
||||
cD: false,
|
||||
kutuMuhurlemeTutanagi: false,
|
||||
kutuAcmaTutanagi: false,
|
||||
cekilisTutanagi: false,
|
||||
cekilisIzinAlinanTarihSaatAdres: false,
|
||||
oncedenBelirlenenIkramiyeCekilis: false,
|
||||
cekilisNumaraUzerindenCekilis: false,
|
||||
dagitilmayanKuponTespiti: false,
|
||||
cekilisSonucuIlan: false,
|
||||
ilandaTarihGazete: false,
|
||||
ilandaToplamKatilimci: false,
|
||||
cekilisTutanagiIleUyumluKazananlar: false,
|
||||
ilanSonBasvuruTeslimSuresi: false,
|
||||
taahhutEdilenIkramiyeAdedi: null,
|
||||
teslimEdilenIkramiyeAdedi: null,
|
||||
asilIkramiyeSayisi: null,
|
||||
yedekIkramiyeSayisi: null,
|
||||
nufusCuzdani: false,
|
||||
noterOnayliIbraname: false,
|
||||
teslimBelgesi: false,
|
||||
faturaFotokopileri: false,
|
||||
tescileAitBelgeler: false,
|
||||
sureIcindesAlinmayanIkramiyeAdedi: null,
|
||||
tebligat: false,
|
||||
feragat: false,
|
||||
bagis: false,
|
||||
kuponAsli: false,
|
||||
duyuruMateryali: false,
|
||||
ikramiyelerinSonTeslimTarihi: '',
|
||||
teminatIadeTarihi: '',
|
||||
cekilisId: piyangoStore.selectedLottery
|
||||
})
|
||||
const baseDosyaKapamaIkramiyeData = reactive<Record<string, any>>({
|
||||
taahhutEdilenIkramiye: '',
|
||||
tahhutEdilenIkramiyeAdet: '',
|
||||
teslimEdilenIkramiyeAsil: '',
|
||||
teslimEdilenIkramiyeYedek: '',
|
||||
teslimEdilenIkramiye: '',
|
||||
alinmayanIkramiye: '',
|
||||
aciklama: '',
|
||||
cekilisId: piyangoStore.selectedLottery
|
||||
})
|
||||
const dosyaKapamaData = reactive<Record<string, any>>({})
|
||||
const safeDosyaKapamaData = reactive<Record<string, any>>({})
|
||||
const isNew = ref<boolean>(false)
|
||||
const isUpdate = ref<boolean>(false)
|
||||
const formChanged = ref<boolean>(false)
|
||||
const loaded = ref<boolean>(false)
|
||||
|
||||
const dosyaKapamaIkramiyeData = reactive<Record<string, any>>({})
|
||||
const safeDosyaKapamaIkramiyeData = reactive<Record<string, any>>({})
|
||||
const isDosyaKapamaIkramiyeUpdate = ref<boolean>(false)
|
||||
const isDosyaKapamaIkramiyeFormChanged = ref<boolean>(false)
|
||||
const isDosyaKapamaIkramiyeLoaded = ref<boolean>(false)
|
||||
const dosyaKapamaIkramiyeListesiRefresh = ref<boolean>(false)
|
||||
const dosyaKapamaIkramiyePanel = ref<boolean>(false)
|
||||
|
||||
const ResetFormData = () => {
|
||||
globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData)
|
||||
Object.assign(dosyaKapamaData, baseDosyaKapamaData)
|
||||
}
|
||||
|
||||
const RestoreFormData = () => {
|
||||
globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData)
|
||||
Object.assign(dosyaKapamaData, safeDosyaKapamaData)
|
||||
}
|
||||
|
||||
const ResetIkramiyeFormData = () => {
|
||||
globalStore.ResetObject(dosyaKapamaIkramiyeData, baseDosyaKapamaIkramiyeData)
|
||||
Object.assign(dosyaKapamaIkramiyeData, baseDosyaKapamaIkramiyeData)
|
||||
}
|
||||
|
||||
return {
|
||||
baseDosyaKapamaData,
|
||||
dosyaKapamaData,
|
||||
safeDosyaKapamaData,
|
||||
isNew,
|
||||
isUpdate,
|
||||
formChanged,
|
||||
loaded,
|
||||
baseDosyaKapamaIkramiyeData,
|
||||
dosyaKapamaIkramiyeData,
|
||||
safeDosyaKapamaIkramiyeData,
|
||||
isDosyaKapamaIkramiyeUpdate,
|
||||
isDosyaKapamaIkramiyeFormChanged,
|
||||
isDosyaKapamaIkramiyeLoaded,
|
||||
dosyaKapamaIkramiyeListesiRefresh,
|
||||
dosyaKapamaIkramiyePanel,
|
||||
ResetFormData,
|
||||
RestoreFormData,
|
||||
ResetIkramiyeFormData
|
||||
}
|
||||
})
|
||||
@ -31,6 +31,7 @@ export const usePiyangoIkramiyeStore = defineStore('piyangoIkramiyeStore', () =>
|
||||
const refreshList = ref<boolean>(false)
|
||||
const ikramiyePanel = ref<boolean>(false)
|
||||
const loaded = ref<boolean>(false)
|
||||
const totalIkramiyeValue = ref<number>(0)
|
||||
|
||||
const totalIkramiyeValues = reactive<Record<string, any>>({
|
||||
yedekTalihliAdedi: 'toplamyedektalihli',
|
||||
@ -69,6 +70,7 @@ export const usePiyangoIkramiyeStore = defineStore('piyangoIkramiyeStore', () =>
|
||||
ikramiyePanel,
|
||||
loaded,
|
||||
totalIkramiyeValues,
|
||||
totalIkramiyeValue,
|
||||
ResetForm,
|
||||
CalculateToplamDeger
|
||||
}
|
||||
|
||||
@ -12,7 +12,10 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
||||
onayCekilisId: piyangoStore.selectedLottery,
|
||||
kisiId: usersStore.userId,
|
||||
aciklama: '',
|
||||
file: ''
|
||||
file: '',
|
||||
izinSayisi: '',
|
||||
izinTarihi: '',
|
||||
izinAciklamasi: ''
|
||||
})
|
||||
const piyangoOnayForm = reactive<Record<string, any>>({})
|
||||
const piyangoOnaySafeForm = reactive<Record<string, any>>({})
|
||||
|
||||
@ -23,7 +23,11 @@ export const usePiyangoTeminatStore = defineStore('piyangoTeminatStore', () => {
|
||||
cekilisId: piyangoStore.selectedLottery,
|
||||
kisiId: usersStore.userId,
|
||||
description: '',
|
||||
file: ''
|
||||
file: '',
|
||||
refundDate: '',
|
||||
refundCount: '',
|
||||
refundDocumentUrl: '',
|
||||
refundDescription:''
|
||||
})
|
||||
|
||||
const piyangoTeminatFormData = reactive<Record<string, any>>({})
|
||||
|
||||
@ -0,0 +1,85 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore'
|
||||
|
||||
export const usePiyangoDosyaKapamaValidationStore = defineStore(
|
||||
'piyangoDosyaKapamaValidationStore',
|
||||
() => {
|
||||
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
|
||||
const validationStore = useValidationStore()
|
||||
|
||||
const isFormValid = ref<boolean>(true)
|
||||
const invalidTexts = reactive<Record<string, any>>({})
|
||||
const isIkramiyeFormValid = ref<boolean>(true)
|
||||
const ikramiyeInvalidTexts = reactive<Record<string, any>>({})
|
||||
|
||||
const FormCheck = (): boolean => {
|
||||
Object.assign(invalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaData,
|
||||
invalidTexts,
|
||||
'mecraAdi',
|
||||
'Yayınlanacak mecranın adını yazınız.'
|
||||
)
|
||||
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
|
||||
const IkramiyeFormCheck = (): boolean => {
|
||||
Object.assign(ikramiyeInvalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
|
||||
ikramiyeInvalidTexts,
|
||||
'tahhutEdilenIkramiye',
|
||||
'Lütfen taahhüt edilen ikramiyeyi seçiniz.'
|
||||
)
|
||||
if (
|
||||
validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiyeAdet
|
||||
)
|
||||
) {
|
||||
isIkramiyeFormValid.value = false
|
||||
ikramiyeInvalidTexts.tahhutEdilenIkramiye =
|
||||
'Lütfen taahhüt edilen ikramiyeyi seçiniz.'
|
||||
}
|
||||
|
||||
if (
|
||||
validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
|
||||
) &&
|
||||
validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
|
||||
)
|
||||
) {
|
||||
isIkramiyeFormValid.value = false
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil =
|
||||
'En az 1 asil veya yedek talihli adedi girmelisiniz'
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek =
|
||||
'En az 1 asil veya yedek talihli adedi girmelisiniz'
|
||||
}
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
|
||||
ikramiyeInvalidTexts,
|
||||
'alinmayanIkramiye',
|
||||
'Alınmayan ikramiye adedi boş olamaz. En az 1 asil veya yedek ikramiye adedi giriniz.'
|
||||
)
|
||||
|
||||
isIkramiyeFormValid.value = Object.keys(ikramiyeInvalidTexts).length === 0
|
||||
return isIkramiyeFormValid.value
|
||||
}
|
||||
|
||||
return {
|
||||
isFormValid,
|
||||
invalidTexts,
|
||||
isIkramiyeFormValid,
|
||||
ikramiyeInvalidTexts,
|
||||
FormCheck,
|
||||
IkramiyeFormCheck
|
||||
}
|
||||
}
|
||||
)
|
||||
@ -22,6 +22,20 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'onayDurumuIslemTipiId',
|
||||
'Bir işlem tipi seçmelisinz.'
|
||||
)
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'izinSayisi',
|
||||
'İzin sayı no girmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'izinTarihi',
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
|
||||
@ -24,6 +24,18 @@ export const usePiyangoTeminatValidationStore = defineStore(
|
||||
'state',
|
||||
'Lütfen işlem tipini seçiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoTeminatStore.piyangoTeminatFormData,
|
||||
invalidTexts,
|
||||
'refundDate',
|
||||
'Lütfen iade tarihini seçiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoTeminatStore.piyangoTeminatFormData,
|
||||
invalidTexts,
|
||||
'refundCount',
|
||||
'Lütfen iade sayı no giriniz.'
|
||||
)
|
||||
}
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
|
||||
@ -167,7 +167,7 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
}
|
||||
})
|
||||
const ikramiyeTeslimMin = computed((): Date => {
|
||||
return piyangoStore.lotteryData.asilSonBasvuruTarihi
|
||||
return piyangoStore.lotteryData.yedekSonBasvuruTarihi
|
||||
})
|
||||
const ikramiyeTeslimMax = computed((): Date => {
|
||||
var date: Date = new Date()
|
||||
@ -472,7 +472,10 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
date: ilanTarihi2Max.value,
|
||||
pattern: 'dd-mm-yy'
|
||||
})
|
||||
|
||||
if (ilan2min > ilan2max) {
|
||||
isFormValid.value = false
|
||||
invalidTexts.ilantarihi2 = `Lütfen 1. ilan tarihini daha erken bir tarih ile değiştiriniz. 2. İlan tarihi 1. ilan tarihinden en az 1 gün sonra olabilir`
|
||||
} else {
|
||||
if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
|
||||
isFormValid.value = false
|
||||
invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
|
||||
@ -481,6 +484,7 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoStore.lotteryData,
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<template #talihliler><tab-piyango-talihli-listesi /></template>
|
||||
<template #itirazsikayet><tab-piyango-itiraz /></template>
|
||||
<template #piyangologlari><tab-piyango-loglari /></template>
|
||||
<template #yetkilendirme>
|
||||
<template #yetkilendirme v-if="usersStore.isPanelUser">
|
||||
<tab-piyango-yetkilendirme />
|
||||
</template>
|
||||
<template #onaydurumu>
|
||||
@ -26,6 +26,9 @@
|
||||
<template #teminatlistesi>
|
||||
<tab-piyango-teminat-durumu />
|
||||
</template>
|
||||
<template #dosyakapama v-if="usersStore.isPanelUser && piyangoStore.lotteryDrawState">
|
||||
<tab-piyango-dosya-kapama />
|
||||
</template>
|
||||
</tabs>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -52,6 +55,7 @@
|
||||
import TabPiyangoBilgileri from '@/module/cekilisler/components/TabPiyangoBilgileri.vue'
|
||||
import TabPiyangoBilgileriDisplay from '../components/TabPiyangoBilgileriDisplay.vue'
|
||||
import TabPiyangoItiraz from '@/module/cekilisler/components/TabPiyangoItiraz.vue'
|
||||
import TabPiyangoDosyaKapama from '@/module/cekilisler/components/TabPiyangoDosyaKapama.vue'
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
const tabList = ref<Record<string, any>[]>([
|
||||
@ -60,13 +64,14 @@
|
||||
|
||||
const CreateTabs = () => {
|
||||
if (
|
||||
piyangoStore.lotteryApprove === 4 ||
|
||||
(piyangoStore.lotteryApprove === 4 ||
|
||||
piyangoStore.lotteryApprove === 10 ||
|
||||
piyangoStore.lotteryApprove === 11 ||
|
||||
piyangoStore.lotteryApprove === 12 ||
|
||||
piyangoStore.lotteryApprove === 13 ||
|
||||
piyangoStore.lotteryApprove === 14 ||
|
||||
usersStore.isPanelUser
|
||||
usersStore.isPanelUser) &&
|
||||
piyangoStore.lotteryPurposeId !== 3
|
||||
) {
|
||||
tabList.value.push(
|
||||
{ text: 'Katılım Listesi', id: 'katilimcilistesi' },
|
||||
@ -82,9 +87,13 @@
|
||||
}
|
||||
tabList.value.push({ text: 'Onay Durumu', id: 'onaydurumu' })
|
||||
|
||||
if (piyangoStore.lotteryApprove !== 0) {
|
||||
if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) {
|
||||
tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' })
|
||||
}
|
||||
|
||||
if (usersStore.isPanelUser && piyangoStore.lotteryDrawState) {
|
||||
tabList.value.push({ text: 'Dosya Kapama', id: 'dosyakapama' })
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
@ -67,17 +67,19 @@
|
||||
const tableHeader = computed<Record<string, any>[]>(() => {
|
||||
let header: Record<string, any>[] = []
|
||||
|
||||
header.push({
|
||||
name: 'piyangoId',
|
||||
title: 'Piyango Id',
|
||||
sort: true,
|
||||
style: { width: '10%' }
|
||||
})
|
||||
|
||||
|
||||
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
||||
header.push({ name: 'duzenleyen', title: 'Düzenleyen' })
|
||||
}
|
||||
|
||||
header.push(
|
||||
{
|
||||
name: 'piyangoId',
|
||||
title: 'Piyango ID',
|
||||
sort: true,
|
||||
style: { width: '10%' }
|
||||
},
|
||||
{
|
||||
name: 'baslik',
|
||||
title: 'Başlık',
|
||||
@ -115,7 +117,8 @@
|
||||
name: 'cekilisTarihi',
|
||||
title: 'Çekiliş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
if(v.piyangoAmacId === 3) return ''
|
||||
else return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
|
||||
8
src/module/muhasebe/components/TabIzinBedelOraniForm.vue
Normal file
8
src/module/muhasebe/components/TabIzinBedelOraniForm.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<section class="section-list form-inner-content-left">
|
||||
<form-izin-bedel-orani />
|
||||
</section>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import FormIzinBedelOrani from './form/FormIzinBedelOrani.vue'
|
||||
</script>
|
||||
105
src/module/muhasebe/components/TabIzinBedelOraniListe.vue
Normal file
105
src/module/muhasebe/components/TabIzinBedelOraniListe.vue
Normal file
@ -0,0 +1,105 @@
|
||||
<template>
|
||||
<section class="section-list">
|
||||
<div class="section-list-header">
|
||||
<h2>İzin Bedel Oranı Listesi</h2>
|
||||
<div class="section-list-header-buttons">
|
||||
<button class="button-c button-add" @click="izinBedelOraniStore.NewForm()">
|
||||
<i class="ico-c">
|
||||
<svg width="16" height="16">
|
||||
<use href="@/assets/images/icons.svg#plus"></use>
|
||||
</svg>
|
||||
</i>
|
||||
Yeni İzin Bedel Oranı Ekle
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<list-table-content
|
||||
v-if="izinBedelOraniService.loaded"
|
||||
:tableHeader="tableHeader"
|
||||
:rowAction="EditIzinBedelOrani"
|
||||
icon="draws"
|
||||
title="İzin Bedel Oranları"
|
||||
listText="İzin Bedel Oranı"
|
||||
:apiList="'IzinBedelOrani'"
|
||||
apiText="İzin Bedel Oranı Listesi" />
|
||||
</section>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onBeforeMount } from 'vue'
|
||||
import { useIzinBedelOraniStore } from '../store/izinBedelOraniStore'
|
||||
import { useIzinBedelOraniService } from '../service/izinBedelOraniService'
|
||||
|
||||
const izinBedelOraniStore = useIzinBedelOraniStore()
|
||||
const izinBedelOraniService = useIzinBedelOraniService()
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>(
|
||||
[
|
||||
{
|
||||
name: 'id',
|
||||
title: 'ID',
|
||||
sort: true,
|
||||
style: { width: '8%' }
|
||||
},
|
||||
{
|
||||
name: 'ad',
|
||||
title: 'Ad',
|
||||
sort: true,
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'oran',
|
||||
title: 'Oran (%)',
|
||||
sort: true,
|
||||
style: { width: '15%' },
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return `%${v.oran}`
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama',
|
||||
sort: true,
|
||||
style: { width: '30%' }
|
||||
},
|
||||
{
|
||||
name: 'aktif',
|
||||
title: 'Durum',
|
||||
sort: true,
|
||||
style: { width: '12%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if (v.aktif) {
|
||||
return `<span class="back-grad back-grad-ok">Aktif</span>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-alert">Pasif</span>`
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'actions',
|
||||
title: 'İşlemler',
|
||||
style: { width: '15%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
let actions = `<button class="button-c button-edit" onclick="window.editIzinBedelOrani(${v.id})">
|
||||
<i class="ico-c">
|
||||
<svg width="14" height="14">
|
||||
<use href="@/assets/images/icons.svg#edit"></use>
|
||||
</svg>
|
||||
</i>
|
||||
Düzenle
|
||||
</button> `
|
||||
return actions
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
|
||||
const EditIzinBedelOrani = (row: any) => {
|
||||
izinBedelOraniStore.EditForm(row)
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await izinBedelOraniService.GetIzinBedelOraniList()
|
||||
izinBedelOraniService.loaded = true
|
||||
})
|
||||
</script>
|
||||
@ -4,7 +4,7 @@
|
||||
<h4>Piyango Bilgileri</h4>
|
||||
<div class="form-part-title-buttons" v-if="!isPreview">
|
||||
<button
|
||||
@click="BasvuruBedeliMuhasebelestir"
|
||||
@click="BasvuruBedeliDialog"
|
||||
v-if="
|
||||
(piyangoStore.lotteryApprove === 1 || piyangoStore.lotteryApprove === 4) &&
|
||||
(!piyangoStore.lotteryBasvuruBedeliStatus ||
|
||||
@ -14,7 +14,7 @@
|
||||
Başvuru Bedelini Muhasebeleştir
|
||||
</button>
|
||||
<button
|
||||
@click="IzinBedeliMuhasebelestir"
|
||||
@click="OpenIzinBedeliModal"
|
||||
v-if="
|
||||
piyangoStore.lotteryApprove === 4 &&
|
||||
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
|
||||
@ -30,13 +30,109 @@
|
||||
</div>
|
||||
</div>
|
||||
<piyango-bilgileri-display-content v-if="loaded" :isPreview="isPreview" />
|
||||
|
||||
<!-- İzin Bedeli Modal -->
|
||||
<teleport to="body">
|
||||
<div v-if="showIzinBedeliModal" class="modal-overlay" @click="CloseIzinBedeliModal">
|
||||
<div class="modal-content" @click.stop>
|
||||
<div class="modal-header">
|
||||
<h3>İzin Bedeli Muhasebeleştir</h3>
|
||||
<button class="modal-close" @click="CloseIzinBedeliModal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label>Oran Seçiniz:</label>
|
||||
<select @change="OnOranChange" class="form-select">
|
||||
<option value="">Lütfen bir oran seçiniz</option>
|
||||
<option v-for="oran in izinBedelOranlari" :key="oran.id" :value="oran.id">
|
||||
{{ oran.oran }}% - {{ oran.adi }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="">
|
||||
<table class="table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Toplam İkramiye Bedeli:</td>
|
||||
<td>
|
||||
{{
|
||||
globalStore.toTrLocale(
|
||||
Number(piyangoIkramiyeStore.totalIkramiyeValue)
|
||||
)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>İzin Bedeli Oran Tutarı:</td>
|
||||
<td>
|
||||
{{ globalStore.toTrLocale(calculatedOran) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>KDV:</td>
|
||||
<td>
|
||||
{{ globalStore.toTrLocale(calculatedKdv) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Toplam Bedel:</td>
|
||||
<td>
|
||||
{{
|
||||
globalStore.toTrLocale(
|
||||
Number(piyangoIkramiyeStore.totalIkramiyeValue) + calculatedKdv
|
||||
)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="piyangoStore.lotteryData.izinTarihi !== undefined">
|
||||
<td>İzin Tarihi:</td>
|
||||
<td>
|
||||
{{
|
||||
dateStore.dateFormat({
|
||||
date: piyangoStore.lotteryData.izinTarihi,
|
||||
pattern: 'dd-mm-yy',
|
||||
splitDate: '/'
|
||||
})
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="piyangoStore.lotteryData.izinSayisi !== undefined">
|
||||
<td>İzin Sayısı:</td>
|
||||
<td>
|
||||
{{ piyangoStore.lotteryData.izinSayisi }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="button-c button-cancel" @click="CloseIzinBedeliModal">
|
||||
İptal
|
||||
</button>
|
||||
<button class="button-c button-save" @click="IzinBedeliMuhasebelestir">
|
||||
Muhasebeleştir
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</teleport>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onBeforeMount } from 'vue'
|
||||
import { ref, onBeforeMount, computed } from 'vue'
|
||||
|
||||
import { useToastStore } from '@/components/global/toastStore'
|
||||
const toastStore = useToastStore()
|
||||
import { usePiyangoIkramiyeStore } from '@/module/cekilisler/stores/piyangoIkramiyeStore'
|
||||
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
import { useDateStore } from '@/stores/dateStore'
|
||||
const dateStore = useDateStore()
|
||||
|
||||
export interface Props {
|
||||
isPreview?: boolean
|
||||
@ -51,12 +147,25 @@
|
||||
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { usePreviewStore } from '@/stores/previewStore'
|
||||
const previewStore = usePreviewStore()
|
||||
import { usePiyangoStore } from '@/module/cekilisler/stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { useMuhasebeSettingsStore } from '@/module/muhasebe/store/muhasebeSettingsStore'
|
||||
const muhasebeSettingsStore = useMuhasebeSettingsStore()
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
const showIzinBedeliModal = ref<boolean>(false)
|
||||
const selectedOran = ref<number | null>(null)
|
||||
const izinBedelOranlari = ref<Record<string, any>[]>([])
|
||||
const selectedOranId = ref<number | null>(null)
|
||||
const calculatedKdv = ref<number>(0)
|
||||
const calculatedOran = ref<number>(0)
|
||||
|
||||
const calculatedBasvuruKdv = computed<number>(
|
||||
() =>
|
||||
(Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli) *
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani)) /
|
||||
100
|
||||
)
|
||||
|
||||
const GetData = async () => {
|
||||
let data = await dataStore.dataGet(
|
||||
@ -95,12 +204,77 @@
|
||||
Object.assign(piyangoStore.araciUyeData, data)
|
||||
}
|
||||
}
|
||||
|
||||
const GetIzinBedelOranlari = async () => {
|
||||
let data = await dataStore.dataGet('IzinBedelOrani/aktif')
|
||||
if (data !== 'errorfalse') {
|
||||
izinBedelOranlari.value = data
|
||||
}
|
||||
}
|
||||
const GetIkramiyeTotalValues = async () => {
|
||||
console.log(piyangoStore, 'piyangoStore')
|
||||
let data = await dataStore.dataGet('Ikramiye/Cekilis/' + piyangoStore.selectedLottery)
|
||||
if (data !== 'errorfalse') {
|
||||
piyangoIkramiyeStore.totalIkramiyeValue = data.toplamdeger
|
||||
}
|
||||
}
|
||||
const BasvuruBedeliDialog = () => {
|
||||
console.log(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli)
|
||||
console.log(calculatedBasvuruKdv.value)
|
||||
console.log(
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli) +
|
||||
calculatedBasvuruKdv.value
|
||||
)
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Başvuru Bedelini Muhasebeleştir',
|
||||
id: 'basvurubedelimuhasebelestir',
|
||||
contentHtml: `<table class='table-bordered'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Başvuru Bedeli:</td>
|
||||
<td>${globalStore.toTrLocale(
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli
|
||||
)} ₺</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>KDV (%${
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani
|
||||
}):</td>
|
||||
<td>
|
||||
${globalStore.toTrLocale(calculatedBasvuruKdv.value)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Toplam Bedel:</td>
|
||||
<td>
|
||||
${globalStore.toTrLocale(
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli) +
|
||||
calculatedBasvuruKdv.value
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>`,
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Başvuru Bedelini Muhasebeleştir',
|
||||
type: 'alert',
|
||||
function: () => BasvuruBedeliMuhasebelestir
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
const BasvuruBedeliMuhasebelestir = async () => {
|
||||
let data = await dataStore.dataGet(
|
||||
'MuhasebeSettings/BasvuruBedeli/' + piyangoStore.selectedLottery
|
||||
)
|
||||
if (data !== 'errorfalse') {
|
||||
toastStore.AddToast('Başvuru bedeli başarıyla muhasebeleştirildi. Fatura No: '+data.belgeNo, 'success', 30000)
|
||||
toastStore.AddToast(
|
||||
'Başvuru bedeli başarıyla muhasebeleştirildi. Fatura No: ' + data.belgeNo,
|
||||
'success',
|
||||
30000
|
||||
)
|
||||
loaded.value = false
|
||||
await GetData()
|
||||
piyangoStore.lotteryBasvuruBedeliStatus = true
|
||||
@ -111,15 +285,68 @@
|
||||
}
|
||||
}
|
||||
|
||||
const OpenIzinBedeliModal = async () => {
|
||||
await GetIzinBedelOranlari()
|
||||
await GetIkramiyeTotalValues()
|
||||
showIzinBedeliModal.value = true
|
||||
selectedOran.value = null
|
||||
selectedOranId.value = null
|
||||
}
|
||||
|
||||
const CloseIzinBedeliModal = () => {
|
||||
showIzinBedeliModal.value = false
|
||||
selectedOran.value = null
|
||||
selectedOranId.value = null
|
||||
}
|
||||
|
||||
const OnOranChange = (event: Event) => {
|
||||
const target = event.target as HTMLSelectElement
|
||||
const selectedId = parseInt(target.value)
|
||||
const selectedOranData = izinBedelOranlari.value.find(
|
||||
(item) => item.id === selectedId
|
||||
)
|
||||
|
||||
if (selectedOranData) {
|
||||
selectedOranId.value = selectedOranData.id
|
||||
selectedOran.value = selectedOranData.oran
|
||||
} else {
|
||||
selectedOranId.value = null
|
||||
selectedOran.value = null
|
||||
}
|
||||
|
||||
calculatedOran.value =
|
||||
(Number(piyangoIkramiyeStore.totalIkramiyeValue) * Number(selectedOran.value)) / 100
|
||||
|
||||
calculatedKdv.value =
|
||||
(calculatedOran.value *
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani)) /
|
||||
100
|
||||
}
|
||||
|
||||
const IzinBedeliMuhasebelestir = async () => {
|
||||
if (selectedOranId.value === null) {
|
||||
toastStore.AddToast('Lütfen bir oran seçiniz', 'error', 5000)
|
||||
return
|
||||
}
|
||||
|
||||
let data = await dataStore.dataGet(
|
||||
'MuhasebeSettings/IzinBasvuruBedeli/' + piyangoStore.selectedLottery
|
||||
'MuhasebeSettings/IzinBasvuruBedeli/' +
|
||||
piyangoStore.selectedLottery +
|
||||
'/' +
|
||||
selectedOranId.value
|
||||
)
|
||||
if (data !== 'errorfalse') {
|
||||
toastStore.AddToast('İzin bedeli başarıyla muhasebeleştirildi. Fatura No: '+data.izinBelgeNo , 'success', 30000)
|
||||
toastStore.AddToast(
|
||||
'İzin bedeli başarıyla muhasebeleştirildi. Fatura No: ' + data.izinBelgeNo,
|
||||
'success',
|
||||
30000
|
||||
)
|
||||
loaded.value = false
|
||||
await GetData()
|
||||
piyangoStore.lotteryIzinBedeliStatus = true
|
||||
showIzinBedeliModal.value = false
|
||||
selectedOran.value = null
|
||||
selectedOranId.value = null
|
||||
setTimeout(() => {
|
||||
loaded.value = true
|
||||
}, 30)
|
||||
@ -131,3 +358,140 @@
|
||||
await GetData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.modal-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 0;
|
||||
max-width: 500px;
|
||||
width: 90%;
|
||||
max-height: 90vh;
|
||||
overflow-y: auto;
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 24px;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
}
|
||||
|
||||
.modal-header h3 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #1f2937;
|
||||
}
|
||||
|
||||
.modal-close {
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 24px;
|
||||
cursor: pointer;
|
||||
color: #6b7280;
|
||||
padding: 0;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.modal-close:hover {
|
||||
background-color: #f3f4f6;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
font-weight: 500;
|
||||
color: #374151;
|
||||
}
|
||||
|
||||
.form-select {
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
border: 1px solid #d1d5db;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
background-color: white;
|
||||
transition: border-color 0.2s;
|
||||
}
|
||||
|
||||
.form-select:focus {
|
||||
outline: none;
|
||||
border-color: #3b82f6;
|
||||
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 12px;
|
||||
padding: 20px 24px;
|
||||
border-top: 1px solid #e5e7eb;
|
||||
background-color: #f9fafb;
|
||||
border-radius: 0 0 8px 8px;
|
||||
}
|
||||
|
||||
.button-c {
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.button-cancel {
|
||||
background-color: #6b7280;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.button-cancel:hover {
|
||||
background-color: #4b5563;
|
||||
}
|
||||
|
||||
.button-save {
|
||||
background-color: #3b82f6;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.button-save:hover {
|
||||
background-color: #2563eb;
|
||||
}
|
||||
.table-bordered {
|
||||
width: 100%;
|
||||
}
|
||||
.table-bordered tr td {
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
padding: 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
90
src/module/muhasebe/components/form/FormIzinBedelOrani.vue
Normal file
90
src/module/muhasebe/components/form/FormIzinBedelOrani.vue
Normal file
@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<div
|
||||
:class="['form-part', izinBedelOraniValidationStore.formChanged ? 'changed' : '']">
|
||||
<div class="form-part-title">
|
||||
<h4>{{ izinBedelOraniStore.isNew ? 'Yeni İzin Bedel Oranı' : 'İzin Bedel Oranı Düzenle' }}</h4>
|
||||
<div class="form-part-title-buttons"></div>
|
||||
</div>
|
||||
<div class="form-part-content">
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
modelKey="ad"
|
||||
v-model="izinBedelOraniStore.izinBedelOraniForm.ad"
|
||||
:invalidText="izinBedelOraniValidationStore.invalidTexts.ad"
|
||||
label="Ad"
|
||||
maxlength="100"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
modelKey="oran"
|
||||
v-model="izinBedelOraniStore.izinBedelOraniForm.oran"
|
||||
:invalidText="izinBedelOraniValidationStore.invalidTexts.oran"
|
||||
label="Oran (%)"
|
||||
maxlength="3"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
description="1-100 arasında bir rakam giriniz"
|
||||
@keyup="OnKeyup" />
|
||||
<form-textarea
|
||||
required
|
||||
modelKey="aciklama"
|
||||
v-model="izinBedelOraniStore.izinBedelOraniForm.aciklama"
|
||||
:invalidText="izinBedelOraniValidationStore.invalidTexts.aciklama"
|
||||
label="Açıklama"
|
||||
maxlength="500"
|
||||
rows="4"
|
||||
@keyup="OnKeyup" />
|
||||
<form-checkbox
|
||||
modelKey="aktif"
|
||||
v-model="izinBedelOraniStore.izinBedelOraniForm.aktif"
|
||||
label="Aktif"
|
||||
@change="OnKeyup" />
|
||||
<div
|
||||
class="form-item"
|
||||
v-if="izinBedelOraniStore.isNew || izinBedelOraniValidationStore.formChanged">
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="izinBedelOraniService.SaveIzinBedelOrani">
|
||||
{{ izinBedelOraniStore.isNew ? 'Kaydet' : 'Güncelle' }}
|
||||
</button>
|
||||
<button
|
||||
class="button-c button-cancel"
|
||||
@click="CancelForm"
|
||||
v-if="izinBedelOraniValidationStore.formChanged">
|
||||
Vazgeç
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { useIzinBedelOraniStore } from '../../store/izinBedelOraniStore'
|
||||
const izinBedelOraniStore = useIzinBedelOraniStore()
|
||||
import { useIzinBedelOraniValidationStore } from '../../validation/izinBedelOraniValidationStore'
|
||||
const izinBedelOraniValidationStore = useIzinBedelOraniValidationStore()
|
||||
import { useIzinBedelOraniService } from '../../service/izinBedelOraniService'
|
||||
const izinBedelOraniService = useIzinBedelOraniService()
|
||||
|
||||
const OnKeyup = () => {
|
||||
izinBedelOraniValidationStore.formChanged = true
|
||||
}
|
||||
|
||||
const CancelForm = () => {
|
||||
if (izinBedelOraniStore.isNew) {
|
||||
izinBedelOraniStore.isNew = false
|
||||
} else {
|
||||
izinBedelOraniStore.RestoreData()
|
||||
izinBedelOraniValidationStore.formChanged = false
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
if (izinBedelOraniStore.isNew) {
|
||||
izinBedelOraniStore.ResetForm()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@ -6,17 +6,6 @@
|
||||
<div class="form-part-title-buttons"></div>
|
||||
</div>
|
||||
<div class="form-part-content" v-if="muhasebeSettingsService.loaded">
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
modelKey="izinBedeliOrani"
|
||||
v-model="muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani"
|
||||
:invalidText="muhasebeSettingsValidationStore.invalidTexts.izinBedeliOrani"
|
||||
label="İzin Bedeli Oranı"
|
||||
maxlength="3"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
description="1-100 arasında bir rakam giriniz"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
@ -26,6 +15,15 @@
|
||||
label="Başvuru Bedeli"
|
||||
@keydown="validationStore.allowPrice"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
modelKey="basvuruBedeliKdvOrani"
|
||||
v-model="muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani"
|
||||
:invalidText="muhasebeSettingsValidationStore.invalidTexts.BasvuruBedeliKdvOrani"
|
||||
label="Başvuru Bedeli KDV Oranı"
|
||||
@keydown="validationStore.allowPrice"
|
||||
@keyup="OnKeyup" />
|
||||
<form-input
|
||||
required
|
||||
half
|
||||
@ -58,7 +56,10 @@
|
||||
@click="muhasebeSettingsService.SaveMuhasebeSettings">
|
||||
Kaydet
|
||||
</button>
|
||||
<button class="button-c button-cancel" @click="muhasebeSettingsStore.RestoreData" v-if="muhasebeSettingsValidationStore.formChanged">
|
||||
<button
|
||||
class="button-c button-cancel"
|
||||
@click="muhasebeSettingsStore.RestoreData"
|
||||
v-if="muhasebeSettingsValidationStore.formChanged">
|
||||
Vazgeç
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
import muhasebePiyangoListesi from './muhasebe-piyango-listesi'
|
||||
import muhasebePiyangoDetay from './muhasebe-piyango-detay'
|
||||
import muhasebeAyarlar from './muhasebe-ayarlar'
|
||||
import izinBedelOrani from './izin-bedel-orani'
|
||||
|
||||
export default [
|
||||
muhasebePiyangoListesi,
|
||||
muhasebePiyangoDetay,
|
||||
muhasebeAyarlar,
|
||||
izinBedelOrani,
|
||||
]
|
||||
|
||||
10
src/module/muhasebe/routes/izin-bedel-orani.ts
Normal file
10
src/module/muhasebe/routes/izin-bedel-orani.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import IzinBedelOrani from '../views/IzinBedelOrani.vue'
|
||||
|
||||
export default {
|
||||
path: '/muhasebe/izin-bedel-orani',
|
||||
name: 'IzinBedelOrani',
|
||||
component: IzinBedelOrani,
|
||||
meta: {
|
||||
authRequired: true
|
||||
}
|
||||
}
|
||||
102
src/module/muhasebe/service/izinBedelOraniService.ts
Normal file
102
src/module/muhasebe/service/izinBedelOraniService.ts
Normal file
@ -0,0 +1,102 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref } from 'vue'
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
import { useIzinBedelOraniStore } from '../store/izinBedelOraniStore'
|
||||
import { useIzinBedelOraniValidationStore } from '../validation/izinBedelOraniValidationStore'
|
||||
|
||||
export const useIzinBedelOraniService = defineStore('izinBedelOraniService', () => {
|
||||
const dataStore = useDataStore()
|
||||
const izinBedelOraniStore = useIzinBedelOraniStore()
|
||||
const izinBedelOraniValidationStore = useIzinBedelOraniValidationStore()
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
|
||||
const SaveIzinBedelOrani = async (panelData: Record<string, any>, isUpdate: boolean = false) => {
|
||||
if (izinBedelOraniValidationStore.FormCheck(panelData)) {
|
||||
var res: any
|
||||
|
||||
if (!isUpdate) {
|
||||
res = await dataStore.dataPost('IzinBedelOrani', {
|
||||
data: {
|
||||
adi: panelData.ad,
|
||||
oran: panelData.oran,
|
||||
aciklama: panelData.aciklama,
|
||||
aktif: panelData.aktif
|
||||
}
|
||||
})
|
||||
} else {
|
||||
res = await dataStore.dataPut('IzinBedelOrani/' + panelData.id, {
|
||||
data: {
|
||||
id: panelData.id,
|
||||
adi: panelData.ad,
|
||||
oran: panelData.oran,
|
||||
aciklama: panelData.aciklama,
|
||||
aktif: panelData.aktif
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (res !== 'errorfalse') {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
const DeleteIzinBedelOrani = async (id: number | string) => {
|
||||
var res = await dataStore.dataDelete('IzinBedelOrani/' + id)
|
||||
return res !== 'errorfalse'
|
||||
}
|
||||
|
||||
const GetIzinBedelOraniList = async () => {
|
||||
var res = await dataStore.dataGet('IzinBedelOrani')
|
||||
if (res !== 'errorfalse') {
|
||||
izinBedelOraniStore.izinBedelOraniList = res
|
||||
return res
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
const GetIzinBedelOraniById = async (id: number | string) => {
|
||||
var res = await dataStore.dataGet('IzinBedelOrani/' + id)
|
||||
if (res !== 'errorfalse') {
|
||||
return res
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
const GetAktifIzinBedelOraniList = async () => {
|
||||
var res = await dataStore.dataGet('IzinBedelOrani/Aktif')
|
||||
if (res !== 'errorfalse') {
|
||||
izinBedelOraniStore.aktifIzinBedelOraniList = res
|
||||
return res
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
const UpdateIzinBedelOraniStatus = async (id: number | string, aktif: boolean) => {
|
||||
var res = await dataStore.dataPut('IzinBedelOrani/' + id + '/Status', {
|
||||
data: {
|
||||
Aktif: aktif
|
||||
}
|
||||
})
|
||||
return res !== 'errorfalse'
|
||||
}
|
||||
|
||||
const LoadData = async () => {
|
||||
await GetIzinBedelOraniList()
|
||||
await GetAktifIzinBedelOraniList()
|
||||
loaded.value = true
|
||||
}
|
||||
|
||||
return {
|
||||
loaded,
|
||||
SaveIzinBedelOrani,
|
||||
DeleteIzinBedelOrani,
|
||||
GetIzinBedelOraniList,
|
||||
GetIzinBedelOraniById,
|
||||
GetAktifIzinBedelOraniList,
|
||||
UpdateIzinBedelOraniStatus,
|
||||
LoadData
|
||||
}
|
||||
})
|
||||
59
src/module/muhasebe/store/izinBedelOraniStore.ts
Normal file
59
src/module/muhasebe/store/izinBedelOraniStore.ts
Normal file
@ -0,0 +1,59 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
|
||||
export const useIzinBedelOraniStore = defineStore('izinBedelOraniStore', () => {
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
const izinBedelOraniBaseForm = reactive<Record<string, any>>({
|
||||
ad: '',
|
||||
oran: 0,
|
||||
aciklama: '',
|
||||
aktif: true,
|
||||
appUserId: usersStore.userId
|
||||
})
|
||||
|
||||
const izinBedelOraniForm = reactive<Record<string, any>>({})
|
||||
const izinBedelOraniSafeForm = reactive<Record<string, any>>({})
|
||||
const izinBedelOraniList = ref<Record<string, any>[]>([])
|
||||
const aktifIzinBedelOraniList = ref<Record<string, any>[]>([])
|
||||
const isNew = ref<boolean>(false)
|
||||
const izinBedelOraniLoaded = ref<boolean>(false)
|
||||
|
||||
const ResetForm = () => {
|
||||
Object.assign(izinBedelOraniForm, izinBedelOraniBaseForm)
|
||||
}
|
||||
|
||||
const SafeServerData = () => {
|
||||
Object.assign(izinBedelOraniSafeForm, izinBedelOraniForm)
|
||||
}
|
||||
|
||||
const RestoreData = () => {
|
||||
Object.assign(izinBedelOraniForm, izinBedelOraniSafeForm)
|
||||
}
|
||||
|
||||
const NewForm = () => {
|
||||
ResetForm()
|
||||
isNew.value = true
|
||||
}
|
||||
|
||||
const EditForm = (item: Record<string, any>) => {
|
||||
Object.assign(izinBedelOraniForm, item)
|
||||
isNew.value = false
|
||||
}
|
||||
|
||||
return {
|
||||
izinBedelOraniBaseForm,
|
||||
izinBedelOraniForm,
|
||||
izinBedelOraniSafeForm,
|
||||
izinBedelOraniList,
|
||||
aktifIzinBedelOraniList,
|
||||
isNew,
|
||||
izinBedelOraniLoaded,
|
||||
ResetForm,
|
||||
SafeServerData,
|
||||
RestoreData,
|
||||
NewForm,
|
||||
EditForm
|
||||
}
|
||||
})
|
||||
@ -7,8 +7,8 @@ export const useMuhasebeSettingsStore = defineStore('muhasebeSettingsStore', ()
|
||||
|
||||
const muhasebeSettingsBaseForm = reactive<Record<string, any>>({
|
||||
appUserId: usersStore.userId,
|
||||
izinBedeliOrani: 30,
|
||||
basvuruBedeli: '10.167,00',
|
||||
BasvuruBedeliKdvOrani: 20,
|
||||
kurumBanka: 'Türkiye Vakıflar Bankası T.A.O.',
|
||||
kurumBankaSube: 'Ankara Kurumsal',
|
||||
kurumIBAN: 'TR26 0001 5001 5800 7295 4624 00'
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
|
||||
export const useIzinBedelOraniValidationStore = defineStore(
|
||||
'izinBedelOraniValidationStore',
|
||||
() => {
|
||||
const validationStore = useValidationStore()
|
||||
|
||||
const formChanged = ref<boolean>(false)
|
||||
const isFormValid = ref<boolean>(true)
|
||||
const invalidTexts = reactive<Record<string, any>>({})
|
||||
|
||||
const FormCheck = (panelData: Record<string, any>): boolean => {
|
||||
Object.assign(invalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
panelData,
|
||||
invalidTexts,
|
||||
'ad',
|
||||
'Ad alanı zorunludur'
|
||||
)
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
panelData,
|
||||
invalidTexts,
|
||||
'oran',
|
||||
'Oran alanı zorunludur'
|
||||
)
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
panelData,
|
||||
invalidTexts,
|
||||
'aciklama',
|
||||
'Açıklama alanı zorunludur'
|
||||
)
|
||||
|
||||
// Oran validation (0-100 arası)
|
||||
if (panelData.oran !== undefined && panelData.oran !== '') {
|
||||
const oran = parseFloat(panelData.oran)
|
||||
if (isNaN(oran) || oran < 0 || oran > 100) {
|
||||
invalidTexts.oran = 'Oran 0-100 arasında olmalıdır'
|
||||
}
|
||||
}
|
||||
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
|
||||
const ResetValidation = () => {
|
||||
Object.assign(invalidTexts, {})
|
||||
formChanged.value = false
|
||||
isFormValid.value = true
|
||||
}
|
||||
|
||||
return {
|
||||
formChanged,
|
||||
isFormValid,
|
||||
invalidTexts,
|
||||
FormCheck,
|
||||
ResetValidation
|
||||
}
|
||||
}
|
||||
)
|
||||
@ -19,22 +19,24 @@ export const useMuhasebeSettingsValidationStore = defineStore(
|
||||
validationStore.IsFieldEmpty(
|
||||
muhasebeSettingsStore.muhasebeSettingsForm,
|
||||
invalidTexts,
|
||||
'izinBedeliOrani',
|
||||
'basvuruBedeliKdvOrani',
|
||||
'Lütfen izin bedeli oranını giriniz.'
|
||||
)
|
||||
if (
|
||||
!validationStore.checkEmpty(
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani
|
||||
)
|
||||
) {
|
||||
if (
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) === 0 ||
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) > 100
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani) ===
|
||||
0 ||
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani) > 100
|
||||
) {
|
||||
isFormValid.value = false
|
||||
invalidTexts['izinBedeliOrani'] = 'Lütfen 0-100 arasında bir değer giriniz.'
|
||||
invalidTexts['basvuruBedeliKdvOrani'] =
|
||||
'Lütfen 0-100 arasında bir değer giriniz.'
|
||||
} else {
|
||||
delete invalidTexts['izinBedeliOrani']
|
||||
delete invalidTexts['basvuruBedeliKdvOrani']
|
||||
}
|
||||
}
|
||||
validationStore.IsFieldEmpty(
|
||||
|
||||
201
src/module/muhasebe/views/IzinBedelOrani.vue
Normal file
201
src/module/muhasebe/views/IzinBedelOrani.vue
Normal file
@ -0,0 +1,201 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Muhasebe / İzin Bedel Oranı" />
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
:tableHeader="tableHeader"
|
||||
:rowAction="updateAction"
|
||||
:addAction="addAction"
|
||||
icon="draws"
|
||||
title="İzin Bedel Oranları"
|
||||
listText="İzin Bedel Oranı"
|
||||
:tableData="izinBedelOraniList"
|
||||
apiText="İzin Bedel Oranı Listesi"
|
||||
apiList="IzinBedelOrani"
|
||||
v-model:refresh="refresh"
|
||||
:rowActions="rowActions"
|
||||
:rowActionStyle="'width:15%;'" />
|
||||
</section>
|
||||
|
||||
<panel-wrapper
|
||||
v-if="panel"
|
||||
v-model="panel"
|
||||
:panel-title="isUpdate ? 'İzin Bedel Oranı Düzenle' : 'Yeni İzin Bedel Oranı Ekle'">
|
||||
<template #panelContent>
|
||||
<form-input
|
||||
required
|
||||
v-model="panelIzinBedelOrani.ad"
|
||||
label="Ad"
|
||||
maxlength="100" />
|
||||
<form-input
|
||||
required
|
||||
v-model="panelIzinBedelOrani.oran"
|
||||
label="Oran (%)"
|
||||
maxlength="3"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
description="1-100 arasında bir rakam giriniz" />
|
||||
<form-textarea
|
||||
required
|
||||
v-model="panelIzinBedelOrani.aciklama"
|
||||
label="Açıklama"
|
||||
maxlength="500"
|
||||
rows="4" />
|
||||
<form-checkbox
|
||||
v-model="panelIzinBedelOrani.aktif"
|
||||
label="Aktif" />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<div class="button-c button-save" @click="save">
|
||||
{{ isUpdate ? 'Güncelle' : 'Ekle' }}
|
||||
</div>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onBeforeMount, computed } from 'vue'
|
||||
import AdminLayout from '@/layouts/AdminLayout.vue'
|
||||
import PanelWrapper from '@/components/PanelWrapper.vue'
|
||||
import { useIzinBedelOraniStore } from '../store/izinBedelOraniStore'
|
||||
import { useIzinBedelOraniService } from '../service/izinBedelOraniService'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
|
||||
const izinBedelOraniStore = useIzinBedelOraniStore()
|
||||
const izinBedelOraniService = useIzinBedelOraniService()
|
||||
const validationStore = useValidationStore()
|
||||
const dialogStore = useDialogStore()
|
||||
const dataStore = useDataStore()
|
||||
|
||||
const panel = ref<boolean>(false)
|
||||
const isUpdate = ref<boolean>(false)
|
||||
const refresh = ref<boolean>(false)
|
||||
const panelIzinBedelOrani = ref<Record<string, any>>({})
|
||||
const izinBedelOraniList = ref<Record<string, any>[]>([])
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>(
|
||||
[
|
||||
{
|
||||
name: 'id',
|
||||
title: 'ID',
|
||||
sort: true,
|
||||
style: { width: '8%' }
|
||||
},
|
||||
{
|
||||
name: 'adi',
|
||||
title: 'Ad',
|
||||
sort: true,
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'oran',
|
||||
title: 'Oran (%)',
|
||||
sort: true,
|
||||
style: { width: '15%' },
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return `%${v.oran}`
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama',
|
||||
sort: true,
|
||||
style: { width: '30%' }
|
||||
},
|
||||
{
|
||||
name: 'aktif',
|
||||
title: 'Durum',
|
||||
sort: true,
|
||||
style: { width: '12%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if (v.aktif) {
|
||||
return `<span class="back-grad back-grad-ok">Aktif</span>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-alert">Pasif</span>`
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
|
||||
const DeleteRowPop = (data: Record<string, any>, i: number) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'İzin Bedel Oranı Sil',
|
||||
id: 'deleteIzinBedelOrani',
|
||||
content: 'İzin bedel oranını silmek istediğinize emin misiniz?',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'İzin Bedel Oranı Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteRow(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteRow = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('IzinBedelOrani/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteIzinBedelOrani')
|
||||
refresh.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const rowActions = ref<Record<string, any>[]>([
|
||||
{
|
||||
text: 'Sil',
|
||||
class: 'alert',
|
||||
action: DeleteRowPop
|
||||
}
|
||||
])
|
||||
|
||||
const addAction = async () => {
|
||||
isUpdate.value = false
|
||||
panelIzinBedelOrani.value = {
|
||||
ad: '',
|
||||
oran: 0,
|
||||
aciklama: '',
|
||||
aktif: true
|
||||
}
|
||||
panel.value = true
|
||||
}
|
||||
|
||||
const updateAction = (row: any) => {
|
||||
const foundItem = izinBedelOraniList.value.find((x) => x.id == row.id)
|
||||
if (foundItem) {
|
||||
panelIzinBedelOrani.value = {
|
||||
id: foundItem.id,
|
||||
ad: foundItem.adi,
|
||||
oran: foundItem.oran,
|
||||
aciklama: foundItem.aciklama,
|
||||
aktif: foundItem.aktif
|
||||
}
|
||||
}
|
||||
panel.value = true
|
||||
isUpdate.value = true
|
||||
}
|
||||
|
||||
const save = async () => {
|
||||
const result = await izinBedelOraniService.SaveIzinBedelOrani(panelIzinBedelOrani.value, isUpdate.value)
|
||||
if (result) {
|
||||
panel.value = false
|
||||
isUpdate.value = false
|
||||
refresh.value = true
|
||||
await loadIzinBedelOraniList()
|
||||
}
|
||||
}
|
||||
|
||||
const loadIzinBedelOraniList = async () => {
|
||||
const data = await dataStore.dataGet('IzinBedelOrani')
|
||||
if (data !== 'errorfalse') {
|
||||
izinBedelOraniList.value = data
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await loadIzinBedelOraniList()
|
||||
})
|
||||
</script>
|
||||
@ -9,7 +9,15 @@
|
||||
:data="file"
|
||||
@click="ReplaceImage"
|
||||
onlyPreview
|
||||
:filePath="file.fileUrl" />
|
||||
:filePath="file.fileUrl">
|
||||
<template #actionButtons v-if="!usersStore.isPanelUser">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteImagePop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
</file-list-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class="form-item form-item-picture clickable" @click="picturePanel = true">
|
||||
@ -43,12 +51,14 @@
|
||||
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { useSiteManagementPageStore } from '../../stores/siteManagementPageStore'
|
||||
const siteManagementPageStore = useSiteManagementPageStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
const picturePanel = ref<boolean>(false)
|
||||
const isUpdate = ref<boolean>(false)
|
||||
@ -108,6 +118,32 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const DeleteImagePop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Resim Sil',
|
||||
id: 'deleteimage',
|
||||
content: 'Resmi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Resmi Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteImage(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteImage = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('DocumentPage/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteimage')
|
||||
await GetData()
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await GetData()
|
||||
})
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
</AdminLayout>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, computed } from 'vue'
|
||||
import { ref, computed } from 'vue'
|
||||
import AdminLayout from '@/layouts/AdminLayout.vue'
|
||||
import { Breadcrumb } from '@/components/global'
|
||||
import router from '@/router'
|
||||
@ -87,7 +87,7 @@
|
||||
title: 'Resim Url',
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
if (v.resimUrl !== null && v.resimUrl !== undefined) {
|
||||
return globalStore.TableCellDocument(v.resimUrl)
|
||||
return `<a href="${ v.resimUrl }" target="_blank" onclick="event.stopPropagation()"><img class="table-cell-image" src="${ v.resimUrl }" /></a>`
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -78,7 +78,7 @@
|
||||
title: 'Resim Url',
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
if (v.resimUrl !== null && v.resimUrl !== undefined) {
|
||||
return globalStore.TableCellDocument(v.resimUrl)
|
||||
return `<a href="${ v.resimUrl }" target="_blank" onclick="event.stopPropagation()"><img class="table-cell-image" src="${ v.resimUrl }" /></a>`
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -108,8 +108,8 @@
|
||||
v-model="uyeBilgileriStore.formData.gercekVergiNo"
|
||||
required
|
||||
label="Vergi No"
|
||||
maxlength="11"
|
||||
minlength="11"
|
||||
maxlength="10"
|
||||
minlength="10"
|
||||
:invalidText="uyeBilgileriStore.invalidTexts.gercekVergiNo"
|
||||
@keydown="validationStore.allowNumbersWithKeys"
|
||||
@keyup="OnKeyup" />
|
||||
|
||||
@ -16,7 +16,9 @@
|
||||
</div>
|
||||
<div class="form-part-content" v-if="customerDocumentStore.loaded">
|
||||
<template v-if="customerDocumentStore.customerDocumentsList.length > 0">
|
||||
<div class="form-inner-comment waiting-d" v-if="customerDocumentStore.customerDocumentsList.length < 3">
|
||||
<div
|
||||
class="form-inner-comment waiting-d"
|
||||
v-if="customerDocumentStore.customerDocumentsList.length < 3">
|
||||
En az
|
||||
<strong>Ticaret Sicil Gazetesi, Vergi Levhası, İmza Sirküleri</strong>
|
||||
sisteme yüklenmiş olmalıdır.
|
||||
@ -26,12 +28,26 @@
|
||||
:data="file"
|
||||
@click="EditDocument"
|
||||
:filePath="file.filePath"
|
||||
:editable="usersStore.selectedUserApproveId === 3 || usersStore.selectedUserApproveId === 0"
|
||||
title="title" />
|
||||
:editable="
|
||||
usersStore.isPanelUser ||
|
||||
(!usersStore.isPanelUser &&
|
||||
(usersStore.selectedUserApproveId === 3 ||
|
||||
usersStore.selectedUserApproveId === 0))
|
||||
"
|
||||
title="title">
|
||||
<template #actionButtons v-if="usersStore.isPanelUser">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteDocumentPop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
</file-list-item>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="!usersStore.isPanelUser && usersStore.selectedUserApproveId !== 5">
|
||||
<template
|
||||
v-if="!usersStore.isPanelUser && usersStore.selectedUserApproveId !== 5">
|
||||
<div class="form-inner-comment">
|
||||
<span>
|
||||
Eklenmiş dosya bulunamadı. Üstteki butonu kullanarak dosya ekleyebilirsiniz.
|
||||
@ -79,20 +95,21 @@
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onBeforeMount } from 'vue'
|
||||
import { onBeforeMount } from 'vue'
|
||||
|
||||
import PanelUserDocument from '../panel/PanelUserDocument.vue'
|
||||
import PanelWrapper from '@/components/PanelWrapper.vue'
|
||||
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
import { useCustomerDocumentStore } from '../../stores/customerDocumentStore'
|
||||
const customerDocumentStore = useCustomerDocumentStore()
|
||||
import { useCustomerDocumentService } from '../../service/customerDocumentService'
|
||||
const customerDocumentService = useCustomerDocumentService()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
|
||||
const NewDocument = () => {
|
||||
customerDocumentStore.ResetForm()
|
||||
@ -106,6 +123,31 @@
|
||||
customerDocumentStore.documentPanel = true
|
||||
}
|
||||
|
||||
const DeleteDocumentPop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Doküman Sil',
|
||||
id: 'deletedoc',
|
||||
content: 'Dokümanı silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Doküman Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteDocument(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteDocument = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('AppUserDocument/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deletedoc')
|
||||
await customerDocumentService.GetDocumentList()
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
usersStore.SetSelectedUser()
|
||||
|
||||
|
||||
@ -1,49 +1,64 @@
|
||||
<template>
|
||||
<div class='form-part'>
|
||||
<div class='form-part-title'>
|
||||
<div class="form-part">
|
||||
<div class="form-part-title">
|
||||
<h4>Profil Resmi</h4>
|
||||
</div>
|
||||
<div class='form-part-content'>
|
||||
<div class="form-part-content">
|
||||
<template v-if="file.filePath !== '' && file.filePath !== null">
|
||||
<file-list-item
|
||||
:data='file'
|
||||
@click='ReplaceImage'
|
||||
:data="file"
|
||||
@click="ReplaceImage"
|
||||
onlyPreview
|
||||
:filePath='file.filePath' />
|
||||
:filePath="file.filePath">
|
||||
<template
|
||||
#actionButtons
|
||||
v-if="
|
||||
route.name === 'Profil' ||
|
||||
(route.name === 'Profil' && !usersStore.isPanelUser)
|
||||
">
|
||||
<i
|
||||
class="ico-c ico-btn ico-section back-grad-alert"
|
||||
@click="DeleteImagePop(file)">
|
||||
<svg><use href="/src/assets/images/icons.svg#trash"></use></svg>
|
||||
</i>
|
||||
</template>
|
||||
</file-list-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="route.name === 'Profil' || (route.name === 'Profil' && !usersStore.isPanelUser)">
|
||||
<div class='form-item form-item-picture clickable' @click='picturePanel = true'>
|
||||
<div class='image-c'>
|
||||
<i class='ico-c'>
|
||||
<template
|
||||
v-if="
|
||||
route.name === 'Profil' ||
|
||||
(route.name === 'Profil' && !usersStore.isPanelUser)
|
||||
">
|
||||
<div class="form-item form-item-picture clickable" @click="picturePanel = true">
|
||||
<div class="image-c">
|
||||
<i class="ico-c">
|
||||
<svg>
|
||||
<use href='@/assets/images/icons.svg#plus'></use>
|
||||
<use href="@/assets/images/icons.svg#plus"></use>
|
||||
</svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class='form-inner-comment'>
|
||||
Eklenmiş resim bulunamadı.
|
||||
</div>
|
||||
<div class="form-inner-comment">Eklenmiş resim bulunamadı.</div>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<panel-wrapper
|
||||
v-if='picturePanel'
|
||||
v-model='picturePanel'
|
||||
panel-title='Profil Resmi Ekle'>
|
||||
v-if="picturePanel"
|
||||
v-model="picturePanel"
|
||||
panel-title="Profil Resmi Ekle">
|
||||
<template #panelContent>
|
||||
<panel-user-picture />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<div class='button-c button-save' @click='FileUpload'>Ekle</div>
|
||||
<div class="button-c button-save" @click="FileUpload">Ekle</div>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang='ts'>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount } from 'vue'
|
||||
import PanelUserPicture from '../panel/PanelUserPicture.vue'
|
||||
import PanelWrapper from '@/components/PanelWrapper.vue'
|
||||
@ -52,20 +67,13 @@
|
||||
|
||||
const route = useRoute()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
|
||||
const dataStore = useDataStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
|
||||
const globalStore = useGlobalStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
|
||||
const validationStore = useValidationStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
|
||||
const usersStore = useUsersStore()
|
||||
import { useCustomerStore } from '@/module/uyeler/stores/customerStore'
|
||||
|
||||
const customerStore = useCustomerStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
|
||||
const picturePanel = ref<boolean>(false)
|
||||
const isUpdate = ref<boolean>(false)
|
||||
@ -82,7 +90,9 @@
|
||||
}
|
||||
|
||||
const GetData = async () => {
|
||||
let dt = await dataStore.dataGet('AppUserResim/AppUserId/' + usersStore.selectedUserId())
|
||||
let dt = await dataStore.dataGet(
|
||||
'AppUserResim/AppUserId/' + usersStore.selectedUserId()
|
||||
)
|
||||
if (dt !== 'errorfalse') {
|
||||
Object.assign(file, dt)
|
||||
if (usersStore.selectedUserId() === usersStore.userId)
|
||||
@ -126,6 +136,32 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const DeleteImagePop = (data: Record<string, any>) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Resim Sil',
|
||||
id: 'deleteimage',
|
||||
content: 'Resmi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Resim Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteImage(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteImage = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('AppUserResim/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteimage')
|
||||
await GetData()
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await GetData()
|
||||
})
|
||||
|
||||
@ -325,8 +325,8 @@ export const useUyeBilgileriStore = defineStore('uyeBilgileriStore', () => {
|
||||
IsFieldEmpty('gercekVergiDairesi', 'Bu alan boş bırakılamaz')
|
||||
IsFieldEmpty('gercekVergiNo', 'Bu alan boş bırakılamaz')
|
||||
if (!validationStore.checkEmpty(formData.gercekVergiNo)) {
|
||||
if (formData.gercekVergiNo.length !== 11) {
|
||||
invalidTexts.gercekVergiNo = 'Vergi numaranızı 11 hane olarak giriniz.'
|
||||
if (formData.gercekVergiNo.length !== 10) {
|
||||
invalidTexts.gercekVergiNo = 'Vergi numaranızı 10 hane olarak giriniz.'
|
||||
isFormValid.value = false
|
||||
} else {
|
||||
delete invalidTexts.gercekVergiNo
|
||||
|
||||
@ -8,7 +8,7 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
const globalDataStore = useGlobalDataStore()
|
||||
const toastStore = useToastStore()
|
||||
|
||||
const siteBase = ref<string>('https://panelapi.cekilisevi.gov.tr/')
|
||||
const siteBase = ref<string>(import.meta.env.VITE_API_URL)
|
||||
const apiBase = ref<string>('api/')
|
||||
const panelData = reactive<Record<string, any>>({})
|
||||
const pageData = reactive<Record<string, any>>({})
|
||||
@ -40,7 +40,7 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
}
|
||||
|
||||
const response = await axios.get(apiBase.value + api, sendData)
|
||||
//console.log('response --', api, response)
|
||||
console.log('response --', api, response)
|
||||
|
||||
if (data.full !== undefined && data.full) {
|
||||
return response
|
||||
@ -49,7 +49,7 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
}
|
||||
} catch (error: any) {
|
||||
CheckApiError(error.response.status, error.response.data)
|
||||
//console.error('Hata oluştu -:', error)
|
||||
console.error('Hata oluştu -:', error)
|
||||
return 'errorfalse'
|
||||
}
|
||||
}
|
||||
@ -86,7 +86,7 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
} catch (error: any) {
|
||||
CheckApiError(error.response.status, error.response.data)
|
||||
|
||||
//console.error('Hata oluştu:', error)
|
||||
console.error('Hata oluştu:', error)
|
||||
return Promise.resolve('errorfalse')
|
||||
}
|
||||
}
|
||||
@ -122,7 +122,7 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
} catch (error: any) {
|
||||
CheckApiError(error.response.status, error.response.data)
|
||||
|
||||
//console.error('Hata oluştu:', error)
|
||||
console.error('Hata oluştu:', error)
|
||||
return Promise.resolve('errorfalse')
|
||||
}
|
||||
}
|
||||
@ -156,24 +156,30 @@ export const useDataStore = defineStore('dataStore', () => {
|
||||
}
|
||||
} catch (error: any) {
|
||||
CheckApiError(error.response.status, error.response.data)
|
||||
//console.error('Hata oluştu:', error)
|
||||
console.error('Hata oluştu:', error)
|
||||
return Promise.resolve('errorfalse')
|
||||
}
|
||||
}
|
||||
|
||||
const CheckApiError = async (status: number, data: Record<string, any>) => {
|
||||
if (status === 400) {
|
||||
const errorKey = data['hata'] || data['errors']
|
||||
const errorKey = typeof data === "string" ? data : data?.hata || data?.errors;
|
||||
|
||||
if (errorKey !== undefined) {
|
||||
if (Array.isArray(errorKey)) {
|
||||
errorKey.forEach((el: string) => {
|
||||
toastStore.AddToast(el, 'alert')
|
||||
})
|
||||
toastStore.AddToast(el, "alert");
|
||||
});
|
||||
} else if (typeof errorKey === "string") {
|
||||
toastStore.AddToast(errorKey, "alert");
|
||||
} else {
|
||||
toastStore.AddToast('Bir hata oluştu.', 'alert')
|
||||
}
|
||||
toastStore.AddToast("Bir hata oluştu.", "alert");
|
||||
}
|
||||
} else {
|
||||
toastStore.AddToast("Bir hata oluştu.", "alert");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const GetCustomerTipList = async () => {
|
||||
if (globalDataStore.customerTips.length === 0) {
|
||||
|
||||
@ -16,7 +16,7 @@ export const useGlobalStore = defineStore('globalStore', () => {
|
||||
tablet: 992,
|
||||
tabletp: 768
|
||||
})
|
||||
const perPage = ref<number>(10)
|
||||
const perPage = ref<number>(25)
|
||||
const selUser = ref<number>(0)
|
||||
const selAuthUser = ref<number>(0)
|
||||
const selCustomer = ref<number>(0)
|
||||
|
||||
@ -11,7 +11,7 @@ export const usePreviewStore = defineStore('previewStore', () => {
|
||||
var pdfData = `<style>
|
||||
.form-item{
|
||||
width: 100%;
|
||||
border: 1px solid #dddddd;
|
||||
border: 1px solid #f2f2f2;
|
||||
float:left;
|
||||
}
|
||||
.form-item-half{
|
||||
@ -19,8 +19,8 @@ export const usePreviewStore = defineStore('previewStore', () => {
|
||||
}
|
||||
.display-title{
|
||||
width: 100%;
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid #e7e7e7;
|
||||
padding: 4px 0;
|
||||
border-bottom: 1px solid #f2f2f2;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
</style>`
|
||||
@ -70,22 +70,22 @@ export const usePreviewStore = defineStore('previewStore', () => {
|
||||
return 1
|
||||
},
|
||||
hLineColor: function () {
|
||||
return '#e7e7e7'
|
||||
return '#f2f2f2'
|
||||
},
|
||||
vLineColor: function () {
|
||||
return '#e7e7e7'
|
||||
return '#f2f2f2'
|
||||
},
|
||||
paddingLeft: function () {
|
||||
return 6
|
||||
return 4
|
||||
},
|
||||
paddingRight: function () {
|
||||
return 6
|
||||
return 4
|
||||
},
|
||||
paddingTop: function () {
|
||||
return 6
|
||||
return 4
|
||||
},
|
||||
paddingBottom: function () {
|
||||
return 6
|
||||
return 4
|
||||
}
|
||||
},
|
||||
pdfTableLayoutNoLine: {
|
||||
@ -111,7 +111,7 @@ export const usePreviewStore = defineStore('previewStore', () => {
|
||||
return 0
|
||||
},
|
||||
paddingBottom: function () {
|
||||
return 6
|
||||
return 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,10 +6,22 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [vue(), vueJsx()],
|
||||
plugins: [
|
||||
vue({
|
||||
template: {
|
||||
compilerOptions: {
|
||||
comments: false
|
||||
}
|
||||
}
|
||||
}),
|
||||
vueJsx()
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||
}
|
||||
},
|
||||
esbuild: {
|
||||
drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : []
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user