新增静态页面
This commit is contained in:
parent
8d913fed11
commit
082d335b32
14
index.html
14
index.html
@ -4,10 +4,22 @@
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Vite App</title>
|
||||
<title>仓库管理</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
|
||||
<style>
|
||||
#app{
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
font-size: 16px;
|
||||
}
|
||||
</style>
|
||||
</html>
|
||||
|
440
package-lock.json
generated
440
package-lock.json
generated
@ -29,6 +29,7 @@
|
||||
"jsdom": "^25.0.1",
|
||||
"npm-run-all2": "^7.0.1",
|
||||
"prettier": "^3.3.3",
|
||||
"sass-embedded": "^1.83.0",
|
||||
"typescript": "~5.6.3",
|
||||
"vite": "^6.0.1",
|
||||
"vite-plugin-vue-devtools": "^7.6.5",
|
||||
@ -501,6 +502,12 @@
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@bufbuild/protobuf": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmmirror.com/@bufbuild/protobuf/-/protobuf-2.2.3.tgz",
|
||||
"integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.24.0",
|
||||
"resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
|
||||
@ -2425,6 +2432,12 @@
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-builder": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/buffer-builder/-/buffer-builder-0.2.0.tgz",
|
||||
"integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/bundle-name": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-4.1.0.tgz",
|
||||
@ -2537,6 +2550,12 @@
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/colorjs.io": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/colorjs.io/-/colorjs.io-0.5.2.tgz",
|
||||
"integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
@ -3567,6 +3586,12 @@
|
||||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.0.3.tgz",
|
||||
"integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/import-fresh": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
|
||||
@ -4729,12 +4754,400 @@
|
||||
"queue-microtask": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/rxjs": {
|
||||
"version": "7.8.1",
|
||||
"resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz",
|
||||
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/sass-embedded": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded/-/sass-embedded-1.83.0.tgz",
|
||||
"integrity": "sha512-/8cYZeL39evUqe0o//193na51Q1VWZ61qhxioQvLJwOtWIrX+PgNhCyD8RSuTtmzc4+6+waFZf899bfp/MCUwA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.0.0",
|
||||
"buffer-builder": "^0.2.0",
|
||||
"colorjs.io": "^0.5.0",
|
||||
"immutable": "^5.0.2",
|
||||
"rxjs": "^7.4.0",
|
||||
"supports-color": "^8.1.1",
|
||||
"sync-child-process": "^1.0.2",
|
||||
"varint": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"sass": "dist/bin/sass.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sass-embedded-android-arm": "1.83.0",
|
||||
"sass-embedded-android-arm64": "1.83.0",
|
||||
"sass-embedded-android-ia32": "1.83.0",
|
||||
"sass-embedded-android-riscv64": "1.83.0",
|
||||
"sass-embedded-android-x64": "1.83.0",
|
||||
"sass-embedded-darwin-arm64": "1.83.0",
|
||||
"sass-embedded-darwin-x64": "1.83.0",
|
||||
"sass-embedded-linux-arm": "1.83.0",
|
||||
"sass-embedded-linux-arm64": "1.83.0",
|
||||
"sass-embedded-linux-ia32": "1.83.0",
|
||||
"sass-embedded-linux-musl-arm": "1.83.0",
|
||||
"sass-embedded-linux-musl-arm64": "1.83.0",
|
||||
"sass-embedded-linux-musl-ia32": "1.83.0",
|
||||
"sass-embedded-linux-musl-riscv64": "1.83.0",
|
||||
"sass-embedded-linux-musl-x64": "1.83.0",
|
||||
"sass-embedded-linux-riscv64": "1.83.0",
|
||||
"sass-embedded-linux-x64": "1.83.0",
|
||||
"sass-embedded-win32-arm64": "1.83.0",
|
||||
"sass-embedded-win32-ia32": "1.83.0",
|
||||
"sass-embedded-win32-x64": "1.83.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-arm": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.83.0.tgz",
|
||||
"integrity": "sha512-uwFSXzJlfbd4Px189xE5l+cxN8+TQpXdQgJec7TIrb4HEY7imabtpYufpVdqUVwT1/uiis5V4+qIEC4Vl5XObQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-arm64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.83.0.tgz",
|
||||
"integrity": "sha512-GBiCvM4a2rkWBLdYDxI6XYnprfk5U5c81g69RC2X6kqPuzxzx8qTArQ9M6keFK4+iDQ5N9QTwFCr0KbZTn+ZNQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-ia32": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.83.0.tgz",
|
||||
"integrity": "sha512-5ATPdGo2SICqAhiJl/Z8KQ23zH4sGgobGgux0TnrNtt83uHZ+r+To/ubVJ7xTkZxed+KJZnIpolGD8dQyQqoTg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-riscv64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.83.0.tgz",
|
||||
"integrity": "sha512-aveknUOB8GZewOzVn2Uwk+DKcncTR50Q6vtzslNMGbYnxtgQNHzy8A1qVEviNUruex+pHofppeMK4iMPFAbiEQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-x64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.83.0.tgz",
|
||||
"integrity": "sha512-WqIay/72ncyf9Ph4vS742J3a73wZihWmzFUwpn1OD6lme1Aj4eWzWIve5IVnlTEJgcZcDHu6ECID9IZgehJKoA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-darwin-arm64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.83.0.tgz",
|
||||
"integrity": "sha512-XQl9QqgxFFIPm/CzHhmppse5o9ocxrbaAdC2/DAnlAqvYWBBtgFqPjGoYlej13h9SzfvNoogx+y9r+Ap+e+hYg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-darwin-x64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.83.0.tgz",
|
||||
"integrity": "sha512-ERQ7Tvp1kFOW3ux4VDFIxb7tkYXHYc+zJpcrbs0hzcIO5ilIRU2tIOK1OrNwrFO6Qxyf7AUuBwYKLAtIU/Nz7g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-arm": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.83.0.tgz",
|
||||
"integrity": "sha512-baG9RYBJxUFmqwDNC9h9ZFElgJoyO3jgHGjzEZ1wHhIS9anpG+zZQvO8bHx3dBpKEImX+DBeLX+CxsFR9n81gQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-arm64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.83.0.tgz",
|
||||
"integrity": "sha512-syEAVTJt4qhaMLxrSwOWa46zdqHJdnqJkLUK+t9aCr8xqBZLPxSUeIGji76uOehQZ1C+KGFj6n9xstHN6wzOJw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-ia32": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.83.0.tgz",
|
||||
"integrity": "sha512-RRBxQxMpoxu5+XcSSc6QR/o9asEwUzR8AbCS83RaXcdTIHTa/CccQsiAoDDoPlRsMTLqnzs0LKL4CfOsf7zBbA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-arm": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.83.0.tgz",
|
||||
"integrity": "sha512-Yc7u2TelCfBab+PRob9/MNJFh3EooMiz4urvhejXkihTiKSHGCv5YqDdtWzvyb9tY2Jb7YtYREVuHwfdVn3dTQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-arm64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.83.0.tgz",
|
||||
"integrity": "sha512-Y7juhPHClUO2H5O+u+StRy6SEAcwZ+hTEk5WJdEmo1Bb1gDtfHvJaWB/iFZJ2tW0W1e865AZeUrC4OcOFjyAQA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-ia32": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.83.0.tgz",
|
||||
"integrity": "sha512-arQeYwGmwXV8byx5G1PtSzZWW1jbkfR5qrIHMEbTFSAvAxpqjgSvCvrHMOFd73FcMxVaYh4BX9LQNbKinkbEdg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-riscv64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.83.0.tgz",
|
||||
"integrity": "sha512-E6uzlIWz59rut+Z3XR6mLG915zNzv07ISvj3GUNZENdHM7dF8GQ//ANoIpl5PljMQKp89GnYdvo6kj2gnaBf/g==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-x64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.83.0.tgz",
|
||||
"integrity": "sha512-eAMK6tyGqvqr21r9g8BnR3fQc1rYFj85RGduSQ3xkITZ6jOAnOhuU94N5fwRS852Hpws0lXhET+7JHXgg3U18w==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-riscv64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.83.0.tgz",
|
||||
"integrity": "sha512-Ojpi78pTv02sy2fUYirRGXHLY3fPnV/bvwuC2i5LwPQw2LpCcFyFTtN0c5h4LJDk9P6wr+/ZB/JXU8tHIOlK+Q==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-x64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.83.0.tgz",
|
||||
"integrity": "sha512-3iLjlXdoPfgZRtX4odhRvka1BQs5mAXqfCtDIQBgh/o0JnGPzJIWWl9bYLpHxK8qb+uyVBxXYgXpI0sCzArBOw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-win32-arm64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.83.0.tgz",
|
||||
"integrity": "sha512-iOHw/8/t2dlTW3lOFwG5eUbiwhEyGWawivlKWJ8lkXH7fjMpVx2VO9zCFAm8RvY9xOHJ9sf1L7g5bx3EnNP9BQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-win32-ia32": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.83.0.tgz",
|
||||
"integrity": "sha512-2PxNXJ8Pad4geVcTXY4rkyTr5AwbF8nfrCTDv0ulbTvPhzX2mMKEGcBZUXWn5BeHZTBc6whNMfS7d5fQXR9dDQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-win32-x64": {
|
||||
"version": "1.83.0",
|
||||
"resolved": "https://registry.npmmirror.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.83.0.tgz",
|
||||
"integrity": "sha512-muBXkFngM6eLTNqOV0FQi7Dv9s+YRQ42Yem26mosdan/GmJQc81deto6uDTgrYn+bzFNmiXcOdfm+0MkTWK3OQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded/node_modules/supports-color": {
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
|
||||
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/saxes": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz",
|
||||
@ -5009,6 +5422,27 @@
|
||||
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/sync-child-process": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/sync-child-process/-/sync-child-process-1.0.2.tgz",
|
||||
"integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"sync-message-port": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sync-message-port": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/sync-message-port/-/sync-message-port-1.1.3.tgz",
|
||||
"integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/synckit": {
|
||||
"version": "0.9.2",
|
||||
"resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.9.2.tgz",
|
||||
@ -5290,6 +5724,12 @@
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/varint": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/varint/-/varint-6.0.0.tgz",
|
||||
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-6.0.3.tgz",
|
||||
|
@ -35,6 +35,7 @@
|
||||
"jsdom": "^25.0.1",
|
||||
"npm-run-all2": "^7.0.1",
|
||||
"prettier": "^3.3.3",
|
||||
"sass-embedded": "^1.83.0",
|
||||
"typescript": "~5.6.3",
|
||||
"vite": "^6.0.1",
|
||||
"vite-plugin-vue-devtools": "^7.6.5",
|
||||
|
130
src/App.vue
130
src/App.vue
@ -1,85 +1,75 @@
|
||||
<script setup lang="ts">
|
||||
import { RouterLink, RouterView } from 'vue-router'
|
||||
import HelloWorld from './components/HelloWorld.vue'
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<header>
|
||||
<img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
|
||||
|
||||
<div class="wrapper">
|
||||
<HelloWorld msg="You did it!" />
|
||||
|
||||
<nav>
|
||||
<RouterLink to="/">Home</RouterLink>
|
||||
<RouterLink to="/about">About</RouterLink>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<RouterView />
|
||||
<router-view></router-view>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
header {
|
||||
line-height: 1.5;
|
||||
max-height: 100vh;
|
||||
<style lang="scss" scoped>
|
||||
/* 禁用双击缩放和捏合缩放 */
|
||||
* {
|
||||
touch-action: pan-y; /* 允许垂直滚动,禁止双击缩放和捏合缩放 */
|
||||
user-select: none; /* 禁止文本选择 */
|
||||
-webkit-user-select: none; /* Safari */
|
||||
-khtml-user-select: none; /* Konqueror HTML */
|
||||
-moz-user-select: none; /* Old versions of Firefox */
|
||||
-ms-user-select: none; /* Internet Explorer/Edge */
|
||||
-webkit-touch-callout: none; /* iOS Safari */
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: block;
|
||||
margin: 0 auto 2rem;
|
||||
/* 禁用缩放 */
|
||||
* {
|
||||
-ms-touch-action: pan-y; /* IE/Edge */
|
||||
touch-action: pan-y; /* Other browsers */
|
||||
-webkit-tap-highlight-color: transparent; /* Remove tap highlight color */
|
||||
-webkit-text-size-adjust: 100%; /* Prevent text scaling in mobile browsers */
|
||||
-moz-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
}
|
||||
/* 阻止页面缩放 */
|
||||
html {
|
||||
touch-action: manipulation;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin-top: 2rem;
|
||||
body {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-moz-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
}
|
||||
.van-popup{
|
||||
background-color:#fff!important;
|
||||
}
|
||||
.van-toast{
|
||||
font-size: 16px!important;
|
||||
color: #fff!important;
|
||||
background-color:#4a4a4b!important;
|
||||
}
|
||||
.van-dialog {
|
||||
top: 45%;
|
||||
width: var(--van-dialog-width)!important;
|
||||
overflow: hidden;
|
||||
font-size: var(--van-dialog-font-size);
|
||||
background: var(--van-dialog-background);
|
||||
border-radius: var(--van-dialog-radius);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
transition: var(--van-dialog-transition);
|
||||
transition-property: transform, opacity;
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active {
|
||||
color: var(--color-text);
|
||||
input[type='number'] {
|
||||
-moz-appearance:textfield;
|
||||
}
|
||||
|
||||
nav a.router-link-exact-active:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
nav a {
|
||||
display: inline-block;
|
||||
padding: 0 1rem;
|
||||
border-left: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
nav a:first-of-type {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
header {
|
||||
display: flex;
|
||||
place-items: center;
|
||||
padding-right: calc(var(--section-gap) / 2);
|
||||
}
|
||||
|
||||
.logo {
|
||||
margin: 0 2rem 0 0;
|
||||
}
|
||||
|
||||
header .wrapper {
|
||||
display: flex;
|
||||
place-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
nav {
|
||||
text-align: left;
|
||||
margin-left: -1rem;
|
||||
font-size: 1rem;
|
||||
|
||||
padding: 1rem 0;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
input[type=number]::-webkit-inner-spin-button,
|
||||
input[type=number]::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -12,6 +12,6 @@ import 'vant/lib/index.css'
|
||||
const app = createApp(App).use(Vant)
|
||||
|
||||
app.use(createPinia())
|
||||
app.use(router).use(createPinia())
|
||||
app.use(router)
|
||||
|
||||
app.mount('#app')
|
||||
|
@ -5,17 +5,57 @@ const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
path: '/home',
|
||||
name: 'home',
|
||||
component: HomeView,
|
||||
children:[
|
||||
{
|
||||
path: '/process',
|
||||
name: 'process',
|
||||
component: () => import('../views/maintenance/m-process.vue'),
|
||||
},
|
||||
{
|
||||
path: '/requirements',
|
||||
name: 'requirements',
|
||||
component: () => import('../views/maintenance/m-requirements.vue'),
|
||||
},
|
||||
{
|
||||
path: '/factory',
|
||||
name: 'factory',
|
||||
component: () => import('../views/maintenance/m-factory.vue'),
|
||||
},
|
||||
{
|
||||
path: '/other',
|
||||
name: 'other',
|
||||
component: () => import('../views/maintenance/m-other.vue'),
|
||||
},
|
||||
{
|
||||
path: '/quality',
|
||||
name: 'quality',
|
||||
component: () => import('../views/lecher/l-quality.vue'),
|
||||
},
|
||||
{
|
||||
path: '/flaws',
|
||||
name: 'flaws',
|
||||
component: () => import('../views/lecher/l-flaws.vue'),
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
name: 'about',
|
||||
component: () => import('../views/AboutView.vue'),
|
||||
},
|
||||
{
|
||||
path: '/detail',
|
||||
name: 'detail',
|
||||
component: () => import('../views/maintenance/p-details.vue'),
|
||||
},
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
path: '/about',
|
||||
name: 'about',
|
||||
// route level code-splitting
|
||||
// this generates a separate chunk (About.[hash].js) for this route
|
||||
// which is lazy-loaded when the route is visited.
|
||||
component: () => import('../views/AboutView.vue'),
|
||||
path: "/:catchAll(.*)",
|
||||
name: "404",
|
||||
component: () => import("../views/NotFound.vue"),
|
||||
},
|
||||
],
|
||||
})
|
||||
|
88
src/style.css
Normal file
88
src/style.css
Normal file
@ -0,0 +1,88 @@
|
||||
:root {
|
||||
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
font-weight: 400;
|
||||
|
||||
color-scheme: light dark;
|
||||
color: rgba(255, 255, 255, 0.87);
|
||||
background-color: #242424;
|
||||
|
||||
font-synthesis: none;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 500;
|
||||
color: #646cff;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
a:hover {
|
||||
color: #535bf2;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
place-items: center;
|
||||
min-width: 320px;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3.2em;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.6em 1.2em;
|
||||
font-size: 1em;
|
||||
font-weight: 500;
|
||||
font-family: inherit;
|
||||
background-color: #1a1a1a;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.25s;
|
||||
}
|
||||
button:hover {
|
||||
border-color: #646cff;
|
||||
}
|
||||
button:focus,
|
||||
button:focus-visible {
|
||||
outline: 4px auto -webkit-focus-ring-color;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
#app {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
color: #213547;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
a:hover {
|
||||
color: #747bff;
|
||||
}
|
||||
button {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
}
|
||||
|
||||
input[type='number'] {
|
||||
-moz-appearance:textfield;
|
||||
}
|
||||
input[type=number]::-webkit-inner-spin-button,
|
||||
input[type=number]::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;margin: 0;
|
||||
}
|
||||
|
@ -1,15 +1,41 @@
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref } from 'vue'
|
||||
import router from '@/router'
|
||||
|
||||
const ListData =ref([] as any[])
|
||||
|
||||
onMounted(() => {
|
||||
ListData.value=[{name:'工序项维护',url:'/process'},{name:'工艺要求维护',url:'/requirements'},
|
||||
{name:'工厂维护',url:'/factory'},{name:'其他要求项维护',url:'/other'},{name:'色胚质检项维护',url:'/quality'},{name:'色胚质检瑕疵维护',url:'/flaws'}
|
||||
]
|
||||
})
|
||||
|
||||
const gotoLink = (item: any) => {
|
||||
router.push({path: item.url})
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<div class="about">
|
||||
<h1>This is an about page</h1>
|
||||
<div v-for="(item,index) in ListData" :key="index">
|
||||
<p class="btn" @click="gotoLink(item)" v-if="item.name">{{ item.name }}</p>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.btn {
|
||||
padding: 15px 0;
|
||||
margin: 10px;
|
||||
background-color: #35a5f7;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
<style>
|
||||
@media (min-width: 1024px) {
|
||||
.about {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
input[type='number'] {
|
||||
-moz-appearance: textfield;
|
||||
}
|
||||
|
||||
input[type=number]::-webkit-inner-spin-button,
|
||||
input[type=number]::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<script setup lang="ts">
|
||||
import TheWelcome from '../components/TheWelcome.vue'
|
||||
</script>
|
||||
<script lang="ts" setup>
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<main>
|
||||
<TheWelcome />
|
||||
</main>
|
||||
<RouterView />
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
|
8
src/views/NotFound.vue
Normal file
8
src/views/NotFound.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<div style="width: 100vw; text-align: center">
|
||||
<h2>404 页面错误请退出重新登录</h2>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
129
src/views/lecher/l-flaws.vue
Normal file
129
src/views/lecher/l-flaws.vue
Normal file
@ -0,0 +1,129 @@
|
||||
<script lang="ts" setup>
|
||||
|
||||
import { ref } from 'vue'
|
||||
|
||||
const showPop = ref(false)
|
||||
const list= ref([{}] as any[])
|
||||
const form = ref({list:[{}]} as any)
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
showPop.value=true
|
||||
}
|
||||
const edit = (item:any) =>{
|
||||
console.log(item)
|
||||
showPop.value=true
|
||||
}
|
||||
const submit =()=>{
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="色胚质检瑕疵维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="grid-container">
|
||||
<div class="grid-item">序号</div>
|
||||
<div class="grid-item">瑕疵名称</div>
|
||||
<div class="grid-item">操作</div>
|
||||
</div>
|
||||
<div class="grid-container" v-for="(item,index) in list" :key="index">
|
||||
<div class="grid-item">{{item.name}}</div>
|
||||
<div class="grid-item">{{item.id}}</div>
|
||||
<div
|
||||
class="grid-item"><span style="color: #35a5f7" @click="edit(item)">编辑</span> <span
|
||||
style="color: red">删除
|
||||
</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-popup v-model:show="showPop" style="width: 80%" round>
|
||||
<div>
|
||||
<h3 style="text-align: center">新增</h3>
|
||||
<van-cell-group inset>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="瑕疵名称"
|
||||
label="瑕疵名称"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
</van-cell-group>
|
||||
<div class="a-c">
|
||||
<van-button type="danger" @click="showPop=false">取消</van-button>
|
||||
<van-button type="primary" @click="submit">确认</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 3fr 2fr;
|
||||
.grid-item{
|
||||
border: 1px solid #f2f2f2;
|
||||
text-align: center;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card{
|
||||
margin: 10px 15px;
|
||||
padding: 5px;
|
||||
border: 1px solid #02a7f0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.a-b{
|
||||
display:flex;
|
||||
margin-bottom:10px;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
}
|
||||
::v-deep(.van-field__control){
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
.a-c{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
margin:15px;
|
||||
::v-deep(.van-button--normal){
|
||||
padding: 5px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
</style>
|
126
src/views/lecher/l-quality.vue
Normal file
126
src/views/lecher/l-quality.vue
Normal file
@ -0,0 +1,126 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
|
||||
const list = ref([{list:[{}]}] as any[])
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
list.value.push([])
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="色胚质检项维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="card" v-for="(item,index) in list" :key="index">
|
||||
<van-cell-group inset>
|
||||
<div class="a-b">
|
||||
<van-icon name="clear" color="red" size="25" @click="list.splice(index,1)"/>
|
||||
<van-field
|
||||
v-model="item.name"
|
||||
name="质检项名称"
|
||||
label="质检项名称"
|
||||
colon
|
||||
class="a-c"
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-button type="primary">新增选项</van-button>
|
||||
</div>
|
||||
<van-field name="是否必填" label="是否必填" colon label-width="7.5em">
|
||||
<template #input>
|
||||
<van-radio-group v-model="item.type1" direction="horizontal">
|
||||
<van-radio name="1">是</van-radio>
|
||||
<van-radio name="2">否</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
<div class="grid-container">
|
||||
<div class="grid-item"></div>
|
||||
<div class="grid-item">内容</div>
|
||||
<div class="grid-item">是否默认</div>
|
||||
<div class="grid-item">操作</div>
|
||||
</div>
|
||||
<div class="grid-container" v-for="(itemSecond,indexSecond) in item.list" :key="indexSecond">
|
||||
<div class="grid-item">选项</div>
|
||||
<div class="grid-item">{{itemSecond.name}}</div>
|
||||
<div class="grid-item" style="display: flex;align-items: center;justify-content: center">
|
||||
<van-checkbox-group v-model="itemSecond.checked">
|
||||
<van-checkbox name="1"></van-checkbox>
|
||||
</van-checkbox-group></div>
|
||||
<div class="grid-item" style="color: red">删除</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1.5fr 1.5fr;
|
||||
.grid-item{
|
||||
border: 1px solid #f2f2f2;
|
||||
text-align: center;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card{
|
||||
margin: 8px 10px;
|
||||
padding: 5px;
|
||||
border: 1px solid #02a7f0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.a-b{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
::v-deep(.van-button--normal){
|
||||
padding: 5px;
|
||||
height: 30px;
|
||||
width: 7em;
|
||||
}
|
||||
}
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
::v-deep(.van-cell-group--inset){
|
||||
margin: 0;
|
||||
}
|
||||
.a-c{
|
||||
::v-deep(.van-field__control){
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
169
src/views/maintenance/m-factory.vue
Normal file
169
src/views/maintenance/m-factory.vue
Normal file
@ -0,0 +1,169 @@
|
||||
<script lang="ts" setup>
|
||||
|
||||
import { ref } from 'vue'
|
||||
|
||||
const showPop = ref(false)
|
||||
const list= ref([{}] as any[])
|
||||
const form = ref({list:[{}]} as any)
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
showPop.value=true
|
||||
}
|
||||
const edit = (item:any) =>{
|
||||
console.log(item)
|
||||
showPop.value=true
|
||||
}
|
||||
const submit =()=>{
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="工厂维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="grid-container">
|
||||
<div class="grid-item">编号</div>
|
||||
<div class="grid-item">工厂</div>
|
||||
<div class="grid-item">操作</div>
|
||||
</div>
|
||||
<div class="grid-container" v-for="(item,index) in list" :key="index">
|
||||
<div class="grid-item">{{item.name}}</div>
|
||||
<div class="grid-item">{{item.id}}</div>
|
||||
<div
|
||||
class="grid-item"><span style="color: #35a5f7" @click="edit(item)">编辑</span> <span
|
||||
style="color: red">删除
|
||||
</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-popup v-model:show="showPop" style="width: 80%" round>
|
||||
<div>
|
||||
<h3 style="text-align: center">新增工厂</h3>
|
||||
<van-cell-group inset>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="工厂名称"
|
||||
label="工厂名称"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="工厂编号"
|
||||
label="工厂编号"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="染缸名称"
|
||||
label="染缸名称"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="染缸数量"
|
||||
label="染缸数量"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="最大可染"
|
||||
label="最大可染"
|
||||
colon
|
||||
label-width="5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-field name="类型" label="类型" colon label-width="5em">
|
||||
<template #input>
|
||||
<van-radio-group v-model="form.type" direction="horizontal">
|
||||
<van-radio name="1">启用</van-radio>
|
||||
<van-radio name="2">禁用</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
<div class="a-c">
|
||||
<van-button type="danger" @click="showPop=false">取消</van-button>
|
||||
<van-button type="primary" @click="submit">确认</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 3fr 2fr;
|
||||
.grid-item{
|
||||
border: 1px solid #f2f2f2;
|
||||
text-align: center;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card{
|
||||
margin: 10px 15px;
|
||||
padding: 5px;
|
||||
border: 1px solid #02a7f0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.a-b{
|
||||
display:flex;
|
||||
margin-bottom:10px;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
}
|
||||
::v-deep(.van-field__control){
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
.a-c{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
margin:15px;
|
||||
::v-deep(.van-button--normal){
|
||||
padding: 5px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
</style>
|
125
src/views/maintenance/m-other.vue
Normal file
125
src/views/maintenance/m-other.vue
Normal file
@ -0,0 +1,125 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
|
||||
const list = ref([{list:[{}]}] as any[])
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
list.value.push([])
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="其他要求项维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="card" v-for="(item,index) in list" :key="index">
|
||||
<van-cell-group inset>
|
||||
<div class="a-b">
|
||||
<van-icon name="clear" color="red" size="25" @click="list.splice(index,1)"/>
|
||||
<van-field
|
||||
v-model="item.name"
|
||||
name="要求项名称"
|
||||
label="要求项名称"
|
||||
colon
|
||||
class="a-c"
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<van-button type="primary">新增选项</van-button>
|
||||
</div>
|
||||
<van-field name="是否必填" label="是否必填" colon label-width="7.5em">
|
||||
<template #input>
|
||||
<van-radio-group v-model="item.type1" direction="horizontal">
|
||||
<van-radio name="1">是</van-radio>
|
||||
<van-radio name="2">否</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
<div class="grid-container">
|
||||
<div class="grid-item"></div>
|
||||
<div class="grid-item">内容</div>
|
||||
<div class="grid-item">是否默认</div>
|
||||
<div class="grid-item">操作</div>
|
||||
</div>
|
||||
<div class="grid-container" v-for="(itemSecond,indexSecond) in item.list" :key="indexSecond">
|
||||
<div class="grid-item">选项</div>
|
||||
<div class="grid-item">{{itemSecond.name}}</div>
|
||||
<div class="grid-item" style="display: flex;align-items: center;justify-content: center">
|
||||
<van-checkbox-group v-model="itemSecond.checked">
|
||||
<van-checkbox name="1"></van-checkbox>
|
||||
</van-checkbox-group></div>
|
||||
<div class="grid-item" style="color: red">删除</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1.5fr 1.5fr;
|
||||
.grid-item{
|
||||
border: 1px solid #f2f2f2;
|
||||
text-align: center;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card{
|
||||
margin: 8px 10px;
|
||||
padding: 5px;
|
||||
border: 1px solid #02a7f0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.a-b{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
::v-deep(.van-button--normal){
|
||||
padding: 5px;
|
||||
height: 30px;
|
||||
width: 7em;
|
||||
}
|
||||
}
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
::v-deep(.van-cell-group--inset){
|
||||
margin: 0;
|
||||
}
|
||||
.a-c{
|
||||
::v-deep(.van-field__control){
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
}
|
||||
</style>
|
66
src/views/maintenance/m-process.vue
Normal file
66
src/views/maintenance/m-process.vue
Normal file
@ -0,0 +1,66 @@
|
||||
<script lang="ts" setup>
|
||||
|
||||
import { ref } from 'vue'
|
||||
import router from '@/router'
|
||||
|
||||
const list= ref([] as any[])
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
router.push('/detail')
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="工序项维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="grid-container">
|
||||
<div class="grid-item">工序</div>
|
||||
<div class="grid-item">序号</div>
|
||||
<div class="grid-item">操作</div>
|
||||
</div>
|
||||
<div class="grid-container" v-for="(item,index) in list" :key="index">
|
||||
<div class="grid-item">{{item.name}}</div>
|
||||
<div class="grid-item">{{item.id}}</div>
|
||||
<div class="grid-item" style="color: red">删除</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
.grid-item{
|
||||
text-align: center;
|
||||
border: 1px solid #f2f2f2;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
141
src/views/maintenance/m-requirements.vue
Normal file
141
src/views/maintenance/m-requirements.vue
Normal file
@ -0,0 +1,141 @@
|
||||
<script lang="ts" setup>
|
||||
|
||||
import { ref } from 'vue'
|
||||
|
||||
const showPop = ref(false)
|
||||
const list= ref([{}] as any[])
|
||||
const form = ref({list:[{}]} as any)
|
||||
|
||||
const onClickLeft = () =>{
|
||||
history.back()
|
||||
}
|
||||
const onClickRight=()=>{
|
||||
showPop.value=true
|
||||
}
|
||||
const addLittle = (item:any) =>{
|
||||
console.log(item)
|
||||
showPop.value=true
|
||||
}
|
||||
const submit =()=>{
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="工艺要求维护"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
right-text="新增"
|
||||
@click-left="onClickLeft"
|
||||
@click-right="onClickRight"
|
||||
/>
|
||||
<div class="content">
|
||||
<div class="card" v-for="(item,index) in list" :key="index">
|
||||
<div
|
||||
style="display: flex;align-items: center;justify-content: space-between;border-bottom: 1px solid #d7d7d7;padding: 5px">
|
||||
<p>染色后做缩</p>
|
||||
<p style="display: flex;align-items: center"> <van-icon name="add" color="red" size="25"
|
||||
@click="addLittle(item)"/> 新增</p>
|
||||
</div>
|
||||
<div class="grid-container">
|
||||
<div class="grid-item" v-for="(itemSecond,indexSecond) in item.list" :key="indexSecond">
|
||||
缩率<2%
|
||||
<van-icon name="clear" color="red" size="25" @click="list.splice(indexSecond,1)"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-popup v-model:show="showPop" style="width: 80%" round>
|
||||
<div>
|
||||
<h3 style="text-align: center">新增</h3>
|
||||
<van-cell-group inset>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="大类"
|
||||
label="大类"
|
||||
colon
|
||||
label-width="3.5em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
<div v-for="(item,index) in form.list" :key="index" class="a-b">
|
||||
<van-icon name="add" color="red" size="25" v-if="index===0" @click="form.list.push({})"/>
|
||||
<van-icon name="clear" color="red" size="25" v-if="index!=0" @click="form.list.splice(index,1)"/>
|
||||
<van-field
|
||||
v-model="item.type"
|
||||
name="小类"
|
||||
label="小类"
|
||||
colon
|
||||
label-width="3em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
<div class="a-c">
|
||||
<van-button type="danger" @click="showPop=false">取消</van-button>
|
||||
<van-button type="primary" @click="submit">确认</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
.grid-item{
|
||||
text-align: center;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card{
|
||||
margin: 10px 15px;
|
||||
padding: 5px;
|
||||
border: 1px solid #02a7f0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.a-b{
|
||||
display:flex;
|
||||
margin-bottom:10px;
|
||||
::v-deep(.van-cell){
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
}
|
||||
::v-deep(.van-field__control){
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
.a-c{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
margin:15px;
|
||||
::v-deep(.van-button--normal){
|
||||
padding: 5px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
</style>
|
190
src/views/maintenance/p-details.vue
Normal file
190
src/views/maintenance/p-details.vue
Normal file
@ -0,0 +1,190 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import { ref } from 'vue'
|
||||
|
||||
const form = ref({xx:[{}],scx:[{}]} as any)
|
||||
const showPicker = ref(false)
|
||||
const popuList = ref([] as any[])
|
||||
const dataType = ref('' as any)
|
||||
|
||||
const pickerOpen = () =>{
|
||||
if(dataType.value==='isNull'){
|
||||
popuList.value=[{text:'是',value:'是'},{text:'否',value:'否'}]
|
||||
}
|
||||
}
|
||||
const chooseItem = (type:any) =>{
|
||||
dataType.value=type
|
||||
showPicker.value=true
|
||||
}
|
||||
const pickerConfirm = (val:any) =>{
|
||||
form.value[dataType.value]=val.selectedValues[0]
|
||||
showPickerCancel()
|
||||
}
|
||||
const showPickerCancel = () =>{
|
||||
showPicker.value=false
|
||||
}
|
||||
|
||||
const onSubmit = () =>{
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex">
|
||||
<van-nav-bar
|
||||
title="工序详情"
|
||||
/>
|
||||
<div class="content">
|
||||
<van-form @submit="onSubmit">
|
||||
<van-cell-group inset>
|
||||
<van-field name="checkbox" label="类型" colon label-width="6em">
|
||||
<template #input>
|
||||
<van-radio-group v-model="form.type" direction="horizontal">
|
||||
<van-radio name="1">普通</van-radio>
|
||||
<van-radio name="2">特殊</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
<van-field
|
||||
v-model="form.name"
|
||||
name="工序名称"
|
||||
label="工序名称"
|
||||
colon
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写工序名称' }]"
|
||||
/>
|
||||
<van-field
|
||||
v-model="form.serialNum"
|
||||
name="序号"
|
||||
label="序号"
|
||||
colon
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写序号' }]"
|
||||
/>
|
||||
|
||||
<van-field name="checkbox" label="需上传项" colon label-width="6em">
|
||||
<template #input>
|
||||
<van-icon name="add" color="red" size="25" @click="form.scx.push({})"/>
|
||||
</template>
|
||||
</van-field>
|
||||
|
||||
<div class="card" v-for="(item,index) in form.scx" :key="index">
|
||||
<van-field
|
||||
v-model="item.name"
|
||||
name="上传项名称"
|
||||
label="上传项名称"
|
||||
colon
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写上传项名称' }]"
|
||||
/>
|
||||
<van-field name="类型" label="类型" colon label-width="6em">
|
||||
<template #input>
|
||||
<van-radio-group v-model="item.type1" direction="horizontal">
|
||||
<van-radio name="1">填空</van-radio>
|
||||
<van-radio name="2">选择</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
<template v-if="item.type1==1">
|
||||
<van-field name="checkbox" label="填写内容" colon label-width="6em">
|
||||
<template #input>
|
||||
<van-checkbox-group v-model="item.type1" direction="horizontal" shape="square">
|
||||
<van-checkbox name="1">文字</van-checkbox>
|
||||
<van-checkbox name="2">图片</van-checkbox>
|
||||
</van-checkbox-group>
|
||||
</template>
|
||||
</van-field>
|
||||
</template>
|
||||
<template v-if="item.type1==2">
|
||||
<div class="a-b">
|
||||
<p style="width: 8.5em;text-align: end">选项内容:</p>
|
||||
<div>
|
||||
<div v-for="(itemSecond,indexSecond) in item.xx" :key="indexSecond" class="a-b">
|
||||
<van-icon name="add" color="red" size="25" v-if="indexSecond===0" @click="item.xx.push({})"/>
|
||||
<van-icon name="clear" color="red" size="25" v-if="indexSecond!=0" @click="item.xx.splice(indexSecond,1)"/>
|
||||
<van-field
|
||||
v-model="itemSecond.name"
|
||||
readonly
|
||||
@click="chooseItem('')"
|
||||
:rules="[{ required: true, message: '请选择' }]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<van-field
|
||||
v-model="form.isNull"
|
||||
name="是否必填"
|
||||
label="是否必填"
|
||||
colon
|
||||
readonly
|
||||
@click="chooseItem('isNull')"
|
||||
label-width="6em"
|
||||
:rules="[{ required: true, message: '请填写' }]"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</van-cell-group>
|
||||
|
||||
<div style="margin: 16px;">
|
||||
<van-button round block type="primary" native-type="submit">
|
||||
提交
|
||||
</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--选择框-->
|
||||
<van-popup v-model:show="showPicker" round position="bottom" @open="pickerOpen">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="popuList"
|
||||
@confirm="pickerConfirm"
|
||||
@cancel="showPickerCancel"
|
||||
ref="pickerRef"
|
||||
/>
|
||||
</van-popup>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flex{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
.van-nav-bar{
|
||||
width: 100%;
|
||||
}
|
||||
.content{
|
||||
flex: 1;
|
||||
padding: 0 10px;
|
||||
.radio-label{
|
||||
margin-right: 15px;
|
||||
}
|
||||
.card{
|
||||
border: 1px solid #d7d7d7;
|
||||
border-radius: 6px;
|
||||
box-shadow:2px 2px 5px rgba(0, 0, 0, 0.5);
|
||||
margin: 10px;
|
||||
}
|
||||
::v-deep(.van-field){
|
||||
font-size: 16px;
|
||||
}
|
||||
::v-deep(.van-field__label){
|
||||
text-align: end;
|
||||
}
|
||||
.a-b{
|
||||
display:flex;
|
||||
margin-bottom:10px;
|
||||
::v-deep(.van-field__control){
|
||||
border: 1px solid #d7d7d7;
|
||||
}
|
||||
::v-deep(.van-cell){
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue
Block a user