diff --git a/yudao-ui-admin/src/api/bpm/processInstance.js b/yudao-ui-admin/src/api/bpm/processInstance.js index 0bf6add9d..58c456f71 100644 --- a/yudao-ui-admin/src/api/bpm/processInstance.js +++ b/yudao-ui-admin/src/api/bpm/processInstance.js @@ -33,18 +33,3 @@ export function getProcessInstance(id) { method: 'get', }) } - -export class createProcessInstanceExt { -} - -export class exportProcessInstanceExtExcel { -} - -export class getProcessInstanceExtPage { -} - -export class deleteProcessInstanceExt { -} - -export class deleteProcessInstanceExt { -} diff --git a/yudao-ui-admin/src/directive/dialog/drag.js b/yudao-ui-admin/src/directive/dialog/drag.js new file mode 100644 index 000000000..c5c2455f8 --- /dev/null +++ b/yudao-ui-admin/src/directive/dialog/drag.js @@ -0,0 +1,64 @@ +/** + * v-dialogDrag 弹窗拖拽 + * Copyright (c) 2019 ruoyi + */ + +export default { + bind(el, binding, vnode, oldVnode) { + const value = binding.value + if (value == false) return + // 获取拖拽内容头部 + const dialogHeaderEl = el.querySelector('.el-dialog__header'); + const dragDom = el.querySelector('.el-dialog'); + dialogHeaderEl.style.cursor = 'move'; + // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null); + const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); + dragDom.style.position = 'absolute'; + dragDom.style.marginTop = 0; + let width = dragDom.style.width; + if (width.includes('%')) { + width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100); + } else { + width = +width.replace(/\px/g, ''); + } + dragDom.style.left = `${(document.body.clientWidth - width) / 2}px`; + // 鼠标按下事件 + dialogHeaderEl.onmousedown = (e) => { + // 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离) + const disX = e.clientX - dialogHeaderEl.offsetLeft; + const disY = e.clientY - dialogHeaderEl.offsetTop; + + // 获取到的值带px 正则匹配替换 + let styL, styT; + + // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px + if (sty.left.includes('%')) { + styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); + styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); + } else { + styL = +sty.left.replace(/\px/g, ''); + styT = +sty.top.replace(/\px/g, ''); + }; + + // 鼠标拖拽事件 + document.onmousemove = function (e) { + // 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离) + const l = e.clientX - disX; + const t = e.clientY - disY; + + let finallyL = l + styL + let finallyT = t + styT + + // 移动当前元素 + dragDom.style.left = `${finallyL}px`; + dragDom.style.top = `${finallyT}px`; + + }; + + document.onmouseup = function (e) { + document.onmousemove = null; + document.onmouseup = null; + }; + } + } +}; diff --git a/yudao-ui-admin/src/directive/permission/index.js b/yudao-ui-admin/src/directive/index.js similarity index 55% rename from yudao-ui-admin/src/directive/permission/index.js rename to yudao-ui-admin/src/directive/index.js index e3d76d387..550109b4d 100644 --- a/yudao-ui-admin/src/directive/permission/index.js +++ b/yudao-ui-admin/src/directive/index.js @@ -1,14 +1,17 @@ -import hasRole from './hasRole' -import hasPermi from './hasPermi' +import hasRole from './permission/hasRole' +import hasPermi from './permission/hasPermi' +import dialogDrag from './dialog/drag' const install = function(Vue) { Vue.directive('hasRole', hasRole) Vue.directive('hasPermi', hasPermi) + Vue.directive('dialogDrag', dialogDrag) } if (window.Vue) { window['hasRole'] = hasRole window['hasPermi'] = hasPermi + window['dialogDrag'] = dialogDrag Vue.use(install); // eslint-disable-line } diff --git a/yudao-ui-admin/src/main.js b/yudao-ui-admin/src/main.js index f07b7d388..35479a159 100644 --- a/yudao-ui-admin/src/main.js +++ b/yudao-ui-admin/src/main.js @@ -10,7 +10,7 @@ import '@/assets/styles/ruoyi.scss' // ruoyi css import App from './App' import store from './store' import router from './router' -import permission from './directive/permission' +import directive from './directive' // directive import './assets/icons' // icon import './permission' // permission control @@ -79,7 +79,7 @@ import DictTag from '@/components/DictTag' // 头部标签插件 import VueMeta from 'vue-meta' -Vue.use(permission) +Vue.use(directive) Vue.use(VueMeta) // Vue.use(hljs.vuePlugin);