mirror of
https://github.com/kuaifan/dootask.git
synced 2026-02-18 05:47:34 +00:00
feat:用户选择组件 - 返回用户ids
This commit is contained in:
parent
46967f1e00
commit
df627b0ad5
@ -312,7 +312,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.searchKey = ""
|
this.searchKey = ""
|
||||||
}
|
}
|
||||||
this.$emit("on-show-change",value)
|
this.$emit("on-show-change",value,this.values)
|
||||||
},
|
},
|
||||||
|
|
||||||
searchKey() {
|
searchKey() {
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import store from '../../store/index'
|
|||||||
import {mapState} from "vuex";
|
import {mapState} from "vuex";
|
||||||
import { EventCenterForMicroApp } from '@micro-zoe/micro-app'
|
import { EventCenterForMicroApp } from '@micro-zoe/micro-app'
|
||||||
import DialogWrapper from './components/DialogWrapper'
|
import DialogWrapper from './components/DialogWrapper'
|
||||||
|
import UserSelect from "../../components/UserSelect.vue";
|
||||||
import {languageList, languageType} from "../../language";
|
import {languageList, languageType} from "../../language";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -80,7 +81,8 @@ export default {
|
|||||||
Vue,
|
Vue,
|
||||||
store,
|
store,
|
||||||
components:{
|
components:{
|
||||||
DialogWrapper
|
DialogWrapper,
|
||||||
|
UserSelect
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
theme: this.themeMode,
|
theme: this.themeMode,
|
||||||
|
|||||||
311
resources/assets/js/pages/manage/test/gggg.js
vendored
311
resources/assets/js/pages/manage/test/gggg.js
vendored
@ -1,311 +0,0 @@
|
|||||||
import Vue from 'vue';
|
|
||||||
import Modal from './modal.vue';
|
|
||||||
import Button from '../button/button.vue';
|
|
||||||
import Locale from '../../mixins/locale';
|
|
||||||
|
|
||||||
const prefixCls = 'ivu-modal-confirm';
|
|
||||||
|
|
||||||
Modal.newInstance = properties => {
|
|
||||||
const _props = properties || {};
|
|
||||||
|
|
||||||
const Instance = new Vue({
|
|
||||||
mixins: [ Locale ],
|
|
||||||
data: Object.assign({}, _props, {
|
|
||||||
visible: false,
|
|
||||||
width: 416,
|
|
||||||
title: '',
|
|
||||||
body: '',
|
|
||||||
iconType: '',
|
|
||||||
iconName: '',
|
|
||||||
okText: undefined,
|
|
||||||
cancelText: undefined,
|
|
||||||
showCancel: false,
|
|
||||||
loading: false,
|
|
||||||
buttonLoading: false,
|
|
||||||
scrollable: false,
|
|
||||||
closable: false,
|
|
||||||
closing: false, // 关闭有动画,期间使用此属性避免重复点击
|
|
||||||
okIng: false,
|
|
||||||
enterOk: false,
|
|
||||||
}),
|
|
||||||
render (h) {
|
|
||||||
let footerVNodes = [];
|
|
||||||
if (this.showCancel) {
|
|
||||||
footerVNodes.push(h(Button, {
|
|
||||||
props: {
|
|
||||||
type: 'text'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: this.cancel
|
|
||||||
}
|
|
||||||
}, this.localeCancelText));
|
|
||||||
}
|
|
||||||
footerVNodes.push(h(Button, {
|
|
||||||
props: {
|
|
||||||
type: 'primary',
|
|
||||||
loading: this.buttonLoading
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: this.ok
|
|
||||||
}
|
|
||||||
}, this.localeOkText));
|
|
||||||
|
|
||||||
// render content
|
|
||||||
let body_render;
|
|
||||||
if (this.render) {
|
|
||||||
body_render = h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: `${prefixCls}-body ${prefixCls}-body-render`
|
|
||||||
}
|
|
||||||
}, [this.render(h)]);
|
|
||||||
} else {
|
|
||||||
body_render = h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: `${prefixCls}-body`
|
|
||||||
}
|
|
||||||
}, [
|
|
||||||
h('div', {
|
|
||||||
domProps: {
|
|
||||||
innerHTML: this.body
|
|
||||||
}
|
|
||||||
})
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// when render with no title, hide head
|
|
||||||
let head_render;
|
|
||||||
if (this.title) {
|
|
||||||
head_render = h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: `${prefixCls}-head`
|
|
||||||
}
|
|
||||||
}, [
|
|
||||||
h('div', {
|
|
||||||
class: this.iconTypeCls
|
|
||||||
}, [
|
|
||||||
h('i', {
|
|
||||||
class: this.iconNameCls
|
|
||||||
})
|
|
||||||
]),
|
|
||||||
h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: `${prefixCls}-head-title`
|
|
||||||
},
|
|
||||||
domProps: {
|
|
||||||
innerHTML: this.title
|
|
||||||
}
|
|
||||||
})
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return h(Modal, {
|
|
||||||
props: Object.assign({}, _props, {
|
|
||||||
width: this.width,
|
|
||||||
scrollable: this.scrollable,
|
|
||||||
closable: this.closable,
|
|
||||||
enterOk: this.enterOk
|
|
||||||
}),
|
|
||||||
domProps: {
|
|
||||||
value: this.visible
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
input: (status) => {
|
|
||||||
this.visible = status;
|
|
||||||
},
|
|
||||||
'on-cancel': this.cancel
|
|
||||||
}
|
|
||||||
}, [
|
|
||||||
h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: prefixCls
|
|
||||||
}
|
|
||||||
}, [
|
|
||||||
head_render,
|
|
||||||
body_render,
|
|
||||||
h('div', {
|
|
||||||
attrs: {
|
|
||||||
class: `${prefixCls}-footer`
|
|
||||||
}
|
|
||||||
}, footerVNodes)
|
|
||||||
])
|
|
||||||
]);
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
iconTypeCls () {
|
|
||||||
return [
|
|
||||||
`${prefixCls}-head-icon`,
|
|
||||||
`${prefixCls}-head-icon-${this.iconType}`
|
|
||||||
];
|
|
||||||
},
|
|
||||||
iconNameCls () {
|
|
||||||
return [
|
|
||||||
'ivu-icon',
|
|
||||||
`ivu-icon-${this.iconName}`
|
|
||||||
];
|
|
||||||
},
|
|
||||||
localeOkText () {
|
|
||||||
if (this.okText) {
|
|
||||||
return this.okText;
|
|
||||||
} else {
|
|
||||||
return this.t('i.modal.okText');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
localeCancelText () {
|
|
||||||
if (this.cancelText) {
|
|
||||||
return this.cancelText;
|
|
||||||
} else {
|
|
||||||
return this.t('i.modal.cancelText');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
cancel () {
|
|
||||||
if (this.closing) return;
|
|
||||||
this.$children[0].visible = false;
|
|
||||||
this.buttonLoading = false;
|
|
||||||
this.onCancel();
|
|
||||||
this.remove();
|
|
||||||
},
|
|
||||||
ok () {
|
|
||||||
if (this.closing) return;
|
|
||||||
if (this.loading) {
|
|
||||||
this.buttonLoading = true;
|
|
||||||
} else {
|
|
||||||
this.$children[0].visible = false;
|
|
||||||
this.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.okIng = true;
|
|
||||||
const call = this.onOk();
|
|
||||||
if (call && call.then) {
|
|
||||||
call.then(() => {
|
|
||||||
this.$children[0].visible = false;
|
|
||||||
this.remove();
|
|
||||||
}).catch(() => {
|
|
||||||
this.buttonLoading = false;
|
|
||||||
}).finally(_ => {
|
|
||||||
this.okIng = false;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.okIng = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
remove () {
|
|
||||||
this.closing = true;
|
|
||||||
setTimeout(() => {
|
|
||||||
this.closing = false;
|
|
||||||
this.destroy();
|
|
||||||
}, 300);
|
|
||||||
},
|
|
||||||
destroy () {
|
|
||||||
this.$destroy();
|
|
||||||
if (this.$el) {
|
|
||||||
try {
|
|
||||||
if (this.append && typeof this.append === 'object') {
|
|
||||||
this.append.removeChild(this.$el);
|
|
||||||
} else {
|
|
||||||
document.body.removeChild(this.$el);
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.onRemove();
|
|
||||||
},
|
|
||||||
onOk () {},
|
|
||||||
onCancel () {},
|
|
||||||
onRemove () {}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const component = Instance.$mount();
|
|
||||||
if (_props.append && typeof _props.append === 'object') {
|
|
||||||
_props.append.appendChild(component.$el);
|
|
||||||
} else {
|
|
||||||
document.body.appendChild(component.$el);
|
|
||||||
}
|
|
||||||
const modal = Instance.$children[0];
|
|
||||||
|
|
||||||
return {
|
|
||||||
show (props) {
|
|
||||||
modal.$parent.showCancel = props.showCancel;
|
|
||||||
modal.$parent.iconType = props.icon;
|
|
||||||
|
|
||||||
switch (props.icon) {
|
|
||||||
case 'info':
|
|
||||||
modal.$parent.iconName = 'ios-information-circle';
|
|
||||||
break;
|
|
||||||
case 'success':
|
|
||||||
modal.$parent.iconName = 'ios-checkmark-circle';
|
|
||||||
break;
|
|
||||||
case 'warning':
|
|
||||||
modal.$parent.iconName = 'ios-alert';
|
|
||||||
break;
|
|
||||||
case 'error':
|
|
||||||
modal.$parent.iconName = 'ios-close-circle';
|
|
||||||
break;
|
|
||||||
case 'confirm':
|
|
||||||
modal.$parent.iconName = 'ios-help-circle';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('width' in props) {
|
|
||||||
modal.$parent.width = props.width;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('closable' in props) {
|
|
||||||
modal.$parent.closable = props.closable;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('title' in props) {
|
|
||||||
modal.$parent.title = props.title;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('content' in props) {
|
|
||||||
modal.$parent.body = props.content;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('okText' in props) {
|
|
||||||
modal.$parent.okText = props.okText;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('cancelText' in props) {
|
|
||||||
modal.$parent.cancelText = props.cancelText;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('onCancel' in props) {
|
|
||||||
modal.$parent.onCancel = props.onCancel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('onOk' in props) {
|
|
||||||
modal.$parent.onOk = props.onOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
// async for ok
|
|
||||||
if ('loading' in props) {
|
|
||||||
modal.$parent.loading = props.loading;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('scrollable' in props) {
|
|
||||||
modal.$parent.scrollable = props.scrollable;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('enterOk' in props) {
|
|
||||||
modal.$parent.enterOk = props.enterOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
// notice when component destroy
|
|
||||||
modal.$parent.onRemove = props.onRemove;
|
|
||||||
|
|
||||||
modal.visible = true;
|
|
||||||
},
|
|
||||||
remove () {
|
|
||||||
modal.visible = false;
|
|
||||||
modal.$parent.buttonLoading = false;
|
|
||||||
modal.$parent.remove();
|
|
||||||
},
|
|
||||||
component: modal
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Modal;
|
|
||||||
Loading…
x
Reference in New Issue
Block a user