|
@@ -1,5 +1,5 @@
|
|
<template>
|
|
<template>
|
|
- <el-dialog v-model="modalVisible" width="800px" :show-close="false" :close-on-click-modal="false" top="10vh">
|
|
|
|
|
|
+ <el-dialog v-model="props.visible" width="800px" :show-close="false" :close-on-click-modal="false" top="10vh">
|
|
<template #header="{ titleId, titleClass }">
|
|
<template #header="{ titleId, titleClass }">
|
|
<div class="flex justify-between items-center border-b pb-3">
|
|
<div class="flex justify-between items-center border-b pb-3">
|
|
<h4 :id="titleId" :class="titleClass">{{ editForm ? '编辑任务' : '新增任务' }}</h4>
|
|
<h4 :id="titleId" :class="titleClass">{{ editForm ? '编辑任务' : '新增任务' }}</h4>
|
|
@@ -12,13 +12,13 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
- <div class="h-[55vh] overflow-y-auto scroll-bar">
|
|
|
|
- <el-form ref="formRef" :model="form" label-width="100px" :rules="rules" class="flex flex-wrap form">
|
|
|
|
- <el-form-item label="任务名称" prop="taskName" required>
|
|
|
|
|
|
+ <div class="h-[55vh] overflow-y-auto scroll-bar mt-5">
|
|
|
|
+ <el-form ref="formRef" :model="form" label-width="7em" :rules="rules" class="flex flex-wrap form">
|
|
|
|
+ <el-form-item label="任务名称:" prop="taskName" required>
|
|
<el-input v-model="form.taskName" type="textarea" placeholder="请输入任务名称" clearable maxlength="100"
|
|
<el-input v-model="form.taskName" type="textarea" placeholder="请输入任务名称" clearable maxlength="100"
|
|
show-word-limit />
|
|
show-word-limit />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item prop="priority" label="优先级" required>
|
|
|
|
|
|
+ <el-form-item prop="priority" label="优先级:" required>
|
|
<el-select v-model="form.priority" placeholder="请选择" clearable>
|
|
<el-select v-model="form.priority" placeholder="请选择" clearable>
|
|
<el-option v-for="item in PRIORITY " :key="item.value" :value="item.value" :label="item.label" />
|
|
<el-option v-for="item in PRIORITY " :key="item.value" :value="item.value" :label="item.label" />
|
|
</el-select>
|
|
</el-select>
|
|
@@ -36,30 +36,30 @@
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="联系人" v-if="TASK_TYPE.find(v => v.value === (form.taskType || '1'))?.show">
|
|
|
|
|
|
+ <el-form-item label="联系人:" v-if="TASK_TYPE.find(v => v.value === (form.taskType || '1'))?.show">
|
|
<el-select v-model="form.contactsId" placeholder="请选择" clearable filterable>
|
|
<el-select v-model="form.contactsId" placeholder="请选择" clearable filterable>
|
|
<el-option v-for="item in contactValueData" :key="item.value" :value="item.value" :label="item.label" />
|
|
<el-option v-for="item in contactValueData" :key="item.value" :value="item.value" :label="item.label" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="执行人">
|
|
|
|
|
|
+ <el-form-item label="执行人:">
|
|
<el-select v-model="form.executorId" placeholder="请选择" clearable multiple filterable>
|
|
<el-select v-model="form.executorId" placeholder="请选择" clearable multiple filterable>
|
|
<el-option v-for="item in executorValueData" :key="item.value" :value="item.value" :label="item.label" />
|
|
<el-option v-for="item in executorValueData" :key="item.value" :value="item.value" :label="item.label" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="重复提醒">
|
|
|
|
- <el-switch v-model="form.repeat" active-value="1" inactive-value="0" @change="changeRepeat" />
|
|
|
|
|
|
+ <el-form-item label="重复提醒:">
|
|
|
|
+ <el-switch v-model="form.repeat" :active-value="1" :inactive-value="0" @change="changeRepeat" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <template v-if="form.repeat === '1'">
|
|
|
|
- <el-form-item label="重复类型" label-width="7em">
|
|
|
|
|
|
+ <template v-if="form.repeat === 1">
|
|
|
|
+ <el-form-item label="重复类型:">
|
|
<el-select v-model="form.repeatType" placeholder="请选择" @change="changeRepeatType">
|
|
<el-select v-model="form.repeatType" placeholder="请选择" @change="changeRepeatType">
|
|
<el-option v-for="item in REPEAT_TYPE" :key="item.value" :value="item.value" :label="item.label" />
|
|
<el-option v-for="item in REPEAT_TYPE" :key="item.value" :value="item.value" :label="item.label" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <template v-if="['0', '1', '2', '3'].includes(form.repeatType)">
|
|
|
|
- <el-form-item label="每" label-width="7em" v-if="form.repeatType == 3">
|
|
|
|
|
|
+ <template v-if="[0,1,2,3].includes(form.repeatType)">
|
|
|
|
+ <el-form-item label="每:" v-if="form.repeatType == 3">
|
|
<el-input-number v-model="form.repeatDesignSameday" controls-position="right" :min="1" />天
|
|
<el-input-number v-model="form.repeatDesignSameday" controls-position="right" :min="1" />天
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="结束" label-width="7em">
|
|
|
|
|
|
+ <el-form-item label="结束:">
|
|
<el-radio-group v-model="form.endType" @change="changeEndType">
|
|
<el-radio-group v-model="form.endType" @change="changeEndType">
|
|
<el-radio label="1" class="w-full">永不</el-radio>
|
|
<el-radio label="1" class="w-full">永不</el-radio>
|
|
<el-radio label="2" class="w-full mb-3"><el-input-number v-model="form.repeatEndCount" :min="1"
|
|
<el-radio label="2" class="w-full mb-3"><el-input-number v-model="form.repeatEndCount" :min="1"
|
|
@@ -74,7 +74,7 @@
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</template>
|
|
</template>
|
|
- <template v-if="['4'].includes(form.repeatType)">
|
|
|
|
|
|
+ <template v-if="[4].includes(form.repeatType)">
|
|
<el-form-item v-for="(v, i) in customeDate" class="flex justify-between items-center customeDate">
|
|
<el-form-item v-for="(v, i) in customeDate" class="flex justify-between items-center customeDate">
|
|
<div>
|
|
<div>
|
|
第{{ i + 1 }}次重复在
|
|
第{{ i + 1 }}次重复在
|
|
@@ -97,10 +97,10 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
- <el-form-item label="开始时间" label-width="7em" class="w50">
|
|
|
|
|
|
+ <el-form-item label="开始时间:" class="w50">
|
|
<el-date-picker v-model="form.startDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" />
|
|
<el-date-picker v-model="form.startDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="截止时间" label-width="7em" class="w50">
|
|
|
|
|
|
+ <el-form-item label="截止时间:" class="w50">
|
|
<el-date-picker v-model="form.endDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" />
|
|
<el-date-picker v-model="form.endDate" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -109,7 +109,7 @@
|
|
<el-form-item label="操作记录" label-width="7em">
|
|
<el-form-item label="操作记录" label-width="7em">
|
|
<div class="w-full">
|
|
<div class="w-full">
|
|
<div v-for="item in form.taskLogs" class=" border-b-2 w-full pl-3">
|
|
<div v-for="item in form.taskLogs" class=" border-b-2 w-full pl-3">
|
|
- {{ `${item.operateTime} ${item.operateUser} ${item.operateDesc}` }}
|
|
|
|
|
|
+ {{ `${item.modTime} ${item.userName} ${item.content}` }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -126,7 +126,7 @@ import { get } from '@/utils/request';
|
|
import { Delete, Plus } from "@element-plus/icons-vue"
|
|
import { Delete, Plus } from "@element-plus/icons-vue"
|
|
import { FormInstance } from 'element-plus';
|
|
import { FormInstance } from 'element-plus';
|
|
import { getFromValue } from '@/utils/tools';
|
|
import { getFromValue } from '@/utils/tools';
|
|
-import { Props, Emits, TASK_VALUE_TYPE, REPEAT_VALUE_TYPE, } from './type';
|
|
|
|
|
|
+import { Props, Emits } from './type';
|
|
const props = defineProps<Props>()
|
|
const props = defineProps<Props>()
|
|
const emits = defineEmits<Emits>();
|
|
const emits = defineEmits<Emits>();
|
|
watch(() => props.saveLoading, (val) => {
|
|
watch(() => props.saveLoading, (val) => {
|
|
@@ -137,7 +137,6 @@ watch(() => props.saveLoading, (val) => {
|
|
})
|
|
})
|
|
watch(() => props.visible, (val) => {
|
|
watch(() => props.visible, (val) => {
|
|
formRef.value?.resetFields();
|
|
formRef.value?.resetFields();
|
|
- modalVisible.value = val
|
|
|
|
if (val) {
|
|
if (val) {
|
|
get(CUSTOMER_FORM_URL).then(res => {
|
|
get(CUSTOMER_FORM_URL).then(res => {
|
|
if (Array.isArray(res.data) && res.data.length > 0) {
|
|
if (Array.isArray(res.data) && res.data.length > 0) {
|
|
@@ -150,17 +149,18 @@ watch(() => props.editForm, (val) => {
|
|
if (!val) {
|
|
if (!val) {
|
|
//TODO 如果是新增
|
|
//TODO 如果是新增
|
|
form.value = { ...defalutModalForm };
|
|
form.value = { ...defalutModalForm };
|
|
- taskTypeValueData.value = [{ label: '客户1', value: '1' }, { label: '客户2', value: '2' }];
|
|
|
|
- contactValueData.value = [{ label: '联系人1', value: '1' }, { label: '联系人2', value: '2' }];
|
|
|
|
- executorValueData.value = [{ label: '执行人1', value: '1' }, { label: '执行人2', value: '2' }];
|
|
|
|
|
|
+ taskTypeValueData.value = [{ label: '客户1', value: 1 }, { label: '客户2', value: 2 }];
|
|
|
|
+ contactValueData.value = [{ label: '联系人1', value: 1 }, { label: '联系人2', value: 2 }];
|
|
|
|
+ executorValueData.value = [{ label: '执行人1', value: 1 }, { label: '执行人2', value: 2 }];
|
|
return
|
|
return
|
|
}
|
|
}
|
|
//TODO 如果是编辑
|
|
//TODO 如果是编辑
|
|
form.value = { ...val };
|
|
form.value = { ...val };
|
|
- customeDate.value = (form.value.repeatDesignSameday || "").split(',').filter(Boolean);
|
|
|
|
|
|
+ customeDate.value = (form.value.repeatDesignDay || "").split(',').filter(Boolean);
|
|
|
|
+ console.log("customeDate.value ", customeDate.value, form.value.repeatDesignDay);
|
|
changeTaskType(form.value.taskType)
|
|
changeTaskType(form.value.taskType)
|
|
- contactValueData.value = [{ label: '联系人1', value: '1' }, { label: '联系人2', value: '2' }];
|
|
|
|
- executorValueData.value = [{ label: '执行人1', value: '1' }, { label: '执行人2', value: '2' }];
|
|
|
|
|
|
+ contactValueData.value = [{ label: '联系人1', value: 1 }, { label: '联系人2', value: 2 }];
|
|
|
|
+ executorValueData.value = [{ label: '执行人1', value: 1 }, { label: '执行人2', value: 2 }];
|
|
|
|
|
|
})
|
|
})
|
|
const rules = ref({
|
|
const rules = ref({
|
|
@@ -175,7 +175,6 @@ const form = ref<any>({});
|
|
const formRef = ref<FormInstance>();
|
|
const formRef = ref<FormInstance>();
|
|
const generateFormRef = ref<InstanceType<typeof GenerateForm>>();
|
|
const generateFormRef = ref<InstanceType<typeof GenerateForm>>();
|
|
const generateFormData = ref<any>(defaultGenerateFormData);
|
|
const generateFormData = ref<any>(defaultGenerateFormData);
|
|
-const modalVisible = ref(false);
|
|
|
|
function closeVisible() {
|
|
function closeVisible() {
|
|
generateFormData.value = defaultGenerateFormData;
|
|
generateFormData.value = defaultGenerateFormData;
|
|
emits('close')
|
|
emits('close')
|
|
@@ -212,28 +211,28 @@ function changeTaskType(value: TASK_VALUE_TYPE) {
|
|
contactsId: null, //联系人id
|
|
contactsId: null, //联系人id
|
|
}
|
|
}
|
|
switch (value) {
|
|
switch (value) {
|
|
- case "0":
|
|
|
|
|
|
+ case 0:
|
|
taskTypeValueData.value = [];
|
|
taskTypeValueData.value = [];
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
- taskTypeValueData.value = [{ label: '客户1', value: '1' }, { label: '客户2', value: '2' }];
|
|
|
|
|
|
+ taskTypeValueData.value = [{ label: '客户1', value: 1 }, { label: '客户2', value: 2 }];
|
|
}, 500)
|
|
}, 500)
|
|
break;
|
|
break;
|
|
- case '1':
|
|
|
|
|
|
+ case 1:
|
|
taskTypeValueData.value = [];
|
|
taskTypeValueData.value = [];
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
- taskTypeValueData.value = [{ label: "商机1", value: "1" }, { label: "商机2", value: "2" }]
|
|
|
|
|
|
+ taskTypeValueData.value = [{ label: "商机1", value: 1 }, { label: "商机2", value: 2 }]
|
|
}, 500)
|
|
}, 500)
|
|
break;
|
|
break;
|
|
- case '2':
|
|
|
|
|
|
+ case 2:
|
|
taskTypeValueData.value = [];
|
|
taskTypeValueData.value = [];
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
- taskTypeValueData.value = [{ label: "订单1", value: "1" }, { label: "订单2", value: "2" }]
|
|
|
|
|
|
+ taskTypeValueData.value = [{ label: "订单1", value: 1 }, { label: "订单2", value: 2 }]
|
|
}, 500)
|
|
}, 500)
|
|
break;
|
|
break;
|
|
- case '3':
|
|
|
|
|
|
+ case 3:
|
|
taskTypeValueData.value = [];
|
|
taskTypeValueData.value = [];
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
- taskTypeValueData.value = [{ label: "线索1", value: "1" }, { label: "线索2", value: "2" }]
|
|
|
|
|
|
+ taskTypeValueData.value = [{ label: "线索1", value: 1 }, { label: "线索2", value: 2}]
|
|
}, 500)
|
|
}, 500)
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
@@ -250,9 +249,9 @@ function changeRepeat(value: string | number | boolean) {
|
|
form.value = {
|
|
form.value = {
|
|
...form.value,
|
|
...form.value,
|
|
repeat: value,
|
|
repeat: value,
|
|
- repeatType: "0", //重复类型
|
|
|
|
- endType: "1", //结束类型
|
|
|
|
- repeatEndNever: "1",
|
|
|
|
|
|
+ repeatType: 0, //重复类型
|
|
|
|
+ endType: 1, //结束类型
|
|
|
|
+ repeatEndNever: 1,
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatDesignDay: null, //自定义日期
|
|
repeatDesignDay: null, //自定义日期
|
|
@@ -265,8 +264,8 @@ function changeRepeatType(value: REPEAT_VALUE_TYPE) {
|
|
form.value = {
|
|
form.value = {
|
|
...form.value,
|
|
...form.value,
|
|
repeatType: value, //重复类型
|
|
repeatType: value, //重复类型
|
|
- endType: "1", //结束类型
|
|
|
|
- repeatEndNever: "1",
|
|
|
|
|
|
+ endType: 1, //结束类型
|
|
|
|
+ repeatEndNever: 1,
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatDesignDay: null, //自定义日期
|
|
repeatDesignDay: null, //自定义日期
|
|
@@ -279,7 +278,7 @@ function changeEndType(value: string | number | boolean) {
|
|
form.value = {
|
|
form.value = {
|
|
...form.value,
|
|
...form.value,
|
|
endType: value, //重复类型
|
|
endType: value, //重复类型
|
|
- repeatEndNever: value == "1" ? "1" : null,//永不结束
|
|
|
|
|
|
+ repeatEndNever: value == 1 ? 1 : null,//永不结束
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndCount: null, //重复指定次数次数后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatEndDate: null, //重复到指定日期后结束
|
|
repeatDesignDay: null, //自定义日期
|
|
repeatDesignDay: null, //自定义日期
|