You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.6 KiB

<template>
<div>
<vxe-modal :value="isShow"
show-footer
:z-index="zIndex"
title="抄送"
show-zoom
show-confirm-button
:width="800"
:height="600"
@input="e => $emit('update:isShow',e)">
<div>
<el-tag effect="dark">{{ flow.custom_model ? flow.custom_model.name : ''}}流水号{{ flow.id }}抄送</el-tag>
<el-checkbox-group v-model="form.cc_users">
<div v-for="(ccUser, index) in config.cc_users" :key="ccUser.id">
<h4>{{ ccUser.name }}</h4>
<div>
<el-checkbox v-for="(user, index1) in ccUser.users"
:key="user.id"
:disabled="(config.flow && config.flow.ccs) ? (!!config.flow.ccs.find(j => j.user_id === user.id)) : false"
:label="user.id">{{ user.name }}({{ user.position }})</el-checkbox>
</div>
</div>
</el-checkbox-group>
</div>
<template #footer>
<div style="margin-top: 20px;display: flex;justify-content: center;">
<el-button type="primary" size="small" @click="submit"> <i class="el-icon-arrow-right"></i> </el-button>
</div>
</template>
</vxe-modal>
</div>
</template>
<script>
import { preShare, share } from '@/api/flow'
import { PopupManager } from 'element-ui/lib/utils/popup'
export default {
props: {
isShow: {
type: Boolean,
default: false,
required: true
},
flow: Object
},
data() {
return {
zIndex: PopupManager.nextZIndex(),
config: {
cc_users: []
},
form: {
cc_users: []
}
}
},
methods: {
async getConfig() {
try {
const res = await preShare(this.flow.id)
this.config = res;
this.form.cc_users = res.exists_users;
} catch (err) {
console.error(err)
}
},
async submit() {
try {
const res = await share(this.flow.id,this.form)
this.$message({
message: res,
duration: 2000,
type: 'success'
})
this.$emit('update:isShow',false)
} catch (err) {
console.error(err)
}
}
},
computed: {},
watch: {
isShow(newVal) {
if (newVal) {
this.zIndex = PopupManager.nextZIndex()
if(this.flow.id) {
this.getConfig()
}
} else {
this.form.cc_users = []
}
}
}
}
</script>
<style scoped lang="scss">
::v-deep .el-checkbox-group {
font-size: inherit;
}
</style>