Commit 24852213 authored by sixiaofeng's avatar sixiaofeng

1

parent bab00865
...@@ -2370,6 +2370,16 @@ ...@@ -2370,6 +2370,16 @@
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"anymatch": { "anymatch": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
...@@ -2420,6 +2430,39 @@ ...@@ -2420,6 +2430,39 @@
"readdirp": "~3.6.0" "readdirp": "~3.6.0"
} }
}, },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-6.0.0.tgz?cache=0&sync_timestamp=1629586119976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-6.0.0.tgz",
"integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=",
"dev": true,
"optional": true,
"requires": {
"@types/parse-json": "^4.0.0",
"import-fresh": "^3.1.0",
"parse-json": "^5.0.0",
"path-type": "^4.0.0",
"yaml": "^1.7.2"
},
"dependencies": {
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz",
"integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=",
"dev": true,
"optional": true
}
}
},
"define-property": { "define-property": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
...@@ -2522,6 +2565,49 @@ ...@@ -2522,6 +2565,49 @@
"worker-rpc": "^0.1.0" "worker-rpc": "^0.1.0"
} }
}, },
"fork-ts-checker-webpack-plugin-v5": {
"version": "npm:fork-ts-checker-webpack-plugin@5.2.1",
"resolved": "https://registry.nlark.com/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-5.2.1.tgz",
"integrity": "sha1-eTJthpeXkG+osk4qvPlCH8gFRQ0=",
"dev": true,
"optional": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@types/json-schema": "^7.0.5",
"chalk": "^4.1.0",
"cosmiconfig": "^6.0.0",
"deepmerge": "^4.2.2",
"fs-extra": "^9.0.0",
"memfs": "^3.1.2",
"minimatch": "^3.0.4",
"schema-utils": "2.7.0",
"semver": "^7.3.2",
"tapable": "^1.0.0"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
"integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz",
"integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=",
"dev": true,
"optional": true,
"requires": {
"lru-cache": "^6.0.0"
}
}
}
},
"globby": { "globby": {
"version": "9.2.0", "version": "9.2.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
...@@ -2538,6 +2624,13 @@ ...@@ -2538,6 +2624,13 @@
"slash": "^2.0.0" "slash": "^2.0.0"
} }
}, },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
"ignore": { "ignore": {
"version": "4.0.6", "version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
...@@ -2696,6 +2789,18 @@ ...@@ -2696,6 +2789,18 @@
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
} }
}, },
"schema-utils": {
"version": "2.7.0",
"resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-2.7.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz",
"integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=",
"dev": true,
"optional": true,
"requires": {
"@types/json-schema": "^7.0.4",
"ajv": "^6.12.2",
"ajv-keywords": "^3.4.1"
}
},
"semver": { "semver": {
"version": "5.7.1", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
...@@ -2708,6 +2813,16 @@ ...@@ -2708,6 +2813,16 @@
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true "dev": true
}, },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703342506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
...@@ -3821,8 +3936,8 @@ ...@@ -3821,8 +3936,8 @@
}, },
"acorn-node": { "acorn-node": {
"version": "1.8.2", "version": "1.8.2",
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", "resolved": "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz",
"integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "integrity": "sha1-EUyV1kU55T3t4j3oudlt98euKvg=",
"dev": true, "dev": true,
"requires": { "requires": {
"acorn": "^7.0.0", "acorn": "^7.0.0",
...@@ -3832,14 +3947,14 @@ ...@@ -3832,14 +3947,14 @@
"dependencies": { "dependencies": {
"acorn": { "acorn": {
"version": "7.4.1", "version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true "dev": true
}, },
"acorn-walk": { "acorn-walk": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1630916608758&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz",
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
"dev": true "dev": true
} }
} }
...@@ -4118,8 +4233,8 @@ ...@@ -4118,8 +4233,8 @@
}, },
"arg": { "arg": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", "resolved": "https://registry.nlark.com/arg/download/arg-5.0.1.tgz?cache=0&sync_timestamp=1629166537485&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farg%2Fdownload%2Farg-5.0.1.tgz",
"integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "integrity": "sha1-6wyaj3d4bK0q+P8rhiiZhC17ats=",
"dev": true "dev": true
}, },
"argparse": { "argparse": {
...@@ -5269,8 +5384,8 @@ ...@@ -5269,8 +5384,8 @@
}, },
"camelcase-css": { "camelcase-css": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "resolved": "https://registry.npm.taobao.org/camelcase-css/download/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "integrity": "sha1-7pePaUeRTMMMa0R0G27R338EP9U=",
"dev": true "dev": true
}, },
"camelcase-keys": { "camelcase-keys": {
...@@ -6424,6 +6539,12 @@ ...@@ -6424,6 +6539,12 @@
"sha.js": "^2.4.8" "sha.js": "^2.4.8"
} }
}, },
"cropperjs": {
"version": "1.5.12",
"resolved": "https://registry.nlark.com/cropperjs/download/cropperjs-1.5.12.tgz?cache=0&sync_timestamp=1623485718941&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcropperjs%2Fdownload%2Fcropperjs-1.5.12.tgz",
"integrity": "sha1-2cDbK/uMDXadUXOej5FrvEThD1A=",
"dev": true
},
"cross-spawn": { "cross-spawn": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
...@@ -6536,8 +6657,8 @@ ...@@ -6536,8 +6657,8 @@
}, },
"css-unit-converter": { "css-unit-converter": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", "resolved": "https://registry.nlark.com/css-unit-converter/download/css-unit-converter-1.1.2.tgz",
"integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", "integrity": "sha1-THf1oZVObb/2BpXsshTjJwQ2qyE=",
"dev": true "dev": true
}, },
"css-what": { "css-what": {
...@@ -6838,7 +6959,7 @@ ...@@ -6838,7 +6959,7 @@
}, },
"defined": { "defined": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz",
"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
"dev": true "dev": true
}, },
...@@ -6936,8 +7057,8 @@ ...@@ -6936,8 +7057,8 @@
}, },
"detective": { "detective": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", "resolved": "https://registry.npm.taobao.org/detective/download/detective-5.2.0.tgz",
"integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "integrity": "sha1-/rKnfoW5BOzepFmtiXzJCpm9Kns=",
"dev": true, "dev": true,
"requires": { "requires": {
"acorn-node": "^1.6.1", "acorn-node": "^1.6.1",
...@@ -6947,8 +7068,8 @@ ...@@ -6947,8 +7068,8 @@
}, },
"didyoumean": { "didyoumean": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "resolved": "https://registry.nlark.com/didyoumean/download/didyoumean-1.2.2.tgz?cache=0&sync_timestamp=1624543452248&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdidyoumean%2Fdownload%2Fdidyoumean-1.2.2.tgz",
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "integrity": "sha1-mJNG/+noObRVXs9WZu3qDT6K0Dc=",
"dev": true "dev": true
}, },
"diff": { "diff": {
...@@ -6979,8 +7100,8 @@ ...@@ -6979,8 +7100,8 @@
}, },
"dlv": { "dlv": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "resolved": "https://registry.npm.taobao.org/dlv/download/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "integrity": "sha1-XBmKihFFNZbnUUlNSYdLx3MvLnk=",
"dev": true "dev": true
}, },
"dns-equal": { "dns-equal": {
...@@ -8472,102 +8593,6 @@ ...@@ -8472,102 +8593,6 @@
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true "dev": true
}, },
"fork-ts-checker-webpack-plugin-v5": {
"version": "npm:fork-ts-checker-webpack-plugin@5.2.1",
"resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.2.1.tgz",
"integrity": "sha512-SVi+ZAQOGbtAsUWrZvGzz38ga2YqjWvca1pXQFUArIVXqli0lLoDQ8uS0wg0kSpcwpZmaW5jVCZXQebkyUQSsw==",
"dev": true,
"optional": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@types/json-schema": "^7.0.5",
"chalk": "^4.1.0",
"cosmiconfig": "^6.0.0",
"deepmerge": "^4.2.2",
"fs-extra": "^9.0.0",
"memfs": "^3.1.2",
"minimatch": "^3.0.4",
"schema-utils": "2.7.0",
"semver": "^7.3.2",
"tapable": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
"integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
"dev": true,
"optional": true,
"requires": {
"@types/parse-json": "^4.0.0",
"import-fresh": "^3.1.0",
"parse-json": "^5.0.0",
"path-type": "^4.0.0",
"yaml": "^1.7.2"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"schema-utils": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
"integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
"dev": true,
"optional": true,
"requires": {
"@types/json-schema": "^7.0.4",
"ajv": "^6.12.2",
"ajv-keywords": "^3.4.1"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"form-data": { "form-data": {
"version": "2.3.3", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
...@@ -10188,8 +10213,8 @@ ...@@ -10188,8 +10213,8 @@
}, },
"lilconfig": { "lilconfig": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", "resolved": "https://registry.nlark.com/lilconfig/download/lilconfig-2.0.3.tgz",
"integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", "integrity": "sha1-aPMAXpIdr70qKvtIN5mGqm0lef0=",
"dev": true "dev": true
}, },
"lines-and-columns": { "lines-and-columns": {
...@@ -10342,7 +10367,7 @@ ...@@ -10342,7 +10367,7 @@
}, },
"lodash.topath": { "lodash.topath": {
"version": "4.5.2", "version": "4.5.2",
"resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", "resolved": "https://registry.npm.taobao.org/lodash.topath/download/lodash.topath-4.5.2.tgz",
"integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=",
"dev": true "dev": true
}, },
...@@ -10871,8 +10896,8 @@ ...@@ -10871,8 +10896,8 @@
}, },
"modern-normalize": { "modern-normalize": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", "resolved": "https://registry.nlark.com/modern-normalize/download/modern-normalize-1.1.0.tgz",
"integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", "integrity": "sha1-2o6AFA2SIUJr1PclxuESg9NPkLc=",
"dev": true "dev": true
}, },
"moment": { "moment": {
...@@ -10951,8 +10976,8 @@ ...@@ -10951,8 +10976,8 @@
}, },
"nanoid": { "nanoid": {
"version": "3.1.25", "version": "3.1.25",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", "resolved": "https://registry.nlark.com/nanoid/download/nanoid-3.1.25.tgz?cache=0&sync_timestamp=1628771923493&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.25.tgz",
"integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "integrity": "sha1-CcoydHwOVD8OGBS303k0d/nI4VI=",
"dev": true "dev": true
}, },
"nanomatch": { "nanomatch": {
...@@ -12077,7 +12102,7 @@ ...@@ -12077,7 +12102,7 @@
}, },
"postcss-functions": { "postcss-functions": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", "resolved": "https://registry.npm.taobao.org/postcss-functions/download/postcss-functions-3.0.0.tgz",
"integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=",
"dev": true, "dev": true,
"requires": { "requires": {
...@@ -12089,8 +12114,8 @@ ...@@ -12089,8 +12114,8 @@
"dependencies": { "dependencies": {
"postcss": { "postcss": {
"version": "6.0.23", "version": "6.0.23",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^2.4.1", "chalk": "^2.4.1",
...@@ -12102,8 +12127,8 @@ ...@@ -12102,8 +12127,8 @@
}, },
"postcss-js": { "postcss-js": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", "resolved": "https://registry.nlark.com/postcss-js/download/postcss-js-2.0.3.tgz",
"integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==", "integrity": "sha1-qW8PI/89CM7H3FsRvxHF+Ad82rk=",
"dev": true, "dev": true,
"requires": { "requires": {
"camelcase-css": "^2.0.1", "camelcase-css": "^2.0.1",
...@@ -12247,24 +12272,12 @@ ...@@ -12247,24 +12272,12 @@
}, },
"postcss-nested": { "postcss-nested": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz", "resolved": "https://registry.nlark.com/postcss-nested/download/postcss-nested-4.2.3.tgz?cache=0&sync_timestamp=1627468715175&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-nested%2Fdownload%2Fpostcss-nested-4.2.3.tgz",
"integrity": "sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==", "integrity": "sha1-xvJVsKcgVJd20iDQDEtwzSRBNvY=",
"dev": true, "dev": true,
"requires": { "requires": {
"postcss": "^7.0.32", "postcss": "^7.0.32",
"postcss-selector-parser": "^6.0.2" "postcss-selector-parser": "^6.0.2"
},
"dependencies": {
"postcss-selector-parser": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz",
"integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
}
}
} }
}, },
"postcss-normalize-charset": { "postcss-normalize-charset": {
...@@ -12415,6 +12428,16 @@ ...@@ -12415,6 +12428,16 @@
"postcss-value-parser": "^3.0.0" "postcss-value-parser": "^3.0.0"
} }
}, },
"postcss-selector-parser": {
"version": "6.0.6",
"resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz",
"integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
}
},
"postcss-svgo": { "postcss-svgo": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz",
...@@ -12481,7 +12504,7 @@ ...@@ -12481,7 +12504,7 @@
}, },
"pretty-hrtime": { "pretty-hrtime": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "resolved": "https://registry.nlark.com/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz",
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
"dev": true "dev": true
}, },
...@@ -12592,8 +12615,8 @@ ...@@ -12592,8 +12615,8 @@
}, },
"purgecss": { "purgecss": {
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", "resolved": "https://registry.npm.taobao.org/purgecss/download/purgecss-4.0.3.tgz",
"integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", "integrity": "sha1-gUe0KfnAnbcZ4F1kkI6otnKRN0I=",
"dev": true, "dev": true,
"requires": { "requires": {
"commander": "^6.0.0", "commander": "^6.0.0",
...@@ -12604,30 +12627,20 @@ ...@@ -12604,30 +12627,20 @@
"dependencies": { "dependencies": {
"commander": { "commander": {
"version": "6.2.1", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "resolved": "https://registry.nlark.com/commander/download/commander-6.2.1.tgz",
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=",
"dev": true "dev": true
}, },
"postcss": { "postcss": {
"version": "8.3.6", "version": "8.3.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", "resolved": "https://registry.nlark.com/postcss/download/postcss-8.3.6.tgz",
"integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", "integrity": "sha1-JzDddql5afN/U7mmCWGXvjEcxOo=",
"dev": true, "dev": true,
"requires": { "requires": {
"colorette": "^1.2.2", "colorette": "^1.2.2",
"nanoid": "^3.1.23", "nanoid": "^3.1.23",
"source-map-js": "^0.6.2" "source-map-js": "^0.6.2"
} }
},
"postcss-selector-parser": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz",
"integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
}
} }
} }
}, },
...@@ -12687,8 +12700,8 @@ ...@@ -12687,8 +12700,8 @@
}, },
"quick-lru": { "quick-lru": {
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "resolved": "https://registry.nlark.com/quick-lru/download/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=",
"dev": true "dev": true
}, },
"raf": { "raf": {
...@@ -12858,8 +12871,8 @@ ...@@ -12858,8 +12871,8 @@
}, },
"reduce-css-calc": { "reduce-css-calc": {
"version": "2.1.8", "version": "2.1.8",
"resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", "resolved": "https://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-2.1.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freduce-css-calc%2Fdownload%2Freduce-css-calc-2.1.8.tgz",
"integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", "integrity": "sha1-fvh2GijWFJgNwMmC93LJP3qZ3gM=",
"dev": true, "dev": true,
"requires": { "requires": {
"css-unit-converter": "^1.1.1", "css-unit-converter": "^1.1.1",
...@@ -13960,8 +13973,8 @@ ...@@ -13960,8 +13973,8 @@
}, },
"source-map-js": { "source-map-js": {
"version": "0.6.2", "version": "0.6.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", "resolved": "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz",
"integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=",
"dev": true "dev": true
}, },
"source-map-resolve": { "source-map-resolve": {
...@@ -14539,9 +14552,9 @@ ...@@ -14539,9 +14552,9 @@
} }
}, },
"tailwindcss": { "tailwindcss": {
"version": "npm:@tailwindcss/postcss7-compat@2.2.10", "version": "npm:@tailwindcss/postcss7-compat@2.2.14",
"resolved": "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.10.tgz", "resolved": "https://registry.nlark.com/@tailwindcss/postcss7-compat/download/@tailwindcss/postcss7-compat-2.2.14.tgz",
"integrity": "sha512-mAINjdThr/MtFmYw1aXX7lCskd2W4v8cySFviQT4tcYG4BofCewP7wp3c2WghAwAf4Ox9ZKU4pV4YeS6YU/7kg==", "integrity": "sha1-vdgtdcvGtZZRnyvVTBBHphXgY2Y=",
"dev": true, "dev": true,
"requires": { "requires": {
"arg": "^5.0.1", "arg": "^5.0.1",
...@@ -14558,6 +14571,7 @@ ...@@ -14558,6 +14571,7 @@
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"glob-parent": "^6.0.1", "glob-parent": "^6.0.1",
"html-tags": "^3.1.0", "html-tags": "^3.1.0",
"is-color-stop": "^1.1.0",
"is-glob": "^4.0.1", "is-glob": "^4.0.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"lodash.topath": "^4.5.2", "lodash.topath": "^4.5.2",
...@@ -14582,8 +14596,8 @@ ...@@ -14582,8 +14596,8 @@
"dependencies": { "dependencies": {
"ansi-styles": { "ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true, "dev": true,
"requires": { "requires": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
...@@ -14591,8 +14605,8 @@ ...@@ -14591,8 +14605,8 @@
}, },
"anymatch": { "anymatch": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
"dev": true, "dev": true,
"requires": { "requires": {
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
...@@ -14601,14 +14615,14 @@ ...@@ -14601,14 +14615,14 @@
}, },
"binary-extensions": { "binary-extensions": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "resolved": "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
"dev": true "dev": true
}, },
"braces": { "braces": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
"dev": true, "dev": true,
"requires": { "requires": {
"fill-range": "^7.0.1" "fill-range": "^7.0.1"
...@@ -14616,8 +14630,8 @@ ...@@ -14616,8 +14630,8 @@
}, },
"chalk": { "chalk": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-styles": "^4.1.0", "ansi-styles": "^4.1.0",
...@@ -14626,8 +14640,8 @@ ...@@ -14626,8 +14640,8 @@
}, },
"chokidar": { "chokidar": {
"version": "3.5.2", "version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz",
"integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=",
"dev": true, "dev": true,
"requires": { "requires": {
"anymatch": "~3.1.2", "anymatch": "~3.1.2",
...@@ -14642,8 +14656,8 @@ ...@@ -14642,8 +14656,8 @@
"dependencies": { "dependencies": {
"glob-parent": { "glob-parent": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
"dev": true, "dev": true,
"requires": { "requires": {
"is-glob": "^4.0.1" "is-glob": "^4.0.1"
...@@ -14653,8 +14667,8 @@ ...@@ -14653,8 +14667,8 @@
}, },
"color": { "color": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz", "resolved": "https://registry.nlark.com/color/download/color-4.0.1.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-4.0.1.tgz",
"integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==", "integrity": "sha1-Id9EzRAkWpGxzPW6AxYJsOEOfWc=",
"dev": true, "dev": true,
"requires": { "requires": {
"color-convert": "^2.0.1", "color-convert": "^2.0.1",
...@@ -14663,8 +14677,8 @@ ...@@ -14663,8 +14677,8 @@
}, },
"color-convert": { "color-convert": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "resolved": "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true, "dev": true,
"requires": { "requires": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
...@@ -14672,8 +14686,8 @@ ...@@ -14672,8 +14686,8 @@
}, },
"cosmiconfig": { "cosmiconfig": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz?cache=0&sync_timestamp=1629586119976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-7.0.1.tgz",
"integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "integrity": "sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0=",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/parse-json": "^4.0.0", "@types/parse-json": "^4.0.0",
...@@ -14685,8 +14699,8 @@ ...@@ -14685,8 +14699,8 @@
}, },
"fill-range": { "fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
"dev": true, "dev": true,
"requires": { "requires": {
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
...@@ -14694,8 +14708,8 @@ ...@@ -14694,8 +14708,8 @@
}, },
"fs-extra": { "fs-extra": {
"version": "10.0.0", "version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "integrity": "sha1-n/YbZV3eU/s0qC34S7IUzoAuF8E=",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
...@@ -14705,8 +14719,8 @@ ...@@ -14705,8 +14719,8 @@
}, },
"glob-parent": { "glob-parent": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz", "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-6.0.1.tgz",
"integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==", "integrity": "sha1-QgVPaF62pE56fRialu+kClSXGqc=",
"dev": true, "dev": true,
"requires": { "requires": {
"is-glob": "^4.0.1" "is-glob": "^4.0.1"
...@@ -14714,14 +14728,14 @@ ...@@ -14714,14 +14728,14 @@
}, },
"has-flag": { "has-flag": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true "dev": true
}, },
"import-cwd": { "import-cwd": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", "resolved": "https://registry.nlark.com/import-cwd/download/import-cwd-3.0.0.tgz",
"integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", "integrity": "sha1-IIRVR3GAFRJuqbNna3WS+4vUz5I=",
"dev": true, "dev": true,
"requires": { "requires": {
"import-from": "^3.0.0" "import-from": "^3.0.0"
...@@ -14729,8 +14743,8 @@ ...@@ -14729,8 +14743,8 @@
}, },
"import-from": { "import-from": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", "resolved": "https://registry.nlark.com/import-from/download/import-from-3.0.0.tgz",
"integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", "integrity": "sha1-BVz+w4zVon2AV8pRN219O/CJGWY=",
"dev": true, "dev": true,
"requires": { "requires": {
"resolve-from": "^5.0.0" "resolve-from": "^5.0.0"
...@@ -14738,8 +14752,8 @@ ...@@ -14738,8 +14752,8 @@
}, },
"is-binary-path": { "is-binary-path": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "resolved": "https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
"dev": true, "dev": true,
"requires": { "requires": {
"binary-extensions": "^2.0.0" "binary-extensions": "^2.0.0"
...@@ -14747,14 +14761,14 @@ ...@@ -14747,14 +14761,14 @@
}, },
"is-number": { "is-number": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
"dev": true "dev": true
}, },
"jsonfile": { "jsonfile": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161876665&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "integrity": "sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.1.6", "graceful-fs": "^4.1.6",
...@@ -14763,8 +14777,8 @@ ...@@ -14763,8 +14777,8 @@
}, },
"node-emoji": { "node-emoji": {
"version": "1.11.0", "version": "1.11.0",
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", "resolved": "https://registry.nlark.com/node-emoji/download/node-emoji-1.11.0.tgz?cache=0&sync_timestamp=1628672555671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-emoji%2Fdownload%2Fnode-emoji-1.11.0.tgz",
"integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "integrity": "sha1-aaAVDmlG4vEV6dfqTfeXHiYoMBw=",
"dev": true, "dev": true,
"requires": { "requires": {
"lodash": "^4.17.21" "lodash": "^4.17.21"
...@@ -14772,14 +14786,14 @@ ...@@ -14772,14 +14786,14 @@
}, },
"object-hash": { "object-hash": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", "resolved": "https://registry.nlark.com/object-hash/download/object-hash-2.2.0.tgz",
"integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "integrity": "sha1-WtUYWB7vxEO9djRyuP8unCwNVKU=",
"dev": true "dev": true
}, },
"postcss-load-config": { "postcss-load-config": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", "resolved": "https://registry.nlark.com/postcss-load-config/download/postcss-load-config-3.1.0.tgz",
"integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", "integrity": "sha1-05xHCRxK7Df1AnI3OmpkjvXpeCk=",
"dev": true, "dev": true,
"requires": { "requires": {
"import-cwd": "^3.0.0", "import-cwd": "^3.0.0",
...@@ -14787,26 +14801,16 @@ ...@@ -14787,26 +14801,16 @@
"yaml": "^1.10.2" "yaml": "^1.10.2"
} }
}, },
"postcss-selector-parser": {
"version": "6.0.6",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz",
"integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
}
},
"postcss-value-parser": { "postcss-value-parser": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "resolved": "https://registry.nlark.com/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
"dev": true "dev": true
}, },
"readdirp": { "readdirp": {
"version": "3.6.0", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=",
"dev": true, "dev": true,
"requires": { "requires": {
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
...@@ -14814,14 +14818,14 @@ ...@@ -14814,14 +14818,14 @@
}, },
"resolve-from": { "resolve-from": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=",
"dev": true "dev": true
}, },
"rimraf": { "rimraf": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
"dev": true, "dev": true,
"requires": { "requires": {
"glob": "^7.1.3" "glob": "^7.1.3"
...@@ -14829,8 +14833,8 @@ ...@@ -14829,8 +14833,8 @@
}, },
"supports-color": { "supports-color": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703342506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
...@@ -14838,8 +14842,8 @@ ...@@ -14838,8 +14842,8 @@
}, },
"tmp": { "tmp": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "resolved": "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz?cache=0&sync_timestamp=1618847042301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftmp%2Fdownload%2Ftmp-0.2.1.tgz",
"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "integrity": "sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ=",
"dev": true, "dev": true,
"requires": { "requires": {
"rimraf": "^3.0.0" "rimraf": "^3.0.0"
...@@ -14847,8 +14851,8 @@ ...@@ -14847,8 +14851,8 @@
}, },
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
"dev": true, "dev": true,
"requires": { "requires": {
"is-number": "^7.0.0" "is-number": "^7.0.0"
...@@ -14856,8 +14860,8 @@ ...@@ -14856,8 +14860,8 @@
}, },
"universalify": { "universalify": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz?cache=0&sync_timestamp=1603180004159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "integrity": "sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=",
"dev": true "dev": true
} }
} }
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
"autoprefixer": "^9.8.6", "autoprefixer": "^9.8.6",
"babel-plugin-import": "^1.13.3", "babel-plugin-import": "^1.13.3",
"compression-webpack-plugin": "^6.1.1", "compression-webpack-plugin": "^6.1.1",
"cropperjs": "^1.5.12",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",
"less": "^3.0.4", "less": "^3.0.4",
......
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
<div class="header-wrapper fixed top-0 left-0 w-screen z-50" :class="headerBg"> <div class="header-wrapper fixed top-0 left-0 w-screen z-50" :class="headerBg">
<div class="header relative flex justify-center items-center py-3 h-12"> <div class="header relative flex justify-center items-center py-3 h-12">
<div class="h-action-wrapper absolute left-3 top-1/2 transform -translate-y-1/2 flex justify-center items-center"> <div class="h-action-wrapper absolute left-3 top-1/2 transform -translate-y-1/2 flex justify-center items-center">
<template v-if="leftArrow"> <div v-if="leftArrow">
<app-icon <app-icon
type="png" type="png"
class-name="w-6.5 w-6.5" class-name="w-6.5 w-6.5"
icon-name="left-arrow" icon-name="left-arrow"
@click="clickLeft" @click="clickLeft"
/> />
</template> </div>
<slot name="left" /> <slot name="left" />
</div> </div>
<div <div
......
...@@ -22,7 +22,8 @@ export interface AcceptJoinDTO{ ...@@ -22,7 +22,8 @@ export interface AcceptJoinDTO{
"hash": string, "hash": string,
"joinTime": number, "joinTime": number,
"phone": string, "phone": string,
"position": string "position": string,
"shortPhone"?: string
} }
export interface CreateEnterpriseDTO { export interface CreateEnterpriseDTO {
...@@ -116,15 +117,17 @@ export interface ResignDTO { ...@@ -116,15 +117,17 @@ export interface ResignDTO {
} }
export interface UpdateStaffDTO { export interface UpdateStaffDTO {
"id": string,
"depId": string, "depId": string,
"email": string, "email"?: string,
"phone": string, "phone": string,
"position": string, "position": string,
"entId": string, "entId": string,
"jionTime": number, "joinTime": number,
"leaderId": string, "leaderId"?: string,
"name": string, "name": string,
"workplace"?: string "workplace"?: string,
"shortPhone"?: string
} }
// 审核 // 审核
......
...@@ -36,7 +36,8 @@ enum BridgeMethods { ...@@ -36,7 +36,8 @@ enum BridgeMethods {
GEN_JOIN_FORM = 'genJoinForm', GEN_JOIN_FORM = 'genJoinForm',
SIGN = 'sign', SIGN = 'sign',
GET_PUBLIC_KEY = 'getPublicKey', GET_PUBLIC_KEY = 'getPublicKey',
REFRESH_COMPANY_STATE = 'refreshCompanyState' REFRESH_COMPANY_STATE = 'refreshCompanyState',
Close = 'close'
} }
export function isAppEnv() { export function isAppEnv() {
...@@ -103,6 +104,17 @@ export function goBack() { ...@@ -103,6 +104,17 @@ export function goBack() {
} }
/** /**
* 用于导航
* @returns
*/
export function close() {
const data = dsbridge.call(BridgeMethods.Close, {}, (res) => {
return res
})
return data
}
/**
* 企业联系人详情页面 * 企业联系人详情页面
* @returns * @returns
*/ */
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
/> />
<!-- 通讯录 --> <!-- 通讯录 -->
<div class="pb-16"> <div class="pb-16">
<div class="text-text-secondary py-1"></div> <div class="text-text-secondary py-1">管理</div>
<team-contacts <team-contacts
:radio="showRadio" :radio="showRadio"
:checked.sync="checkedMemberId" :checked.sync="checkedMemberId"
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
/> />
<!-- 通讯录 --> <!-- 通讯录 -->
<div class="pb-16"> <div class="pb-16">
<div class="text-text-secondary py-1"></div> <div class="text-text-secondary py-1">管理</div>
<team-contacts <team-contacts
:radio="showRadio" :radio="showRadio"
:checked.sync="checkedMemberId" :checked.sync="checkedMemberId"
......
...@@ -6,13 +6,18 @@ ...@@ -6,13 +6,18 @@
:ent-id="entId" :ent-id="entId"
:selected.sync="selectedDepId" :selected.sync="selectedDepId"
/> />
<main-page left-arrow :loading="loading" @click-left="handleClickLeft"> <main-page
<template #right> left-arrow
:loading="loading"
:title="pageTitle"
@click-left="handleClickLeft"
>
<template #right v-if="!isEdit">
<div class="text-color-primary" @click="$router.push({ name: 'Import' })"> <div class="text-color-primary" @click="$router.push({ name: 'Import' })">
批量导入 批量导入
</div> </div>
</template> </template>
<div class="px-4 pt-14 pb-16"> <div class="px-4 pt-14 pb-6">
<!-- 姓名/职位 --> <!-- 姓名/职位 -->
<input-cell <input-cell
v-model="acceptJoin.name" v-model="acceptJoin.name"
...@@ -41,12 +46,12 @@ ...@@ -41,12 +46,12 @@
type="input" type="input"
:validator="checkPhone" :validator="checkPhone"
/> />
<!-- <c-cell <c-cell
v-model="digit" v-model="acceptJoin.shortPhone"
title="员工编号" title="号"
placeholder="请输入员工编号" placeholder="请输入号"
type="input" type="input"
/>--> />
<c-cell <c-cell
v-model="date" v-model="date"
dot dot
...@@ -67,9 +72,23 @@ ...@@ -67,9 +72,23 @@
<group-cell required class="mt-4" title="所属部门" @click.native="selectDep"> <group-cell required class="mt-4" title="所属部门" @click.native="selectDep">
<c-cell dot :title="currentDep.name" /> <c-cell dot :title="currentDep.name" />
</group-cell> </group-cell>
<group-cell class="mt-4" title="绑定账户">
<c-cell
v-model="usrId"
class-input="text-left"
placeholder="请输入账户ID"
type="input"
/>
</group-cell>
<!--按钮--> <!--按钮-->
<div class="fixed bottom-0 left-0 w-full px-4 py-1.5 bg-common-bg"> <div class="mt-4">
<c-button @click="generateQrCode">生成邀请二维码</c-button> <div v-if="!isEdit">
<c-button @click="generateQrCode">生成邀请二维码</c-button>
</div>
<div v-else>
<c-button @click="save">保存</c-button>
<c-button class="mt-2" type="secondary" @click="deleteUsr">删除员工</c-button>
</div>
</div> </div>
</div> </div>
</main-page> </main-page>
...@@ -80,12 +99,10 @@ ...@@ -80,12 +99,10 @@
import Vue from 'vue' import Vue from 'vue'
import { Calendar, Overlay } from 'vant' import { Calendar, Overlay } from 'vant'
import { AcceptJoinDTO } from '@/service/moudles/service.dto' import { AcceptJoinDTO, UpdateStaffDTO } from '@/service/moudles/service.dto'
import { trim } from '@/util/Contact' import { trim } from '@/util/Contact'
import { Department } from '@/Interface' import { Department } from '@/Interface'
import { useLocalStorageState } from 'ahooks-vue'
import { formatDate } from '@/util/FormatDate' import { formatDate } from '@/util/FormatDate'
import DepSelector from '@/views/team/components/dep-selector.vue'
import { getPublicKey, getSign, getUserInfo } from '@/util/Bridge' import { getPublicKey, getSign, getUserInfo } from '@/util/Bridge'
Vue.use(Calendar).use(Overlay) Vue.use(Calendar).use(Overlay)
...@@ -124,7 +141,8 @@ export default Vue.extend({ ...@@ -124,7 +141,8 @@ export default Vue.extend({
hash: '', hash: '',
joinTime: Math.round(new Date().getTime()/1000), joinTime: Math.round(new Date().getTime()/1000),
phone: '', phone: '',
position: '' position: '',
shortPhone: ''
} }
return { return {
formatDate, formatDate,
...@@ -136,20 +154,111 @@ export default Vue.extend({ ...@@ -136,20 +154,111 @@ export default Vue.extend({
currentDep, currentDep,
loading: false, loading: false,
acceptJoin, acceptJoin,
updateStaff: {} as UpdateStaffDTO,
showDepSelector: false, showDepSelector: false,
depTree depTree,
pageTitle: '添加成员',
isEdit: false,
usrId: '',
shortPhone: ''
} }
}, },
async created() { async created() {
const entInfo = JSON.parse(localStorage.getItem('ENT_INFO') || '{}') const query = this.$route.query
this.entId = entInfo.id || '168398222891421696' if (query.edit === '1') {
this.selectedDepId = this.depId = this.$route.query.id as string || entInfo.rootDepId // 编辑
// this.acceptJoin = Object.assign(this.acceptJoin, this.$store.state.acceptJoin) this.isEdit = true
this.pageTitle = '编辑成员'
this.usrId = query.usrId
const usrInfo = await this.getStaff(this.usrId)
this.selectedDepId = this.depId = usrInfo.depId
this.entId = usrInfo.entId
this.date = this.formatDate(usrInfo.joinTime)
this.acceptJoin = Object.assign({}, this.acceptJoin, usrInfo)
} else {
// 添加
const entInfo = JSON.parse(localStorage.getItem('ENT_INFO') || '{}')
this.selectedDepId = this.depId = this.$route.query.id as string || entInfo.rootDepId
this.entId = entInfo.id || '168398222891421696'
this.date = this.formatDate(new Date())
this.pageTitle = '添加成员'
}
const dep = await this.getSub(this.depId) const dep = await this.getSub(this.depId)
this.currentDep = dep.dep this.currentDep = dep.dep
this.date = this.formatDate(new Date())
}, },
methods: { methods: {
validateParmas(): boolean {
const {phone, name, position, joinTime} = this.acceptJoin
return !this.validatePhone(phone) || trim(name) === '' || trim(position) === '' || joinTime === 0 || trim(this.depId) === ''
},
getStaff(id: string) {
this.loading = true
return this.$service.staff.getInfo({
id: this.usrId
}).then((res: any) => {
this.loading = false
const {data} = res
if (data.code === this.$global.success) {
return data.data
} else {
this.$toast(data.msg)
}
})
},
deleteUsr() {
this.$dialog.confirm({
title: '提示',
message: '移出成员后,将移出对应的部门群,若是主管,则对应部门群群主将随机抽取群管理员或群内成员临时担任,确定移出吗?'
// confirmButtonText: '解散'
}).then(() => {
this.loading = true
this.$service.staff.resign({
entId: this.entId,
id: this.usrId
}).then((res: any) => {
this.loading = false
const {data} = res
if (data.code === this.$global.success) {
this.$toast('删除成功')
this.$router.replace('/team/team-frame')
} else {
this.$toast(data.msg)
}
}).catch(() => this.loading=false)
}).catch(() => {
console.log('删除')
})
},
save() {
if (this.validateParmas()) {
this.$toast('请检查输入内容')
return
}
const {depId, entId, joinTime, name, phone, position, shortPhone} = this.acceptJoin
this.updateStaff = {
depId,
entId,
joinTime,
name,
phone,
position,
id: this.usrId,
leaderId: this.currentDep.leaderId,
shortPhone
}
console.log(this.updateStaff, 'update')
this.loading = true
this.$service.staff.updateInfo(this.updateStaff).then((res: any) => {
this.loading = false
const {data} = res
if (data.code === this.$global.success) {
this.$toast('更新成功')
this.$router.replace('/team/team-frame')
} else {
this.$toast(data.msg)
}
}).catch(()=>this.loading=false)
},
async selectDep() { async selectDep() {
const parentId = JSON.parse(localStorage.getItem('ENT_INFO') as string).rootDepId const parentId = JSON.parse(localStorage.getItem('ENT_INFO') as string).rootDepId
const dep = await this.getSub(parentId) const dep = await this.getSub(parentId)
...@@ -182,6 +291,8 @@ export default Vue.extend({ ...@@ -182,6 +291,8 @@ export default Vue.extend({
this.loading = false this.loading = false
if (data.code === this.$global.success) { if (data.code === this.$global.success) {
this.currentDep = data.data this.currentDep = data.data
} else {
this.$toast(data.msg)
} }
}) })
}, },
...@@ -206,7 +317,7 @@ export default Vue.extend({ ...@@ -206,7 +317,7 @@ export default Vue.extend({
this.date = this.formatDate(date) this.date = this.formatDate(date)
}, },
generateQrCode() { generateQrCode() {
if (!this.validatePhone(this.acceptJoin.phone) || trim(this.acceptJoin.name) === '' || trim(this.acceptJoin.position) === '' || this.acceptJoin.joinTime === 0 || trim(this.depId) === '') { if (this.validateParmas()) {
this.$toast('请检查输入内容') this.$toast('请检查输入内容')
return return
} }
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
<member-selector <member-selector
:show.sync="showMemberSelector" :show.sync="showMemberSelector"
:show-team="true" :show-team="true"
:multiple="true" :multiple="multiple"
title="添加管理员" :title="selectorTitle"
:checked-member-id.sync="selectedLeaderId" :checked-member-id.sync="selectedLeaderId"
@confirm="confirmAdd" @confirm="confirm"
/> />
<div class="px-4 pt-14"> <div class="px-4 pt-14">
<div class="bg-white rounded px-4"> <div class="bg-white rounded px-4">
...@@ -97,7 +97,9 @@ export default Vue.extend({ ...@@ -97,7 +97,9 @@ export default Vue.extend({
loading: false, loading: false,
entInfo: {} as LocalStoreEnt, entInfo: {} as LocalStoreEnt,
leaderList: [] as Staff[], leaderList: [] as Staff[],
adminList: [] as Staff[] adminList: [] as Staff[],
multiple: false,
selectorTitle: ''
} }
}, },
mounted() { mounted() {
...@@ -106,7 +108,7 @@ export default Vue.extend({ ...@@ -106,7 +108,7 @@ export default Vue.extend({
}, },
methods: { methods: {
// 添加管理员 // 添加管理员
confirmAdd(arr: string[]) { confirm(arr: string[]) {
console.log(arr, 'arr') console.log(arr, 'arr')
const requests = [] as any[] const requests = [] as any[]
if (arr.length === 0) return if (arr.length === 0) return
...@@ -157,8 +159,19 @@ export default Vue.extend({ ...@@ -157,8 +159,19 @@ export default Vue.extend({
} }
}).catch(() => this.loading = false) }).catch(() => this.loading = false)
}, },
removeManager(id: number | string) { removeManager(id: string) {
// this.list = this.list.filter(item => item.id !== id) // this.list = this.list.filter(item => item.id !== id)
this.loading = true
this.changeRole(id, 3).then((res: any) => {
const {data} = res
this.loading = false
if (data.code === this.$global.success) {
// 转让成功
this.$router.replace('/team/team-frame')
} else {
this.$toast(data.msg)
}
}).catch(() => this.loading = false)
}, },
addManager() { addManager() {
this.selectedLeaderId = [] this.selectedLeaderId = []
...@@ -166,6 +179,8 @@ export default Vue.extend({ ...@@ -166,6 +179,8 @@ export default Vue.extend({
this.selectedLeaderId.push(a.id) this.selectedLeaderId.push(a.id)
}) })
this.showMemberSelector = true this.showMemberSelector = true
this.selectorTitle = '添加管理员'
this.multiple = true
} }
} }
}) })
......
<template>
<!-- 头像 -->
<div v-if="show" class="min-h-screen w-full border relative z-2001 bg-black px-4">
<van-action-sheet
v-model="showActionSheet"
:actions="actions"
cancel-text="取消"
close-on-click-action
@select="onSelect"
/>
<div class="header h-12 flex items-center justify-between">
<app-icon
class-name="w-6.5 h-6.5"
icon-name="left-arrow-white"
@click="goBack"
/>
<div class="text-white">团队头像</div>
<app-icon
class-name="w-5 h-1"
icon-name="dot-h"
@click="showActionSheet=true"
/>
</div>
<!-- 默认头像 -->
<div v-if="showDefault" class="default-avator mt-4 rounde overflow-hidden mx-auto mt-4">
<img :src="defaultImg" alt="">
<c-button class="mt-4" @click="saveImage">保存</c-button>
</div>
<!-- 裁剪图片 -->
<div v-if="showCropper">
<div class="before"></div>
<!-- <div class="w-screnn h-screnn bg-center" > -->
<img :src="img" alt="" class="" ref="image">
<c-button class="mt-4" @click="saveCropper">保存</c-button>
</div>
<!-- 拍照 -->
<div v-if="showCamera">
<video class="video-view" ref="video" autoplay playsinline="true" webkit-playsinline="true" />
<canvas ref="canvas" :width="cameraWidth" :height="cameraHeight" style="display: none"></canvas>
<c-button class="mt-4" @click="saveImg">拍照</c-button>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue'
import Cropper from "cropperjs"
import "cropperjs/dist/cropper.css"
export default Vue.extend({
name: 'AvatorEditor',
components: {
'app-icon':()=>import('@/components/common/Icon.vue'),
'main-page': () => import('@/layout/main-page.vue'),
'c-cell': () => import('@/components/common/c-cell.vue'),
'c-button': () => import('@/components/common/c-button.vue'),
'input-cell': () => import('@/components/common/input-cell.vue')
},
props: {
imgSrc: String,
show: Boolean
},
data() {
return {
cameraWidth: 0,
cameraHeight: 0,
stream: {} as any,
myCropper: {} as Cropper,
showActionSheet: false,
// showVideo: false,
showCropper: false,
showCamera: false,
showDefault: true,
img: '',
actions: [
{name: '拍照', action: 'photo'},
{name: '从手机相册选择', action: 'file'}
],
defaultImg: require('@/assets/qrcode.png')
}
},
watch: {
imgSrc(val: string) {
this.defaultImg = val
}
},
methods: {
goBack() {
this.$emit('update:show', false)
},
onSelect(item: {name: string, action: string}) {
if (item.action === 'photo') {
this.showCamera = true
this.showDefault = false
// this.showVideo=true
this.$nextTick(() => {
this.openCamera()
})
}
},
// 保存头像
saveImage() {
// this.showAvator = false
this.$emit('update:img-src', this.defaultImg)
this.$emit('update:show', false)
},
openCamera() {
if (
(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) ||
navigator.getUserMedia ||
(navigator as any).webkitGetUserMedia ||
(navigator as any).mozGetUserMedia
) {
//调用用户媒体设备,访问摄像头
this.initVideo({
video: {
height: 800,
// facingMode: "user",
facingMode: {
// 强制后置摄像头
exact: "user",
// exact: "environment",
},
},
})
} else {
alert("你的浏览器不支持访问用户媒体设备")
}
},
initCropper() {
this.myCropper = new Cropper(this.$refs.image as HTMLImageElement, {
viewMode: 1,
dragMode: 'none',
initialAspectRatio: 1,
aspectRatio: 1,
preview: '.before',
background: false,
autoCropArea: 0.6,
zoomOnWheel: false,
})
console.log(this.myCropper, 'sds')
},
initVideo(constrains: any) {
let _this = this
if (navigator.mediaDevices.getUserMedia) {
//最新标准API
navigator.mediaDevices
.getUserMedia(constrains)
.then(_this.videoSuccess)
.catch(_this.videoError)
} else if ((navigator as any).webkitGetUserMedia) {
//webkit内核浏览器
(navigator as any)
.webkitGetUserMedia(constrains)
.then(_this.videoSuccess)
.catch(_this.videoError)
} else if ((navigator as any).mozGetUserMedia) {
//Firefox浏览器
(navigator as any)
.mozGetUserMedia(constrains)
.then(_this.videoSuccess)
.catch(_this.videoError)
} else if ((navigator as any).getUserMedia) {
//旧版API
(navigator as any)
.getUserMedia(constrains)
.then(_this.videoSuccess)
.catch(_this.videoError)
}
},
videoSuccess(stream: any) {
let video = this.$refs.video as HTMLVideoElement,
_this = this
//将视频流设置为video元素的源
video.srcObject = stream
//播放视频
video.play()
video.oncanplay = function () {
// 摄像头分辨率,手机480x640
console.log("摄像头分辨率")
console.log(video.videoWidth, video.videoHeight)
_this.cameraWidth = video.videoWidth
_this.cameraHeight = video.videoHeight
// 发送图片进行识别
// _this.readImg()
}
this.stream = stream
},
// 保存截图
saveCropper() {
const imgData = this.myCropper.getCroppedCanvas({
imageSmoothingQuality: 'high'
}).toDataURL('image/png')
this.defaultImg = imgData
this.showDefault = true
this.showCropper = false
},
saveImg() {
this.readImg()
this.stream.getTracks().forEach(function(track: any){
track.stop()
})
this.showCamera = false
this.showCropper = true
this.$nextTick(() => {
this.initCropper()
})
},
readImg() {
let video = this.$refs.video as HTMLVideoElement,
canvas = this.$refs.canvas as HTMLCanvasElement,
// canvas.style
context = canvas.getContext("2d") as CanvasRenderingContext2D,
_this = this
// let timer = setInterval(function () {
context.drawImage(
video,
0,
0,
_this.cameraWidth,
_this.cameraHeight,
0,
0,
_this.cameraWidth,
_this.cameraHeight,
)
// 扫码条形码
let imgUri = canvas.toDataURL()
this.img = imgUri
},
videoError(error: Error) {
console.log("访问用户媒体设备失败:", error.name, error.message)
}
}
})
</script>
<style lang="less" scoped>
/deep/ .cropper-container {
width: 100% !important
}
.default-avator {
min-width: 60vw;
min-height: 60vw;
// border: 1px solid red;
}
</style>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<!-- <div class="py-2">{{currentDep.name}}</div> --> <!-- <div class="py-2">{{currentDep.name}}</div> -->
<!-- 通讯录 --> <!-- 通讯录 -->
<div class="pb-16"> <div class="pb-16">
<div class="text-text-secondary py-1">成员</div> <!-- <div class="text-text-secondary py-1">成员</div> -->
<team-contacts <team-contacts
container-id="member-selector" container-id="member-selector"
:leader="leaders" :leader="leaders"
...@@ -105,7 +105,6 @@ export default Vue.extend({ ...@@ -105,7 +105,6 @@ export default Vue.extend({
name: '', name: '',
parentId: '' parentId: ''
} }
let changedVal: Array<string> = []
return { return {
tree, tree,
teamArr: [] as Department[], teamArr: [] as Department[],
...@@ -125,6 +124,11 @@ export default Vue.extend({ ...@@ -125,6 +124,11 @@ export default Vue.extend({
this.entId = JSON.parse(localStorage.getItem('ENT_INFO') || '{}').id this.entId = JSON.parse(localStorage.getItem('ENT_INFO') || '{}').id
this.getEntInfo() this.getEntInfo()
}, },
computed: {
isNotDepRoot():boolean {
return this.currentDep.parentId !== '-1'
},
},
methods: { methods: {
goPre(dep: Department) { goPre(dep: Department) {
this.parentId = dep.id this.parentId = dep.id
...@@ -192,9 +196,15 @@ export default Vue.extend({ ...@@ -192,9 +196,15 @@ export default Vue.extend({
const { data } = res const { data } = res
this.loading = false this.loading = false
if (data.code === this.$global.success) { if (data.code === this.$global.success) {
// this.currentDep = data.data.dep this.currentDep = data.data.dep
// 负责人/管理员 // 负责人/管理员
this.leaders.list = data.data.staffList?.filter((i: Staff) => i.role !== 3) if (this.isNotDepRoot) {
// 不在架构根目录
const leader = {...data.data.leader, isDepAdmin: true}
this.leaders.list = [leader]
} else {
this.leaders.list = data.data.staffList?.filter((i: Staff) => i.role !== 3)
}
// 普通成员 // 普通成员
this.contacts = data.data.staffList?.filter((i: Staff) => i.role === 3) this.contacts = data.data.staffList?.filter((i: Staff) => i.role === 3)
// 部门树 // 部门树
......
...@@ -13,9 +13,10 @@ ...@@ -13,9 +13,10 @@
{{ nav }} {{ nav }}
</div> </div>
</div> </div>
<template v-if="Object.keys(list).length > 0 || leader.list && leader.list.length > 0"> <template v-if="Object.keys(list).length > 0 || (leader.list && leader.list.length > 0)">
<!-- 主管负责人 --> <!-- 主管负责人 -->
<div class="leaders" v-if="leader.list.length > 0"> <div class="leaders" v-if="leader.list.length > 0">
<div class="text-text-secondary py-1">管理员</div>
<div <div
v-for="(l, index) in leader.list" v-for="(l, index) in leader.list"
:key="index" :key="index"
...@@ -45,6 +46,7 @@ ...@@ -45,6 +46,7 @@
</div> </div>
<!-- 成员 --> <!-- 成员 -->
<div class="members"> <div class="members">
<div class="text-text-secondary py-1">成员</div>
<div <div
v-for="(value, key) in list" v-for="(value, key) in list"
:key="key" :key="key"
......
...@@ -122,10 +122,9 @@ export default Vue.extend({ ...@@ -122,10 +122,9 @@ export default Vue.extend({
this.loading = true this.loading = true
const {depId,entId,expiration,hash,inviterId,joinTime,name,oaServer,phone,position} = this.info as AcceptJoinDTO const {depId,entId,expiration,hash,inviterId,joinTime,name,oaServer,phone,position} = this.info as AcceptJoinDTO
let req = { let req = {
depId,entId,expiration: Number(expiration) ,hash,inviterId,joinTime: Number(joinTime),name,oaServer,phone,position depId,entId,expiration: Number(expiration) ,hash,inviterId,joinTime: Number(joinTime),name,oaServer,phone,position
} }
console.log(this.info); console.log(this.info);
this.$service.enterprise.acceptJoin(req) this.$service.enterprise.acceptJoin(req)
.then(async (res: any) => { .then(async (res: any) => {
const {data} = res const {data} = res
......
...@@ -12,16 +12,27 @@ ...@@ -12,16 +12,27 @@
main-bg="bg-white" main-bg="bg-white"
header-bg="bg-white" header-bg="bg-white"
:loading="loading" :loading="loading"
left-arrow
@click-left="goBack"
> >
<template slot="right"> <div v-if="!isEdit" slot="left">
<app-icon <app-icon
type="png" class-name="w-6.5 h-6.5"
class-name="w-5 h-1" icon-name="home"
icon-name="dot-h-black" @click="close"
@click="showActionSheet=true"
/> />
</div>
<template slot="right">
<div v-if="!isEdit">
<app-icon
class-name="w-5 h-1"
icon-name="dot-h-black"
@click="showActionSheet=true"
/>
</div>
<div
v-else
class="text-color-primary"
@click="isEdit=false"
>取消</div>
</template> </template>
<div class="px-4 pt-14"> <div class="px-4 pt-14">
<!-- 团队架构详情 --> <!-- 团队架构详情 -->
...@@ -39,8 +50,10 @@ ...@@ -39,8 +50,10 @@
/> />
<!-- 通讯录 --> <!-- 通讯录 -->
<div class="pb-16"> <div class="pb-16">
<div class="text-text-secondary py-1">成员</div> <!-- <div class="text-text-secondary py-1">成员</div> -->
<team-contacts <team-contacts
:radio="isEdit"
:multiple="multiple"
:leader="leaders" :leader="leaders"
:checked.sync="checkedMemberId" :checked.sync="checkedMemberId"
:contact-list="commonMember" :contact-list="commonMember"
...@@ -49,7 +62,10 @@ ...@@ -49,7 +62,10 @@
</div> </div>
<!-- 底部操作 --> <!-- 底部操作 -->
<div class="py-2 px-4 bg-white w-screen fixed bottom-0 left-0 z-30" v-if="showBottomBtn"> <div class="py-2 px-4 bg-white w-screen fixed bottom-0 left-0 z-30" v-if="showBottomBtn">
<div class="grid gap-2.5" :class="isNotDepRoot ? 'grid-cols-3' : 'grid-cols-2'"> <div v-if="isEdit">
<c-button @click="confirmEdit">确定</c-button>
</div>
<div v-else class="grid gap-2.5" :class="isNotDepRoot ? 'grid-cols-3' : 'grid-cols-2'">
<c-button round @click="addMember">添加成员</c-button> <c-button round @click="addMember">添加成员</c-button>
<c-button round @click="addDep">添加部门</c-button> <c-button round @click="addDep">添加部门</c-button>
<c-button round @click="setDepartment" v-if="isNotDepRoot">部门设置</c-button> <c-button round @click="setDepartment" v-if="isNotDepRoot">部门设置</c-button>
...@@ -62,7 +78,7 @@ ...@@ -62,7 +78,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import { getUserInfo, goBack, openCompanyUserInfo } from '@/util/Bridge' import { getUserInfo, close, openCompanyUserInfo } from '@/util/Bridge'
import { Department, Staff } from '@/Interface' import { Department, Staff } from '@/Interface'
import { ActionSheet } from 'vant' import { ActionSheet } from 'vant'
import { Role } from '@/service/moudles/service.dto' import { Role } from '@/service/moudles/service.dto'
...@@ -105,20 +121,22 @@ export default Vue.extend({ ...@@ -105,20 +121,22 @@ export default Vue.extend({
leaders: {} as { list: Staff[], title?: string }, leaders: {} as { list: Staff[], title?: string },
commonMember: [] as Staff[], commonMember: [] as Staff[],
teamArr: [] as Department[], teamArr: [] as Department[],
showActionSheet: false showActionSheet: false,
isEdit: false,
multiple: false
} }
}, },
async mounted() { async mounted() {
const userInfoDev = { // const userInfoDev = {
depId: '168398222891421697', // depId: '168398222891421697',
entId: '168398222891421696', // entId: '168398222891421696',
id: '1K7cApKbEU9h5WySPVLNgdSd67i2XkSuoS', // id: '1K7cApKbEU9h5WySPVLNgdSd67i2XkSuoS',
joinTime: 1631090065, // joinTime: 1631090065,
name: '徐丹', // name: '徐丹',
role: 0 // role: 0
} // }
localStorage.setItem('USR_INFO', getUserInfo() || JSON.stringify(userInfoDev)) localStorage.setItem('USR_INFO', getUserInfo())
const usrInfo = process.env.NODE_ENV==='production' ? JSON.parse(getUserInfo() || "{}") : userInfoDev const usrInfo = process.env.NODE_ENV==='production' ? JSON.parse(getUserInfo() || "{}") : {}
this.role = usrInfo.role this.role = usrInfo.role
this.entId = process.env.NODE_ENV==='production'?usrInfo.entId : '168398222891421696' this.entId = process.env.NODE_ENV==='production'?usrInfo.entId : '168398222891421696'
this.getEntInfo() this.getEntInfo()
...@@ -132,8 +150,11 @@ export default Vue.extend({ ...@@ -132,8 +150,11 @@ export default Vue.extend({
return this.role === Role.SUPER_ADMIN || this.role === Role.LEADER return this.role === Role.SUPER_ADMIN || this.role === Role.LEADER
}, },
actions() { actions() {
if (this.role === Role.LEADER) { if ([Role.LEADER, Role.SUPER_ADMIN].indexOf(this.role) > -1) {
return [{name: '管理团队', action: 'manage'}] return [
{name: '编辑成员', action: 'edit'},
{name: '管理团队', action: 'manage'}
]
} }
return [{name: '退出团队', action: 'quit'}] return [{name: '退出团队', action: 'quit'}]
} }
...@@ -144,7 +165,20 @@ export default Vue.extend({ ...@@ -144,7 +165,20 @@ export default Vue.extend({
this.$router.push('/team/team-management') this.$router.push('/team/team-management')
return return
} }
if (item.action === 'edit') {
this.isEdit = true
}
},
confirmEdit() {
if (this.checkedMemberId.length === 0) return
const id = this.checkedMemberId[0]
this.$router.push({
path: '/team/add-member',
query: {
usrId: id,
edit: '1'
}
})
}, },
// 点击面包屑上一级部门 // 点击面包屑上一级部门
goPre(dep: Department) { goPre(dep: Department) {
...@@ -152,7 +186,7 @@ export default Vue.extend({ ...@@ -152,7 +186,7 @@ export default Vue.extend({
this.getStaff() this.getStaff()
}, },
// 返回原生页面 // 返回原生页面
goBack, close,
// 获取企业信息 // 获取企业信息
getEntInfo() { getEntInfo() {
this.loading = true this.loading = true
...@@ -187,6 +221,7 @@ export default Vue.extend({ ...@@ -187,6 +221,7 @@ export default Vue.extend({
this.contacts = data.data.staffList || [] this.contacts = data.data.staffList || []
// 负责人/管理员 // 负责人/管理员
if (this.isNotDepRoot) { if (this.isNotDepRoot) {
// 不在架构根目录
const leader = {...data.data.leader, isDepAdmin: true} const leader = {...data.data.leader, isDepAdmin: true}
this.leaders.list = [leader] this.leaders.list = [leader]
} else { } else {
......
...@@ -34,9 +34,9 @@ ...@@ -34,9 +34,9 @@
/> />
<!-- <van-uploader :after-read="afterRead" /> --> <!-- <van-uploader :after-read="afterRead" /> -->
</div> </div>
<!-- <div class="fixed bottom-0 left-0 w-full px-4 py-2"> <div class="fixed bottom-0 left-0 w-full px-4 py-2">
<c-button round @click="$router.go(-1)">确定</c-button> <c-button round @click="$router.go(-1)">确定</c-button>
</div> --> </div>
</main-page> </main-page>
</template> </template>
......
...@@ -4,46 +4,97 @@ ...@@ -4,46 +4,97 @@
left-arrow left-arrow
@click-left="$router.go(-1)" @click-left="$router.go(-1)"
> >
<avator-editor
:show.sync="showEditor"
:img-src.sync="defaultImg"
/>
<div class="px-4 pt-14"> <div class="px-4 pt-14">
<c-cell <c-cell
dot dot
title="团队头像" title="团队头像"
@click="$router.push('/team/team-avator')" @click="showEditor=true"
> >
<template slot="right"> <template slot="right">
<div class="w-7 h-7 rounded overflow-hidden flex items-center justify-center"> <div class="w-7 h-7 rounded overflow-hidden flex items-center justify-center">
<img class="max-w-full" src="@/assets/images/33.png" alt=""> <img class="max-w-full" :src="defaultImg" alt="">
</div> </div>
</template> </template>
</c-cell> </c-cell>
<c-cell <input-cell
dot class="mt-4"
title="团队名称" v-model="updateInfo.name"
content="杭州复杂美科技有限公司" required
@click="$router.push('/team/team-name')" :limit="20"
label="团队名称"
placeholder="请输入团队名称"
error-msg="团队名称为空"
/>
<input-cell
class="mt-4"
v-model="updateInfo.description"
:limit="300"
required
type="textarea"
label="团队描述"
placeholder="请输入团队描述"
/> />
<c-cell dot title="团队描述" @click="$router.push('/team/team-description')" /> <c-button class="mt-4">保存</c-button>
</div> </div>
</main-page> </main-page>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue' import Vue from 'vue'
import {updateEnterpriseDTO} from '@/service/moudles/service.dto'
// import Cropper from "cropperjs"
// import "cropperjs/dist/cropper.css"
import {ActionSheet} from 'vant'
Vue.use(ActionSheet)
export default Vue.extend({ export default Vue.extend({
name: 'TeamInfo', name: 'TeamInfo',
components: { components: {
// 'app-icon':()=>import('@/components/common/Icon.vue'), 'app-icon':()=>import('@/components/common/Icon.vue'),
'main-page': () => import('@/layout/main-page.vue'), 'main-page': () => import('@/layout/main-page.vue'),
'c-cell': () => import('@/components/common/c-cell.vue') 'c-cell': () => import('@/components/common/c-cell.vue'),
'c-button': () => import('@/components/common/c-button.vue'),
'input-cell': () => import('@/components/common/input-cell.vue'),
'avator-editor': () => import('@/views/team/components/avator-editor.vue')
}, },
data() { data() {
return {} return {
updateInfo: {} as updateEnterpriseDTO,
showActionSheet: false,
defaultImg: require('@/assets/qrcode.png'),
showEditor: false
}
},
mounted() {
}, },
methods: {} methods: {
// onSelect(item: {name: string, action: string}) {
// if (item.action === 'photo') {
// this.showCamera = true
// this.showDefault = false
// // this.showVideo=true
// this.$nextTick(() => {
// this.openCamera()
// })
// }
// }
}
}) })
</script> </script>
<style lang="less"> <style lang="less" scoped>
/deep/ .cropper-container {
width: 100% !important
}
.default-avator {
min-width: 60vw;
min-height: 60vw;
// border: 1px solid red;
}
</style> </style>
...@@ -16,13 +16,21 @@ ...@@ -16,13 +16,21 @@
class-name="h-4 w-4 inline-block ml-1" class-name="h-4 w-4 inline-block ml-1"
/> />
</div> </div>
<div class="h-6.5 w-6.5 flex items-center justify-end"> <!-- <div class="h-6.5 w-6.5 flex items-center justify-end">
<app-icon <app-icon
icon-name="code" icon-name="code"
class-name="w-4 h-4" class-name="w-4 h-4"
/> />
</div> </div> -->
</template> </template>
<member-selector
:show.sync="showMemberSelector"
:show-team="true"
:multiple="multiple"
:title="selectorTitle"
:checked-member-id.sync="selectedLeaderId"
@confirm="confirm"
/>
<div class="px-4 pt-14"> <div class="px-4 pt-14">
<!-- 头部 --> <!-- 头部 -->
<div class="flex items-center pt-1 pb-5"> <div class="flex items-center pt-1 pb-5">
...@@ -50,7 +58,7 @@ ...@@ -50,7 +58,7 @@
<c-cell dot title="团队管理权限" :content="`共${managerNum}人`" @click="$router.push('/team/auth-management')" /> <c-cell dot title="团队管理权限" :content="`共${managerNum}人`" @click="$router.push('/team/auth-management')" />
<c-cell dot title="转让负责人" @click="transferManagement" /> <c-cell dot title="转让负责人" @click="transferManagement" />
</template> </template>
<c-cell dot title="申请管理" @click="$router.push('/team/request-management')" /> <!-- <c-cell dot title="申请管理" @click="$router.push('/team/request-management')" /> -->
</div> </div>
<c-button v-if="isLeader" round type="secondary" class="mt-16" @click="deleteTeam"> <c-button v-if="isLeader" round type="secondary" class="mt-16" @click="deleteTeam">
解散团队 解散团队
...@@ -70,13 +78,18 @@ export default Vue.extend({ ...@@ -70,13 +78,18 @@ export default Vue.extend({
'app-icon': () => import('@/components/common/Icon.vue'), 'app-icon': () => import('@/components/common/Icon.vue'),
'main-page': () => import('@/layout/main-page.vue'), 'main-page': () => import('@/layout/main-page.vue'),
'c-cell': () => import('@/components/common/c-cell.vue'), 'c-cell': () => import('@/components/common/c-cell.vue'),
'c-button': () => import('@/components/common/c-button.vue') 'c-button': () => import('@/components/common/c-button.vue'),
'member-selector': () => import('@/views/team/components/member-selector.vue')
}, },
data() { data() {
return { return {
enterpriseInfo: {} as LocalStoreEnt, enterpriseInfo: {} as LocalStoreEnt,
loading: false, loading: false,
managerNum: 0 managerNum: 0,
showMemberSelector: false,
selectorTitle: '',
multiple: false,
selectedLeaderId: [] as string[]
} }
}, },
mounted() { mounted() {
...@@ -113,13 +126,28 @@ export default Vue.extend({ ...@@ -113,13 +126,28 @@ export default Vue.extend({
console.log('edit') console.log('edit')
this.$router.push('/team/team-info') this.$router.push('/team/team-info')
}, },
transferManagement() { confirm(arr: string[]) {
this.$router.push({ if (arr.length === 0) return
path: '/team/team-frame', this.loading = true
query: { const newLeaderId = arr[0]
showRadio: '1' const id = JSON.parse(localStorage.getItem('USR_INFO') as string).id
this.$service.enterprise.updateLeader({
id,
newLeaderId
}).then((res: any) => {
this.loading = false
const {data} = res
if (data.code === this.$global.success) {
this.$router.replace('/team/team-frame')
} else {
this.$toast(data.msg)
} }
}) }).catch(() => this.loading=false)
},
transferManagement() {
this.showMemberSelector = true
this.selectorTitle = '转让负责人'
// this.selectorTitle = [this.leaderL]
}, },
deleteTeam() { deleteTeam() {
this.$dialog.confirm({ this.$dialog.confirm({
......
...@@ -144,7 +144,6 @@ export default Vue.extend({ ...@@ -144,7 +144,6 @@ export default Vue.extend({
if (window.devicePixelRatio && window.devicePixelRatio > 1) { if (window.devicePixelRatio && window.devicePixelRatio > 1) {
return window.devicePixelRatio return window.devicePixelRatio
} }
return 1 return 1
}, },
async drawCanvas(selector: string) { async drawCanvas(selector: string) {
......
...@@ -31,25 +31,25 @@ module.exports = { ...@@ -31,25 +31,25 @@ module.exports = {
} }
} }
} }
} },
// configureWebpack: { configureWebpack: {
// optimization: { optimization: {
// minimize: true, minimize: true,
// minimizer: [ minimizer: [
// new TerserPlugin({ new TerserPlugin({
// parallel: true, parallel: true,
// terserOptions: { terserOptions: {
// compress: { compress: {
// drop_console: true, // 默认false -- 移除console.*(console.log、console.error等等) drop_console: true, // 默认false -- 移除console.*(console.log、console.error等等)
// }, },
// }, },
// }), }),
// ], ],
// }, },
// plugins: [ plugins: [
// new CompressionWebpackPlugin(), new CompressionWebpackPlugin(),
// ], ],
// }, },
// pwa: { // pwa: {
// name: 'My App', // name: 'My App',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment