|
@@ -37,14 +37,6 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<template #extra>
|
|
<template #extra>
|
|
- <el-button size="large" type="danger" hc-btn v-if="isTableKey === 'links'">
|
|
|
|
- <HcIcon name="close-circle"/>
|
|
|
|
- <span>取消关联</span>
|
|
|
|
- </el-button>
|
|
|
|
- <el-button size="large" type="success" hc-btn @click="relevanceClick">
|
|
|
|
- <HcIcon name="link" :line="false"/>
|
|
|
|
- <span>关联任务</span>
|
|
|
|
- </el-button>
|
|
|
|
<el-button size="large" :type="isTableKey === 'user'?'primary':'info'" :disabled="isTableKey !== 'user'" hc-btn @click="showChangeState">
|
|
<el-button size="large" :type="isTableKey === 'user'?'primary':'info'" :disabled="isTableKey !== 'user'" hc-btn @click="showChangeState">
|
|
<HcIcon name="edit-circle"/>
|
|
<HcIcon name="edit-circle"/>
|
|
<span>变更状态</span>
|
|
<span>变更状态</span>
|
|
@@ -55,74 +47,6 @@
|
|
<HcPages :pages="searchForm" @change="pageChange"/>
|
|
<HcPages :pages="searchForm" @change="pageChange"/>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
- <!--关联任务-->
|
|
|
|
- <HcDialog bgColor="#ffffff" isToBody isTable isRowFooter :loading="relatedLoading" :show="relatedModal" title="关联任务" widths="62rem" @close="closeRelatedClick">
|
|
|
|
- <div class="hac-diy-dialog-body">
|
|
|
|
- <div class="hac-dialog-header">
|
|
|
|
- <div class="w-36">
|
|
|
|
- <el-select v-model="searchBudgetForm.department" block clearable placeholder="选择部门" size="large">
|
|
|
|
- <el-option label="研发部门" value="1"/>
|
|
|
|
- <el-option label="业务部门" value="2"/>
|
|
|
|
- <el-option label="人事部门" value="3"/>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="w-36 ml-2">
|
|
|
|
- <el-select v-model="searchBudgetForm.state" block clearable placeholder="选择计划状态" size="large">
|
|
|
|
- <el-option label="未完成" value="1"/>
|
|
|
|
- <el-option label="已完成" value="2"/>
|
|
|
|
- <el-option label="逾期完成" value="3"/>
|
|
|
|
- <el-option label="逾期未完成" value="4"/>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="w-36 ml-2">
|
|
|
|
- <el-select v-model="searchBudgetForm.user" block clearable placeholder="选择任务人" size="large">
|
|
|
|
- <el-option label="张三" value="1"/>
|
|
|
|
- <el-option label="李四" value="2"/>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="ml-4">
|
|
|
|
- <el-button size="large" type="primary">
|
|
|
|
- <HcIcon name="search-2"/>
|
|
|
|
- <span>搜索</span>
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- <div class="ml-2">
|
|
|
|
- <el-button size="large">
|
|
|
|
- <HcIcon name="close-circle"/>
|
|
|
|
- <span>重置</span>
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="hac-dialog-table">
|
|
|
|
- <HcTable :column="tableBudgetColumn" :datas="tableBudgetData" :loading="tableBudgetLoading">
|
|
|
|
- <template #action="{row,index}">
|
|
|
|
- <el-button plain size="small" type="primary" @click="row.isRelated = true" v-if="!row.isRelated">
|
|
|
|
- <HcIcon name="link" :line="false"/>
|
|
|
|
- <span>关联</span>
|
|
|
|
- </el-button>
|
|
|
|
- <el-button plain size="small" type="danger" @click="row.isRelated = false" v-else>
|
|
|
|
- <HcIcon name="link-unlink-m" :line="false"/>
|
|
|
|
- <span>取消</span>
|
|
|
|
- </el-button>
|
|
|
|
- </template>
|
|
|
|
- </HcTable>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <template #leftRowFooter>
|
|
|
|
- <el-button size="large" @click="closeRelatedClick">
|
|
|
|
- <HcIcon name="close"/>
|
|
|
|
- <span>取消</span>
|
|
|
|
- </el-button>
|
|
|
|
- <el-button size="large" type="primary" @click="saveRelatedClick">
|
|
|
|
- <HcIcon name="check"/>
|
|
|
|
- <span>确认关联</span>
|
|
|
|
- </el-button>
|
|
|
|
- </template>
|
|
|
|
- <template #rightRowFooter>
|
|
|
|
- <HcPages :pages="searchBudgetForm" @change="pageBudgetChange"/>
|
|
|
|
- </template>
|
|
|
|
- </HcDialog>
|
|
|
|
-
|
|
|
|
<!--变更状态-->
|
|
<!--变更状态-->
|
|
<HcDialog bgColor="#ffffff" isToBody isTable :loading="changeStateLoading" :show="changeStateModal" title="变更任务状态" widths="62rem"
|
|
<HcDialog bgColor="#ffffff" isToBody isTable :loading="changeStateLoading" :show="changeStateModal" title="变更任务状态" widths="62rem"
|
|
@close="closeChangeStateClick" @save="saveChangeStateClick">
|
|
@close="closeChangeStateClick" @save="saveChangeStateClick">
|
|
@@ -136,38 +60,28 @@
|
|
<el-form-item label="变更类别:" prop="type" size="large">
|
|
<el-form-item label="变更类别:" prop="type" size="large">
|
|
<el-radio-group v-model="formModel.type" size="large">
|
|
<el-radio-group v-model="formModel.type" size="large">
|
|
<el-radio label="1">已完成</el-radio>
|
|
<el-radio label="1">已完成</el-radio>
|
|
- <el-radio label="2">延期执行</el-radio>
|
|
|
|
- <el-radio label="3">任务转移</el-radio>
|
|
|
|
|
|
+ <el-radio label="2" class="ml-8">任务转移</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="完成时间:" prop="finish_time" class="w-72" v-if="formModel.type === '1'">
|
|
<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-date-picker class="block" v-model="formModel.finish_time" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="延期时间:" prop="delay_time" class="w-72" v-if="formModel.type === '2'">
|
|
|
|
- <el-date-picker class="block" v-model="formModel.delay_time" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="延期原因:" prop="delay_cause" v-if="formModel.type === '2'">
|
|
|
|
- <el-input v-model="formModel.delay_cause" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <div class="flex" v-if="formModel.type === '3'">
|
|
|
|
- <el-form-item label="转移时间:" prop="transfer" class="w-64 mr-4">
|
|
|
|
|
|
+ <template v-if="formModel.type === '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.transfer" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="转移后剩余工作任务完成日期:" prop="complete" class="w-96 ml-4">
|
|
|
|
- <el-date-picker class="block" v-model="formModel.complete" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD"/>
|
|
|
|
|
|
+ <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-option label="张三" value="1"/>
|
|
|
|
+ <el-option label="李四" value="2"/>
|
|
|
|
+ <el-option label="王五" value="3"/>
|
|
|
|
+ <el-option label="王麻子" value="4"/>
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- </div>
|
|
|
|
- <el-form-item label="转移对象:" prop="type" size="large" v-if="formModel.type === '3'">
|
|
|
|
- <el-select class="block" v-model="formModel.user" 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"/>
|
|
|
|
- <el-option label="王麻子" value="4"/>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="转移原因:" prop="textContent" v-if="formModel.type === '3'">
|
|
|
|
- <el-input v-model="formModel.textContent" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
+ <el-form-item label="转移原因:" prop="textContent">
|
|
|
|
+ <el-input v-model="formModel.textContent" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </template>
|
|
</el-form>
|
|
</el-form>
|
|
</HcCardItem>
|
|
</HcCardItem>
|
|
</div>
|
|
</div>
|
|
@@ -211,7 +125,6 @@ const searchForm = ref({
|
|
//搜索
|
|
//搜索
|
|
const searchClick = () => {
|
|
const searchClick = () => {
|
|
searchForm.value.current = 1;
|
|
searchForm.value.current = 1;
|
|
- console.log(searchForm.value)
|
|
|
|
getTableData()
|
|
getTableData()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -233,17 +146,17 @@ const pageChange = ({current, size}) => {
|
|
//获取数据
|
|
//获取数据
|
|
const tableLoading = ref(false)
|
|
const tableLoading = ref(false)
|
|
const tableColumn = ref([
|
|
const tableColumn = ref([
|
|
- {key: 'name', name: '计划名称'},
|
|
|
|
|
|
+ {key: 'name', name: '任务所属项目'},
|
|
{key: 'key', name: '状态', width: '120', align: 'center'},
|
|
{key: 'key', name: '状态', width: '120', align: 'center'},
|
|
{key: 'key1', name: '任务描述'},
|
|
{key: 'key1', name: '任务描述'},
|
|
{key: 'key2', name: '完成指标'},
|
|
{key: 'key2', name: '完成指标'},
|
|
- {key: 'key3', name: '完成期限', width: '160', align: 'center'},
|
|
|
|
|
|
+ {key: 'key3', name: '计划起止日期', width: '220', align: 'center'},
|
|
{key: 'key4', name: '任务人', width: '120', align: 'center'},
|
|
{key: 'key4', name: '任务人', width: '120', align: 'center'},
|
|
])
|
|
])
|
|
const tableData = ref([
|
|
const tableData = ref([
|
|
- {id: 1, name: '【任务描述】申请【任务转移】', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
|
- {id: 2, name: '【任务描述】申请【任务转移】', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
|
- {id: 3, name: '【任务描述】申请【任务转移】', key: '未完成', key1: 'xxxxxxxxxx', key2: 'xxxxxxxx', key3: '2022-02-01', key4: '张三'},
|
|
|
|
|
|
+ {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 getTableData = () => {
|
|
const getTableData = () => {
|
|
//const key = isTableKey.value
|
|
//const key = isTableKey.value
|
|
@@ -255,51 +168,6 @@ const tableSelectionChange = (rows) => {
|
|
tableRows.value = rows
|
|
tableRows.value = rows
|
|
}
|
|
}
|
|
|
|
|
|
-//关联任务弹窗
|
|
|
|
-const relatedLoading = ref(false)
|
|
|
|
-const relatedModal = ref(false)
|
|
|
|
-
|
|
|
|
-//关联任务
|
|
|
|
-const relevanceClick = () => {
|
|
|
|
- relatedLoading.value = false
|
|
|
|
- relatedModal.value = true
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//关联任务分页和搜索
|
|
|
|
-const searchBudgetForm = ref({current: 1, size: 20, total: 0})
|
|
|
|
-const pageBudgetChange = ({current, size}) => {
|
|
|
|
- searchBudgetForm.value.current = current
|
|
|
|
- searchBudgetForm.value.size = size
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//关联任务表格
|
|
|
|
-const tableBudgetLoading = ref(false)
|
|
|
|
-const tableBudgetColumn = [
|
|
|
|
- {key: 'key', name: '任务描述'},
|
|
|
|
- {key: 'key1', name: '任务人', width: '120', align: 'center'},
|
|
|
|
- {key: 'key2', name: '任务起止日期', width: '220', align: 'center'},
|
|
|
|
- {key: 'key3', name: '状态', width: '120', align: 'center'},
|
|
|
|
- {key: 'action', name: '操作', width: '90', align: 'center'},
|
|
|
|
-]
|
|
|
|
-const tableBudgetData = ref([
|
|
|
|
- {id: 1, key: 'xxxxxxxxx', key1: '张三', key2: '2022-07-01~2027-04-12', key3: '未完成'},
|
|
|
|
- {id: 2, key: 'xxxxxxxxx', key1: '张三', key2: '2022-07-01~2027-04-12', key3: '未完成'},
|
|
|
|
- {id: 3, key: 'xxxxxxxxx', key1: '张三', key2: '2022-07-01~2027-04-12', key3: '未完成'},
|
|
|
|
- {id: 4, key: 'xxxxxxxxx', key1: '张三', key2: '2022-07-01~2027-04-12', key3: '未完成'},
|
|
|
|
-])
|
|
|
|
-
|
|
|
|
-//关闭关联任务弹窗
|
|
|
|
-const closeRelatedClick = () => {
|
|
|
|
- relatedLoading.value = false
|
|
|
|
- relatedModal.value = false
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//提交关联任务弹窗
|
|
|
|
-const saveRelatedClick = () => {
|
|
|
|
- relatedLoading.value = false
|
|
|
|
- relatedModal.value = false
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
//变更状态的弹窗
|
|
//变更状态的弹窗
|
|
const changeStateLoading = ref(false)
|
|
const changeStateLoading = ref(false)
|
|
const changeStateModal = ref(false)
|
|
const changeStateModal = ref(false)
|