测试:前台任务设计雏形
parent
d9e548e490
commit
cc4feb05e7
23
package.json
23
package.json
|
@ -40,33 +40,28 @@
|
||||||
"axios": "0.24.0",
|
"axios": "0.24.0",
|
||||||
"clipboard": "2.0.8",
|
"clipboard": "2.0.8",
|
||||||
"core-js": "3.25.3",
|
"core-js": "3.25.3",
|
||||||
"echarts": "^5.5.1",
|
"echarts": "5.4.0",
|
||||||
"element-ui": "^2.9.1",
|
"element-ui": "2.9.1",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"fuse.js": "6.4.3",
|
"fuse.js": "6.4.3",
|
||||||
"highlight.js": "9.18.5",
|
"highlight.js": "9.18.5",
|
||||||
"jquery": "^3.5.1",
|
|
||||||
"js-beautify": "1.13.0",
|
"js-beautify": "1.13.0",
|
||||||
"js-cookie": "3.0.1",
|
"js-cookie": "3.0.1",
|
||||||
"jsencrypt": "3.0.0-rc.1",
|
"jsencrypt": "3.0.0-rc.1",
|
||||||
"jsplumb": "^2.15.6",
|
|
||||||
"lodash": "4.17.15",
|
"lodash": "4.17.15",
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"panzoom": "^9.4.1",
|
|
||||||
"quill": "1.3.7",
|
"quill": "1.3.7",
|
||||||
"screenfull": "5.0.2",
|
"screenfull": "5.0.2",
|
||||||
"sortablejs": "1.10.2",
|
"sortablejs": "1.10.2",
|
||||||
"view-design": "^4.5.0-beta.3",
|
"vue": "2.6.12",
|
||||||
"vue": "^2.5.2",
|
|
||||||
"vue-click-outside": "^1.1.0",
|
"vue-click-outside": "^1.1.0",
|
||||||
"vue-codemirror": "^4.0.6",
|
"vue-codemirror": "^4.0.6",
|
||||||
"vue-contextmenujs": "^1.3.13",
|
|
||||||
"vue-count-to": "1.0.13",
|
"vue-count-to": "1.0.13",
|
||||||
"vue-cropper": "0.5.5",
|
"vue-cropper": "0.5.5",
|
||||||
"vue-meta": "2.4.0",
|
"vue-meta": "2.4.0",
|
||||||
"vue-router": "^3.2.0",
|
"vue-router": "3.4.9",
|
||||||
"vuedraggable": "2.23.0",
|
"vuedraggable": "2.23.0",
|
||||||
"vuex": "^3.4.0"
|
"vuex": "3.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "4.4.6",
|
"@vue/cli-plugin-babel": "4.4.6",
|
||||||
|
@ -79,17 +74,15 @@
|
||||||
"connect": "3.6.6",
|
"connect": "3.6.6",
|
||||||
"eslint": "7.15.0",
|
"eslint": "7.15.0",
|
||||||
"eslint-plugin-vue": "7.2.0",
|
"eslint-plugin-vue": "7.2.0",
|
||||||
|
"less": "^4.2.0",
|
||||||
|
"less-loader": "^12.2.0",
|
||||||
"lint-staged": "10.5.3",
|
"lint-staged": "10.5.3",
|
||||||
"runjs": "4.4.2",
|
"runjs": "4.4.2",
|
||||||
"sass": "1.32.13",
|
"sass": "1.32.13",
|
||||||
"sass-loader": "10.1.1",
|
"sass-loader": "10.1.1",
|
||||||
"script-ext-html-webpack-plugin": "2.1.5",
|
"script-ext-html-webpack-plugin": "2.1.5",
|
||||||
"svg-sprite-loader": "5.1.1",
|
"svg-sprite-loader": "5.1.1",
|
||||||
"vue-template-compiler": "2.6.12",
|
"vue-template-compiler": "2.6.12"
|
||||||
"@vue/cli-plugin-router": "~4.5.0",
|
|
||||||
"@vue/cli-plugin-vuex": "~4.5.0",
|
|
||||||
"less": "^3.0.4",
|
|
||||||
"less-loader": "^5.0.0"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.9",
|
"node": ">=8.9",
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
import nodeMenu from '@/components/ef/node_menu'
|
import nodeMenu from '@/components/ef/node_menu'
|
||||||
import FlowInfo from '@/components/ef/info'
|
import FlowInfo from '@/components/ef/info'
|
||||||
import FlowHelp from '@/components/ef/help'
|
import FlowHelp from '@/components/ef/help'
|
||||||
import FlowNodeForm from './node_form'
|
import FlowNodeForm from '@/components/ef/node_form'
|
||||||
import lodash from 'lodash'
|
import lodash from 'lodash'
|
||||||
import { getDataA } from './data_A'
|
import { getDataA } from './data_A'
|
||||||
import { getDataB } from './data_B'
|
import { getDataB } from './data_B'
|
||||||
|
|
|
@ -6,7 +6,12 @@
|
||||||
<breadcrumb v-if="!topNav" id="breadcrumb-container" class="breadcrumb-container"/>
|
<breadcrumb v-if="!topNav" id="breadcrumb-container" class="breadcrumb-container"/>
|
||||||
<top-nav v-if="topNav" id="topmenu-container" class="topmenu-container"/>
|
<top-nav v-if="topNav" id="topmenu-container" class="topmenu-container"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
|
<el-button @click="drawerTru" type="primary" style="margin: 10px 0;">
|
||||||
|
<i class="el-icon-s-comment"></i>
|
||||||
|
</el-button>
|
||||||
<template v-if="device!=='mobile'">
|
<template v-if="device!=='mobile'">
|
||||||
<search id="header-search" class="right-menu-item"/>
|
<search id="header-search" class="right-menu-item"/>
|
||||||
<screenfull id="screenfull" class="right-menu-item hover-effect"/>
|
<screenfull id="screenfull" class="right-menu-item hover-effect"/>
|
||||||
|
@ -34,7 +39,119 @@
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<!-- <el-drawer-->
|
||||||
|
<!-- title="我是标题"-->
|
||||||
|
<!-- :visible.sync="drawer"-->
|
||||||
|
<!-- size="50%"-->
|
||||||
|
<!-- :with-header="false">-->
|
||||||
|
|
||||||
|
<!-- <el-radio-group v-model="type" @change="selectNotice">-->
|
||||||
|
<!-- <el-radio-button label="0" >全部</el-radio-button>-->
|
||||||
|
<!-- <el-radio-button label="1" >通知</el-radio-button>-->
|
||||||
|
<!-- <el-radio-button label="2" >公告</el-radio-button>-->
|
||||||
|
<!-- </el-radio-group>-->
|
||||||
|
<!-- <br>-->
|
||||||
|
<!-- <el-radio-group v-model="state" @change="selectNotice">-->
|
||||||
|
<!-- <el-radio-button label="0" >全部</el-radio-button>-->
|
||||||
|
<!-- <el-radio-button label="2">已读</el-radio-button>-->
|
||||||
|
<!-- <el-radio-button label="1">未读</el-radio-button>-->
|
||||||
|
<!-- </el-radio-group>-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <el-descriptions class="margin-top" v-for="notice in notices" :column="2" border>-->
|
||||||
|
<!-- <template slot="extra">-->
|
||||||
|
<!-- <el-button type="primary" size="small" @click="lookNotice(notice)">阅读信息</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-descriptions-item>-->
|
||||||
|
<!-- <template slot="label">-->
|
||||||
|
<!-- <i class="el-icon-user"></i>-->
|
||||||
|
<!-- 消息发布时间-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- {{ notice.noticeTitle }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- <el-descriptions-item>-->
|
||||||
|
<!-- <template slot="label">-->
|
||||||
|
<!-- <i class="el-icon-mobile-phone"></i>-->
|
||||||
|
<!-- 消息发布人-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- {{notice.createBy}}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- <el-descriptions-item>-->
|
||||||
|
<!-- <template slot="label">-->
|
||||||
|
<!-- <i class="el-icon-location-outline"></i>-->
|
||||||
|
<!-- 消息类型-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-tag size="small" v-if=" notice.noticeType == 1">通知</el-tag>-->
|
||||||
|
<!-- <el-tag size="warning" v-if=" notice.noticeType == 2">公告</el-tag>-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- <el-descriptions-item>-->
|
||||||
|
<!-- <template slot="label">-->
|
||||||
|
<!-- <i class="el-icon-tickets"></i>-->
|
||||||
|
<!-- 当前状态-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-tag size="small" v-if=" notice.state == 1">未读</el-tag>-->
|
||||||
|
<!-- <el-tag size="success" v-if=" notice.state == 2">已读</el-tag>-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- </el-descriptions>-->
|
||||||
|
<!-- </el-drawer>-->
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
width="30%">
|
||||||
|
<el-descriptions class="margin-top" :column="2" border>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label">
|
||||||
|
<i class="el-icon-user"></i>
|
||||||
|
消息发布时间
|
||||||
|
</template>
|
||||||
|
{{ notice.noticeTitle }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label">
|
||||||
|
<i class="el-icon-mobile-phone"></i>
|
||||||
|
消息发布人
|
||||||
|
</template>
|
||||||
|
{{notice.createBy}}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label">
|
||||||
|
<i class="el-icon-location-outline"></i>
|
||||||
|
消息类型
|
||||||
|
</template>
|
||||||
|
<el-tag size="small" v-if=" notice.noticeType == 1">通知</el-tag>
|
||||||
|
<el-tag size="warning" v-if=" notice.noticeType == 2">公告</el-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label">
|
||||||
|
<i class="el-icon-tickets"></i>
|
||||||
|
当前状态
|
||||||
|
</template>
|
||||||
|
<el-tag size="small" v-if=" notice.state == 1">未读</el-tag>
|
||||||
|
<el-tag size="success" v-if=" notice.state == 2">已读</el-tag>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label">
|
||||||
|
<i class="el-icon-tickets"></i>
|
||||||
|
内容
|
||||||
|
</template>
|
||||||
|
<span v-html="notice.noticeContent"></span>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -46,8 +163,19 @@ import Hamburger from '@/components/Hamburger'
|
||||||
import Screenfull from '@/components/Screenfull'
|
import Screenfull from '@/components/Screenfull'
|
||||||
import SizeSelect from '@/components/SizeSelect'
|
import SizeSelect from '@/components/SizeSelect'
|
||||||
import Search from '@/components/HeaderSearch'
|
import Search from '@/components/HeaderSearch'
|
||||||
|
import {findList, lookNotice} from "@/api/system/notice";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
drawer:false,
|
||||||
|
type:0,
|
||||||
|
state:0,
|
||||||
|
notices:[],
|
||||||
|
dialogVisible:false,
|
||||||
|
notice:{}
|
||||||
|
}
|
||||||
|
},
|
||||||
components: {
|
components: {
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
TopNav,
|
TopNav,
|
||||||
|
@ -63,6 +191,7 @@ export default {
|
||||||
'device'
|
'device'
|
||||||
]),
|
]),
|
||||||
setting: {
|
setting: {
|
||||||
|
|
||||||
get() {
|
get() {
|
||||||
return this.$store.state.settings.showSettings
|
return this.$store.state.settings.showSettings
|
||||||
},
|
},
|
||||||
|
@ -79,7 +208,28 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
lookNotice(notice) {
|
||||||
|
this.dialogVisible = true
|
||||||
|
lookNotice(notice.id, notice.state).then(res => {
|
||||||
|
this.notice = res.data
|
||||||
|
})
|
||||||
|
this.findAll();
|
||||||
|
},
|
||||||
|
drawerTru() {
|
||||||
|
this.drawer = true
|
||||||
|
this.findAll()
|
||||||
|
},
|
||||||
|
findAll() {
|
||||||
|
findList({ state: this.state, noticeType: this.type }).then(res => {
|
||||||
|
this.notices = res.data;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectNotice() {
|
||||||
|
this.findAll();
|
||||||
|
},
|
||||||
toggleSideBar() {
|
toggleSideBar() {
|
||||||
this.$store.dispatch('app/toggleSideBar')
|
this.$store.dispatch('app/toggleSideBar')
|
||||||
},
|
},
|
||||||
|
@ -136,7 +286,7 @@ export default {
|
||||||
|
|
||||||
.right-menu {
|
.right-menu {
|
||||||
float: right;
|
float: right;
|
||||||
height: 100%;
|
height: 70%;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
|
|
17
src/main.js
17
src/main.js
|
@ -2,9 +2,6 @@ import Vue from 'vue'
|
||||||
|
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
import Contextmenu from 'vue-contextmenujs'
|
|
||||||
import ViewUI from 'view-design';
|
|
||||||
|
|
||||||
import Element from 'element-ui'
|
import Element from 'element-ui'
|
||||||
import './assets/styles/element-variables.scss'
|
import './assets/styles/element-variables.scss'
|
||||||
|
|
||||||
|
@ -19,8 +16,8 @@ import {download} from '@/utils/request'
|
||||||
|
|
||||||
import './assets/icons' // icon
|
import './assets/icons' // icon
|
||||||
import './permission' // permission control
|
import './permission' // permission control
|
||||||
import {getDicts} from "/src/api/system/dict/data";
|
import {getDicts} from "@/api/system/dict/data";
|
||||||
import {getConfigKey} from "/src/api/system/config";
|
import {getConfigKey} from "@/api/system/config";
|
||||||
import {addDateRange, handleTree, parseTime, resetForm, selectDictLabel, selectDictLabels} from "@/utils/muyu";
|
import {addDateRange, handleTree, parseTime, resetForm, selectDictLabel, selectDictLabels} from "@/utils/muyu";
|
||||||
// 分页组件
|
// 分页组件
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
|
@ -40,10 +37,9 @@ import DictTag from '@/components/DictTag'
|
||||||
import VueMeta from 'vue-meta'
|
import VueMeta from 'vue-meta'
|
||||||
// 字典数据组件
|
// 字典数据组件
|
||||||
import DictData from '@/components/DictData'
|
import DictData from '@/components/DictData'
|
||||||
import ElementUI from 'element-ui'
|
|
||||||
import 'element-ui/lib/theme-chalk/index.css'
|
import 'element-ui/lib/theme-chalk/index.css'
|
||||||
import '@/components/ef/index.css'
|
import '@/components/ef/index.css'
|
||||||
Vue.use(ElementUI, {size: 'small'})
|
|
||||||
|
|
||||||
// 全局方法挂载
|
// 全局方法挂载
|
||||||
Vue.prototype.getDicts = getDicts
|
Vue.prototype.getDicts = getDicts
|
||||||
|
@ -64,9 +60,6 @@ Vue.component('Editor', Editor)
|
||||||
Vue.component('FileUpload', FileUpload)
|
Vue.component('FileUpload', FileUpload)
|
||||||
Vue.component('ImageUpload', ImageUpload)
|
Vue.component('ImageUpload', ImageUpload)
|
||||||
Vue.component('ImagePreview', ImagePreview)
|
Vue.component('ImagePreview', ImagePreview)
|
||||||
|
|
||||||
Vue.use(Contextmenu);
|
|
||||||
Vue.use(ViewUI);
|
|
||||||
Vue.use(directive)
|
Vue.use(directive)
|
||||||
Vue.use(plugins)
|
Vue.use(plugins)
|
||||||
Vue.use(VueMeta)
|
Vue.use(VueMeta)
|
||||||
|
@ -92,6 +85,4 @@ new Vue({
|
||||||
router,
|
router,
|
||||||
store,
|
store,
|
||||||
render: h => h(App)
|
render: h => h(App)
|
||||||
}).$mount('#app')
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,9 +47,9 @@ export const constantRoutes = [
|
||||||
children: [// 父级路由下面还有子路由
|
children: [// 父级路由下面还有子路由
|
||||||
{
|
{
|
||||||
path: 'index/:id',// 这个index可以自己定义
|
path: 'index/:id',// 这个index可以自己定义
|
||||||
component: () => import('@/components/ef/panel.vue'),
|
component: () => import('@/views/task/task/easyFlow.vue'),
|
||||||
name: "easyFlow",
|
name: "easyFlow",
|
||||||
meta: { title: '设计', icon: 'dashboard', activeMenu: '/task/info' }
|
meta: { title: '设计', icon: 'dashboard', activeMenu: '/task/task' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<ef>
|
||||||
|
|
||||||
|
</ef>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等),
|
||||||
|
//例如:import 《组件名称》 from '《组件路径》,
|
||||||
|
import ef from "@/components/ef/panel.vue"
|
||||||
|
export default {
|
||||||
|
name: "easyFlow",
|
||||||
|
//import引入的组件需要注入到对象中才能使用"
|
||||||
|
components: {
|
||||||
|
ef
|
||||||
|
},
|
||||||
|
props: {},
|
||||||
|
data() {
|
||||||
|
//这里存放数据"
|
||||||
|
|
||||||
|
return {
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
//计算属性 类似于data概念",
|
||||||
|
computed: {},
|
||||||
|
//监控data中的数据变化",
|
||||||
|
watch: {},
|
||||||
|
//方法集合",
|
||||||
|
methods: {},
|
||||||
|
//生命周期 - 创建完成(可以访问当前this实例)",
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
//生命周期 - 挂载完成(可以访问DOM元素)",
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
beforeCreate() {
|
||||||
|
}, //生命周期 - 创建之前",
|
||||||
|
beforeMount() {
|
||||||
|
}, //生命周期 - 挂载之前",
|
||||||
|
beforeUpdate() {
|
||||||
|
}, //生命周期 - 更新之前",
|
||||||
|
updated() {
|
||||||
|
}, //生命周期 - 更新之后",
|
||||||
|
beforeDestroy() {
|
||||||
|
}, //生命周期 - 销毁之前",
|
||||||
|
destroyed() {
|
||||||
|
}, //生命周期 - 销毁完成",
|
||||||
|
activated() {
|
||||||
|
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -37,7 +37,7 @@ module.exports = {
|
||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
target: `http://172.13.1.1/prod-api`,
|
target: `http://172.13.1.1/prod-api/`,
|
||||||
// target: `http://127.0.0.1/8080`, `http://172.13.1.1/prod-api`,
|
// target: `http://127.0.0.1/8080`, `http://172.13.1.1/prod-api`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
|
|
Loading…
Reference in New Issue