已重命名1个文件
已修改13个文件
已添加9个文件
已删除1个文件
对比新文件 |
| | |
| | | <component name="libraryTable"> |
| | | <library name="core" type="javaScript"> |
| | | <properties> |
| | | <sourceFilesUrls> |
| | | <item url="file://E:/vue/src/core/components/index.ts" /> |
| | | <item url="file://E:/vue/src/core/components/keep-alive.ts" /> |
| | | <item url="file://E:/vue/src/core/config.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/assets.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/extend.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/index.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/mixin.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/use.ts" /> |
| | | <item url="file://E:/vue/src/core/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/events.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/init.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/inject.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/lifecycle.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/proxy.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-dynamic-keys.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-object-listeners.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-object-props.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/check-keycodes.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-list.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-slot.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-static.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-filter.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-scoped-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/state.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/array.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/dep.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/index.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/scheduler.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/traverse.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/watcher.ts" /> |
| | | <item url="file://E:/vue/src/core/util/debug.ts" /> |
| | | <item url="file://E:/vue/src/core/util/env.ts" /> |
| | | <item url="file://E:/vue/src/core/util/error.ts" /> |
| | | <item url="file://E:/vue/src/core/util/index.ts" /> |
| | | <item url="file://E:/vue/src/core/util/lang.ts" /> |
| | | <item url="file://E:/vue/src/core/util/next-tick.ts" /> |
| | | <item url="file://E:/vue/src/core/util/options.ts" /> |
| | | <item url="file://E:/vue/src/core/util/perf.ts" /> |
| | | <item url="file://E:/vue/src/core/util/props.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-element.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-functional-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/extract-props.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/get-first-component-child.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/index.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/is-async-placeholder.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/merge-hook.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/normalize-children.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/normalize-scoped-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/resolve-async-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/update-listeners.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/directives.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/index.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/template-ref.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/patch.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/vnode.ts" /> |
| | | </sourceFilesUrls> |
| | | </properties> |
| | | <CLASSES> |
| | | <root url="file://E:/vue/src/core/components/index.ts" /> |
| | | <root url="file://E:/vue/src/core/components/keep-alive.ts" /> |
| | | <root url="file://E:/vue/src/core/config.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/assets.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/extend.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/index.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/mixin.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/use.ts" /> |
| | | <root url="file://E:/vue/src/core/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/events.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/init.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/inject.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/lifecycle.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/proxy.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-dynamic-keys.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-object-listeners.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-object-props.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/check-keycodes.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-list.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-slot.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-static.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-filter.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-scoped-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/state.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/array.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/dep.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/index.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/scheduler.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/traverse.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/watcher.ts" /> |
| | | <root url="file://E:/vue/src/core/util/debug.ts" /> |
| | | <root url="file://E:/vue/src/core/util/env.ts" /> |
| | | <root url="file://E:/vue/src/core/util/error.ts" /> |
| | | <root url="file://E:/vue/src/core/util/index.ts" /> |
| | | <root url="file://E:/vue/src/core/util/lang.ts" /> |
| | | <root url="file://E:/vue/src/core/util/next-tick.ts" /> |
| | | <root url="file://E:/vue/src/core/util/options.ts" /> |
| | | <root url="file://E:/vue/src/core/util/perf.ts" /> |
| | | <root url="file://E:/vue/src/core/util/props.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-element.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-functional-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/extract-props.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/get-first-component-child.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/index.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/is-async-placeholder.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/merge-hook.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/normalize-children.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/normalize-scoped-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/resolve-async-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/update-listeners.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/directives.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/index.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/template-ref.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/patch.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/vnode.ts" /> |
| | | </CLASSES> |
| | | <SOURCES /> |
| | | </library> |
| | | </component> |
对比新文件 |
| | |
| | | <component name="libraryTable"> |
| | | <library name="index.ts" type="javaScript"> |
| | | <properties> |
| | | <sourceFilesUrls> |
| | | <item url="file://E:/vue/src/core/components/index.ts" /> |
| | | <item url="file://E:/vue/src/core/components/keep-alive.ts" /> |
| | | <item url="file://E:/vue/src/core/config.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/assets.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/extend.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/index.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/mixin.ts" /> |
| | | <item url="file://E:/vue/src/core/global-api/use.ts" /> |
| | | <item url="file://E:/vue/src/core/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/events.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/init.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/inject.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/lifecycle.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/proxy.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-dynamic-keys.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-object-listeners.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/bind-object-props.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/check-keycodes.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/index.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-list.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-slot.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/render-static.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-filter.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-scoped-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render-helpers/resolve-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/render.ts" /> |
| | | <item url="file://E:/vue/src/core/instance/state.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/array.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/dep.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/index.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/scheduler.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/traverse.ts" /> |
| | | <item url="file://E:/vue/src/core/observer/watcher.ts" /> |
| | | <item url="file://E:/vue/src/core/util/debug.ts" /> |
| | | <item url="file://E:/vue/src/core/util/env.ts" /> |
| | | <item url="file://E:/vue/src/core/util/error.ts" /> |
| | | <item url="file://E:/vue/src/core/util/index.ts" /> |
| | | <item url="file://E:/vue/src/core/util/lang.ts" /> |
| | | <item url="file://E:/vue/src/core/util/next-tick.ts" /> |
| | | <item url="file://E:/vue/src/core/util/options.ts" /> |
| | | <item url="file://E:/vue/src/core/util/perf.ts" /> |
| | | <item url="file://E:/vue/src/core/util/props.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-element.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/create-functional-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/extract-props.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/get-first-component-child.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/index.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/is-async-placeholder.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/merge-hook.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/normalize-children.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/normalize-scoped-slots.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/resolve-async-component.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/helpers/update-listeners.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/directives.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/index.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/modules/template-ref.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/patch.ts" /> |
| | | <item url="file://E:/vue/src/core/vdom/vnode.ts" /> |
| | | </sourceFilesUrls> |
| | | </properties> |
| | | <CLASSES> |
| | | <root url="file://E:/vue/src/core/components/index.ts" /> |
| | | <root url="file://E:/vue/src/core/components/keep-alive.ts" /> |
| | | <root url="file://E:/vue/src/core/config.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/assets.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/extend.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/index.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/mixin.ts" /> |
| | | <root url="file://E:/vue/src/core/global-api/use.ts" /> |
| | | <root url="file://E:/vue/src/core/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/events.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/init.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/inject.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/lifecycle.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/proxy.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-dynamic-keys.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-object-listeners.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/bind-object-props.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/check-keycodes.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/index.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-list.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-slot.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/render-static.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-filter.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-scoped-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render-helpers/resolve-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/render.ts" /> |
| | | <root url="file://E:/vue/src/core/instance/state.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/array.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/dep.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/index.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/scheduler.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/traverse.ts" /> |
| | | <root url="file://E:/vue/src/core/observer/watcher.ts" /> |
| | | <root url="file://E:/vue/src/core/util/debug.ts" /> |
| | | <root url="file://E:/vue/src/core/util/env.ts" /> |
| | | <root url="file://E:/vue/src/core/util/error.ts" /> |
| | | <root url="file://E:/vue/src/core/util/index.ts" /> |
| | | <root url="file://E:/vue/src/core/util/lang.ts" /> |
| | | <root url="file://E:/vue/src/core/util/next-tick.ts" /> |
| | | <root url="file://E:/vue/src/core/util/options.ts" /> |
| | | <root url="file://E:/vue/src/core/util/perf.ts" /> |
| | | <root url="file://E:/vue/src/core/util/props.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-element.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/create-functional-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/extract-props.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/get-first-component-child.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/index.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/is-async-placeholder.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/merge-hook.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/normalize-children.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/normalize-scoped-slots.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/resolve-async-component.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/helpers/update-listeners.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/directives.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/index.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/modules/template-ref.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/patch.ts" /> |
| | | <root url="file://E:/vue/src/core/vdom/vnode.ts" /> |
| | | </CLASSES> |
| | | <SOURCES /> |
| | | </library> |
| | | </component> |
| | |
| | | "version": "2.1.1", |
| | | "license": "MIT", |
| | | "dependencies": { |
| | | "@element-plus/icons-vue": "^2.0.3", |
| | | "@element-plus/icons-vue": "^2.0.6", |
| | | "@wangeditor/editor": "^5.1.1", |
| | | "axios": "^0.27.2", |
| | | "countup.js": "^2.2.0", |
| | | "cropperjs": "^1.5.12", |
| | | "echarts": "^5.3.2", |
| | | "echarts": "^5.3.3", |
| | | "echarts-gl": "^2.0.9", |
| | | "echarts-wordcloud": "^2.0.0", |
| | | "element-plus": "^2.2.2", |
| | | "js-cookie": "^3.0.1", |
| | | "json-bigint": "^1.0.0", |
| | | "jsplumb": "^2.15.6", |
| | | "mitt": "^3.0.0", |
| | | "nprogress": "^0.2.0", |
| | |
| | | "vue-router": "^4.0.15" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/json-bigint": "^1.0.1", |
| | | "@types/node": "^17.0.39", |
| | | "@types/nprogress": "^0.2.0", |
| | | "@types/sortablejs": "^1.13.0", |
| | |
| | | } |
| | | }, |
| | | "node_modules/@element-plus/icons-vue": { |
| | | "version": "2.0.3", |
| | | "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.3.tgz", |
| | | "integrity": "sha512-dI9hazWIJF5AXsFDWLsdGqVIQMJ5Kq70fw1RScuMW6+UNqfJpRYFOqhya8RHpjajIZZnQx260Ll9AjTcu2HSOA==", |
| | | "version": "2.0.6", |
| | | "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz", |
| | | "integrity": "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==", |
| | | "peerDependencies": { |
| | | "vue": "^3.2.0" |
| | | } |
| | |
| | | "version": "0.3.3", |
| | | "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz", |
| | | "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==" |
| | | }, |
| | | "node_modules/@types/json-bigint": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/@types/json-bigint/-/json-bigint-1.0.1.tgz", |
| | | "integrity": "sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/@types/json-schema": { |
| | | "version": "7.0.11", |
| | |
| | | "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", |
| | | "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==" |
| | | }, |
| | | "node_modules/bignumber.js": { |
| | | "version": "9.0.2", |
| | | "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.0.2.tgz", |
| | | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/binary-extensions": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", |
| | |
| | | } |
| | | }, |
| | | "node_modules/echarts": { |
| | | "version": "5.3.2", |
| | | "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.2.tgz", |
| | | "integrity": "sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==", |
| | | "version": "5.3.3", |
| | | "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", |
| | | "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", |
| | | "dependencies": { |
| | | "tslib": "2.3.0", |
| | | "zrender": "5.3.1" |
| | | "zrender": "5.3.2" |
| | | } |
| | | }, |
| | | "node_modules/echarts-gl": { |
| | |
| | | }, |
| | | "bin": { |
| | | "js-yaml": "bin/js-yaml.js" |
| | | } |
| | | }, |
| | | "node_modules/json-bigint": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", |
| | | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", |
| | | "dependencies": { |
| | | "bignumber.js": "^9.0.0" |
| | | } |
| | | }, |
| | | "node_modules/json-parse-even-better-errors": { |
| | |
| | | "dev": true |
| | | }, |
| | | "node_modules/zrender": { |
| | | "version": "5.3.1", |
| | | "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.1.tgz", |
| | | "integrity": "sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==", |
| | | "version": "5.3.2", |
| | | "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", |
| | | "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", |
| | | "dependencies": { |
| | | "tslib": "2.3.0" |
| | | } |
| | |
| | | "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" |
| | | }, |
| | | "@element-plus/icons-vue": { |
| | | "version": "2.0.3", |
| | | "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.3.tgz", |
| | | "integrity": "sha512-dI9hazWIJF5AXsFDWLsdGqVIQMJ5Kq70fw1RScuMW6+UNqfJpRYFOqhya8RHpjajIZZnQx260Ll9AjTcu2HSOA==", |
| | | "version": "2.0.6", |
| | | "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz", |
| | | "integrity": "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==", |
| | | "requires": {} |
| | | }, |
| | | "@eslint/eslintrc": { |
| | |
| | | "version": "0.3.3", |
| | | "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz", |
| | | "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==" |
| | | }, |
| | | "@types/json-bigint": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/@types/json-bigint/-/json-bigint-1.0.1.tgz", |
| | | "integrity": "sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw==", |
| | | "dev": true |
| | | }, |
| | | "@types/json-schema": { |
| | | "version": "7.0.11", |
| | |
| | | "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", |
| | | "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==" |
| | | }, |
| | | "bignumber.js": { |
| | | "version": "9.0.2", |
| | | "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.0.2.tgz", |
| | | "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" |
| | | }, |
| | | "binary-extensions": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", |
| | |
| | | "dev": true |
| | | }, |
| | | "echarts": { |
| | | "version": "5.3.2", |
| | | "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.2.tgz", |
| | | "integrity": "sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==", |
| | | "version": "5.3.3", |
| | | "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", |
| | | "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", |
| | | "requires": { |
| | | "tslib": "2.3.0", |
| | | "zrender": "5.3.1" |
| | | "zrender": "5.3.2" |
| | | } |
| | | }, |
| | | "echarts-gl": { |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "argparse": "^2.0.1" |
| | | } |
| | | }, |
| | | "json-bigint": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", |
| | | "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", |
| | | "requires": { |
| | | "bignumber.js": "^9.0.0" |
| | | } |
| | | }, |
| | | "json-parse-even-better-errors": { |
| | |
| | | "dev": true |
| | | }, |
| | | "zrender": { |
| | | "version": "5.3.1", |
| | | "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.1.tgz", |
| | | "integrity": "sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==", |
| | | "version": "5.3.2", |
| | | "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", |
| | | "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", |
| | | "requires": { |
| | | "tslib": "2.3.0" |
| | | } |
| | |
| | | "echarts-wordcloud": "^2.0.0", |
| | | "element-plus": "^2.2.2", |
| | | "js-cookie": "^3.0.1", |
| | | "json-bigint": "^1.0.0", |
| | | "jsplumb": "^2.15.6", |
| | | "mitt": "^3.0.0", |
| | | "nprogress": "^0.2.0", |
| | |
| | | "vue-router": "^4.0.15" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/json-bigint": "^1.0.1", |
| | | "@types/node": "^17.0.39", |
| | | "@types/nprogress": "^0.2.0", |
| | | "@types/sortablejs": "^1.13.0", |
文件名从 src/api/doubleProventSystem/productionDevice/index.ts 修改 |
| | |
| | | data:data |
| | | }); |
| | | }, |
| | | getAllProductionDeviceList: () => { |
| | | return request({ |
| | | url: `/prevent/device/select/listDevices`, |
| | | method: 'post', |
| | | }); |
| | | }, |
| | | } |
| | | } |
对比新文件 |
| | |
| | | import request from '/@/utils/request' |
| | | |
| | | export function riskControlMeasureApi() { |
| | | return { |
| | | getRiskControlMeasureList: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskControlMeasure/select/getRiskControlMeasurePage`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | addRiskControlMeasure: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskControlMeasure/insert/saveRiskControlMeasure`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | modRiskControlMeasure: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskControlMeasure/update/updateRiskControlMeasure`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | deleteRiskControlMeasure: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskControlMeasure/delete/deleteRiskControlMeasure`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | } |
| | | } |
对比新文件 |
| | |
| | | import request from '/@/utils/request' |
| | | |
| | | export function safetyRiskAnalyseUnitApi() { |
| | | return { |
| | | getSafetyRiskAnalyseUnitList: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskAnaUnit/select/getRiskUnitPage`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | addSafetyRiskAnalyseUnit: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskAnaUnit/insert/saveRiskAnaUnit`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | modSafetyRiskAnalyseUnit: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskAnaUnit/update/updateRiskAnaUnit`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | deleteSafetyRiskAnalyseUnit: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskAnaUnit/delete/deleteRiskAnaUnit`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | getAllSafetyRiskAnalyseUnitList: () => { |
| | | return request({ |
| | | url: `/prevent/riskEvent/select/listRiskUnits`, |
| | | method: 'post', |
| | | }); |
| | | }, |
| | | } |
| | | } |
对比新文件 |
| | |
| | | import request from '/@/utils/request' |
| | | |
| | | export function safetyRiskEventApi() { |
| | | return { |
| | | getSafetyRiskEventList: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskEvent/select/getRiskEventPage`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | addSafetyRiskEvent: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskEvent/insert/saveRiskEvent`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | modSafetyRiskEvent: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskEvent/update/updateRiskEvent`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | deleteSafetyRiskEvent: (data: object) => { |
| | | return request({ |
| | | url: `/prevent/riskEvent/delete/deleteRiskEvent`, |
| | | method: 'post', |
| | | data:data |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | |
| | | data:value, |
| | | }); |
| | | }, |
| | | getProjectList: () => { |
| | | return request({ |
| | | url: `/project/list`, |
| | | method: 'post', |
| | | }); |
| | | }, |
| | | }; |
| | | } |
| | |
| | | data:data |
| | | }); |
| | | }, |
| | | getUserLByDepartment: (depId : number | null) => { |
| | | return request({ |
| | | url: `/account/dep/list?depId=${depId}`, |
| | | method: 'get', |
| | | }); |
| | | }, |
| | | }; |
| | | } |
| | |
| | | import { Session } from '/@/utils/storage'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | | import {storeToRefs} from "pinia"; |
| | | import JSONbig from 'json-bigint' |
| | | |
| | | // var jsonBig = require('json-bigint')({ "storeAsString": true }); |
| | | // 配置新建一个 axios 实例 |
| | | const service = axios.create({ |
| | | baseURL: import.meta.env.VITE_API_URL as any, |
| | |
| | | } |
| | | ); |
| | | |
| | | service.defaults.transformResponse = [ |
| | | function(data) { |
| | | |
| | | try { |
| | | // 正常同通过return JSON.parse(data)对数据进行转换 |
| | | // 但是转化完成的数据可能超出安全数据长度 |
| | | // 因此我们定制使用第三包来转化 |
| | | return JSONbig.parse(data) |
| | | } catch (err) { |
| | | console.log(err); |
| | | // 转换失败返回一个空对象 |
| | | return {} |
| | | } |
| | | } |
| | | ] |
| | | |
| | | service.interceptors.response.use( |
| | | |
| | | (response) => { |
| | |
| | | window.location.href = '/' |
| | | return Promise.reject(response) |
| | | } |
| | | // if(response.data.code && response.data.code !== '200'){ |
| | | // if(response.data.code && response.data.code !== '200'){ |
| | | return Promise.resolve(response) |
| | | // } |
| | | // Session.clear() |
| | |
| | | <template> |
| | | <div class="system-add-menu-container"> |
| | | <el-dialog :title="title" v-model="isShowProductionDeviceDialog" width="769px"> |
| | | <el-form :model="ruleForm" size="default" label-width="80px"> |
| | | <el-dialog :title="title" v-model="isShowProductionDeviceDialog" width="600px"> |
| | | <el-form :model="productionDeviceForm" :rules="productionDeviceFormRules" ref="productionDeviceFormRef" size="default" label-width="120px"> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="生产装置名称"> |
| | | <el-input v-model="roleForm.produceDeviceName" placeholder="请输入生产装置名称" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="所属部门"> |
| | | <el-select v-model="roleForm.depName" placeholder="请选择所属部门" clearable filterable></el-select> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="生产装置名称" prop="produceDeviceName"> |
| | | <el-input class="input-length" v-model="productionDeviceForm.produceDeviceName" placeholder="请输入生产装置名称" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="风险等级"> |
| | | <el-select v-model="roleForm.riskLevel" placeholder="请选择风险等级"clearable filterable></el-select> |
| | | <el-form-item label="所属部门" prop="depId"> |
| | | <el-cascader |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="请选择部门" |
| | | clearable |
| | | filterable |
| | | style="width:85%" |
| | | v-model="productionDeviceForm.depId" |
| | | > |
| | | </el-cascader> |
| | | <!-- <el-select class="input-length" v-model="productionDeviceForm.depName" placeholder="请选择所属部门" clearable filterable></el-select>--> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="区域位置"> |
| | | <el-input v-model="roleForm.location" type="textarea" placeholder="请输入区域位置" maxlength="150"></el-input> |
| | | <el-form-item label="风险等级" prop="riskLevel"> |
| | | <el-select class="input-length" v-model="productionDeviceForm.riskLevel" placeholder="请选择风险等级" clearable filterable> |
| | | <el-option |
| | | v-for="item in levelList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="区域位置" prop="location"> |
| | | <el-input class="input-length" v-model="productionDeviceForm.location" type="textarea" placeholder="请输入区域位置" maxlength="150"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="onCancel" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="onSubmit" size="default">确 实</el-button> |
| | | <el-button @click="isShowProductionDeviceDialog = !isShowProductionDeviceDialog" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="submitProductionDevice" size="default">确 实</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | isShowProductionDeviceDialog:Boolean, |
| | | productionDeviceForm:{ |
| | | produceDeviceName: string, |
| | | depName: number | null, |
| | | depId: number | null, |
| | | riskLevel: number | null, |
| | | location: string, |
| | | } |
| | | }, |
| | | title: string, |
| | | departmentList: [], |
| | | levelList: Array<levelListState>, |
| | | productionDeviceFormRules:{} |
| | | } |
| | | import { reactive, toRefs } from 'vue' |
| | | interface levelListState { |
| | | |
| | | } |
| | | import { reactive, toRefs, ref} from 'vue' |
| | | import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; |
| | | import { ElMessage } from 'element-plus'; |
| | | export default { |
| | | name: "productionDeviceDialog", |
| | | setup() { |
| | | setup(props, context) { |
| | | const productionDeviceFormRef = ref(); |
| | | const state = reactive<stateType>({ |
| | | title:'', |
| | | departmentList: [], |
| | | isShowProductionDeviceDialog: false, |
| | | levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'},], |
| | | productionDeviceForm: { |
| | | produceDeviceName: '', |
| | | depName: null, |
| | | depId: null, |
| | | riskLevel: null, |
| | | location: '', |
| | | }, |
| | | productionDeviceFormRules:{ |
| | | produceDeviceName: [ |
| | | { required: true, message: '请填写生产装置名称', trigger: 'blur' }, |
| | | ], |
| | | depId: [ |
| | | { required: true, message: '请选择部门', trigger: 'change' }, |
| | | ], |
| | | riskLevel: [ |
| | | { required: true, message: '请选择风险等级', trigger: 'change' }, |
| | | ], |
| | | location: [ |
| | | { required: true, message: '请填写区域位置', trigger: 'blur' }, |
| | | ], |
| | | } |
| | | |
| | | }); |
| | | |
| | | const openProductionDeviceDialog = () => { |
| | | //打开模态框 |
| | | const openProductionDeviceDialog = (type: string, value: object, department: []) => { |
| | | state.isShowProductionDeviceDialog = true; |
| | | state.departmentList = department; |
| | | setTimeout(() => { |
| | | productionDeviceFormRef.value.clearValidate() |
| | | }) |
| | | if(type === '新增'){ |
| | | state.title = '新增生产装置'; |
| | | state.productionDeviceForm = { |
| | | produceDeviceName: '', |
| | | depId: null, |
| | | riskLevel: null, |
| | | location: '', |
| | | }; |
| | | }else{ |
| | | state.title = '修改生产装置'; |
| | | state.productionDeviceForm = JSON.parse(JSON.stringify(value)); |
| | | } |
| | | }; |
| | | |
| | | //新增修改提交 |
| | | const submitProductionDevice = async () => { |
| | | productionDeviceFormRef.value.validate( async (valid: Boolean) => { |
| | | if(valid){ |
| | | if(state.title === '新增生产装置'){ |
| | | let res = await productionDeviceApi().addProductionDevice(state.productionDeviceForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置新增成功', |
| | | duration:2000 |
| | | }); |
| | | state.isShowProductionDeviceDialog = false; |
| | | context.emit('refreshProductionDevice'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }else{ |
| | | let res = await productionDeviceApi().modProductionDevice(state.productionDeviceForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置修改成功', |
| | | duration:2000 |
| | | }); |
| | | state.isShowProductionDeviceDialog = false; |
| | | context.emit('refreshProductionDevice'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:'请完善基本信息', |
| | | }); |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | return{ |
| | | ...toRefs(state), |
| | | productionDeviceFormRef, |
| | | submitProductionDevice, |
| | | openProductionDeviceDialog, |
| | | }; |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | .input-length{ |
| | | width:85%; |
| | | } |
| | | </style> |
| | |
| | | <div class="system-role-container"> |
| | | <el-card shadow="hover"> |
| | | <div class="system-user-search mb15"> |
| | | <el-input size="default" placeholder="请输入角色名称" style="max-width: 180px"> </el-input> |
| | | <div class="basic-search"> |
| | | <span>风险等级:</span> |
| | | <el-select v-model="productionDeviceData.params.riskLevel" clearable filterable class="ml10" placeholder="请选择风险等级"> |
| | | <el-option |
| | | v-for="item in levelList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic-search"> |
| | | <span>部门:</span> |
| | | <el-cascader |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="请选择部门" |
| | | clearable |
| | | filterable |
| | | v-model="productionDeviceData.params.depId" |
| | | > |
| | | </el-cascader> |
| | | </div> |
| | | <el-button size="default" type="primary" class="ml10" @click="handleSearch"> |
| | | <el-icon> |
| | | <ele-Search /> |
| | |
| | | <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="depName" label="所属部门" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskLevel" label="风险等级" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="depName" label="区域位置" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="status" label="状态" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="location" label="区域位置" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="status" label="状态" show-overflow-tooltip> |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="small" text type="primary" @click="onOpenDialogRef('新增','')">新增</el-button> |
| | | <el-button size="small" text type="primary" @click="onOpenDialogRef('修改',scope.row)">修改</el-button> |
| | | <el-button size="small" text type="primary" @click="onTabelRowDel(scope.row)">删除</el-button> |
| | | <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="onHandleSizeChange" |
| | | @current-change="onHandleCurrentChange" |
| | | class="mt15" |
| | | :pager-count="5" |
| | | :page-sizes="[10, 20, 30]" |
| | | v-model:current-page="productionDeviceData.params.pageIndex" |
| | | background |
| | | v-model:page-size="productionDeviceData.params.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="productionDeviceData.total" |
| | | > |
| | | </el-pagination> |
| | | </el-card> |
| | | <productionDeviceDialog ref="productionDeviceDialogRef" @refreshRoleList="initRoleTableData"/> |
| | | <productionDeviceDialog ref="productionDeviceDialogRef" @refreshProductionDevice ="initProductionDeviceTableData"/> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import productionDeviceDialog from './components/productionDeviceDialog.vue'; |
| | | import {productionDeviceApi} from "/@/api/doubleProventSystem/productionDevice"; |
| | | import {productionDeviceApi} from "/@/api/doublePreventSystem/productionDevice/index.ts"; |
| | | import { departmentApi } from '/@/api/department'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface TableData { |
| | |
| | | params: { |
| | | pageIndex: number; |
| | | pageSize: number; |
| | | riskLevel:number; |
| | | status:number; |
| | | depName:string; |
| | | location:string; |
| | | produceDeviceName:string; |
| | | riskLevel: number | null; |
| | | status: number; |
| | | depId: number | null; |
| | | location: string | null; |
| | | produceDeviceName: string | null; |
| | | }; |
| | | }; |
| | | departmentList:Array<DepartmentState>; |
| | | levelList:Array<levelListState>; |
| | | } |
| | | interface levelListState { |
| | | |
| | | } |
| | | interface DepartmentState { |
| | | |
| | | } |
| | | |
| | | export default defineComponent({ |
| | |
| | | params: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | riskLevel:1, |
| | | status:1, |
| | | depName:"", |
| | | location:"", |
| | | produceDeviceName:"" |
| | | riskLevel: null, |
| | | status: 1, |
| | | depId: null, |
| | | location: null, |
| | | produceDeviceName: null |
| | | }, |
| | | }, |
| | | departmentList:[], |
| | | levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'},] |
| | | }); |
| | | // 初始化表格数据 |
| | | const initProductionDeviceTableData = async () => { |
| | | let res = await productionDeviceApi().getProductionDeviceList(state.productionDeviceData.params) |
| | | if(res.data.code === '200'){ |
| | | state.productionDeviceData.data = res.data.data; |
| | | state.productionDeviceData.total = res.data.count; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | |
| | | }) |
| | | } |
| | | }; |
| | | |
| | | const getDepartmentData = async () => { |
| | | let res = await departmentApi().getDepartmentList() |
| | | if(res.data.code === '200'){ |
| | | state.departmentList = res.data.data |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 打开生产装置弹窗 |
| | | const onOpenDialogRef = (type: string, value: any) => { |
| | | productionDeviceDialogRef.value.openProductionDeviceDialog(type, value); |
| | | productionDeviceDialogRef.value.openProductionDeviceDialog(type, value, state.departmentList); |
| | | }; |
| | | // 删除角色 |
| | | const onRowDel = (row: any) => { |
| | | ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.roleName}”,是否继续?`, '提示', { |
| | | const onDelProductionDevice = (row: any) => { |
| | | ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.produceDeviceName}”,是否继续?`, '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }).then(() => { |
| | | ElMessage.success('删除成功'); |
| | | }).then(async () => { |
| | | let res = await productionDeviceApi().deleteProductionDevice({id:row.id}) |
| | | if(res.data.code ==='200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'删除成功' |
| | | }) |
| | | await initProductionDeviceTableData() |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | }).catch(() => {}); |
| | | }; |
| | | const handleSearch = () => { |
| | |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.productionDeviceData.params.pageSize = val; |
| | | initProductionDeviceTableData() |
| | | }; |
| | | // 分页改变 |
| | | const onHandleCurrentChange = (val: number) => { |
| | | state.productionDeviceData.params.pageIndex = val; |
| | | initProductionDeviceTableData() |
| | | }; |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | initProductionDeviceTableData(); |
| | | getDepartmentData(); |
| | | }); |
| | | return { |
| | | onRowDel, |
| | | handleSearch, |
| | | onOpenDialogRef, |
| | | onHandleSizeChange, |
| | | onDelProductionDevice, |
| | | onHandleCurrentChange, |
| | | productionDeviceDialog, |
| | | productionDeviceDialogRef, |
| | |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic-search{ |
| | | display:inline-block; |
| | | padding-left: 10px; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-add-menu-container"> |
| | | <el-dialog :title="title" v-model="isRiskControlMeasureDialog" width="600px"> |
| | | <el-form :model="riskControlMeasureForm" :rules="riskControlMeasureFormRules" ref="riskControlMeasureFormRef" size="default" label-width="160px"> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险分析对象编码" prop="riskCode"> |
| | | <el-input class="input-length" v-model="riskControlMeasureForm.riskCode" placeholder="请输入安全风险分析对象编码"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险分析单元名称" prop="riskUnitName"> |
| | | <el-input class="input-length" v-model="riskControlMeasureForm.riskUnitName" placeholder="请输入安全风险分析单元名称"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="生产装置名称" prop="produceDeviceId"> |
| | | <el-input class="input-length" v-model="riskControlMeasureForm.produceDeviceId" placeholder="请输入生产装置名称" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="责任部门" prop="liableDepId"> |
| | | <el-cascader |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="请选择部门" |
| | | clearable |
| | | filterable |
| | | style="width:85%" |
| | | v-model="riskControlMeasureForm.liableDepId" |
| | | > |
| | | </el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="责任人" prop="liablePersonId"> |
| | | <el-select class="input-length" v-model="riskControlMeasureForm.liablePersonId" placeholder="请选择风险等级" clearable filterable> |
| | | <el-option |
| | | v-for="item in levelList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="isRiskControlMeasureDialog = !isRiskControlMeasureDialog" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="submitRiskControlMeasureDialog" size="default">确 实</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | interface stateType{ |
| | | isRiskControlMeasureDialog:Boolean, |
| | | riskControlMeasureForm:{ |
| | | riskCode: string | null, |
| | | riskUnitName: string | null, |
| | | liablePersonId: number | null, |
| | | liableDepId: number | null, |
| | | produceDeviceId: number | null, |
| | | }, |
| | | title: string, |
| | | departmentList: [], |
| | | levelList: Array<levelListState>, |
| | | riskControlMeasureFormRules:{} |
| | | } |
| | | interface levelListState { |
| | | |
| | | } |
| | | import { reactive, toRefs, ref} from 'vue' |
| | | import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure'; |
| | | import { ElMessage } from 'element-plus'; |
| | | export default { |
| | | name: "riskControlMeasureDialog", |
| | | setup(props, context) { |
| | | const riskControlMeasureFormRef = ref(); |
| | | const state = reactive<stateType>({ |
| | | title:'', |
| | | departmentList: [], |
| | | isRiskControlMeasureDialog: false, |
| | | levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'},], |
| | | riskControlMeasureForm: { |
| | | riskCode: null, |
| | | riskUnitName: null, |
| | | liablePersonId: null, |
| | | liableDepId: null, |
| | | produceDeviceId: null, |
| | | }, |
| | | riskControlMeasureFormRules:{ |
| | | riskCode: [ |
| | | { required: true, message: '请填写安全风险分析对象编码', trigger: 'blur' }, |
| | | ], |
| | | riskUnitName: [ |
| | | { required: true, message: '请填写安全风险分析单元名称', trigger: 'blur' }, |
| | | ], |
| | | liableDepId: [ |
| | | { required: true, message: '请选择责任部门', trigger: 'change' }, |
| | | ], |
| | | liablePersonId: [ |
| | | { required: true, message: '请选择责任人', trigger: 'change' }, |
| | | ], |
| | | produceDeviceId: [ |
| | | { required: true, message: '请选择生产装置', trigger: 'change' }, |
| | | ], |
| | | } |
| | | |
| | | }); |
| | | |
| | | //打开模态框 |
| | | const openSafetyRiskEventDialog = (type: string, value: object, department: []) => { |
| | | state.isRiskControlMeasureDialog = true; |
| | | state.departmentList = department; |
| | | setTimeout(() => { |
| | | riskControlMeasureFormRef.value.clearValidate() |
| | | }) |
| | | if(type === '新增'){ |
| | | state.title = '新增生产装置'; |
| | | state.riskControlMeasureForm = { |
| | | riskCode: null, |
| | | riskUnitName: null, |
| | | liablePersonId: null, |
| | | liableDepId: null, |
| | | produceDeviceId: null, |
| | | }; |
| | | }else{ |
| | | state.title = '修改生产装置'; |
| | | state.riskControlMeasureForm = JSON.parse(JSON.stringify(value)); |
| | | } |
| | | }; |
| | | |
| | | //新增修改提交 |
| | | const submitRiskControlMeasureDialog = async () => { |
| | | riskControlMeasureFormRef.value.validate( async (valid: Boolean) => { |
| | | if(valid){ |
| | | if(state.title === '新增生产装置'){ |
| | | let res = await riskControlMeasureApi().addRiskControlMeasure(state.riskControlMeasureForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置新增成功', |
| | | duration:2000 |
| | | }); |
| | | state.isRiskControlMeasureDialog = false; |
| | | context.emit('refreshRiskControlMeasure'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }else{ |
| | | let res = await riskControlMeasureApi().modRiskControlMeasure(state.riskControlMeasureForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置修改成功', |
| | | duration:2000 |
| | | }); |
| | | state.isRiskControlMeasureDialog = false; |
| | | context.emit('refreshRiskControlMeasure'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:'请完善基本信息', |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | return{ |
| | | ...toRefs(state), |
| | | riskControlMeasureFormRef, |
| | | submitRiskControlMeasureDialog, |
| | | openSafetyRiskEventDialog, |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .input-length{ |
| | | width:85%; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-role-container"> |
| | | <el-card shadow="hover"> |
| | | <div class="system-user-search mb15"> |
| | | <div class="basic-search"> |
| | | <span>风险等级:</span> |
| | | <el-select v-model="riskControlMeasureData.params.riskLevel" clearable filterable class="ml10" placeholder="请选择风险等级"> |
| | | <el-option |
| | | v-for="item in levelList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic-search"> |
| | | <span>部门:</span> |
| | | <el-cascader |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="请选择部门" |
| | | clearable |
| | | filterable |
| | | v-model="riskControlMeasureData.params.depId" |
| | | > |
| | | </el-cascader> |
| | | </div> |
| | | <el-button size="default" type="primary" class="ml10" @click="handleSearch"> |
| | | <el-icon> |
| | | <ele-Search /> |
| | | </el-icon> |
| | | 查询 |
| | | </el-button> |
| | | <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增','')"> |
| | | <el-icon> |
| | | <ele-FolderAdd /> |
| | | </el-icon> |
| | | 新增单元 |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="riskControlMeasureData.data" style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="60" /> |
| | | <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskUnitName" label="安全风险分析单元名称" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskCode" label="安全风险分析对象编码" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="location" label="责任部门" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="status" label="责任人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="small" text type="primary" @click="onOpenDialogRef('修改',scope.row)">修改</el-button> |
| | | <el-button size="small" text type="danger" @click="onDelRiskControlMeasure(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="onHandleSizeChange" |
| | | @current-change="onHandleCurrentChange" |
| | | class="mt15" |
| | | :pager-count="5" |
| | | :page-sizes="[10, 20, 30]" |
| | | v-model:current-page="riskControlMeasureData.params.pageIndex" |
| | | background |
| | | v-model:page-size="riskControlMeasureData.params.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="riskControlMeasureData.total" |
| | | > |
| | | </el-pagination> |
| | | </el-card> |
| | | <riskControlMeasureDialog ref="riskControlMeasureDialogRef" @refreshRiskControlMeasure ="initRiskControlMeasureData"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, onMounted, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import riskControlMeasureDialog from './components/riskControlMeasureDialog.vue'; |
| | | import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure/index.ts'; |
| | | import { departmentApi } from '/@/api/department'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface TableData { |
| | | roleName: string; |
| | | roleSign: string; |
| | | describe: string; |
| | | sort: number; |
| | | status: boolean; |
| | | createTime: string; |
| | | } |
| | | interface TableDataState { |
| | | riskControlMeasureData: { |
| | | data: Array<TableData>; |
| | | total: number; |
| | | loading: boolean; |
| | | params: { |
| | | pageIndex: number; |
| | | pageSize: number; |
| | | riskUnitName: string | null; |
| | | liableDep: number | null; |
| | | liablePerson: number | null; |
| | | }; |
| | | }; |
| | | departmentList:Array<DepartmentState>; |
| | | levelList:Array<levelListState>; |
| | | } |
| | | interface levelListState { |
| | | |
| | | } |
| | | interface DepartmentState { |
| | | |
| | | } |
| | | |
| | | export default ({ |
| | | name: 'riskControlMeasure', |
| | | components: { riskControlMeasureDialog }, |
| | | setup() { |
| | | const riskControlMeasureDialogRef = ref(); |
| | | const state = reactive<TableDataState>({ |
| | | riskControlMeasureData: { |
| | | data: [], |
| | | total: 0, |
| | | loading: false, |
| | | params: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | riskUnitName: null, |
| | | liableDep: null, |
| | | liablePerson: null, |
| | | }, |
| | | }, |
| | | departmentList:[], |
| | | levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'},] |
| | | }); |
| | | |
| | | // 初始化表格数据 |
| | | const initRiskControlMeasureData = async () => { |
| | | let res = await riskControlMeasureApi().getRiskControlMeasureList(state.riskControlMeasureData.params) |
| | | if(res.data.code === '200'){ |
| | | state.riskControlMeasureData.data = res.data.data; |
| | | state.riskControlMeasureData.total = res.data.count; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | }; |
| | | |
| | | //获取部门列表 |
| | | const getDepartmentData = async () => { |
| | | let res = await departmentApi().getDepartmentList() |
| | | if(res.data.code === '200'){ |
| | | state.departmentList = res.data.data |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 打开生产装置弹窗 |
| | | const onOpenDialogRef = (type: string, value: any) => { |
| | | riskControlMeasureDialogRef.value.openSafetyRiskEventDialog(type, value, state.departmentList); |
| | | }; |
| | | |
| | | // 删除角色 |
| | | const onDelRiskControlMeasure = (row: any) => { |
| | | ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.produceDeviceName}”,是否继续?`, '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | let res = await riskControlMeasureApi().deleteRiskControlMeasure({id:row.id}) |
| | | if(res.data.code ==='200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'删除成功' |
| | | }) |
| | | await initRiskControlMeasureData() |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | }).catch(() => {}); |
| | | }; |
| | | |
| | | const handleSearch = () => { |
| | | initRiskControlMeasureData() |
| | | } |
| | | |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.riskControlMeasureData.params.pageSize = val; |
| | | initRiskControlMeasureData() |
| | | }; |
| | | |
| | | // 分页改变 |
| | | const onHandleCurrentChange = (val: number) => { |
| | | state.riskControlMeasureData.params.pageIndex = val; |
| | | initRiskControlMeasureData() |
| | | }; |
| | | |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | initRiskControlMeasureData(); |
| | | getDepartmentData(); |
| | | }); |
| | | |
| | | return { |
| | | handleSearch, |
| | | onOpenDialogRef, |
| | | onHandleSizeChange, |
| | | onDelRiskControlMeasure, |
| | | onHandleCurrentChange, |
| | | riskControlMeasureDialog, |
| | | riskControlMeasureDialogRef, |
| | | initRiskControlMeasureData, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic-search{ |
| | | display:inline-block; |
| | | padding-left: 10px; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-add-menu-container"> |
| | | <el-dialog :title="title" v-model="isSafetyRiskAnalyseUnitDialog" width="600px"> |
| | | <el-form :model="safetyRiskAnalyseUnitForm" :rules="safetyRiskAnalyseUnitFormRules" ref="safetyRiskAnalyseUnitFormRef" size="default" label-width="180px"> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险分析对象编码" prop="riskCode"> |
| | | <el-input class="input-length" v-model="safetyRiskAnalyseUnitForm.riskCode" placeholder="请输入安全风险分析对象编码"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险分析单元名称" prop="riskUnitName"> |
| | | <el-input class="input-length" v-model="safetyRiskAnalyseUnitForm.riskUnitName" placeholder="请输入安全风险分析单元名称"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="生产装置名称" prop="produceDeviceId"> |
| | | <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.produceDeviceId" placeholder="请输入生产装置名称" clearable> |
| | | <el-option |
| | | v-for="item in allProduceDeviceData" |
| | | :key="item.id" |
| | | :label="item.produceDeviceName" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="责任部门" prop="liableDepId"> |
| | | <el-cascader |
| | | @change="achiveUserList" |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="请选择部门" |
| | | clearable |
| | | filterable |
| | | style="width:85%" |
| | | v-model="safetyRiskAnalyseUnitForm.liableDepId" |
| | | > |
| | | </el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="责任人" prop="liablePersonId"> |
| | | <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.liablePersonId" placeholder="请选择责任人" clearable filterable> |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.uid" |
| | | :label="item.realName" |
| | | :value="item.uid" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="isSafetyRiskAnalyseUnitDialog = !isSafetyRiskAnalyseUnitDialog" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="submitSafetyRiskAnalyseUnitDialog" size="default">确 实</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | interface stateType{ |
| | | isSafetyRiskAnalyseUnitDialog:Boolean, |
| | | safetyRiskAnalyseUnitForm:{ |
| | | riskCode: string | null, |
| | | riskUnitName: string | null, |
| | | liablePersonId: number | null, |
| | | liableDepId: number | null, |
| | | produceDeviceId: number | null, |
| | | }, |
| | | title: string, |
| | | userList:[], |
| | | departmentList: [], |
| | | allProduceDeviceData: [], |
| | | safetyRiskAnalyseUnitFormRules:{} |
| | | } |
| | | interface levelListState { |
| | | |
| | | } |
| | | import { reactive, toRefs, ref} from 'vue' |
| | | import { safetyRiskAnalyseUnitApi } from '/@/api/doublePreventSystem/safetyRiskAnalyseUnit'; |
| | | import { ElMessage } from 'element-plus'; |
| | | import { userApi } from '/@/api/user'; |
| | | export default { |
| | | name: "productionDeviceDialog", |
| | | setup(props, context) { |
| | | const safetyRiskAnalyseUnitFormRef = ref(); |
| | | const state = reactive<stateType>({ |
| | | title:'', |
| | | userList:[], |
| | | departmentList: [], |
| | | allProduceDeviceData: [], |
| | | isSafetyRiskAnalyseUnitDialog: false, |
| | | safetyRiskAnalyseUnitForm: { |
| | | riskCode: null, |
| | | riskUnitName: null, |
| | | liablePersonId: null, |
| | | liableDepId: null, |
| | | produceDeviceId: null, |
| | | }, |
| | | safetyRiskAnalyseUnitFormRules:{ |
| | | riskCode: [ |
| | | { required: true, message: '请填写安全风险分析对象编码', trigger: 'blur' }, |
| | | ], |
| | | riskUnitName: [ |
| | | { required: true, message: '请填写安全风险分析单元名称', trigger: 'blur' }, |
| | | ], |
| | | liableDepId: [ |
| | | { required: true, message: '请选择责任部门', trigger: 'change' }, |
| | | ], |
| | | liablePersonId: [ |
| | | { required: true, message: '请选择责任人', trigger: 'change' }, |
| | | ], |
| | | produceDeviceId: [ |
| | | { required: true, message: '请选择生产装置', trigger: 'change' }, |
| | | ], |
| | | } |
| | | |
| | | }); |
| | | |
| | | //打开模态框 |
| | | const openSafetyRiskAnalyseUnitDialog = (type: string, value: object, department: [], allProduceDeviceData : []) => { |
| | | // console.log(jsonBig.stringify(123124124124214123131)) |
| | | state.isSafetyRiskAnalyseUnitDialog = true; |
| | | state.allProduceDeviceData = JSON.parse(JSON.stringify(allProduceDeviceData)); |
| | | state.departmentList = department; |
| | | setTimeout(() => { |
| | | safetyRiskAnalyseUnitFormRef.value.clearValidate() |
| | | }) |
| | | if(type === '新增'){ |
| | | state.title = '新增风险分析单元'; |
| | | state.safetyRiskAnalyseUnitForm = { |
| | | riskCode: null, |
| | | riskUnitName: null, |
| | | liablePersonId: null, |
| | | liableDepId: null, |
| | | produceDeviceId: null, |
| | | }; |
| | | }else{ |
| | | state.title = '修改风险分析单元'; |
| | | state.safetyRiskAnalyseUnitForm = JSON.parse(JSON.stringify(value)); |
| | | } |
| | | }; |
| | | |
| | | //新增修改提交 |
| | | const submitSafetyRiskAnalyseUnitDialog = async () => { |
| | | safetyRiskAnalyseUnitFormRef.value.validate( async (valid: Boolean) => { |
| | | if(valid){ |
| | | if(state.title === '新增风险分析单元'){ |
| | | let res = await safetyRiskAnalyseUnitApi().addSafetyRiskAnalyseUnit(state.safetyRiskAnalyseUnitForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'风险分析单元新增成功', |
| | | duration:2000 |
| | | }); |
| | | state.isSafetyRiskAnalyseUnitDialog = false; |
| | | context.emit('refreshSafetyRiskAnalyseUnit'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }else{ |
| | | let res = await safetyRiskAnalyseUnitApi().modSafetyRiskAnalyseUnit(state.safetyRiskAnalyseUnitForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'风险分析单元修改成功', |
| | | duration:2000 |
| | | }); |
| | | state.isSafetyRiskAnalyseUnitDialog = false; |
| | | context.emit('refreshSafetyRiskAnalyseUnit'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:'请完善基本信息', |
| | | }); |
| | | } |
| | | }) |
| | | }; |
| | | |
| | | const achiveUserList = () => { |
| | | state.safetyRiskAnalyseUnitForm.liablePersonId = null; |
| | | state.userList = []; |
| | | getUserData(); |
| | | }; |
| | | |
| | | //获取用户列表 |
| | | const getUserData = async () => { |
| | | let res = await userApi().getUserLByDepartment(state.safetyRiskAnalyseUnitForm.liableDepId); |
| | | if(res.data.code === '200'){ |
| | | state.userList = res.data.data; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return{ |
| | | ...toRefs(state), |
| | | achiveUserList, |
| | | safetyRiskAnalyseUnitFormRef, |
| | | submitSafetyRiskAnalyseUnitDialog, |
| | | openSafetyRiskAnalyseUnitDialog, |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .input-length{ |
| | | width:85%; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div>2</div> |
| | | <div class="system-role-container"> |
| | | <el-card shadow="hover"> |
| | | <div class="system-user-search mb15"> |
| | | <div class="basic-search"> |
| | | <span>责任部门:</span> |
| | | <el-cascader |
| | | @change="achiveUserList" |
| | | :options="departmentList" |
| | | :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }" |
| | | placeholder="责任部门" |
| | | clearable |
| | | filterable |
| | | v-model="safetyRiskAnalyseUnitData.params.liableDep" |
| | | class="unit-input" |
| | | > |
| | | </el-cascader> |
| | | </div> |
| | | <div class="basic-search"> |
| | | <span>责任人:</span> |
| | | <el-select v-model="safetyRiskAnalyseUnitData.params.liablePerson" clearable filterable class="unit-input" placeholder="责任人"> |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.uid" |
| | | :label="item.realName" |
| | | :value="item.uid" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic-search"> |
| | | <span>单元名称:</span> |
| | | <el-input v-model="safetyRiskAnalyseUnitData.params.riskUnitName" clearable filterable class="unit-input" placeholder="单元名称"> |
| | | </el-input> |
| | | </div> |
| | | <el-button size="default" type="primary" class="ml10" @click="handleSearch"> |
| | | <el-icon> |
| | | <ele-Search /> |
| | | </el-icon> |
| | | 查询 |
| | | </el-button> |
| | | <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增','')"> |
| | | <el-icon> |
| | | <ele-FolderAdd /> |
| | | </el-icon> |
| | | 新增单元 |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="safetyRiskAnalyseUnitData.data" style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="60" /> |
| | | <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskUnitName" label="安全风险分析单元名称" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskCode" label="安全风险分析对象编码" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="liableDep" label="责任部门" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="liablePerson" label="责任人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="small" text type="primary" @click="onOpenDialogRef('修改',scope.row)">修改</el-button> |
| | | <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="onHandleSizeChange" |
| | | @current-change="onHandleCurrentChange" |
| | | class="mt15" |
| | | :pager-count="5" |
| | | :page-sizes="[10, 20, 30]" |
| | | v-model:current-page="safetyRiskAnalyseUnitData.params.pageIndex" |
| | | background |
| | | v-model:page-size="safetyRiskAnalyseUnitData.params.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="safetyRiskAnalyseUnitData.total" |
| | | > |
| | | </el-pagination> |
| | | </el-card> |
| | | <safetyRiskAnalyseUnitDialog ref="safetyRiskAnalyseUnitDialogRef" @refreshSafetyRiskAnalyseUnit ="initSafetyRiskAnalyseUnitData"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "index" |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, onMounted, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import safetyRiskAnalyseUnitDialog from './components/safetyRiskAnalyseUnitDialog.vue'; |
| | | import { safetyRiskAnalyseUnitApi } from "/@/api/doublePreventSystem/safetyRiskAnalyseUnit/index.ts"; |
| | | import { departmentApi } from '/@/api/department'; |
| | | import { userApi } from '/@/api/user'; |
| | | import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface TableData { |
| | | roleName: string; |
| | | roleSign: string; |
| | | describe: string; |
| | | sort: number; |
| | | status: boolean; |
| | | createTime: string; |
| | | } |
| | | interface TableDataState { |
| | | safetyRiskAnalyseUnitData: { |
| | | data: Array<TableData>; |
| | | total: number; |
| | | loading: boolean; |
| | | params: { |
| | | pageIndex: number; |
| | | pageSize: number; |
| | | riskUnitName: string | null; |
| | | liableDepId: number | null; |
| | | liablePersonId: number | null; |
| | | }; |
| | | }; |
| | | userList:Array<UserState>; |
| | | departmentList:Array<DepartmentState>; |
| | | allProduceDeviceData:Array<produceDeviceState>; |
| | | } |
| | | interface produceDeviceState { |
| | | |
| | | } |
| | | interface DepartmentState { |
| | | |
| | | } |
| | | interface UserState { |
| | | |
| | | } |
| | | |
| | | export default ({ |
| | | name: 'productionDevice', |
| | | components: { safetyRiskAnalyseUnitDialog }, |
| | | setup() { |
| | | const safetyRiskAnalyseUnitDialogRef = ref(); |
| | | const state = reactive<TableDataState>({ |
| | | safetyRiskAnalyseUnitData: { |
| | | data: [], |
| | | total: 0, |
| | | loading: false, |
| | | params: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | riskUnitName: null, |
| | | liableDepId: null, |
| | | liablePersonId: null, |
| | | }, |
| | | }, |
| | | userList: [], |
| | | departmentList: [], |
| | | allProduceDeviceData: [], |
| | | }); |
| | | // 初始化表格数据 |
| | | const initSafetyRiskAnalyseUnitData = async () => { |
| | | let res = await safetyRiskAnalyseUnitApi().getSafetyRiskAnalyseUnitList(state.safetyRiskAnalyseUnitData.params) |
| | | if(res.data.code === '200'){ |
| | | state.safetyRiskAnalyseUnitData.data = res.data.data |
| | | state.safetyRiskAnalyseUnitData.total = res.data.count; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const achiveUserList = () => { |
| | | state.safetyRiskAnalyseUnitData.params.liablePersonId = null; |
| | | state.userList = []; |
| | | getUserData(); |
| | | }; |
| | | |
| | | //获取生产装置列表 |
| | | const getAllProduceDeviceData = async () => { |
| | | let res = await productionDeviceApi().getAllProductionDeviceList(); |
| | | if(res.data.code === '200'){ |
| | | state.allProduceDeviceData = res.data.data; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | //获取部门列表 |
| | | const getDepartmentData = async () => { |
| | | let res = await departmentApi().getDepartmentList(); |
| | | if(res.data.code === '200'){ |
| | | state.departmentList = res.data.data; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | //获取用户列表 |
| | | const getUserData = async () => { |
| | | let res = await userApi().getUserLByDepartment(state.safetyRiskAnalyseUnitData.params.liableDepId); |
| | | if(res.data.code === '200'){ |
| | | state.userList = res.data.data; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 打开生产装置弹窗 |
| | | const onOpenDialogRef = (type: string, value: any) => { |
| | | safetyRiskAnalyseUnitDialogRef.value.openSafetyRiskAnalyseUnitDialog(type, value, state.departmentList, state.allProduceDeviceData); |
| | | }; |
| | | |
| | | // 删除角色 |
| | | const onDelProductionDevice = (row: any) => { |
| | | ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.riskUnitName}”,是否继续?`, '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | let res = await safetyRiskAnalyseUnitApi().deleteSafetyRiskAnalyseUnit({id:row.id}); |
| | | if(res.data.code ==='200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'删除成功' |
| | | }); |
| | | await initSafetyRiskAnalyseUnitData(); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }).catch(() => {}); |
| | | }; |
| | | |
| | | const handleSearch = () => { |
| | | initSafetyRiskAnalyseUnitData(); |
| | | } |
| | | |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.safetyRiskAnalyseUnitData.params.pageSize = val; |
| | | initSafetyRiskAnalyseUnitData(); |
| | | }; |
| | | |
| | | // 分页改变 |
| | | const onHandleCurrentChange = (val: number) => { |
| | | state.safetyRiskAnalyseUnitData.params.pageIndex = val; |
| | | initSafetyRiskAnalyseUnitData(); |
| | | }; |
| | | |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | initSafetyRiskAnalyseUnitData(); |
| | | getAllProduceDeviceData(); |
| | | getDepartmentData(); |
| | | }); |
| | | |
| | | return { |
| | | handleSearch, |
| | | achiveUserList, |
| | | onOpenDialogRef, |
| | | onHandleSizeChange, |
| | | onDelProductionDevice, |
| | | onHandleCurrentChange, |
| | | safetyRiskAnalyseUnitDialog, |
| | | safetyRiskAnalyseUnitDialogRef, |
| | | initSafetyRiskAnalyseUnitData, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | .basic-search{ |
| | | display:inline-block; |
| | | padding-left: 10px; |
| | | } |
| | | .unit-input{ |
| | | width:200px |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="system-add-menu-container"> |
| | | <el-dialog :title="title" v-model="isSafetyRiskEventDialog" width="600px"> |
| | | <el-form :model="safetyRiskEventForm" :rules="safetyRiskEventFormRules" ref="safetyRiskAnalyseUnitFormRef" size="default" label-width="180px"> |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险分析单元名称" prop="riskUnitId"> |
| | | <el-select class="input-length" v-model="safetyRiskEventForm.riskUnitId" placeholder="请输入安全风险分析单元名称"> |
| | | <el-option |
| | | v-for="item in allSafetyRiskEventData" |
| | | :key="item.id" |
| | | :label="item.riskUnitName" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="安全风险事件名称" prop="riskEventName"> |
| | | <el-input class="input-length" v-model="safetyRiskEventForm.riskEventName" placeholder="请输入生产装置名称" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="isSafetyRiskEventDialog = !isSafetyRiskEventDialog" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="submitSafetyRiskEventDialog" size="default">确 实</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | interface stateType{ |
| | | isSafetyRiskEventDialog:Boolean, |
| | | safetyRiskEventForm:{ |
| | | riskEventName: string | null, |
| | | riskUnitId: number | null, |
| | | }, |
| | | title: string, |
| | | departmentList: [], |
| | | allSafetyRiskEventData: [], |
| | | safetyRiskEventFormRules: {}, |
| | | } |
| | | import { reactive, toRefs, ref} from 'vue' |
| | | import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent'; |
| | | import { ElMessage } from 'element-plus'; |
| | | export default { |
| | | name: "productionDeviceDialog", |
| | | setup(props, context) { |
| | | const safetyRiskAnalyseUnitFormRef = ref(); |
| | | const state = reactive<stateType>({ |
| | | title:'', |
| | | departmentList: [], |
| | | allSafetyRiskEventData:[], |
| | | isSafetyRiskEventDialog: false, |
| | | safetyRiskEventForm: { |
| | | riskEventName: null, |
| | | riskUnitId: null, |
| | | }, |
| | | safetyRiskEventFormRules:{ |
| | | riskEventName: [ |
| | | { required: true, message: '请填写安全风险分析对象编码', trigger: 'blur' }, |
| | | ], |
| | | riskUnitId: [ |
| | | { required: true, message: '请填写安全风险分析单元名称', trigger: 'blur' }, |
| | | ], |
| | | } |
| | | |
| | | }); |
| | | |
| | | //打开模态框 |
| | | const openSafetyRiskEventDialog = (type: string, value: object, department: [], allSafetyRiskEventData:[]) => { |
| | | state.isSafetyRiskEventDialog = true; |
| | | state.allSafetyRiskEventData = JSON.parse(JSON.stringify(allSafetyRiskEventData)); |
| | | state.departmentList = department; |
| | | setTimeout(() => { |
| | | safetyRiskAnalyseUnitFormRef.value.clearValidate() |
| | | }) |
| | | if(type === '新增'){ |
| | | state.title = '新增生产装置'; |
| | | state.safetyRiskEventForm = { |
| | | riskEventName: null, |
| | | riskUnitId: null, |
| | | }; |
| | | }else{ |
| | | state.title = '修改生产装置'; |
| | | state.safetyRiskEventForm = JSON.parse(JSON.stringify(value)); |
| | | } |
| | | }; |
| | | |
| | | //新增修改提交 |
| | | const submitSafetyRiskEventDialog = async () => { |
| | | safetyRiskAnalyseUnitFormRef.value.validate( async (valid: Boolean) => { |
| | | if(valid){ |
| | | if(state.title === '新增生产装置'){ |
| | | let res = await safetyRiskEventApi().addSafetyRiskEvent(state.safetyRiskEventForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置新增成功', |
| | | duration:2000 |
| | | }); |
| | | state.isSafetyRiskEventDialog = false; |
| | | context.emit('refreshSafetyRiskEvent'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }else{ |
| | | let res = await safetyRiskEventApi().modSafetyRiskEvent(state.safetyRiskEventForm); |
| | | if(res.data.code === '200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | message:'生产装置修改成功', |
| | | duration:2000 |
| | | }); |
| | | state.isSafetyRiskEventDialog = false; |
| | | context.emit('refreshSafetyRiskEvent'); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:'请完善基本信息', |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | return{ |
| | | ...toRefs(state), |
| | | safetyRiskAnalyseUnitFormRef, |
| | | submitSafetyRiskEventDialog, |
| | | openSafetyRiskEventDialog, |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .input-length{ |
| | | width:85%; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div>3</div> |
| | | <div class="system-role-container"> |
| | | <el-card shadow="hover"> |
| | | <div class="system-user-search mb15"> |
| | | <div class="basic-search"> |
| | | <span>安全风险单元名称:</span> |
| | | <el-select v-model="safetyRiskEventData.params.riskUnitId" class="unit-input" placeholder="安全风险单元名称"> |
| | | <el-option |
| | | v-for="item in allSafetyRiskEventData" |
| | | :key="item.id" |
| | | :label="item.riskUnitName" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic-search"> |
| | | <span>安全风险事件名称:</span> |
| | | <el-input v-model="safetyRiskEventData.params.riskEventName" class="unit-input" placeholder="安全风险事件名称"> |
| | | </el-input> |
| | | </div> |
| | | <el-button size="default" type="primary" class="ml10" @click="handleSearch"> |
| | | <el-icon> |
| | | <ele-Search /> |
| | | </el-icon> |
| | | 查询 |
| | | </el-button> |
| | | <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增','')"> |
| | | <el-icon> |
| | | <ele-FolderAdd /> |
| | | </el-icon> |
| | | 新增单元 |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="safetyRiskEventData.data" style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="60" /> |
| | | <el-table-column prop="riskUnitName" label="安全风险分析单元名称" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="riskEventName" label="安全风险事件名称" width="180" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gtmCreate" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" width="150"> |
| | | <template #default="scope"> |
| | | <el-button size="small" text type="primary" @click="onOpenDialogRef('修改',scope.row)">修改</el-button> |
| | | <el-button size="small" text type="danger" @click="onDelSafetyRiskEvent(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="onHandleSizeChange" |
| | | @current-change="onHandleCurrentChange" |
| | | class="mt15" |
| | | :pager-count="5" |
| | | :page-sizes="[10, 20, 30]" |
| | | v-model:current-page="safetyRiskEventData.params.pageIndex" |
| | | background |
| | | v-model:page-size="safetyRiskEventData.params.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="safetyRiskEventData.total" |
| | | > |
| | | </el-pagination> |
| | | </el-card> |
| | | <safetyRiskEventDialog ref="safetyRiskEventDialogRef" @refreshSafetyRiskEvent ="initSafetyRiskEventData"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "index" |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, onMounted, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import safetyRiskEventDialog from './components/safetyRiskEventDialog.vue'; |
| | | import { safetyRiskEventApi } from "/@/api/doublePreventSystem/safetyRiskEvent/index.ts"; |
| | | import { departmentApi } from '/@/api/department'; |
| | | import { safetyRiskAnalyseUnitApi } from '/@/api/doublePreventSystem/safetyRiskAnalyseUnit'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface TableData { |
| | | roleName: string; |
| | | roleSign: string; |
| | | describe: string; |
| | | sort: number; |
| | | status: boolean; |
| | | createTime: string; |
| | | } |
| | | interface TableDataState { |
| | | safetyRiskEventData: { |
| | | data: Array<TableData>; |
| | | total: number; |
| | | loading: boolean; |
| | | params: { |
| | | pageIndex: number; |
| | | pageSize: number; |
| | | riskEventName: string | null; |
| | | |
| | | }; |
| | | }; |
| | | departmentList:Array<DepartmentState>; |
| | | allSafetyRiskEventData:Array<safetyRiskEventState>; |
| | | |
| | | } |
| | | interface safetyRiskEventState { |
| | | |
| | | } |
| | | interface DepartmentState { |
| | | |
| | | } |
| | | |
| | | export default ({ |
| | | name: 'productionDevice', |
| | | components: { safetyRiskEventDialog }, |
| | | setup() { |
| | | const safetyRiskEventDialogRef = ref(); |
| | | const state = reactive<TableDataState>({ |
| | | safetyRiskEventData: { |
| | | data: [], |
| | | total: 0, |
| | | loading: false, |
| | | params: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | riskEventName: null, |
| | | }, |
| | | }, |
| | | departmentList:[], |
| | | allSafetyRiskEventData:[], |
| | | }); |
| | | // 初始化表格数据 |
| | | const initSafetyRiskEventData = async () => { |
| | | let res = await safetyRiskEventApi().getSafetyRiskEventList(state.safetyRiskEventData.params); |
| | | if(res.data.code === '200'){ |
| | | state.safetyRiskEventData.data = res.data.data; |
| | | state.safetyRiskEventData.total = res.data.count; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | }; |
| | | |
| | | // 获取安全风险分析单元数据 |
| | | const getAllSafetyRiskEventData = async () => { |
| | | let res = await safetyRiskAnalyseUnitApi().getAllSafetyRiskAnalyseUnitList(); |
| | | if(res.data.code === '200'){ |
| | | state.allSafetyRiskEventData = JSON.parse(JSON.stringify(res.data.data)); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | // 获取部门列表 |
| | | const getDepartmentData = async () => { |
| | | let res = await departmentApi().getDepartmentList(); |
| | | if(res.data.code === '200'){ |
| | | state.departmentList = res.data.data; |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | // 打开安全风险事件 |
| | | const onOpenDialogRef = (type: string, value: any) => { |
| | | safetyRiskEventDialogRef.value.openSafetyRiskEventDialog(type, value, state.departmentList, state.allSafetyRiskEventData); |
| | | }; |
| | | |
| | | // 删除角色 |
| | | const onDelSafetyRiskEvent = (row: any) => { |
| | | ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.riskEventName}”,是否继续?`, '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }).then(async () => { |
| | | let res = await safetyRiskEventApi().deleteSafetyRiskEvent({id:row.id}); |
| | | if(res.data.code ==='200'){ |
| | | ElMessage({ |
| | | type:'success', |
| | | duration:2000, |
| | | message:'删除成功' |
| | | }) |
| | | await initSafetyRiskEventData(); |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }); |
| | | } |
| | | }).catch(() => {}); |
| | | }; |
| | | |
| | | const handleSearch = () => { |
| | | initSafetyRiskEventData(); |
| | | } |
| | | |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.safetyRiskEventData.params.pageSize = val; |
| | | initSafetyRiskEventData(); |
| | | }; |
| | | |
| | | // 分页改变 |
| | | const onHandleCurrentChange = (val: number) => { |
| | | state.safetyRiskEventData.params.pageIndex = val; |
| | | initSafetyRiskEventData(); |
| | | }; |
| | | |
| | | // 页面加载时 |
| | | onMounted(() => { |
| | | getAllSafetyRiskEventData(); |
| | | initSafetyRiskEventData(); |
| | | getDepartmentData(); |
| | | }); |
| | | |
| | | return { |
| | | handleSearch, |
| | | onOpenDialogRef, |
| | | onHandleSizeChange, |
| | | onDelSafetyRiskEvent, |
| | | onHandleCurrentChange, |
| | | safetyRiskEventDialog, |
| | | safetyRiskEventDialogRef, |
| | | initSafetyRiskEventData, |
| | | ...toRefs(state), |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | .basic-search{ |
| | | display:inline-block; |
| | | padding-left: 10px; |
| | | } |
| | | .unit-input{ |
| | | width:200px |
| | | } |
| | | </style> |
| | |
| | | Session.set('projectId',value) |
| | | userInfos.value.projectId = value |
| | | await initBackEndControlRoutes(); |
| | | router.push('/layoutPage') |
| | | router.push('/home') |
| | | }; |
| | | //点击进入特殊作业 |
| | | const toSpecialWorkSys = () => { |
| | |
| | | const state = reactive({ |
| | | isShowPassword: false, |
| | | ruleForm: { |
| | | username: 'admin', |
| | | password: '123456', |
| | | username: '', |
| | | password: '', |
| | | }, |
| | | loading: { |
| | | signIn: false, |
| | |
| | | }) |
| | | } |
| | | }; |
| | | |
| | | const getProjectList = async () => { |
| | | let res = await useMenuApi().getProjectList() |
| | | if(res.data.code === '200'){ |
| | | state.menuTableData = res.data.data |
| | | if(Session.get('projectId') == state.projectId) await initBackEndControlRoutes() |
| | | }else{ |
| | | ElMessage({ |
| | | type:'warning', |
| | | message:res.data.msg |
| | | }) |
| | | } |
| | | }; |
| | | |
| | | onMounted( () => { |
| | | getMenuList() |
| | | }); |