Commit 824bd438 by lixinming

no message

parent 8318a9e1
...@@ -3631,7 +3631,6 @@ ...@@ -3631,7 +3631,6 @@
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": { "requires": {
"sprintf-js": "~1.0.2" "sprintf-js": "~1.0.2"
} }
...@@ -6905,6 +6904,11 @@ ...@@ -6905,6 +6904,11 @@
"randombytes": "^2.0.0" "randombytes": "^2.0.0"
} }
}, },
"dingbat-to-unicode": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz",
"integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w=="
},
"dir-glob": { "dir-glob": {
"version": "2.2.2", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
...@@ -6964,6 +6968,14 @@ ...@@ -6964,6 +6968,14 @@
"buffer-indexof": "^1.0.0" "buffer-indexof": "^1.0.0"
} }
}, },
"docx-preview": {
"version": "0.1.11",
"resolved": "https://registry.npmjs.org/docx-preview/-/docx-preview-0.1.11.tgz",
"integrity": "sha512-dqNDLKJP5xiisB+OeC7f7xxNFzOS0JA/C/cwvnpMZS5bzguEuf+Ufli57unnaaT63EMZRVXvxB6/5fw/g3sWWA==",
"requires": {
"jszip": ">=3.0.0"
}
},
"dom-converter": { "dom-converter": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
...@@ -7023,6 +7035,14 @@ ...@@ -7023,6 +7035,14 @@
"domelementtype": "1" "domelementtype": "1"
} }
}, },
"duck": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz",
"integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==",
"requires": {
"underscore": "^1.13.1"
}
},
"duplexer": { "duplexer": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
...@@ -9264,6 +9284,11 @@ ...@@ -9264,6 +9284,11 @@
"integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
"dev": true "dev": true
}, },
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
},
"import-cwd": { "import-cwd": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
...@@ -10431,6 +10456,17 @@ ...@@ -10431,6 +10456,17 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"jszip": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz",
"integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==",
"requires": {
"lie": "~3.3.0",
"pako": "~1.0.2",
"readable-stream": "~2.3.6",
"setimmediate": "^1.0.5"
}
},
"keyv": { "keyv": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "http://192.168.12.179:4874/keyv/-/keyv-3.0.0.tgz", "resolved": "http://192.168.12.179:4874/keyv/-/keyv-3.0.0.tgz",
...@@ -10501,6 +10537,14 @@ ...@@ -10501,6 +10537,14 @@
"type-check": "~0.3.2" "type-check": "~0.3.2"
} }
}, },
"lie": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
"requires": {
"immediate": "~3.0.5"
}
},
"load-json-file": { "load-json-file": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
...@@ -10790,6 +10834,16 @@ ...@@ -10790,6 +10834,16 @@
"js-tokens": "^3.0.0 || ^4.0.0" "js-tokens": "^3.0.0 || ^4.0.0"
} }
}, },
"lop": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz",
"integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==",
"requires": {
"duck": "^0.1.12",
"option": "~0.2.1",
"underscore": "^1.13.1"
}
},
"loud-rejection": { "loud-rejection": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
...@@ -10847,6 +10901,34 @@ ...@@ -10847,6 +10901,34 @@
"tmpl": "1.0.x" "tmpl": "1.0.x"
} }
}, },
"mammoth": {
"version": "1.4.21",
"resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.4.21.tgz",
"integrity": "sha512-znix1/i7LtfVMAe6mmrxJSoN1HmTASJ48I+PofSHs4vPKCuPF1DDOCVeMgZTYpitzjWTWs9Xhxxi2LBbHpmovg==",
"requires": {
"argparse": "~1.0.3",
"bluebird": "~3.4.0",
"dingbat-to-unicode": "^1.0.1",
"jszip": "^3.7.1",
"lop": "^0.4.1",
"path-is-absolute": "^1.0.0",
"sax": "~1.1.1",
"underscore": "^1.13.1",
"xmlbuilder": "^10.0.0"
},
"dependencies": {
"bluebird": {
"version": "3.4.7",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
"integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
},
"sax": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz",
"integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg=="
}
}
},
"map-cache": { "map-cache": {
"version": "0.2.2", "version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
...@@ -11758,6 +11840,11 @@ ...@@ -11758,6 +11840,11 @@
"last-call-webpack-plugin": "^2.1.2" "last-call-webpack-plugin": "^2.1.2"
} }
}, },
"option": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz",
"integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A=="
},
"optionator": { "optionator": {
"version": "0.8.2", "version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
...@@ -11934,8 +12021,7 @@ ...@@ -11934,8 +12021,7 @@
"pako": { "pako": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
"integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="
"dev": true
}, },
"parallel-transform": { "parallel-transform": {
"version": "1.1.0", "version": "1.1.0",
...@@ -12031,8 +12117,7 @@ ...@@ -12031,8 +12117,7 @@
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
"dev": true
}, },
"path-is-inside": { "path-is-inside": {
"version": "1.0.2", "version": "1.0.2",
...@@ -15731,8 +15816,7 @@ ...@@ -15731,8 +15816,7 @@
"setimmediate": { "setimmediate": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
"dev": true
}, },
"setprototypeof": { "setprototypeof": {
"version": "1.1.0", "version": "1.1.0",
...@@ -16119,8 +16203,7 @@ ...@@ -16119,8 +16203,7 @@
"sprintf-js": { "sprintf-js": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
"dev": true
}, },
"ssf": { "ssf": {
"version": "0.10.3", "version": "0.10.3",
...@@ -16783,6 +16866,11 @@ ...@@ -16783,6 +16866,11 @@
} }
} }
}, },
"underscore": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz",
"integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ=="
},
"unicode-canonical-property-names-ecmascript": { "unicode-canonical-property-names-ecmascript": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "http://localhost:4873/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "resolved": "http://localhost:4873/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
...@@ -17967,6 +18055,11 @@ ...@@ -17967,6 +18055,11 @@
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true "dev": true
}, },
"xmlbuilder": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz",
"integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg=="
},
"xregexp": { "xregexp": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"@babel/preset-env": "^7.18.6", "@babel/preset-env": "^7.18.6",
"@babel/preset-es2017": "^7.0.0-beta.53", "@babel/preset-es2017": "^7.0.0-beta.53",
"axios": "^0.18.0", "axios": "^0.18.0",
"docx-preview": "^0.1.11",
"echarts": "^5.3.1", "echarts": "^5.3.1",
"echarts-gl": "^1.1.1", "echarts-gl": "^1.1.1",
"element": "^0.1.4", "element": "^0.1.4",
...@@ -24,6 +25,7 @@ ...@@ -24,6 +25,7 @@
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"jquery": "^3.6.0", "jquery": "^3.6.0",
"js-md5": "^0.7.3", "js-md5": "^0.7.3",
"mammoth": "^1.4.21",
"node": "^18.5.0", "node": "^18.5.0",
"node-annotation": "^1.0.0", "node-annotation": "^1.0.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
......
...@@ -5,8 +5,25 @@ ...@@ -5,8 +5,25 @@
</template> </template>
<script> <script>
import refreshSize from "./server/refreshSize"
export default { export default {
name: 'App' name: 'App',
data() {
return {
width:1920,
height:1080,
}
},
mixins:[refreshSize],
mounted:function() {
// const bodyStyle = document.body.style;
// bodyStyle.overflow = 'auto'
// 如无需设置自动适配则注释该方法即可
// this.initScale(this.width, this.height);
},
methods:{
}
} }
</script> </script>
<style> <style>
...@@ -16,6 +33,16 @@ export default { ...@@ -16,6 +33,16 @@ export default {
text-decoration: none; text-decoration: none;
list-style: none; list-style: none;
} }
/* #app {
top: 0;
left: 50%;
right: 0;
bottom: 0;
overflow: hidden;
user-select: none;
background-position: center bottom;
} */
</style> </style>
<template> <template>
<div>统计</div> <div>
</div>
</template> </template>
<script> <script>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="solveBox"> <div class="solveBox">
<el-form ref="form" label-width="80px"> <el-form ref="form" label-width="80px">
<el-form-item label="指派人"> <el-form-item label="指派人">
<el-tag v-for="item in peopleList" disable-transitions :key="item"> {{item}} </el-tag> <el-tag class="solveTag" v-for="item in peopleList" disable-transitions :key="item"> {{item}} </el-tag>
</el-form-item> </el-form-item>
<el-form-item label="是否解决"> <el-form-item label="是否解决">
<el-radio-group v-model="state"> <el-radio-group v-model="state">
...@@ -97,7 +97,7 @@ export default { ...@@ -97,7 +97,7 @@ export default {
} }
.taskInfoBox{ .taskInfoBox{
width: 100%; width: 100%;
height: 600px; height: 100%;
} }
.taskInfoBox .el-divider__text { .taskInfoBox .el-divider__text {
...@@ -114,13 +114,13 @@ export default { ...@@ -114,13 +114,13 @@ export default {
height: 180px; height: 180px;
margin: auto; margin: auto;
background-color: rgb(255 255 255 / 15%); background-color: rgb(255 255 255 / 15%);
border-radius: 15px; border-radius: 5px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699);
} }
.taskInfoBox .taskInfoMainBox .el-textarea__inner { .taskInfoBox .taskInfoMainBox .el-textarea__inner {
background-color: transparent; background-color: transparent;
color: rgb(255, 255, 255); color: rgb(0, 0, 0);
border-radius: 15px; border-radius: 5px;
cursor:auto !important; cursor:auto !important;
} }
...@@ -129,17 +129,22 @@ export default { ...@@ -129,17 +129,22 @@ export default {
margin: auto; margin: auto;
} }
.taskInfoBox .editTextAreaBox .el-textarea__inner{ .taskInfoBox .editTextAreaBox .el-textarea__inner{
color: rgb(255, 255, 255); color: rgb(14, 14, 14);
border-radius: 15px; border-radius: 5px;
cursor:auto !important; cursor:auto !important;
background-color: rgb(255 255 255 / 15%); background-color: rgb(255 255 255 / 15%);
border-radius: 15px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699);
} }
.taskInfoBox .solveBox { .taskInfoBox .solveBox {
width: 100%; width: 100%;
} }
.taskInfoBox .solveBox .solveTag{
margin-right: 10px;
background-color: rgba(245, 149, 23, 0.678);
color: rgb(0, 0, 0);
box-shadow: 0 2px 5px 0 rgba(194, 193, 193, 0.699);
}
.solvButtonBox { .solvButtonBox {
width: 95%; width: 95%;
height: 40px; height: 40px;
......
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
</el-table-column> </el-table-column>
<el-table-column prop="qType" align="center" width="80" label="状态"> <el-table-column prop="qType" align="center" width="80" label="状态">
</el-table-column> </el-table-column>
<el-table-column prop="qDetails" align="center" width="260" label="问题描述"> <el-table-column prop="qDetails" align="center" label="问题描述">
</el-table-column> </el-table-column>
<el-table-column align="center" width="80" label="操作"> <el-table-column align="center" width="80" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<i @click="checkInitiateItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-view"></i> <i @click="checkInitiateItem(scope.row)" style="font-size:18px" class="el-icon-view"></i>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -54,7 +54,7 @@ export default { ...@@ -54,7 +54,7 @@ export default {
this.initiateInfoDialogVisible = true; this.initiateInfoDialogVisible = true;
this.checkQid = row.qId; this.checkQid = row.qId;
if (this.$refs.taskinfo) { if (this.$refs.taskinfo) {
this.$refs.initiate.initProjectInfo(row.qId); this.$refs.taskinfo.initProjectInfo(row.qId);
} }
}, },
initInitiateList:async function() { initInitiateList:async function() {
...@@ -81,25 +81,16 @@ export default { ...@@ -81,25 +81,16 @@ export default {
} }
.initiateListBox .initiateListTable { .initiateListBox .initiateListTable {
width: 66%;
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144); box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144);
background-color: rgb(255 255 255 / 15%); background-color: rgb(255 255 255 / 15%);
border-radius: 6px; border-radius: 6px;
} }
/*最外层透明*/
.initiateListBox .initiateListTable .el-table, .el-table__expanded-cell{
background-color: transparent;
}
/* 表格内背景颜色 */
.initiateListBox .initiateListTable .el-table th, .el-table tr, .el-table td {
background-color: transparent;
color: aliceblue;
}
.initiateListBox .initiateListTable .success-row { .initiateListBox .initiateListTable .success-row {
background: rgba(60, 255, 213, 0.61) !important; background: rgba(60, 255, 213, 0.61) !important;
} }
.initiateListBox .initiateListTable .warning-row { .initiateListBox .initiateListTable .warning-row {
background: rgba(245, 134, 70, 0.904) !important; background: rgba(245, 134, 70, 0.596) !important;
} }
.initiateListBox .initiateListTable .error-row { .initiateListBox .initiateListTable .error-row {
background: rgba(247, 52, 52, 0.37) !important; background: rgba(247, 52, 52, 0.37) !important;
...@@ -107,11 +98,14 @@ export default { ...@@ -107,11 +98,14 @@ export default {
.initiateListBox .initiateListTable .el-table--enable-row-hover .el-table__body tr:hover>td { .initiateListBox .initiateListTable .el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: rgba(247, 247, 247, 0.205); background-color: rgba(247, 247, 247, 0.205);
} }
.initiateInfoDialog {
height: 100%;
}
.initiateInfoDialog .el-dialog, .el-pager li { .initiateInfoDialog .el-dialog, .el-pager li {
/* background-color: rgba(206, 206, 206, 0.486); */ border-radius: 5px;
border-radius: 40px; box-shadow: 0 2px 50px 0 rgba(168, 168, 168, 0.699);
box-shadow: 0 2px 50px 0 rgba(255, 255, 255, 0.699); background-color: rgb(255, 255, 255);
background: url('../../assets/login/logbackground.png') no-repeat; height: 90%;
} }
.initiateInfoDialog .el-dialog__header { .initiateInfoDialog .el-dialog__header {
padding:0 0 0 0; padding:0 0 0 0;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="solveBox"> <div class="solveBox">
<el-form ref="form" label-width="80px"> <el-form ref="form" label-width="80px">
<el-form-item label="指派人"> <el-form-item label="指派人">
<el-tag v-for="item in peopleList" disable-transitions :key="item"> {{item}} </el-tag> <el-tag class="solveTag" v-for="item in peopleList" disable-transitions :key="item"> {{item}} </el-tag>
</el-form-item> </el-form-item>
<el-form-item label="是否解决"> <el-form-item label="是否解决">
<el-radio-group v-model="isSolve"> <el-radio-group v-model="isSolve">
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</div> </div>
</div> </div>
<div class="solvButtonBox"> <div class="solvButtonBox">
<el-button @click="auditingFeedback" size="mini" round>提交</el-button> <el-button @click="auditingFeedback" size="mini">提交</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -84,11 +84,9 @@ export default { ...@@ -84,11 +84,9 @@ export default {
} }
.initiateInfoBox { .initiateInfoBox {
width: 100%; width: 100%;
height: 600px; height: 100%;
} }
.initiateInfoBox .el-divider__text { .initiateInfoBox .el-divider__text {
border-radius: 10px; border-radius: 10px;
font-size: 15px !important; font-size: 15px !important;
...@@ -103,32 +101,41 @@ export default { ...@@ -103,32 +101,41 @@ export default {
height: 180px; height: 180px;
margin: auto; margin: auto;
background-color: rgb(255 255 255 / 15%); background-color: rgb(255 255 255 / 15%);
border-radius: 15px; border-radius: 5px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699);
} }
.initiateInfoBox .initiateInfoMainBox .el-textarea__inner { .initiateInfoBox .initiateInfoMainBox .el-textarea__inner {
background-color: transparent; background-color: transparent;
color: rgb(255, 255, 255); color: rgb(0, 0, 0);
border-radius: 15px; border-radius: 5px;
cursor:auto !important; cursor:auto !important;
} }
.initiateInfoBox .solveEditMainBox { .initiateInfoBox .solveEditMainBox {
width: 95%; width: 95%;
margin: auto; margin: auto;
} }
.initiateInfoBox .editTextAreaBox .el-textarea__inner{ .initiateInfoBox .editTextAreaBox .el-textarea__inner{
color: rgb(255, 255, 255); color: rgb(0, 0, 0);
border-radius: 15px; border-radius: 15px;
cursor:auto !important; cursor:auto !important;
background-color: rgb(255 255 255 / 15%); background-color: rgb(255 255 255 / 15%);
border-radius: 15px; border-radius: 5px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699);
} }
.initiateInfoBox .solveBox { .initiateInfoBox .solveBox {
width: 100%; width: 100%;
} }
.initiateInfoBox .solveBox .solveTag {
margin-right: 10px;
background-color: rgba(245, 149, 23, 0.678);
color: rgb(0, 0, 0);
box-shadow: 0 2px 5px 0 rgba(194, 193, 193, 0.699);
}
.initiateInfoBox .solvButtonBox { .initiateInfoBox .solvButtonBox {
width: 95%; width: 95%;
height: 40px; height: 40px;
......
<template> <template>
<div class="taskListBox"> <div class="taskListBox">
<div class="taskListTable"> <div class="taskListTable">
<el-table :data="myTaskList" height="750"> <el-table :data="myTaskList">
<el-table-column prop="pName" align="center" width="220" label="项目名称"> <el-table-column prop="pName" align="center" width="220" label="项目名称">
</el-table-column> </el-table-column>
<el-table-column prop="initiateTime" align="center" width="180" label="发起时间"> <el-table-column prop="initiateTime" align="center" width="180" label="发起时间">
</el-table-column> </el-table-column>
<el-table-column prop="initiateUser" align="center" width="80" label="发起人"> <el-table-column prop="initiateUser" align="center" width="80" label="发起人">
</el-table-column> </el-table-column>
<el-table-column prop="qType" align="center" width="80" label="类型"> <el-table-column prop="qType" align="center" width="180" label="类型">
</el-table-column> </el-table-column>
<el-table-column prop="qDetails" align="center" width="430" label="问题描述"> <el-table-column prop="qDetails" align="center" label="问题描述">
</el-table-column> </el-table-column>
<el-table-column align="center" width="100" label="操作"> <el-table-column align="center" width="100" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<i @click="checkTaskItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-edit"></i> <i @click="checkTaskItem(scope.row)" style="font-size:18px" class="el-icon-edit"></i>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -69,31 +69,24 @@ export default { ...@@ -69,31 +69,24 @@ export default {
<style> <style>
.taskListBox{ .taskListBox{
width: 100%; width: 100%;
height:100%
} }
.taskListBox .taskListTable { .taskListBox .taskListTable {
width: 66%; box-shadow: 0 2px 12px 0 rgba(146, 146, 146, 0.164);
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144); background-color: rgb(255 255 255);
background-color: rgb(255 255 255 / 15%);
border-radius: 6px; border-radius: 6px;
height: 100%;
} }
/*最外层透明*/
.taskListBox .taskListTable .el-table, .el-table__expanded-cell{ .taskInfoDialog {
background-color: transparent; height: 100%;
}
/* 表格内背景颜色 */
.taskListBox .taskListTable .el-table th, .el-table tr, .el-table td {
background-color: transparent;
color: aliceblue;
}
.taskListBox .taskListTable .el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: rgba(247, 247, 247, 0.205);
} }
.taskInfoDialog .el-dialog, .el-pager li { .taskInfoDialog .el-dialog, .el-pager li {
/* background-color: rgba(206, 206, 206, 0.486); */ border-radius: 5px;
border-radius: 40px; box-shadow: 0 2px 50px 0 rgba(168, 168, 168, 0.699);
box-shadow: 0 2px 50px 0 rgba(255, 255, 255, 0.699); background-color: rgb(255, 255, 255);
background: url('../../assets/login/logbackground.png') no-repeat; height: 90%;
} }
.taskInfoDialog .el-dialog__header { .taskInfoDialog .el-dialog__header {
padding:0 0 0 0; padding:0 0 0 0;
......
...@@ -11,28 +11,10 @@ ...@@ -11,28 +11,10 @@
</div> </div>
</div> </div>
</el-aside> </el-aside>
<el-container>
<!-- <el-header :style="defaultHeader">
<div class="headerBox">
<div class="headerBoxStyle">
<el-row>
<el-col :span="24">
<div class="headerLeftContent">
<div class="avatarBox pull-right">
<el-avatar class="avatarInfo" :size="46" src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"></el-avatar>
<span><b>Zhang Shan</b></span>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
</el-header> -->
<el-main :style="defaultMainHeight"> <el-main :style="defaultMainHeight">
<router-view></router-view> <router-view></router-view>
</el-main> </el-main>
</el-container> </el-container>
</el-container>
</div> </div>
</template> </template>
...@@ -46,17 +28,14 @@ export default { ...@@ -46,17 +28,14 @@ export default {
//自适应高度 //自适应高度
defaultMainHeight:{ defaultMainHeight:{
height:"", height:"",
padding:"0 40" padding:"0 40",
background: `rgb(245, 247, 250)`
}, },
defaultLeftMenu:{ defaultLeftMenu:{
width:"200px", width:"200px",
height:"", height:"",
"border-right":" 1px solid rgb(255 255 255 / 15%)" "border-right":" 1px solid rgb(255 255 255 / 15%)"
}, }
defaultHeader:{
height:"60px",
padding:"0 0"
},
}; };
}, },
...@@ -65,7 +44,7 @@ export default { ...@@ -65,7 +44,7 @@ export default {
//自适应main区域高度 //自适应main区域高度
getMainHeight() { getMainHeight() {
let windowHeight = window.innerHeight; let windowHeight = window.innerHeight;
this.defaultMainHeight.height = windowHeight - 60 +"px"; this.defaultMainHeight.height = windowHeight+"px";
this.defaultLeftMenu.height = windowHeight +"px"; this.defaultLeftMenu.height = windowHeight +"px";
} }
}, },
...@@ -77,31 +56,17 @@ export default { ...@@ -77,31 +56,17 @@ export default {
</script> </script>
<style scoped> <style scoped>
.mainStyle { .mainStyle {
background: url('../assets/login/logbackground.png') no-repeat; background: rgb(34, 40, 52);
}
.headerBoxStyle {
background: rgb(0 0 0 / 15%);
border-bottom: 1px solid rgb(255 255 255 / 15%);
}
.headerBox .el-row {
height: 60px;
} }
.leftBox{ .leftBox{
width: 100%; width: 100%;
height: 100%; height: 100%;
background-size:100% 100%; background-size:100% 100%;
} }
.headerBox{
width: 100%;
height: 100%;
}
.headerBox .el-card {
height: 60px;
}
.logoBox { .logoBox {
width: 100%; width: 100%;
height: 60px; height: 60px;
background: rgb(255 255 255 / 15%); /* background: rgb(255 255 255 / 15%); */
border-bottom: 1px solid rgb(255 255 255 / 12%); border-bottom: 1px solid rgb(255 255 255 / 12%);
} }
......
<template> <template>
<div> <div class="loginMainBox">
<div class="loginBackgroundInfo">
<img :src="imgSrc" width="100%" height="100%" alt="" />
</div>
<template>
<el-row :gutter="24" style="height:100%;width:100%"> <el-row :gutter="24" style="height:100%;width:100%">
<el-col :xs="0" :sm="1" :md="2" :lg="4" :xl="3"><div class="grid-content "></div></el-col> <el-col :xs="0" :sm="1" :md="2" :lg="4" :xl="3"><div class="grid-content "></div></el-col>
<el-col :xs="24" :sm="21" :md="16" :lg="15" :xl="15"> <el-col :xs="24" :sm="21" :md="16" :lg="15" :xl="15">
...@@ -46,26 +42,19 @@ ...@@ -46,26 +42,19 @@
<el-col :xs="0" :sm="1" :md="2" :lg="2" :xl="1"><div class="grid-content "></div></el-col> <el-col :xs="0" :sm="1" :md="2" :lg="2" :xl="1"><div class="grid-content "></div></el-col>
<el-col :xs="0" :sm="0" :md="2" :lg="2" :xl="4"><div class="grid-content "></div></el-col> <el-col :xs="0" :sm="0" :md="2" :lg="2" :xl="4"><div class="grid-content "></div></el-col>
</el-row> </el-row>
</template>
</div> </div>
</template> </template>
<script> <script>
import {mapActions} from 'vuex';
let background = require('../assets/login/logbackground.png');
let logo = require('../assets/login/logo.png'); let logo = require('../assets/login/logo.png');
export default { export default {
name: 'login', name: 'login',
data () { data () {
return { return {
imgSrc:background,
bodyDefaultStyle:{height:"0px", width:"100%"}, bodyDefaultStyle:{height:"0px", width:"100%"},
logoImg:logo, logoImg:logo,
loginId:"", loginId:"",
pwd:"", pwd:"",
errMsg:"错误消息", errMsg:"",
} }
}, },
mounted() { mounted() {
...@@ -98,33 +87,26 @@ ...@@ -98,33 +87,26 @@
if (!result.err) { if (!result.err) {
this.$router.push({path: '/home'}); this.$router.push({path: '/home'});
} else { } else {
this.$message.error("登录失败 ",result.errMsg); this.errMsg = `登录失败: ${result.errMsg}`
} }
} }
} }
} }
</script> </script>
<style type="text/css"> <style type="text/css">
.loginBackgroundInfo{ .loginMainBox {
width:100%; background: rgba(226, 226, 226, 0.541);
height:100%; /**宽高100%是为了图片铺满屏幕 */ }
z-index:-1; .grid-content {
position: absolute;
}
.grid-content {
border-radius: 4px; border-radius: 4px;
min-height: 36px; min-height: 36px;
} }
.loginBody { .logoStyle {
height: 600px;
width: 100%;
}
.logoStyle {
width: 100%; width: 100%;
height: 94px; height: 94px;
} }
.bodyBack{ .bodyBack{
background-color: rgb(0 0 0 / 15%); background-color: rgb(116, 116, 116);
width: 630px; width: 630px;
height: 430px; height: 430px;
min-height: 150px; min-height: 150px;
...@@ -133,51 +115,52 @@ ...@@ -133,51 +115,52 @@
top: 20%; top: 20%;
margin: 0 0 0 0; margin: 0 0 0 0;
text-align: center; text-align: center;
} }
.logoImg{ .logoImg{
position: relative; position: relative;
top: 20px; top: 20px;
} }
.boxStyle{ .boxStyle{
width: 100%; width: 100%;
height: 76px; height: 76px;
text-align: center; text-align: center;
} }
.subBoxStyle{ .subBoxStyle{
position: relative; position: relative;
top: 26px; top: 26px;
width: 460px; width: 460px;
height: 50px; height: 50px;
margin:0 auto; margin:0 auto;
} }
.subBoxStyle .el-input__inner { .subBoxStyle .el-input__inner {
height: 50px !important; height: 50px !important;
background-color: rgb(0 0 0 / 15%); /* background-color: rgb(0 0 0 / 15%); */
} }
.subBoxStyle .el-button { .subBoxStyle .el-button {
height: 100% !important; height: 100% !important;
width: 100% !important; width: 100% !important;
border-radius: 0px; border-radius: 0px;
background-color: rgb(255 255 255 / 15%); background-color: rgba(233, 232, 232, 0.63);
border-color: rgb(255 255 255 / 35%); border-color: rgb(255, 255, 255)
} }
.msgBoxStyle{ .msgBoxStyle{
width: 100%; width: 100%;
height: 18px; height: 18px;
text-align: left; text-align: left;
} }
.msgStyle{ .msgStyle{
position: relative; position: relative;
left: 85px; left: 85px;
text-align: left; text-align: left;
width: 50%; width: 50%;
height: 100%; height: 100%;
} color: rgba(255, 62, 4, 0.788);
.bodyBorder { }
.bodyBorder {
width: 94%; width: 94%;
height: 94%; height: 94%;
border: 1px solid rgb(255 255 255 / 15%)!important; border: 1px solid rgb(255, 255, 255)!important;
margin: 2% auto; margin: 2% auto;
} }
</style> </style>
<template> <template>
<div>项目经理统计</div> <div class="stats">
<div>
</div>
</div>
</template> </template>
<script> <script>
......
...@@ -169,7 +169,7 @@ export default { ...@@ -169,7 +169,7 @@ export default {
.projectInfo { .projectInfo {
width: 100%; width: 100%;
height: 700px; height: 100%;
} }
.projectInfo .el-divider__text { .projectInfo .el-divider__text {
border-radius: 10px; border-radius: 10px;
...@@ -183,9 +183,6 @@ export default { ...@@ -183,9 +183,6 @@ export default {
.projectInfo .leftInfoBox { .projectInfo .leftInfoBox {
width: 100%; width: 100%;
height: 700px; height: 700px;
background-color: rgb(255 255 255 / 15%);
border-radius: 15px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699);
} }
.projectInfo .leftInfoBox .titleBox { .projectInfo .leftInfoBox .titleBox {
width: 100%; width: 100%;
...@@ -194,15 +191,15 @@ export default { ...@@ -194,15 +191,15 @@ export default {
font:'黑体'; font:'黑体';
font-weight: bold; font-weight: bold;
font-size: 25px; font-size: 25px;
color: rgb(255, 255, 255); color: rgb(2, 2, 2);
} }
.projectInfo .leftInfoBox .desBox { .projectInfo .leftInfoBox .desBox {
width: 90%; width: 90%;
margin: auto; margin: auto;
height: 120px; height: 140px;
font:'黑体'; font:'黑体';
font-size: 18px; font-size: 18px;
color: rgb(255, 255, 255); color: rgb(24, 24, 24);
} }
.projectInfo .leftInfoBox .joinBox { .projectInfo .leftInfoBox .joinBox {
width: 100%; width: 100%;
...@@ -210,7 +207,7 @@ export default { ...@@ -210,7 +207,7 @@ export default {
font:'黑体'; font:'黑体';
font-size: 18px; font-size: 18px;
margin-left: 20px; margin-left: 20px;
color: rgb(255, 255, 255); color: rgb(65, 65, 65);
} }
.projectInfo .leftInfoBox .scheduleBox{ .projectInfo .leftInfoBox .scheduleBox{
width: 100%; width: 100%;
...@@ -235,7 +232,7 @@ export default { ...@@ -235,7 +232,7 @@ export default {
left: 10px; left: 10px;
} }
.scheduleTimelineBox .el-timeline-item__content { .scheduleTimelineBox .el-timeline-item__content {
color: rgb(255, 255, 255); color: rgb(90, 90, 90);
} }
.scheduleTimelineBox .el-timeline-item__timestamp { .scheduleTimelineBox .el-timeline-item__timestamp {
color: rgb(184, 250, 178); color: rgb(184, 250, 178);
...@@ -273,12 +270,18 @@ export default { ...@@ -273,12 +270,18 @@ export default {
} }
/* 中间 */ /* 中间 */
.projectInfo .el-row {
height: 100%;
}
.projectInfo .el-row .el-col-16 {
height: 92%;
}
.projectInfo .centerInfoBox { .projectInfo .centerInfoBox {
width: 100%; width: 100%;
height: 700px; height: 100%;
background-color: rgb(255 255 255 / 15%); background-color: rgb(209, 209, 209);
border-radius: 15px; border-radius: 5px;
box-shadow: 0 2px 5px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 5px 0 rgba(139, 139, 139, 0.699);
} }
...@@ -295,7 +298,6 @@ export default { ...@@ -295,7 +298,6 @@ export default {
/* 表格内背景颜色 */ /* 表格内背景颜色 */
.projectInfo .centerInfoBox .projectFeedbackTable .el-table th, .el-table tr, .el-table td { .projectInfo .centerInfoBox .projectFeedbackTable .el-table th, .el-table tr, .el-table td {
background-color: transparent; background-color: transparent;
color: aliceblue;
} }
.projectInfo .centerInfoBox .projectFeedbackTable .el-table--enable-row-hover .el-table__body tr:hover>td { .projectInfo .centerInfoBox .projectFeedbackTable .el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: rgba(247, 247, 247, 0.205); background-color: rgba(247, 247, 247, 0.205);
...@@ -313,7 +315,10 @@ export default { ...@@ -313,7 +315,10 @@ export default {
color: aliceblue; color: aliceblue;
} }
.projectFeedbackAddBox .el-button { .projectFeedbackAddBox .el-button {
background: rgba(247, 247, 247, 0.5); /* background: rgba(247, 247, 247, 0.5); */
border-radius: 0px;
background-color: rgb(229 120 11);
border-color: rgb(255 255 255 / 35%);
} }
.projectFeedbackInputBox { .projectFeedbackInputBox {
width: 95%; width: 95%;
...@@ -321,30 +326,15 @@ export default { ...@@ -321,30 +326,15 @@ export default {
margin: auto; margin: auto;
} }
.projectFeedbackInputBox .el-textarea__inner { .projectFeedbackInputBox .el-textarea__inner {
background-color: rgba(119, 119, 119, 0.671); background-color: rgb(255, 255, 255);
color: rgb(255, 255, 255); color: rgb(20, 20, 20);
} }
.projectFeedbackSubmitBox { .projectFeedbackAddBox .projectFeedbackSubmitBox {
width: 95%; width: 95%;
height: 40px; height: 40px;
text-align: right; text-align: right;
} }
/* .projectFeedbackTargetSelectBox {
width: 100%;
}
.projectFeedbackTargetSelectBox .titleBox {
color: rgb(255, 255, 255);
font-size: 16px;
display: inline-block;
}
.projectFeedbackTargetSelectBox .selectBox {
width: 200px;
height: 30px;
display: inline-block;
} */
/* 右边 */ /* 右边 */
.projectInfo .rightInfoBox { .projectInfo .rightInfoBox {
width: 100%; width: 100%;
......
...@@ -11,26 +11,26 @@ ...@@ -11,26 +11,26 @@
</div> </div>
<div class="projectListBox"> <div class="projectListBox">
<div class="projectListTable"> <div class="projectListTable">
<el-table :data="projectList" height="650"> <el-table :data="projectList">
<el-table-column prop="pName" align="center" width="220" label="项目名称"> <el-table-column prop="pName" align="center" label="项目名称">
</el-table-column> </el-table-column>
<el-table-column prop="pType" align="center" width="150" label="项目类型"> <el-table-column prop="pType" align="center" label="项目类型">
</el-table-column> </el-table-column>
<el-table-column prop="currentState" align="center" width="200" label="当前进度"> <el-table-column prop="currentState" align="center" label="当前进度">
</el-table-column> </el-table-column>
<el-table-column prop="startTime" align="center" width="200" label="开始时间"> <el-table-column prop="startTime" align="center" label="开始时间">
</el-table-column> </el-table-column>
<el-table-column prop="lastNodeTime" align="center" width="200" label="下一节点时间"> <el-table-column prop="lastNodeTime" align="center" label="下一节点时间">
</el-table-column> </el-table-column>
<el-table-column align="center" width="100" label="操作"> <el-table-column align="center" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="dId == 4"> <div v-if="dId == 4">
<i @click="checkProjectItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-thumb"></i> <i @click="checkProjectItem(scope.row)" style="font-size:18px" class="el-icon-thumb"></i>
&nbsp; &nbsp;
<i @click="editProjectItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-edit"></i> <i @click="editProjectItem(scope.row)" style="font-size:18px" class="el-icon-edit"></i>
</div> </div>
<div v-else> <div v-else>
<i @click="checkProjectItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-thumb"></i> <i @click="checkProjectItem(scope.row)" style="font-size:18px" class="el-icon-thumb"></i>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</div> </div>
<div class="projectInfoDialog"> <div class="projectInfoDialog">
<el-dialog width="80%" top="2vh" :visible.sync="projectInfoDialogVisible"> <el-dialog width="80%" styel="height:100%" top="2vh" :visible.sync="projectInfoDialogVisible">
<projectInfo ref="p1" :checkId="checkPId"/> <projectInfo ref="p1" :checkId="checkPId"/>
</el-dialog> </el-dialog>
</div> </div>
...@@ -113,6 +113,10 @@ export default { ...@@ -113,6 +113,10 @@ export default {
</script> </script>
<style> <style>
.projectList {
width: 100%;
height: 100%;
}
.projectList .selectBox{ .projectList .selectBox{
width: 100%; width: 100%;
height: 60px; height: 60px;
...@@ -124,7 +128,9 @@ export default { ...@@ -124,7 +128,9 @@ export default {
} }
.selectInputBox .el-input__inner { .selectInputBox .el-input__inner {
height: 40px !important; height: 40px !important;
background-color: rgb(0 0 0 / 15%); }
.selectInputBox .el-input__inner:focus {
border-color: rgb(133, 133, 133) !important;
} }
/* 查询按钮 */ /* 查询按钮 */
...@@ -138,20 +144,21 @@ export default { ...@@ -138,20 +144,21 @@ export default {
height: 100% !important; height: 100% !important;
width: 100% !important; width: 100% !important;
border-radius: 0px; border-radius: 0px;
background-color: rgb(255 255 255 / 15%); background-color: rgb(229 120 11);
border-color: rgb(255 255 255 / 35%); border-color: rgb(255 255 255 / 35%);
} }
/* 列表 */ /* 列表 */
.projectList .projectListBox{ .projectList .projectListBox{
width: 100%; width: 100%;
height: 90%;
} }
.projectList .projectListBox .projectListTable { .projectList .projectListBox .projectListTable {
width: 66%; box-shadow: 0 2px 12px 0 rgba(146, 146, 146, 0.164);
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144); background-color: rgb(255 255 255);
background-color: rgb(255 255 255 / 15%);
border-radius: 6px; border-radius: 6px;
height: 100%;
} }
/*最外层透明*/ /*最外层透明*/
.projectList .projectListBox .projectListTable .el-table, .el-table__expanded-cell{ .projectList .projectListBox .projectListTable .el-table, .el-table__expanded-cell{
...@@ -159,20 +166,28 @@ export default { ...@@ -159,20 +166,28 @@ export default {
} }
/* 表格内背景颜色 */ /* 表格内背景颜色 */
.projectList .projectListBox .projectListTable .el-table th, .el-table tr, .el-table td { .projectList .projectListBox .projectListTable .el-table th, .el-table tr, .el-table td {
background-color: transparent; color: rgb(3, 3, 3) !important;
color: aliceblue;
} }
.projectList .projectListBox .projectListTable .el-table--enable-row-hover .el-table__body tr:hover>td { .projectList .projectListBox .projectListTable .el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: rgba(247, 247, 247, 0.205); background-color: rgba(247, 247, 247, 0.205);
} }
/* 弹出框 */ /* 弹出框 */
.projectInfoDialog {
height: 100%;
}
.projectInfoDialog .el-dialog, .el-pager li { .projectInfoDialog .el-dialog, .el-pager li {
/* background-color: rgba(206, 206, 206, 0.486); */ /* background-color: rgba(206, 206, 206, 0.486); */
border-radius: 40px; border-radius: 5px;
box-shadow: 0 2px 50px 0 rgba(255, 255, 255, 0.699); box-shadow: 0 2px 50px 0 rgba(168, 168, 168, 0.699);
background: url('../../assets/login/logbackground.png') no-repeat; background-color: rgb(255, 255, 255);
height: 90%;
}
.projectInfoDialog .el-dialog .el-dialog__body {
height: 100%;
} }
.projectInfoDialog .el-dialog__header { .projectInfoDialog .el-dialog__header {
padding:0 0 0 0; padding:0 0 0 0;
} }
......
<template> <template>
<div class="selfTask"> <div class="selfTask">
<el-row>
<el-col :span="8">
<div class="myTaskBaseBox"> <div class="myTaskBaseBox">
<el-card shadow="always"> <el-row :gutter="24">
<div class="pscChartBox"> <el-col :span="8">
<pscChart></pscChart> <div class="pscChartBox" >
<!-- <pscChart></pscChart> -->
<el-calendar v-model="dateValue">
</el-calendar>
</div> </div>
<div class="calendarChartBox"> <div class="calendarChartBox">
<div id="calendarChart" style="width:400px;height:400px"></div>
</div>
</el-card>
</div> </div>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="16">
&nbsp;
</el-col>
<el-col :span="11">
<div class="myTaskBaseBox">
<el-card shadow="always">
<div class="taskTable"> <div class="taskTable">
<el-table :data="taskList" height="650"> <div v-for="(item, index) in taskList" :key="index">
<el-table-column prop="pName" align="center" width="350" label="项目名称"> <div class="onceProjectCheckBox">
</el-table-column> <div class="titleBox">{{item.pName}}</div>
<el-table-column prop="day" align="center" width="150" label="剩余天数"> <div class="bodyBox">
</el-table-column> <el-progress class="bodyProgress" :text-inside="true" :stroke-width="20" :percentage="item.process" :status="item.status"></el-progress>
<el-table-column align="center" width="200" label="操作"> </div>
<template slot-scope="scope"> <div class="desBox">距离提交日剩余
<i @click="submit(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-document-checked">提交任务</i> <font v-if="item.day <= 3" style="color:red;"> {{item.day}} </font>
</template> <font v-else-if="item.day <= 5" style="color:rgb(255, 172, 62);"> {{item.day}} </font>
</el-table-column> <font v-else> {{item.day}} </font>
</el-table>
<el-button class="upTaskBox" size="mini">提交任务</el-button>
</div>
<div class="buttonBox">
<el-upload
action="http://192.168.0.105:6068/file/upfile"
:on-change="handleChange"
:data="paramaterObj">
<el-button size="small" type="primary">{{item.haveUp}}</el-button>
</el-upload>
</div>
</div> </div>
</el-card>
</div> </div>
</div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</div>
</template> </template>
<script> <script>
import pscChart from "./pscChart.vue" import pscChart from "./pscChart.vue"
...@@ -44,12 +50,21 @@ export default { ...@@ -44,12 +50,21 @@ export default {
// 我的任务 // 我的任务
data() { data() {
return { return {
taskList:[] taskList:[],
paramaterObj:{projectId:2, type:2},
dateValue:new Date(),
} }
}, },
components: { pscChart }, components: { pscChart },
mounted:function(){ mounted:function(){
this.initMyTaskList(); // this.initMyTaskList();
this.taskList = [
{pName:"徐汇教育局", status:"exception", day:7, process:70, haveUp:"上传文件" },
{pName:"体科艺", status:"exception", day:3, process:30, haveUp:"上传文件" },
{pName:"张江双创", status:"warning", day:5, process:50, haveUp:"重新上传" },
{pName:"徐汇教育局二期", status:"success", day:10, process:80, haveUp:"重新上传" },
{pName:"长三角", status:"success", day:10, process:100, haveUp:"重新上传" },
];
}, },
methods:{ methods:{
initMyTaskList:async function() { initMyTaskList:async function() {
...@@ -68,29 +83,35 @@ export default { ...@@ -68,29 +83,35 @@ export default {
} else { } else {
this.$message.error("提交失败"); this.$message.error("提交失败");
} }
},
handleChange() {
} }
} }
} }
</script> </script>
<style> <style>
.selfTask .myTaskBaseBox { .selfTask .myTaskBaseBox {
width: 100%; width: 100%;
height: 700px;
} }
.selfTask .myTaskBaseBox .el-card { .selfTask .myTaskBaseBox .el-card {
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144); background-color: rgb(255, 255, 255);
background-color: rgb(255 255 255 / 15%);
border-radius: 6px; border-radius: 6px;
background-color: rgb(255 255 255 / 25%);
height: 810px;
} }
.myTaskBaseBox .pscChartBox { .myTaskBaseBox .pscChartBox {
width: 100%; width: 100%;
height: 400px; height: 400px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
background-color: rgb(255, 255, 255);
margin-top: 10px;
border-radius: 5px;
}
.myTaskBaseBox .pscChartBox .el-calendar-table td.is-today {
background: red;
} }
...@@ -102,8 +123,9 @@ export default { ...@@ -102,8 +123,9 @@ export default {
.myTaskBaseBox .taskTable { .myTaskBaseBox .taskTable {
width: 100%; width: 100%;
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144); display: flex;
background-color: rgb(255 255 255 / 15%); flex-wrap: wrap;
justify-content: flex-start;
border-radius: 6px; border-radius: 6px;
} }
/*最外层透明*/ /*最外层透明*/
...@@ -118,4 +140,66 @@ export default { ...@@ -118,4 +140,66 @@ export default {
.myTaskBaseBox .taskTable .el-table--enable-row-hover .el-table__body tr:hover>td { .myTaskBaseBox .taskTable .el-table--enable-row-hover .el-table__body tr:hover>td {
background-color: rgba(247, 247, 247, 0.205); background-color: rgba(247, 247, 247, 0.205);
} }
/* 项目列表 */
.myTaskBaseBox .onceProjectCheckBox {
margin: 10px;
width: 340px;
height: 180px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
background-color: rgb(255, 255, 255);
border-radius: 5px;
}
.myTaskBaseBox .onceProjectCheckBox:hover {
box-shadow: 0px 0px 5px #7c7c7c;
bottom: 3px;
}
.myTaskBaseBox .onceProjectCheckBox .titleBox {
width:100%;
height:40px;
font-size: 19px;
color: rgb(0, 0, 0);
text-align:center;
line-height: 40px;
}
.myTaskBaseBox .onceProjectCheckBox .bodyBox {
width: 100%;
height: 40px;
}
.myTaskBaseBox .onceProjectCheckBox .bodyProgress .el-progress-bar__outer {
width: 80%;
margin: 0 auto;
margin-top: 10px;
}
.myTaskBaseBox .onceProjectCheckBox .desBox {
width:100%;
height:25px;
font-size: 15px;
color: rgb(138, 138, 138);
text-align:center;
line-height: 25px;
}
.myTaskBaseBox .onceProjectCheckBox .buttonBox {
width: 100%;
height: 40px;
text-align:center;
line-height: 40px;
}
.myTaskBaseBox .onceProjectCheckBox .upTaskBox {
margin-left: 25px;
}
.myTaskBaseBox .onceProjectCheckBox .el-upload-list__item-name {
color: rgb(255, 255, 255);
}
.myTaskBaseBox .onceProjectCheckBox .el-upload-list__item-name {
color: rgb(255, 255, 255);
}
.myTaskBaseBox .onceProjectCheckBox .el-upload-list__item:hover {
background: rgba(255, 255, 255, 0.233);
}
.myTaskBaseBox .onceProjectCheckBox .el-progress__text {
color: rgb(255, 255, 255);
}
</style> </style>
\ No newline at end of file
<template> <template>
<div> <div class="addNotebookBox">
添加笔记 <el-form size="small" :inline="true" class="demo-form-inline" >
<el-form-item label="选择项目:">
<el-select v-model="projectId" placeholder="请选择">
<el-option v-for="item in allProjectList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label=""></el-form-item>
<el-form-item label=" 笔记范围:">
<el-radio-group v-model="area" >
<el-radio border :label="1">仅自己</el-radio>
<el-radio border :label="2">仅部门</el-radio>
<el-radio border :label="3">公开</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<el-form label-width="92px" label-position="right">
<el-form-item size="small" label="开放编辑:">
<el-radio-group v-model="edit">
<el-radio border :label="1"></el-radio>
<el-radio border :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="标题:">
<el-input v-model="title" style="width:60%" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item label="内容:">
<el-input resize="none" v-model="body" type="textarea" :autosize="{ minRows: 25, maxRows: 25}" style="width:60%" placeholder="请输入内容"></el-input>
</el-form-item>
</el-form>
</div> </div>
</template> </template>
...@@ -9,10 +38,23 @@ export default { ...@@ -9,10 +38,23 @@ export default {
//添加笔记 //添加笔记
data() { data() {
return { return {
allProjectList:[],
projectId:1,
area:1,
edit:2,
title:"",
body:""
} }
}, },
components: { }, components: { },
mounted:function(){ mounted:function(){
this.allProjectList = [
{label:"张江", value:1},
{label:"徐汇", value:2},
{label:"徐汇二期", value:3},
{label:"深圳艺校", value:4},
{label:"盛大天地", value:5}
]
}, },
methods:{ methods:{
} }
...@@ -20,5 +62,27 @@ export default { ...@@ -20,5 +62,27 @@ export default {
</script> </script>
<style> <style>
.addNotebookBox {
width: 100%;
height: 100%;
}
.addNotebookBox .el-form-item__label {
color: rgb(0, 0, 0);
font-size: 16px;
}
.addNotebookBox .el-radio__input.is-checked+.el-radio__label {
color: rgb(255, 134, 54);
}
.addNotebookBox .el-radio.is-bordered.is-checked {
border-color: rgb(255, 134, 54);
}
.el-radio__input.is-checked .el-radio__inner {
border-color:rgb(255, 134, 54);
background: rgb(255, 134, 54);
}
.addNotebookBox .el-radio {
color: rgb(0, 0, 0);
}
</style> </style>
\ No newline at end of file
<template>
<div class="fileInfoBox">
<el-row :gutter="24">
<el-col :span="15">
<div class="wordBox">
<div ref="word"></div>
</div>
</el-col>
<el-col :span="9">
<div v-for="(item, index) in thisFileList" class="fileListBox" :key="index">
<div class="onceFileDesBox">
<el-form ref="form" label-width="100px">
<el-form-item label="文件名称:">{{item.fileName}}</el-form-item>
<el-form-item label="上传人:">{{item.userName}}</el-form-item>
</el-form>
<div class="formButtonBox">
<el-button class="formButton" type="primary" size="mini">查看</el-button>
<el-button class="formButton" type="success" size="mini">下载</el-button>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
const docx = require("docx-preview");
export default {
data() {
return {
vHtml:"",
thisFileList:[],
}
},
mounted:function() {
this.initFile();
this.initFileList();
},
methods: {
initFileList() {
this.thisFileList = [
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
{fileName:"科艺统一认证对接文档.docs", userName:"张三"},
];
},
initFile:function() {
let url = "http://192.168.0.105:6066/test.docx";
var vm = this;
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "arraybuffer";
xhr.onload = function () {
if (xhr.status == 200) {
let blob = new Blob([xhr.response]);
docx.renderAsync(blob, vm.$refs.word);
}
};
xhr.send();
}
},
}
</script>
<style>
.fileInfoBox {
width: 100%;
height: 100%;
}
.fileInfoBox .el-card {
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144);
background-color: rgb(255 255 255 / 15%);
border-radius: 6px;
}
.fileInfoBox .el-form-item__label {
color: rgb(255, 255, 255);
font-size: 16px;
}
.fileInfoBox .el-row {
height: 100%;
}
.fileInfoBox .el-row .el-col-15 {
height: 100%;
}
.fileInfoBox .el-row .el-col-9 {
height: 93%;
overflow-y: scroll;
}
.fileInfoBox .wordBox .docx-wrapper {
padding: 0 !important;
}
.fileInfoBox .wordBox .docx-wrapper .docx {
width: auto !important;
}
.fileInfoBox .wordBox {
/* box-shadow: 0 2px 12px 0 rgba(141, 141, 141, 0.753); */
border-radius: 6px;
border: 1px solid rgb(114, 114, 114);
overflow-y: scroll;
overflow-x: hidden;
height: 93%;
}
.fileInfoBox .wordBox .fileListBox {
width: 100%;
}
/* */
.fileInfoBox .onceFileDesBox {
margin: 14px;
width: 90%;
height: 140px;
box-shadow: 0 2px 12px 0 rgba(94, 94, 94, 0.562);
background-color: rgb(128, 128, 128);
border-radius: 15px;
}
.fileInfoBox .onceFileDesBox .el-form-item {
margin-bottom: 0px;
}
.fileInfoBox .onceFileDesBox .el-form-item__content {
color: rgb(255, 255, 255);
font-size: 15px;
}
.fileInfoBox .onceFileDesBox .formButtonBox {
display: flex;
margin-top: 10px;
justify-content: space-around;
}
.fileInfoBox .onceFileDesBox .formButtonBox .formButton {
width: 100px;
font-size: 10px !important;
}
</style>
\ No newline at end of file
<template> <template>
<div> <div class="filesBox">
<el-row> <div class="filesTable">
<el-col :span="12"> <div v-for="(item, index) in taskList" :key="index">
<h1 class="buildingtitle"> 建 设 中 . . . </h1> <div class="onceProjectCheckBox" @click="clieckProject">
</el-col> <div class="titleBox">{{item.pName}}</div>
<el-col :span="12"> <div class="fileCountBox">
<img src="../../assets/under.gif" style=""> <el-button class="onceTitleBox" type="text">设计说明:7</el-button>
</el-col> <el-button class="onceTitleBox" type="text">交互文档:3</el-button>
</el-row> <el-button class="onceTitleBox" type="text">接口文档:2</el-button>
<el-button class="onceTitleBox" type="text">招标文档:1</el-button>
<el-button class="onceTitleBox" type="text">其他文档:1</el-button>
</div>
</div>
</div>
</div>
<div class="fileInfoDialog">
<el-dialog width="80%" top="2vh" :visible.sync="fileInfoDialogVisible">
<fileInfo ref="p2"/>
</el-dialog>
</div>
</div> </div>
</template> </template>
<script> <script>
import fileInfo from "./fileInfo.vue"
export default { export default {
data() {
return {
taskList:[],
fileInfoDialogVisible:false
}
},
components: { fileInfo },
mounted:function(){
// this.initMyTaskList();
this.taskList = [
{pName:"徐汇教育局", status:"", day:7, process:70, haveUp:"上传文件" },
{pName:"体科艺", status:"exception", day:3, process:30, haveUp:"上传文件" },
{pName:"张江双创", status:"warning", day:5, process:50, haveUp:"重新上传" },
{pName:"徐汇教育局二期", status:"success", day:10, process:80, haveUp:"重新上传" },
{pName:"长三角", status:"success", day:10, process:100, haveUp:"重新上传" },
];
},
methods:{
clieckProject() {
this.fileInfoDialogVisible = true;
}
}
} }
</script> </script>
<style> <style>
.buildingtitle { .filesBox {
text-align: center; width: 100%;
font-size: 50px; height: 100%;
color: azure; }
.filesBox .onceProjectCheckBox {
margin: 25px;
width: 330px;
height: 180px;
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.192);
border-radius: 5px;
background: rgb(255, 255, 255);
}
.filesBox .filesTable {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
border-radius: 6px;
} }
.filesBox .onceProjectCheckBox:hover {
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.788);
bottom: 3px;
}
.filesBox .onceProjectCheckBox .titleBox {
width:100%;
height:40px;
font-size: 19px;
color: rgb(12, 12, 12);
text-align:center;
line-height: 40px;
}
.filesBox .onceProjectCheckBox .fileCountBox {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
padding-left: 3px;
}
.filesBox .onceProjectCheckBox .fileCountBox .onceTitleBox {
width: 110px;
color: rgb(90, 90, 90);
margin: 5px;
}
/* 弹出框 */
.fileInfoDialog .el-dialog, .el-pager li {
/* background-color: rgba(206, 206, 206, 0.486); */
border-radius: 5px;
box-shadow: 0 2px 50px 0 rgba(255, 255, 255, 0.699);
height: 90%;
}
.fileInfoDialog .el-dialog .el-dialog__body {
height: 100%;
}
.fileInfoDialog .el-dialog__header {
padding:0 0 0 0;
}
</style> </style>
\ No newline at end of file
<template> <template>
<div class="notebookBox"> <div class="notebookBox">
<div class="notebookMainBox">
<el-row :gutter="24">
<el-col :span="24">
<div class="selectNotebookBox"> <div class="selectNotebookBox">
<div class="addNotebookBox"> <div class="addNotebookBox">
<el-button type="primary" @click="addNotebookEvent"><font style="font-size:22px" class="el-icon-plus"></font></el-button> <el-button type="primary" @click="addNotebookEvent"><font style="font-size:20px" class="el-icon-plus"></font></el-button>
</div> </div>
</div> </div>
<div class="notebookMainBox">
<div class="notebookTable"> <div class="notebookTable">
<el-table :data="notebookList" height="740" > <el-table :data="notebookList" >
<el-table-column align="left" width="80" label="查看"> <el-table-column align="left" width="80" label="查看">
<template slot-scope="scope"> <template slot-scope="scope">
<i @click="checkNotebookItem(scope.row)" style="color:aliceblue;font-size:18px" class="el-icon-s-management"></i> <i @click="checkNotebookItem(scope.row)" style="font-size:18px" class="el-icon-s-management"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectName" align="left" label="项目名称"> <el-table-column prop="projectName" align="left" label="项目名称">
...@@ -21,11 +19,7 @@ ...@@ -21,11 +19,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-col>
</el-row>
</div> </div>
<div class="notebookDialogBox"> <div class="notebookDialogBox">
<div class="addNotebookInfoDialog"> <div class="addNotebookInfoDialog">
<el-dialog width="80%" top="2vh" :visible.sync="addNotebookInfoDialogVisible"> <el-dialog width="80%" top="2vh" :visible.sync="addNotebookInfoDialogVisible">
...@@ -75,10 +69,17 @@ export default { ...@@ -75,10 +69,17 @@ export default {
.notebookBox { .notebookBox {
width: 100%; width: 100%;
height: 100%;
}
.notebookBox .notebookMainBox {
width: 100%;
height: 90%;
background: rgb(255, 255, 255);
} }
.notebookBox .notebookTable { .notebookBox .notebookTable {
width: 100%; width: 100%;
height: 750px;
} }
.notebookBox .notebookTable { .notebookBox .notebookTable {
...@@ -94,7 +95,6 @@ export default { ...@@ -94,7 +95,6 @@ export default {
/* 表格内背景颜色 */ /* 表格内背景颜色 */
.notebookBox .notebookTable .el-table th, .el-table tr, .el-table td { .notebookBox .notebookTable .el-table th, .el-table tr, .el-table td {
background-color: transparent; background-color: transparent;
color: aliceblue;
} }
.notebookBox .notebookTable .el-table--enable-row-hover .el-table__body tr:hover>td { .notebookBox .notebookTable .el-table--enable-row-hover .el-table__body tr:hover>td {
...@@ -108,22 +108,27 @@ export default { ...@@ -108,22 +108,27 @@ export default {
.notebookBox .selectNotebookBox .addNotebookBox { .notebookBox .selectNotebookBox .addNotebookBox {
display: inline-block; display: inline-block;
border-radius: 10px; border-radius: 10px;
height: 45px; width: 100px;
height: 40px;
} }
.notebookBox .selectNotebookBox .addNotebookBox .el-button { .notebookBox .selectNotebookBox .addNotebookBox .el-button {
height: 100% !important; height: 100% !important;
width: 100% !important; width: 100% !important;
border-radius: 0px; border-radius: 0px;
background-color: rgb(255 255 255 / 15%); background-color:rgb(229 120 11);
border-color: rgb(255 255 255 / 35%); border-color: rgb(107, 107, 107);
box-shadow: 0 2px 10px 0 rgba(110, 110, 110, 0.705);
} }
/* 弹出框 */ /* 弹出框 */
.notebookDialogBox {
/* height: 100%; */
}
.notebookDialogBox .el-dialog, .el-pager li { .notebookDialogBox .el-dialog, .el-pager li {
/* background-color: rgba(206, 206, 206, 0.486); */ border-radius: 5px;
border-radius: 40px; box-shadow: 0 2px 50px 0 rgba(168, 168, 168, 0.699);
box-shadow: 0 2px 50px 0 rgba(255, 255, 255, 0.699); background-color: rgb(255, 255, 255);
background: url('../../assets/login/logbackground.png') no-repeat; height: 90%;
} }
.notebookDialogBox .el-dialog__header { .notebookDialogBox .el-dialog__header {
padding:0 0 0 0; padding:0 0 0 0;
......
<template> <template>
<div></div> <div class="noteInfo"></div>
</template> </template>
<script> <script>
export default { export default {
} }
</script> </script>
<style> <style>
.addNotebookBox {
width: 100%;
}
.addNotebookBox .el-card {
box-shadow: 0 2px 12px 0 rgba(252, 252, 252, 0.144);
background-color: rgb(255 255 255 / 15%);
border-radius: 6px;
height: 800px;
}
.addNotebookBox .el-form-item__label {
color: aliceblue;
font-size: 16px;
}
</style> </style>
\ No newline at end of file
...@@ -8,7 +8,7 @@ export default new Router({ ...@@ -8,7 +8,7 @@ export default new Router({
routes: [{ routes: [{
path: '/', path: '/',
name: 'login', name: 'login',
component: () => import('../pages/home.vue') component: () => import('../pages/login.vue')
}, },
{ {
path: '/new', path: '/new',
......
...@@ -9,7 +9,6 @@ let server = axios.create({ ...@@ -9,7 +9,6 @@ let server = axios.create({
async function postReq(url, paramater) { async function postReq(url, paramater) {
let _this = this;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let headers = {}; let headers = {};
if (sessionStorage.getItem('token') ) headers["token"] = sessionStorage.getItem('token'); if (sessionStorage.getItem('token') ) headers["token"] = sessionStorage.getItem('token');
......
...@@ -39,6 +39,14 @@ let picList = [ ...@@ -39,6 +39,14 @@ let picList = [
}, },
{ {
index:3, index:3,
name:" 统 计",
icon:"el-icon-s-opportunity",
subList:[
{subName:"项目进度", path:"/pm/stats"},
]
},
{
index:4,
name:" 系 统 设 置", name:" 系 统 设 置",
icon:"el-icon-s-tools", icon:"el-icon-s-tools",
subList:[ subList:[
......
import utils from './utils'
export default {
data () {
return {}
},
methods: {
/**
* @method initScale 设置页面缩放事件
* @param {Int|Number} designW 设计稿宽度, 非必传, 默认: 1920px
* @param {Int|Number} designH 设计稿高度, 非必传, 默认: 1080px
* @param {Int|Number} designWRatio 宽高比 - 宽度, 非必传, 默认: 16
* @param {Int|Number} designHRatio 宽高比 - 高度, 非必传, 默认: 9
*/
initScale (designW = 1920, designH = 1080, designWRatio = 16, designHRatio = 9) {
const appStyle = document.getElementById('app').style
appStyle.position = 'fixed'
appStyle.backgroundSize = `${designW}px ${designH}px`
this.refreshScale(designW, designH, designWRatio, designHRatio)
// 窗口缩放时重新做适配
window.addEventListener('resize', utils.throttle(() => {
this.refreshScale(designW, designH, designWRatio, designHRatio)
}, false))
},
/**
* @method refreshScale 设置页面缩放比
* @param {Int|Number} designWidth 设计稿宽度, 默认: 1920
* @param {Int|Number} designHeight 设计稿高度, 默认: 1080
* @param {Int|Number} designWidthRatio 设计宽度比, 默认: 16
* @param {Int|Number} designHeightRatio 设计高度比, 默认: 9
*/
refreshScale (designWidth = 1920, designHeight = 1080, designWidthRatio = 16, designHeightRatio = 9) {
let baseWidth = document.documentElement.clientWidth
let baseHeight = document.documentElement.clientHeight
let appStyle = document.getElementById('app').style
let bodyStyle = document.body.style
let realRatio = baseWidth / baseHeight
let designRatio = designWidthRatio / designHeightRatio // 默认宽高比
let scaleRate = baseWidth / designWidth
if (realRatio > designRatio) {
scaleRate = baseHeight / designHeight
}
bodyStyle.overflow = 'hidden'
appStyle.transformOrigin = 'left top'
appStyle.transform = `scale(${scaleRate}) translateX(-50%)`
appStyle.width = `${baseWidth / scaleRate}px`
}
}
}
/**
* @name [utils.js 工具方法]
*/
// import type from './type' // 数据类型校验
export default {
// ...type,
/**
* [zeroPadding 数值小于10自动补零]
* @param {Number, String} num
* @return {String} 补零后数字值
*/
zeroPadding (num) {
return num < 10 ? `0${num}` : `${num}`
},
/**
* [formatDate 格式化时间]
* @param {Date} date
* @return {String} '年月日时'
* @example
* '20180319'
*/
formatDate (date = new Date(), separator = '') {
let self = this
let year = date.getFullYear()
let month = self.zeroPadding(date.getMonth() + 1)
let day = self.zeroPadding(date.getDate())
let hour = self.zeroPadding(date.getHours())
let minute = self.zeroPadding(date.getMinutes())
let dateItemObj = {
year,
month,
day,
hour,
minute
}
let finalParams
// 有分隔符
if (separator) {
finalParams = Object.assign({}, dateItemObj, {
timerStr: `${year}${separator}${month}${separator}${day}`
})
} else {
finalParams = Object.assign({}, dateItemObj, {
timerStr: `${year}${month}${day}${hour}`
})
}
return finalParams
},
timerHandle (start, end) {
let self = this
let startTime = new Date(start)
let endTime = new Date(end)
let formatStart = ''
let formatEnd = ''
// 如果结束日期小于开始日期,交换两个时间
if (Date.parse(endTime) < Date.parse(startTime)) {
formatStart = self.formatDate(endTime, '-')
formatEnd = self.formatDate(startTime, '-')
} else {
formatStart = self.formatDate(startTime, '-')
formatEnd = self.formatDate(endTime, '-')
}
let startHour = `${formatStart.hour}:00`
let endHour = `${formatEnd.hour}:00`
let tempDate
if (formatStart.timerStr === formatEnd.timerStr) { // 同一天
tempDate = `${formatEnd.timerStr} ${startHour} - ${endHour}`
} else {
tempDate = `${formatStart.timerStr} ${startHour} - ${formatEnd.timerStr} ${endHour}`
}
return tempDate
},
/**
* [splitArr 分割数组为指定数量一组]
* @param {Array} arr 目标数组
* @param {Int} groupLen 指定数量
* @return {Array} 分割后的数组
*/
splitArr (arr = [], groupLen = 2) {
if (!arr.length) return
let result = []
for (let i = 0, len = arr.length; i < len; i += groupLen) {
result.push(arr.slice(i, i + groupLen))
}
return result
},
/**
* [isEmpty 判断对象对否为空]
* @param {Object} target
* @return {Boolean} true - 空对象, false - 非空对象
*/
isEmpty (target) {
if (!target) {
return true
} else if (typeof target === 'object' && !Object.keys(target).length) {
return true
} else {
return false
}
},
/**
* [currDates 当前日期]
* @returns {Object} y - 年, like => 2021
* m - 月, like => 03
* d - 日, like => 02
* h - 时, like => 09
* M - 分, like => 09
* s - 秒, like => 07
* ym - 年月, like => 202104
* ymd - 年月日, like => 20210402
*/
currDates () {
let self = this
let date = new Date()
let y = date.getFullYear()
let m = `${self.zeroPadding(date.getMonth() + 1)}`
let d = `${self.zeroPadding(date.getDate())}`
let h = `${self.zeroPadding(date.getHours())}`
let M = `${self.zeroPadding(date.getMinutes())}`
let s = `${self.zeroPadding(date.getSeconds())}`
let ym = `${y}${m}`
let ymd = `${ym}${d}`
return {
y,
m,
d,
h,
M,
s,
ym,
ymd
}
},
/**
* @method getFirstEndDay 获取指定日期对应月份的第一天和最后一天
* @param {String|Date} assignDay 指定日期, 默认: 当前日期
* @param {Boolean} prevMonth 是否是上一个月, 默认: false
* @returns {Object}
* @param {String} firstDay 指定日期对应月份的第一天, 如: 2021-07-01
* @param {String} lastDay 指定日期对应月份的最后天, 如: 2021-07-31
* @param {String} 指定日期对应月份下个月的第一天, 如: 2021-07-01
*/
getFirstEndDay (assignDay = new Date(), prevMonth = false) {
let self = this
let nowdays = new Date(assignDay)
if (nowdays === 'Invalid Date') {
console.error('不合法的日期格式')
return ''
}
let y = nowdays.getFullYear()
let m = self.zeroPadding(prevMonth ? nowdays.getMonth() : nowdays.getMonth() + 1)
if (m === 0 && prevMonth) {
m = 12
y = y - 1
}
let firstDay = `${y}-${m}-01`
let myDate = new Date(y, m, 0)
let lastDay = `${y}-${m}-${myDate.getDate()}`
let nextMonthFirstDay = self.getDateStr(lastDay, 1)
return {
firstDay,
lastDay,
nextMonthFirstDay
}
},
/**
* @method getDateStr 获取指定日期前后的日期
* @param {String, Date} assignDay 指定日期, default: 当前日期
* @param {Int} addDayCount 指定天数, 0 - 今天, > 0 今天后的日期, < 0 今天前的日期
* @return {String} 指定日期前后的日期字符串
*/
getDateStr (assignDay, addDayCount) {
let self = this
let dd = new Date(assignDay)
dd.setDate(dd.getDate() + addDayCount) // 获取 addDayCount 后的日期
let y = dd.getFullYear()
let m = self.zeroPadding(dd.getMonth() + 1)
let d = self.zeroPadding(dd.getDate())
return `${y}-${m}-${d}`
},
/**
* @method getScrollBarWidth 获取滚动条实际宽度
* @return {Int} 滚动条实际宽度
*/
getScrollBarWidth () {
let noScroll
let scroll
let oDiv = document.createElement('div')
oDiv.style.cssText = 'position:absolute; top:-1000px; width:100px; height:100px; overflow:hidden;'
noScroll = document.body.appendChild(oDiv).clientWidth
oDiv.style.overflowY = 'scroll'
scroll = oDiv.clientWidth
document.body.removeChild(oDiv)
return noScroll - scroll
},
/**
* @method array2obj 数组转对象
* @param {Array} array 源数组
* @param {String} key 指定对象的key值
*/
array2obj (array, key) {
const resObj = {}
for (let i = 0; i < array.length; i++) {
const item = array[i]
resObj[item[key]] = item
}
return resObj
},
/**
* @method randomStr 生成随机字符串
* @param {Int|Number} e 随机字符串长度
* @returns {String} n 生成后的随机字符串
*/
randomStr (e) {
e = e || 6
const t = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
const a = t.length
let n = ''
for (let i = 0; i < e; i++) {
n += t.charAt(Math.floor(Math.random() * a))
}
return n
},
// TODO: 数字每隔3位加逗号。 返回数组
formatNumber (n) {
let b = parseInt(n).toString()
let list = []
if (b.length >= 4) {
let len = b.length
if (len <= 3) { return b }
let r = len % 3
let value = r > 0 ? b.slice(0, r) + ',' + b.slice(r, len).match(/\d{3}/g).join(',') : b.slice(r, len).match(/\d{3}/g).join(',')
list = value.match(/./g)
} else {
list = this.setSpecialNumber(n, n.length)
}
return list
},
// TODO: 数字切割
// TODO: 接受参数1: 要切割的数字; 参数2: 要切割的数字长度;
// TODO: 接受 返回一个数组。
setSpecialNumber (value, length) {
length = parseInt(length)
value = parseInt(value)
let arr = []
for (let x = 0; x < length; x++) {
arr[x] = 0
}
let i = 0
while (true) {
arr[i] = value % 10
value = parseInt(value / 10)
if (value === 0 || i === length - 1) break
i++
}
let list = []
let len = arr.length - 1
for (let y = 0; len >= 0; len--, y++) {
list[y] = arr[len]
}
return list
},
/**
* @method getTextWith 获取文字属性
* @param {String} text 文本
* @param {String} fontStyle 文本样式
* @returns
*/
getTextWith (
text = '',
fontStyle = '14px/1.6 "Microsoft YaHei"' // 设置字体大小和字体
) {
const canvas = document.createElement('canvas')
const context = canvas.getContext('2d')
context.font = fontStyle
const elem = context.measureText(text)
return elem
},
/**
* @method dealWithNumber 数字每隔3位加逗号。 返回字符串
*/
dealWithNumber (str) {
var newStr = ''
var count = 0
let b = str.toString()
// 当数字是整数
if (b.indexOf('.') === -1) {
for (let i = b.length - 1; i >= 0; i--) {
if (count % 3 === 0 && count !== 0) {
newStr = b.charAt(i) + ',' + newStr
} else {
newStr = b.charAt(i) + newStr
}
count++
}
b = newStr // 自动补小数点后两位
return b
} else {
// 当数字带有小数
for (let i = b.indexOf('.') - 1; i >= 0; i--) {
if (count % 3 === 0 && count !== 0) {
newStr = b.charAt(i) + ',' + newStr
} else {
newStr = b.charAt(i) + newStr // 逐个字符相接起来
}
count++
}
b = newStr + (b + '00').substr((b + '00').indexOf('.'), 3)
return b
}
},
/**
* @method debounce 函数防抖
* @param {Function} fn 回调函数
* @param {Int|Number} delay 延迟时间
*/
debounce (fn, delay) {
let timer = null // 声明计时器
return function () {
const context = this
const args = arguments
clearTimeout(timer)
timer = setTimeout(function () {
fn.apply(context, args)
}, delay)
}
},
/**
* @method throttle 函数节流
* @param {Function} fn 回调函数
* @param {Int|Number} delay 延迟间隔
* @param {Object} ctx 当前函数执行上下文对象
*/
throttle (fn, delay = 1000, ctx) {
let isAvail = true
let count = false
let movement = null
return function () {
count = true
let args = arguments
if (isAvail) {
fn.apply(ctx, args)
isAvail = false
count = false
setTimeout(function () {
isAvail = true
}, delay)
}
if (count) {
clearTimeout(movement)
movement = setTimeout(function () {
fn.apply(ctx, args)
}, 2 * delay)
}
}
},
/**
* @method throttle 数字 小数点 逻辑处理
* @param {Int|Number} value 数字
* @param {Int|Number} decimals 要保留的小数 位数
* @param {Int|Number} nullVal 数据为空要返回的值
*/
toFixedNumber (value, decimals, nullVal) {
if (value) {
return Number((value * 100).toFixed(decimals))
} else {
return nullVal
}
},
/**
* @method throttle 获取平均值 数组
* @param {Int|Number} data 接受一个非空数组 返回一个平均值的数组。
* @param {Int|Object} lodash lodash 插件值
*/
getReduceValue (data, this_) {
let list = this_.cloneDeep(data) // 深拷贝,防止改变原数组。
let arr = []
if (list.length !== 0) {
let reduceValue = this_.reduce(list, (sum, n) => {
return sum + n + 20
}) / list.length
arr = this_.fill(list, reduceValue)
} else {
arr = []
}
return arr
},
/**
* @method throttle 随机数 返回一个随机数组。
* @param {Int|Number} data 开始数
* @param {Int|Number} data 结束数
* @param {Int|Number} length 数组长度
*/
getRandomArray (str, end, length) {
let arr = []
for (let i = 0; i < length; i++) {
arr.push((Math.random() * (str - end) + end).toFixed(1))
}
return arr
},
/**
* @method throttle 数组对象取值 返回一个数组。
* @param {Int|Array} array 开始数
* @param {Int|String} key 对象key
*/
getArrayValue (array, key) {
let k = key || 'value'
let res = []
if (array.length !== 0) {
array.forEach((t) => {
res.push(t[k])
})
}
return res
},
/**
* @method getUrlParams 截取url参数
* @param {String} url url参数
* @returns {Object} urlParams
*/
getUrlParams (url = window.location.search) {
var urlParams = {}
if (url.indexOf('?') !== -1) {
var str = url.substr(1)
var strs = str.split('&')
for (var i = 0; i < strs.length; i++) {
urlParams[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1])
}
}
return urlParams
},
/**
* @method getCurrTime 获取当前时间
*/
getCurrTime (sperator = '-') {
const currDate = new Date()
const year = currDate.getFullYear()
const month = currDate.getMonth() + 1
const date = currDate.getDate()
const hour = currDate.getHours()
const minute = currDate.getMinutes()
const second = currDate.getSeconds()
const fullDate = `${year}${sperator}${this.zeroPadding(month)}${sperator}${this.zeroPadding(date)}`
const fullTime = this.zeroPadding(hour) + ':' + this.zeroPadding(minute) + ':' + this.zeroPadding(second)
const currFullTime = fullDate + ' ' + fullTime
return {
year,
month,
date,
hour,
minute,
second,
fullDate,
fullTime,
currFullTime
}
},
/**
* @method getMathTruncNum 返回小数的整数部分
* @param {Number} num
* @return {Number|Int} 数值的整数值
*/
getMathTruncNum (num = 0) {
if (Math.trunc) {
return Math.trunc(num)
} else {
return num < 0 ? Math.ceil(num) : Math.floor(num)
}
}
}
...@@ -14,9 +14,11 @@ export async function login({commit}, payload) { ...@@ -14,9 +14,11 @@ export async function login({commit}, payload) {
sessionStorage.setItem("dId", dId ); sessionStorage.setItem("dId", dId );
sessionStorage.setItem("token", token ); sessionStorage.setItem("token", token );
} }
return {err:false, errMsg:""}; return {err:false, errMsg:"登录失败 联系管理员"};
} else { } else {
return {err:true, errMsg:result.msg || "" }; let errMsg = result.message || "";
errMsg = errMsg == "Network Error" ? "网络超时" : errMsg;
return {err:true, errMsg };
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment