Compare commits
69 Commits
Üye/Profil
...
e8f914b321
| Author | SHA1 | Date | |
|---|---|---|---|
| e8f914b321 | |||
| bd93496e4d | |||
| 9da5f9946b | |||
| b0386d53e5 | |||
| f6c1b242b2 | |||
| b422187704 | |||
| 678a96d76f | |||
| cb9d2f220f | |||
| 03689a01e3 | |||
| f31bd6ba9e | |||
| 5fe3a36893 | |||
| 4dae2824fb | |||
| 6d4d0c8be9 | |||
| bf047e36f3 | |||
| 5d49f96c98 | |||
| 3355085a1d | |||
| 095f877224 | |||
| 2b3b09c88b | |||
| 0e3c6e658f | |||
| cab06c51a2 | |||
| 5e83a11ecc | |||
| 07c73d39db | |||
| 6e2f77f576 | |||
| 060cfab843 | |||
| 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 | |||
| 915aa1757e | |||
| 97a77a2a37 | |||
| 2338cf04d8 | |||
| 7872259102 | |||
| 0d58b0ad10 |
@ -1,2 +1,2 @@
|
||||
VITE_API_URL=http://panelapi.cekilisevitest.gov.tr/
|
||||
VITE_SOCKET_URL=https://panelapi.cekilisevitest.gov.tr/uploadHub
|
||||
VITE_SOCKET_URL=http://panelapi.cekilisevitest.gov.tr/uploadHub
|
||||
23
Configs.ts
Normal file
23
Configs.ts
Normal file
@ -0,0 +1,23 @@
|
||||
// build olurken bazı klasorlerin ayri script olarak kaydedilmesi
|
||||
export const TEMPLATE_CHUNK_GROUPS: Record<string, (RegExp | string)[]> = {
|
||||
store: [/\/src\/stores\//],
|
||||
//lott: [/\/src\/module\/cekilisler\//],
|
||||
//user: [/\/src\/module\/kullanicilar\//],
|
||||
//cust: [/\/src\/module\/uyeler\//],
|
||||
//acc: [/\/src\/module\/muhasebe\//],
|
||||
//site: [/\/src\/module\/site-yonetimi\//],
|
||||
//aut: [/\/src\/module\/auth\//]
|
||||
}
|
||||
|
||||
// id -> group_name
|
||||
export function SetTemplateGroup(id: string): string | undefined {
|
||||
const cleanId = id.split('?')[0]
|
||||
for (const [group, pats] of Object.entries(TEMPLATE_CHUNK_GROUPS)) {
|
||||
if (
|
||||
pats.some((p) => (typeof p === 'string' ? cleanId.includes(p) : p.test(cleanId)))
|
||||
) {
|
||||
return group
|
||||
}
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
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,7 +5,7 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"localdev": "vite",
|
||||
"localdev": "vite --mode localdev",
|
||||
"build": "run-p type-check \"build-only {@}\" --",
|
||||
"buildtest": "run-p type-check \"build-only-test {@}\" --",
|
||||
"preview": "vite preview",
|
||||
@ -21,8 +21,6 @@
|
||||
"jquery": "^3.7.1",
|
||||
"parchment": "^3.0.0",
|
||||
"pinia": "^2.1.7",
|
||||
"quill": "^2.0.3",
|
||||
"quill-image-resize-module": "^3.0.0",
|
||||
"summernote": "^0.9.1",
|
||||
"uuid": "^11.1.0",
|
||||
"vue": "^3.4.29",
|
||||
|
||||
BIN
public/data/mpi-sablon.zip
Normal file
BIN
public/data/mpi-sablon.zip
Normal file
Binary file not shown.
BIN
public/docs/KVKK_Sartlari.docx
Normal file
BIN
public/docs/KVKK_Sartlari.docx
Normal file
Binary file not shown.
BIN
public/docs/cekilisevi.gov.tr_Uyelik_Sozlesmesi.docx
Normal file
BIN
public/docs/cekilisevi.gov.tr_Uyelik_Sozlesmesi.docx
Normal file
Binary file not shown.
17
public/web.config
Normal file
17
public/web.config
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Handle History Mode and custom 404/500" stopProcessing="true">
|
||||
<match url="(.*)" />
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="/" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
@ -251,4 +251,14 @@
|
||||
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>
|
||||
<symbol id="eyeclose" viewBox="0 0 59 22">
|
||||
<path
|
||||
d="M56.61,11.89l2.55-1.57L52.83.03l-2.55,1.57h0s-11.76,7.25-11.76,7.25c-.94.58-1.91,1.05-2.91,1.43l-2.61.74v.02c-2.43.5-4.94.45-7.36-.14l-1.2-.34c-1.28-.41-2.53-.98-3.72-1.71L7.68.82h0s-1.35-.82-1.35-.82L0,10.28l2.55,1.57,4.76-7.73,6.18,3.81-4.79,7.77,2.55,1.57,4.79-7.77,3.09,1.9c1.15.71,2.35,1.28,3.58,1.74l-2.48,8.78,2.89.82,2.48-8.76c1.32.27,2.66.41,4.01.41,1.41,0,2.82-.16,4.2-.46l2.46,8.7,2.89-.82-2.48-8.75c1.16-.44,2.3-.99,3.39-1.66l3.12-1.92,4.79,7.77,2.55-1.57-4.79-7.77,6.08-3.75,4.75,7.72Z" />
|
||||
</symbol>
|
||||
<symbol id="eye" viewBox="0 0 51 24">
|
||||
<path
|
||||
d="M25.59,24.58c-3.62,0-7.24-.99-10.47-2.98L0,12.29,15.11,2.98c6.46-3.98,14.48-3.98,20.94,0l15.11,9.31-15.11,9.31c-3.23,1.99-6.85,2.98-10.47,2.98ZM5.72,12.29l10.97,6.75c5.49,3.38,12.31,3.38,17.8,0l10.97-6.75-10.97-6.75c-5.49-3.38-12.31-3.38-17.8,0l-10.97,6.75Z" />
|
||||
<path
|
||||
d="M25.59,21.71c-5.19,0-9.42-4.23-9.42-9.42S20.39,2.87,25.59,2.87s9.42,4.23,9.42,9.42-4.23,9.42-9.42,9.42ZM25.59,5.87c-3.54,0-6.42,2.88-6.42,6.42s2.88,6.42,6.42,6.42,6.42-2.88,6.42-6.42-2.88-6.42-6.42-6.42Z" />
|
||||
</symbol>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 44 KiB |
@ -454,6 +454,7 @@ label {
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
padding: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
label>span {
|
||||
@ -726,6 +727,99 @@ svg {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
/* İşlem durumu badge stilleri - basit ve kompakt */
|
||||
.islem-status-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
color: #fff;
|
||||
border-radius: 12px;
|
||||
font-size: 0.875em;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.form-select-list-item .islem-status-badge {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.form-select-activator .islem-status-badge {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Her durum için benzersiz canlı renkler */
|
||||
.islem-status-coral {
|
||||
background: #e74c3c;
|
||||
}
|
||||
.islem-status-amber {
|
||||
background: #f39c12;
|
||||
}
|
||||
.islem-status-sky {
|
||||
background: #3498db;
|
||||
}
|
||||
.islem-status-rose {
|
||||
background: #e91e63;
|
||||
}
|
||||
.islem-status-pink {
|
||||
background: #ec407a;
|
||||
}
|
||||
.islem-status-slate {
|
||||
background: #607d8b;
|
||||
color: #fff;
|
||||
}
|
||||
.islem-status-emerald {
|
||||
background: #27ae60;
|
||||
}
|
||||
.islem-status-red {
|
||||
background: #c0392b;
|
||||
}
|
||||
.islem-status-salmon {
|
||||
background: #e67e22;
|
||||
}
|
||||
.islem-status-mint {
|
||||
background: #2ecc71;
|
||||
}
|
||||
.islem-status-peach {
|
||||
background: #ff9800;
|
||||
}
|
||||
.islem-status-yellow {
|
||||
background: #f1c40f;
|
||||
color: #333;
|
||||
}
|
||||
.islem-status-teal {
|
||||
background: #1abc9c;
|
||||
}
|
||||
.islem-status-cyan {
|
||||
background: #00bcd4;
|
||||
}
|
||||
.islem-status-orange {
|
||||
background: #ff5722;
|
||||
}
|
||||
.islem-status-blue {
|
||||
background: #2196f3;
|
||||
}
|
||||
.islem-status-gold {
|
||||
background: #ffc107;
|
||||
color: #333;
|
||||
}
|
||||
.islem-status-lavender {
|
||||
background: #9c27b0;
|
||||
}
|
||||
.islem-status-violet {
|
||||
background: #673ab7;
|
||||
}
|
||||
.islem-status-crimson {
|
||||
background: #d32f2f;
|
||||
}
|
||||
.islem-status-indigo {
|
||||
background: #3f51b5;
|
||||
}
|
||||
.islem-status-default {
|
||||
background: #757575;
|
||||
}
|
||||
|
||||
/* login */
|
||||
.login-w {
|
||||
min-width: 100%;
|
||||
@ -2161,7 +2255,7 @@ section {
|
||||
}
|
||||
|
||||
.panel-wrapper {
|
||||
max-width: 480px;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.panel-wrapper.panel-wide {
|
||||
@ -2174,7 +2268,7 @@ section {
|
||||
}
|
||||
|
||||
.panel-wrapper.panel-right.showme {
|
||||
left: calc(100% - 480px);
|
||||
left: calc(100% - 600px);
|
||||
}
|
||||
|
||||
.panel-wrapper.panel-right.panel-wide.showme {
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</h1>
|
||||
<div class="section-header-buttons-c">
|
||||
<icon-button
|
||||
toRoute="/piyangolar/piyango-listesi"
|
||||
@click="goToListWithFilter"
|
||||
icon="list"
|
||||
iconClass="ico-section ico-section-header-btn" />
|
||||
</div>
|
||||
@ -60,12 +60,14 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
import { useDateStore } from '@/stores/dateStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import icourl from '@/assets/images/icons.svg'
|
||||
|
||||
const dateStore = useDateStore()
|
||||
const router = useRouter()
|
||||
|
||||
const props = defineProps<{
|
||||
tableData: Record<string, any>
|
||||
tableData: Record<string, any>[]
|
||||
lineFunction?: Function
|
||||
title?: string
|
||||
listText?: string
|
||||
@ -76,6 +78,7 @@
|
||||
dateKey: string
|
||||
iconBack: string
|
||||
total: number
|
||||
filterParams?: Record<string, any>
|
||||
}>()
|
||||
const totalData = ref<number>(props.total)
|
||||
|
||||
@ -92,4 +95,38 @@
|
||||
const OnClick = (e: Event, row: object) => {
|
||||
emit('click', row)
|
||||
}
|
||||
|
||||
const goToListWithFilter = () => {
|
||||
try {
|
||||
const query: Record<string, any> = {}
|
||||
|
||||
// Filtre parametrelerini query'ye ekle (Filters[...] formatına dönüştür)
|
||||
if (props.filterParams && typeof props.filterParams === 'object') {
|
||||
Object.keys(props.filterParams).forEach((key) => {
|
||||
const value = props.filterParams![key]
|
||||
if (value !== undefined && value !== null && value !== '') {
|
||||
// Değer zaten operatör içeriyorsa olduğu gibi kullan, yoksa '=' ekle
|
||||
let filterValue = String(value)
|
||||
// Eğer değer zaten operatör içermiyorsa '=' ekle
|
||||
if (!filterValue.match(/^[<>=]/)) {
|
||||
filterValue = '=' + filterValue
|
||||
}
|
||||
// Query parametresine string olarak ekle (Vue Router array'leri yanlış serialize ediyor)
|
||||
query[`Filters[${key}]`] = filterValue
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
router.push({
|
||||
path: '/piyangolar/piyango-listesi',
|
||||
query: query
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('goToListWithFilter hatası:', error)
|
||||
// Hata durumunda filtre olmadan yönlendir
|
||||
router.push({
|
||||
path: '/piyangolar/piyango-listesi'
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="breadcrumb-wrapper">
|
||||
<icon-button
|
||||
@click="$router.go(-1)"
|
||||
@click="props.go ? $router.push(go!) : $router.go(-1)"
|
||||
icon="arrow"
|
||||
classList="breadcrumbs-back breadcrumb-link" />
|
||||
<div class="breadcrumbs-list">
|
||||
@ -13,5 +13,6 @@
|
||||
<script setup lang="ts">
|
||||
const props = defineProps<{
|
||||
currentPageText: string
|
||||
go?: string
|
||||
}>()
|
||||
</script>
|
||||
|
||||
@ -138,7 +138,8 @@
|
||||
</div>
|
||||
<data-table-pagination
|
||||
v-if="pagination !== undefined && showPagination && !isPreview"
|
||||
v-model:pagination="localPagination" />
|
||||
v-model:pagination="localPagination"
|
||||
:isUseRoute="isUseRoute" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, watch } from 'vue'
|
||||
@ -146,6 +147,9 @@
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
import icourl from '@/assets/images/icons.svg'
|
||||
const globalStore = useGlobalStore()
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
interface ITableHead {
|
||||
[key: string]: any
|
||||
@ -178,12 +182,14 @@
|
||||
rowActions?: Record<string, any>[]
|
||||
actionFixed?: boolean
|
||||
rowActionStyle?: string
|
||||
isUseRoute?: boolean
|
||||
}
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
tableData: () => [],
|
||||
rowNumber: false,
|
||||
isPreview: false,
|
||||
actionFixed: false
|
||||
actionFixed: false,
|
||||
isUseRoute: false
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:sortData', 'update:pagination'])
|
||||
@ -254,9 +260,19 @@
|
||||
localSort.value.sortColumn = d.name
|
||||
localSort.value.sortOrder = 'desc'
|
||||
}
|
||||
if (props.isUseRoute) {
|
||||
router.push({
|
||||
query: {
|
||||
...route.query,
|
||||
sortColumn: localSort.value.sortColumn,
|
||||
sortOrder: localSort.value.sortOrder
|
||||
}
|
||||
})
|
||||
}
|
||||
emit('update:sortData', localSort.value)
|
||||
}
|
||||
}
|
||||
|
||||
const CellData = (d: Record<string, any>, key: string): any => {
|
||||
if (d[key] === null) return d
|
||||
else return d[key]
|
||||
|
||||
@ -29,10 +29,13 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref, onBeforeMount, watch } from 'vue'
|
||||
import type { Ref } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
const globalStore = useGlobalStore()
|
||||
const validationStore = useValidationStore()
|
||||
@ -45,9 +48,11 @@
|
||||
|
||||
export interface Props {
|
||||
pagination: IPagination
|
||||
isUseRoute?: boolean
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
isUseRoute: false
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:pagination'])
|
||||
@ -66,23 +71,53 @@
|
||||
if (Number(pageNumber.value) < totalPage()) pageNumber.value++
|
||||
}
|
||||
localPagination.value.pageNumber = pageNumber.value
|
||||
IfRouteUsing()
|
||||
emit('update:pagination', localPagination.value)
|
||||
}
|
||||
|
||||
const IfRouteUsing = () => {
|
||||
if (props.isUseRoute) {
|
||||
router.push({
|
||||
query: {
|
||||
...route.query,
|
||||
pageNumber: pageNumber.value
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
const InputPageControl = (e: Event) => {
|
||||
if (Number((e.target as HTMLInputElement).value) < 1)
|
||||
(e.target as HTMLInputElement).value = '1'
|
||||
if (Number((e.target as HTMLInputElement).value) > totalPage())
|
||||
(e.target as HTMLInputElement).value = String(totalPage())
|
||||
pageNumber.value = Number((e.target as HTMLInputElement).value)
|
||||
|
||||
if((e as KeyboardEvent).key === 'Enter') getPage()
|
||||
if ((e as KeyboardEvent).key === 'Enter') getPage()
|
||||
}
|
||||
const PageNumberFocus = (e: Event) => {
|
||||
;(e.target as HTMLInputElement).select()
|
||||
}
|
||||
const getPage = () => {
|
||||
localPagination.value.pageNumber = pageNumber.value
|
||||
IfRouteUsing()
|
||||
emit('update:pagination', localPagination.value)
|
||||
}
|
||||
const SetPageNumber = () => {
|
||||
if (props.isUseRoute) {
|
||||
if (route.query.pageNumber !== undefined && route.query.pageNumber !== '') {
|
||||
localPagination.value.pageNumber = pageNumber.value = Number(
|
||||
route.query.pageNumber
|
||||
)
|
||||
} else {
|
||||
localPagination.value.pageNumber = pageNumber.value = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
onBeforeMount(() => {
|
||||
SetPageNumber()
|
||||
})
|
||||
watch(
|
||||
() => route.query.pageNumber,
|
||||
() => {
|
||||
SetPageNumber()
|
||||
}
|
||||
)
|
||||
</script>
|
||||
|
||||
@ -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: () => {
|
||||
|
||||
@ -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>(() => {
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</span>
|
||||
<input
|
||||
:value="modelValue"
|
||||
:type="type"
|
||||
:type="inputType"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
@input="OnInput"
|
||||
@ -22,12 +22,24 @@
|
||||
@keyup="OnKeyUp"
|
||||
:class="[
|
||||
invalidText !== undefined && invalidText !== '' ? 'invalid' : '',
|
||||
iclass || ''
|
||||
iclass || '',
|
||||
isPasswordVisible || props.type === 'password' ? 'password-visible' : ''
|
||||
]"
|
||||
:min="min"
|
||||
:max="max"
|
||||
:minlength="minlength"
|
||||
:maxlength="maxlength" />
|
||||
<i
|
||||
class="ico-c ico-password-visible"
|
||||
v-if="props.type === 'password'"
|
||||
@click="PasswordVisibleToggle">
|
||||
<svg>
|
||||
<use
|
||||
:href="
|
||||
'/src/assets/images/icons.svg#' + (isPasswordVisible ? 'eye' : 'eyeclose')
|
||||
"></use>
|
||||
</svg>
|
||||
</i>
|
||||
<span
|
||||
class="form-item-alert"
|
||||
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
||||
@ -82,9 +94,18 @@
|
||||
'keydown',
|
||||
'keyup'
|
||||
])
|
||||
const localValue = ref<any>()
|
||||
const isPasswordVisible = ref<boolean>(false)
|
||||
const InvalidMessageText = reactive<Record<string, any>>({})
|
||||
|
||||
const inputType = computed(() => {
|
||||
if (props.type !== 'password') {
|
||||
return props.type
|
||||
} else {
|
||||
if (isPasswordVisible.value) return 'text'
|
||||
else return 'password'
|
||||
}
|
||||
})
|
||||
|
||||
const InvalidMessages = computed<string>(() => {
|
||||
let text = ''
|
||||
Object.keys(InvalidMessageText).forEach((k: string, i: number) => {
|
||||
@ -138,7 +159,9 @@
|
||||
emit('update:modelValue', (e.target as HTMLInputElement).value)
|
||||
emit('keyup', e)
|
||||
}
|
||||
|
||||
const PasswordVisibleToggle = () => {
|
||||
if (props.type === 'password') isPasswordVisible.value = !isPasswordVisible.value
|
||||
}
|
||||
watch(
|
||||
() => props.invalidText,
|
||||
() => {
|
||||
@ -151,3 +174,16 @@
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style scoped>
|
||||
.ico-password-visible {
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
top: 32px;
|
||||
min-width: 32px;
|
||||
min-height: 32px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.password-visible {
|
||||
padding: 8px 40px 8px 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,210 +0,0 @@
|
||||
<template>
|
||||
<div :class="['form-item', half ? 'form-item-half' : '', elclass || '']">
|
||||
<span class="form-item-title" v-if="title !== undefined && title !== ''">
|
||||
{{ title }}
|
||||
</span>
|
||||
<slot name="input">
|
||||
<label>
|
||||
<span v-if="label !== undefined && label !== ''">
|
||||
{{ label }}
|
||||
<i v-if="required" class="form-item-alert">*</i>
|
||||
</span>
|
||||
<div :ref="'quillContainer' + rnd"></div>
|
||||
<span
|
||||
class="form-item-alert"
|
||||
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
||||
{{ InvalidMessages }}
|
||||
</span>
|
||||
<span
|
||||
class="form-item-description"
|
||||
v-if="description !== undefined && description !== ''">
|
||||
{{ description }}
|
||||
</span>
|
||||
</label>
|
||||
</slot>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted, useTemplateRef, watch } from 'vue'
|
||||
import Quill from 'quill'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
|
||||
declare const window: any
|
||||
|
||||
window.Quill = Quill
|
||||
|
||||
export interface Props {
|
||||
label?: string
|
||||
disabled?: boolean
|
||||
modelValue: string
|
||||
half?: boolean
|
||||
title?: string
|
||||
invalidText?: string
|
||||
description?: string
|
||||
placeholder?: string
|
||||
required?: boolean
|
||||
maxlength?: string
|
||||
minlength?: string
|
||||
iclass?: string
|
||||
elclass?: string
|
||||
modelKey?: string
|
||||
}
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
disabled: false,
|
||||
half: false,
|
||||
required: false,
|
||||
placeholder: ''
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'change', 'text-change'])
|
||||
const rnd = ref<number>(Number(Math.random() * 10000000))
|
||||
|
||||
const toolbar = ref<any[]>([
|
||||
[{ font: [] }, { size: [] }],
|
||||
['bold', 'italic', 'underline', 'strike'],
|
||||
[{ color: [] }, { background: [] }],
|
||||
[{ script: 'super' }, { script: 'sub' }],
|
||||
[{ header: '1' }, { header: '2' }, 'blockquote'],
|
||||
[{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],
|
||||
[{ align: [] }],
|
||||
['link', 'image', 'video'],
|
||||
['clean']
|
||||
])
|
||||
|
||||
const options = reactive<Record<string, any>>({
|
||||
theme: 'snow',
|
||||
modules: {
|
||||
toolbar: toolbar.value,
|
||||
imageResize: {
|
||||
modules: ['Resize', 'DisplaySize', 'Toolbar']
|
||||
}
|
||||
},
|
||||
placeholder: props.placeholder,
|
||||
readOnly: false,
|
||||
debug: false
|
||||
})
|
||||
|
||||
const QuillImageResize = ref<any>()
|
||||
|
||||
const editor = useTemplateRef<any>('quillContainer' + rnd.value)
|
||||
const quill = ref<Quill | null>(null)
|
||||
|
||||
const localValue = ref<string>(props.modelValue)
|
||||
|
||||
const InvalidMessageText = ref<Record<string, any>>({})
|
||||
const InvalidMessages = computed(() => {
|
||||
let text = ''
|
||||
Object.keys(InvalidMessageText.value).forEach((k: string, i: number) => {
|
||||
text += InvalidMessageText.value[k] + ', '
|
||||
})
|
||||
return text
|
||||
})
|
||||
|
||||
const OnTextChange = (e: any) => {
|
||||
if (props.minlength !== undefined) {
|
||||
if (localValue.value.length < Number(props.minlength)) {
|
||||
InvalidMessageText.value.minlength = `Girdiğiniz bilgi en az ${props.minlength} karakter uzunluğunda olmalı`
|
||||
} else {
|
||||
delete InvalidMessageText.value.minlength
|
||||
}
|
||||
}
|
||||
|
||||
if (quill.value !== null) {
|
||||
localValue.value = quill.value!.container.querySelector('.ql-editor')!.innerHTML
|
||||
}
|
||||
|
||||
emit('update:modelValue', localValue.value)
|
||||
emit('change', e)
|
||||
}
|
||||
|
||||
const InitializeEditor = async () => {
|
||||
await setupQuillEditor()
|
||||
SetContent()
|
||||
RegisterEditorEventListeners()
|
||||
}
|
||||
|
||||
const SetContent = () => {
|
||||
if (props.modelValue) quill.value!.root.innerHTML = props.modelValue
|
||||
}
|
||||
|
||||
const setupQuillEditor = async () => {
|
||||
//let Parchment = Quill.import('parchment')
|
||||
|
||||
window.Quill.imports.parchment.Attributor.Style =
|
||||
window.Quill.imports.parchment.StyleAttributor
|
||||
|
||||
//@ts-ignore
|
||||
QuillImageResize.value = await import('quill-image-resize-module')
|
||||
|
||||
quill.value = new Quill(editor.value, options) as Quill
|
||||
;(quill.value!.getModule('toolbar') as Record<
|
||||
string,
|
||||
any
|
||||
>)!.container.addEventListener('mousedown', (e: Event) => {
|
||||
e.preventDefault()
|
||||
})
|
||||
;(quill.value!.getModule('toolbar') as Record<
|
||||
string,
|
||||
any
|
||||
>)!.container.addEventListener('click', (e: Event) => {
|
||||
if ((e.target as HTMLElement).className !== 'ql-image') e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
const RegisterEditorEventListeners = () => {
|
||||
quill.value!.on('text-change', OnTextChange)
|
||||
quill.value!.on('editor-change', OnTextChange)
|
||||
//image resize imaja tıklandığını anlamıyor.
|
||||
quill.value!.root.addEventListener('mouseover', OnMouseOver, false)
|
||||
ListenForEditorEvent('text-change')
|
||||
}
|
||||
const ListenForEditorEvent = (type: any) => {
|
||||
quill.value!.on(type, (...args) => {
|
||||
emit(type, ...args)
|
||||
})
|
||||
}
|
||||
|
||||
const OnMouseOver = (e: Event) => {
|
||||
if (
|
||||
(e.target as HTMLElement)!.firstChild &&
|
||||
((e.target as HTMLElement)!.firstChild as HTMLElement)!.tagName &&
|
||||
((e.target as HTMLElement)!.firstChild as HTMLElement)!.tagName.toUpperCase() ===
|
||||
'IMG'
|
||||
) {
|
||||
;(e.target as HTMLElement)!.classList.add('remove-click-p')
|
||||
;((e.target as HTMLElement)!.firstChild as HTMLElement)!.classList.add(
|
||||
'add-click-img'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
InitializeEditor()
|
||||
})
|
||||
|
||||
watch(
|
||||
() => props.invalidText,
|
||||
() => {
|
||||
if (props.invalidText !== undefined && props.invalidText !== '') {
|
||||
InvalidMessageText.value.invalid = props.invalidText
|
||||
} else {
|
||||
delete InvalidMessageText.value.invalid
|
||||
}
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style>
|
||||
.ql-toolbar {
|
||||
width: 100%;
|
||||
}
|
||||
.ql-container {
|
||||
width: 100%;
|
||||
min-height: 120px;
|
||||
}
|
||||
.remove-click-p {
|
||||
pointer-events: none;
|
||||
}
|
||||
.add-click-img {
|
||||
pointer-events: all;
|
||||
}
|
||||
</style>
|
||||
@ -142,7 +142,7 @@
|
||||
multipleText: 'Tümü'
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'change','clear'])
|
||||
const emit = defineEmits(['update:modelValue', 'change', 'clear'])
|
||||
|
||||
const activated = ref<Boolean>(false)
|
||||
const multipleAllSelected = ref<boolean>(false)
|
||||
@ -214,9 +214,8 @@
|
||||
} else {
|
||||
let text = props.listData.filter((v: Record<string, any>) => {
|
||||
let val = props.listVal !== undefined ? v[props.listVal] : v
|
||||
return localValue.value === val
|
||||
return String(localValue.value) === String(val)
|
||||
})[0]
|
||||
|
||||
return text !== undefined
|
||||
? props.listText !== undefined
|
||||
? text[props.listText]
|
||||
@ -357,7 +356,7 @@
|
||||
|
||||
const SetSelectedOption = () => {
|
||||
selectedOption.value = props.listData.filter((v: Record<string, any>) => {
|
||||
return v[props.listVal as string] === props.modelValue
|
||||
return String(v[props.listVal as string]) === String(props.modelValue)
|
||||
})[0]
|
||||
}
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
@click="exportPanel = !exportPanel"
|
||||
icon="export" />
|
||||
<icon-button
|
||||
v-if="filterable()"
|
||||
v-if="filterable"
|
||||
classList="ico-section ico-section-header-btn"
|
||||
@click="OpenFilterPanel"
|
||||
icon="filter" />
|
||||
@ -85,7 +85,7 @@
|
||||
page === 'list' ? 'section-content section-inner' : '',
|
||||
page === 'form' ? 'form-part-content' : ''
|
||||
]">
|
||||
<div class="list-filter-wrapper" v-if="filters() || searched">
|
||||
<div class="list-filter-wrapper" v-if="haveFilter || searched">
|
||||
<h4>Filtreler ve Arama</h4>
|
||||
<div class="list-filter-content">
|
||||
<template v-if="localQuery !== ''">
|
||||
@ -97,14 +97,21 @@
|
||||
<span class="list-filter-close" @click="RemoveSearch"></span>
|
||||
</div>
|
||||
</template>
|
||||
<template v-for="(filter, k) in filterParams">
|
||||
<div class="list-filter-item" data-filter="durum-onaylanmis">
|
||||
<strong>{{ filter.title }}:</strong>
|
||||
<span>
|
||||
{{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
|
||||
</span>
|
||||
<span class="list-filter-close" @click="RemoveFilterKey(k as string)"></span>
|
||||
</div>
|
||||
<template v-for="(filterA, index) in filterParams" :key="index">
|
||||
<template v-for="(filter, filterIndex) in filterA.values" :key="filterIndex">
|
||||
<div
|
||||
class="list-filter-item"
|
||||
data-filter="durum-onaylanmis"
|
||||
v-if="filterA.filter && (filter.text !== '' || filter.val !== '')">
|
||||
<strong>{{ filterA.title }}:</strong>
|
||||
<span>
|
||||
{{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
|
||||
</span>
|
||||
<span
|
||||
class="list-filter-close"
|
||||
@click="RemoveFilterKey(index, filterIndex)"></span>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
@ -120,13 +127,14 @@
|
||||
:isPreview="isPreview"
|
||||
:rowActions="rowActions"
|
||||
:actionFixed="actionFixed"
|
||||
:rowActionStyle="rowActionStyle" />
|
||||
:rowActionStyle="rowActionStyle"
|
||||
:isUseRoute="isUseRoute" />
|
||||
</slot>
|
||||
</div>
|
||||
|
||||
<panel-wrapper v-if="filterPanel" v-model="filterPanel" :panel-title="'Filtreleme'">
|
||||
<template #panelContent>
|
||||
<panel-filter :filterHead="tableHeader" v-model:filterParams="localFilterParams" />
|
||||
<panel-filter :filterHead="tableHeader" :filterParams="localFilterParams" />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<div class="button-c button-save" @click="FilterData">Filtrele</div>
|
||||
@ -140,8 +148,11 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount, watch, computed } from 'vue'
|
||||
import { ref, reactive, onBeforeMount, watch, computed, nextTick } from 'vue'
|
||||
import axios from 'axios'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
@ -161,6 +172,7 @@
|
||||
computeHtml?: Function
|
||||
sort?: boolean
|
||||
filter?: Record<string, any>
|
||||
style?: Record<string, any>
|
||||
}
|
||||
interface IPagination {
|
||||
[key: string]: any
|
||||
@ -199,7 +211,8 @@
|
||||
isPreview?: boolean
|
||||
rowActions?: Record<string, any>[]
|
||||
actionFixed?: boolean
|
||||
rowActionStyle?:string
|
||||
rowActionStyle?: string
|
||||
isUseRoute?: boolean
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
@ -212,7 +225,8 @@
|
||||
search: true,
|
||||
rowNumber: false,
|
||||
isPreview: false,
|
||||
actionFixed:false
|
||||
actionFixed: false,
|
||||
isUseRoute: false
|
||||
})
|
||||
|
||||
const emit = defineEmits([
|
||||
@ -237,6 +251,7 @@
|
||||
const localPagination = ref<IPagination>({} as IPagination)
|
||||
const localTotalValues = reactive<Record<string, any>>({})
|
||||
const searchFieldPos = ref<string>('')
|
||||
const localLoaded = ref<boolean>(false)
|
||||
|
||||
if (props.totalValues !== undefined) Object.assign(localTotalValues, props.totalValues)
|
||||
|
||||
@ -249,11 +264,10 @@
|
||||
const localTotalRecord = ref<string | number>(0)
|
||||
if (props.totalRecord !== undefined) localTotalRecord.value = props.totalRecord
|
||||
|
||||
const localFilterParams = ref<Record<string, any>>({})
|
||||
const filterParams = reactive<Record<string, any>>({})
|
||||
const localFilterParams = ref<Record<string, any>[]>([])
|
||||
const filterParams = ref<Record<string, any>[]>([])
|
||||
|
||||
const OpenFilterPanel = () => {
|
||||
Object.assign(localFilterParams.value, filterParams)
|
||||
filterPanel.value = true
|
||||
}
|
||||
|
||||
@ -262,10 +276,74 @@
|
||||
if (dest[keys] === undefined) delete source[keys]
|
||||
})
|
||||
}
|
||||
const CreateFilterData = () => {
|
||||
props.tableHeader.forEach((d: Record<string, any>, ind: number) => {
|
||||
if (d.filter !== undefined) {
|
||||
const filterKey = d.filter.filterId || d.name
|
||||
const filterItem: Record<string, any> = {}
|
||||
const firstVal: Record<string, any> = {}
|
||||
const secondVal: Record<string, any> = {}
|
||||
|
||||
filterItem.title = d.title
|
||||
filterItem.type = d.filter.type
|
||||
filterItem.between = d.filter.between || false
|
||||
filterItem.range = d.filter.range || false
|
||||
filterItem.key = filterKey
|
||||
filterItem.filter = false
|
||||
filterItem.hIndex = ind
|
||||
filterItem.values = []
|
||||
|
||||
const opKey =
|
||||
d.filter.type === 'date'
|
||||
? d.filter.between !== undefined && d.filter.between
|
||||
? '>'
|
||||
: '='
|
||||
: '='
|
||||
firstVal.op = opKey
|
||||
firstVal.val = ''
|
||||
firstVal.text = ''
|
||||
filterItem.values.push(firstVal)
|
||||
if (d.filter.between !== undefined && d.filter.between) {
|
||||
secondVal.op = '<'
|
||||
secondVal.val = ''
|
||||
secondVal.text = ''
|
||||
filterItem.values.push(secondVal)
|
||||
}
|
||||
|
||||
localFilterParams.value.push(filterItem)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const AddParamsToObject = (obj: Record<string, any>) => {
|
||||
filterParams.value.forEach((filter, index) => {
|
||||
if (filter.filter) {
|
||||
const key = 'Filters[' + filter.key + ']'
|
||||
if (obj[key] === undefined) obj[key] = [] as string[]
|
||||
filter.values.forEach((val: Record<string, any>, vIndex: number) => {
|
||||
if (val.val !== '') {
|
||||
;(obj[key] as string[]).push(val.op + val.val)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
const ResetFilterQueries = async () => {
|
||||
if (props.isUseRoute) {
|
||||
const newQuery: Record<string, any> = {
|
||||
...route.query
|
||||
}
|
||||
Object.keys(newQuery).forEach((q) => {
|
||||
if (q.includes('Filters[')) delete newQuery[q]
|
||||
})
|
||||
await router.replace({ query: newQuery })
|
||||
AddParamsToObject(newQuery)
|
||||
await router.push({ query: newQuery })
|
||||
}
|
||||
}
|
||||
const FilterData = async () => {
|
||||
Object.assign(filterParams, localFilterParams.value)
|
||||
EqualObjects(filterParams, localFilterParams.value)
|
||||
filterParams.value = JSON.parse(JSON.stringify(localFilterParams.value))
|
||||
ResetFilterQueries()
|
||||
setTimeout(async () => {
|
||||
await GetLocalData()
|
||||
filterPanel.value = false
|
||||
@ -277,37 +355,240 @@
|
||||
(props.addAction as Function)()
|
||||
}
|
||||
|
||||
const filterable = () => {
|
||||
return props.tableHeader.filter((e) => e.hasOwnProperty('filter')).length > 0
|
||||
}
|
||||
const filterable = computed(() =>
|
||||
props.tableHeader.some((obj: Record<string, any>) => obj.filter !== undefined)
|
||||
)
|
||||
|
||||
const filters = (): boolean => {
|
||||
return Object.keys(filterParams).length > 0
|
||||
}
|
||||
const haveFilter = computed(() =>
|
||||
filterParams.value.some((obj: Record<string, any>) => obj.filter)
|
||||
)
|
||||
|
||||
const RemoveFilterKey = (k: string) => {
|
||||
delete localFilterParams.value[k]
|
||||
delete filterParams[k]
|
||||
GetLocalData()
|
||||
const RemoveFilterKey = (index: number, fIndex: number) => {
|
||||
const query: Record<string, any> = { ...route.query }
|
||||
|
||||
filterParams.value[index].values[fIndex].val = ''
|
||||
filterParams.value[index].values[fIndex].text = ''
|
||||
|
||||
const allEmpty: boolean = filterParams.value[index].values.every(
|
||||
(obj: Record<string, any>) => obj.val === ''
|
||||
)
|
||||
if (allEmpty) filterParams.value[index].filter = false
|
||||
|
||||
localFilterParams.value = JSON.parse(JSON.stringify(filterParams.value))
|
||||
|
||||
ResetFilterQueries()
|
||||
setTimeout(async () => {
|
||||
await GetLocalData()
|
||||
filterPanel.value = false
|
||||
}, 50)
|
||||
}
|
||||
const RemoveSearch = () => {
|
||||
localQuery.value = ''
|
||||
searched.value = false
|
||||
GetLocalData()
|
||||
}
|
||||
const GetLocalData = async () => {
|
||||
if (selectedExport.value !== null) {
|
||||
const exportUrl =
|
||||
axios.defaults.baseURL + dataStore.apiBase + props.apiList + '?isPdf=true'
|
||||
const pageNumberChanging = ref<boolean>(false)
|
||||
const sortChanging = ref<boolean>(false)
|
||||
const searchChanging = ref<boolean>(false)
|
||||
const filterChanging = ref<boolean>(false)
|
||||
|
||||
const link = document.createElement('a')
|
||||
link.href = exportUrl
|
||||
document.body.appendChild(link)
|
||||
link.dispatchEvent(
|
||||
new MouseEvent('click', { bubbles: true, cancelable: true, view: window })
|
||||
)
|
||||
link.remove()
|
||||
window.URL.revokeObjectURL(link.href)
|
||||
const RoutePageControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
pageNumberChanging.value = true
|
||||
|
||||
if (q.pageNumber !== undefined && q.pageNumber !== '') {
|
||||
localPagination.value.pageNumber = Number(q.pageNumber)
|
||||
} else {
|
||||
q.pageNumber = String(1)
|
||||
localPagination.value.pageNumber = localPagination.value.pageNumber || 1
|
||||
}
|
||||
|
||||
router.push({ query: q })
|
||||
nextTick(() => {
|
||||
pageNumberChanging.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const RouteSortControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
sortChanging.value = true
|
||||
if (q.sortOrder !== undefined && q.sortOrder !== null && q.sortOrder !== '') {
|
||||
localSort.value.sortColumn = q.sortColumn as string
|
||||
localSort.value.sortOrder = q.sortOrder as string
|
||||
} else {
|
||||
delete q.sortOrder
|
||||
delete q.sortColumn
|
||||
delete localSort.value.sortColumn
|
||||
delete localSort.value.sortOrder
|
||||
}
|
||||
router.push({ query: q })
|
||||
nextTick(() => {
|
||||
sortChanging.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const RouteSearchControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
searchChanging.value = true
|
||||
if (
|
||||
q.searchString !== undefined &&
|
||||
q.searchString !== null &&
|
||||
q.searchString !== ''
|
||||
) {
|
||||
localQuery.value = q.searchString as string
|
||||
} else {
|
||||
localQuery.value = ''
|
||||
delete q.searchString
|
||||
}
|
||||
router.push({ query: q })
|
||||
nextTick(() => {
|
||||
searchChanging.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const RouteFilterControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
filterChanging.value = true
|
||||
if (Object.keys(route.query).length > 0) {
|
||||
Object.keys(route.query).forEach((key) => {
|
||||
if (key.includes('Filters[')) {
|
||||
const newKey = key.match(/(?<=\[)[^\]]+(?=\])/)![0]
|
||||
|
||||
localFilterParams.value.forEach((filter: Record<string, any>) => {
|
||||
if (filter.key === newKey) {
|
||||
if (!filter.filter) {
|
||||
const isArray = Array.isArray(route.query[key])
|
||||
if (isArray) {
|
||||
;(route.query[key]! as string[]).forEach((val, ind) => {
|
||||
filter.values[ind].op = (route.query[key]! as string[])[ind].charAt(
|
||||
0
|
||||
)
|
||||
filter.values[ind].val = (route.query[key]! as string[])[ind].slice(
|
||||
1
|
||||
)
|
||||
if (filter.type === 'select') {
|
||||
const filterData = props.tableHeader[filter.hIndex].filter!.data
|
||||
if (filterData && Array.isArray(filterData)) {
|
||||
const forText = filterData.find(
|
||||
(o: Record<string, any>) =>
|
||||
String(
|
||||
o[props.tableHeader[filter.hIndex].filter!.listVal]
|
||||
) === String(filter.values[ind].val)
|
||||
)
|
||||
if (forText) {
|
||||
filter.values[ind].text =
|
||||
forText[props.tableHeader[filter.hIndex].filter!.listText]
|
||||
} else {
|
||||
filter.values[ind].text = filter.values[ind].val
|
||||
}
|
||||
} else {
|
||||
filter.values[ind].text = filter.values[ind].val
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
filter.values[0].op = (route.query[key] as string).charAt(0)
|
||||
filter.values[0].val = (route.query[key] as string).slice(1)
|
||||
|
||||
if (filter.type === 'select') {
|
||||
const filterData = props.tableHeader[filter.hIndex].filter!.data
|
||||
if (filterData && Array.isArray(filterData)) {
|
||||
const forText = filterData.find(
|
||||
(o: Record<string, any>) =>
|
||||
String(o[props.tableHeader[filter.hIndex].filter!.listVal]) ===
|
||||
String(filter.values[0].val)
|
||||
)
|
||||
if (forText) {
|
||||
filter.values[0].text =
|
||||
forText[props.tableHeader[filter.hIndex].filter!.listText]
|
||||
} else {
|
||||
filter.values[0].text = filter.values[0].val
|
||||
}
|
||||
} else {
|
||||
filter.values[0].text = filter.values[0].val
|
||||
}
|
||||
}
|
||||
}
|
||||
filter.filter = true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
filterParams.value = JSON.parse(JSON.stringify(localFilterParams.value))
|
||||
}
|
||||
nextTick(() => {
|
||||
filterChanging.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const GetLocalData = async () => {
|
||||
localLoaded.value = false
|
||||
if (selectedExport.value !== null) {
|
||||
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'
|
||||
}
|
||||
|
||||
// Export için parametreleri hazırla
|
||||
let exportParams: Record<string, any> = {}
|
||||
|
||||
// Sıralama parametrelerini ekle
|
||||
if (localSort.value.sortColumn !== undefined) {
|
||||
exportParams.sortColumn = localSort.value.sortColumn
|
||||
if (localSort.value.sortOrder !== undefined && localSort.value.sortOrder !== '')
|
||||
exportParams.sortOrder = localSort.value.sortOrder
|
||||
}
|
||||
|
||||
// Arama parametresini ekle
|
||||
if (localQuery.value !== '') {
|
||||
exportParams.searchString = localQuery.value
|
||||
}
|
||||
|
||||
// Filtre parametrelerini ekle
|
||||
if (haveFilter.value) AddParamsToObject(exportParams)
|
||||
|
||||
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
|
||||
try {
|
||||
const response = await axios.get(exportUrl, {
|
||||
params: exportParams,
|
||||
responseType: 'blob'
|
||||
})
|
||||
|
||||
const blob = new Blob([response.data], { type: fileType })
|
||||
const url = window.URL.createObjectURL(blob)
|
||||
const link = document.createElement('a')
|
||||
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(url)
|
||||
} catch (error) {
|
||||
console.error('Export error:', error)
|
||||
}
|
||||
|
||||
selectedExport.value = null
|
||||
exportPanel.value = false
|
||||
@ -335,10 +616,8 @@
|
||||
|
||||
var filterparam: Record<string, any> = {}
|
||||
|
||||
if (filters()) {
|
||||
Object.keys(filterParams).forEach((f, k) => {
|
||||
filterparam['Filters[' + f + ']'] = filterParams[f].op + filterParams[f].val
|
||||
})
|
||||
if (haveFilter.value) {
|
||||
AddParamsToObject(filterparam)
|
||||
Object.assign(apiData.params, filterparam)
|
||||
}
|
||||
let dt = await dataStore.dataGet(props.apiList as string, apiData)
|
||||
@ -362,6 +641,9 @@
|
||||
}
|
||||
emit('update:refresh', false)
|
||||
}
|
||||
nextTick(() => {
|
||||
localLoaded.value = true
|
||||
})
|
||||
}
|
||||
const OpenMobileButtons = () => {
|
||||
searchForm.value = false
|
||||
@ -381,7 +663,7 @@
|
||||
let el: HTMLInputElement = document.getElementById(
|
||||
'listsearch' + rnd.value
|
||||
) as HTMLInputElement
|
||||
el.focus
|
||||
el.focus()
|
||||
el.select()
|
||||
}, 50)
|
||||
}
|
||||
@ -392,6 +674,14 @@
|
||||
const SearchQuery = () => {
|
||||
if (props.apiList !== undefined) GetLocalData()
|
||||
else emit('update:query', localQuery.value)
|
||||
if (props.isUseRoute) {
|
||||
router.push({
|
||||
query: {
|
||||
...route.query,
|
||||
searchString: localQuery.value
|
||||
}
|
||||
})
|
||||
}
|
||||
searchForm.value = false
|
||||
searched.value = true
|
||||
}
|
||||
@ -399,27 +689,45 @@
|
||||
searchForm.value = false
|
||||
mobileButtons.value = false
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
if (globalStore.screenWidth >= globalStore.breakPoints.tabletp)
|
||||
mobileButtons.value = true
|
||||
|
||||
if (props.apiList !== undefined) GetLocalData()
|
||||
CreateFilterData()
|
||||
RoutePageControl()
|
||||
RouteSortControl()
|
||||
RouteSearchControl()
|
||||
RouteFilterControl()
|
||||
|
||||
if (props.apiList !== undefined) GetLocalData()
|
||||
window.addEventListener('resize', Resize)
|
||||
})
|
||||
|
||||
watch(
|
||||
() => localSort.value,
|
||||
() => [localSort.value],
|
||||
() => {
|
||||
if (!sortChanging.value) GetLocalData()
|
||||
},
|
||||
{ deep: true }
|
||||
)
|
||||
watch(
|
||||
() => [route],
|
||||
() => {
|
||||
RoutePageControl()
|
||||
RouteSortControl()
|
||||
RouteSearchControl()
|
||||
RouteFilterControl()
|
||||
GetLocalData()
|
||||
},
|
||||
{ deep: true }
|
||||
)
|
||||
|
||||
watch(
|
||||
() => localPagination.value.pageNumber,
|
||||
() => {
|
||||
GetLocalData()
|
||||
if (!pageNumberChanging.value) {
|
||||
GetLocalData()
|
||||
}
|
||||
}
|
||||
)
|
||||
watch(
|
||||
@ -431,8 +739,9 @@
|
||||
watch(
|
||||
() => localQuery.value,
|
||||
() => {
|
||||
if (props.apiList !== undefined && localQuery.value.length === 0) GetLocalData()
|
||||
else if (localQuery.value.length === 0) emit('update:query', localQuery.value)
|
||||
if (props.apiList !== undefined && localQuery.value.length === 0) {
|
||||
if (!searchChanging.value) GetLocalData()
|
||||
} else if (localQuery.value.length === 0) emit('update:query', localQuery.value)
|
||||
}
|
||||
)
|
||||
watch(
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,103 +1,104 @@
|
||||
<template>
|
||||
<template v-for="(filter, i) in filterHead">
|
||||
<template v-if="filter.filter !== undefined">
|
||||
<template v-if="filter.filter.type === 'datetime-local'">
|
||||
<div class="panel-content-item">
|
||||
<form-date
|
||||
v-model="localFilterData[filter.name]"
|
||||
:label="filter.title"
|
||||
@change="UpdateFilter(filter)" />
|
||||
<form-select
|
||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="localFilterData[filter.name + 'op']"
|
||||
@change="UpdateFilter(filter)" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.filter.type === 'date'">
|
||||
<div class="panel-content-item">
|
||||
<form-date
|
||||
type="date"
|
||||
v-model="localFilterData[filter.name]"
|
||||
:label="filter.title"
|
||||
@change="UpdateFilter(filter)" />
|
||||
<form-select
|
||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="localFilterData[filter.name + 'op']"
|
||||
@change="UpdateFilter(filter)" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.filter.type === 'text'">
|
||||
<div class="panel-content-item">
|
||||
<form-input
|
||||
v-model="localFilterData[filter.name]"
|
||||
:label="filter.title"
|
||||
@change="UpdateFilter(filter)" />
|
||||
<form-select
|
||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="localFilterData[filter.name + 'op']"
|
||||
@change="UpdateFilter(filter)" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.filter.type === 'select'">
|
||||
<div class="panel-content-item">
|
||||
<form-select
|
||||
:listData="filter.filter.data"
|
||||
:listText="filter.filter.listText"
|
||||
:listVal="filter.filter.listVal"
|
||||
:extraData="filter"
|
||||
:label="filter.title"
|
||||
v-model="localFilterData[filter.filter.filterId || filter.name]"
|
||||
@change="UpdateFilterSelect"
|
||||
clearable />
|
||||
</div>
|
||||
</template>
|
||||
<template v-for="(filter, i) in localFilterParams">
|
||||
<template v-if="filter.type === 'datetime-local'">
|
||||
<div class="panel-content-item">
|
||||
<form-date
|
||||
v-model="filter.values[0].val"
|
||||
:label="
|
||||
filter.title +
|
||||
(filter.between !== undefined && filter.between ? ' (Başlangıç)' : '')
|
||||
"
|
||||
@change="UpdateFilter(filter, 0)" />
|
||||
<form-select
|
||||
v-if="filter.range !== undefined && filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="filter.values[0].op"
|
||||
@change="UpdateFilter(filter, 0)"
|
||||
label="Operator" />
|
||||
<form-date
|
||||
v-if="filter.between !== undefined && filter.between"
|
||||
v-model="filter.values[1].val"
|
||||
:label="
|
||||
filter.title +
|
||||
(filter.between !== undefined && filter.between ? ' (Bitiş)' : '')
|
||||
"
|
||||
@change="UpdateFilter(filter, 1)" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.type === 'date'">
|
||||
<div class="panel-content-item">
|
||||
<form-date
|
||||
type="date"
|
||||
v-model="filter.values[0].val"
|
||||
:label="
|
||||
filter.title +
|
||||
(filter.between !== undefined && filter.between ? ' (Başlangıç)' : '')
|
||||
"
|
||||
@change="UpdateFilter(filter, 0)" />
|
||||
<form-select
|
||||
v-if="filter.range !== undefined && filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="filter.values[0].op"
|
||||
@change="UpdateFilter(filter, 0)"
|
||||
label="Operator" />
|
||||
<form-date
|
||||
v-if="filter.between !== undefined && filter.between"
|
||||
type="date"
|
||||
v-model="filter.values[1].val"
|
||||
:label="
|
||||
filter.title +
|
||||
(filter.between !== undefined && filter.between ? ' (Bitiş)' : '')
|
||||
"
|
||||
@change="UpdateFilter(filter, 1)" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.type === 'text'">
|
||||
<div class="panel-content-item">
|
||||
<form-input
|
||||
v-model="filter.values[0].val"
|
||||
:label="filter.title"
|
||||
@change="UpdateFilter(filter, 0)" />
|
||||
<form-select
|
||||
v-if="filter.range !== undefined && filter.range"
|
||||
:listData="filterOperator"
|
||||
v-model="filter.values[0].op"
|
||||
@change="UpdateFilter(filter, 0)"
|
||||
label="Operator" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="filter.type === 'select'">
|
||||
<div class="panel-content-item">
|
||||
<form-select
|
||||
:listData="filterHead[filter.hIndex].filter.data"
|
||||
:listText="filterHead[filter.hIndex].filter.listText"
|
||||
:listVal="filterHead[filter.hIndex].filter.listVal"
|
||||
:extraData="{ f: filter, k: filterHead[filter.hIndex].filter.listText }"
|
||||
:label="filter.title"
|
||||
v-model="filter.values[0].val"
|
||||
@change="UpdateFilterSelect"
|
||||
clearable />
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = defineProps<{
|
||||
filterHead: Record<string, any>
|
||||
filterParams: Record<string, any>
|
||||
filterHead: Record<string, any>[]
|
||||
filterParams: Record<string, any>[]
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:filterParams'])
|
||||
|
||||
const localFilterData = reactive<Record<string, any>>({})
|
||||
const localFilterParams = reactive<Record<string, any>>(
|
||||
Object.assign(props.filterParams)
|
||||
)
|
||||
const localFilterParams = ref<Record<string, any>[]>(props.filterParams)
|
||||
const filterOperator = ref<string[]>(['=', '<', '>'])
|
||||
|
||||
const createFilterData = () => {
|
||||
props.filterHead.forEach((d: Record<string, any>) => {
|
||||
if (d.filter !== undefined) {
|
||||
let filterKey = d.filter.filterId || d.name
|
||||
localFilterData[filterKey] = ''
|
||||
localFilterData[filterKey + 'op'] = '='
|
||||
}
|
||||
})
|
||||
|
||||
Object.keys(localFilterParams).forEach((k, i) => {
|
||||
localFilterData[k] = localFilterParams[k].val
|
||||
localFilterData[k + 'op'] = localFilterParams[k].op
|
||||
})
|
||||
}
|
||||
|
||||
const UpdateFilter = (k: Record<string, any>) => {
|
||||
let filterKey = k.filter.filterId || k.name
|
||||
if (localFilterData[filterKey] !== '') {
|
||||
localFilterParams[filterKey] = {}
|
||||
localFilterParams[filterKey].val = localFilterData[filterKey]
|
||||
localFilterParams[filterKey].op = localFilterData[filterKey + 'op']
|
||||
localFilterParams[filterKey].title = k.title
|
||||
} else delete localFilterParams[filterKey]
|
||||
|
||||
emit('update:filterParams', localFilterParams)
|
||||
const UpdateFilter = (filter: Record<string, any>, index: number) => {
|
||||
const allEmpty: boolean = filter.values.every(
|
||||
(obj: Record<string, any>) => obj.val === ''
|
||||
)
|
||||
if (filter.values[index].val === '') filter.values[index].text = ''
|
||||
filter.filter = !allEmpty
|
||||
}
|
||||
const UpdateFilterSelect = (
|
||||
e: Event,
|
||||
@ -105,19 +106,13 @@
|
||||
d: Record<string, any>,
|
||||
ext: Record<string, any>
|
||||
) => {
|
||||
let filterKey = ext.filter.filterId || ext.name
|
||||
if (v !== '' && v !== null && localFilterData[filterKey] !== '') {
|
||||
localFilterParams[filterKey] = {}
|
||||
localFilterParams[filterKey].val = localFilterData[filterKey]
|
||||
localFilterParams[filterKey].op = localFilterData[filterKey + 'op']
|
||||
localFilterParams[filterKey].title = ext.title
|
||||
localFilterParams[filterKey].text = d[ext.filter.listText]
|
||||
if (v !== '' && v !== null) {
|
||||
ext.f.values[0].val = v
|
||||
ext.f.values[0].text = d[ext.k]
|
||||
ext.f.filter = true
|
||||
} else {
|
||||
delete localFilterParams[filterKey]
|
||||
ext.f.filter = false
|
||||
ext.f.values[0].text = ''
|
||||
}
|
||||
emit('update:filterParams', localFilterParams)
|
||||
}
|
||||
onBeforeMount(() => {
|
||||
createFilterData()
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -32,19 +32,24 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onMounted, watch } from 'vue'
|
||||
import { ref, computed, onMounted, onBeforeMount, watch, nextTick } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
interface TabObj {
|
||||
[key: string]: any
|
||||
text: string
|
||||
id: string
|
||||
}
|
||||
|
||||
const props = defineProps<{
|
||||
export interface Props {
|
||||
tabList: TabObj[]
|
||||
}>()
|
||||
isUseRoute?: boolean
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), { isUseRoute: false })
|
||||
|
||||
const currentTab = ref<number>(0)
|
||||
const rnd = ref<number>(Math.ceil(Number(Math.random() * 1000000000)))
|
||||
@ -79,6 +84,13 @@
|
||||
} else {
|
||||
currentTab.value = Number(d)
|
||||
}
|
||||
if (props.isUseRoute) {
|
||||
nextTick(() => {
|
||||
router.push({
|
||||
params: { ...route.params, tabid: props.tabList[currentTab.value].id }
|
||||
})
|
||||
})
|
||||
}
|
||||
CalculateNavPosition()
|
||||
}
|
||||
const TabWidth = () => {
|
||||
@ -96,14 +108,31 @@
|
||||
TabWidth()
|
||||
CalculateNavPosition()
|
||||
}
|
||||
const RouteTabControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
if (route.params.tabid !== undefined && route.params.tabid !== '') {
|
||||
currentTab.value = props.tabList.findIndex((t) => t.id === route.params.tabid)
|
||||
}
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
TabWidth()
|
||||
window.addEventListener('resize', Resize)
|
||||
})
|
||||
onBeforeMount(() => {
|
||||
RouteTabControl()
|
||||
})
|
||||
watch(
|
||||
() => globalStore.sideMenu,
|
||||
() => {
|
||||
TabWidth()
|
||||
}
|
||||
)
|
||||
watch(
|
||||
() => route.params.tabid,
|
||||
(t) => {
|
||||
RouteTabControl()
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
</script>
|
||||
|
||||
@ -5,7 +5,6 @@ import FormInput from './FormInput.vue'
|
||||
import FormDate from './FormDate.vue'
|
||||
import FormFile from './FormFile.vue'
|
||||
import FormTextarea from './FormTextarea.vue'
|
||||
import FormQuill from './FormQuill.vue'
|
||||
import FormSummer from './FormSummer.vue'
|
||||
import FormSelect from './FormSelect.vue'
|
||||
import FormRadio from './FormRadio.vue'
|
||||
@ -25,7 +24,6 @@ export {
|
||||
FormDate,
|
||||
FormFile,
|
||||
FormTextarea,
|
||||
FormQuill,
|
||||
FormSummer,
|
||||
FormSelect,
|
||||
FormRadio,
|
||||
|
||||
@ -5,6 +5,23 @@ import router from '@/router'
|
||||
axios.defaults.baseURL = import.meta.env.VITE_API_URL
|
||||
//axios.defaults.timeout = 2000;
|
||||
axios.defaults.headers['Content-Type'] = 'application/json; charset=utf-8'
|
||||
//Filtrelerde aynı key birden fazla parametre array ile eklendiğinde url oluştururken [] ekleyerek oluşturmasını engellemek için serializer eklendi
|
||||
axios.defaults.paramsSerializer = (params) => {
|
||||
const queryParts: string[] = []
|
||||
|
||||
for (const key in params) {
|
||||
const value = params[key]
|
||||
if (Array.isArray(value)) {
|
||||
value.forEach((v) => {
|
||||
queryParts.push(`${key}=${encodeURIComponent(v)}`)
|
||||
})
|
||||
} else if (value !== undefined && value !== null) {
|
||||
queryParts.push(`${key}=${encodeURIComponent(value)}`)
|
||||
}
|
||||
}
|
||||
|
||||
return queryParts.join('&')
|
||||
}
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
|
||||
// İstek Öncesinde Çalışacak Bir Fonksiyon
|
||||
|
||||
@ -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>
|
||||
@ -8,7 +8,8 @@
|
||||
:rowAction="OpenUser"
|
||||
:apiList="'Katilimci/ByCekilisId/' + piyangoStore.selectedLottery"
|
||||
v-model:pagination="paginationData"
|
||||
v-model:refresh="piyangoKatilimciStore.refreshPiyangoKatilimciList">
|
||||
v-model:refresh="piyangoKatilimciStore.refreshPiyangoKatilimciList"
|
||||
isUseRoute>
|
||||
<template #extraButtons>
|
||||
<button
|
||||
class="button-c"
|
||||
@ -57,7 +58,12 @@
|
||||
<panel-katilimci-document />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<button class="button-c button-save" @click="FileUpload" :disabled="uploadProgressPanel">Yükle</button>
|
||||
<button
|
||||
class="button-c button-save"
|
||||
@click="FileUpload"
|
||||
:disabled="uploadProgressPanel">
|
||||
Yükle
|
||||
</button>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
<panel-wrapper
|
||||
@ -112,14 +118,9 @@
|
||||
import PanelKatilimciDocument from '@/module/cekilisler/components/panel/PanelKatilimciDocument.vue'
|
||||
import PanelPiyangoKatilimci from '@/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue'
|
||||
|
||||
import { useDateStore } from '@/stores/dateStore'
|
||||
|
||||
const dateStore = useDateStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
|
||||
const usersStore = useUsersStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
|
||||
const dataStore = useDataStore()
|
||||
import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
|
||||
@ -142,18 +143,12 @@
|
||||
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 connectionId = ref('')
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>([
|
||||
{
|
||||
@ -259,7 +254,8 @@
|
||||
else return ''
|
||||
})
|
||||
|
||||
const AddNewDocument = () => {
|
||||
const AddNewDocument = async () => {
|
||||
connectionId.value = await connectToHub()
|
||||
dataStore.panelData = {
|
||||
title: '',
|
||||
file: ''
|
||||
@ -284,7 +280,7 @@
|
||||
piyangoKatilimciStore.katilimciUserPanel = true
|
||||
}
|
||||
const FileUpload = async () => {
|
||||
const connectionId = await connectToHub()
|
||||
// Mevcut bağlantıyı kullan (AddNewDocument'te açıldı)
|
||||
|
||||
// Progress modal'ı aç
|
||||
uploadProgressValue.value = 0
|
||||
@ -309,39 +305,20 @@
|
||||
)
|
||||
console.log(dataStore.panelData)
|
||||
const response = await dataStore.dataPost(
|
||||
`Katilimci/ExcelleYukle/${piyangoStore.selectedLottery}?connectionId=${connectionId}`,
|
||||
`Katilimci/ExcelleYukle/${piyangoStore.selectedLottery}?connectionId=${connectionId.value}`,
|
||||
{
|
||||
data: formData,
|
||||
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
|
||||
uploadProgressPanel.value = false
|
||||
}
|
||||
}
|
||||
// const FileUpload = async () => {
|
||||
// if (true) {
|
||||
// const formData = new FormData()
|
||||
// formData.append('excelFile', dataStore.panelData.file)
|
||||
// let dt: any
|
||||
//
|
||||
// dt = await dataStore.dataPost(
|
||||
// `Katilimci/ExcelleYukle/${piyangoStore.selectedLottery}?connectionId=${connectionId}`,
|
||||
// {
|
||||
// data: formData,
|
||||
// headers: { 'Content-Type': 'multipart/form-data' }
|
||||
// }
|
||||
// )
|
||||
// if (dt !== 'errorfalse') {
|
||||
// piyangoKatilimciStore.refreshPiyangoKatilimciList = true
|
||||
// piyangoKatilimciStore.katilimciFilePanel = false
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
const DeleteAllButton = () => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Tüm Katılımcıları Sil',
|
||||
@ -353,7 +330,7 @@
|
||||
{
|
||||
label: 'Tüm katılımcıları Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteAll
|
||||
function: () => DeleteAll()
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
listText="Talihli"
|
||||
:apiList="'Katilimci/AsilYedek/' + piyangoStore.selectedLottery"
|
||||
v-model:refresh='refreshList'
|
||||
isUseRoute
|
||||
>
|
||||
<template #extraButtons>
|
||||
<a href='/data/ornek-talihli-listesi.xlsx' target='_blank' class='button-c' v-if='piyangoStore.lotteryData.cekilisYontemi =="Fiziksel"'>
|
||||
|
||||
@ -10,7 +10,8 @@
|
||||
:apiList="
|
||||
'TeminantStates/GetTeminantStateCekilisList/' + piyangoStore.selectedLottery
|
||||
"
|
||||
v-model:refresh="piyangoTeminatStore.refreshList" />
|
||||
v-model:refresh="piyangoTeminatStore.refreshList"
|
||||
isUseRoute/>
|
||||
</section>
|
||||
<panel-wrapper
|
||||
wide
|
||||
@ -43,7 +44,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>
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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ığı"
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inner-comment waiting-d" v-if="!loaded">Yükleniyor, lütfen bekleyiniz...</div>
|
||||
<piyango-bilgileri-display-content v-if="loaded" :isPreview="isPreview" />
|
||||
</div>
|
||||
<panel-wrapper
|
||||
@ -39,7 +40,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()
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
}
|
||||
|
||||
const DeleteDocument = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('Popup/' + id)
|
||||
var dt = await dataStore.dataDelete('Dokuman/' + id)
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deletedoc')
|
||||
|
||||
@ -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>
|
||||
</file-list-item>
|
||||
</template>
|
||||
<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>
|
||||
@ -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 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()
|
||||
})
|
||||
|
||||
@ -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'
|
||||
|
||||
@ -29,18 +29,37 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inner-comment waiting-d" v-if="!loaded">
|
||||
Yükleniyor, lütfen bekleyiniz...
|
||||
</div>
|
||||
<div class="form-part-content" v-if="loaded">
|
||||
<lottery-states :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" />
|
||||
<template
|
||||
v-if="
|
||||
!piyangoStore.isNew &&
|
||||
piyangoStore.lotteryData.piyangoId !== undefined &&
|
||||
piyangoStore.lotteryData.piyangoId !== null
|
||||
">
|
||||
<template v-if="!piyangoStore.isNew">
|
||||
<form-display
|
||||
v-if="
|
||||
piyangoStore.lotteryData.piyangoId !== undefined &&
|
||||
piyangoStore.lotteryData.piyangoId !== null
|
||||
"
|
||||
v-model="piyangoStore.lotteryData.piyangoId"
|
||||
label="Piyango ID"
|
||||
size="1" />
|
||||
<form-display
|
||||
type="date"
|
||||
v-if="
|
||||
piyangoStore.lotteryData.izinTarihi !== undefined &&
|
||||
piyangoStore.lotteryData.izinTarihi !== null
|
||||
"
|
||||
v-model="piyangoStore.lotteryData.izinTarihi"
|
||||
half
|
||||
label="İzin Tarihi" />
|
||||
<form-display
|
||||
v-if="
|
||||
piyangoStore.lotteryData.izinSayisi !== undefined &&
|
||||
piyangoStore.lotteryData.izinSayisi !== null
|
||||
"
|
||||
v-model="piyangoStore.lotteryData.izinSayisi"
|
||||
half
|
||||
label="İzin Sayısı" />
|
||||
</template>
|
||||
<form-input
|
||||
modelKey="cekilisBaslik"
|
||||
@ -90,7 +109,7 @@
|
||||
'/uyeler/detay/' +
|
||||
piyangoStore.lotteryData.baglisirketId +
|
||||
'/yetkili-uye/detay/' +
|
||||
piyangoStore.lotteryData.duzenleyenId
|
||||
piyangoStore.lotteryData.duzenleyenId+'/kisi-kurum-bilgileri'
|
||||
"
|
||||
class="button-c">
|
||||
Üyeyi Kontrol Et
|
||||
@ -525,7 +544,7 @@
|
||||
piyangoStore.lotteryApprove = 0
|
||||
piyangoStore.isNew = false
|
||||
piyangoStore.ResetLotteryData()
|
||||
router.push('/piyangolar/detay/' + form.id)
|
||||
router.push('/piyangolar/detay/' + form.id + '/piyango-bilgileri')
|
||||
} else {
|
||||
GetData()
|
||||
}
|
||||
|
||||
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'
|
||||
|
||||
@ -18,7 +18,79 @@
|
||||
listVal="islemId"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId" />
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId">
|
||||
<template #option="{ optionData }">
|
||||
<span
|
||||
v-if="optionData && optionData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||
{{ optionData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||
</template>
|
||||
<template #activator="{ activatorData }">
|
||||
<span
|
||||
v-if="activatorData && activatorData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(activatorData.tipAdi)">
|
||||
{{ activatorData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>Lütfen Seçim Yapınız</span>
|
||||
</template>
|
||||
</form-select>
|
||||
<template v-if="showIzinFields">
|
||||
<form-date
|
||||
type="date"
|
||||
required
|
||||
modelKey="izinTarihi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinTarihi"
|
||||
label="İzin Tarihi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinTarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayısı"
|
||||
placeholder="İzin Sayısı"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinAciklamasi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinAciklamasi"
|
||||
label="İzin Açıklaması"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
<template v-if="showIzinVerildiFields">
|
||||
<form-select
|
||||
label="Müdürlük"
|
||||
:listData="mudurlukListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.mudurlukId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.mudurlukId"
|
||||
@change="OnKeyup" />
|
||||
<form-select
|
||||
label="Çekiliş Görevlisi"
|
||||
:listData="cekilisGorevlisiListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.cekilisGorevlisiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.cekilisGorevlisiId"
|
||||
@change="OnKeyup" />
|
||||
</template>
|
||||
<form-select
|
||||
v-if="showKapsamDisiSebebi"
|
||||
label="Kapsam Dışı Sebebi"
|
||||
:listData="kapsamDisiSebepListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.kapsamDisiSebebi"
|
||||
@change="OnKeyup" />
|
||||
<form-file
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.file"
|
||||
elclass="panel-documents-item"
|
||||
@ -32,16 +104,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onBeforeMount } from 'vue'
|
||||
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { onBeforeMount, computed, ref } from 'vue'
|
||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||
@ -52,6 +115,62 @@
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const showIzinFields = computed<boolean>(() => {
|
||||
return (
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4 ||
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
)
|
||||
})
|
||||
|
||||
const showIzinVerildiFields = computed<boolean>(() => {
|
||||
return (
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4
|
||||
)
|
||||
})
|
||||
|
||||
const showKapsamDisiSebebi = computed<boolean>(() => {
|
||||
return piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
})
|
||||
|
||||
const kapsamDisiSebepListesi = ref<Record<string, any>[]>([
|
||||
{ id: '2/a', name: '2/a' },
|
||||
{ id: '2/b', name: '2/b' },
|
||||
{ id: '2/c', name: '2/c' },
|
||||
{ id: '2/ç', name: '2/ç' },
|
||||
{ id: '2/d', name: '2/d' },
|
||||
{ id: '2/e', name: '2/e' },
|
||||
{ id: '2/f', name: '2/f' },
|
||||
{ id: '2/g', name: '2/g' },
|
||||
{ id: 'Diğer', name: 'Diğer' }
|
||||
])
|
||||
|
||||
const cekilisGorevlisiListesi = ref<Record<string, any>[]>([
|
||||
{ id: 1, name: 'Antalya Şube Müdürlüğü' },
|
||||
{ id: 2, name: 'Gaziantep Şube Müdürlüğü' },
|
||||
{ id: 3, name: 'Aksaray Şube Müdürlüğü' },
|
||||
{ id: 4, name: 'Kadıköy Şube Müdürlüğü' },
|
||||
{ id: 5, name: 'Karşıyaka Şube Müdürlüğü' },
|
||||
{ id: 6, name: 'Muğla Şube Müdürlüğü' },
|
||||
{ id: 7, name: 'Trabzon Şube Müdürlüğü' },
|
||||
{ id: 8, name: 'Noter' },
|
||||
{ id: 9, name: 'Başkanlık Personeli' }
|
||||
])
|
||||
|
||||
const mudurlukListesi = ref<Record<string, any>[]>([
|
||||
{ id: 1, name: '1 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||
{ id: 2, name: '2 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||
{ id: 3, name: '3 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' }
|
||||
])
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoOnayValidationStore.formChanged = true
|
||||
|
||||
181
src/module/cekilisler/components/form/FormPiyangoOnayDurum.vue
Normal file
181
src/module/cekilisler/components/form/FormPiyangoOnayDurum.vue
Normal file
@ -0,0 +1,181 @@
|
||||
<template>
|
||||
<list-table-content
|
||||
v-if="loaded"
|
||||
:tableHeader="tableHeader"
|
||||
:rowAction="EditOnay"
|
||||
formTitle="Piyango Onay Durumları"
|
||||
listText="Kayıt"
|
||||
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
|
||||
apiText="Piyango Onay Log Listesi"
|
||||
page="form"
|
||||
:refresh="piyangoOnayStore.refreshList"
|
||||
:rowActions="rowActions" />
|
||||
<panel-wrapper
|
||||
v-if="piyangoOnayStore.onayFormPanel"
|
||||
v-model="piyangoOnayStore.onayFormPanel"
|
||||
panel-title="Onay Durumunu Düzenle">
|
||||
<template #panelContent>
|
||||
<panel-piyango-onay />
|
||||
</template>
|
||||
<template #footerButton>
|
||||
<div class="button-c button-save" @click="piyangoOnayService.SaveOnayDurumPanel">
|
||||
Kaydet
|
||||
</div>
|
||||
</template>
|
||||
</panel-wrapper>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onBeforeMount, computed } from 'vue'
|
||||
import PanelPiyangoOnay from '../panel/PanelPiyangoOnay.vue'
|
||||
import PanelWrapper from '@/components/PanelWrapper.vue'
|
||||
|
||||
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 { usePiyangoOnayService } from '../../service/piyangoOnayService'
|
||||
const piyangoOnayService = usePiyangoOnayService()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { useDialogStore } from '@/components/global/dialogStore'
|
||||
const dialogStore = useDialogStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
|
||||
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',
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'kisiAdi',
|
||||
title: 'Kişi',
|
||||
sort: true,
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'onayDurumuIslemTipiAdi',
|
||||
title: 'İşlem',
|
||||
sort: true,
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
const statusName = v.onayDurumuIslemTipiAdi || ''
|
||||
const statusClass = piyangoStore.GetIslemStatusClass(statusName)
|
||||
return `<span class='islem-status-badge ${statusClass}'>${statusName}</span>`
|
||||
},
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'onayDurumuIslemTipiId'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'aciklama',
|
||||
title: 'Açıklama'
|
||||
},
|
||||
{
|
||||
dosyaUrl: 'aciklama',
|
||||
title: 'Dosya',
|
||||
computeHtml: (v: Record<string, any>) => {
|
||||
if (v.dosyaUrl !== null && v.dosyaUrl !== undefined) {
|
||||
return globalStore.TableCellDocument(v.dosyaUrl)
|
||||
}
|
||||
},
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'izinSayisi',
|
||||
title: 'İzin Sayısı'
|
||||
},
|
||||
{
|
||||
name: 'izinTarihi',
|
||||
title: 'İzin Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.izinTarihi === null || v.izinTarihi === undefined || v.izinTarihi === ''
|
||||
? ''
|
||||
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.izinTarihi })
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'izinAciklamasi',
|
||||
title: 'İzin Açıklaması'
|
||||
},
|
||||
{
|
||||
name: 'kapsamDisiSebebi',
|
||||
title: 'Kapsam Dışı Sebebi'
|
||||
},
|
||||
])
|
||||
|
||||
const EditOnay = (d: Record<string, any>) => {
|
||||
Object.assign(piyangoOnayStore.piyangoPanelOnayForm, {
|
||||
...piyangoOnayStore.piyangoOnayBaseForm,
|
||||
...d,
|
||||
izinAciklamasi: d.izinAciklamasi != null ? d.izinAciklamasi : '',
|
||||
kapsamDisiSebebi: d.kapsamDisiSebebi != null ? d.kapsamDisiSebebi : null
|
||||
})
|
||||
piyangoOnayStore.onayFormPanel = true
|
||||
}
|
||||
|
||||
const DeleteRowPop = (data: Record<string, any>, i: number) => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Onay Durumu Sil',
|
||||
id: 'deleteonaydurumu',
|
||||
content: 'Onay durumunu silmek istediğinize emin misiniz?',
|
||||
closeText: 'Vazgeç',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Sil',
|
||||
type: 'alert',
|
||||
function: () => DeleteRow(data.id)
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
const DeleteRow = async (id: number | string) => {
|
||||
var dt = await dataStore.dataDelete('OnayDurumu/' + id, {
|
||||
toast: { toast: 'Onay durumu başarıyla silindi', type: 'success' }
|
||||
})
|
||||
|
||||
if (dt !== 'errorfalse') {
|
||||
dialogStore.CloseDialog('deleteonaydurumu')
|
||||
piyangoOnayStore.refreshList = false
|
||||
setTimeout(() => {
|
||||
piyangoOnayStore.refreshList = true
|
||||
}, 10)
|
||||
}
|
||||
}
|
||||
|
||||
const rowActions = ref<Record<string, any>[]>([
|
||||
{
|
||||
text: 'Sil',
|
||||
class: 'alert',
|
||||
action: DeleteRowPop
|
||||
}
|
||||
])
|
||||
|
||||
onBeforeMount(async () => {
|
||||
loaded.value = true
|
||||
})
|
||||
</script>
|
||||
@ -1,36 +1,25 @@
|
||||
<template>
|
||||
<list-table-content
|
||||
v-if="loaded"
|
||||
v-if="loaded"
|
||||
: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" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref,onBeforeMount,computed } from 'vue'
|
||||
import axios from 'axios'
|
||||
import { ref, onBeforeMount, computed } from 'vue'
|
||||
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',
|
||||
@ -41,44 +30,30 @@
|
||||
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.tarih })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'kisiAdi',
|
||||
name: 'islemYapanKullanici',
|
||||
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()
|
||||
})
|
||||
|
||||
@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<form-select
|
||||
@change="OnIkramiyeChanged"
|
||||
modelKey="ikramiyeId"
|
||||
clearable
|
||||
label="Kazandığı İkramiye"
|
||||
:listData="piyangoIkramiyeStore.piyangoAllIkramiyeData"
|
||||
listText="cinsi"
|
||||
listVal="id"
|
||||
v-model="selectedIkramiye"
|
||||
:invalidText="
|
||||
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.tahhutEdilenIkramiye
|
||||
">
|
||||
<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.optionData.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.ikramiyeId = item.id
|
||||
|
||||
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.tahhutEdilenIkramiye
|
||||
) {
|
||||
selectedIkramiye.value = item.id
|
||||
}
|
||||
})
|
||||
totalIkramiye.value = piyangoIkramiyeStore.piyangoAllIkramiyeData.reduce(
|
||||
(acc, item) => acc + (item.asilTalihliAdedi || 0),
|
||||
0
|
||||
)
|
||||
})
|
||||
</script>
|
||||
126
src/module/cekilisler/components/panel/PanelPiyangoOnay.vue
Normal file
126
src/module/cekilisler/components/panel/PanelPiyangoOnay.vue
Normal file
@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<div class="form-part-content" v-if="piyangoOnayStore.onayPanelLoaded">
|
||||
<form-select
|
||||
label="İşlem"
|
||||
:listData="piyangoDataStore.piyangoOnayDurumlari"
|
||||
listText="tipAdi"
|
||||
listVal="islemId"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.onayDurumuIslemTipiId">
|
||||
<template #option="{ optionData }">
|
||||
<span
|
||||
v-if="optionData && optionData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||
{{ optionData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||
</template>
|
||||
<template #activator="{ activatorData }">
|
||||
<span
|
||||
v-if="activatorData && activatorData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(activatorData.tipAdi)">
|
||||
{{ activatorData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>Lütfen Seçim Yapınız</span>
|
||||
</template>
|
||||
</form-select>
|
||||
<template v-if="showIzinFields">
|
||||
<form-date
|
||||
type="date"
|
||||
required
|
||||
modelKey="izinTarihi"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinTarihi"
|
||||
label="İzin Tarihi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinTarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayısı"
|
||||
placeholder="İzin Sayısı"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinAciklamasi"
|
||||
label="İzin Açıklaması"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
<form-select
|
||||
v-if="showKapsamDisiSebebi"
|
||||
label="Kapsam Dışı Sebebi"
|
||||
:listData="kapsamDisiSebepListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.kapsamDisiSebebi"
|
||||
@change="OnKeyup" />
|
||||
<form-file
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.file"
|
||||
elclass="panel-documents-item"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.file" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.aciklama"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.aciklama"
|
||||
label="Açıklama"
|
||||
@keyup="OnKeyup" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount, computed, ref } from 'vue'
|
||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
|
||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const showIzinFields = computed<boolean>(() => {
|
||||
return (
|
||||
piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4 ||
|
||||
piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
)
|
||||
})
|
||||
|
||||
const showKapsamDisiSebebi = computed<boolean>(() => {
|
||||
return piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
})
|
||||
|
||||
const kapsamDisiSebepListesi = ref<Record<string, any>[]>([
|
||||
{ id: '2/a', name: '2/a' },
|
||||
{ id: '2/b', name: '2/b' },
|
||||
{ id: '2/c', name: '2/c' },
|
||||
{ id: '2/ç', name: '2/ç' },
|
||||
{ id: '2/d', name: '2/d' },
|
||||
{ id: '2/e', name: '2/e' },
|
||||
{ id: '2/f', name: '2/f' },
|
||||
{ id: '2/g', name: '2/g' },
|
||||
{ id: 'Diğer', name: 'Diğer' }
|
||||
])
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoOnayValidationStore.formChanged = true
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await piyangoServices.GetPiyangoOnayDurumList()
|
||||
piyangoDataStore.RemoveOnayDurumIncelemeBekleniyor()
|
||||
piyangoOnayStore.onayPanelLoaded = true
|
||||
})
|
||||
</script>
|
||||
@ -20,23 +20,29 @@
|
||||
<form-date
|
||||
type="date"
|
||||
half
|
||||
modelKey="iadeTarihi"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi"
|
||||
label="İlan Tarihi"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.iadeTarihi"
|
||||
modelKey="refundDate"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDate"
|
||||
label="İade Tarihi"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDate"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="iadeSayi"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.iadeSayi"
|
||||
modelKey="refundCount"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundCount"
|
||||
half
|
||||
label="Sayısı"
|
||||
@keyup="OnKeyup"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.iadeSayi" />
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundCount" />
|
||||
<form-file
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.iadeFile"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl"
|
||||
label='İade Yazısı'
|
||||
elclass="panel-documents-item"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.iadeFile"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDocumentUrl"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="refundDescription"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDescription"
|
||||
label="Klasör Arşiv No"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
|
||||
<form-display
|
||||
|
||||
@ -2,4 +2,4 @@ import piyangoListe from '@/module/cekilisler/routes/piyango-liste'
|
||||
import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni'
|
||||
import piyangoDetay from '@/module/cekilisler/routes/piyango-detay'
|
||||
|
||||
export default [piyangoListe, piyangoYeni, piyangoDetay]
|
||||
export default [piyangoListe, piyangoYeni, ...piyangoDetay]
|
||||
|
||||
@ -1,10 +1,19 @@
|
||||
import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue'
|
||||
|
||||
export default {
|
||||
path: '/piyangolar/detay/:piyangoId',
|
||||
name: 'PiyangoDetay',
|
||||
component: PiyangoDetay,
|
||||
meta: {
|
||||
authRequired: true
|
||||
export default [
|
||||
{
|
||||
path: '/piyangolar/detay/:piyangoId/',
|
||||
redirect: (to:Record<string,any>) => ({
|
||||
name: 'PiyangoDetay',
|
||||
params: { piyangoId: to.params.piyangoId, tabid: 'piyango-bilgileri' }
|
||||
})
|
||||
},
|
||||
{
|
||||
path: '/piyangolar/detay/:piyangoId/:tabid',
|
||||
name: 'PiyangoDetay',
|
||||
component: PiyangoDetay,
|
||||
meta: {
|
||||
authRequired: true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
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)
|
||||
Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaData, 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.isNew) {
|
||||
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 }
|
||||
}
|
||||
)
|
||||
@ -62,7 +62,6 @@ export const usePiyangoKatilimciService = defineStore('piyangoKatilimciService',
|
||||
|
||||
const KatilimciFileUpload = async () => {
|
||||
if (piyangoKatilimciValidationStore.FileFormCheck()) {
|
||||
console.log('Katilimci File Upload')
|
||||
const formData = new FormData()
|
||||
formData.append('excelFile', piyangoKatilimciStore.piyangoKatilimciFileFormData.excelFile)
|
||||
let dt: any
|
||||
|
||||
@ -4,6 +4,7 @@ import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||
import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||
|
||||
export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
const dataStore = useDataStore()
|
||||
@ -11,12 +12,33 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
|
||||
const usersStore = useUsersStore()
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
|
||||
const getKapsamDisiId = (): number | null => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
}
|
||||
|
||||
const shouldKeepIzinFields = (islemTipiId: number | null): boolean => {
|
||||
return islemTipiId === 4 || islemTipiId === getKapsamDisiId()
|
||||
}
|
||||
|
||||
const SaveOnayDurum = async () => {
|
||||
if (piyangoOnayValidationStore.FormCheck()) {
|
||||
piyangoOnayStore.loaded = false
|
||||
let form: any
|
||||
let dataForm = new FormData()
|
||||
|
||||
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||
piyangoOnayStore.piyangoOnayForm.izinSayisi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinTarihi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi = ''
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi = null
|
||||
}
|
||||
dataForm.append(
|
||||
'onayDurumuIslemTipiId',
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
||||
@ -24,7 +46,21 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||
dataForm.append('kisiId', String(usersStore.userId))
|
||||
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama || '')
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi || '')
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi || '')
|
||||
dataForm.append(
|
||||
'izinAciklamasi',
|
||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.izinAciklamasi)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'kapsamDisiSebebi',
|
||||
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi)
|
||||
: ''
|
||||
)
|
||||
|
||||
form = await dataStore.dataPost('OnayDurumu/', {
|
||||
data: dataForm,
|
||||
@ -46,5 +82,60 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
piyangoOnayValidationStore.isFormValid = true
|
||||
}
|
||||
}
|
||||
return { SaveOnayDurum }
|
||||
|
||||
const SaveOnayDurumPanel = async () => {
|
||||
if (piyangoOnayValidationStore.FormPanelCheck()) {
|
||||
let form: any
|
||||
let dataForm = new FormData()
|
||||
|
||||
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinSayisi = ''
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinTarihi = ''
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi = ''
|
||||
}
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||
piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi = null
|
||||
}
|
||||
dataForm.append('onayDurumuIslemTipiId', piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)
|
||||
dataForm.append('id', piyangoOnayStore.piyangoPanelOnayForm.id)
|
||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||
dataForm.append('kisiId', String(usersStore.userId))
|
||||
dataForm.append('file', piyangoOnayStore.piyangoPanelOnayForm.file)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoPanelOnayForm.aciklama || '')
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoPanelOnayForm.izinSayisi || '')
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoPanelOnayForm.izinTarihi || '')
|
||||
dataForm.append(
|
||||
'izinAciklamasi',
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi != null
|
||||
? String(piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'kapsamDisiSebebi',
|
||||
piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi != null
|
||||
? String(piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi)
|
||||
: ''
|
||||
)
|
||||
|
||||
form = await dataStore.dataPut(
|
||||
'OnayDurumu/' + piyangoOnayStore.piyangoPanelOnayForm.id,
|
||||
{
|
||||
data: dataForm,
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
toast: { toast: 'Onay durumu başarıyla kaydedildi', type: 'success' }
|
||||
}
|
||||
)
|
||||
|
||||
if (form !== 'errorfalse') {
|
||||
piyangoOnayStore.refreshList = false
|
||||
setTimeout(() => {
|
||||
piyangoOnayStore.refreshList = true
|
||||
}, 10)
|
||||
piyangoOnayStore.onayFormPanel = false
|
||||
}
|
||||
} else {
|
||||
piyangoOnayValidationStore.isPanelFormValid = true
|
||||
}
|
||||
}
|
||||
return { SaveOnayDurum, SaveOnayDurumPanel }
|
||||
})
|
||||
|
||||
@ -49,15 +49,27 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
|
||||
|
||||
if (usersStore.isPanelUser) {
|
||||
if (piyangoTeminatStore.piyangoTeminatFormData.state === 1) {
|
||||
piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.iadeSayi = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.iadeFile = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDate = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundCount = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl = ''
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDescription = ''
|
||||
}
|
||||
dataForm.append(
|
||||
'iadeTarihi',
|
||||
String(piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi)
|
||||
'refundDate',
|
||||
String(piyangoTeminatStore.piyangoTeminatFormData.refundDate)
|
||||
)
|
||||
dataForm.append(
|
||||
'refundCount',
|
||||
String(piyangoTeminatStore.piyangoTeminatFormData.refundCount)
|
||||
)
|
||||
dataForm.append(
|
||||
'refundDocumentUrl',
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl
|
||||
)
|
||||
dataForm.append(
|
||||
'refundDescription',
|
||||
piyangoTeminatStore.piyangoTeminatFormData.refundDescription
|
||||
)
|
||||
dataForm.append('iadeFile', piyangoTeminatStore.piyangoTeminatFormData.iadeFile)
|
||||
}
|
||||
|
||||
if (piyangoTeminatStore.isNew) {
|
||||
|
||||
@ -1,19 +1,33 @@
|
||||
import * as signalR from '@microsoft/signalr'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
|
||||
let connection: signalR.HubConnection
|
||||
let connectionId = ''
|
||||
|
||||
export const connectToHub = async () => {
|
||||
console.log('Connecting to SignalR Hub...')
|
||||
// Mevcut bağlantı varsa kapat
|
||||
if (connection && connection.state === signalR.HubConnectionState.Connected) {
|
||||
await connection.stop()
|
||||
}
|
||||
|
||||
connection = new signalR.HubConnectionBuilder()
|
||||
.withUrl(import.meta.env.VITE_SOCKET_URL, {
|
||||
withCredentials: false // Bu zorunlu, yoksa cookie vs gönderilmez
|
||||
}) // backend adresine göre düzenle
|
||||
withCredentials: false,
|
||||
skipNegotiation: true, // WebSocket kullanırken negotiation atlanabilir
|
||||
transport: signalR.HttpTransportType.WebSockets
|
||||
})
|
||||
.withAutomaticReconnect()
|
||||
.build()
|
||||
|
||||
// Eventleri ekle
|
||||
onProgress((data) => console.log('progress', data))
|
||||
onInsertProgress((data) => console.log('insert progress', data))
|
||||
onCompleted((data) => console.log('completed', data))
|
||||
onError((data) => console.log('error', data))
|
||||
|
||||
await connection.start()
|
||||
connectionId = connection.connectionId || uuidv4() // SignalR id'si ya da frontend'de de guid üretilebilir
|
||||
connectionId = await connection.invoke<string>('GetConnectionId')
|
||||
console.log('Connected to SignalR Hub with Connection ID:', connectionId)
|
||||
return connectionId
|
||||
}
|
||||
|
||||
|
||||
109
src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts
Normal file
109
src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
import { usePiyangoStore } from './piyangoStore'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
|
||||
|
||||
export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => {
|
||||
const globalStore = useGlobalStore()
|
||||
const piyangoStore = usePiyangoStore()
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
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: '',
|
||||
duzenleyenId: usersStore.userId,
|
||||
ikramiyeId:'',
|
||||
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,13 +12,20 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
||||
onayCekilisId: piyangoStore.selectedLottery,
|
||||
kisiId: usersStore.userId,
|
||||
aciklama: '',
|
||||
file: ''
|
||||
file: '',
|
||||
izinSayisi: '',
|
||||
izinTarihi: '',
|
||||
izinAciklamasi: '',
|
||||
kapsamDisiSebebi: null
|
||||
})
|
||||
const piyangoOnayForm = reactive<Record<string, any>>({})
|
||||
const piyangoPanelOnayForm = reactive<Record<string, any>>({})
|
||||
const piyangoOnaySafeForm = reactive<Record<string, any>>({})
|
||||
const isUpdate = ref<boolean>(false)
|
||||
const refreshList = ref<boolean>(false)
|
||||
const loaded = ref<boolean>(false)
|
||||
const onayPanelLoaded = ref<boolean>(false)
|
||||
const onayFormPanel = ref<boolean>(false)
|
||||
|
||||
const ResetForm = () => {
|
||||
Object.assign(piyangoOnayForm, piyangoOnayBaseForm)
|
||||
@ -27,10 +34,13 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
||||
return {
|
||||
piyangoOnayBaseForm,
|
||||
piyangoOnayForm,
|
||||
piyangoPanelOnayForm,
|
||||
piyangoOnaySafeForm,
|
||||
isUpdate,
|
||||
refreshList,
|
||||
loaded,
|
||||
onayPanelLoaded,
|
||||
onayFormPanel,
|
||||
ResetForm
|
||||
}
|
||||
})
|
||||
|
||||
@ -48,7 +48,7 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
])
|
||||
|
||||
const baseLotteryData = reactive<Record<string, any>>({
|
||||
amac:'',
|
||||
amac: '',
|
||||
amacpiyangoId: null,
|
||||
duzenleyenId: null,
|
||||
baslik: '',
|
||||
@ -91,13 +91,14 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
|
||||
const duzenleyenLink = computed<string | null>(() => {
|
||||
if (lotteryData.baglisirketId === null && lotteryData.duzenleyenId !== null)
|
||||
return '/uyeler/detay/' + lotteryData.duzenleyenId
|
||||
return '/uyeler/detay/' + lotteryData.duzenleyenId + '/uye-bilgileri'
|
||||
else if (lotteryData.duzenleyenId !== null && lotteryData.baglisirketId !== null)
|
||||
return (
|
||||
'/uyeler/detay/' +
|
||||
araciUyeData.baglisirketId +
|
||||
lotteryData.baglisirketId +
|
||||
'/yetkili-uye/detay/' +
|
||||
lotteryData.duzenleyenId
|
||||
lotteryData.duzenleyenId +
|
||||
'/kisi-kurum-bilgileri'
|
||||
)
|
||||
else return null
|
||||
})
|
||||
@ -122,21 +123,49 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
Object.assign(lotteryData, baseLotteryData)
|
||||
lotteryApprove.value = null
|
||||
selectedLottery.value = null
|
||||
lotteryData.kapsamIl.splice(0,lotteryData.kapsamIl.length)
|
||||
lotteryData.kapsamIlce.splice(0,lotteryData.kapsamIlce.length)
|
||||
lotteryData.kapsamIl.splice(0, lotteryData.kapsamIl.length)
|
||||
lotteryData.kapsamIlce.splice(0, lotteryData.kapsamIlce.length)
|
||||
}
|
||||
|
||||
const ResetLotteryContent = () => {
|
||||
Object.assign(lotteryData, baseLotteryData)
|
||||
}
|
||||
|
||||
const GetIslemStatusClass = (statusName: string | undefined): string => {
|
||||
if (!statusName) {
|
||||
return 'islem-status-default'
|
||||
}
|
||||
// Her duruma benzersiz canlı renkler atanıyor
|
||||
const statusMap: Record<string, string> = {
|
||||
'Bilgi/Belge Eksik/Yanlış': 'islem-status-coral',
|
||||
'Üzerinde Çalışılıyor': 'islem-status-amber',
|
||||
'Başvuru İşleme Alındı': 'islem-status-sky',
|
||||
'Başvuru Uygun Görülmedi': 'islem-status-rose',
|
||||
'İzin Öncesi İptal': 'islem-status-pink',
|
||||
'Kapsam Dışı': 'islem-status-slate',
|
||||
'İzin Verildi': 'islem-status-emerald',
|
||||
'Ceza Verildi': 'islem-status-red',
|
||||
'İzin Sonrası İptal': 'islem-status-salmon',
|
||||
'Kampanya Olumlu Bitti': 'islem-status-mint',
|
||||
'Mükerrer Başvuru': 'islem-status-peach',
|
||||
'Bekliyor': 'islem-status-yellow',
|
||||
'Onaylandı': 'islem-status-teal',
|
||||
'Katılımcı Listesi Yüklendi': 'islem-status-cyan',
|
||||
'Düzenleme Bekliyor': 'islem-status-orange',
|
||||
'Ön Kayıt Kabul Edildi': 'islem-status-blue',
|
||||
'Yardım Amaçlı Piyango Son Onay': 'islem-status-gold',
|
||||
'İnceleme Bekleniyor': 'islem-status-lavender',
|
||||
'Yeni Piyango': 'islem-status-violet',
|
||||
'Başvuru Reddedildi': 'islem-status-crimson',
|
||||
'Değişiklik Talep Ediliyor': 'islem-status-indigo'
|
||||
}
|
||||
return statusMap[statusName] || 'islem-status-default'
|
||||
}
|
||||
|
||||
const LoterryStatusClass = (d: any): string => {
|
||||
let cls = lotteryStatusTypes.value.filter((v) => {
|
||||
return v.name === d
|
||||
})
|
||||
if (cls !== undefined && cls !== null && cls.length !== 0)
|
||||
return 'back-grad-' + cls[0].class
|
||||
else return 'back-grad-waiting'
|
||||
// Yeni renk sistemini kullan, ama back-grad sınıfı ekle (geriye dönük uyumluluk için)
|
||||
const statusClass = GetIslemStatusClass(d)
|
||||
return 'islem-status-badge ' + statusClass
|
||||
}
|
||||
|
||||
const SetLotteryControlData = (data: Record<string, any>) => {
|
||||
@ -180,6 +209,7 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
ResetLotteryData,
|
||||
ResetLotteryContent,
|
||||
LoterryStatusClass,
|
||||
GetIslemStatusClass,
|
||||
SetLotteryControlData
|
||||
}
|
||||
})
|
||||
|
||||
@ -24,9 +24,10 @@ export const usePiyangoTeminatStore = defineStore('piyangoTeminatStore', () => {
|
||||
kisiId: usersStore.userId,
|
||||
description: '',
|
||||
file: '',
|
||||
iadeTarihi: '',
|
||||
iadeSayi: '',
|
||||
iadeFile: ''
|
||||
refundDate: '',
|
||||
refundCount: '',
|
||||
refundDocumentUrl: '',
|
||||
refundDescription:''
|
||||
})
|
||||
|
||||
const piyangoTeminatFormData = reactive<Record<string, any>>({})
|
||||
|
||||
@ -0,0 +1,125 @@
|
||||
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.teslimEdilenIkramiyeYedek
|
||||
)
|
||||
) {
|
||||
isIkramiyeFormValid.value = false
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil =
|
||||
'Yedek ve asil talihli alanlarının en az biri dolu olmalıdır'
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek =
|
||||
'Yedek ve asil talihli alanlarının en az biri dolu olmalıdır'
|
||||
}
|
||||
|
||||
if (
|
||||
!validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
|
||||
) &&
|
||||
!validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek
|
||||
)
|
||||
) {
|
||||
if (
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
|
||||
) +
|
||||
Number(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek
|
||||
) !==
|
||||
Number(piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiyeAdet)
|
||||
) {
|
||||
isIkramiyeFormValid.value = false
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil =
|
||||
'Asil ve yedek talihli toplamları, toplam ikramiye adedi kadar olmalıdır.'
|
||||
ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek =
|
||||
'Asil ve yedek talihli toplamları, toplam ikramiye adedi kadar olmalıdır.'
|
||||
}
|
||||
}
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
|
||||
ikramiyeInvalidTexts,
|
||||
'alinmayanIkramiye',
|
||||
'Alınmayan ikramiye adedi boş olamaz. En az 1 asil veya yedek ikramiye adedi giriniz.'
|
||||
)
|
||||
|
||||
if (
|
||||
!validationStore.checkEmpty(
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye
|
||||
)
|
||||
) {
|
||||
if (
|
||||
Number(piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye) < 0
|
||||
) {
|
||||
isIkramiyeFormValid.value = false
|
||||
ikramiyeInvalidTexts.alinmayanIkramiye =
|
||||
'Teslim edilen asil ve yedek ikramiye toplamları, toplam ikramiye kadar olmalıdır.'
|
||||
}
|
||||
}
|
||||
|
||||
isIkramiyeFormValid.value = Object.keys(ikramiyeInvalidTexts).length === 0
|
||||
return isIkramiyeFormValid.value
|
||||
}
|
||||
|
||||
return {
|
||||
isFormValid,
|
||||
invalidTexts,
|
||||
isIkramiyeFormValid,
|
||||
ikramiyeInvalidTexts,
|
||||
FormCheck,
|
||||
IkramiyeFormCheck
|
||||
}
|
||||
}
|
||||
)
|
||||
@ -1,17 +1,32 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { ref, reactive, computed } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||
|
||||
export const usePiyangoOnayValidationStore = defineStore(
|
||||
'piyangoOnayValidationStore',
|
||||
() => {
|
||||
const validationStore = useValidationStore()
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
|
||||
const formChanged = ref<boolean>(false)
|
||||
const isFormValid = ref<boolean>(true)
|
||||
const invalidTexts = reactive<Record<string, any>>({})
|
||||
const isPanelFormValid = ref<boolean>(true)
|
||||
const invalidTextsPanel = reactive<Record<string, any>>({})
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const shouldValidateIzinFields = (islemTipiId: number | null): boolean => {
|
||||
return islemTipiId === 4 || islemTipiId === kapsamDisiId.value
|
||||
}
|
||||
|
||||
const FormCheck = (): boolean => {
|
||||
Object.assign(invalidTexts, {})
|
||||
@ -22,15 +37,75 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'onayDurumuIslemTipiId',
|
||||
'Bir işlem tipi seçmelisinz.'
|
||||
)
|
||||
if (shouldValidateIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'izinSayisi',
|
||||
'İzin sayısı girmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'izinTarihi',
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'kapsamDisiSebebi',
|
||||
'Kapsam dışı sebebi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
|
||||
const FormPanelCheck = (): boolean => {
|
||||
Object.assign(invalidTextsPanel, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'onayDurumuIslemTipiId',
|
||||
'Bir işlem tipi seçmelisinz.'
|
||||
)
|
||||
if (shouldValidateIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'izinSayisi',
|
||||
'İzin sayısı girmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'izinTarihi',
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'kapsamDisiSebebi',
|
||||
'Kapsam dışı sebebi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
isPanelFormValid.value = Object.keys(invalidTextsPanel).length === 0
|
||||
return isPanelFormValid.value
|
||||
}
|
||||
|
||||
return {
|
||||
formChanged,
|
||||
isFormValid,
|
||||
isPanelFormValid,
|
||||
invalidTexts,
|
||||
FormCheck
|
||||
invalidTextsPanel,
|
||||
FormCheck,
|
||||
FormPanelCheck
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@ -27,13 +27,13 @@ export const usePiyangoTeminatValidationStore = defineStore(
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoTeminatStore.piyangoTeminatFormData,
|
||||
invalidTexts,
|
||||
'iadeTarihi',
|
||||
'refundDate',
|
||||
'Lütfen iade tarihini seçiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoTeminatStore.piyangoTeminatFormData,
|
||||
invalidTexts,
|
||||
'iadeSayi',
|
||||
'refundCount',
|
||||
'Lütfen iade sayı no giriniz.'
|
||||
)
|
||||
}
|
||||
|
||||
@ -167,7 +167,19 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
}
|
||||
})
|
||||
const ikramiyeTeslimMin = computed((): Date => {
|
||||
return piyangoStore.lotteryData.asilSonBasvuruTarihi
|
||||
var date: Date = new Date()
|
||||
|
||||
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
|
||||
date = new Date(piyangoStore.lotteryData.yedekSonBasvuruTarihi)
|
||||
} else {
|
||||
date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi)
|
||||
}
|
||||
var year = date.getFullYear()
|
||||
var month = date.getMonth()
|
||||
var day = date.getDate()
|
||||
|
||||
let newDate = new Date(year, month, day + 1)
|
||||
return newDate
|
||||
})
|
||||
const ikramiyeTeslimMax = computed((): Date => {
|
||||
var date: Date = new Date()
|
||||
@ -216,7 +228,7 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
!usersStore.isPanelUser) ||
|
||||
(usersStore.isPanelUser && piyangoStore.duzenleyenData.basvuruTipId !== 22)) &&
|
||||
piyangoStore.lotteryData.amacpiyangoId === 2
|
||||
) {
|
||||
) {
|
||||
if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
|
||||
isFormValid.value = false
|
||||
invalidTexts.amacpiyangoId =
|
||||
@ -240,7 +252,7 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
if (
|
||||
piyangoStore.duzenleyenData.basvuruTipId !== 22 &&
|
||||
piyangoStore.lotteryData.amacpiyangoId === 2
|
||||
) {
|
||||
) {
|
||||
if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
|
||||
isFormValid.value = false
|
||||
invalidTexts.amacpiyangoId =
|
||||
@ -472,12 +484,16 @@ export const usePiyangoValidationStore = defineStore('piyangoValidationStore', (
|
||||
date: ilanTarihi2Max.value,
|
||||
pattern: 'dd-mm-yy'
|
||||
})
|
||||
|
||||
if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
|
||||
if (ilan2min > ilan2max) {
|
||||
isFormValid.value = false
|
||||
invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
|
||||
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 {
|
||||
delete invalidTexts.ilantarihi2
|
||||
if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
|
||||
isFormValid.value = false
|
||||
invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
|
||||
} else {
|
||||
delete invalidTexts.ilantarihi2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Piyango Detay" />
|
||||
<tabs :tabList="tabList" v-if="loaded">
|
||||
<template #piyangobilgileri>
|
||||
<Breadcrumb currentPageText="Piyango Detay" go="/piyangolar/piyango-listesi" />
|
||||
<tabs :tabList="tabList" v-if="loaded" isUseRoute>
|
||||
<template #piyango-bilgileri>
|
||||
<tab-piyango-bilgileri-display
|
||||
v-if="
|
||||
usersStore.isPanelUser ||
|
||||
@ -12,20 +12,25 @@
|
||||
" />
|
||||
<tab-piyango-bilgileri v-else />
|
||||
</template>
|
||||
<template #katilimcilistesi><tab-piyango-katilimci-listesi /></template>
|
||||
<template #katilim-listesi><tab-piyango-katilimci-listesi /></template>
|
||||
<template #talihliler><tab-piyango-talihli-listesi /></template>
|
||||
<template #itirazsikayet><tab-piyango-itiraz /></template>
|
||||
<template #piyangologlari><tab-piyango-loglari /></template>
|
||||
<template #yetkilendirme>
|
||||
<template #itiraz-sikayet><tab-piyango-itiraz /></template>
|
||||
<template #piyango-loglari><tab-piyango-loglari /></template>
|
||||
<template #yetkilendirme v-if="usersStore.isPanelUser">
|
||||
<tab-piyango-yetkilendirme />
|
||||
</template>
|
||||
<template #onaydurumu>
|
||||
<template #onay-durumu>
|
||||
<tab-piyango-onay-durumu v-if="usersStore.isPanelUser" />
|
||||
<tab-piyango-onay-durumu-user v-else />
|
||||
</template>
|
||||
<template #teminatlistesi>
|
||||
<template #teminat-listesi>
|
||||
<tab-piyango-teminat-durumu />
|
||||
</template>
|
||||
<template
|
||||
#dosya-kapama
|
||||
v-if="usersStore.isPanelUser && piyangoStore.lotteryDrawState">
|
||||
<tab-piyango-dosya-kapama />
|
||||
</template>
|
||||
</tabs>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -52,10 +57,11 @@
|
||||
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>[]>([
|
||||
{ text: 'Piyango Bilgileri', id: 'piyangobilgileri' }
|
||||
{ text: 'Piyango Bilgileri', id: 'piyango-bilgileri' }
|
||||
])
|
||||
|
||||
const CreateTabs = () => {
|
||||
@ -70,21 +76,25 @@
|
||||
piyangoStore.lotteryPurposeId !== 3
|
||||
) {
|
||||
tabList.value.push(
|
||||
{ text: 'Katılım Listesi', id: 'katilimcilistesi' },
|
||||
{ text: 'Katılım Listesi', id: 'katilim-listesi' },
|
||||
{ text: 'Talihliler', id: 'talihliler' },
|
||||
{ text: 'İtiraz/Şikayet', id: 'itirazsikayet' }
|
||||
{ text: 'İtiraz/Şikayet', id: 'itiraz-sikayet' }
|
||||
)
|
||||
}
|
||||
if (usersStore.isPanelUser) {
|
||||
tabList.value.push(
|
||||
{ text: 'Piyango Logları', id: 'piyangologlari' },
|
||||
{ text: 'Piyango Logları', id: 'piyango-loglari' },
|
||||
{ text: 'Yetkilendirme', id: 'yetkilendirme' }
|
||||
)
|
||||
}
|
||||
tabList.value.push({ text: 'Onay Durumu', id: 'onaydurumu' })
|
||||
tabList.value.push({ text: 'Onay Durumu', id: 'onay-durumu' })
|
||||
|
||||
if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) {
|
||||
tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' })
|
||||
tabList.value.push({ text: 'Teminat Listesi', id: 'teminat-listesi' })
|
||||
}
|
||||
|
||||
if (usersStore.isPanelUser && piyangoStore.lotteryDrawState) {
|
||||
tabList.value.push({ text: 'Dosya Kapama', id: 'dosya-kapama' })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Piyango Listesi" />
|
||||
<Breadcrumb currentPageText="Piyango Listesi" go="/" />
|
||||
<div
|
||||
class="form-inner-comment waiting-d"
|
||||
v-if="!usersStore.isPanelUser && usersStore.userApproveId !== 4">
|
||||
@ -17,7 +17,8 @@
|
||||
listText="Piyango"
|
||||
:addRoute="addApiControl"
|
||||
:apiList="apiList"
|
||||
apiText="Piyango Listesi" />
|
||||
apiText="Piyango Listesi"
|
||||
isUseRoute />
|
||||
</section>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -30,6 +31,8 @@
|
||||
const dateStore = useDateStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||
@ -67,135 +70,297 @@
|
||||
const tableHeader = computed<Record<string, any>[]>(() => {
|
||||
let header: Record<string, any>[] = []
|
||||
|
||||
// 1. PİYANGO ID
|
||||
header.push({
|
||||
name: 'piyangoId',
|
||||
title: 'Piyango Id',
|
||||
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%' }
|
||||
// 2. MÜDÜRLÜK
|
||||
header.push({
|
||||
name: 'mudurluk',
|
||||
title: 'Müdürlük',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.mudurluk || ''
|
||||
},
|
||||
{
|
||||
name: 'baslik',
|
||||
title: 'Başlık',
|
||||
sort: true,
|
||||
style: { width: '15%' }
|
||||
},
|
||||
{
|
||||
name: 'piyangoamac',
|
||||
title: 'Piyango Amacı',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoAmaclari.value,
|
||||
listVal: 'id',
|
||||
listText: 'amacAdi',
|
||||
filterId: 'piyangoAmacId'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'olusturmaTarihi',
|
||||
title: 'Oluşturulma Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return dateStore.dateFormat({ date: v.olusturmaTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
filter: {
|
||||
type: 'text'
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
if (usersStore.isVakifDernek || usersStore.isPanelUser) {
|
||||
// 3. PİYANGO AMACI
|
||||
header.push({
|
||||
name: 'piyangoamac',
|
||||
title: 'Piyango Amacı',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoAmaclari.value,
|
||||
listVal: 'id',
|
||||
listText: 'amacAdi',
|
||||
filterId: 'piyangoAmacId'
|
||||
}
|
||||
})
|
||||
|
||||
// 4. DÜZENLEYEN (koşullu)
|
||||
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
||||
header.push({
|
||||
name: 'cekilisTarihi',
|
||||
title: 'Çekiliş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if(v.piyangoAmacId === 3) return ''
|
||||
else return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
name: 'duzenleyen',
|
||||
title: 'Düzenleyen',
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
type: 'text'
|
||||
}
|
||||
})
|
||||
}
|
||||
if (!usersStore.isVakifDernek || usersStore.isPanelUser) {
|
||||
header.push(
|
||||
{
|
||||
name: 'baslangicTarihi',
|
||||
title: 'Başlangıç Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.baslangicTarihi.includes('0001-')) return ''
|
||||
else return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'bitisTarihi',
|
||||
title: 'Bitis Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.bitisTarihi.includes('0001-')) return ''
|
||||
else return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
header.push(
|
||||
{
|
||||
name: 'cekilisYontemi',
|
||||
title: 'Çekiliş Yöntemi',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: cekilisYontemleri.value,
|
||||
listVal: 'id',
|
||||
listText: 'deger',
|
||||
filterId: 'cekilisYontemiId'
|
||||
}
|
||||
// 5. ARACI FİRMA
|
||||
header.push({
|
||||
name: 'araciFirma',
|
||||
title: 'Araci Firma',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.araciFirma || ''
|
||||
},
|
||||
{ name: 'ikramiyeler', title: 'İkramiyeler', style: { width: '15%' } },
|
||||
{
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari.value,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'durumId'
|
||||
}
|
||||
filter: {
|
||||
type: 'text'
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
// 6. DURUM
|
||||
header.push({
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari.value,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'durumId'
|
||||
}
|
||||
})
|
||||
|
||||
// 7. İZİN TARİHİ
|
||||
header.push({
|
||||
name: 'izinTarihi',
|
||||
title: 'İzin Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.izinTarihi || v.izinTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.izinTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 8. İZİN SAYISI
|
||||
header.push({
|
||||
name: 'izinSayisi',
|
||||
title: 'İzin Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.izinSayisi || ''
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'text',
|
||||
range: true
|
||||
}
|
||||
})
|
||||
|
||||
// 9. BAŞLANGIÇ TARİHİ
|
||||
header.push({
|
||||
name: 'baslangicTarihi',
|
||||
title: 'Başlangıç Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.baslangicTarihi || v.baslangicTarihi.includes('0001-')) return ''
|
||||
return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 10. BİTİŞ TARİHİ
|
||||
header.push({
|
||||
name: 'bitisTarihi',
|
||||
title: 'Bitiş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.bitisTarihi || v.bitisTarihi.includes('0001-')) return ''
|
||||
return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 11. ÇEKİLİŞ TARİHİ
|
||||
header.push({
|
||||
name: 'cekilisTarihi',
|
||||
title: 'Çekiliş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.cekilisTarihi || v.cekilisTarihi.includes('0001-')) return ''
|
||||
if (v.piyangoAmacId === 3) return ''
|
||||
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 12. ÇEKİLİŞ GÖREVLİSİ
|
||||
header.push({
|
||||
name: 'cekilisGorevlisi',
|
||||
title: 'Çekiliş Görevlisi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.cekilisGorevlisi || ''
|
||||
},
|
||||
filter: {
|
||||
type: 'text'
|
||||
}
|
||||
})
|
||||
|
||||
// 13. GAZETE İLAN TARİHİ
|
||||
header.push({
|
||||
name: 'gazeteIlanTarihi',
|
||||
title: 'Gazete İlan Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.gazeteIlanTarihi || v.gazeteIlanTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.gazeteIlanTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 14. GAZETE ADI
|
||||
header.push({
|
||||
name: 'gazeteAdi',
|
||||
title: 'Gazete Adı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.gazeteAdi || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 15. İZİN BEDELİ
|
||||
header.push({
|
||||
name: 'izinBedeliTutari',
|
||||
title: 'İzin Bedeli',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.izinBedeliTutari === null || v.izinBedeliTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.izinBedeliTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 16. İKRAMİYE TUTARI
|
||||
header.push({
|
||||
name: 'ikramiyeTutari',
|
||||
title: 'İkramiye Tutarı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.ikramiyeTutari === null || v.ikramiyeTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.ikramiyeTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 17. TEMİNAT TARİHİ
|
||||
header.push({
|
||||
name: 'teminatTarihi',
|
||||
title: 'Teminat Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.teminatTarihi || v.teminatTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.teminatTarihi })
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 18. TEMİNAT SAYISI
|
||||
header.push({
|
||||
name: 'teminatSayisi',
|
||||
title: 'Teminat Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatSayisi || ''
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 19. TEMİNAT BANKASI
|
||||
header.push({
|
||||
name: 'teminatBankasi',
|
||||
title: 'Teminat Bankası',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatBankasi || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 20. TEMİNAT TUTARI
|
||||
header.push({
|
||||
name: 'teminatTutari',
|
||||
title: 'Teminat Tutarı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.teminatTutari === null || v.teminatTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.teminatTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 21. T. PARA CİNSİ
|
||||
header.push({
|
||||
name: 'paraBirimiSembol',
|
||||
title: 'T. Para Cinsi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.paraBirimiSembol || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 22. T. İADE TARİHİ
|
||||
header.push({
|
||||
name: 'teminatIadeTarihi',
|
||||
title: 'T. İade Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.teminatIadeTarihi || v.teminatIadeTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.teminatIadeTarihi })
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 23. T. İADE SAYISI
|
||||
header.push({
|
||||
name: 'teminatIadeSayisi',
|
||||
title: 'T. İade Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatIadeSayisi || ''
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 24. İKRAMİYELER
|
||||
header.push({
|
||||
name: 'ikramiyeler',
|
||||
title: 'İkramiyeler',
|
||||
style: { width: '15%' },
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.ikramiyeler || ''
|
||||
}
|
||||
})
|
||||
|
||||
// Panel User için ek sütunlar
|
||||
if (usersStore.isPanelUser) {
|
||||
header.push({
|
||||
name: 'atanmis',
|
||||
@ -203,17 +368,15 @@
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if (v.atanmis) {
|
||||
return `<strong class="back-grad back-grad-sevk-ok">
|
||||
${v.atananlar}
|
||||
</strong>`
|
||||
${v.atananlar}
|
||||
</strong>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-sevk">
|
||||
Sevk Edilmemiş</span>`
|
||||
Sevk Edilmemiş</span>`
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (usersStore.isPanelUser) {
|
||||
header.push({
|
||||
name: 'basvuruBedelNo',
|
||||
title: 'Muhasebeleştirme Durumu',
|
||||
@ -221,22 +384,23 @@
|
||||
let durum = ''
|
||||
if (v.basvuruBedelNo !== null) {
|
||||
durum += `<strong">Başvuru Bedel No: </strong>
|
||||
${v.basvuruBedelNo}<br>`
|
||||
${v.basvuruBedelNo}<br>`
|
||||
}
|
||||
if (v.izinBedelNo !== null) {
|
||||
durum += `<strong">İzin Bedel No: </strong>
|
||||
${v.izinBedelNo}`
|
||||
${v.izinBedelNo}`
|
||||
}
|
||||
return durum
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return header
|
||||
})
|
||||
|
||||
// tablodan herhangi bir satır tıklayınca çalısır
|
||||
const OpenPiyango = (row: any) => {
|
||||
router.push('detay/' + row.id)
|
||||
router.push('detay/' + row.id + '/piyango-bilgileri')
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
@ -8,7 +8,8 @@
|
||||
title="Piyangolar"
|
||||
listText="Piyango"
|
||||
:apiList="apiList"
|
||||
apiText="Piyango Listesi" />
|
||||
apiText="Piyango Listesi"
|
||||
isUseRoute />
|
||||
</section>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@ -77,7 +78,7 @@
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -89,7 +90,7 @@
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -101,7 +102,7 @@
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -113,7 +114,7 @@
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
between: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -133,7 +134,7 @@
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class='back-grad ${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
return `<span class='${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
@ -151,10 +152,11 @@
|
||||
name: 'atanmis',
|
||||
title: 'Sevk Durumu',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if(v.atanmis){
|
||||
if (v.atanmis) {
|
||||
return `<strong class="back-grad back-grad-sevk-ok">
|
||||
${v.atananlar}
|
||||
</strong>`}else{
|
||||
</strong>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-sevk">
|
||||
Sevk Edilmemiş</span>`
|
||||
}
|
||||
@ -164,7 +166,7 @@
|
||||
|
||||
// tablodan herhangi bir satır tıklayınca çalısır
|
||||
const rwAction = (row: any) => {
|
||||
router.push('/piyangolar/detay/' + row.id)
|
||||
router.push('/piyangolar/detay/' + row.id + '/piyango-bilgileri')
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
@ -6,7 +6,7 @@ import kullaniciAyarlari from './kullanici-ayarlari'
|
||||
|
||||
export default [
|
||||
kullanciYeni,
|
||||
kullaniciDetay,
|
||||
...kullaniciDetay,
|
||||
kullaniciListesi,
|
||||
kullaniciRolleri,
|
||||
kullaniciAyarlari
|
||||
|
||||
@ -1,10 +1,19 @@
|
||||
import KullaniciDetay from '@/module/kullanicilar/views/KullaniciDetay.vue'
|
||||
|
||||
export default {
|
||||
path: '/kullanicilar/detay/:kullaniciId',
|
||||
name: 'KullaniciDetay',
|
||||
component: KullaniciDetay,
|
||||
meta: {
|
||||
authRequired: true
|
||||
export default [
|
||||
{
|
||||
path: '/kullanicilar/detay/:kullaniciId',
|
||||
redirect: (to: Record<string, any>) => ({
|
||||
name: 'PiyangoDetay',
|
||||
params: { kullaniciId: to.params.kullaniciId, tabid: 'kullanici-bilgileri' }
|
||||
})
|
||||
},
|
||||
{
|
||||
path: '/kullanicilar/detay/:kullaniciId/:tabid',
|
||||
name: 'KullaniciDetay',
|
||||
component: KullaniciDetay,
|
||||
meta: {
|
||||
authRequired: true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Kullanıcı Detay" />
|
||||
<Breadcrumb currentPageText="Kullanıcı Detay"/>
|
||||
<tabs :tabList="tabList">
|
||||
<template #birimlistesi>
|
||||
<tab-kullanici-birimleri />
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Kullanıcı Detay" />
|
||||
<tabs :tabList="tabList">
|
||||
<template #kullanicibilgileri>
|
||||
<Breadcrumb currentPageText="Kullanıcı Detay" go="/kullanicilar/kullanici-liste"/>
|
||||
<tabs :tabList="tabList" isUseRoute>
|
||||
<template #kullanici-bilgileri>
|
||||
<tab-kullanici-bilgileri />
|
||||
</template>
|
||||
<template #yetkilioldugupiyangolar>
|
||||
<template #yetkili-oldugu-piyangolar>
|
||||
<tab-kullanici-yetkili-piyangolar />
|
||||
</template>
|
||||
<template #kullaniciloglari>
|
||||
<template #kullanici-loglari>
|
||||
<tab-kullanici-loglari />
|
||||
</template>
|
||||
</tabs>
|
||||
@ -28,8 +28,8 @@
|
||||
if (globalStore.selUser === 0) globalStore.selUser = Number(route.params.kullaniciId)
|
||||
|
||||
const tabList = ref<Record<string, any>[]>([
|
||||
{ text: 'Kullanıcı Bilgileri', id: 'kullanicibilgileri' },
|
||||
{ text: 'Yetkili Olduğu Piyangolar', id: 'yetkilioldugupiyangolar' },
|
||||
{ text: 'Kullanıcı Logları', id: 'kullaniciloglari' }
|
||||
{ text: 'Kullanıcı Bilgileri', id: 'kullanici-bilgileri' },
|
||||
{ text: 'Yetkili Olduğu Piyangolar', id: 'yetkili-oldugu-piyangolar' },
|
||||
{ text: 'Kullanıcı Logları', id: 'kullanici-loglari' }
|
||||
])
|
||||
</script>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb current-page-text="Kullanıcılar Listesi" />
|
||||
<Breadcrumb current-page-text="Kullanıcılar Listesi" go="/"/>
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
v-if="loaded"
|
||||
@ -11,7 +11,8 @@
|
||||
listText="Kullanıcı"
|
||||
addRoute="yeni-kullanici"
|
||||
apiList="Auth/kullaniciList"
|
||||
apiText="Kullanıcı Listesi" />
|
||||
apiText="Kullanıcı Listesi"
|
||||
isUseRoute/>
|
||||
</section>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -88,7 +89,7 @@
|
||||
])
|
||||
const rwAction = (row: any) => {
|
||||
globalStore.selUser = row.id
|
||||
router.push('detay/' + row.id)
|
||||
router.push('detay/' + row.id+'/kullanici-bilgileri')
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
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>
|
||||
@ -2,9 +2,9 @@
|
||||
<div :class="['form-part']" id="display-bilgi">
|
||||
<div class="form-part-title">
|
||||
<h4>Piyango Bilgileri</h4>
|
||||
<div class="form-part-title-buttons" v-if="!isPreview">
|
||||
<div class="form-part-title-buttons" v-if="!isPreview && loaded">
|
||||
<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 &&
|
||||
@ -24,19 +24,118 @@
|
||||
class="button-save">
|
||||
İzin Bedelini Muhasebeleştir
|
||||
</button>
|
||||
<router-link :to="'/piyangolar/detay/' + route.params.piyangoId" class="button-c">
|
||||
<router-link
|
||||
:to="'/piyangolar/detay/' + route.params.piyangoId + '/piyango-bilgileri'"
|
||||
class="button-c">
|
||||
Piyango Detayına Git
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inner-comment waiting-d" v-if="!loaded">Yükleniyor, lütfen bekleyiniz...</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(calculatedOran) + Number(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 +150,27 @@
|
||||
|
||||
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>(() =>
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli !== undefined &&
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani !== undefined
|
||||
? (Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli) *
|
||||
Number(muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani)) /
|
||||
100
|
||||
: 0
|
||||
)
|
||||
|
||||
const GetData = async () => {
|
||||
let data = await dataStore.dataGet(
|
||||
@ -95,12 +209,86 @@
|
||||
Object.assign(piyangoStore.araciUyeData, data)
|
||||
}
|
||||
}
|
||||
|
||||
const GetIzinBedelOranlari = async () => {
|
||||
let data = await dataStore.dataGet('IzinBedelOrani/aktif')
|
||||
if (data !== 'errorfalse') {
|
||||
izinBedelOranlari.value = data
|
||||
}
|
||||
}
|
||||
const GetIkramiyeTotalValues = async () => {
|
||||
let data = await dataStore.dataGet('Ikramiye/Cekilis/' + piyangoStore.selectedLottery +'?pageNumber=0')
|
||||
//todo:page 0
|
||||
if (data !== 'errorfalse') {
|
||||
piyangoIkramiyeStore.totalIkramiyeValue = data.toplamdeger
|
||||
}
|
||||
}
|
||||
const BasvuruBedeliDialog = () => {
|
||||
dialogStore.CreateDialog({
|
||||
title: 'Başvuru Bedelini Muhasebeleştir',
|
||||
id: 'basvurubedelimuhasebelestir',
|
||||
contentHtml: `<table class='table-bordered'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Başvuru Bedeli:</td>
|
||||
<td>${
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli !==
|
||||
undefined
|
||||
? globalStore.toTrLocale(
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli
|
||||
)
|
||||
: 0
|
||||
} ₺</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>KDV (%${
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeliKdvOrani
|
||||
}):</td>
|
||||
<td>
|
||||
${
|
||||
calculatedBasvuruKdv.value !== undefined
|
||||
? globalStore.toTrLocale(calculatedBasvuruKdv.value)
|
||||
: 0
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Toplam Bedel:</td>
|
||||
<td>
|
||||
${
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli !==
|
||||
undefined
|
||||
? globalStore.toTrLocale(
|
||||
Number(
|
||||
muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli
|
||||
) + calculatedBasvuruKdv.value
|
||||
)
|
||||
: 0
|
||||
}
|
||||
</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 +299,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 +372,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,
|
||||
...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
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,19 @@
|
||||
import MuhasebePiyangoDetay from '../views/MuhasebePiyangoDetay.vue'
|
||||
|
||||
export default {
|
||||
path: '/muhasebe/piyango-detay/:piyangoId',
|
||||
name: 'MuhasebePiyangoDetay',
|
||||
component: MuhasebePiyangoDetay,
|
||||
meta: {
|
||||
authRequired: true
|
||||
export default [
|
||||
{
|
||||
path: '/muhasebe/piyango-detay/:piyangoId',
|
||||
redirect: (to:Record<string,any>) => ({
|
||||
name: 'MuhasebePiyangoDetay',
|
||||
params: { piyangoId: to.params.piyangoId, tabid: 'piyango-bilgileri' }
|
||||
})
|
||||
},
|
||||
{
|
||||
path: '/muhasebe/piyango-detay/:piyangoId/:tabid',
|
||||
name: 'MuhasebePiyangoDetay',
|
||||
component: MuhasebePiyangoDetay,
|
||||
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>
|
||||
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Muhasebe / Piyango Detay" />
|
||||
<tabs :tabList="tabList" v-if="loaded">
|
||||
<template #piyangobilgileri>
|
||||
<Breadcrumb currentPageText="Muhasebe / Piyango Detay" go="/muhasebe/piyango-listesi"/>
|
||||
<tabs :tabList="tabList" v-if="loaded" isUseRoute>
|
||||
<template #piyango-bilgileri>
|
||||
<tab-muhasebe-piyango-bilgileri-display />
|
||||
</template>
|
||||
</tabs>
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
const loaded = ref<boolean>(false)
|
||||
const tabList = ref<Record<string, any>[]>([
|
||||
{ text: 'Piyango Bilgileri', id: 'piyangobilgileri' }
|
||||
{ text: 'Piyango Bilgileri', id: 'piyango-bilgileri' }
|
||||
])
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Muhasebe / Piyango Listesi" />
|
||||
<Breadcrumb currentPageText="Muhasebe / Piyango Listesi" go="/" />
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
v-if="loaded"
|
||||
@ -10,7 +10,8 @@
|
||||
title="Piyangolar"
|
||||
listText="Piyango"
|
||||
:apiList="'Cekilis/GetCekilislerListAtanan/' + usersStore.userId"
|
||||
apiText="Piyango Listesi" />
|
||||
apiText="Piyango Listesi"
|
||||
isUseRoute />
|
||||
</section>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -23,6 +24,8 @@
|
||||
const dateStore = useDateStore()
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
const globalStore = useGlobalStore()
|
||||
import { usePiyangoStore } from '@/module/cekilisler/stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
import { usePiyangoDataStore } from '@/module/cekilisler/stores/piyangoDataStore'
|
||||
@ -49,162 +52,316 @@
|
||||
const tableHeader = computed<Record<string, any>[]>(() => {
|
||||
let header: Record<string, any>[] = []
|
||||
|
||||
// 1. PİYANGO ID
|
||||
header.push({
|
||||
name: 'piyangoId',
|
||||
title: 'Piyango ID',
|
||||
sort: true,
|
||||
style: { width: '10%' }
|
||||
})
|
||||
|
||||
// 2. MÜDÜRLÜK
|
||||
header.push({
|
||||
name: 'mudurluk',
|
||||
title: 'Müdürlük',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.mudurluk || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 3. PİYANGO AMACI
|
||||
header.push({
|
||||
name: 'piyangoamac',
|
||||
title: 'Piyango Amacı',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoAmaclari.value,
|
||||
listVal: 'id',
|
||||
listText: 'amacAdi',
|
||||
filterId: 'piyangoAmacId'
|
||||
}
|
||||
})
|
||||
|
||||
// 4. DÜZENLEYEN (koşullu)
|
||||
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
||||
header.push({ name: 'duzenleyen', title: 'Düzenleyen' })
|
||||
}
|
||||
|
||||
header.push(
|
||||
{
|
||||
name: 'piyangoId',
|
||||
title: 'Piyango ID',
|
||||
sort: true,
|
||||
style: { width: '10%' }
|
||||
// 5. ARACI FİRMA
|
||||
header.push({
|
||||
name: 'araciFirma',
|
||||
title: 'Araci Firma',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.araciFirma || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 6. DURUM
|
||||
header.push({
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
{
|
||||
name: 'baslik',
|
||||
title: 'Başlık',
|
||||
sort: true,
|
||||
style: { width: '15%' }
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari.value,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'durumId'
|
||||
}
|
||||
})
|
||||
|
||||
// 7. İZİN TARİHİ
|
||||
header.push({
|
||||
name: 'izinTarihi',
|
||||
title: 'İzin Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.izinTarihi || v.izinTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.izinTarihi })
|
||||
},
|
||||
{
|
||||
name: 'piyangoamac',
|
||||
title: 'Piyango Amacı',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoAmaclari.value,
|
||||
listVal: 'id',
|
||||
listText: 'amacAdi',
|
||||
filterId: 'piyangoAmacId'
|
||||
}
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 8. İZİN SAYISI
|
||||
header.push({
|
||||
name: 'izinSayisi',
|
||||
title: 'İzin Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.izinSayisi || ''
|
||||
},
|
||||
{
|
||||
name: 'olusturmaTarihi',
|
||||
title: 'Oluşturulma Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return dateStore.dateFormat({ date: v.olusturmaTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 9. BAŞLANGIÇ TARİHİ
|
||||
header.push({
|
||||
name: 'baslangicTarihi',
|
||||
title: 'Başlangıç Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.baslangicTarihi || v.baslangicTarihi.includes('0001-')) return ''
|
||||
return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 10. BİTİŞ TARİHİ
|
||||
header.push({
|
||||
name: 'bitisTarihi',
|
||||
title: 'Bitiş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.bitisTarihi || v.bitisTarihi.includes('0001-')) return ''
|
||||
return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 11. ÇEKİLİŞ TARİHİ
|
||||
header.push({
|
||||
name: 'cekilisTarihi',
|
||||
title: 'Çekiliş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.cekilisTarihi || v.cekilisTarihi.includes('0001-')) return ''
|
||||
if (v.piyangoAmacId === 3) return ''
|
||||
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 12. ÇEKİLİŞ GÖREVLİSİ
|
||||
header.push({
|
||||
name: 'cekilisGorevlisi',
|
||||
title: 'Çekiliş Görevlisi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.cekilisGorevlisi || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 13. GAZETE İLAN TARİHİ
|
||||
header.push({
|
||||
name: 'gazeteIlanTarihi',
|
||||
title: 'Gazete İlan Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.gazeteIlanTarihi || v.gazeteIlanTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.gazeteIlanTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
between: true
|
||||
}
|
||||
})
|
||||
|
||||
// 14. GAZETE ADI
|
||||
header.push({
|
||||
name: 'gazeteAdi',
|
||||
title: 'Gazete Adı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.gazeteAdi || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 15. İZİN BEDELİ
|
||||
header.push({
|
||||
name: 'izinBedeliTutari',
|
||||
title: 'İzin Bedeli',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.izinBedeliTutari === null || v.izinBedeliTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.izinBedeliTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 16. İKRAMİYE TUTARI
|
||||
header.push({
|
||||
name: 'ikramiyeTutari',
|
||||
title: 'İkramiye Tutarı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.ikramiyeTutari === null || v.ikramiyeTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.ikramiyeTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 17. TEMİNAT TARİHİ
|
||||
header.push({
|
||||
name: 'teminatTarihi',
|
||||
title: 'Teminat Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.teminatTarihi || v.teminatTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.teminatTarihi })
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 18. TEMİNAT SAYISI
|
||||
header.push({
|
||||
name: 'teminatSayisi',
|
||||
title: 'Teminat Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatSayisi || ''
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 19. TEMİNAT BANKASI
|
||||
header.push({
|
||||
name: 'teminatBankasi',
|
||||
title: 'Teminat Bankası',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatBankasi || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 20. TEMİNAT TUTARI
|
||||
header.push({
|
||||
name: 'teminatTutari',
|
||||
title: 'Teminat Tutarı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.teminatTutari === null || v.teminatTutari === undefined) return ''
|
||||
return globalStore.toTrLocale(v.teminatTutari)
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 21. T. PARA CİNSİ
|
||||
header.push({
|
||||
name: 'paraBirimiSembol',
|
||||
title: 'T. Para Cinsi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.paraBirimiSembol || ''
|
||||
}
|
||||
})
|
||||
|
||||
// 22. T. İADE TARİHİ
|
||||
header.push({
|
||||
name: 'teminatIadeTarihi',
|
||||
title: 'T. İade Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (!v.teminatIadeTarihi || v.teminatIadeTarihi === null) return ''
|
||||
return dateStore.dateFormat({ date: v.teminatIadeTarihi })
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 23. T. İADE SAYISI
|
||||
header.push({
|
||||
name: 'teminatIadeSayisi',
|
||||
title: 'T. İade Sayısı',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.teminatIadeSayisi || ''
|
||||
},
|
||||
sort: true
|
||||
})
|
||||
|
||||
// 24. İKRAMİYELER
|
||||
header.push({
|
||||
name: 'ikramiyeler',
|
||||
title: 'İkramiyeler',
|
||||
style: { width: '15%' },
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.ikramiyeler || ''
|
||||
}
|
||||
})
|
||||
|
||||
// Muhasebe özel sütunlar
|
||||
header.push({
|
||||
name: 'atanmis',
|
||||
title: 'Sevk Durumu',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if (v.atanmis) {
|
||||
return `<strong class="back-grad back-grad-sevk-ok">
|
||||
${v.atananlar}
|
||||
</strong>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-sevk">
|
||||
Sevk Edilmemiş</span>`
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
if (usersStore.isVakifDernek || usersStore.isPanelUser) {
|
||||
header.push({
|
||||
name: 'cekilisTarihi',
|
||||
title: 'Çekiliş Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
header.push({
|
||||
name: 'basvuruBedelNo',
|
||||
title: 'Muhasebeleştirme Durumu',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
let durum = ''
|
||||
if (v.basvuruBedelNo !== null) {
|
||||
durum += `<strong">Başvuru Bedel No: </strong>
|
||||
${v.basvuruBedelNo}<br>`
|
||||
}
|
||||
})
|
||||
}
|
||||
if (!usersStore.isVakifDernek || usersStore.isPanelUser) {
|
||||
header.push(
|
||||
{
|
||||
name: 'baslangicTarihi',
|
||||
title: 'Başlangıç Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.baslangicTarihi.includes('0001-')) return ''
|
||||
else return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'bitisTarihi',
|
||||
title: 'Bitis Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.bitisTarihi.includes('0001-')) return ''
|
||||
else return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||
},
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'date',
|
||||
range: true
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
header.push(
|
||||
{
|
||||
name: 'cekilisYontemi',
|
||||
title: 'Çekiliş Yöntemi',
|
||||
sort: true,
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: cekilisYontemleri.value,
|
||||
listVal: 'id',
|
||||
listText: 'deger',
|
||||
filterId: 'cekilisYontemiId'
|
||||
}
|
||||
},
|
||||
{ name: 'ikramiyeler', title: 'İkramiyeler', style: { width: '15%' } },
|
||||
{
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari.value,
|
||||
listVal: 'id',
|
||||
listText: 'tipAdi',
|
||||
filterId: 'durumId'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'atanmis',
|
||||
title: 'Sevk Durumu',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
if (v.atanmis) {
|
||||
return `<strong class="back-grad back-grad-sevk-ok">
|
||||
${v.atananlar}
|
||||
</strong>`
|
||||
} else {
|
||||
return `<span class="back-grad back-grad-sevk">
|
||||
Sevk Edilmemiş</span>`
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'basvuruBedelNo',
|
||||
title: 'Muhasebeleştirme Durumu',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
let durum = ''
|
||||
if (v.basvuruBedelNo !== null) {
|
||||
durum += `<strong">Başvuru Bedel No: </strong>
|
||||
${v.basvuruBedelNo}<br>`
|
||||
}
|
||||
if (v.izinBedelNo !== null) {
|
||||
durum += `<strong">İzin Bedel No: </strong>
|
||||
${v.izinBedelNo}`
|
||||
}
|
||||
return durum
|
||||
if (v.izinBedelNo !== null) {
|
||||
durum += `<strong">İzin Bedel No: </strong>
|
||||
${v.izinBedelNo}`
|
||||
}
|
||||
return durum
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
return header
|
||||
})
|
||||
|
||||
// tablodan herhangi bir satır tıklayınca çalısır
|
||||
const OpenPiyango = (row: any) => {
|
||||
router.push('/muhasebe/piyango-detay/' + row.id)
|
||||
router.push('/muhasebe/piyango-detay/' + row.id + '/piyango-bilgileri')
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
@ -8,7 +8,8 @@
|
||||
title="Sistem Günlüğü"
|
||||
listText="Log"
|
||||
apiList="Auth/GetOperationLogs"
|
||||
apiText="Sistem Günlüğü Listesi" />
|
||||
apiText="Sistem Günlüğü Listesi"
|
||||
isUseRoute />
|
||||
</section>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
@ -26,19 +27,19 @@
|
||||
return dateStore.dateFormat({ date: v.timestamp })
|
||||
},
|
||||
sort: true,
|
||||
style:{width:'10%'}
|
||||
style: { width: '10%' }
|
||||
},
|
||||
{
|
||||
name: 'userName',
|
||||
title: 'İşlemi yapan',
|
||||
sort: true,
|
||||
style:{width:'20%'}
|
||||
style: { width: '20%' }
|
||||
},
|
||||
{
|
||||
name: 'operationType',
|
||||
title: 'Bölüm',
|
||||
sort: true,
|
||||
style:{width:'15%'}
|
||||
style: { width: '15%' }
|
||||
},
|
||||
{
|
||||
name: 'description',
|
||||
|
||||
@ -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,17 +51,19 @@
|
||||
|
||||
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()
|
||||
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)
|
||||
|
||||
const file = reactive<Record<string,any>>({
|
||||
const file = reactive<Record<string, any>>({
|
||||
title: '',
|
||||
fileUrl: ''
|
||||
})
|
||||
@ -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()
|
||||
})
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Menü Listesi" />
|
||||
<Breadcrumb currentPageText="Menü Listesi" go="/"/>
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
:tableHeader="tableHeader"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb current-page-text="Menu Yonetimi" />
|
||||
<Breadcrumb current-page-text="Menu Yonetimi" go="/site-yonetimi/menu-listesi"/>
|
||||
<div class="form-content">
|
||||
<div class="form-inner-content form-inner-content-left">
|
||||
<div class="form-part">
|
||||
@ -12,6 +12,7 @@
|
||||
<div class="button-c button-save" @click="SaveMenu">Kaydet</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inner-comment waiting-d" v-if="!loaded">Yükleniyor, lütfen bekleyiniz...</div>
|
||||
<div class="form-part-content">
|
||||
<template v-if="loaded">
|
||||
<template v-if="siteManagementMenuStore.menuContentList.length > 0">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Popup Listesi" />
|
||||
<Breadcrumb currentPageText="Popup Listesi" go="/"/>
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
:tableHeader="tableHeader"
|
||||
@ -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'
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb current-page-text="Menu Yonetimi" />
|
||||
<Breadcrumb current-page-text="Popup Yonetimi" />
|
||||
<div class="form-content">
|
||||
<div class="form-inner-content form-inner-content-left">
|
||||
<div class="form-part">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb currentPageText="Sayfa Detay" />
|
||||
<Breadcrumb currentPageText="Sayfa Detay" go="/site-yonetimi/sayfa-listesi"/>
|
||||
<div class="form-part form-title">
|
||||
<div class="form-title-buttons">
|
||||
<button
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<AdminLayout>
|
||||
<Breadcrumb current-page-text="Sayfa Listesi" />
|
||||
<Breadcrumb current-page-text="Sayfa Listesi" go="/" />
|
||||
<section class="section-list">
|
||||
<list-table-content
|
||||
:tableHeader="tableHeader"
|
||||
@ -13,7 +13,8 @@
|
||||
apiText="Sayfa Listesi"
|
||||
:refresh="refresh"
|
||||
:rowActions="rowActions"
|
||||
:rowActionStyle="'width:10%;'" />
|
||||
:rowActionStyle="'width:10%;'"
|
||||
isUseRoute />
|
||||
</section>
|
||||
</AdminLayout>
|
||||
</template>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user