任务模板
This commit is contained in:
parent
00b8687aec
commit
08df68d6c1
@ -14,6 +14,8 @@
|
|||||||
label-width="120px"
|
label-width="120px"
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item label="任务角色" prop="extend.task_role">
|
<el-form-item label="任务角色" prop="extend.task_role">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.extend.task_role"
|
v-model="formData.extend.task_role"
|
||||||
@ -31,11 +33,17 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="任务模板" prop="type">
|
||||||
|
<el-select v-model="taskTempId" clearable placeholder="请输入任务类型"
|
||||||
|
@change="changeTaskTypeFn">
|
||||||
|
<el-option v-for="item in taskTempList" :key="item.id" :value="item.id" :label="item.title" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="任务类型" prop="type">
|
<el-form-item label="任务类型" prop="type">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.type"
|
v-model="formData.type"
|
||||||
clearable
|
clearable
|
||||||
:disabled="mode != 'add'"
|
:disabled="true"
|
||||||
placeholder="请选择任务类型"
|
placeholder="请选择任务类型"
|
||||||
@change="changeTaskType"
|
@change="changeTaskType"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@ -53,7 +61,7 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="formData.types"
|
v-model="formData.types"
|
||||||
clearable
|
clearable
|
||||||
:disabled="mode != 'add'"
|
:disabled="true"
|
||||||
placeholder="请选择阶段类型"
|
placeholder="请选择阶段类型"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
@ -106,6 +114,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.extend.target"
|
v-model="formData.extend.target"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入目标数"
|
placeholder="请输入目标数"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -115,6 +124,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.stage_day_one"
|
v-model="formData.stage_day_one"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入天数"
|
placeholder="请输入天数"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -125,6 +135,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.money"
|
v-model="formData.money"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入金额"
|
placeholder="请输入金额"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -138,6 +149,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.stage_day_two"
|
v-model="formData.stage_day_two"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入天数"
|
placeholder="请输入天数"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -151,6 +163,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.money_two"
|
v-model="formData.money_two"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入金额"
|
placeholder="请输入金额"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -164,6 +177,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.stage_day_three"
|
v-model="formData.stage_day_three"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入天数"
|
placeholder="请输入天数"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -177,6 +191,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.new_money_three"
|
v-model="formData.new_money_three"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入金额"
|
placeholder="请输入金额"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -187,6 +202,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.money_three"
|
v-model="formData.money_three"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入金额"
|
placeholder="请输入金额"
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
@ -203,6 +219,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="formData.content"
|
v-model="formData.content"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="true"
|
||||||
placeholder="请输入任务描述"
|
placeholder="请输入任务描述"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
@ -245,6 +262,8 @@ import type { PropType } from "vue";
|
|||||||
import { dictDataLists } from "@/api/setting/dict";
|
import { dictDataLists } from "@/api/setting/dict";
|
||||||
import taskMap from "./map.vue";
|
import taskMap from "./map.vue";
|
||||||
import personnelPopup from "./dialog_index_personnel.vue";
|
import personnelPopup from "./dialog_index_personnel.vue";
|
||||||
|
import { apiSelectList, apiCreatetaskTypeInfo } from '@/api/create_task_template'
|
||||||
|
|
||||||
import dialogCommodity from "./dialog_commodity.vue";
|
import dialogCommodity from "./dialog_commodity.vue";
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -403,7 +422,37 @@ const customEventCommodity = (e: any) => {
|
|||||||
const commodityClose = () => {
|
const commodityClose = () => {
|
||||||
showDialogCommodity.value = false;
|
showDialogCommodity.value = false;
|
||||||
};
|
};
|
||||||
|
// 任务模板
|
||||||
|
const taskTempList = reactive([])
|
||||||
|
const taskTempId = ref('')
|
||||||
|
|
||||||
|
|
||||||
|
const getTaskTempFn = (role) => {
|
||||||
|
apiSelectList(
|
||||||
|
{
|
||||||
|
task_role_id: role
|
||||||
|
}
|
||||||
|
).then(res => {
|
||||||
|
res.forEach(item => {
|
||||||
|
taskTempList.push(item)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const changeTaskTypeFn = () => {
|
||||||
|
let i
|
||||||
|
taskTempList.forEach((item, index) => {
|
||||||
|
if (item.id == taskTempId.value) {
|
||||||
|
i = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setFormData(taskTempList[i])
|
||||||
|
formData.type = Number(formData.type)
|
||||||
|
|
||||||
|
console.log(formData)
|
||||||
|
// console.log(taskTempId.value)
|
||||||
|
}
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
title: [
|
title: [
|
||||||
@ -529,6 +578,10 @@ const changeTaskType = async (e: any) => {
|
|||||||
|
|
||||||
// 选择任务角色
|
// 选择任务角色
|
||||||
const changeTaskRole = async (e: any) => {
|
const changeTaskRole = async (e: any) => {
|
||||||
|
|
||||||
|
|
||||||
|
getTaskTempFn(e)
|
||||||
|
|
||||||
// 负责人
|
// 负责人
|
||||||
if (e == 1) {
|
if (e == 1) {
|
||||||
taskType.value = "town_task_type_master";
|
taskType.value = "town_task_type_master";
|
||||||
|
@ -1,19 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
|
||||||
ref="popupRef"
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
:title="popupTitle"
|
|
||||||
:async="true"
|
|
||||||
width="550px"
|
|
||||||
@confirm="handleSubmit"
|
|
||||||
@close="handleClose"
|
|
||||||
>
|
|
||||||
<el-form
|
|
||||||
ref="formRef"
|
|
||||||
:model="formData"
|
|
||||||
label-width="120px"
|
|
||||||
:rules="formRules"
|
|
||||||
>
|
|
||||||
<!-- <el-form-item label="任务角色" prop="extend.task_role">
|
<!-- <el-form-item label="任务角色" prop="extend.task_role">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.extend.task_role"
|
v-model="formData.extend.task_role"
|
||||||
@ -31,133 +19,70 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
|
<el-form-item label="任务模板" prop="type">
|
||||||
|
<el-select v-model="taskTempId" clearable :disabled="mode != 'add'" placeholder="请输入任务类型"
|
||||||
|
@change="changeTaskTypeFn">
|
||||||
|
<el-option v-for="item in taskTempList" :key="item.id" :value="item.id" :label="item.title" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="任务类型" prop="type">
|
<el-form-item label="任务类型" prop="type">
|
||||||
<el-select
|
<el-select v-model="formData.type" clearable :disabled="true" placeholder="请选择任务类型"
|
||||||
v-model="formData.type"
|
@change="changeTaskType" style="width: 100%">
|
||||||
clearable
|
<el-option v-for="item in datalist" :key="item.label" :value="item.id" :label="item.name" />
|
||||||
:disabled="mode != 'add'"
|
|
||||||
placeholder="请选择任务类型"
|
|
||||||
@change="changeTaskType"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in datalist"
|
|
||||||
:key="item.label"
|
|
||||||
:value="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="阶段类型" prop="types">
|
<el-form-item label="阶段类型" prop="types">
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
<el-select
|
<el-select v-model="formData.types" clearable :disabled="true" placeholder="请选择阶段类型"
|
||||||
v-model="formData.types"
|
style="width: 100%">
|
||||||
clearable
|
<el-option v-for="item in [
|
||||||
:disabled="mode != 'add'"
|
{ label: 1, name: '循环' },
|
||||||
placeholder="请选择阶段类型"
|
{ label: 2, name: '长期' },
|
||||||
style="width: 100%"
|
{ label: 3, name: '单次' },
|
||||||
>
|
]" :key="item.label" :value="item.label" :label="item.name" />
|
||||||
<el-option
|
|
||||||
v-for="item in [
|
|
||||||
{ label: 1, name: '循环' },
|
|
||||||
{ label: 2, name: '长期' },
|
|
||||||
{ label: 3, name: '单次' },
|
|
||||||
]"
|
|
||||||
:key="item.label"
|
|
||||||
:value="item.label"
|
|
||||||
:label="item.name"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
<div
|
<div v-if="formData.types == 3" style="color: #e6a23c; font-size: 12px">
|
||||||
v-if="formData.types == 3"
|
|
||||||
style="color: #e6a23c; font-size: 12px"
|
|
||||||
>
|
|
||||||
提示 : 单次任务不会每日结算,而是按阶段合计天数结算
|
提示 : 单次任务不会每日结算,而是按阶段合计天数结算
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="showTarget" label="目标数" prop="extend.target">
|
<el-form-item v-if="showTarget" label="目标数" prop="extend.target">
|
||||||
<el-input
|
<el-input v-model="formData.extend.target" clearable placeholder="请输入目标数" :disabled="true" type="number">
|
||||||
v-model="formData.extend.target"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入目标数"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="一阶段天数">
|
<el-form-item label="一阶段天数">
|
||||||
<el-input
|
<el-input v-model="formData.stage_day_one" clearable placeholder="请输入天数" :disabled="true" type="number">
|
||||||
v-model="formData.stage_day_one"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入天数"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>天</template>
|
<template #append>天</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="一阶段金额">
|
<el-form-item label="一阶段金额">
|
||||||
<el-input
|
<el-input v-model="formData.money" clearable placeholder="请输入金额" :disabled="true" type="number">
|
||||||
v-model="formData.money"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入金额"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>元</template>
|
<template #append>元</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item v-if="showTow && formData.type_value != 'town_task_type_5'" label="二阶段天数">
|
||||||
v-if="showTow && formData.type_value != 'town_task_type_5'"
|
<el-input v-model="formData.stage_day_two" clearable placeholder="请输入天数" :disabled="true" type="number">
|
||||||
label="二阶段天数"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="formData.stage_day_two"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入天数"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>天</template>
|
<template #append>天</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item v-if="showTow && formData.type_value != 'town_task_type_5'" label="二阶段金额">
|
||||||
v-if="showTow && formData.type_value != 'town_task_type_5'"
|
<el-input v-model="formData.money_two" clearable placeholder="请输入金额" :disabled="true" type="number">
|
||||||
label="二阶段金额"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="formData.money_two"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入金额"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>元</template>
|
<template #append>元</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="showThree" label="三阶段天数">
|
<el-form-item v-if="showThree" label="三阶段天数">
|
||||||
<el-input
|
<el-input v-model="formData.stage_day_three" clearable placeholder="请输入天数" :disabled="true" type="number">
|
||||||
v-model="formData.stage_day_three"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入天数"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>天</template>
|
<template #append>天</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="showThree" label="三阶段金额">
|
<el-form-item v-if="showThree" label="三阶段金额">
|
||||||
<el-input
|
<el-input v-model="formData.new_money_three" clearable placeholder="请输入金额" :disabled="true" type="number">
|
||||||
v-model="formData.new_money_three"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入金额"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>元</template>
|
<template #append>元</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="长期金额" v-if="+formData.types == 2">
|
<el-form-item label="长期金额" v-if="+formData.types == 2">
|
||||||
<el-input
|
<el-input v-model="formData.money_three" clearable placeholder="请输入金额" :disabled="true" type="number">
|
||||||
v-model="formData.money_three"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入金额"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
<template #append>元</template>
|
<template #append>元</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -168,31 +93,17 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务描述" prop="content">
|
<el-form-item label="任务描述" prop="content">
|
||||||
<el-input
|
<el-input v-model="formData.content" clearable placeholder="请输入任务描述" :disabled="true" type="textarea" autosize />
|
||||||
v-model="formData.content"
|
|
||||||
clearable
|
|
||||||
placeholder="请输入任务描述"
|
|
||||||
type="textarea"
|
|
||||||
autosize
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog
|
<el-dialog v-model="personnelShow" ref="personnelRef" title="选择负责人" width="60%">
|
||||||
v-model="personnelShow"
|
<personnelPopup @custom-event="changePersonner" :company_id="formData.company_id"></personnelPopup>
|
||||||
ref="personnelRef"
|
|
||||||
title="选择负责人"
|
|
||||||
width="60%"
|
|
||||||
>
|
|
||||||
<personnelPopup
|
|
||||||
@custom-event="changePersonner"
|
|
||||||
:company_id="formData.company_id"
|
|
||||||
></personnelPopup>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="taskTemplateEdit">
|
<script lang="ts" setup name="taskTemplateEdit">
|
||||||
import type { FormInstance } from "element-plus";
|
import type { FormInstance } from "element-plus";
|
||||||
import Popup from "@/components/popup/index.vue";
|
import Popup from "@/components/popup/index.vue";
|
||||||
import {
|
import {
|
||||||
@ -206,6 +117,8 @@ import type { PropType } from "vue";
|
|||||||
import { dictDataLists } from "@/api/setting/dict";
|
import { dictDataLists } from "@/api/setting/dict";
|
||||||
import taskMap from "./map.vue";
|
import taskMap from "./map.vue";
|
||||||
import personnelPopup from "./dialog_index_personnel.vue";
|
import personnelPopup from "./dialog_index_personnel.vue";
|
||||||
|
import { apiSelectList, apiCreatetaskTypeInfo } from '@/api/create_task_template'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -297,6 +210,38 @@ const showThree = computed(() => {
|
|||||||
return flag;
|
return flag;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 任务模板
|
||||||
|
const taskTempList = reactive([])
|
||||||
|
const taskTempId = ref('')
|
||||||
|
|
||||||
|
|
||||||
|
const getTaskTempFn = () => {
|
||||||
|
apiSelectList(
|
||||||
|
{
|
||||||
|
task_role_id: 4
|
||||||
|
}
|
||||||
|
).then(res => {
|
||||||
|
res.forEach(item => {
|
||||||
|
taskTempList.push(item)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const changeTaskTypeFn = () => {
|
||||||
|
let i
|
||||||
|
taskTempList.forEach((item, index) => {
|
||||||
|
if (item.id == taskTempId.value) {
|
||||||
|
i = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setFormData(taskTempList[i])
|
||||||
|
formData.type = String(formData.type)
|
||||||
|
|
||||||
|
console.log(formData)
|
||||||
|
// console.log(taskTempId.value)
|
||||||
|
}
|
||||||
|
getTaskTempFn()
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
title: [
|
title: [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user