|
|
@@ -90,6 +90,50 @@
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="抄送人" prop="copyUsers">
|
|
|
+ <el-input v-model="form.copyUsers" placeholder="抄送人" readonly>
|
|
|
+ <el-button slot="append" icon="el-icon-search" @click="choose(true, 'copyUserIds', 'copyUsers')" />
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="提醒规则">
|
|
|
+ <el-checkbox v-model="isRemind">定时提醒</el-checkbox>
|
|
|
+ <span v-show="isRemind" style="margin-left: 10px">
|
|
|
+ 类型
|
|
|
+ <el-select
|
|
|
+ v-model="remindType"
|
|
|
+ placeholder="请选择提醒类型"
|
|
|
+ style="width: 100px"
|
|
|
+ @change="changeRemindType">
|
|
|
+ <el-option
|
|
|
+ v-for="option in remindTypeOptions"
|
|
|
+ :key="option.value"
|
|
|
+ :label="option.label"
|
|
|
+ :value="option.value" />
|
|
|
+ </el-select>
|
|
|
+ </span>
|
|
|
+ <span v-show="isRemind && remindType !== '天'" style="margin-left: 10px">
|
|
|
+ 选项
|
|
|
+ <el-select v-model="remindDay" multiple placeholder="请选择提醒项" style="width: 150px">
|
|
|
+ <el-option
|
|
|
+ v-for="option in remindDayoptions"
|
|
|
+ :key="option.value"
|
|
|
+ :label="option.label"
|
|
|
+ :value="option.value" />
|
|
|
+ </el-select>
|
|
|
+ </span>
|
|
|
+ <span v-show="isRemind" style="margin-left: 10px">
|
|
|
+ 时间
|
|
|
+ <el-time-picker
|
|
|
+ v-model="remindTime"
|
|
|
+ placeholder="请选择具体时间"
|
|
|
+ style="width: 150px"
|
|
|
+ value-format="HH:mm:ss" />
|
|
|
+ </span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
<!-- <el-col :span="12">
|
|
|
<el-form-item label="关联类型" prop="targetType">
|
|
|
<el-select
|
|
|
@@ -171,6 +215,17 @@
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ // 提醒规则
|
|
|
+ isRemind: true,
|
|
|
+ remindTime: '00:00:00',
|
|
|
+ remindType: '天',
|
|
|
+ remindDay: [1],
|
|
|
+ remindTypeOptions: [
|
|
|
+ { value: '天', label: '天' },
|
|
|
+ { value: '月', label: '月' },
|
|
|
+ { value: '周', label: '周' },
|
|
|
+ ],
|
|
|
+ remindDayoptions: [],
|
|
|
// 项目数据
|
|
|
projects: [],
|
|
|
// 合同
|
|
|
@@ -208,6 +263,9 @@
|
|
|
mainUserName: '',
|
|
|
watchUserName: '',
|
|
|
supervisorUserName: '',
|
|
|
+ copyUsers: '',
|
|
|
+ copyUserIds: [],
|
|
|
+ copyUserId: '',
|
|
|
},
|
|
|
// 校验规则
|
|
|
rules: {
|
|
|
@@ -218,7 +276,7 @@
|
|
|
taskEndDate: [{ required: true, message: '要求完成时间不能为空', trigger: 'blur' }],
|
|
|
supervisorUserId: [{ required: true, message: '督办人不能为空', trigger: 'change' }],
|
|
|
mainUserId: [{ required: true, message: '负责人不能为空', trigger: 'change' }],
|
|
|
- teamNames: [{ required: true, message: '协办人不能为空', trigger: 'change' }],
|
|
|
+ teamNames: [{ required: false, message: '协办人不能为空', trigger: 'change' }],
|
|
|
watchUserId: [{ required: true, message: '监办人不能为空', trigger: 'change' }],
|
|
|
},
|
|
|
multiple: false,
|
|
|
@@ -237,6 +295,22 @@
|
|
|
this.getOptions()
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 提醒类型变更,提醒项配置
|
|
|
+ changeRemindType() {
|
|
|
+ let end = 0
|
|
|
+ this.remindDayoptions.splice(0, this.remindDayoptions.length)
|
|
|
+ this.remindDay.splice(0, this.remindDay.length, 1)
|
|
|
+ if (this.remindType == '月') {
|
|
|
+ end = 31
|
|
|
+ } else if (this.remindType == '周') {
|
|
|
+ end = 7
|
|
|
+ }
|
|
|
+ if (end > 0) {
|
|
|
+ for (let begin = 1; begin <= end; begin++) {
|
|
|
+ this.remindDayoptions.push({ value: begin, label: begin })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
getOptions() {
|
|
|
Promise.all([this.getDicts('plat_task_source')])
|
|
|
.then(([source]) => {
|
|
|
@@ -384,6 +458,15 @@
|
|
|
this.form.mainUserName = ''
|
|
|
this.form.watchUserName = ''
|
|
|
this.form.supervisorUserName = ''
|
|
|
+ this.form.copyUsers = ''
|
|
|
+ this.form.teamIds.splice(0, this.form.teamIds.length)
|
|
|
+ this.form.copyUserIds.splice(0, this.form.copyUserIds.length)
|
|
|
+ this.form.copyUserId = ''
|
|
|
+ // 提醒规则初始化
|
|
|
+ this.isRemind = true
|
|
|
+ this.remindTime = '00:00:00'
|
|
|
+ this.remindType = '天'
|
|
|
+ // 项目数据
|
|
|
},
|
|
|
// 关闭弹窗
|
|
|
close() {
|
|
|
@@ -397,16 +480,46 @@
|
|
|
save() {
|
|
|
this.$refs['form'].validate(async (valid) => {
|
|
|
if (valid) {
|
|
|
+ // 协作人数据
|
|
|
if (this.form.teamIds && this.form.teamIds.length > 0) {
|
|
|
this.form.ownerUserId = this.form.teamIds.join(',')
|
|
|
} else {
|
|
|
this.form.ownerUserId = ''
|
|
|
}
|
|
|
- // eslint-disable-next-line vue/no-mutating-props
|
|
|
- this.selfVisible = false
|
|
|
+ // 抄送人数据
|
|
|
+ if (this.form.copyUserIds && this.form.copyUserIds.length > 0) {
|
|
|
+ this.form.copyUserId = this.form.copyUserIds.join(',')
|
|
|
+ } else {
|
|
|
+ this.form.copyUserId = ''
|
|
|
+ }
|
|
|
if (this.form.targetId == '') {
|
|
|
this.form.targetId = 0
|
|
|
}
|
|
|
+ // 提醒规则
|
|
|
+ if (this.isRemind) {
|
|
|
+ // 提醒规则数据校验
|
|
|
+ if (!this.remindDay || this.remindDay.length == 0) {
|
|
|
+ this.$baseMessage('提醒规则不完善,不可保存', 'error', 'vab-hey-message-error')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 提醒规则数据校验
|
|
|
+ if (!this.remindTime) {
|
|
|
+ this.$baseMessage('提醒规则不完善,不可保存', 'error', 'vab-hey-message-error')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 提醒规则格式化 * * * */1-31/? 1-7 (第一个*为秒,第二个*为分,第三个*为时,第四位:*每天、数字每月几号、?每周,第五位:周几进行提醒)
|
|
|
+ this.form.reminderRule = this.remindTime.split(':').reverse().join(' ')
|
|
|
+ if (this.remindType == '天') {
|
|
|
+ this.form.reminderRule += ' * *'
|
|
|
+ } else if (this.remindType == '月') {
|
|
|
+ this.form.reminderRule += ' ' + this.remindDay.join(',') + ' *'
|
|
|
+ } else {
|
|
|
+ this.form.reminderRule += ' ? ' + this.remindDay.join(',')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.form.reminderRule = ''
|
|
|
+ }
|
|
|
+ this.selfVisible = false
|
|
|
const { msg } = await taskApi.createTask(this.form)
|
|
|
this.$baseMessage(msg, 'success', 'vab-hey-message-success')
|
|
|
if (this.doRefresh) {
|