Commit b86f11f2 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents db9fd867 15a1d4d3
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@chenfengyuan/vue-qrcode": "^1.0.2", "@chenfengyuan/vue-qrcode": "^1.0.2",
"@form-create/designer": "^1.0.10",
"@form-create/element-ui": "^2.5.30",
"@jiaminghi/data-view": "^2.10.0", "@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "0.4.0", "@riophae/vue-treeselect": "0.4.0",
"@vue/babel-preset-app": "^4.5.13", "@vue/babel-preset-app": "^4.5.13",
...@@ -1671,6 +1673,18 @@ ...@@ -1671,6 +1673,18 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/runtime-corejs3": {
"version": "7.22.6",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz",
"integrity": "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==",
"dependencies": {
"core-js-pure": "^3.30.2",
"regenerator-runtime": "^0.13.11"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.14.5", "version": "7.14.5",
"resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280991117&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz", "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280991117&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz",
...@@ -1768,6 +1782,115 @@ ...@@ -1768,6 +1782,115 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@form-create/component-elm-checkbox": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-checkbox/-/component-elm-checkbox-2.5.29.tgz",
"integrity": "sha512-jOFHQmJ6HQ3pqc/AzALbV0dtcZRdejkerQKfsJXz/EOkKnH3JJ1rgNps8lhoNo6+9R0ybX3FBN5e53iohs0a5w==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-frame": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-frame/-/component-elm-frame-2.5.27.tgz",
"integrity": "sha512-697RpnNm2dDbLiugT+0Q7yFhkhNPlYXskZkMnLzmwBftWi7Cb78v7EZIE/gmVIlAZ3NSqY0mWYM+0ryjQEKQnQ==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-group": {
"version": "2.5.28",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-group/-/component-elm-group-2.5.28.tgz",
"integrity": "sha512-6k9r4R9kPvTaJLmMlHrEfTYQmXVB4N3hDI3d5RqiEX9RdSyBcqdssKvW9O03susNWGbQFRJ5tBAMItURDZJAow==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-radio": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-radio/-/component-elm-radio-2.5.27.tgz",
"integrity": "sha512-fZWVW+JcL4I8gPrrR9Snt+sd/r6Ek9jGDJEqboqQ+HaYgXTptmvLLigefHqxUU3qize4iDfTJoJ16K0sS2+91g==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-select": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-select/-/component-elm-select-2.5.27.tgz",
"integrity": "sha512-xjI5dImAY51jHTZEBoMIk4+0GfF994IqW/cvj3GHP2zPf2NkKfI1OUVnn55DhlYZg04aMSGpvInETSLeCesE/g==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-tree": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-tree/-/component-elm-tree-2.5.27.tgz",
"integrity": "sha512-ATzz8hmzRI6XXcVpXywfuldJuCH5s3F+OJAUfSQaTP97+9QhBqyc6CDKotO5ZgAGNfKhLbZ0Ns+tFpFfrju9ZA==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-elm-upload": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-upload/-/component-elm-upload-2.5.29.tgz",
"integrity": "sha512-/bP/HFeB009zKHYS9lwA8jST4Hy+UaykRXriqFv31Ly9BeISJVA66XyuNXmYADwc/q9krwVC4cuy5rKw/2vhsw==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/component-subform": {
"version": "2.5.25",
"resolved": "https://registry.npmjs.org/@form-create/component-subform/-/component-subform-2.5.25.tgz",
"integrity": "sha512-puGWWxSOeII4y4mCNxrKF/eH4nY1AQAx87VchzErLmemwF6TtNBLBsJLCCmFAVLYn1koYU5nNu5Y2yG9s2CKlQ=="
},
"node_modules/@form-create/component-wangeditor": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@form-create/component-wangeditor/-/component-wangeditor-2.5.15.tgz",
"integrity": "sha512-U4MUcvaBNEcNbIBeODxYuMlLYR+lZ1zCaZvLP3I+3SOd0KQVjvfRozZku64ukIVxC8Stev/ZNWqpAVsdvFLGaA==",
"dependencies": {
"wangeditor": "^4.6.0"
}
},
"node_modules/@form-create/core": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/core/-/core-2.5.29.tgz",
"integrity": "sha512-xXHyLc8jRmXfHRf7xcUrTDx7NeXPxcJU9r2QSwNRszp6bF1HmIHlXuDWr+pqkXp4r5d9nZ87KAi2z2J8MRkF9Q==",
"dependencies": {
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/designer": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@form-create/designer/-/designer-1.0.10.tgz",
"integrity": "sha512-Lr87K1mHQz5UXcLbZ6ieA/FgJBM1ugAw8MjsF5/WhU6a2Mna2YHQ2ZywL1u+fc0t4Ei+VFBhXUFBvOqUuiseGQ==",
"dependencies": {
"@form-create/component-wangeditor": "^2.5.15",
"@form-create/element-ui": "^2.5.19",
"@form-create/utils": "^2.5.15"
}
},
"node_modules/@form-create/element-ui": {
"version": "2.5.30",
"resolved": "https://registry.npmjs.org/@form-create/element-ui/-/element-ui-2.5.30.tgz",
"integrity": "sha512-UBNTykx4JhznA0JcBtngk+QeWfz1yMQQHwQLHsB/Xp9bX3FnWebHyQG6Go0SSjvdx7bIMFx9fPurNHepyBYAPA==",
"dependencies": {
"@form-create/component-elm-checkbox": "^2.5.29",
"@form-create/component-elm-frame": "^2.5.27",
"@form-create/component-elm-group": "^2.5.28",
"@form-create/component-elm-radio": "^2.5.27",
"@form-create/component-elm-select": "^2.5.27",
"@form-create/component-elm-tree": "^2.5.27",
"@form-create/component-elm-upload": "^2.5.29",
"@form-create/component-subform": "^2.5.25",
"@form-create/core": "^2.5.29",
"@form-create/utils": "^2.5.27"
}
},
"node_modules/@form-create/utils": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/utils/-/utils-2.5.27.tgz",
"integrity": "sha512-QLzenitKzakxQ8bK8yFYd/9n4eT4E9jKkEneU0yhbjr0ter5uqguGGNJP7gI8waysRAS49VSjQOAY0b4l7mWvg=="
},
"node_modules/@hapi/address": { "node_modules/@hapi/address": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz", "resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz",
...@@ -2260,6 +2383,8 @@ ...@@ -2260,6 +2383,8 @@
"version": "3.16.0", "version": "3.16.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"optional": true,
"peer": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/core-js" "url": "https://opencollective.com/core-js"
...@@ -5288,6 +5413,16 @@ ...@@ -5288,6 +5413,16 @@
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
}, },
"node_modules/core-js-pure": {
"version": "3.31.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz",
"integrity": "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/core-util-is": { "node_modules/core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz", "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz",
...@@ -13467,10 +13602,9 @@ ...@@ -13467,10 +13602,9 @@
} }
}, },
"node_modules/regenerator-runtime": { "node_modules/regenerator-runtime": {
"version": "0.13.9", "version": "0.13.11",
"resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
"license": "MIT"
}, },
"node_modules/regenerator-transform": { "node_modules/regenerator-transform": {
"version": "0.14.5", "version": "0.14.5",
...@@ -16906,6 +17040,21 @@ ...@@ -16906,6 +17040,21 @@
"vue": "^2.0.0" "vue": "^2.0.0"
} }
}, },
"node_modules/wangeditor": {
"version": "4.7.15",
"resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz",
"integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==",
"dependencies": {
"@babel/runtime": "^7.11.2",
"@babel/runtime-corejs3": "^7.11.2",
"tslib": "^2.1.0"
}
},
"node_modules/wangeditor/node_modules/tslib": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
},
"node_modules/watch-size": { "node_modules/watch-size": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz", "resolved": "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz",
...@@ -18786,6 +18935,15 @@ ...@@ -18786,6 +18935,15 @@
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
}, },
"@babel/runtime-corejs3": {
"version": "7.22.6",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz",
"integrity": "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw==",
"requires": {
"core-js-pure": "^3.30.2",
"regenerator-runtime": "^0.13.11"
}
},
"@babel/template": { "@babel/template": {
"version": "7.14.5", "version": "7.14.5",
"resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280991117&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz", "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280991117&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz",
...@@ -18858,6 +19016,115 @@ ...@@ -18858,6 +19016,115 @@
} }
} }
}, },
"@form-create/component-elm-checkbox": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-checkbox/-/component-elm-checkbox-2.5.29.tgz",
"integrity": "sha512-jOFHQmJ6HQ3pqc/AzALbV0dtcZRdejkerQKfsJXz/EOkKnH3JJ1rgNps8lhoNo6+9R0ybX3FBN5e53iohs0a5w==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-frame": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-frame/-/component-elm-frame-2.5.27.tgz",
"integrity": "sha512-697RpnNm2dDbLiugT+0Q7yFhkhNPlYXskZkMnLzmwBftWi7Cb78v7EZIE/gmVIlAZ3NSqY0mWYM+0ryjQEKQnQ==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-group": {
"version": "2.5.28",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-group/-/component-elm-group-2.5.28.tgz",
"integrity": "sha512-6k9r4R9kPvTaJLmMlHrEfTYQmXVB4N3hDI3d5RqiEX9RdSyBcqdssKvW9O03susNWGbQFRJ5tBAMItURDZJAow==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-radio": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-radio/-/component-elm-radio-2.5.27.tgz",
"integrity": "sha512-fZWVW+JcL4I8gPrrR9Snt+sd/r6Ek9jGDJEqboqQ+HaYgXTptmvLLigefHqxUU3qize4iDfTJoJ16K0sS2+91g==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-select": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-select/-/component-elm-select-2.5.27.tgz",
"integrity": "sha512-xjI5dImAY51jHTZEBoMIk4+0GfF994IqW/cvj3GHP2zPf2NkKfI1OUVnn55DhlYZg04aMSGpvInETSLeCesE/g==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-tree": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-tree/-/component-elm-tree-2.5.27.tgz",
"integrity": "sha512-ATzz8hmzRI6XXcVpXywfuldJuCH5s3F+OJAUfSQaTP97+9QhBqyc6CDKotO5ZgAGNfKhLbZ0Ns+tFpFfrju9ZA==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-elm-upload": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/component-elm-upload/-/component-elm-upload-2.5.29.tgz",
"integrity": "sha512-/bP/HFeB009zKHYS9lwA8jST4Hy+UaykRXriqFv31Ly9BeISJVA66XyuNXmYADwc/q9krwVC4cuy5rKw/2vhsw==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/component-subform": {
"version": "2.5.25",
"resolved": "https://registry.npmjs.org/@form-create/component-subform/-/component-subform-2.5.25.tgz",
"integrity": "sha512-puGWWxSOeII4y4mCNxrKF/eH4nY1AQAx87VchzErLmemwF6TtNBLBsJLCCmFAVLYn1koYU5nNu5Y2yG9s2CKlQ=="
},
"@form-create/component-wangeditor": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@form-create/component-wangeditor/-/component-wangeditor-2.5.15.tgz",
"integrity": "sha512-U4MUcvaBNEcNbIBeODxYuMlLYR+lZ1zCaZvLP3I+3SOd0KQVjvfRozZku64ukIVxC8Stev/ZNWqpAVsdvFLGaA==",
"requires": {
"wangeditor": "^4.6.0"
}
},
"@form-create/core": {
"version": "2.5.29",
"resolved": "https://registry.npmjs.org/@form-create/core/-/core-2.5.29.tgz",
"integrity": "sha512-xXHyLc8jRmXfHRf7xcUrTDx7NeXPxcJU9r2QSwNRszp6bF1HmIHlXuDWr+pqkXp4r5d9nZ87KAi2z2J8MRkF9Q==",
"requires": {
"@form-create/utils": "^2.5.27"
}
},
"@form-create/designer": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@form-create/designer/-/designer-1.0.10.tgz",
"integrity": "sha512-Lr87K1mHQz5UXcLbZ6ieA/FgJBM1ugAw8MjsF5/WhU6a2Mna2YHQ2ZywL1u+fc0t4Ei+VFBhXUFBvOqUuiseGQ==",
"requires": {
"@form-create/component-wangeditor": "^2.5.15",
"@form-create/element-ui": "^2.5.19",
"@form-create/utils": "^2.5.15"
}
},
"@form-create/element-ui": {
"version": "2.5.30",
"resolved": "https://registry.npmjs.org/@form-create/element-ui/-/element-ui-2.5.30.tgz",
"integrity": "sha512-UBNTykx4JhznA0JcBtngk+QeWfz1yMQQHwQLHsB/Xp9bX3FnWebHyQG6Go0SSjvdx7bIMFx9fPurNHepyBYAPA==",
"requires": {
"@form-create/component-elm-checkbox": "^2.5.29",
"@form-create/component-elm-frame": "^2.5.27",
"@form-create/component-elm-group": "^2.5.28",
"@form-create/component-elm-radio": "^2.5.27",
"@form-create/component-elm-select": "^2.5.27",
"@form-create/component-elm-tree": "^2.5.27",
"@form-create/component-elm-upload": "^2.5.29",
"@form-create/component-subform": "^2.5.25",
"@form-create/core": "^2.5.29",
"@form-create/utils": "^2.5.27"
}
},
"@form-create/utils": {
"version": "2.5.27",
"resolved": "https://registry.npmjs.org/@form-create/utils/-/utils-2.5.27.tgz",
"integrity": "sha512-QLzenitKzakxQ8bK8yFYd/9n4eT4E9jKkEneU0yhbjr0ter5uqguGGNJP7gI8waysRAS49VSjQOAY0b4l7mWvg=="
},
"@hapi/address": { "@hapi/address": {
"version": "2.1.4", "version": "2.1.4",
"resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz", "resolved": "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz",
...@@ -19225,7 +19492,6 @@ ...@@ -19225,7 +19492,6 @@
"resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz", "resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz",
"integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=", "integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=",
"requires": { "requires": {
"@babel/core": "^7.11.0",
"@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-compilation-targets": "^7.9.6",
"@babel/helper-module-imports": "^7.8.3", "@babel/helper-module-imports": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3",
...@@ -19238,13 +19504,14 @@ ...@@ -19238,13 +19504,14 @@
"@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.2.4", "@vue/babel-preset-jsx": "^1.2.4",
"babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.6.5",
"core-js-compat": "^3.6.5", "core-js-compat": "^3.6.5",
"semver": "^6.1.0" "semver": "^6.1.0"
}, },
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "3.16.0" "version": "3.16.0",
"optional": true,
"peer": true
} }
} }
}, },
...@@ -21537,6 +21804,11 @@ ...@@ -21537,6 +21804,11 @@
} }
} }
}, },
"core-js-pure": {
"version": "3.31.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz",
"integrity": "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw=="
},
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz", "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz",
...@@ -27536,9 +27808,9 @@ ...@@ -27536,9 +27808,9 @@
} }
}, },
"regenerator-runtime": { "regenerator-runtime": {
"version": "0.13.9", "version": "0.13.11",
"resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
}, },
"regenerator-transform": { "regenerator-transform": {
"version": "0.14.5", "version": "0.14.5",
...@@ -30112,6 +30384,23 @@ ...@@ -30112,6 +30384,23 @@
"integrity": "sha1-le+lalj3YHwTWwUzUIM6CeAaqBM=", "integrity": "sha1-le+lalj3YHwTWwUzUIM6CeAaqBM=",
"requires": {} "requires": {}
}, },
"wangeditor": {
"version": "4.7.15",
"resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz",
"integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==",
"requires": {
"@babel/runtime": "^7.11.2",
"@babel/runtime-corejs3": "^7.11.2",
"tslib": "^2.1.0"
},
"dependencies": {
"tslib": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
}
}
},
"watch-size": { "watch-size": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz", "resolved": "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz",
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@chenfengyuan/vue-qrcode": "^1.0.2", "@chenfengyuan/vue-qrcode": "^1.0.2",
"@form-create/designer": "^1.0.10",
"@form-create/element-ui": "^2.5.30",
"@jiaminghi/data-view": "^2.10.0", "@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "0.4.0", "@riophae/vue-treeselect": "0.4.0",
"@vue/babel-preset-app": "^4.5.13", "@vue/babel-preset-app": "^4.5.13",
......
...@@ -294,3 +294,8 @@ a { ...@@ -294,3 +294,8 @@ a {
text-align: right; text-align: right;
word-break: break-word; word-break: break-word;
} }
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
...@@ -332,3 +332,8 @@ a { ...@@ -332,3 +332,8 @@ a {
} }
} }
} }
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
...@@ -64,6 +64,10 @@ export default { ...@@ -64,6 +64,10 @@ export default {
url = "/perform/perpose/save"; url = "/perform/perpose/save";
} else if (url == "/perform/rules/attend/save") { } else if (url == "/perform/rules/attend/save") {
url = "/perform/rules/category/save"; url = "/perform/rules/category/save";
} else if ((url = "/perform/staff/conf/save")) {
sessionStorage.getItem("type") == 1
? (url = "/perform/dept/conf/save")
: (url = "/perform/staff/conf/save");
} }
const el = this.$refs.form; const el = this.$refs.form;
el.validate((valid) => { el.validate((valid) => {
......
<template> <template>
<el-table <el-table
size='small' size="small"
:data="tableData" :data="tableData"
:row-key="handleRowKeyMethod" :row-key="handleRowKeyMethod"
:span-method="handleSpanMethod" :span-method="handleSpanMethod"
...@@ -9,12 +9,14 @@ ...@@ -9,12 +9,14 @@
@sort-change="handleSortChange" @sort-change="handleSortChange"
@row-click="handleRowClick" @row-click="handleRowClick"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:empty-text='emptyText' :empty-text="emptytxt ? emptytxt : emptyText"
border border
style="width: 100%"> style="width: 100%"
height="520"
>
<el-table-column <el-table-column
v-for='column in columns' v-for="column in columns"
:key='column.prop' :key="column.prop"
:type="column.type" :type="column.type"
:index="handleIndexMethod" :index="handleIndexMethod"
:selectable="handleSelectableMethod" :selectable="handleSelectableMethod"
...@@ -24,98 +26,108 @@ ...@@ -24,98 +26,108 @@
:sortable="column.sortable" :sortable="column.sortable"
:show-overflow-tooltip="column.tooltip" :show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'" :align="column.align || 'left'"
:formatter='column.formatter' :formatter="column.formatter"
:reserve-selection='column.reserveSelection' :reserve-selection="column.reserveSelection"
:subColumns='column.subColumns' :subColumns="column.subColumns"
:fixed="column.fixed" :fixed="column.fixed"
> >
<el-table-column <el-table-column
v-for='sunColumn in column.subColumns' v-for="sunColumn in column.subColumns"
:key='sunColumn.prop' :key="sunColumn.prop"
:type="sunColumn.type" :type="sunColumn.type"
:prop="sunColumn.prop" :prop="sunColumn.prop"
:label="sunColumn.label" :label="sunColumn.label"
:width="sunColumn.width" :width="sunColumn.width"
:sortable="sunColumn.sortable" :sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'" :align="sunColumn.align || 'left'"
:formatter='sunColumn.formatter' :formatter="sunColumn.formatter"
/> />
</el-table-column> </el-table-column>
</el-table> </el-table>
</template> </template>
<script> <script>
export default { export default {
props: { props: {
handleRowKeyMethod: { handleRowKeyMethod: {
type: Function, type: Function,
required: false, required: false,
default: row => { return row.id } default: (row) => {
return row.id;
},
}, },
handleSelectableMethod: { handleSelectableMethod: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
handleIndexMethod: { handleIndexMethod: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
handleSpanMethod: { handleSpanMethod: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
handleSelectionChange: { handleSelectionChange: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
handleRowClick: { handleRowClick: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
handleSortChange: { handleSortChange: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
tableRowClassName: { tableRowClassName: {
type: Function, type: Function,
required: false, required: false,
default: () => {} default: () => {},
}, },
loading: { loading: {
type: Boolean, type: Boolean,
required: false, required: false,
default: true default: true,
}, },
tableData: { tableData: {
type: Array, type: Array,
required: false, required: false,
default: () => [] default: () => [],
}, },
columns: { columns: {
type: Array, type: Array,
required: false, required: false,
default: ()=> [], default: () => [],
} },
}, },
computed: { computed: {
emptyText() { emptyText() {
return (!this.loading && !this.tableData.length) ? '暂无数据' : '加载中...' return !this.loading && !this.tableData.length ? "暂无数据" : "加载中...";
}, },
}, },
methods:{ mounted() {
console.log(this.tableData);
console.log(this.loading);
}, },
watch: {
tableData(val) {
val.length == 0 || val.length > 0
? (this.emptytxt = "暂无数据")
: (this.emptytxt = "加载中...");
},
},
methods: {},
data() { data() {
return {} return {
} emptytxt: "",
} };
},
};
</script> </script>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:default-expand-all="expand" :default-expand-all="expand"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
height="620" height="520"
> >
<el-table-column <el-table-column
......
<template> <template>
<div class='page layout-form'> <div class="page layout-form">
<slot name='breadcrumb'> <slot name="breadcrumb">
<Breadcrumb /> <Breadcrumb />
</slot> </slot>
<slot></slot> <slot></slot>
...@@ -8,64 +8,67 @@ ...@@ -8,64 +8,67 @@
</template> </template>
<style lang="less"> <style lang="less">
@media screen and (max-width: 1440px){ @media screen and (max-width: 1440px) {
.layout-form{ .layout-form {
form{ form {
width: 100%!important; width: 100% !important;
} }
.el-col-12{ .el-col-12 {
width: 100%; width: 100%;
} }
} }
} }
.layout-form{ .layout-form {
.el-breadcrumb{ .el-breadcrumb {
padding-bottom: 12px; padding-bottom: 12px;
margin-bottom: 12px; margin-bottom: 12px;
border-bottom: 1px solid #ededed; border-bottom: 1px solid #ededed;
} }
form{ form {
width: 1440px; width: 1440px;
&[loading]{ &[loading] {
pointer-events: none; pointer-events: none;
.el-button{ .el-button {
background: #eee; background: #eee;
color: transparent; color: transparent;
border-color: #eee; border-color: #eee;
} }
input, input,
textarea{ textarea {
background: #eee; background: #eee;
color: transparent; color: transparent;
border-color: #eee; border-color: #eee;
} }
span, input, button, li, label{ span,
input,
button,
li,
label {
color: #eee; color: #eee;
} }
} }
.el-input-group--append{ .el-input-group--append {
.el-select .el-input { .el-select .el-input {
width: 80px; width: 80px;
} }
} }
// 自定义的field组件 // 自定义的field组件
.my-form-field{ .my-form-field {
.el-select{ .el-select {
width: 100%; width: 100%;
} }
.el-date-editor.el-input{ .el-date-editor.el-input {
width: 100%; width: 100%;
} }
.form-el-radio-group{ .form-el-radio-group {
label{ label {
width: 160px; width: 160px;
} }
.el-radio-button__inner{ .el-radio-button__inner {
border: 0; border: 0;
} }
} }
} }
} }
} }
</style> </style>
// 表单节点封装,支持 input textarea select radio checkbox 及slot方式 // 表单节点封装,支持 input textarea select radio checkbox 及slot方式
<template> <template>
<el-col :span='span'> <el-col :span="span">
<el-form-item :label="label" :prop="prop" class="my-form-field">
<el-form-item :label="label" :prop="prop" class='my-form-field'>
<slot> <slot>
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input> <el-input
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input> show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
v-if="type === 'text'"
:class="inputClass"
:clearable="clearable"
></el-input>
<el-input
show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
type="password"
v-if="type === 'password'"
></el-input>
<el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number> <el-input-number
:disabled="disabled"
v-model="field"
size="small"
:placeholder="placeholder"
@change="emit"
@input="emit"
v-if="type === 'num'"
></el-input-number>
<el-input show-word-limit :disabled='disabled' :placeholder='placeholder' v-model="field" :maxlength="maxLength" <el-input
@change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input> show-word-limit
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
:maxlength="maxLength"
@change="emit"
:rows="rows"
@input="emit"
v-if="type === 'textarea'"
type="textarea"
:autosize="textareaSize"
:class="inputClass"
></el-input>
<!-- 一级 --> <!-- 一级 -->
<el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'> <el-select
:disabled="disabled"
v-model="field"
@change="emit"
:multiple="multiple"
:filterable="filterable"
:clearable="clearable"
v-if="type === 'select'"
style="width: 100%;"
>
<el-option <el-option
v-for="($label, $value) in enumData" v-for="($label, $value) in enumData"
:key="$value" :key="$value"
...@@ -23,34 +72,78 @@ ...@@ -23,34 +72,78 @@
</el-select> </el-select>
<!-- 多级 --> <!-- 多级 -->
<el-cascader :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable' <el-cascader
:props="{label:'label',value:'id',multiple:multiple}" :disabled="disabled"
v-if='type === "cascader"'> v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascader'"
>
</el-cascader> </el-cascader>
<!-- 联级选择 --> <!-- 联级选择 -->
<el-cascader-panel :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable' <el-cascader-panel
:props="{label:'label',value:'id',multiple:multiple}" v-if='type === "cascaderpanel"'></el-cascader-panel> :disabled="disabled"
v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascaderpanel'"
></el-cascader-panel>
<el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'> <el-radio-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'radio'"
>
<el-radio <el-radio
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-radio> >{{ $label }}</el-radio
>
</el-radio-group> </el-radio-group>
<el-checkbox-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "checkbox"'> <el-checkbox-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'checkbox'"
>
<el-checkbox <el-checkbox
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-checkbox> >{{ $label }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
<el-date-picker :disabled='disabled' type="date" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "date"'></el-date-picker> <el-date-picker
<el-date-picker :disabled='disabled' type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "datetime"'></el-date-picker> :disabled="disabled"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
style="width: 100%;"
v-if="type === 'date'"
></el-date-picker>
<el-date-picker
:disabled="disabled"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
v-if="type === 'datetime'"
style="width: 100%;"
></el-date-picker>
</slot> </slot>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -71,17 +164,17 @@ export default { ...@@ -71,17 +164,17 @@ export default {
// 字段类型: text,password,textarea,select,radio,checkbox,date,datetime // 字段类型: text,password,textarea,select,radio,checkbox,date,datetime
type: { type: {
type: String, type: String,
default: 'text', default: "text",
}, },
// 字段name // 字段name
prop: { prop: {
type: String, type: String,
default: '', default: "",
}, },
// 字段中文标题 // 字段中文标题
label: { label: {
type: String, type: String,
default: '', default: "",
}, },
// 是否禁用 // 是否禁用
disabled: { disabled: {
...@@ -91,17 +184,17 @@ export default { ...@@ -91,17 +184,17 @@ export default {
// 是否提示 // 是否提示
placeholder: { placeholder: {
type: String, type: String,
default: '', default: "",
}, },
// 字段所需的枚举类型 // 字段所需的枚举类型
enumData: { enumData: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// textarea专用-自适应内容高度 // textarea专用-自适应内容高度
textareaSize: { textareaSize: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// select专用-是否可搜索 // select专用-是否可搜索
filterable: { filterable: {
...@@ -121,44 +214,43 @@ export default { ...@@ -121,44 +214,43 @@ export default {
// 字段所需的枚举类型 // 字段所需的枚举类型
options: { options: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
children: { children: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
inputClass: { inputClass: {
type: String, type: String,
default: '', default: "",
},
maxLength: {
type: Number,
default: 256,
}, },
maxLength:{
type:Number,
default:256,
}
}, },
methods: { methods: {
emit() { emit() {
this.$emit('input', this.newVal) this.$emit("input", this.newVal);
this.$emit('change', this.newVal) this.$emit("change", this.newVal);
//this.$emit('focus', this.newVal) //this.$emit('focus', this.newVal)
this.$emit('cascaderChange',this.newVal) this.$emit("cascaderChange", this.newVal);
} },
}, },
computed: { computed: {
field: { field: {
get() { get() {
return this.value return this.value;
}, },
set(val) { set(val) {
this.newVal = val; this.newVal = val;
} },
} },
}, },
data() { data() {
return { return {
newVal: this.value, newVal: this.value,
} };
} },
} };
</script> </script>
...@@ -9,11 +9,16 @@ ...@@ -9,11 +9,16 @@
<i class="el-icon-menu" @click="showMobileMenu = !showMobileMenu"> <i class="el-icon-menu" @click="showMobileMenu = !showMobileMenu">
</i> </i>
<router-link to="/"> <router-link to="/">
<!-- <img src="../assets/images/logo.png" style="margin-bottom:5px" height="40" alt=""> --> <img
<b style="color:white;font-size:20px;" src="../assets/images/logo.png"
>&nbsp;&nbsp;&nbsp; 智慧政务绩效管理系统 style="margin-bottom:5px;margin-left: 24px;"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b height="40"
> alt=""
/>
<b style="color:white;font-size:20px;">
&nbsp;&nbsp;&nbsp;智慧政务绩效管理系统
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
</router-link> </router-link>
</div> </div>
<!-- 一级菜单 --> <!-- 一级菜单 -->
...@@ -183,9 +188,9 @@ export default { ...@@ -183,9 +188,9 @@ export default {
.layout-menu-wrapper { .layout-menu-wrapper {
height: 72px; height: 72px;
line-height: 72px; line-height: 72px;
font-size: 16px; font-size: 14px;
color: #eee; color: #eee;
background: #1848c8; background: linear-gradient(90deg, #1845c6, #2999ff) !important;
.layout-logo { .layout-logo {
height: 50px; height: 50px;
.el-icon-menu { .el-icon-menu {
...@@ -207,13 +212,14 @@ export default { ...@@ -207,13 +212,14 @@ export default {
height: 100%; height: 100%;
color: #eee; color: #eee;
cursor: pointer; cursor: pointer;
margin-right: 10px; margin-right: 20px;
} }
.active { .active {
color: #fff; color: #fff;
list-style-type: none; list-style-type: none;
border-bottom: 3px solid #fff; // border-bottom: 3px solid #fff;
padding-bottom: 2px; // padding-bottom: 2px;
background-color: #1890ff;
} }
} }
} }
......
...@@ -12,6 +12,9 @@ import Global from "./assets/utils/global.js"; ...@@ -12,6 +12,9 @@ import Global from "./assets/utils/global.js";
import VueClipboard from "vue-clipboard2"; import VueClipboard from "vue-clipboard2";
import VueAMap from "vue-amap"; import VueAMap from "vue-amap";
import * as echarts from "echarts"; import * as echarts from "echarts";
import formCreate from "@form-create/element-ui";
import FcDesigner from "@form-create/designer";
// 将自动注册所有组件为全局组件 // 将自动注册所有组件为全局组件
import dataV from "@jiaminghi/data-view"; import dataV from "@jiaminghi/data-view";
...@@ -25,6 +28,8 @@ Vue.use(Filter); ...@@ -25,6 +28,8 @@ Vue.use(Filter);
Vue.use(GlobalComponents); // 全局组件 Vue.use(GlobalComponents); // 全局组件
Vue.use(VueClipboard); Vue.use(VueClipboard);
Vue.use(VueAMap); Vue.use(VueAMap);
Vue.use(formCreate);
Vue.use(FcDesigner);
VueAMap.initAMapApiLoader({ VueAMap.initAMapApiLoader({
key: "f45cca59553214543a5a77e50a7e04df", key: "f45cca59553214543a5a77e50a7e04df",
plugin: [ plugin: [
......
<template> <template>
<div :style="menuPageCss" class="pages page-layout"> <div :style="menuPageCss" class="pages page-layout">
<LayoutHeader v-if="menuPage!=='left'" @changePath="changePath"></LayoutHeader> <LayoutHeader
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage==='left'" /> v-if="menuPage !== 'left'"
@changePath="changePath"
></LayoutHeader>
<LayoutHeaderLeft
@toggle="toggle"
:isOpen="isOpen"
v-if="menuPage === 'left'"
/>
<div style="padding:20px"> <div style="padding:20px">
<router-view :class="{'active': !isOpen}" /> <router-view :class="{ active: !isOpen }" />
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import LayoutHeader from "../components/Header"; import LayoutHeader from "../components/Header";
import LayoutHeaderLeft from "../components/HeaderLeft"; import LayoutHeaderLeft from "../components/HeaderLeft";
import TabPane from '../components/tabPane.vue' import TabPane from "../components/tabPane.vue";
const isPC = /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent); const isPC = /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent);
//菜单位置:取值: left :菜单在左面, top :菜单在上面 //菜单位置:取值: left :菜单在左面, top :菜单在上面
const MenuPage = "top"; const MenuPage = "top";
...@@ -19,15 +26,15 @@ export default { ...@@ -19,15 +26,15 @@ export default {
components: { components: {
LayoutHeader, LayoutHeader,
LayoutHeaderLeft, LayoutHeaderLeft,
TabPane TabPane,
}, },
data() { data() {
return { return {
isOpen: isPC, isOpen: isPC,
menuPage: MenuPage, menuPage: MenuPage,
isfresh:true, isfresh: true,
path:'' path: "",
} };
}, },
computed: { computed: {
menuPageCss() { menuPageCss() {
...@@ -35,16 +42,16 @@ export default { ...@@ -35,16 +42,16 @@ export default {
return { return {
"--padding-top": this.menuPage === "left" ? "60px" : "0px", "--padding-top": this.menuPage === "left" ? "60px" : "0px",
"--margin-left": this.menuPage === "left" ? "200px" : "0px", "--margin-left": this.menuPage === "left" ? "200px" : "0px",
} };
} },
}, },
methods: { methods: {
toggle() { toggle() {
this.isOpen = !this.isOpen; this.isOpen = !this.isOpen;
}, },
changePath(e){ changePath(e) {
this.path = e this.path = e;
} },
}, },
}; };
</script> </script>
...@@ -65,6 +72,5 @@ export default { ...@@ -65,6 +72,5 @@ export default {
.page-layout { .page-layout {
background: #eee; background: #eee;
} }
</style>
</style>
<template> <template>
<layout-view> <layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border> <el-descriptions
:title="title"
:column="column"
:size="size"
:colon="false"
border
>
<template slot="title"> <template slot="title">
<i class="el-icon-tickets"></i> <i class="el-icon-tickets"></i>
基本详细信息 基本详细信息
</template> </template>
<template slot="extra"> <template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button> <el-button type="primary" @click="$router.go(-1)" size="small"
>返回</el-button
>
</template> </template>
<el-descriptions-item label="请假人id" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.leavePersonId}} label="请假人id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.leavePersonId }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="请假人" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.leavePerson}} label="请假人"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.leavePerson }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="所属部门id" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.deptId}} label="所属部门id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptId }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.deptName}} label="所属部门"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="电话号码" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.phoneNumber}} label="电话号码"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.phoneNumber }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="请假类型" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
label="请假类型"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("leaveType", form.leaveType) }} {{ util_formatters("leaveType", form.leaveType) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="开始时间" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{ util_formatterDate(form.startTime)}} label="开始时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.startTime) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="结束时间" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{ util_formatterDate(form.endTime)}} label="结束时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.endTime) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="时长,单位秒" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.duration}} label="时长,单位秒"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.duration }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="请假事由" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.reason}} label="请假事由"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.reason }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="审批负责人Id" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.approverId}} label="审批负责人Id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.approverId }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="审批负责人" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.approver}} label="审批负责人"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.approver }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="附件" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.attachment}} label="附件"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attachment }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="附件路径" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.attachmentPath}} label="附件路径"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attachmentPath }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass"> <el-descriptions-item
{{form.remark}} label="备注"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.remark }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</layout-view> </layout-view>
</template> </template>
<script> <script>
import view from "@/assets/mixins/view"; import view from "@/assets/mixins/view";
export default { export default {
mixins: [view], mixins: [view],
components: { components: {},
}, methods: {},
methods: {
},
data() { data() {
return { return {
size:"small", size: "small",
column:2, column: 2,
toString:[ toString: ["leaveType"],
"leaveType", toArrays: [],
], toDate: [],
toArrays: [ };
},
], };
toDate: [
]
}
}
}
</script> </script>
<style lang="less"> <style lang="less">
.labelClass{ .labelClass {
width: 200px; width: 200px;
} }
.el-descriptions__body{ .el-descriptions__body {
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
color: #606266; color: #606266;
background-color: #FFF; background-color: #fff;
} }
.contentClass{ .contentClass {
width: 600px; width: 600px;
} }
</style> </style>
<template> <template>
<div class="page"> <div class="page">
<div class="top"> <div class="top">
<el-button class="backBtn" @click="$router.back()">返回上一级</el-button>
<el-tabs v-model="tabs"> <el-tabs v-model="tabs">
<el-tab-pane label="设计问卷" name="1"> <el-tab-pane label="设计问卷" name="1">
<iframe style="width: 100%;height: 80vh;" src="https://wurong19870715.gitee.io/formdesigner/#/" frameborder="0"></iframe> <fc-designer style="height: 75vh;" ref="designer" />
<div class="tool">
<!--功能按钮-->
<el-row>
<el-button icon="el-icon-download" type="primary" size="small" @click="getFormJson()"
round>生成表单JSON</el-button>
<el-button icon="el-icon-download" type="success" size="small" @click="getFormOption()"
round>生成表单配置</el-button>
<el-button icon="el-icon-upload" type="success" size="small" @click="drawer = true"
round>预览</el-button>
</el-row>
</div>
<el-drawer title="预览" :visible.sync="drawer" :with-header="false">
<div class="showPhone">
<div>预览</div>
</div>
</el-drawer>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
...@@ -14,12 +32,74 @@ ...@@ -14,12 +32,74 @@
export default { export default {
data() { data() {
return { return {
tabs: '1' tabs: '1',
drawer: false,
}
},
methods: {
getFormJson() {
//FcDesigner 生成的`JSON`
const FcDesignerRule = this.$refs.designer.getRule();
console.log(FcDesignerRule)
},
getFormOption() {
//FcDesigner 生成的`options`
const FcDesignerOptions = this.$refs.designer.getOption();
console.log(FcDesignerOptions)
} }
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.top {} .showPhone{
border: 1px solid;
height: 100%;
width: 100%;
}
.backBtn {
position: absolute;
right: 20px;
z-index: 99;
}
.tool {
margin-top: 20px;
text-align: center;
}
/* 侧边滚动条 */
/deep/.el-aside::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
/deep/.el-aside::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
/deep/.el-aside::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
/* 侧边滚动条 */
/deep/.el-main::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
/deep/.el-main::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
/deep/.el-main::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
</style> </style>
\ No newline at end of file
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
<div class="left_top"> <div class="left_top">
<div class="title"> <div class="title">
部门绩效总分排名TOP10 部门绩效总分排名TOP10
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
</div> </div>
<dv-scroll-ranking-board <dv-scroll-ranking-board
:config="config" :config="config"
...@@ -11,6 +16,11 @@ ...@@ -11,6 +16,11 @@
/> />
</div> </div>
<div class="left_mid"> <div class="left_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="leida" style="width: 100%;height: 100%;"></div> <div id="leida" style="width: 100%;height: 100%;"></div>
</div> </div>
<div class="left_down"> <div class="left_down">
...@@ -176,6 +186,11 @@ ...@@ -176,6 +186,11 @@
</div> </div>
<div class="right"> <div class="right">
<div class="right_top"> <div class="right_top">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div class="title"> <div class="title">
个人绩效总分排名TOP10 个人绩效总分排名TOP10
</div> </div>
...@@ -185,6 +200,11 @@ ...@@ -185,6 +200,11 @@
/> />
</div> </div>
<div class="right_mid"> <div class="right_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="shensuPie" style="width: 100%;height: 100%;"></div> <div id="shensuPie" style="width: 100%;height: 100%;"></div>
</div> </div>
<div class="right_down"> <div class="right_down">
...@@ -326,6 +346,8 @@ export default { ...@@ -326,6 +346,8 @@ export default {
legend: { legend: {
data: ["加分", "扣分"], data: ["加分", "扣分"],
right: 0, right: 0,
bottom: "50px",
orient: "vertical",
}, },
radar: [ radar: [
{ {
...@@ -843,6 +865,7 @@ export default { ...@@ -843,6 +865,7 @@ export default {
.right_top, .right_top,
.right_mid, .right_mid,
.right_down { .right_down {
position: relative;
width: 100%; width: 100%;
height: 33%; height: 33%;
background: #fff; background: #fff;
...@@ -864,5 +887,39 @@ export default { ...@@ -864,5 +887,39 @@ export default {
height: 30%; height: 30%;
margin: 15px 0; margin: 15px 0;
} }
.button_box {
position: absolute;
top: 8px;
right: 10px;
display: flex;
span {
border-width: 0px;
width: 40px;
height: 24px;
display: flex;
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
color: #797979;
background-color: rgba(28, 117, 221, 0.0980392156862745);
border: none;
border-radius: 4px;
justify-content: center;
align-items: center;
margin-right: 5px;
cursor: pointer;
}
.check {
background: linear-gradient(
90deg,
rgba(23, 67, 198, 1) 0%,
rgba(31, 116, 223, 1) 50%,
rgba(44, 140, 240, 1) 99%
);
font-size: 12px;
color: #ffffff;
}
}
} }
</style> </style>
...@@ -5,100 +5,283 @@ ...@@ -5,100 +5,283 @@
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
:destroy-on-close="true" :destroy-on-close="true"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="核查记录Id" prop="checkRecordId" v-model="form.checkRecordId" placeholder="请输入核查记录Id"/> <Field
<Field label="员工ID" prop="staffId" v-model="form.staffId" placeholder="请输入员工ID"/> label="核查记录Id"
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/> prop="checkRecordId"
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/> v-model="form.checkRecordId"
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/> placeholder="请输入核查记录Id"
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/> />
<Field label="所属考勤组ID" prop="attendanceGroupId" v-model="form.attendanceGroupId" placeholder="请输入所属考勤组ID"/> <Field
<Field label="所属考勤组名称" prop="attendanceGroupName" v-model="form.attendanceGroupName" placeholder="请输入所属考勤组名称"/> label="员工ID"
<Field label="考勤时间" prop="attendanceDate" v-model="form.attendanceDate" type="date" /> prop="staffId"
<Field label="绩效规则id" prop="ruleId" v-model="form.ruleId" placeholder="请输入绩效规则id"/> v-model="form.staffId"
<Field label="规则名称" prop="ruleName" v-model="form.ruleName" placeholder="请输入规则名称"/> placeholder="请输入员工ID"
<Field label="扣分方式" prop="subMethod" v-model="form.subMethod" type="select" :enumData="dict.subMethod" placeholder="请选择扣分方式"/> />
<Field label="增减类型" prop="subAddType" v-model="form.subAddType" type="select" :enumData="dict.subAddType" placeholder="请选择增减类型"/> <Field
<Field label="扣分或增加分值" prop="score" v-model="form.score" placeholder="请输入扣分或增加分值"/> label="员工姓名"
<Field label="上下班时间" prop="goOffTimeStr" v-model="form.goOffTimeStr" placeholder="请输入上下班时间"/> prop="staffName"
<Field label="异常时间" prop="errorTime" v-model="form.errorTime" type="date" /> v-model="form.staffName"
<Field label="实际打卡时间" prop="actualAttendTime" v-model="form.actualAttendTime" type="date" /> placeholder="请输入员工姓名"
<Field label="异常处理结果" prop="errorResult" v-model="form.errorResult" placeholder="请输入异常处理结果"/> />
<Field label="核查人员" prop="checkPerson" v-model="form.checkPerson" placeholder="请输入核查人员"/> <Field
<Field label="核查时间" prop="checkTime" v-model="form.checkTime" type="date" /> label="工号"
<Field label="核查说明" prop="checkDesc" v-model="form.checkDesc" type="textarea" placeholder="请输入核查说明"/> prop="workNum"
<Field label="核查结果" prop="checkResult" v-model="form.checkResult" placeholder="请输入核查结果"/> v-model="form.workNum"
<Field label="处理状态" prop="processStatus" v-model="form.processStatus" type="select" :enumData="dict.processStatus" placeholder="请选择处理状态"/> placeholder="请输入工号"
<Field label="申诉说明" prop="appealDesc" v-model="form.appealDesc" placeholder="请输入申诉说明"/> />
<Field label="申诉时间" prop="appealTime" v-model="form.appealTime" type="date" /> <Field
<Field label="申诉结果" prop="appealResult" v-model="form.appealResult" type="select" :enumData="dict.appealResult" placeholder="请选择申诉结果"/> label="所属部门"
<Field label="说明" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入说明"/> prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门"
/>
<Field
label="所属部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入所属部门名称"
/>
<Field
label="所属考勤组ID"
prop="attendanceGroupId"
v-model="form.attendanceGroupId"
placeholder="请输入所属考勤组ID"
/>
<Field
label="所属考勤组名称"
prop="attendanceGroupName"
v-model="form.attendanceGroupName"
placeholder="请输入所属考勤组名称"
/>
<Field
label="考勤时间"
prop="attendanceDate"
v-model="form.attendanceDate"
type="date"
/>
<Field
label="绩效规则id"
prop="ruleId"
v-model="form.ruleId"
placeholder="请输入绩效规则id"
/>
<Field
label="规则名称"
prop="ruleName"
v-model="form.ruleName"
placeholder="请输入规则名称"
/>
<Field
label="扣分方式"
prop="subMethod"
v-model="form.subMethod"
type="select"
:enumData="dict.subMethod"
placeholder="请选择扣分方式"
/>
<Field
label="增减类型"
prop="subAddType"
v-model="form.subAddType"
type="select"
:enumData="dict.subAddType"
placeholder="请选择增减类型"
/>
<Field
label="扣分或增加分值"
prop="score"
v-model="form.score"
placeholder="请输入扣分或增加分值"
/>
<Field
label="上下班时间"
prop="goOffTimeStr"
v-model="form.goOffTimeStr"
placeholder="请输入上下班时间"
/>
<Field
label="异常时间"
prop="errorTime"
v-model="form.errorTime"
type="date"
/>
<Field
label="实际打卡时间"
prop="actualAttendTime"
v-model="form.actualAttendTime"
type="date"
/>
<Field
label="异常处理结果"
prop="errorResult"
v-model="form.errorResult"
placeholder="请输入异常处理结果"
/>
<Field
label="核查人员"
prop="checkPerson"
v-model="form.checkPerson"
placeholder="请输入核查人员"
/>
<Field
label="核查时间"
prop="checkTime"
v-model="form.checkTime"
type="date"
/>
<Field
label="核查说明"
prop="checkDesc"
v-model="form.checkDesc"
type="textarea"
placeholder="请输入核查说明"
/>
<Field
label="核查结果"
prop="checkResult"
v-model="form.checkResult"
placeholder="请输入核查结果"
/>
<Field
label="处理状态"
prop="processStatus"
v-model="form.processStatus"
type="select"
:enumData="dict.processStatus"
placeholder="请选择处理状态"
/>
<Field
label="申诉说明"
prop="appealDesc"
v-model="form.appealDesc"
placeholder="请输入申诉说明"
/>
<Field
label="申诉时间"
prop="appealTime"
v-model="form.appealTime"
type="date"
/>
<Field
label="申诉结果"
prop="appealResult"
v-model="form.appealResult"
type="select"
:enumData="dict.appealResult"
placeholder="请选择申诉结果"
/>
<Field
label="说明"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入说明"
/>
</el-row> </el-row>
<el-divider content-position="center">绩效记录申诉附件信息信息</el-divider> <el-divider content-position="center"
<br/> >绩效记录申诉附件信息信息</el-divider
>
<br />
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddPerformAttendAppealFiles">添加</el-button> <el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAddPerformAttendAppealFiles"
>添加</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeletePerformAttendAppealFiles">删除</el-button> <el-button
type="danger"
icon="el-icon-delete"
size="mini"
@click="handleDeletePerformAttendAppealFiles"
>删除</el-button
>
</el-col> </el-col>
</el-row> </el-row>
<el-table :data="performAttendAppealFilesList" :row-class-name="rowPerformAttendAppealFilesIndex" @selection-change="handlePerformAttendAppealFilesSelectionChange" ref="performAttendAppealFiles"> <el-table
:data="performAttendAppealFilesList"
:row-class-name="rowPerformAttendAppealFilesIndex"
@selection-change="handlePerformAttendAppealFilesSelectionChange"
ref="performAttendAppealFiles"
>
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/> <el-table-column label="序号" align="center" prop="index" width="50" />
<el-table-column label="文件名称" prop="fileName"> <el-table-column label="文件名称" prop="fileName">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.fileName" placeholder="请输入文件名称" /> <el-input
v-model="scope.row.fileName"
placeholder="请输入文件名称"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="文件地址" prop="filePath"> <el-table-column label="文件地址" prop="filePath">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.filePath" placeholder="请输入文件地址" /> <el-input
v-model="scope.row.filePath"
placeholder="请输入文件地址"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建用户" prop="createUserId"> <el-table-column label="创建用户" prop="createUserId">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.createUserId" placeholder="请输入创建用户" /> <el-input
v-model="scope.row.createUserId"
placeholder="请输入创建用户"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createTime"> <el-table-column label="创建时间" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.createTime" placeholder="请输入创建时间" /> <el-input
v-model="scope.row.createTime"
placeholder="请输入创建时间"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新用户" prop="updateUserId"> <el-table-column label="更新用户" prop="updateUserId">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.updateUserId" placeholder="请输入更新用户" /> <el-input
v-model="scope.row.updateUserId"
placeholder="请输入更新用户"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" prop="updateTime"> <el-table-column label="更新时间" prop="updateTime">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.updateTime" placeholder="请输入更新时间" /> <el-input
v-model="scope.row.updateTime"
placeholder="请输入更新时间"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> <form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> </el-form>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "PerformAttendAppealDetail", name: "PerformAttendAppealDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("perform/attend/appeal") this.changePath("perform/attend/appeal");
}, },
data() { data() {
return { return {
...@@ -112,14 +295,9 @@ ...@@ -112,14 +295,9 @@
title: "绩效记录申诉信息", title: "绩效记录申诉信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: ["subMethod", "subAddType", "processStatus", "appealResult"],
"subMethod", toDate: [
"subAddType",
"processStatus",
"appealResult",
],
toDate:[
"attendanceDate", "attendanceDate",
"errorTime", "errorTime",
"actualAttendTime", "actualAttendTime",
...@@ -129,13 +307,11 @@ ...@@ -129,13 +307,11 @@
// 表单校验 // 表单校验
rules: { rules: {
staffName: [ staffName: [
{required: true,message: "请输入员工姓名", trigger: "blur" }, { required: true, message: "请输入员工姓名", trigger: "blur" },
{max: 64,message: "最多只能录入64个字符",trigger: "blur",}, { max: 64, message: "最多只能录入64个字符", trigger: "blur" },
], ],
createTime: [ createTime: [{ required: true, message: "请选择创建时间" }],
{required: true,message: "请选择创建时间" }, },
],
}
}; };
}, },
...@@ -158,9 +334,14 @@ ...@@ -158,9 +334,14 @@
/** 绩效记录申诉附件信息删除按钮操作 */ /** 绩效记录申诉附件信息删除按钮操作 */
handleDeletePerformAttendAppealFiles() { handleDeletePerformAttendAppealFiles() {
if (this.checkedPerformAttendAppealFiles.length == 0) { if (this.checkedPerformAttendAppealFiles.length == 0) {
this.$alert("请先选择要删除的绩效记录申诉附件信息数据", "提示", { confirmButtonText: "确定", }); this.$alert("请先选择要删除的绩效记录申诉附件信息数据", "提示", {
confirmButtonText: "确定",
});
} else { } else {
this.performAttendAppealFilesList.splice(this.checkedPerformAttendAppealFiles[0].index - 1, 1); this.performAttendAppealFilesList.splice(
this.checkedPerformAttendAppealFiles[0].index - 1,
1
);
} }
}, },
/** 单选框选中数据 */ /** 单选框选中数据 */
...@@ -174,35 +355,36 @@ ...@@ -174,35 +355,36 @@
}, },
// 渲染前置处理 // 渲染前置处理
beforeRender(data) { beforeRender(data) {
if(data.entity.performAttendAppealFilesList) { if (data.entity.performAttendAppealFilesList) {
this.performAttendAppealFilesList = data.entity.performAttendAppealFilesList; this.performAttendAppealFilesList =
data.entity.performAttendAppealFilesList;
} }
return data return data;
}, },
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/attend/appeal/edit"; this.urls.currUrl = "perform/attend/appeal/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改绩效记录申诉信息"; this.title = "修改绩效记录申诉信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/attend/appeal/add"; this.urls.currUrl = "perform/attend/appeal/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增绩效记录申诉信息"; this.title = "新增绩效记录申诉信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/attend/appeal/view"; this.urls.currUrl = "perform/attend/appeal/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "绩效记录申诉信息详细"; this.title = "绩效记录申诉信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -222,33 +404,33 @@ ...@@ -222,33 +404,33 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
checkRecordId : null, checkRecordId: null,
staffId : null, staffId: null,
staffName : "", staffName: "",
workNum : "", workNum: "",
deptId : null, deptId: null,
deptName : "", deptName: "",
attendanceGroupId : null, attendanceGroupId: null,
attendanceGroupName : "", attendanceGroupName: "",
attendanceDate : null, attendanceDate: null,
ruleId : null, ruleId: null,
ruleName : "", ruleName: "",
subMethod : 1, subMethod: 1,
subAddType : 1, subAddType: 1,
score : 0.00, score: 0.0,
goOffTimeStr : "", goOffTimeStr: "",
errorTime : null, errorTime: null,
actualAttendTime : null, actualAttendTime: null,
errorResult : "", errorResult: "",
checkPerson : "", checkPerson: "",
checkTime : null, checkTime: null,
checkDesc : "", checkDesc: "",
checkResult : "", checkResult: "",
processStatus : 1, processStatus: 1,
appealDesc : "", appealDesc: "",
appealTime : null, appealTime: null,
appealResult : 2, appealResult: 2,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -258,5 +440,5 @@ ...@@ -258,5 +440,5 @@
} }
}, },
}, },
}; };
</script> </script>
...@@ -255,7 +255,7 @@ export default { ...@@ -255,7 +255,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
......
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformDeptConfList", name: "PerformDeptConfList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -33,45 +30,73 @@ ...@@ -33,45 +30,73 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [],
],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "部门id", prop: "deptId", formatter: this.formatter}, { label: "部门id", prop: "deptId", formatter: this.formatter },
{label: "部门名称", prop: "deptName"}, { label: "部门名称", prop: "deptName" },
{label: "考勤绩效指标数量", prop: "attendCount",formatter: this.formatter}, {
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{label: "评价绩效指标数量", prop: "assessCount",formatter: this.formatter}, {
label: "评价绩效指标数量",
prop: "assessCount",
formatter: this.formatter,
},
{label: "办件绩效指标数量", prop: "workCount",formatter: this.formatter}, {
label: "办件绩效指标数量",
prop: "workCount",
formatter: this.formatter,
},
{label: "效能绩效指标数量", prop: "effectCount",formatter: this.formatter}, {
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{label: "其它绩效指标数量", prop: "otherCount",formatter: this.formatter}, {
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row> <el-row>
<Field label="负责人id号" prop="ownerId" v-model="form.ownerId" placeholder="请输入负责人id号"/> <Field
<Field label="负责人名称" prop="ownerName" v-model="form.ownerName" placeholder="请输入负责人名称"/> label="负责人id号"
<Field label="窗口工作人员id号" prop="staffId" v-model="form.staffId" placeholder="请输入窗口工作人员id号"/> prop="ownerId"
<Field label="请假类型" prop="assessmentType" v-model="form.assessmentType" type="select" :enumData="dict.assessmentType" placeholder="请选择请假类型"/> v-model="form.ownerId"
<Field label="考核范围" prop="assessmentScope" v-model="form.assessmentScope" type="select" :enumData="dict.assessmentScope" placeholder="请选择考核范围"/> placeholder="请输入负责人id号"
<Field label="考比较类型" prop="compareScope" v-model="form.compareScope" type="select" :enumData="dict.compareScope" placeholder="请选择考比较类型"/> />
<Field label="比例" prop="ratio" v-model="form.ratio" placeholder="请输入比例"/> <Field
<Field label="周期类型" prop="periodType" v-model="form.periodType" type="select" :enumData="dict.periodType" placeholder="请选择周期类型"/> label="负责人名称"
<Field label="年" prop="year" v-model="form.year" placeholder="请输入年"/> prop="ownerName"
<Field label="月" prop="month" v-model="form.month" type="select" :enumData="dict.month" placeholder="请选择月"/> v-model="form.ownerName"
<Field label="半年类型" prop="halfYear" v-model="form.halfYear" type="select" :enumData="dict.halfYear" placeholder="请选择半年类型"/> placeholder="请输入负责人名称"
<Field label="半年类型" prop="halfYear" v-model="form.halfYear" type="select" :enumData="dict.halfYear" placeholder="请选择半年类型"/> />
<Field label="季度类型" prop="quarter" v-model="form.quarter" type="select" :enumData="dict.quarter" placeholder="请选择季度类型"/> <Field
<Field label="负责人,多个逗号分割" prop="leaders" v-model="form.leaders" type="textarea" placeholder="请输入负责人,多个逗号分割"/> label="窗口工作人员id号"
<Field label="负责人电话,多个逗号分割" prop="leaderMobiles" v-model="form.leaderMobiles" type="textarea" placeholder="请输入负责人电话,多个逗号分割"/> prop="staffId"
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> v-model="form.staffId"
placeholder="请输入窗口工作人员id号"
/>
<Field
label="请假类型"
prop="assessmentType"
v-model="form.assessmentType"
type="select"
:enumData="dict.assessmentType"
placeholder="请选择请假类型"
/>
<Field
label="考核范围"
prop="assessmentScope"
v-model="form.assessmentScope"
type="select"
:enumData="dict.assessmentScope"
placeholder="请选择考核范围"
/>
<Field
label="考比较类型"
prop="compareScope"
v-model="form.compareScope"
type="select"
:enumData="dict.compareScope"
placeholder="请选择考比较类型"
/>
<Field
label="比例"
prop="ratio"
v-model="form.ratio"
placeholder="请输入比例"
/>
<Field
label="周期类型"
prop="periodType"
v-model="form.periodType"
type="select"
:enumData="dict.periodType"
placeholder="请选择周期类型"
/>
<Field
label="年"
prop="year"
v-model="form.year"
placeholder="请输入年"
/>
<Field
label="月"
prop="month"
v-model="form.month"
type="select"
:enumData="dict.month"
placeholder="请选择月"
/>
<Field
label="半年类型"
prop="halfYear"
v-model="form.halfYear"
type="select"
:enumData="dict.halfYear"
placeholder="请选择半年类型"
/>
<Field
label="半年类型"
prop="halfYear"
v-model="form.halfYear"
type="select"
:enumData="dict.halfYear"
placeholder="请选择半年类型"
/>
<Field
label="季度类型"
prop="quarter"
v-model="form.quarter"
type="select"
:enumData="dict.quarter"
placeholder="请选择季度类型"
/>
<Field
label="负责人,多个逗号分割"
prop="leaders"
v-model="form.leaders"
type="textarea"
placeholder="请输入负责人,多个逗号分割"
/>
<Field
label="负责人电话,多个逗号分割"
prop="leaderMobiles"
v-model="form.leaderMobiles"
type="textarea"
placeholder="请输入负责人电话,多个逗号分割"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button> <el-button
type="primary"
v-if="pageInfo.type !== 'view'"
@click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow"; import dialogShow from "./dialogshow";
export default { export default {
mixins: [form], mixins: [form],
components: { components: {
dialogShow , dialogShow,
}, },
data() { data() {
return { return {
...@@ -46,7 +148,7 @@ ...@@ -46,7 +148,7 @@
title: "考核目标", title: "考核目标",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
toString:[ toString: [
"assessmentType", "assessmentType",
"assessmentScope", "assessmentScope",
"compareScope", "compareScope",
...@@ -58,41 +160,37 @@ ...@@ -58,41 +160,37 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
year: [ year: [{ required: true, message: "请输入年", trigger: "blur" }],
{required: true,message: "请输入年", trigger: "blur" }, month: [{ required: true, message: "请输入月", trigger: "blur" }],
], },
month: [
{required: true,message: "请输入月", trigger: "blur" },
],
}
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/perpose/edit"; this.urls.currUrl = "perform/perpose/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改考核目标"; this.title = "修改考核目标";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/perpose/add"; this.urls.currUrl = "perform/perpose/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增考核目标"; this.title = "新增考核目标";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/perpose/view"; this.urls.currUrl = "perform/perpose/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "考核目标详细"; this.title = "考核目标详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -112,22 +210,22 @@ ...@@ -112,22 +210,22 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
ownerId : null, ownerId: null,
ownerName : "", ownerName: "",
staffId : null, staffId: null,
assessmentType : null, assessmentType: null,
assessmentScope : 1, assessmentScope: 1,
compareScope : 1, compareScope: 1,
ratio : 0.00, ratio: 0.0,
periodType : 1, periodType: 1,
year : null, year: null,
month : null, month: null,
halfYear : 1, halfYear: 1,
halfYear : 1, halfYear: 1,
quarter : 1, quarter: 1,
leaders : "", leaders: "",
leaderMobiles : "", leaderMobiles: "",
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -137,5 +235,5 @@ ...@@ -137,5 +235,5 @@
} }
}, },
}, },
}; };
</script> </script>
...@@ -23,9 +23,22 @@ ...@@ -23,9 +23,22 @@
<div class="right_box"> <div class="right_box">
<h3>规则管理</h3> <h3>规则管理</h3>
<div class="search_box"> <div class="search_box">
<div class="left_search">
<el-button type="primary" style="margin:20px 0" @click="addRules"> <el-button type="primary" style="margin:20px 0" @click="addRules">
+ 新增规则</el-button + 新增规则</el-button
> >
<el-switch
v-model="switchValue"
active-color="#13ce66"
inactive-color="#1890ff"
active-value="100"
inactive-value="0"
inactive-text="按分值排序"
active-text="按更新时间排序"
style="margin-left: 10px;"
>
</el-switch>
</div>
<div class="search"> <div class="search">
<el-input <el-input
placeholder="请输入考核内容关键字搜索" placeholder="请输入考核内容关键字搜索"
...@@ -70,6 +83,7 @@ export default { ...@@ -70,6 +83,7 @@ export default {
}, },
data() { data() {
return { return {
switchValue: "0",
index: -1, index: -1,
dataArr: [], dataArr: [],
config: { config: {
......
...@@ -46,7 +46,7 @@ export default { ...@@ -46,7 +46,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 180px; width: 180px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
} }
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%"
>
<el-form
ref="form"
class="form_content"
:model="form"
:rules="rules"
label-width="120px"
>
<el-row>
<el-row style="width: 100%;margin-bottom: 10px;">
<el-col style="width: 100%;" :span="24">
<Field
label="选择部门:"
prop="deptId"
v-model="form.deptId"
placeholder="选择部门"
:enumData="deptGroup"
type="select"
/>
</el-col>
</el-row>
<el-row style="width: 96%;margin: 0 auto;">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="考勤绩效指标" name="1">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="评价绩效指标" name="2">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="办件绩效指标" name="3">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="效能绩效指标" name="4">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
</el-tabs>
</el-row>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="部门id"
prop="deptId"
v-model="form.deptId"
placeholder="请输入部门id"
/>
<Field
label="部门名称"
prop="deptName"
v-model="form.deptName"
type="textarea"
placeholder="请输入部门名称"
/>
<Field
label="考勤绩效指标数量"
prop="attendCount"
v-model="form.attendCount"
placeholder="请输入考勤绩效指标数量"
/>
<Field
label="评价绩效指标数量"
prop="assessCount"
v-model="form.assessCount"
placeholder="请输入评价绩效指标数量"
/>
<Field
label="办件绩效指标数量"
prop="workCount"
v-model="form.workCount"
placeholder="请输入办件绩效指标数量"
/>
<Field
label="效能绩效指标数量"
prop="effectCount"
v-model="form.effectCount"
placeholder="请输入效能绩效指标数量"
/>
<Field
label="其它绩效指标数量"
prop="otherCount"
v-model="form.otherCount"
placeholder="请输入其它绩效指标数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form> -->
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "PerformDeptConfDetail",
mixins: [form],
components: {},
created() {
this.changePath("perform/dept/conf");
},
data() {
return {
deptGroup: { 1: "部门1", 2: "部门2", 3: "部门3", 4: "部门4", 5: "部门5" },
// 遮罩层
loading: true,
// 弹出层标题
title: "部门自动考核信息",
// 是否显示弹出层
open: false,
direction: "rtl",
toString: [],
toDate: [],
tableData: [
{
core: "-0.5",
name: "迟到",
simple: "迟到5分钟以内(包含5分钟)",
check: false,
},
],
// 表单校验
rules: {},
activeName: "1",
options: [
{
value: "1",
label: "工作纪律",
},
{
value: "2",
label: "工作效能",
},
],
type: "",
keywords: "",
};
},
methods: {
handleChange(val) {
console.log(val);
},
handleClick() {},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/dept/conf/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "修改部门自动考核信息";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "perform/dept/conf/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增部门自动考核信息";
},
/** 查看*/
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/dept/conf/view";
this.getData();
this.pageInfo.type = "view";
this.title = "部门自动考核信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
deptId: null,
deptName: "",
attendCount: null,
assessCount: null,
workCount: null,
effectCount: null,
otherCount: null,
remark: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<style lang="less" scoped>
.form_content {
/deep/.el-col-12 {
width: 98% !important;
}
.content {
width: 100%;
height: 500px;
border: 1px solid #e4e7ed;
border-top: 0;
padding: 20px;
.top {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
}
/deep/.el-tabs__header {
margin: 0 !important;
}
}
</style>
...@@ -4,82 +4,450 @@ ...@@ -4,82 +4,450 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> >
<el-form
ref="form"
class="form_content"
:model="form"
:rules="rules"
label-width="120px"
>
<el-row> <el-row>
<Field label="人员ids,多个","分割" prop="staffIds" v-model="form.staffIds" type="textarea" placeholder="请输入人员ids,多个","分割"/> <el-row style="width: 100%;margin-bottom: 10px;">
<Field label="人员名称nams,多个","逗号分割" prop="staffNames" v-model="form.staffNames" type="textarea" placeholder="请输入人员名称nams,多个","逗号分割"/> <el-col style="width: 100%;" :span="24">
<Field label="考核人总数" prop="staffCount" v-model="form.staffCount" placeholder="请输入考核人总数"/> <span>选择人员:</span>
<Field label="考勤绩效指标数量" prop="attendCount" v-model="form.attendCount" placeholder="请输入考勤绩效指标数量"/> <el-button type="primary" @click="() => (dialog = true)"
<Field label="评价绩效指标数量" prop="assessCount" v-model="form.assessCount" placeholder="请输入评价绩效指标数量"/> >点击选择人员</el-button
<Field label="办件绩效指标数量" prop="workCount" v-model="form.workCount" placeholder="请输入办件绩效指标数量"/> >
<Field label="效能绩效指标数量" prop="effectCount" v-model="form.effectCount" placeholder="请输入效能绩效指标数量"/> </el-col>
<Field label="其它绩效指标数量" prop="otherCount" v-model="form.otherCount" placeholder="请输入其它绩效指标数量"/> </el-row>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <el-row style="width: 96%;margin: 0 auto;">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="考勤绩效指标" name="1">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="评价绩效指标" name="2">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="办件绩效指标" name="3">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="效能绩效指标" name="4">
<div class="content">
<div class="top">
<div>
请选择自动考核指标:
</div>
<div class="search_box">
<el-select v-model="type" placeholder="请选择分类">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
style="width: 200px;"
>
</el-option>
</el-select>
<el-input
v-model="keywords"
placeholder="请输入评分标准关键字搜索"
style="width: 200px;margin: 0 10px;"
></el-input>
<el-button type="primary"> 搜索 </el-button>
</div>
</div>
<div class="mid_table">
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column
prop="name"
label="考核内容简称"
width="180"
>
</el-table-column>
<el-table-column prop="simple" label="评分标准">
</el-table-column>
<el-table-column prop="core" label="扣分分值">
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.check"
@change="handleChange(scope.row)"
>
</el-switch>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-tab-pane>
</el-tabs>
</el-row>
</el-row> </el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit="submitForm" noCancelBtn />
</el-form> </el-form>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="人员ids,多个"','"分割" prop="staffIds"
v-model="form.staffIds" type="textarea"
placeholder="请输入人员ids,多个"','"分割"/> <Field
label="人员名称nams,多个"','"逗号分割" prop="staffNames"
v-model="form.staffNames" type="textarea"
placeholder="请输入人员名称nams,多个"','"逗号分割"/>
<Field
label="考核人总数"
prop="staffCount"
v-model="form.staffCount"
placeholder="请输入考核人总数"
/>
<Field
label="考勤绩效指标数量"
prop="attendCount"
v-model="form.attendCount"
placeholder="请输入考勤绩效指标数量"
/>
<Field
label="评价绩效指标数量"
prop="assessCount"
v-model="form.assessCount"
placeholder="请输入评价绩效指标数量"
/>
<Field
label="办件绩效指标数量"
prop="workCount"
v-model="form.workCount"
placeholder="请输入办件绩效指标数量"
/>
<Field
label="效能绩效指标数量"
prop="effectCount"
v-model="form.effectCount"
placeholder="请输入效能绩效指标数量"
/>
<Field
label="其它绩效指标数量"
prop="otherCount"
v-model="form.otherCount"
placeholder="请输入其它绩效指标数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form> -->
<el-dialog title="选择人员" :visible.sync="dialog" width="40%">
<div class="dia_content">
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
></el-tree>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false"
>确 定</el-button
>
</span>
</el-dialog>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "PerformStaffConfDetail", name: "PerformStaffConfDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("perform/staff/conf") this.changePath("perform/staff/conf");
}, },
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
dialog: false,
// 弹出层标题 // 弹出层标题
title: "人员自动考核信息", title: "人员自动考核信息",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: [],
], toDate: [],
toDate:[ tableData: [
{
core: "-0.5",
name: "迟到",
simple: "迟到5分钟以内(包含5分钟)",
check: false,
},
], ],
// 表单校验 // 表单校验
rules: { rules: {},
} activeName: "1",
options: [
{
value: "1",
label: "工作纪律",
},
{
value: "2",
label: "工作效能",
},
],
type: "",
keywords: "",
data: [
{
label: "一级 1",
children: [
{
label: "二级 1-1",
children: [
{
label: "三级 1-1-1",
},
],
},
],
},
{
label: "一级 2",
children: [
{
label: "二级 2-1",
children: [
{
label: "三级 2-1-1",
},
],
},
{
label: "二级 2-2",
children: [
{
label: "三级 2-2-1",
},
],
},
],
},
{
label: "一级 3",
children: [
{
label: "二级 3-1",
children: [
{
label: "三级 3-1-1",
},
],
},
{
label: "二级 3-2",
children: [
{
label: "三级 3-2-1",
},
],
},
],
},
],
defaultProps: {
children: "children",
label: "label",
},
}; };
}, },
methods: { methods: {
handleChange(val) {
console.log(val);
},
handleClick() {},
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/staff/conf/edit"; this.urls.currUrl = "perform/staff/conf/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改人员自动考核信息"; this.title = "修改人员自动考核信息";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "perform/staff/conf/add"; this.urls.currUrl = "perform/staff/conf/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增人员自动考核信息"; this.title = "新增人员自动考核信息";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="perform/staff/conf/view"; this.urls.currUrl = "perform/staff/conf/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "人员自动考核信息详细"; this.title = "人员自动考核信息详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -99,15 +467,15 @@ ...@@ -99,15 +467,15 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
staffIds : "", staffIds: "",
staffNames : "", staffNames: "",
staffCount : null, staffCount: null,
attendCount : null, attendCount: null,
assessCount : null, assessCount: null,
workCount : null, workCount: null,
effectCount : null, effectCount: null,
otherCount : null, otherCount: null,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -117,5 +485,27 @@ ...@@ -117,5 +485,27 @@
} }
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped>
.form_content {
/deep/.el-col-12 {
width: 98% !important;
}
.content {
width: 100%;
height: 500px;
border: 1px solid #e4e7ed;
border-top: 0;
padding: 20px;
.top {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
}
/deep/.el-tabs__header {
margin: 0 !important;
}
}
</style>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformStaffConfList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "人员ids", prop: "staffIds" },
{ label: "人员名称n", prop: "staffNames" },
{
label: "考核人总数",
prop: "staffCount",
formatter: this.formatter,
},
{
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{
label: "评价绩效指标数量",
prop: "assessCount",
formatter: this.formatter,
},
{
label: "办件绩效指标数量",
prop: "workCount",
formatter: this.formatter,
},
{
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
},
};
</script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="自动考核指标" name="1">
<div class="content">
<div class="top">
<el-radio-group v-model="type" @input="buttonChange">
<el-radio-button label="1">按部门</el-radio-button>
<el-radio-button label="2">按个人</el-radio-button>
</el-radio-group>
<el-button type="primary" style="margin: 0 20px;" @click="addGoal">
+ {{ type == 1 ? "新增考核部门" : "新增考核个人" }}</el-button
>
</div>
<div class="mid_content">
<div class="goal_box" v-for="(val, i) in dataList" :key="i">
<div class="goal_title">
<img src="../../../../assets/images/u17641.svg" alt="" />
<span>
{{ val.deptName ? val.deptName : "--" }}
</span>
</div>
<p class="goal_txt">
<span>考核指标:</span>
</p>
<p>
<el-tag style="margin: 0 5px 5px 0"
>考勤绩效指标/工作纪律:{{ val.attendCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>评价绩效指标/工作纪律:{{ val.assessCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>办件绩效指标/工作效能:{{ val.workCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>效能绩效指标/工作纪律:{{ val.effectCount }}</el-tag
>
</p>
<p class="goal_txt">
<span>最近更新:</span><span>{{ val.createTime }}</span>
</p>
<p class="goal_txt">
<span>更新人员:</span><span>{{ val.createUserId }}</span>
</p>
<div class="button_box">
<el-button
type="primary"
style="width: 150px;"
plain
@click="hanleEdit(val)"
>编辑</el-button
>
<el-button
type="danger"
style="width: 150px;"
plain
@click="hanleDel(val)"
>删除</el-button
>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="窗口负责人管理" name="2">
<div class="content">
<LayoutTable :data="tableData" notSearch :config="tableConfig">
</LayoutTable>
</div>
</el-tab-pane>
</el-tabs>
<!-- 人员考核 -->
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
<!-- 部门考核 -->
<deptdrawer-show ref="deptdrawerform" @ok="getData" />
<!-- 窗口负责人管理 -->
<windowdrawer-show ref="windowdrawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import deptdrawerShow from "./deptdrawershow.vue";
import windowdrawerShow from "./windowdrawershow.vue";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "PerformStaffConfList", name: "PerformStaffConfList",
components: { components: {
drawerShow, drawerShow,
deptdrawerShow,
windowdrawerShow,
}, },
mixins: [table], mixins: [table],
created() {}, created() {
console.log(this.tableData);
sessionStorage.removeItem("type");
sessionStorage.setItem("type", this.type);
},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.drawerform.add(row); this.$refs.windowdrawerform.add(row);
}, },
/** 重写编辑方法 */ /** 重写编辑方法 */
toEdit(row) { toEdit(row) {
this.$refs.drawerform.edit(row); this.$refs.windowdrawerform.edit(row);
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.windowdrawerform.view(row);
},
hanleEdit(val) {
this.type == 1
? this.$refs.deptdrawerform.edit(val)
: this.$refs.drawerform.edit(val);
},
hanleDel(val) {
this.$get(
this.type == 1
? "/perform/dept/conf/delete"
: "/perform/staff/conf/delete",
{ id: val.id }
).then((res) => {
this.$message.success(res.msg);
this.getData();
});
},
addGoal() {
this.type == 1
? this.$refs.deptdrawerform.add()
: this.$refs.drawerform.add();
},
buttonChange() {
sessionStorage.setItem("type", this.type);
this.getData();
},
handleClick() {
this.getData();
},
async getData() {
await this.$post(
this.type == 1 ? "/perform/dept/conf/list" : "/perform/staff/conf/list"
).then((res) => {
console.log(res);
if (res.code == 1) {
this.dataList = res.data.data;
}
});
this.activeName == 2
? await this.$post("/window/owner/list").then((res) => {
console.log(res);
if (res.code == 1) {
this.tableData = res.data;
}
})
: "";
}, },
}, },
data() { data() {
return { return {
dataList: [],
tableData: {},
activeName: "1",
type: "1",
config: { config: {
isshowTabPane: true, isshowTabPane: false,
search: [], search: [],
columns: [ columns: [
{ type: "selection", width: 60 }, { type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 }, { type: "index", label: "序号", width: 50 },
{ label: "人员ids", prop: "staffIds" }, { label: "部门名称", prop: "deptName" },
{ label: "人员名称n", prop: "staffNames" }, { label: "姓名", prop: "name" },
{ { label: "工号", prop: "number" },
label: "考核人总数",
prop: "staffCount",
formatter: this.formatter,
},
{ { label: "电话号码", prop: "phone" },
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{ {
label: "评价绩效指标数量", label: "负责窗口数量",
prop: "assessCount", prop: "windowCount",
formatter: this.formatter, formatter: this.formatter,
}, },
{ {
label: "办件绩效指标数量", label: "创建时间",
prop: "workCount", prop: "createTime",
formatter: this.formatter, formatter: this.formatterDate,
},
{
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
}, },
{ {
label: "操作", label: "操作",
...@@ -106,3 +211,120 @@ export default { ...@@ -106,3 +211,120 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped>
.page {
width: 100%;
height: 100%;
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 14px;
text-align: center;
}
.content {
width: 100%;
height: 100%;
.search_top {
width: 100%;
height: 1000%;
display: flex;
justify-content: space-between;
}
/deep/.el-radio-button {
width: 150px;
text-align: center;
border: 1px solid #eee;
}
/deep/.el-radio-button__inner {
width: 150px;
}
/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
width: 150px;
border: none;
background: #1890ff;
color: #fff;
border: 1px solid #eee;
}
.top {
width: 100%;
height: 60px;
}
.mid {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
.mid_top {
width: 100%;
height: 300px;
display: flex;
justify-content: space-between;
.jixiaozongfen,
.jixiaopingjunfen {
width: 48%;
height: 100%;
}
}
.mid_down {
width: 100%;
height: 380px;
display: flex;
justify-content: space-evenly;
padding-top: 50px;
.box {
width: 25%;
height: 100%;
}
}
}
.mid_content,
.bar_content {
width: 100%;
height: 700px;
overflow: hidden;
}
.mid_content {
overflow-y: auto;
display: flex;
flex-wrap: wrap;
.goal_box {
width: 435px;
height: 270px;
background: inherit;
background-color: rgba(255, 255, 255, 1);
border: none;
border-radius: 8px;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
margin: 0 20px 20px 0;
padding: 20px;
.goal_title {
width: 100%;
display: flex;
align-items: center;
img {
margin-right: 10px;
}
}
.goal_txt {
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
color: #666666;
width: 100%;
margin: 10px 0;
}
.button_box {
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
}
}
}
}
}
</style>
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="部门id号"
prop="deptId"
v-model="form.deptId"
placeholder="请输入部门id号"
/>
<Field
label="部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入部门名称"
/>
<Field
label="姓名"
prop="name"
v-model="form.name"
placeholder="请输入姓名"
/>
<Field
label="工号"
prop="number"
v-model="form.number"
placeholder="请输入工号"
/>
<Field
label="电话号码"
prop="phone"
v-model="form.phone"
placeholder="请输入电话号码"
/>
<Field
label="负责窗口数量"
prop="windowCount"
v-model="form.windowCount"
placeholder="请输入负责窗口数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "WindowOwnerDetail",
mixins: [form],
components: {},
created() {
this.changePath("window/owner");
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "窗口负责人",
// 是否显示弹出层
open: false,
direction: "rtl",
toString: [],
toDate: [],
// 表单校验
rules: {},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "window/owner/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "修改窗口负责人";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "window/owner/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增窗口负责人";
},
/** 查看*/
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "window/owner/view";
this.getData();
this.pageInfo.type = "view";
this.title = "窗口负责人详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
deptId: 0,
deptName: "",
name: "",
number: "",
phone: "",
windowCount: null,
remark: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
\ No newline at end of file
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row> <el-row>
<Field <Field
label="负责人id号" label="负责人id号"
......
...@@ -3,11 +3,27 @@ ...@@ -3,11 +3,27 @@
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="目标看板" name="1"> <el-tab-pane label="目标看板" name="1">
<div class="content"> <div class="content">
<div class="top"> <div class="top search_top">
<el-radio-group v-model="type"> <el-radio-group v-model="type">
<el-radio-button label="1">按部门</el-radio-button> <el-radio-button label="1">按部门</el-radio-button>
<el-radio-button label="2">按个人</el-radio-button> <el-radio-button label="2">按个人</el-radio-button>
</el-radio-group> </el-radio-group>
<div class="search_box">
<el-select
v-model="dateValue"
placeholder="请选择"
style="margin: 0 10px;"
>
<el-option
v-for="item in optionsMonths"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-button type="primary">搜索</el-button>
</div>
</div> </div>
<div class="mid"> <div class="mid">
<div class="mid_top"> <div class="mid_top">
...@@ -326,7 +342,7 @@ export default { ...@@ -326,7 +342,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
......
...@@ -4,35 +4,68 @@ ...@@ -4,35 +4,68 @@
:title="title" :title="title"
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
size="50%"> size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="部门id号" prop="deptId" v-model="form.deptId" placeholder="请输入部门id号"/> <Field
<Field label="部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入部门名称"/> label="部门id号"
<Field label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/> prop="deptId"
<Field label="工号" prop="number" v-model="form.number" placeholder="请输入工号"/> v-model="form.deptId"
<Field label="电话号码" prop="phone" v-model="form.phone" placeholder="请输入电话号码"/> placeholder="请输入部门id号"
<Field label="负责窗口数量" prop="windowCount" v-model="form.windowCount" placeholder="请输入负责窗口数量"/> />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <Field
label="部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入部门名称"
/>
<Field
label="姓名"
prop="name"
v-model="form.name"
placeholder="请输入姓名"
/>
<Field
label="工号"
prop="number"
v-model="form.number"
placeholder="请输入工号"
/>
<Field
label="电话号码"
prop="phone"
v-model="form.phone"
placeholder="请输入电话号码"
/>
<Field
label="负责窗口数量"
prop="windowCount"
v-model="form.windowCount"
placeholder="请输入负责窗口数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row> </el-row>
<form-buttons @submit='submitForm' noCancelBtn /> <form-buttons @submit="submitForm" noCancelBtn />
</el-form> </el-form>
</el-drawer> </el-drawer>
</template> </template>
<script> <script>
import form from "@/assets/mixins/formdialog"; import form from "@/assets/mixins/formdialog";
export default { export default {
name: "WindowOwnerDetail", name: "WindowOwnerDetail",
mixins: [form], mixins: [form],
components: { components: {},
},
created() { created() {
this.changePath("window/owner") this.changePath("window/owner");
}, },
data() { data() {
return { return {
...@@ -42,42 +75,39 @@ ...@@ -42,42 +75,39 @@
title: "窗口负责人", title: "窗口负责人",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction:"rtl", direction: "rtl",
toString:[ toString: [],
], toDate: [],
toDate:[
],
// 表单校验 // 表单校验
rules: { rules: {},
}
}; };
}, },
methods: { methods: {
/** 编辑 */ /** 编辑 */
edit(row) { edit(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="window/owner/edit"; this.urls.currUrl = "window/owner/edit";
this.getData(); this.getData();
this.pageInfo.type="edit" this.pageInfo.type = "edit";
this.title = "修改窗口负责人"; this.title = "修改窗口负责人";
}, },
/** 新增 */ /** 新增 */
add(row) { add(row) {
this.reset() this.reset();
this.urls.currUrl = "window/owner/add"; this.urls.currUrl = "window/owner/add";
this.getData(); this.getData();
this.pageInfo.type="add" this.pageInfo.type = "add";
this.title = "新增窗口负责人"; this.title = "新增窗口负责人";
}, },
/** 查看*/ /** 查看*/
view(row) { view(row) {
this.reset() this.reset();
this.query = { id: row.id }; this.query = { id: row.id };
this.urls.currUrl ="window/owner/view"; this.urls.currUrl = "window/owner/view";
this.getData(); this.getData();
this.pageInfo.type="view" this.pageInfo.type = "view";
this.title = "窗口负责人详细"; this.title = "窗口负责人详细";
}, },
/**取消按钮 */ /**取消按钮 */
...@@ -97,13 +127,13 @@ ...@@ -97,13 +127,13 @@
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
deptId : 0, deptId: 0,
deptName : "", deptName: "",
name : "", name: "",
number : "", number: "",
phone : "", phone: "",
windowCount : null, windowCount: null,
remark : "", remark: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -113,5 +143,5 @@ ...@@ -113,5 +143,5 @@
} }
}, },
}, },
}; };
</script> </script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "WindowOwnerList", name: "WindowOwnerList",
components: { components: {
drawerShow drawerShow,
},
mixins: [table],
created() {
}, },
mixins: [table],
created() {},
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
...@@ -33,41 +30,53 @@ ...@@ -33,41 +30,53 @@
toView(row) { toView(row) {
this.$refs.drawerform.view(row); this.$refs.drawerform.view(row);
}, },
}, },
data() { data() {
return { return {
config: { config: {
isshowTabPane:true, isshowTabPane: true,
search: [ search: [],
],
columns: [ columns: [
{type: "selection", width: 60}, { type: "selection", width: 60 },
{type: "index",label: "序号",width: 50}, { type: "index", label: "序号", width: 50 },
{label: "部门名称", prop: "deptName"}, { label: "部门名称", prop: "deptName" },
{label: "姓名", prop: "name"}, { label: "姓名", prop: "name" },
{label: "工号", prop: "number"}, { label: "工号", prop: "number" },
{label: "电话号码", prop: "phone"}, { label: "电话号码", prop: "phone" },
{label: "负责窗口数量", prop: "windowCount",formatter: this.formatter}, {
label: "负责窗口数量",
prop: "windowCount",
formatter: this.formatter,
},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate}, {
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
formatter: row => { formatter: (row) => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
); );
} },
} },
] ],
} },
};
}
}; };
},
};
</script> </script>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"resolved" "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.9.tgz?cache=0&sync_timestamp=1627804534988&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.9.tgz" "resolved" "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.9.tgz?cache=0&sync_timestamp=1627804534988&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.9.tgz"
"version" "7.14.9" "version" "7.14.9"
"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6": "@babel/core@*", "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6":
"integrity" "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA=" "integrity" "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA="
"resolved" "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.8.tgz" "resolved" "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.8.tgz"
"version" "7.14.8" "version" "7.14.8"
...@@ -872,7 +872,15 @@ ...@@ -872,7 +872,15 @@
"@babel/types" "^7.4.4" "@babel/types" "^7.4.4"
"esutils" "^2.0.2" "esutils" "^2.0.2"
"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": "@babel/runtime-corejs3@^7.11.2":
"integrity" "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw=="
"resolved" "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz"
"version" "7.22.6"
dependencies:
"core-js-pure" "^3.30.2"
"regenerator-runtime" "^0.13.11"
"@babel/runtime@^7.11.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
"integrity" "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY=" "integrity" "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY="
"resolved" "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz" "resolved" "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz"
"version" "7.14.8" "version" "7.14.8"
...@@ -941,6 +949,104 @@ ...@@ -941,6 +949,104 @@
"minimatch" "^3.0.4" "minimatch" "^3.0.4"
"strip-json-comments" "^3.1.1" "strip-json-comments" "^3.1.1"
"@form-create/component-elm-checkbox@^2.5.29":
"integrity" "sha512-jOFHQmJ6HQ3pqc/AzALbV0dtcZRdejkerQKfsJXz/EOkKnH3JJ1rgNps8lhoNo6+9R0ybX3FBN5e53iohs0a5w=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-checkbox/-/component-elm-checkbox-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-frame@^2.5.27":
"integrity" "sha512-697RpnNm2dDbLiugT+0Q7yFhkhNPlYXskZkMnLzmwBftWi7Cb78v7EZIE/gmVIlAZ3NSqY0mWYM+0ryjQEKQnQ=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-frame/-/component-elm-frame-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-group@^2.5.28":
"integrity" "sha512-6k9r4R9kPvTaJLmMlHrEfTYQmXVB4N3hDI3d5RqiEX9RdSyBcqdssKvW9O03susNWGbQFRJ5tBAMItURDZJAow=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-group/-/component-elm-group-2.5.28.tgz"
"version" "2.5.28"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-radio@^2.5.27":
"integrity" "sha512-fZWVW+JcL4I8gPrrR9Snt+sd/r6Ek9jGDJEqboqQ+HaYgXTptmvLLigefHqxUU3qize4iDfTJoJ16K0sS2+91g=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-radio/-/component-elm-radio-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-select@^2.5.27":
"integrity" "sha512-xjI5dImAY51jHTZEBoMIk4+0GfF994IqW/cvj3GHP2zPf2NkKfI1OUVnn55DhlYZg04aMSGpvInETSLeCesE/g=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-select/-/component-elm-select-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-tree@^2.5.27":
"integrity" "sha512-ATzz8hmzRI6XXcVpXywfuldJuCH5s3F+OJAUfSQaTP97+9QhBqyc6CDKotO5ZgAGNfKhLbZ0Ns+tFpFfrju9ZA=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-tree/-/component-elm-tree-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-upload@^2.5.29":
"integrity" "sha512-/bP/HFeB009zKHYS9lwA8jST4Hy+UaykRXriqFv31Ly9BeISJVA66XyuNXmYADwc/q9krwVC4cuy5rKw/2vhsw=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-upload/-/component-elm-upload-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-subform@^2.5.25":
"integrity" "sha512-puGWWxSOeII4y4mCNxrKF/eH4nY1AQAx87VchzErLmemwF6TtNBLBsJLCCmFAVLYn1koYU5nNu5Y2yG9s2CKlQ=="
"resolved" "https://registry.npmjs.org/@form-create/component-subform/-/component-subform-2.5.25.tgz"
"version" "2.5.25"
"@form-create/component-wangeditor@^2.5.15":
"integrity" "sha512-U4MUcvaBNEcNbIBeODxYuMlLYR+lZ1zCaZvLP3I+3SOd0KQVjvfRozZku64ukIVxC8Stev/ZNWqpAVsdvFLGaA=="
"resolved" "https://registry.npmjs.org/@form-create/component-wangeditor/-/component-wangeditor-2.5.15.tgz"
"version" "2.5.15"
dependencies:
"wangeditor" "^4.6.0"
"@form-create/core@^2.5.29":
"integrity" "sha512-xXHyLc8jRmXfHRf7xcUrTDx7NeXPxcJU9r2QSwNRszp6bF1HmIHlXuDWr+pqkXp4r5d9nZ87KAi2z2J8MRkF9Q=="
"resolved" "https://registry.npmjs.org/@form-create/core/-/core-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/designer@^1.0.10":
"integrity" "sha512-Lr87K1mHQz5UXcLbZ6ieA/FgJBM1ugAw8MjsF5/WhU6a2Mna2YHQ2ZywL1u+fc0t4Ei+VFBhXUFBvOqUuiseGQ=="
"resolved" "https://registry.npmjs.org/@form-create/designer/-/designer-1.0.10.tgz"
"version" "1.0.10"
dependencies:
"@form-create/component-wangeditor" "^2.5.15"
"@form-create/element-ui" "^2.5.19"
"@form-create/utils" "^2.5.15"
"@form-create/element-ui@^2.5.19", "@form-create/element-ui@^2.5.30":
"integrity" "sha512-UBNTykx4JhznA0JcBtngk+QeWfz1yMQQHwQLHsB/Xp9bX3FnWebHyQG6Go0SSjvdx7bIMFx9fPurNHepyBYAPA=="
"resolved" "https://registry.npmjs.org/@form-create/element-ui/-/element-ui-2.5.30.tgz"
"version" "2.5.30"
dependencies:
"@form-create/component-elm-checkbox" "^2.5.29"
"@form-create/component-elm-frame" "^2.5.27"
"@form-create/component-elm-group" "^2.5.28"
"@form-create/component-elm-radio" "^2.5.27"
"@form-create/component-elm-select" "^2.5.27"
"@form-create/component-elm-tree" "^2.5.27"
"@form-create/component-elm-upload" "^2.5.29"
"@form-create/component-subform" "^2.5.25"
"@form-create/core" "^2.5.29"
"@form-create/utils" "^2.5.27"
"@form-create/utils@^2.5.15", "@form-create/utils@^2.5.27":
"integrity" "sha512-QLzenitKzakxQ8bK8yFYd/9n4eT4E9jKkEneU0yhbjr0ter5uqguGGNJP7gI8waysRAS49VSjQOAY0b4l7mWvg=="
"resolved" "https://registry.npmjs.org/@form-create/utils/-/utils-2.5.27.tgz"
"version" "2.5.27"
"@hapi/address@2.x.x": "@hapi/address@2.x.x":
"integrity" "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=" "integrity" "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU="
"resolved" "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz" "resolved" "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz"
...@@ -2977,12 +3083,17 @@ ...@@ -2977,12 +3083,17 @@
"browserslist" "^4.16.6" "browserslist" "^4.16.6"
"semver" "7.0.0" "semver" "7.0.0"
"core-js-pure@^3.30.2":
"integrity" "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw=="
"resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz"
"version" "3.31.1"
"core-js@^2.4.0": "core-js@^2.4.0":
"integrity" "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" "integrity" "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
"resolved" "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz" "resolved" "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz"
"version" "2.6.12" "version" "2.6.12"
"core-js@^3.6.5": "core-js@^3":
"version" "3.16.0" "version" "3.16.0"
"core-js@3.8.1": "core-js@3.8.1":
...@@ -7802,10 +7913,10 @@ ...@@ -7802,10 +7913,10 @@
"resolved" "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz" "resolved" "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz"
"version" "0.11.1" "version" "0.11.1"
"regenerator-runtime@^0.13.4": "regenerator-runtime@^0.13.11", "regenerator-runtime@^0.13.4":
"integrity" "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
"resolved" "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz" "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
"version" "0.13.9" "version" "0.13.11"
"regenerator-transform@^0.14.2": "regenerator-transform@^0.14.2":
"integrity" "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=" "integrity" "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ="
...@@ -9139,6 +9250,11 @@ ...@@ -9139,6 +9250,11 @@
"resolved" "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1623451518217&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz" "resolved" "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1623451518217&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz"
"version" "1.14.1" "version" "1.14.1"
"tslib@^2.1.0":
"integrity" "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz"
"version" "2.6.0"
"tty-browserify@0.0.0": "tty-browserify@0.0.0":
"integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" "integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
"resolved" "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz" "resolved" "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz"
...@@ -9566,6 +9682,15 @@ ...@@ -9566,6 +9682,15 @@
"resolved" "https://registry.nlark.com/vuex/download/vuex-3.6.0.tgz" "resolved" "https://registry.nlark.com/vuex/download/vuex-3.6.0.tgz"
"version" "3.6.0" "version" "3.6.0"
"wangeditor@^4.6.0":
"integrity" "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg=="
"resolved" "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz"
"version" "4.7.15"
dependencies:
"@babel/runtime" "^7.11.2"
"@babel/runtime-corejs3" "^7.11.2"
"tslib" "^2.1.0"
"watch-size@^2.0.0": "watch-size@^2.0.0":
"integrity" "sha1-CW7ijQNlvX6gPZyL8fL1CnO+FHQ=" "integrity" "sha1-CW7ijQNlvX6gPZyL8fL1CnO+FHQ="
"resolved" "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz" "resolved" "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz"
......
...@@ -13,4 +13,6 @@ import com.mortals.xhx.module.check.dao.CheckGoworkRecordDao; ...@@ -13,4 +13,6 @@ import com.mortals.xhx.module.check.dao.CheckGoworkRecordDao;
public interface CheckGoworkRecordService extends ICRUDService<CheckGoworkRecordEntity,Long>{ public interface CheckGoworkRecordService extends ICRUDService<CheckGoworkRecordEntity,Long>{
CheckGoworkRecordDao getDao(); CheckGoworkRecordDao getDao();
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckAttendRecordEntity;
import com.mortals.xhx.module.check.service.CheckAttendRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<PerformAttendRecordDao, PerformAttendRecordEntity, Long> implements PerformAttendRecordService { public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<PerformAttendRecordDao, PerformAttendRecordEntity, Long> implements PerformAttendRecordService {
@Autowired
private CheckAttendRecordService checkAttendRecordService;
@Override
protected void saveAfter(PerformAttendRecordEntity entity, Context context) throws AppException {
CheckAttendRecordEntity checkAttendRecordEntity = new CheckAttendRecordEntity();
checkAttendRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkAttendRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkAttendRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkAttendRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkAttendRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkAttendRecordService.save(checkAttendRecordEntity,context);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckComplainRecordEntity;
import com.mortals.xhx.module.check.service.CheckComplainRecordService;
import com.mortals.xhx.module.perform.dao.PerformComplainRecordDao; import com.mortals.xhx.module.perform.dao.PerformComplainRecordDao;
import com.mortals.xhx.module.perform.model.PerformComplainRecordEntity; import com.mortals.xhx.module.perform.model.PerformComplainRecordEntity;
import com.mortals.xhx.module.perform.service.PerformComplainRecordService; import com.mortals.xhx.module.perform.service.PerformComplainRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/** /**
* PerformComplainRecordService * PerformComplainRecordService
* 评价绩效投诉记录信息 service实现 * 评价绩效投诉记录信息 service实现
...@@ -18,4 +24,20 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +24,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformComplainRecordServiceImpl extends AbstractCRUDServiceImpl<PerformComplainRecordDao, PerformComplainRecordEntity, Long> implements PerformComplainRecordService { public class PerformComplainRecordServiceImpl extends AbstractCRUDServiceImpl<PerformComplainRecordDao, PerformComplainRecordEntity, Long> implements PerformComplainRecordService {
@Autowired
private CheckComplainRecordService checkComplainRecordService;
@Override
protected void saveAfter(PerformComplainRecordEntity entity, Context context) throws AppException {
CheckComplainRecordEntity checkComplainRecordEntity = new CheckComplainRecordEntity();
checkComplainRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkComplainRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkComplainRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkComplainRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkComplainRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkComplainRecordService.save(checkComplainRecordEntity,context);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckEffectRecordEntity;
import com.mortals.xhx.module.check.service.CheckEffectRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformEffectRecordServiceImpl extends AbstractCRUDServiceImpl<PerformEffectRecordDao, PerformEffectRecordEntity, Long> implements PerformEffectRecordService { public class PerformEffectRecordServiceImpl extends AbstractCRUDServiceImpl<PerformEffectRecordDao, PerformEffectRecordEntity, Long> implements PerformEffectRecordService {
@Autowired
private CheckEffectRecordService checkEffectRecordService;
@Override
protected void saveAfter(PerformEffectRecordEntity entity, Context context) throws AppException {
CheckEffectRecordEntity checkEffectRecordEntity = new CheckEffectRecordEntity();
checkEffectRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkEffectRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkEffectRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkEffectRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkEffectRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkEffectRecordService.save(checkEffectRecordEntity,context);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckGoworkRecordEntity;
import com.mortals.xhx.module.check.service.CheckGoworkRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformGoworkRecordServiceImpl extends AbstractCRUDServiceImpl<PerformGoworkRecordDao, PerformGoworkRecordEntity, Long> implements PerformGoworkRecordService { public class PerformGoworkRecordServiceImpl extends AbstractCRUDServiceImpl<PerformGoworkRecordDao, PerformGoworkRecordEntity, Long> implements PerformGoworkRecordService {
@Autowired
private CheckGoworkRecordService checkGoworkRecordService;
@Override
protected void saveAfter(PerformGoworkRecordEntity entity, Context context) throws AppException {
CheckGoworkRecordEntity checkGoworkRecordEntity = new CheckGoworkRecordEntity();
checkGoworkRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkGoworkRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkGoworkRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkGoworkRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkGoworkRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkGoworkRecordService.save(checkGoworkRecordEntity,context);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckOtherRecordEntity;
import com.mortals.xhx.module.check.service.CheckOtherRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformOtherRecordServiceImpl extends AbstractCRUDServiceImpl<PerformOtherRecordDao, PerformOtherRecordEntity, Long> implements PerformOtherRecordService { public class PerformOtherRecordServiceImpl extends AbstractCRUDServiceImpl<PerformOtherRecordDao, PerformOtherRecordEntity, Long> implements PerformOtherRecordService {
@Autowired
private CheckOtherRecordService checkOtherRecordService;
@Override
protected void saveAfter(PerformOtherRecordEntity entity, Context context) throws AppException {
CheckOtherRecordEntity checkOtherRecordEntity = new CheckOtherRecordEntity();
checkOtherRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkOtherRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkOtherRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkOtherRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkOtherRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkOtherRecordService.save(checkOtherRecordEntity,context);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl; package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckReviewRecordEntity;
import com.mortals.xhx.module.check.service.CheckReviewRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +23,19 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +23,19 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class PerformReviewRecordServiceImpl extends AbstractCRUDServiceImpl<PerformReviewRecordDao, PerformReviewRecordEntity, Long> implements PerformReviewRecordService { public class PerformReviewRecordServiceImpl extends AbstractCRUDServiceImpl<PerformReviewRecordDao, PerformReviewRecordEntity, Long> implements PerformReviewRecordService {
@Autowired
private CheckReviewRecordService checkReviewRecordService;
@Override
protected void saveAfter(PerformReviewRecordEntity entity, Context context) throws AppException {
CheckReviewRecordEntity checkReviewRecordEntity = new CheckReviewRecordEntity();
BeanUtils.copyProperties(entity,checkReviewRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkReviewRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkReviewRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkReviewRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkReviewRecordService.save(checkReviewRecordEntity,context);
}
} }
\ No newline at end of file
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