Commit f5577dc1 by liangzhen

自查

1 parent 54f4cad9
......@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@onlyoffice/document-editor-vue": "^1.3.0",
"@vue-office/pdf": "^2.0.2",
"@wangeditor/editor-for-vue": "^1.0.2",
"axios": "^1.6.2",
"core-js": "^3.8.3",
......@@ -18,11 +19,14 @@
"element-ui": "^2.15.14",
"jquery": "^3.7.1",
"jszip": "^3.10.1",
"mammoth": "^1.7.2",
"mammoth": "^1.8.0",
"moment": "^2.30.1",
"scss": "^0.2.4",
"util": "^0.12.5",
"vue": "^2.6.14",
"vue-cli": "^2.9.6",
"vue-demi": "^0.14.10",
"vue-doc-preview": "^0.3.2",
"vue-pdf": "^4.3.0",
"vue-router": "^3.5.1",
"vuex": "^3.6.2",
......@@ -2116,6 +2120,22 @@
"@types/node": "*"
}
},
"node_modules/@vue-office/pdf": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@vue-office/pdf/-/pdf-2.0.2.tgz",
"integrity": "sha512-bQFqGxSOnKbvCS7OoJniYoTz1VIm1XOrRD27Msorxny9NFJ8RsQK1A4uhlnISJRFMaUwp1qlcVE9jMAhsiIyjg==",
"hasInstallScript": true,
"peerDependencies": {
"@vue/composition-api": "^1.7.1",
"vue": "^2.0.0 || >=3.0.0",
"vue-demi": "^0.14.6"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"dev": true,
......@@ -3186,6 +3206,20 @@
"postcss": "^8.1.0"
}
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dependencies": {
"possible-typed-array-names": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/aws-sign2": {
"version": "0.7.0",
"license": "Apache-2.0",
......@@ -3576,13 +3610,18 @@
}
},
"node_modules/call-bind": {
"version": "1.0.5",
"dev": true,
"license": "MIT",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.1",
"set-function-length": "^1.1.1"
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
......@@ -4846,16 +4885,19 @@
}
},
"node_modules/define-data-property": {
"version": "1.1.1",
"dev": true,
"license": "MIT",
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dependencies": {
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-lazy-prop": {
......@@ -5230,6 +5272,25 @@
"stackframe": "^1.3.4"
}
},
"node_modules/es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"dependencies": {
"get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-module-lexer": {
"version": "1.4.1",
"license": "MIT"
......@@ -5658,6 +5719,14 @@
}
}
},
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dependencies": {
"is-callable": "^1.1.3"
}
},
"node_modules/forever-agent": {
"version": "0.6.1",
"license": "Apache-2.0",
......@@ -5745,7 +5814,6 @@
},
"node_modules/function-bind": {
"version": "1.1.2",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
......@@ -5837,15 +5905,19 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.2.2",
"dev": true,
"license": "MIT",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
......@@ -5995,7 +6067,6 @@
},
"node_modules/gopd": {
"version": "1.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
"get-intrinsic": "^1.1.3"
......@@ -6157,11 +6228,11 @@
}
},
"node_modules/has-property-descriptors": {
"version": "1.0.1",
"dev": true,
"license": "MIT",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
"get-intrinsic": "^1.2.2"
"es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
......@@ -6169,7 +6240,6 @@
},
"node_modules/has-proto": {
"version": "1.0.1",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
......@@ -6187,7 +6257,6 @@
},
"node_modules/has-symbols": {
"version": "1.0.3",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
......@@ -6206,6 +6275,20 @@
"node": "*"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-unicode": {
"version": "2.0.1",
"dev": true,
......@@ -6218,7 +6301,6 @@
},
"node_modules/hasown": {
"version": "2.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
......@@ -6660,6 +6742,21 @@
"node": ">= 10"
}
},
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-arrayish": {
"version": "0.2.1",
"dev": true,
......@@ -6675,6 +6772,39 @@
"node": ">=8"
}
},
"node_modules/is-buffer": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
"integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"engines": {
"node": ">=4"
}
},
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-core-module": {
"version": "2.13.1",
"dev": true,
......@@ -6730,6 +6860,20 @@
"node": ">=8"
}
},
"node_modules/is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"license": "MIT",
......@@ -6806,6 +6950,20 @@
"node": ">=0.10.0"
}
},
"node_modules/is-typed-array": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
"integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"dependencies": {
"which-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-typedarray": {
"version": "1.0.0",
"license": "MIT"
......@@ -7423,9 +7581,9 @@
}
},
"node_modules/mammoth": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.7.2.tgz",
"integrity": "sha512-MqWU2hcLf1I5QMKyAbfJCvrLxnv5WztrAQyorfZ+WPq7Hk82vZFmvfR2/64ajIPpM4jlq0TXp1xZvp/FFaL1Ug==",
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.8.0.tgz",
"integrity": "sha512-pJNfxSk9IEGVpau+tsZFz22ofjUsl2mnA5eT8PjPs2n0BP+rhVte4Nez6FdgEuxv3IGI3afiV46ImKqTGDVlbA==",
"dependencies": {
"@xmldom/xmldom": "^0.8.6",
"argparse": "~1.0.3",
......@@ -7461,6 +7619,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/marked": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz",
"integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==",
"bin": {
"marked": "bin/marked"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/mdn-data": {
"version": "2.0.14",
"dev": true,
......@@ -8805,6 +8974,14 @@
"ms": "^2.1.1"
}
},
"node_modules/possible-typed-array-names": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/postcss": {
"version": "8.4.31",
"funding": [
......@@ -10495,14 +10672,16 @@
"license": "ISC"
},
"node_modules/set-function-length": {
"version": "1.1.1",
"dev": true,
"license": "MIT",
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
"define-data-property": "^1.1.1",
"get-intrinsic": "^1.2.1",
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
"has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
......@@ -11544,6 +11723,18 @@
"node": ">=0.10.0"
}
},
"node_modules/util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"license": "MIT"
......@@ -11732,6 +11923,85 @@
"semver": "bin/semver"
}
},
"node_modules/vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/vue-doc-preview": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/vue-doc-preview/-/vue-doc-preview-0.3.2.tgz",
"integrity": "sha512-1zRW/LOLpgtt+bdb4jRzsKfOngkJYzFJsKT0uH4/KqdUMVo7W8jhYUuVcllnw5mHVL/l4v3JESsqX+i8v3uhRw==",
"dependencies": {
"axios": "^0.18.0",
"highlight.js": "^9.12.0",
"marked": "^0.4.0"
}
},
"node_modules/vue-doc-preview/node_modules/axios": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
"deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410",
"dependencies": {
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"node_modules/vue-doc-preview/node_modules/debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/vue-doc-preview/node_modules/follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"dependencies": {
"debug": "=3.1.0"
},
"engines": {
"node": ">=4.0"
}
},
"node_modules/vue-doc-preview/node_modules/highlight.js": {
"version": "9.18.5",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
"integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==",
"deprecated": "Support has ended for 9.x series. Upgrade to @latest",
"hasInstallScript": true,
"engines": {
"node": "*"
}
},
"node_modules/vue-doc-preview/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
"dev": true,
......@@ -12295,6 +12565,24 @@
"dev": true,
"license": "ISC"
},
"node_modules/which-typed-array": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
"integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/wide-align": {
"version": "1.1.5",
"dev": true,
......@@ -13834,6 +14122,11 @@
"@types/node": "*"
}
},
"@vue-office/pdf": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@vue-office/pdf/-/pdf-2.0.2.tgz",
"integrity": "sha512-bQFqGxSOnKbvCS7OoJniYoTz1VIm1XOrRD27Msorxny9NFJ8RsQK1A4uhlnISJRFMaUwp1qlcVE9jMAhsiIyjg=="
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"dev": true
......@@ -14539,6 +14832,14 @@
"postcss-value-parser": "^4.2.0"
}
},
"available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"requires": {
"possible-typed-array-names": "^1.0.0"
}
},
"aws-sign2": {
"version": "0.7.0"
},
......@@ -14791,12 +15092,15 @@
"dev": true
},
"call-bind": {
"version": "1.0.5",
"dev": true,
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.1",
"set-function-length": "^1.1.1"
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
}
},
"callsites": {
......@@ -15571,12 +15875,13 @@
}
},
"define-data-property": {
"version": "1.1.1",
"dev": true,
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"requires": {
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
}
},
"define-lazy-prop": {
......@@ -15842,6 +16147,19 @@
"stackframe": "^1.3.4"
}
},
"es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"requires": {
"get-intrinsic": "^1.2.4"
}
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"es-module-lexer": {
"version": "1.4.1"
},
......@@ -16122,6 +16440,14 @@
"follow-redirects": {
"version": "1.15.3"
},
"for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"requires": {
"is-callable": "^1.1.3"
}
},
"forever-agent": {
"version": "0.6.1"
},
......@@ -16173,8 +16499,7 @@
"version": "1.0.0"
},
"function-bind": {
"version": "1.1.2",
"dev": true
"version": "1.1.2"
},
"gauge": {
"version": "2.7.4",
......@@ -16235,9 +16560,11 @@
"dev": true
},
"get-intrinsic": {
"version": "1.2.2",
"dev": true,
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
......@@ -16339,7 +16666,6 @@
},
"gopd": {
"version": "1.0.1",
"dev": true,
"requires": {
"get-intrinsic": "^1.1.3"
}
......@@ -16443,22 +16769,21 @@
"version": "3.0.0"
},
"has-property-descriptors": {
"version": "1.0.1",
"dev": true,
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"requires": {
"get-intrinsic": "^1.2.2"
"es-define-property": "^1.0.0"
}
},
"has-proto": {
"version": "1.0.1",
"dev": true
"version": "1.0.1"
},
"has-symbol-support-x": {
"version": "1.4.2"
},
"has-symbols": {
"version": "1.0.3",
"dev": true
"version": "1.0.3"
},
"has-to-string-tag-x": {
"version": "1.4.1",
......@@ -16466,6 +16791,14 @@
"has-symbol-support-x": "^1.4.1"
}
},
"has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"requires": {
"has-symbols": "^1.0.3"
}
},
"has-unicode": {
"version": "2.0.1",
"dev": true
......@@ -16476,7 +16809,6 @@
},
"hasown": {
"version": "2.0.0",
"dev": true,
"requires": {
"function-bind": "^1.1.2"
}
......@@ -16743,6 +17075,15 @@
"version": "2.1.0",
"dev": true
},
"is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
}
},
"is-arrayish": {
"version": "0.2.1",
"dev": true
......@@ -16753,6 +17094,16 @@
"binary-extensions": "^2.0.0"
}
},
"is-buffer": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
"integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
},
"is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
},
"is-core-module": {
"version": "2.13.1",
"dev": true,
......@@ -16781,6 +17132,14 @@
"version": "3.0.0",
"dev": true
},
"is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
"is-glob": {
"version": "4.0.3",
"requires": {
......@@ -16817,6 +17176,14 @@
"is-stream": {
"version": "1.1.0"
},
"is-typed-array": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
"integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"requires": {
"which-typed-array": "^1.1.14"
}
},
"is-typedarray": {
"version": "1.0.0"
},
......@@ -17239,9 +17606,9 @@
}
},
"mammoth": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.7.2.tgz",
"integrity": "sha512-MqWU2hcLf1I5QMKyAbfJCvrLxnv5WztrAQyorfZ+WPq7Hk82vZFmvfR2/64ajIPpM4jlq0TXp1xZvp/FFaL1Ug==",
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.8.0.tgz",
"integrity": "sha512-pJNfxSk9IEGVpau+tsZFz22ofjUsl2mnA5eT8PjPs2n0BP+rhVte4Nez6FdgEuxv3IGI3afiV46ImKqTGDVlbA==",
"requires": {
"@xmldom/xmldom": "^0.8.6",
"argparse": "~1.0.3",
......@@ -17266,6 +17633,11 @@
"version": "4.3.0",
"dev": true
},
"marked": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz",
"integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw=="
},
"mdn-data": {
"version": "2.0.14",
"dev": true
......@@ -18115,6 +18487,11 @@
}
}
},
"possible-typed-array-names": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q=="
},
"postcss": {
"version": "8.4.31",
"requires": {
......@@ -19147,13 +19524,16 @@
"dev": true
},
"set-function-length": {
"version": "1.1.1",
"dev": true,
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"requires": {
"define-data-property": "^1.1.1",
"get-intrinsic": "^1.2.1",
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
"has-property-descriptors": "^1.0.2"
}
},
"setimmediate": {
......@@ -19816,6 +20196,18 @@
"os-homedir": "^1.0.0"
}
},
"util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"requires": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"util-deprecate": {
"version": "1.0.2"
},
......@@ -19942,6 +20334,58 @@
}
}
},
"vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg=="
},
"vue-doc-preview": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/vue-doc-preview/-/vue-doc-preview-0.3.2.tgz",
"integrity": "sha512-1zRW/LOLpgtt+bdb4jRzsKfOngkJYzFJsKT0uH4/KqdUMVo7W8jhYUuVcllnw5mHVL/l4v3JESsqX+i8v3uhRw==",
"requires": {
"axios": "^0.18.0",
"highlight.js": "^9.12.0",
"marked": "^0.4.0"
},
"dependencies": {
"axios": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
"requires": {
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "=3.1.0"
}
},
"highlight.js": {
"version": "9.18.5",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
"integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA=="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"vue-hot-reload-api": {
"version": "2.3.4",
"dev": true
......@@ -20308,6 +20752,18 @@
"version": "2.0.1",
"dev": true
},
"which-typed-array": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
"integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"requires": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.2"
}
},
"wide-align": {
"version": "1.1.5",
"dev": true,
......
......@@ -8,6 +8,7 @@
},
"dependencies": {
"@onlyoffice/document-editor-vue": "^1.3.0",
"@vue-office/pdf": "^2.0.2",
"@wangeditor/editor-for-vue": "^1.0.2",
"axios": "^1.6.2",
"core-js": "^3.8.3",
......@@ -17,11 +18,14 @@
"element-ui": "^2.15.14",
"jquery": "^3.7.1",
"jszip": "^3.10.1",
"mammoth": "^1.7.2",
"mammoth": "^1.8.0",
"moment": "^2.30.1",
"scss": "^0.2.4",
"util": "^0.12.5",
"vue": "^2.6.14",
"vue-cli": "^2.9.6",
"vue-demi": "^0.14.10",
"vue-doc-preview": "^0.3.2",
"vue-pdf": "^4.3.0",
"vue-router": "^3.5.1",
"vuex": "^3.6.2",
......
......@@ -275,6 +275,14 @@ export function gdrectificationVerification(params) {
export function downloadObject(params) {
return download(`${ARCH_EVALUATION}/oss/downloadObject`, params)
}
//多文件下载
export function downloadObjectStr(params) {
return download(`${ARCH_EVALUATION}/oss/downloadObjectStr`, params)
}
//多文件删除 /oss/delAll
export function delAll(params) {
return post(`${ARCH_EVALUATION}/oss/delAll`, params)
}
//下载归档
export function downloadObjectAll(params) {
return download(`${ARCH_EVALUATION}/oss/downloadObjectAll`, params)
......@@ -402,10 +410,14 @@ export function tjRuleProjectLink(params){
export function selWtqdFZ(params){
return post(`${ARCH_EVALUATION}/evalQuesInfo/selWtqd`, params)
}
//iframe展示文件
//iframe展示文件
export function selFile(params){
return post(`${ARCH_EVALUATION}/evalQuesInfo/selFile`, params)
}
export function selFileList(params){
return post(`${ARCH_EVALUATION}/evalQuesInfo/selFileList`, params)
}
//明显查询
export function selWtmx(params){
return post(`${ARCH_EVALUATION}/evalQuesInfo/selWtmx`, params)
......@@ -421,4 +433,22 @@ export function bcevalQuesInfo(params){
//首页
export function projectInfoSy(params){
return post(`${ARCH_EVALUATION}/projectInfo/sy`, params)
}
\ No newline at end of file
}
//项目列表页面
export function pmProInitiation(params){
return post(`${ARCH_EVALUATION}/pmProInitiation/`, params)
}
//项目清单
export function MaterialWarehous(params){
return post(`${ARCH_EVALUATION}/pmProInitiation/MaterialWarehouse`, params)
}
//更新类型
export function chpmProInitiation(params){
return post(`${ARCH_EVALUATION}/pmProInitiation/ch`, params)
}
//历史记录
export function HistoryVersion(params){
return post(`${ARCH_EVALUATION}/pmProInitiation/HistoryVersion`, params)
}
......@@ -31,6 +31,7 @@ export const routes = [
redirect: defaultRouter(),
component: () => import('@/views/layout/mainLayout.vue'),
children: [
{
path: '/layout/main',
name: 'main',
......@@ -39,6 +40,7 @@ export const routes = [
title: "首页",
},
},
//后评估自查
{
path: '/assesszc/auxiliarySelection',
......@@ -57,11 +59,19 @@ export const routes = [
},
},
{
path: '/assesszc/projectView',
name: 'projectView',
component: () => import('@/views/assessZC/projectView.vue'),
meta: {
title: "项目档案库",
},
},
{
path: '/assesszc/materialAcquisition',
name: 'materialAcquisition',
component: () => import('@/views/assessZC/materialAcquisition.vue'),
meta: {
title: "自查评估材料提交与整改",
title: "自查整改",
},
},
{
......@@ -129,7 +139,7 @@ export const routes = [
name: 'materialAcquisition',
component: () => import('@/views/assessChecks/materialAcquisition.vue'),
meta: {
title: "评估材料提交与整改",
title: "评估问题整改",
},
},
{
......
......@@ -131,6 +131,19 @@ export function projectCategoryText(type) {
}
}
export function constructionFormText(type) {
switch (type) {
case "1":
return '独立建设'
break;
case "2":
return '统推'
break;
case "3":
return '自建'
break;
}
}
export function ruleType(msg){
switch (msg) {
case "应有可研报告或项目说明书":
......
......@@ -137,7 +137,7 @@ export function trendsRules(type) {
url: "",
children: [
{
name: "评估材料提交与整改",
name: "评估问提整改",
url: "/mainLayout/materialAcquisition",
children: [],
},
......@@ -216,13 +216,21 @@ export function trendsRules(type) {
url: "/assesszc/auxiliarySelection",
children: [],
},
// {
// name: "项目档案库",
// url: "/assesszc/projectView",
// children: [],
// },
{
name: "自查评估项目确认",
url: "/assesszc/confirmRelease",
children: [],
},
{
name: "自查评估材料提交与整改",
name: "自查问题整改",
url: "/assesszc/materialAcquisition",
children: [],
},
......@@ -254,7 +262,7 @@ export function trendsRules(type) {
children: [],
},
{
name: "评估材料提交与整改",
name: "评估问题整改",
url: "/mainLayout/materialAcquisition",
children: [],
},
......
......@@ -23,7 +23,6 @@
:label="item.typeText"
:name="item.typeCode"
>
<!-- <p style="height:600px"> {{ item.typeText }}</p> -->
<iframe
v-if="blobType=='pdf'"
:src="iframeUrl"
......@@ -37,9 +36,6 @@
<div ref="word" id="preview" >
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
......@@ -242,7 +238,7 @@ export default {
disabled: false,
oldQuestionList: [], //对比列表
blobType:'pdf',//bolb类型
projectName:''
projectName:'',
};
},
mounted() {
......
......@@ -468,9 +468,9 @@
placeholder="请选择"
clearable
>
<el-option label="统推" value="01"></el-option>
<el-option label="自建" value="02"></el-option>
<el-option label="独立建设" value="03"></el-option>
<el-option label="统推" value="1"></el-option>
<el-option label="自建" value="2"></el-option>
<el-option label="独立建设" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人:" prop="personCharge" class="fromItem">
......
......@@ -105,9 +105,9 @@
<el-button @click="detailsForm()">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
<el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
<!-- <el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
><i class="el-icon-finished"></i> 提交评估材料</el-button
>
> -->
<el-button @click="confirm()" :disabled="confirmdisabled" :class="confirmdisabled?'noclick':''">
<i class="el-icon-chat-dot-square"></i
>&nbsp;&nbsp;&nbsp;问题整改</el-button
......@@ -151,6 +151,19 @@
</el-table-column>
<el-table-column prop="postEvalStateText" label="项目审核状态" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期">
</el-table-column>
</el-table>
......@@ -167,7 +180,7 @@
>
</el-pagination>
<el-dialog
title="提交评估材料"
title="评估项目详情"
:visible.sync="dialog"
width="90%"
:modal-append-to-body="false"
......@@ -767,29 +780,37 @@ export default {
this.$message("请选择");
return;
}
console.log("222");
this.dialogXQ = true;
let params = {
current: this.currentPage,
pageSize: this.pageSize,
projectId: this.checkedList[0].projectId,
batchId: this.checkedList[0].batchId,
proType: this.checkedList[0]. projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
let res = await clqdevaluationMaterials(params);
this.tableDataQD = this.tableDataNew;
this.tableDataQD = this.tableDataQD
.concat(res.data.records)
.reduce((accumulator, currentObj) => {
const existingObj = accumulator.find(
(obj) => obj.typeCode == currentObj.typeCode
);
if (existingObj) {
Object.assign(existingObj, currentObj);
} else {
accumulator.push(currentObj);
}
return accumulator;
}, []);
let res = await MaterialWarehous(params);
this.tableDataQD = res.data.records;
this.dialog = true;
this.tableDataQD.forEach((item) => {
switch (item.projectStage) {
case "1":
this.$set(item, "projectStagetext", "可研");
break;
case "2":
this.$set(item, "projectStagetext", "计划");
break;
case "3":
this.$set(item, "projectStagetext", "采购");
break;
case "4":
this.$set(item, "projectStagetext", "合同");
break;
case "5":
this.$set(item, "projectStagetext", "执行");
break;
case "6":
this.$set(item, "projectStagetext", "结决算及转资");
break;
}
});
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
......@@ -1174,10 +1195,6 @@ export default {
/deep/ .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
// /deep/.el-table th.el-table__cell.is-leaf,
// .el-table td.el-table__cell {
// text-align: center;
// }
/deep/ .el-table__cell {
text-align: center;
}
......
<template>
<div class="dialogFrom">
<p class="xqtitle"><span></span>批次详情</p>
<el-form
:model="ruleFormdialog"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-input v-model="ruleFormdialog.batchYear" disabled></el-input>
</el-form-item>
<el-form-item label="后评估名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialog.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评估日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialog.planReviewDate"
disabled
></el-input>
</el-form-item>
<el-form-item label="后评估专家:" prop="expertName" class="fromItem">
<el-input v-model="ruleFormdialog.expertName" disabled></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialog.description"
disabled
></el-input>
</el-form-item>
</el-form>
<p class="xqtitle"><span></span>本项目材料清单</p>
<div class="setscrolldialog">
<el-table
@selection-change="handleSelectionChange"
:data="tableDataQD"
tooltip-effect="dark myTooltips"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="材料类别" prop="batchtype">
</el-table-column>
<el-table-column prop="typeText" label="资料类型">
</el-table-column>
<el-table-column
prop="fileName"
label="资料名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectCategory" label="操作">
<template slot-scope="scope">
<input
type="file"
@change="handleFileUpload($event, scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
<p class="Btn">
<span @click="cancel()">取消</span>
<span @click="preserve()">保存</span>
<span @click="save()">确认上传</span>
</p>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
......@@ -24,9 +24,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input
v-model="ruleForm.projectId"
v-model="ruleForm.projectCode"
placeholder="请输入"
clearable
></el-input>
......@@ -38,9 +38,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYear" class="fromItem">
<el-form-item label="项目年度:" prop="issueYear" class="fromItem">
<el-select
v-model="ruleForm.projectYear"
v-model="ruleForm.issueYear"
placeholder="请选择"
clearable
>
......@@ -126,7 +126,7 @@
<el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="expertName" label="评审专家"> </el-table-column>
<el-table-column prop="projectId" label="项目编码" width="140"> </el-table-column>
<el-table-column prop="projectCode" label="项目编码" width="140"> </el-table-column>
<el-table-column
prop="projectName"
......@@ -134,17 +134,29 @@
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="120">
<template slot-scope="scope">
{{ scope.row.projectYear }}
<el-table-column prop="issueYear" label="项目年度" width="120">
<template slot-scope="scope" >
<span v-show="scope.row.issueYear"> {{ scope.row.issueYear }}</span>
</template>
</el-table-column>
<el-table-column prop="projectCategory" label="建设形式" width="120">
<el-table-column prop="constructionForm" label="建设形式" width="120">
</el-table-column>
<el-table-column prop="postEvalStateText" label="项目审核状态" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期">
</el-table-column>
<el-table-column prop="lastUpdateTime" label="实际评估日期">
......@@ -179,13 +191,13 @@
<div>
<p class="title"><span></span>项目基本信息</p>
<div class="content">
<p><label>项目编号:</label>{{ listData.projectId }}</p>
<p><label>项目年度:</label>{{ listData.projectYear }}年</p>
<p><label>项目编号:</label>{{ listData.projectCode }}</p>
<p><label>项目年度:</label>{{ listData.issueYear }}年</p>
<p>
<label>项目名称:</label>
<span>{{ listData.projectName }}</span>
</p>
<p><label>建设形式:</label>{{ listData.projectCategory }}</p>
<p><label>建设形式:</label>{{ listData.constructionForm }}</p>
<p>
<label>总投资计划(万元)-成本金:</label
>{{ listData.costAmountTotal }}
......@@ -346,7 +358,7 @@ import {
downloadObject,
downloadObjectAll
} from "@/api/index";
import { generateYearOptions, projectCategoryText } from "@/utils/cache";
import { generateYearOptions, constructionFormText } from "@/utils/cache";
export default {
data() {
return {
......@@ -361,7 +373,7 @@ export default {
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
projectCode: "",
},
ruleFormdialog: {
batchYear: "",
......@@ -386,7 +398,7 @@ export default {
},
mounted() {
this.ruleForm.batchName = this.$route.query.batchName;
this.ruleForm.projectId = this.$route.query.projCode;
this.ruleForm.projectCode = this.$route.query.projCode;
this.submitForm();
},
......@@ -428,8 +440,8 @@ export default {
}
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
......@@ -453,12 +465,12 @@ export default {
this.dialog = true;
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
};
Promise.all([fzcxXqselect(params), clqdselect(params)]).then((res) => {
this.listData = res[0].data.records[0];
this.listData.projectCategory = projectCategoryText(
this.listData.projectCategory
this.listData.constructionForm = constructionFormText(
this.listData.constructionForm
);
this.qdtableData = JSON.parse(JSON.stringify(this.tableDataNew));
if (res[1].data.records.length > 0) {
......@@ -523,7 +535,7 @@ export default {
if (this.activeName == "second") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
};
this.xxtableData = [];
let res = await wtqdqselect(params);
......@@ -582,7 +594,7 @@ export default {
} else if (this.activeName == "third") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
};
let res = await selLcb(params);
if (res.code == "200") {
......@@ -641,7 +653,7 @@ export default {
return;
}
let response = await downloadObjectAll({
prjId:this.checkedList[0].projectId,
prjId:this.checkedList[0].projectCode,
bathId: this.checkedList[0].batchId,
});
let blob = new Blob([response], { type: 'application/zip' })
......
......@@ -24,9 +24,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input
v-model="ruleForm.projectId"
v-model="ruleForm.projectCode"
placeholder="请输入"
clearable
></el-input>
......@@ -38,9 +38,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYear" class="fromItem">
<el-form-item label="项目年度:" prop="issueYear" class="fromItem">
<el-select
v-model="ruleForm.projectYear"
v-model="ruleForm.issueYear"
placeholder="请选择"
clearable
>
......@@ -132,7 +132,7 @@
</el-table-column>
<el-table-column prop="expertName" label="评审专家"> </el-table-column>
<el-table-column prop="projectId" label="项目编码" width="120">
<el-table-column prop="projectCode" label="项目编码" width="120">
</el-table-column>
<el-table-column
prop="projectName"
......@@ -140,19 +140,40 @@
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="120">
<template slot-scope="scope">
{{ scope.row.projectYear }}
<el-table-column prop="issueYear" label="项目年度" width="120">
<template slot-scope="scope" >
<span v-show="scope.row.issueYear"> {{ scope.row.issueYear }}</span>
</template>
</el-table-column>
<el-table-column prop="projectType" label="项目类型" width="120">
<template slot-scope="scope" >
<span v-show="scope.row.projectType"> {{ scope.row.projectType|proType }}</span>
</template>
</el-table-column>
<el-table-column prop="projectCategory" label="建设形式" width="120">
<el-table-column prop="constructionForm" label="建设形式" width="120">
</el-table-column>
<el-table-column
prop="postEvalStateText"
label="项目审核状态 "
width="120"
>
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<!-- <el-table-column prop="reviewStatusText" label="项目审核状态" width="120">
</el-table-column> -->
<el-table-column prop="planReviewDate" label="计划评估日期">
......@@ -372,10 +393,11 @@ import {
downloadObject,
tjrectificationVerification
} from "@/api/index";
import { generateYearOptions, projectCategoryText } from "@/utils/cache";
import { generateYearOptions, constructionFormText } from "@/utils/cache";
export default {
data() {
return {
dialogFullScreen:false,
yearsList: generateYearOptions(),
showButton: true,
ruleForm: {
......@@ -383,7 +405,7 @@ export default {
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
projectCode: "",
dates: [],
},
ruleFormdialog: {
......@@ -426,6 +448,21 @@ export default {
this.ruleForm.batchName = this.$route.query.batchName;
this.submitForm();
},
filters: {
proType(val) {
if (val == 1) {
return "咨询设计类";
} else if (val == 2) {
return "开发实施类";
}else if (val == 3){
return "业务运营类";
}else if (val == 4){
return "数据工程类";
}else if (val == 5){
return "产品购置类";
}
},
},
methods: {
//整改复核
async rectificationReview() {
......@@ -437,7 +474,7 @@ export default {
}
this.dialogQR = true;
let params = {
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
......@@ -586,8 +623,8 @@ export default {
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
......@@ -609,8 +646,10 @@ export default {
return;
}
let params = {
projectId: this.checkedList[0].projectId,
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectCode,
contractNumber: this.checkedList[0].contractNumber,
proType:this.checkedList[0].projectType
};
this.$router.push({
path: "/assesszc/Compliance",
......@@ -627,7 +666,7 @@ export default {
return;
}
let params = {
projectId: this.checkedList[0].projectId,
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
this.$router.push({
......@@ -656,7 +695,7 @@ export default {
console.log("222");
// this.dialog = true;
let params = {
projectId: this.checkedList[0].projectId,
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
this.$router.push({
......@@ -679,7 +718,7 @@ export default {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
projectId: this.checkedList[0].projectId,
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
let res = await chpostEvalQuesInfo(params);
......
......@@ -23,9 +23,20 @@
:label="item.typeText"
:name="item.typeCode"
>
<!-- <p style="height:600px"> {{ item.typeText }}</p> -->
<div class="opt" v-show="options.length>0">
<el-select v-model="valuesel" clearable placeholder="请选择" @change="changexm">
<el-option
v-for="(item,index) in options"
:key="item.name"
:label="item.name"
:value="index">
</el-option>
</el-select>
</div>
<iframe
v-if="blobType=='pdf'"
v-if="blobType=='pdf'&&options.length>0"
:key="iframeUrl"
:src="iframeUrl"
frameborder="0"
style="width: 80%; height: 60vh; margin: auto; display: block"
......@@ -33,13 +44,10 @@
<div v-else-if="blobType=='png'||blobType=='jpg'" class="blobImg">
<img :src="iframeUrl" alt="">
</div>
<div class="docDiv" v-else-if="blobType=='docx'">
<div ref="word" id="preview" >
<div class="docDiv" v-else-if="blobType=='docx'&&options.length>0">
<div :ref="`word${item.typeCode}`" :id="`word${item.typeCode}`" >
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
......@@ -206,11 +214,14 @@ import {
bcevalQuesInfo,
ossupload,
presignedUrl,
selFileList
} from "@/api/index";
import { MaterialsListKY } from "@/utils/cache";
export default {
data() {
return {
valuesel:'',
options:[],
dialogImageUrl: "",
fileList: [],
evalList: [
......@@ -227,7 +238,7 @@ export default {
{ label: "执行", id: 4 },
{ label: "结决算及转资", id: 5 },
],
tabListKY: MaterialsListKY(1),
tabListKY:[],
active: 0,
activeName: "0",
clqparams: {},
......@@ -242,7 +253,8 @@ export default {
disabled: false,
oldQuestionList: [], //对比列表
blobType:'pdf',//bolb类型
projectName:""
projectName:"",
valuesel:""
};
},
mounted() {
......@@ -261,13 +273,7 @@ export default {
})
.then(() => {
this.save();
this.$router.push({
path: "/assesszc/Compliancefz",
query: {
clqparams: JSON.stringify(this.clqparams),
projectName:this.projectName
},
});
})
.catch((action) => {
......@@ -342,6 +348,10 @@ export default {
handleExceed() {
this.$message.warning(`只能选择一张图片`);
},
changexm(row){
this.downloadObject(this.options[row])
console.log(row,'换文件')
},
async init(type) {
let params = {
projectStage: this.active * 1 + 1,
......@@ -349,8 +359,25 @@ export default {
...type,
};
Promise.all([selFile(params), selWtqdFZ(params)]).then(async (res) => {
this.tabListKY=[]
this.urlList = res[0].data;
if(this.urlList.length>0){
this.urlList.forEach(item=>{
this.tabListKY.push({typeText:item.materialName,typeCode:item.mid})
})
this.activeName=this.tabListKY[0].typeCode
let resList= await selFileList({ ...params,typeCode:this.tabListKY[0].typeCode });
this.options= resList.data
if(this.options.length>0){
this.valuesel=this.options[0].name
this. downloadObject(this.options[0])
}else{
this.blobType='png'
this.iframeUrl = "/nopdf.png";
}
}else{
// this.iframeUrl = "/nopdf.png";
}
if (res[1].data) {
this.questionList = res[1].data.records;
let counterNum = 0;
......@@ -425,54 +452,47 @@ export default {
}
})
}
console.log(this.questionList,'2')
if (this.urlList.length <= 0) {
this.iframeUrl = "/nopdf.png";
} else {
let resUrl = await downloadObject({fileId: this.urlList[0].id});
this.blobType=this.urlList[0].fileType
const binaryData = []
});
},
async downloadObject(row){
let resUrl = await downloadObject({fileId:row.id});
this.blobType=row.suffix
const binaryData = []
binaryData.push(resUrl)
let URL = window.URL.createObjectURL(new Blob(binaryData, { type: this.urlList[0].contentType}))
this.iframeUrl = URL
let URL = window.URL.createObjectURL(new Blob(binaryData, { type:row.contentType}))
this.iframeUrl = URL+'#view=FitH,top'
console.log(this.blobType,'文件类型')
if(this.blobType=='docx'){
let docx = require("docx-preview");
window.JSZip = require("jszip");
this.$nextTick(()=>{
docx.renderAsync(resUrl,document.getElementById("preview")) // 渲染到页面预览
docx.renderAsync(resUrl,document.getElementById(`word${item.typeCode}`)) // 渲染到页面预览
})
}
}
});
},
async handleClick(tab) {
console.log("切换", tab.name, this.urlList);
this.urlList.forEach(async (item) => {
if (item.typeCode == tab.name) {
let resUrl = await downloadObject({fileId:item.id});
this.blobType=item.fileType
const binaryData = []
binaryData.push(resUrl)
let URL = window.URL.createObjectURL(new Blob(binaryData, { type:item.contentType}))
this.iframeUrl = URL;
if(this.blobType=='docx'){
let docx = require("docx-preview");
window.JSZip = require("jszip");
this.$nextTick(()=>{
docx.renderAsync(resUrl,document.getElementById("preview")) // 渲染到页面预览
})
}
} else {
// this.iframeUrl =""
let params = {
projectStage: this.active * 1 + 1,
hgx:"hgx",
...this.clqparams,
};
this.options=[]
this.valuesel=''
this.iframeUrl =""
console.log("切换", tab.index,);
let resList= await selFileList({ ...params,typeCode:this.tabListKY[tab.index].typeCode });
this.options= resList.data
if(this.options.length>0){
this.valuesel=this.options[0].name
this.downloadObject(this.options[0])
}else{
this.blobType='png'
this.iframeUrl = "/nopdf.png";
}
});
console.log(this.iframeUrl, "this.iframeUrl");
}
},
change(id) {
console.log(this.questionList, this.oldQuestionList, "相同么");
console.log(
JSON.stringify(this.questionList) ==
JSON.stringify(this.oldQuestionList),
......@@ -484,7 +504,7 @@ export default {
JSON.stringify(this.oldQuestionList)
) {
this.active = id * 1;
this.tabListKY = MaterialsListKY(id * 1 + 1);
// this.tabListKY = MaterialsListKY(id * 1 + 1);
this.init(this.clqparams);
return;
}
......@@ -497,14 +517,14 @@ export default {
.then(() => {
this.save();
this.active = id * 1;
this.tabListKY = MaterialsListKY(id * 1 + 1);
// this.tabListKY = MaterialsListKY(id * 1 + 1);
this.init(this.clqparams);
})
.catch((action) => {
console.log(action, "actionaction");
if (action === "cancel") {
this.active = id * 1;
this.tabListKY = MaterialsListKY(id * 1 + 1);
// this.tabListKY = MaterialsListKY(id * 1 + 1);
this.init(this.clqparams);
} else {
}
......@@ -563,8 +583,6 @@ export default {
}
},
cancel() {
console.log("电击取消");
// this.$router.go(-1);
this.$router.push({
path: "/assesszc/auxiliaryInspection",
});
......@@ -591,6 +609,13 @@ export default {
let res = await bcevalQuesInfo(params);
if (res.code == "200") {
this.$message("保存成功");
this.$router.push({
path: "/assesszc/Compliancefz",
query: {
clqparams: JSON.stringify(this.clqparams),
projectName:this.projectName
},
});
} else {
this.$message("保存失败");
}
......@@ -852,12 +877,22 @@ export default {
.blobImg{
width: 100%;
img{
width: 100%;
text-align: center;
width:80%;
}
}
.docDiv{
width: 100%;
height:600px;
overflow-y: auto;
overflow: auto;
}
.opt{
height: 40px;
width: 100%;
text-align: left;
padding-left: 10px;
/deep/ .el-input__inner{
width:600px;
}
}
</style>
\ No newline at end of file
......@@ -205,10 +205,10 @@
<el-table-column type="selection"> </el-table-column>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column prop="department" label="部门" width="150">
</el-table-column>
<el-table-column label="项目编码" width="150" prop="projectId">
<!-- <el-table-column prop="department" label="部门" width="150">
</el-table-column> -->
<el-table-column label="项目编码" width="150" prop="projectCode">
</el-table-column>
<el-table-column
......@@ -224,36 +224,44 @@
width="100"
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="100">
<el-table-column prop="issueYear" label="项目年度" width="140">
<template slot-scope="scope">
{{ scope.row.projectYear }}
{{ scope.row.issueYear}}
</template>
</el-table-column>
<el-table-column label="总投资计划(万元)" width="200">
<el-table-column
prop="costAmountTotal"
label="成本金"
width="100"
>
</el-table-column>
<el-table-column
prop="capitalAmountTotal"
label="资本金"
width="100"
>
</el-table-column>
</el-table-column>
<!-- <el-table-column prop="department" label="承建单位" width="150">
</el-table-column> -->
<el-table-column prop="personCharge" label="负责人" width="110">
</el-table-column>
<el-table-column
prop="projectInfo"
label="项目内容"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="startupStatus" label="启动日期" width="90">
</el-table-column>
<el-table-column prop="accountingStatus" label="入账状态" width="90">
</el-table-column>
<el-table-column
prop="accountingProportion"
label="累计入账占比"
width="90"
>
<template slot-scope="scope">
{{ scope.row.accountingProportion }}%
</template>
</el-table-column>
<el-table-column prop="entryAmount" label="入账金额(万)" width="120">
</el-table-column>
<el-table-column prop="currentProgress" label="当前进度" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
width="220"
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectLeader" label="负责人" width="110">
</el-table-column>
</el-table>
</div>
<el-pagination
......@@ -336,10 +344,8 @@
<el-table-column type="selection"> </el-table-column>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column prop="department" label="部门" width="150">
</el-table-column>
<el-table-column label="项目编码" width="150" prop="projectId">
<el-table-column label="项目编码" width="150" prop="projectCode">
</el-table-column>
<el-table-column
......@@ -355,36 +361,44 @@
width="100"
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="100">
<el-table-column prop="issueYear" label="项目年度" width="140">
<template slot-scope="scope">
{{ scope.row.projectYear }}
{{ scope.row.issueYear}}
</template>
</el-table-column>
<el-table-column label="总投资计划(万元)" width="200">
<el-table-column
prop="costAmountTotal"
label="成本金"
width="100"
>
</el-table-column>
<el-table-column
prop="capitalAmountTotal"
label="资本金"
width="100"
>
</el-table-column>
</el-table-column>
<!-- <el-table-column prop="department" label="承建单位" width="150">
</el-table-column> -->
<el-table-column prop="personCharge" label="负责人" width="110">
</el-table-column>
<el-table-column
prop="projectInfo"
label="项目内容"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="startupStatus" label="启动日期" width="90">
</el-table-column>
<el-table-column prop="accountingStatus" label="入账状态" width="90">
</el-table-column>
<el-table-column
prop="accountingProportion"
label="累计入账占比"
width="90"
>
<template slot-scope="scope">
{{ scope.row.accountingProportion }}%
</template>
</el-table-column>
<el-table-column prop="entryAmount" label="入账金额(万)" width="120">
</el-table-column>
<el-table-column prop="currentProgress" label="当前进度" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
width="220"
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectLeader" label="负责人" width="110">
</el-table-column>
<el-table-column label="操作" width="130">
<template slot-scope="scope">
......@@ -433,53 +447,44 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-input
v-model="ruleFormZJ.projectId"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName" class="fromItem">
<el-input
v-model="ruleFormZJ.projectName"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYearStr" class="fromItem">
<el-select
v-model="ruleFormZJ.projectYearStr"
placeholder="请选择"
clearable
multiple
>
<el-option
v-for="(item, index) in yearsList"
:key="index"
:label="item + '年'"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="建设形式:" prop="projectCategory" class="fromItem">
<el-select
v-model="ruleFormZJ.projectCategory"
placeholder="请选择"
clearable
>
<el-option label="统推" value="01"></el-option>
<el-option label="自建" value="02"></el-option>
<el-option label="独立建设" value="03"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人:" prop="personCharge" class="fromItem">
<el-input
v-model="ruleFormZJ.personCharge"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input
v-model="ruleForm.projectCode"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName" class="fromItem">
<el-input
v-model="ruleForm.projectName"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="issueYear" class="fromItem">
<el-select v-model="ruleForm.issueYear" placeholder="请选择" clearable>
<el-option
v-for="(item, index) in yearsList"
:key="index"
:label="item + '年'"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="项目负责人:" prop="projectLeader" class="fromItem">
<el-input
v-model="ruleForm.projectLeader"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<!-- <el-form-item label="部门:" prop="department" class="fromItem">
<el-input
v-model="ruleForm.department"
placeholder="请输入"
clearable
></el-input>
</el-form-item> -->
<!-- <el-form-item label="项目内容:" prop="projectInfo" class="fromItem">
<el-input
v-model="ruleFormZJ.projectInfo"
......@@ -506,10 +511,10 @@
<el-table-column type="selection"> </el-table-column>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column prop="department" label="部门" width="150">
</el-table-column>
<el-table-column label="项目编码" width="150" prop="projectId">
<!-- <el-table-column prop="department" label="部门" width="150">
</el-table-column> -->
<el-table-column label="项目编码" width="150" prop="projectCode">
</el-table-column>
<el-table-column
......@@ -525,36 +530,45 @@
width="100"
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="100">
<el-table-column prop="issueYear" label="项目年度" width="140">
<template slot-scope="scope">
{{ scope.row.projectYear }}
{{ scope.row.issueYear}}
</template>
</el-table-column>
<el-table-column label="总投资计划(万元)" width="200">
<el-table-column
prop="costAmountTotal"
label="成本金"
width="100"
>
</el-table-column>
<el-table-column
prop="capitalAmountTotal"
label="资本金"
width="100"
>
</el-table-column>
</el-table-column>
<!-- <el-table-column prop="department" label="承建单位" width="150">
</el-table-column> -->
<el-table-column prop="personCharge" label="负责人" width="110">
</el-table-column>
<el-table-column
prop="projectInfo"
label="项目内容"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="startupStatus" label="启动日期" width="90">
</el-table-column>
<el-table-column prop="accountingStatus" label="入账状态" width="90">
</el-table-column>
<el-table-column
prop="accountingProportion"
label="累计入账占比"
width="90"
>
<template slot-scope="scope">
{{ scope.row.accountingProportion }}%
</template>
</el-table-column>
<el-table-column prop="entryAmount" label="入账金额(万)" width="120">
</el-table-column>
<el-table-column prop="currentProgress" label="当前进度" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
width="220"
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectLeader" label="负责人" width="110">
</el-table-column>
</el-table>
</div>
......@@ -585,11 +599,11 @@ import {
fbProjectInfo,
delProjectInfo,
joinProjectInfo,
getProjectInfo,
pmProInitiation,
chProjectInfo,
bcProjectInfo
} from "@/api/index";
import { generateYearOptions, projectCategoryText } from "@/utils/cache";
import { generateYearOptions, projectCategoryText,constructionFormText } from "@/utils/cache";
export default {
data() {
return {
......@@ -744,7 +758,7 @@ export default {
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
constructionFormText(item.constructionForm)
);
});
this.addtotal = res.data.total * 1;
......@@ -779,7 +793,7 @@ export default {
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
constructionFormText(item.constructionForm)
);
});
this.addtotal = res.data.total * 1;
......@@ -860,12 +874,9 @@ export default {
this.addtableData = [...this.addtableData, ...this.addZJList];
this.addtableData = this.addtableData.filter((obj, index, self) => {
return index == self.findIndex((t) => t.projectId == obj.projectId);
return index == self.findIndex((t) => t.projectCode == obj.projectCode);
});
console.log(this.addtableData, "addtableData");
this.addtotal = this.addtableData.length;
// this.handleCurrentChangeZJ(1);
// this.handleSizeChangeAdd(5);
this.dialogAddzj = false;
},
cancelZJ() {
......@@ -880,14 +891,14 @@ export default {
prjStr: this.oldid,
};
Object.assign(params, this.ruleFormZJ);
let res = await getProjectInfo(params);
let res = await pmProInitiation(params);
console.log(res.data.records, "res.data.recordsres.data.records");
this.zjtableData = res.data.records;
this.zjtableData.forEach((item) => {
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
constructionFormText(item.constructionForm)
);
});
this.zjtotal = res.data.total * 1;
......@@ -903,7 +914,7 @@ export default {
let expertIdList = "";
if (this.addtableData.length > 0) {
this.addtableData.forEach((item) => {
expertIdList = expertIdList.concat(item.projectId + ",");
expertIdList = expertIdList.concat(item.projectCode + ",");
});
}
......@@ -931,7 +942,7 @@ export default {
let expertIdList = "";
if (this.addtableData.length > 0) {
this.addtableData.forEach((item) => {
expertIdList = expertIdList.concat(item.projectId + ",");
expertIdList = expertIdList.concat(item.projectCode + ",");
});
}
......@@ -961,7 +972,7 @@ export default {
//点击删除
async handleClick(row, index, rows) {
let params = {
projectId: row.projectId,
projectId: row.projectCode,
batchId: this.checkedList[0].batchId,
};
this.$confirm("此操作将删除该项目, 是否继续?", "提示", {
......
......@@ -31,9 +31,9 @@
</el-select>
</el-form-item> -->
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input
v-model="ruleForm.projectId"
v-model="ruleForm.projectCode"
placeholder="请输入"
clearable
></el-input>
......@@ -50,9 +50,9 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYear" class="fromItem">
<el-form-item label="项目年度:" prop="issueYear" class="fromItem">
<el-select
v-model="ruleForm.projectYear"
v-model="ruleForm.issueYear"
placeholder="请选择"
clearable
>
......@@ -105,9 +105,9 @@
<el-button @click="detailsForm()">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
<el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
<!-- <el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
><i class="el-icon-finished"></i> 提交评估材料</el-button
>
> -->
<el-button @click="confirm()" :disabled="confirmdisabled" :class="confirmdisabled?'noclick':''">
<i class="el-icon-chat-dot-square"></i
>&nbsp;&nbsp;&nbsp;问题整改</el-button
......@@ -135,22 +135,42 @@
<el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="expertName" label="评审专家"> </el-table-column>
<el-table-column prop="projectId" label="项目编码"> </el-table-column>
<el-table-column prop="projectCode" label="项目编码"> </el-table-column>
<el-table-column
prop="projectName"
label="项目名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectYear" label="项目年度" width="120">
<template slot-scope="scope">
{{ scope.row.projectYear }}
<el-table-column prop="issueYear" label="项目年度" width="120">
<template slot-scope="scope" >
<span v-show="scope.row.issueYear"> {{ scope.row.issueYear }}</span>
</template>
</el-table-column>
<el-table-column prop="projectType" label="项目类型" width="120">
<template slot-scope="scope" >
<span v-show="scope.row.projectType"> {{ scope.row.projectType|proType }}</span>
</template>
</el-table-column>
<el-table-column prop="projectCategory" label="建设形式" width="120">
<el-table-column prop="constructionForm" label="建设形式" width="120">
</el-table-column>
<el-table-column prop="postEvalStateText" label="项目审核状态" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期">
</el-table-column>
</el-table>
......@@ -167,8 +187,8 @@
>
</el-pagination>
<el-dialog
title="提交评估材料"
:visible.sync="dialog"
title="评估材料详情"
:visible.sync="dialogXQ"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
......@@ -178,6 +198,7 @@
<p class="xqtitle"><span></span>批次详情</p>
<el-form
:model="ruleFormdialog"
ref="ruleFormdialog"
label-width="100px"
class="demo-ruleForm"
>
......@@ -223,104 +244,25 @@
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="材料类别" prop="batchtype">
<el-table-column label="材料类别" prop="projectStagetext">
</el-table-column>
<el-table-column prop="typeText" label="资料类型">
<el-table-column label="资料类型" prop="materialName">
</el-table-column>
<el-table-column
prop="fileName"
prop="fullName"
label="资料名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectCategory" label="操作">
<template slot-scope="scope">
<input
type="file"
@change="handleFileUpload($event, scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
<p class="Btn">
<span @click="cancel()">取消</span>
<span @click="preserve()">保存</span>
<span @click="save()">确认上传</span>
</p>
</div>
</el-dialog>
<el-dialog
title="提交评估材料"
:visible.sync="dialogXQ"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
@close="closeDialog"
>
<div class="dialogFrom">
<p class="xqtitle"><span></span>批次详情</p>
<el-form
:model="ruleFormdialog"
ref="ruleFormdialog"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-input v-model="ruleFormdialog.batchYear" disabled></el-input>
</el-form-item>
<el-form-item label="后评估名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialog.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评估日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialog.planReviewDate"
disabled
></el-input>
</el-form-item>
<el-form-item label="后评估专家:" prop="expertName" class="fromItem">
<el-input v-model="ruleFormdialog.expertName" disabled></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialog.desc"
disabled
></el-input>
</el-form-item>
</el-form>
<p class="xqtitle"><span></span>本项目材料清单</p>
<div class="setscrolldialog">
<el-table
@selection-change="handleSelectionChange"
:data="tableDataQD"
tooltip-effect="dark myTooltips"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="材料类别" prop="batchtype">
</el-table-column>
<el-table-column prop="typeText" label="资料类型">
</el-table-column>
<el-table-column prop="fileName" label="资料名称">
<template slot-scope="scope" v-if="scope.row.fileName">
{{ scope.row.fileName }}&nbsp;&nbsp;<el-button
<!-- <el-table-column prop="fullName" label="资料名称">
<template slot-scope="scope" v-if="scope.row.fullName">
{{ scope.row.fullName }}&nbsp;&nbsp;<el-button
@click="handleClickXZ(scope.row)"
>下载</el-button
>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
</div>
</div>
......@@ -420,7 +362,7 @@
/>
</template>
</el-table-column>
<el-table-column label="上传整改材料类型" prop="typeText" width="auto">
<!-- <el-table-column label="上传整改材料类型" prop="typeText" width="auto">
<template slot-scope="scope" v-if="scope.row.evalQues">
<el-select v-model="scope.row.typeText" placeholder="请选择" clearable>
<el-option
......@@ -431,7 +373,7 @@
/>
</el-select>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="上传整改材料" prop="zgFileId" width="auto">
<template slot-scope="scope" v-if="scope.row.evalQues">
<input
......@@ -472,9 +414,10 @@ import {
qrProblemAssistedFeedback,
wtssSelProblemRectification,
wtzgxfProblemRectification,
ossuploadStr
ossuploadStr,
MaterialWarehous
} from "@/api/index";
import { generateYearOptions, projectCategoryText } from "@/utils/cache";
import { generateYearOptions, constructionFormText } from "@/utils/cache";
export default {
data() {
return {
......@@ -487,7 +430,7 @@ export default {
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
projectCode: "",
dates: [],
},
ruleFormdialog: {
......@@ -516,6 +459,21 @@ export default {
confirmdisabled:false,
};
},
filters: {
proType(val) {
if (val == 1) {
return "咨询设计类";
} else if (val == 2) {
return "开发实施类";
}else if (val == 3){
return "业务运营类";
}else if (val == 4){
return "数据工程类";
}else if (val == 5){
return "产品购置类";
}
},
},
watch: {
// 监听路由对象中的参数部分
"$route.params": {
......@@ -558,7 +516,7 @@ export default {
}
this.dialogQR = true;
let params = {
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
......@@ -638,6 +596,7 @@ export default {
},
async saveSubmit() {
let res = await wtzgxfProblemRectification(this.tableDataQR);
this.$refs.myTable.doLayout(); // 解决表格错位
if (res.code == "200") {
this.$message("提交成功");
this.dialogQR = false;
......@@ -659,11 +618,6 @@ export default {
colspan: _col,
};
}
// this.$nextTick(() => {
// console.log('表格错位',this.$refs.myTable.doLayout)
// this.$refs.myTable.doLayout(); // 解决表格错位
// });
},
//问题确认开关
controlSwitch(val, row) {
......@@ -696,15 +650,10 @@ export default {
}else if (item.postEvalState == 4) {
this.$set(item, "postEvalStateText", "已归档");
}
// if (item.batchState == "3") {
// this.$set(item, "batchStateText", "执行中");
// } else if (item.batchState == "5") {
// this.$set(item, "batchStateText", "已完成");
// }
this.$set(
item,
"projectCategory",
projectCategoryText(item.projectCategory)
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
......@@ -734,7 +683,7 @@ export default {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
let res = await clqdevaluationMaterials(params);
......@@ -754,11 +703,8 @@ export default {
}
return accumulator;
}, []);
console.log(this.tableDataQD, " mergedArray mergedArray mergedArray");
// this.tableDataQD.forEach((item) => {
// // this.$set(item, "batchtype", "开发、实施类");
// });
}
},
//详情
......@@ -767,29 +713,37 @@ export default {
this.$message("请选择");
return;
}
console.log("222");
this.dialogXQ = true;
let params = {
current: this.currentPage,
pageSize: this.pageSize,
projectId: this.checkedList[0].projectId,
batchId: this.checkedList[0].batchId,
proType: this.checkedList[0]. projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
let res = await clqdevaluationMaterials(params);
this.tableDataQD = this.tableDataNew;
this.tableDataQD = this.tableDataQD
.concat(res.data.records)
.reduce((accumulator, currentObj) => {
const existingObj = accumulator.find(
(obj) => obj.typeCode == currentObj.typeCode
);
if (existingObj) {
Object.assign(existingObj, currentObj);
} else {
accumulator.push(currentObj);
}
return accumulator;
}, []);
let res = await MaterialWarehous(params);
this.tableDataQD = res.data.records;
this.dialogXQ = true;
this.tableDataQD.forEach((item) => {
switch (item.projectStage) {
case "1":
this.$set(item, "projectStagetext", "可研");
break;
case "2":
this.$set(item, "projectStagetext", "计划");
break;
case "3":
this.$set(item, "projectStagetext", "采购");
break;
case "4":
this.$set(item, "projectStagetext", "合同");
break;
case "5":
this.$set(item, "projectStagetext", "执行");
break;
case "6":
this.$set(item, "projectStagetext", "结决算及转资");
break;
}
});
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
......@@ -851,7 +805,7 @@ export default {
async save(type) {
this.dialog = false;
let params = {
projectId: this.checkedList[0].projectId,
projectCode: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
let res = await qrscevaluationMaterials(params);
......@@ -861,13 +815,14 @@ export default {
// ||this.file.type=='application/vnd.openxmlformats-officedocument.wordprocessingml.document'
this.file = event.target.files[0];
console.log("来了么",this.file);
if(this.file.type=='application/pdf'||this.file.type=='image/png'||this.file.type=='image/jpeg'){
this.submitFile(row);
}else{
console.log( event,' row row row')
this.$message('只能上传格式为png、jpeg、pdf文件或图片')
event.target.value =''
}
this.submitFile(row);
// if(this.file.type=='application/pdf'||this.file.type=='image/png'||this.file.type=='image/jpeg'){
// this.submitFile(row);
// }else{
// console.log( event,' row row row')
// this.$message('只能上传格式为png、jpeg、pdf文件或图片')
// event.target.value =''
// }
},
handleFileUploadZG(event, row, id) {
console.log("来了么");
......@@ -886,7 +841,7 @@ export default {
formData.append("file",fileDom[i]);
}
formData.append("typeCode",row.typeText);
formData.append("prjId",this.checkedList[0].projectId);
formData.append("prjId",this.checkedList[0].projectCode);
formData.append("bathId",this.checkedList[0].batchId);
ossuploadStr(formData)
.then((response) => {
......@@ -896,10 +851,6 @@ export default {
response.data.list.forEach((item) => {
fileId = fileId.concat(item.fileId + ",");
});
// if(fileId.charAt(str.length-1)==','){
// newStr = str.substring(0, str.length - 1);
// }
fileId = fileId.substring(0, fileId.length - 1);
this.$set(row, type,fileId);
console.log(this.tableDataQR,type,'tableDataQR')
......@@ -935,7 +886,7 @@ export default {
if (this.file) {
const formData = new FormData();
formData.append("file", this.file);
formData.append("prjId", this.checkedList[0].projectId);
formData.append("prjId", this.checkedList[0].projectCode);
formData.append("typeCode", row.typeCode);
formData.append("bathId", this.checkedList[0].batchId);
......@@ -1298,8 +1249,8 @@ h3 {
.eltable {
box-sizing: border-box;
text-align: center;
width: 190%;
min-width: 190%;
width: 250%;
min-width: 250%;
}
/deep/.el-table--scrollable-x .el-table__body-wrapper {
overflow-x: hidden !important;
......@@ -1314,5 +1265,10 @@ h3 {
.noclick{
opacity: 0.5;
}
.xqtitle {
text-align: left;
font-size: 18px;
border-bottom: 1px solid gainsboro;
padding-bottom: 10px;}
</style>
\ No newline at end of file
<template>
<div class="main">
<el-form
:model="ruleForm"
ref="formName"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input
v-model="ruleForm.projectCode"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName" class="fromItem">
<el-input
v-model="ruleForm.projectName"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="issueYear" class="fromItem">
<el-select v-model="ruleForm.issueYear" placeholder="请选择" clearable>
<el-option
v-for="(item, index) in yearsList"
:key="index"
:label="item + '年'"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="建设形式:" prop="constructionForm" class="fromItem">
<el-select
v-model="ruleForm.constructionForm"
placeholder="请选择"
clearable
>
<el-option label="独立建设" value="1"></el-option>
<el-option label="自建" value="2"></el-option>
<el-option label="统推" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="合同编码:" prop="contractNumber" class="fromItem">
<el-input
v-model="ruleForm.contractNumber"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="合同名称:" prop="contractName" class="fromItem">
<el-input
v-model="ruleForm.contractName"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<!-- <el-form-item label="部门:" prop="department" class="fromItem">
<el-input
v-model="ruleForm.department"
placeholder="请输入"
clearable
></el-input>
</el-form-item> -->
<el-form-item class="button">
<el-button @click="submitForm()">
<img class="buttonIcon" src="../../assets/cx.png" />查询</el-button
>
<el-button @click="resetForm()">
<img class="buttonIcon" src="../../assets/cz.png" />重置</el-button
>
<el-button
@click="changeLX(ruleFormdialog)"
class="buttonIcon"
:disabled="inspectdisabled"
:class="inspectdisabled ? 'noclick' : ''"
>
<i class="el-icon-refresh"></i> &nbsp;&nbsp;更换项目类型</el-button
>
<!-- v-if="scope.row.projectType" -->
</el-form-item>
</el-form>
<div class="setscroll">
<el-table
@selection-change="handleSelectionChange"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark myTooltips"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column type="selection"> </el-table-column>
<el-table-column prop="projectCode" label="项目编码" width="140">
</el-table-column>
<el-table-column
prop="projectName"
label="项目名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="issueYear" label="项目年度" width="90">
<template slot-scope="scope"> {{ scope.row.issueYear }}</template>
</el-table-column>
<el-table-column prop="projectType" label="项目类型" width="120">
<template slot-scope="scope">
<span v-show="scope.row.projectType">
{{ scope.row.projectType | proType }}</span
>
</template>
</el-table-column>
<el-table-column prop="constructionForm" label="建设形式" width="90">
</el-table-column>
<el-table-column prop="startupStatus" label="启动日期" width="90">
</el-table-column>
<el-table-column prop="accountingStatus" label="入账状态" width="90">
</el-table-column>
<el-table-column
prop="accountingProportion"
label="累计入账占比"
width="90"
>
<template slot-scope="scope">
{{ scope.row.accountingProportion }}%
</template>
</el-table-column>
<el-table-column prop="entryAmount" label="入账金额(万)" width="120">
</el-table-column>
<el-table-column prop="currentProgress" label="当前进度" width="120">
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编码"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="projectLeader" label="项目负责人" width="120">
</el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button @click="upload(scope.row)" type="text" size="small"
>详情</el-button
>
<!-- <el-button @click="changeLX(scope.row)" type="text" size="small" v-if="scope.row.projectType"
>更换项目类型</el-button
> -->
</template>
</el-table-column>
</el-table>
</div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 50, 100]"
:page-size="1000"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
class="elpagination"
>
</el-pagination>
<!-- <el-dialog
title="项目文档"
:visible.sync="dialog"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
custom-class="fullscreen-dialog"
> -->
<el-dialog
:visible.sync="dialog"
:fullscreen="dialogFullScreen"
:class="[dialogFullScreen ? 'fullscreen' : 'no_fullscreen']"
>
<div class="dialogFrom">
<p class="xqtitle"><span></span>{{ ruleFormdialog.projectName }}</p>
<div class="setscrolldialog">
<el-table
:data="tableDataQR"
tooltip-effect="dark myTooltips"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column
label="材料类别"
prop="projectStagetext"
width="100"
>
</el-table-column>
<el-table-column label="资料类型" prop="materialName">
</el-table-column>
<el-table-column
prop="fullName"
label="资料名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="constructionForm" label="操作" width="350">
<template slot-scope="scope">
<el-upload
class="upload_box"
ref="upload"
:multiple="true"
:http-request="
(res) => {
return fileupdate(scope.row, res);
}
"
:on-change="uploadChange"
:with-credentials="true"
:auto-upload="true"
:file-list="scope.row.fileList"
action=""
:on-success="handleSuccess"
>
<el-button size="small" type="primary" class="btn-search"
>上传</el-button
>
</el-upload>
<el-button
size="small"
type="primary"
class="btn-search"
@click="preview(scope.row)"
:disabled="!scope.row.fullId"
>预览</el-button
>
<el-button
size="small"
type="primary"
class="btn-search"
@click="downloadObjectStr(scope.row)"
:disabled="!scope.row.fullId"
>下载</el-button
>
<el-button
size="small"
type="primary"
class="btn-search"
@click="delAll(scope.row)"
:disabled="!scope.row.fullId"
>删除</el-button
>
</template>
</el-table-column>
<el-table-column
prop="constructionForm"
label="历史版本"
width="100"
>
<template slot-scope="scope">
<el-button
size="small"
type="primary"
class="btn-search"
@click="history(scope.row)"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<p class="Btn">
<span @click="cancel()">取消</span>
<!-- <span @click="preserve()">保存</span>
<span @click="save()">确认上传</span> -->
</p>
</div>
<el-dialog
class="innerVisible"
width="60%"
title="历史版本"
:visible.sync="innerVisible"
append-to-body
>
<template slot="title">
<div class="custom_dialog_header">
<span class="el_dialog_title">项目文档</span>
<div
class="custom_dialog_menu"
@click="dialogFullScreen = !dialogFullScreen"
>
<i class="el-icon-full-screen"></i>
</div>
</div>
</template>
<el-table
:data="tableHistory"
tooltip-effect="dark myTooltips"
style="width: 100%"
header-cell-class-name="custom-th-background"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column prop="fullTime" label="上传日期" width="200">
</el-table-column>
<el-table-column
prop="fullName"
label="文件名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
</el-table>
</el-dialog>
<el-dialog
title="文件预览"
width="70%"
append-to-body
:visible.sync="dialogVisible"
class="bigdialog"
>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
v-for="(item, index) in tabListYL"
:key="item.name"
:label="item.name"
:name="index + ''"
>
<iframe
v-if="blobType == 'pdf'"
:src="item.iframeUrl"
frameborder="0"
style="width: 60vh; height: 70vh; margin: 0 auto; display: block"
></iframe>
<div class="docDiv" v-else-if="blobType == 'docx'">
<div :ref="`word${item.url}`" :id="`word${item.url}`"></div>
</div>
<!-- <div v-else-if="blobType=='png'||blobType=='jpg'" class="blobImg">
<img :src="iframeUrl" alt="">
</div>
-->
</el-tab-pane>
</el-tabs>
</el-dialog>
</el-dialog>
<el-dialog
title="请选择您要操作的项目类型"
class="tips"
:visible.sync="showType"
width="40%"
>
<el-form :model="form" class="projectType">
<el-form-item label="项目类型" prop="projectType">
<el-select v-model="form.projectType" placeholder="请选择项目类型">
<el-option label="咨询设计类" value="1"></el-option>
<el-option label="开发实施类" value="2"></el-option>
<el-option label="业务运营类" value="3"></el-option>
<el-option label="数据工程类" value="4"></el-option>
<el-option label="产品购置类" value="5"></el-option>
</el-select>
</el-form-item>
<el-form-item class="rightBtn">
<el-button @click="showType = false">取 消</el-button>
<el-button
type="primary"
@click="projectType()"
:disabled="!form.projectType"
>确 定</el-button
>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {
generateYearOptions,
constructionFormText,
MaterialsList,
} from "@/utils/cache";
import {
pmProInitiation,
MaterialWarehous,
ossuploadStr,
chpmProInitiation,
downloadObjectStr,
delAll,
downloadObject,
HistoryVersion,
presignedUrl,
} from "@/api/index";
import { Loading } from "element-ui";
export default {
data() {
return {
dialogFullScreen: false,
tableHistory: [],
processen: "",
fileList: [],
tableDataNew: MaterialsList(),
checkedList: [],
yearsList: generateYearOptions(),
ruleForm: {},
tableData: [],
currentPage: 1,
pageSize: 10,
total: 0,
dialog: false,
ruleFormdialog: {},
tableDataQR: [],
showType: false,
form: {},
rowdata: {},
rules: {
projectType: [
{ required: true, message: "请选择项目类型", trigger: "change" },
],
},
innerVisible: false,
upprojectType: "",
dialogVisible: false,
activeName: "0",
tabListYL: [],
iframeUrl: "",
blobType: "",
inspectdisabled: false,
};
},
filters: {
proType(val) {
if (val == 1) {
return "咨询设计类";
} else if (val == 2) {
return "开发实施类";
} else if (val == 3) {
return "业务运营类";
} else if (val == 4) {
return "数据工程类";
} else if (val == 5) {
return "产品购置类";
}
},
},
mounted() {
this.submitForm();
this.processenv = process.env.VUE_APP_BASE_URL;
},
methods: {
upload(row) {
this.ruleFormdialog = row;
if (!row.projectType) {
this.form = {};
this.showType = true;
} else {
this.upprojectType = row.projectType;
this.MaterialWarehous(row.projectType);
}
},
changeLX() {
this.$confirm("切换项目类型将删除历史上传文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then((res) => {
this.form = {};
this.showType = true;
})
.catch();
},
projectType() {
console.log(this.form.projectType, "2222");
this.chpmProInitiation(this.form.projectType);
this.MaterialWarehous(this.form.projectType);
this.showType = false;
},
async downloadObjectStr(row) {
let params = {
fileIdStr: row.fullId,
fullNameStr: row.fullName,
fullUrlStr: row.fullUrl,
materialName: row.materialName,
};
let response = await downloadObjectStr(params);
let blob = new Blob([response], { type: "application/zip" });
let url = window.URL.createObjectURL(blob);
const link = document.createElement("a"); // 创建a标签
link.href = url;
link.download = row.materialName + "压缩文件"; // 重命名文件
link.click();
URL.revokeObjectURL(url); // 释放内存
},
async delAll(row) {
this.$confirm("此操作将删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
let params = {
fileIdStr: row.fullId,
};
let response = await delAll(params);
if (response.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
this.MaterialWarehous(this.upprojectType);
} else {
this.$message({
type: "info",
message: "删除失败!",
});
}
})
.catch(() => {});
},
async chpmProInitiation(projectType) {
let params = {
...this.ruleFormdialog,
};
params.projectType = projectType;
let res = await chpmProInitiation(params);
},
async MaterialWarehous(projectType) {
console.log("不调接口了");
this.dialog = true;
let params = {
proType: projectType,
contractNumber: this.ruleFormdialog.contractNumber,
prjId: this.ruleFormdialog.projectCode,
};
let res = await MaterialWarehous(params);
this.tableDataQR = res.data.records;
console.log(this.tableDataQR, "this.tableDataQR");
this.tableDataQR.forEach((item) => {
switch (item.projectStage) {
case "1":
this.$set(item, "projectStagetext", "可研");
break;
case "2":
this.$set(item, "projectStagetext", "计划");
break;
case "3":
this.$set(item, "projectStagetext", "采购");
break;
case "4":
this.$set(item, "projectStagetext", "合同");
break;
case "5":
this.$set(item, "projectStagetext", "执行");
break;
case "6":
this.$set(item, "projectStagetext", "结决算及转资");
break;
}
});
// this.dataPretreatment();
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
async submitForm() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
let res = await pmProInitiation(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.$nextTick(() => {
// myTable是表格的ref属性值
if (this.$refs.multipleTable && this.$refs.multipleTable.doLayout) {
this.$refs.multipleTable.doLayout(); // 解决表格错位
}
});
this.tableData.forEach((item) => {
this.$set(
item,
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
this.dialogXQ = true;
}
},
//主列表选中行信息
handleSelectionChange(selection) {
this.inspectdisabled = false;
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
}
this.ruleFormdialog = this.$refs.multipleTable.selection[0];
if (!this.ruleFormdialog.projectType) {
this.inspectdisabled = true;
}
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm();
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
cancel() {
this.dialog = false;
},
preserve() {
this.dialog = false;
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm();
},
async history(msg) {
console.log("达拉");
let res = await HistoryVersion({ ...msg });
this.tableHistory = res.data.records;
this.innerVisible = true;
},
// handleRemove(file, fileList) {
// //文件移出
// this.formData.fileId = ''
// console.log(file, fileList);
// },
// handleFileUploadSuccess(res, file, fileList) {
// this.$message('上传成功')
// console.log(res);
// console.log(file);
// console.log(fileList);
// },
// 移除附件
// 监控上传文件列表
uploadChange(file, fileList) {
// console.log(fileList, "this.fileList");
// let existFile = fileList
// .slice(0, fileList.length - 1)
// .find((f) => f.name === file.name);
// if (existFile) {
// this.$message.error("当前文件已经存在!");
// fileList.pop();
// }
// this.fileList = fileList;
},
fileupdate(items, list) {
console.log(items, list, "list");
this.fileList.push(list.file);
this.debounce(this.submitFile, 500, items);
},
debounce(fn, waits, items) {
if (this.timer) {
clearTimeout(this.timer);
this.timer = null;
}
this.timer = setTimeout(() => {
fn.apply(this, arguments); // 把参数传进去
}, waits);
},
submitFile(items) {
console.log(arguments[2], "arguments");
if (this.fileList.length === 0) {
this.$message.success("请上传文件");
return;
}
this.uploadLoading = true;
let formData = new FormData(); // 用FormData存放上传文件
this.fileList.forEach((file) => {
console.log(file, "2222222");
formData.append("file", file); // file.raw
});
formData.append("typeCode", arguments[2].mid);
formData.append("prjId", this.ruleFormdialog.projectCode);
formData.append("bathId", this.ruleFormdialog.contractNumber);
ossuploadStr(formData)
.then((response) => {
// this.$refs.upload.clearQueue() ;
if (response.code == "200") {
this.fileList = [];
this.MaterialWarehous(this.upprojectType);
console.log(this.$refs.upload, "this.$refs.upload");
this.$refs.upload.clearFiles();
this.$message("上传成功");
} else {
this.$message("上传失败");
}
})
.catch((error) => {
// console.error(error);
// this.$message("上传失败");
});
},
handleSuccess(response, file, fileList) {
// 提交保存成功后清空已上传的文件
this.$refs.upload.clearFiles();
},
async preview(row) {
this.tabListYL = [];
console.log(row.fullName, "33333");
let array = row.fullName.split(",");
array.forEach((item, index) => {
this.tabListYL.push({
name: item,
id: row.fullId.split(",")[index],
url: row.fullUrl.split(",")[index],
});
});
console.log(this.tabListYL, "this.tabListYL");
this.downloadObject("0");
},
handleClick(tab) {
console.log("切换", tab.name, this.tabListYL[tab.name].iframeUrl);
if (!this.tabListYL[tab.name].iframeUrl) {
this.downloadObject(tab.name + "");
}
},
async downloadObject(index) {
let loadingInstance;
loadingInstance = Loading.service({
lock: true,
text: "文件加载中,请耐心等待...",
});
this.blobType = "";
console.log(this.tabListYL, "this.tabListYL");
let resUrl = await downloadObject({ fileId: this.tabListYL[index].id });
loadingInstance.close();
if (this.tabListYL[index].url.slice(-3) == "pdf") {
this.blobType = "pdf";
const binaryData = [];
binaryData.push(resUrl);
let URL = window.URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
);
this.$nextTick(() => {
this.$set(this.tabListYL[index], "iframeUrl", URL + "#view=FitH,top");
});
} else if (this.tabListYL[index].url.slice(-4) == "docx") {
this.blobType = "docx";
let docx = require("docx-preview");
this.$nextTick(() => {
docx.renderAsync(
resUrl,
document.getElementById(`word${this.tabListYL[index].url}`)
); // 渲染到页面预览
});
} else {
let paramsImg = {
fileId: this.tabListYL[index].id,
url: this.tabListYL[index].url,
};
let resUrl = await presignedUrl(paramsImg);
// this.iframeUrl="http://view.officeapps.live.com/op/view.aspx?src=http://arch-file.oss-cn-beijing.aliyuncs.com/66a83f6f4386f71e7b950b87.doc?Expires=1722907981&OSSAccessKeyId=LTAI5tGjidtvVSCvwGxTp8FH&Signature=4p2boWzux%2FscZHWQz2E4gVRF94w%3D"
}
console.log(this.blobType);
this.dialogVisible = true;
},
},
};
</script>
<style scoped lang="scss">
.main {
font-size: 14px;
position: relative;
height: 100%;
width: 100%;
box-sizing: border-box;
overflow-x: hidden;
}
.el-form {
display: flex;
width: 99%;
flex-wrap: wrap;
border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7;
padding: 20px 10px;
margin-bottom: 20px;
.fromItem {
min-width: 24%;
margin: 0 0.5%;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
display: inline-block;
margin-left: 10px !important;
}
/deep/ .el-form-item__label {
font-weight: bold;
color: #000;
width: 160px !important;
}
.button {
display: inline-block;
width: 100%;
text-align: left;
/deep/ .el-form-item__content {
margin-left: 20px !important;
text-align: left;
img {
width: 14px;
height: 14px;
margin-right: 15px;
vertical-align: middle;
}
}
.el-button {
background-color: #23c6c8;
border-color: #23c6c8;
color: #fff;
}
}
}
/deep/ .el-table .warning-row {
background: #f0ffff;
// color: #2785e6;
}
.eltable {
width: 100%;
box-sizing: border-box;
}
/deep/ .el-table .warning-row {
background: #f0ffff;
// color: #2785e6;
}
.elpagination {
text-align: center;
margin-right: 100px;
}
/deep/ .el-dialog {
border-radius: 10px;
margin-top: 3vh !important;
margin-left: 3vw !important;
}
/deep/ .el-dialog__wrapper {
position: absolute;
}
/deep/ .v-modal {
position: absolute;
}
/deep/ .el-dialog__header {
background-color: #0d867f;
padding-bottom: 20px;
text-align: left;
border-radius: 10px 10px 0 0;
.el-dialog__title {
color: #fff;
}
}
/deep/ .el-table__header th {
background-color: #f5f5f5;
font-weight: bold;
.cell {
color: #333;
}
}
/deep/.el-table {
width: 100%;
.el-table__header-wrapper table,
.el-table__body-wrapper table {
width: 100% !important;
}
.el-table__body,
.el-table__footer,
.el-table__header {
table-layout: auto;
}
}
.xqtitle {
text-align: left;
font-size: 18px;
border-bottom: 1px solid gainsboro;
padding-bottom: 10px;
margin-top: 0;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
.dialog {
min-height: 680px;
overflow-y: auto;
/deep/ .el-form {
width: 65%;
flex-wrap: wrap;
padding: 0 10px;
text-align: center;
margin: 100px auto;
border: none;
.fromItem {
text-align: center;
width: 51%;
margin: 0 auto;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
}
/deep/ .el-form-item__label {
font-weight: 400;
// color: #000;
width: 160px !important;
}
}
}
/deep/ .el-table__cell {
text-align: center;
}
.tips {
margin-left: 19vw;
// margin-top: 30vh;
}
.projectType {
text-align: center;
}
.upload-demo {
display: inline-block;
}
.rightBtn {
width: 100%;
text-align: right;
}
.upload_box {
display: inline-block;
margin-right: 10px;
}
/deep/.el-upload-list__item-name {
display: none;
}
.Btn {
width: 300px;
margin: 0 auto;
margin-top: 20px;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 4px;
margin-right: 12px;
background-color: #0d867f;
border: 1px solid #0d867f;
color: #fff;
}
span:first-of-type {
border: 1px solid #000;
background: #fff;
color: #333;
}
// span:last-of-type {
// background-color: #0d867f;
// border: 1px solid #0d867f;
// color: #fff;
// }
}
.innerVisible {
left: 20vw;
top: 15vh;
}
.innerVisible /deep/.el-dialog__body {
min-height: 50vh;
}
.setscroll {
width: 100%;
height: 600px;
position: relative;
overflow: auto;
}
.bigdialog {
left: 20vw;
}
.bigdialog /deep/.el-dialog__body {
min-height: 70vh;
}
// .dialogFrom {
// .eltable {
// height: 500px;
// overflow-y: auto;
// }
// }
// .setscrolldialog {
// width: 100%;
// height: 290px;
// overflow-x: auto;
// overflow-y: hidden;
// box-sizing: border-box;
// /deep/ .el-table {
// width: 96% !important;
// height: 300px;
// overflow: auto;
// }
// }
// .docDiv{
// width: 63vh;
// height: 70vh; margin:0 auto;
// overflow: auto;
// }
/deep/.docx-wrapper {
padding: 0 !important;
}
/deep/.docx {
width: 100% !important;
display: table !important;
padding: 2em 1em 0 !important;
}
/deep/.el-table {
transform: translate(0);
}
::v-deep.el-table::before {
display: none !important;
}
.noclick {
opacity: 0.5;
}
.fullscreen {
/deep/ .el-dialog {
width: 100%;
}
}
.no_fullscreen {
/deep/ .el-dialog {
width: 90%;
}
}
/deep/ .custom_dialog_header {
display: flex;
justify-content: space-between;
}
/deep/ .custom_dialog_menu {
padding: 6px 30px 0 0;
}
/deep/ .custom_dialog_menu i {
color: #909399;
font-size: 15px;
}
/deep/ .el-icon-full-screen {
cursor: pointer;
}
</style>
\ No newline at end of file
......@@ -30,7 +30,7 @@ export default {
<style lang="scss" scoped>
.main{
min-height: 100%;
min-height:80vh;
padding: 10px;
padding-top:5px;
padding-bottom: 0;
......
<template>
<div class="mian">
<!-- <div class="head-container">
<div class="head-container">
<div class="logo" style="z-index: 10">
<div class="logo-inner">
<img src="../../assets/logo.png" alt="" />
......@@ -46,7 +46,7 @@
</div>
</div>
</div>
</div> -->
</div>
<router-view></router-view>
<!-- <MainLayout class="continer">
<router-view></router-view>
......
......@@ -11,6 +11,7 @@
ref="kzMenu"
>
<el-menu-item index="/mainLayout/mianHome" class="classmain">首页</el-menu-item>
<el-menu-item index="/assesszc/projectView" class="classmain">项目档案库</el-menu-item>
<el-submenu
v-for="(item, index) in menuList"
:key="index"
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!