|
@@ -2,14 +2,12 @@
|
|
|
<HcCard>
|
|
|
<template #header>
|
|
|
<div class="w-36">
|
|
|
- <el-select v-model="searchForm.department" block clearable placeholder="选择部门" size="large">
|
|
|
- <el-option label="研发部门" value="1"/>
|
|
|
- <el-option label="业务部门" value="2"/>
|
|
|
- <el-option label="人事部门" value="3"/>
|
|
|
+ <el-select v-model="searchForm.deptId" block clearable placeholder="选择部门" size="large">
|
|
|
+ <el-option v-for="item in department" :label="item.deptName" :value="item.id"/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="w-36 ml-2">
|
|
|
- <el-select v-model="searchForm.state" block clearable placeholder="选择计划状态" size="large">
|
|
|
+ <el-select v-model="searchForm.taskStatus" block clearable placeholder="选择计划状态" size="large">
|
|
|
<el-option label="未完成" value="1"/>
|
|
|
<el-option label="已完成" value="2"/>
|
|
|
<el-option label="逾期完成" value="3"/>
|
|
@@ -57,21 +55,21 @@
|
|
|
<div class="hac-dialog-form">
|
|
|
<HcCardItem scrollbar>
|
|
|
<el-form ref="formRef" :model="formModel" :rules="formRules" label-width="">
|
|
|
- <el-form-item label="变更类别:" prop="type" size="large">
|
|
|
- <el-radio-group v-model="formModel.type" size="large">
|
|
|
+ <el-form-item label="变更类别:" prop="updateType" size="large">
|
|
|
+ <el-radio-group v-model="formModel.updateType" size="large">
|
|
|
<el-radio label="1">已完成</el-radio>
|
|
|
<el-radio label="2" class="ml-8">任务转移</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="完成时间:" prop="finish_time" class="w-72" v-if="formModel.type === '1'">
|
|
|
- <el-date-picker class="block" v-model="formModel.finish_time" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
|
+ <el-form-item label="完成时间:" prop="completionTime" class="w-72" v-if="formModel.updateType === '1'">
|
|
|
+ <el-date-picker class="block" v-model="formModel.completionTime" format="YYYY-MM-DD HH:mm:ss" type="date" value-format="YYYY-MM-DD HH:mm:ss"/>
|
|
|
</el-form-item>
|
|
|
- <template v-if="formModel.type === '2'">
|
|
|
+ <template v-if="formModel.updateType === '2'">
|
|
|
<el-form-item label="转移时间:" prop="transfer" class="w-72">
|
|
|
- <el-date-picker class="block" v-model="formModel.transfer" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
|
+ <el-date-picker class="block" v-model="formModel.completionTime" format="YYYY-MM-DD HH:mm:ss" type="date" value-format="YYYY-MM-DD HH:mm:ss"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="转移对象:" prop="type" size="large">
|
|
|
- <el-select class="block" v-model="formModel.user" multiple filterable allow-create default-first-option :reserve-keyword="false">
|
|
|
+ <el-select class="block" v-model="formModel.transferObject" multiple filterable allow-create default-first-option :reserve-keyword="false">
|
|
|
<el-option label="张三" value="1"/>
|
|
|
<el-option label="李四" value="2"/>
|
|
|
<el-option label="王五" value="3"/>
|
|
@@ -79,7 +77,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="转移原因:" prop="textContent">
|
|
|
- <el-input v-model="formModel.textContent" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
|
|
|
+ <el-input v-model="formModel.transferReason" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-form>
|
|
@@ -94,15 +92,28 @@
|
|
|
<script setup>
|
|
|
import {ref, nextTick, watch,onMounted,onActivated} from "vue";
|
|
|
import {useRouter} from 'vue-router'
|
|
|
-import {getArrValue} from "js-fast-way"
|
|
|
+import {getArrValue,getObjValue,formValidate,arrToId} from "js-fast-way"
|
|
|
import planApi from '~api/task/plan.js';
|
|
|
+import { getdepartmentList} from "~api/other";
|
|
|
|
|
|
const router = useRouter()
|
|
|
onActivated(()=>{
|
|
|
getTableData()
|
|
|
+ getDepartmentDict()
|
|
|
|
|
|
})
|
|
|
+const department=ref([])
|
|
|
+//获取部门列表
|
|
|
+const getDepartmentDict=async()=>{
|
|
|
+ const {error, code, data} = await getdepartmentList({deptType:2})
|
|
|
+ if (!error && code === 200) {
|
|
|
+ department.value = getArrValue(data)
|
|
|
+
|
|
|
+ } else {
|
|
|
+ department.value = []
|
|
|
|
|
|
+ }
|
|
|
+}
|
|
|
//参数
|
|
|
const props = defineProps({
|
|
|
tableKey: {
|
|
@@ -162,11 +173,7 @@ const tableColumn = ref([
|
|
|
{key: 'startAndEndDate', name: '计划起止日期', width: '220', align: 'center'},
|
|
|
{key: 'taskUserName', name: '任务人', width: '120', align: 'center'},
|
|
|
])
|
|
|
-const tableData = ref([
|
|
|
- {id: 1, name: 'xxxxx', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
- {id: 2, name: 'xxxxx', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
- {id: 3, name: 'xxxxx', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
-])
|
|
|
+const tableData = ref([])
|
|
|
const getTableData = async() => {
|
|
|
//const key = isTableKey.value
|
|
|
tableLoading.value = true
|
|
@@ -195,15 +202,16 @@ const changeStateModal = ref(false)
|
|
|
const showChangeState = () => {
|
|
|
changeStateLoading.value = false
|
|
|
changeStateModal.value = true
|
|
|
+ tableStateData.value=tableRows.value
|
|
|
}
|
|
|
|
|
|
|
|
|
//变更任务状态表格
|
|
|
const tableStateLoading = ref(false)
|
|
|
const tableStateColumn = [
|
|
|
- {key: 'key1', name: '任务名称'},
|
|
|
- {key: 'key2', name: '任务描述'},
|
|
|
- {key: 'key3', name: '状态', width: '120', align: 'center'},
|
|
|
+ {key: 'planName', name: '任务名称'},
|
|
|
+ {key: 'taskDesc', name: '任务描述'},
|
|
|
+ {key: 'statusName', name: '状态', width: '120', align: 'center'},
|
|
|
]
|
|
|
const tableStateData = ref([
|
|
|
{id: 1, key1: 'xxxxxxxxx', key2: 'xxxxxxxxx', key3: '未完成'},
|
|
@@ -217,13 +225,13 @@ const tableStateData = ref([
|
|
|
//任务操作数据
|
|
|
const formRef = ref(null)
|
|
|
const formModel = ref({
|
|
|
- type: '1',
|
|
|
+ updateType: '1',
|
|
|
})
|
|
|
const formRules = {
|
|
|
- title: {
|
|
|
+ updateType: {
|
|
|
required: true,
|
|
|
trigger: 'blur',
|
|
|
- message: "请输入节点名称"
|
|
|
+ message: "请选择变更类别"
|
|
|
},
|
|
|
}
|
|
|
|
|
@@ -235,7 +243,21 @@ const closeChangeStateClick = () => {
|
|
|
}
|
|
|
|
|
|
//提交变更状态弹窗
|
|
|
-const saveChangeStateClick = () => {
|
|
|
+
|
|
|
+const saveChangeStateClick = async() => {
|
|
|
+ console.log(formModel.value,'formModel');
|
|
|
+ const res = await formValidate(formRef.value)
|
|
|
+ const ids = arrToId(tableRows.value, 'id')
|
|
|
+ formModel.value.taskIds=ids
|
|
|
+ if(res){
|
|
|
+ changeStateLoading.value=true
|
|
|
+ const {error, code, data,msg} = await planApi.submit( formModel.value)
|
|
|
+ changeStateLoading.value=false
|
|
|
+ if (!error && code === 200) {
|
|
|
+ window.$message.success(msg)
|
|
|
+ getTableData()
|
|
|
+ }
|
|
|
+ }
|
|
|
changeStateLoading.value = false
|
|
|
changeStateModal.value = false
|
|
|
}
|