Browse Source

更新路由菜单,注释掉路由验证

ZaiZai 2 years ago
parent
commit
b1ecd1878a

+ 3 - 2
src/router/index.js

@@ -23,12 +23,13 @@ router.beforeResolve(async (to) => {
     } else if (!token) {
         return '/login'
     } else {
-        const res = await getRouterData(to.name)
+        return true
+        /*const res = await getRouterData(to.name)
         if (res) {
             return true
         } else {
             return '/login'
-        }
+        }*/
     }
 })
 

+ 10 - 10
src/router/menus.js

@@ -18,12 +18,7 @@ export default [
                 source: 'home-3',
                 name: '审批管理',
                 code: 'home-task',
-            },
-            {
-                source: 'home-3',
-                name: '公司经营预算',
-                code: 'home-budget',
-            },
+            }
         ]
     },
     {
@@ -72,13 +67,18 @@ export default [
     },
     {
         source: 'home-3',
-        name: '日志管理',
-        code: 'logs',
+        name: '任务管理',
+        code: 'task',
         children: [
             {
                 source: 'home-3',
-                name: '历史日志',
-                code: 'logs-index',
+                name: '日志填报',
+                code: 'task-logs',
+            },
+            {
+                source: 'home-3',
+                name: '计划任务执行',
+                code: 'task-plan',
             },
         ]
     },

+ 14 - 28
src/router/modules/base.js

@@ -45,26 +45,6 @@ export default [
                 meta: {title: '任务详情'}, //, noMenuBar: true
                 component: () => import('~src/views/home/task/task-details.vue')
             },
-
-            //待定
-            {
-                path: '/home/budget',
-                name: 'home-budget',
-                meta: {title: '公司经营预算'},
-                component: () => import('~src/views/home/budget.vue')
-            },
-            {
-                path: '/home/budget-form',
-                name: 'home-budget-form',
-                meta: {title: '公司经营预算信息'},
-                component: () => import('~src/views/home/budget-form.vue')
-            },
-            {
-                path: '/home/budget-chart',
-                name: 'home-budget-chart',
-                meta: {title: '公司经营预算报表'},
-                component: () => import('~src/views/home/budget-chart.vue')
-            }
         ],
     },
     {
@@ -182,17 +162,23 @@ export default [
         ],
     },
     {
-        path: '/logs',
-        name: 'logs',
-        redirect: '/logs/index',
-        meta: {title: '日志管理'},
+        path: '/task',
+        name: 'task',
+        redirect: '/task/logs',
+        meta: {title: '任务管理'},
         component: Layout,
         children: [
             {
-                path: '/logs/index',
-                name: 'logs-index',
-                meta: {title: '历史日志'},
-                component: () => import('~src/views/logs/index.vue')
+                path: '/task/logs',
+                name: 'task-logs',
+                meta: {title: '日志填报'},
+                component: () => import('~src/views/task/logs/index.vue')
+            },
+            {
+                path: '/task/plan',
+                name: 'task-plan',
+                meta: {title: '计划任务执行'},
+                component: () => import('~src/views/task/plan/index.vue')
             },
         ],
     },

+ 0 - 1
src/router/modules/token.js

@@ -49,5 +49,4 @@ export default [
     'people-salary',
     'people-entry',
     'people-dimission',
-
 ]

+ 0 - 123
src/views/home/budget-chart.vue

@@ -1,123 +0,0 @@
-<template>
-    <HcCard scrollbar>
-        <template #header>
-            <div class="w-36">
-                <el-select v-model="annual" block clearable placeholder="选择年度" size="large">
-                    <el-option v-for="item in annuals" :label="item.name" :value="item.key"/>
-                </el-select>
-            </div>
-        </template>
-        <template #extra>
-            <el-button size="large" type="info" hc-btn @click="goBackClick">
-                <HcIcon name="arrow-go-back"/>
-                <span>返回列表</span>
-            </el-button>
-        </template>
-        <div class="hc-main-row">
-            <el-row :gutter="14">
-                <el-col :span="8">
-                    <HcCardItem body-ui="h-96-i">
-                        <BarLabelChart :datas="contractDatas"/>
-                    </HcCardItem>
-                </el-col>
-                <el-col :span="8">
-                    <HcCardItem body-ui="h-96-i">
-                        <BarLabelChart :datas="manageDatas"/>
-                    </HcCardItem>
-                </el-col>
-                <el-col :span="8">
-                    <HcCardItem body-ui="h-96-i">
-                        <BarLabelChart :datas="profitDatas"/>
-                    </HcCardItem>
-                </el-col>
-            </el-row>
-            <el-row :gutter="14" class="mt-4">
-                <el-col :span="12">
-                    <HcCardItem body-ui="h-96-i">
-                        <PieSimple :datas="pieSimpleDatas"/>
-                    </HcCardItem>
-                </el-col>
-                <el-col :span="12">
-                    <HcCardItem body-ui="h-96-i">
-                        <AreaStack :datas="areaStackDatas"/>
-                    </HcCardItem>
-                </el-col>
-            </el-row>
-        </div>
-    </HcCard>
-</template>
-
-<script setup>
-import {onActivated, ref} from "vue";
-import {useRouter} from 'vue-router'
-import BarLabelChart from "~com/echarts/BarLabelChart.vue";
-import PieSimple from "~com/echarts/PieSimple.vue";
-import AreaStack from "~com/echarts/AreaStack.vue";
-
-const router = useRouter()
-
-const annual = ref('2023')
-const annuals = ref([
-    {name: '2023年', key: '2023'},
-    {name: '2022年', key: '2022'},
-    {name: '2021年', key: '2021'}
-])
-
-//缓存页面被激活时
-onActivated(() => {
-
-})
-
-//合同指标、实际合同额
-const contractDatas = ref([
-    {name: '合同指标', value: 190000},
-    {name: '实际合同额', value: 8000}
-])
-
-//经营预算
-const manageDatas = ref([
-    {name: '经营预算', value: 120000},
-    {name: '实际支出', value: 80000}
-])
-
-//利润指标
-const profitDatas = ref([
-    {name: '利润指标', value: 90010},
-    {name: '实际利润', value: 38230}
-])
-
-//管理费用项目分摊
-const pieSimpleDatas = ref([
-    { value: 1048, name: '已分摊' },
-    { value: 735, name: '未分摊' },
-])
-
-//管理费用支出
-const areaStackDatas = ref([
-    {
-        name: '剩余预算',
-        value: [120, 132, 101, 134, 90, 230, 210, 210, 210, 210, 132, 101]
-    },
-    {
-        name: '已支出预警',
-        value: [220, 182, 191, 234, 290, 330, 310, 310, 310, 310, 182, 191]
-    }
-])
-
-//返回列表
-const goBackClick = () => {
-    router.back()
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>
-
-<style lang="scss">
-.hc-main-row {
-    .h-96-i {
-        height: 24rem !important;
-    }
-}
-</style>

+ 0 - 305
src/views/home/budget-form.vue

@@ -1,305 +0,0 @@
-<template>
-    <HcCard scrollbar>
-        <HcCardItem>
-            <div class="hac-budget-form-card-header">
-                <el-form ref="formRef" inline :model="formModel" :rules="formRules">
-                    <el-form-item label="预算名称" prop="name" class="w-1/2">
-                        <el-input v-model="formModel.name" placeholder="请输入预算名称" />
-                    </el-form-item>
-                    <el-form-item label="预算起止时间" prop="time" class="ml-6">
-                        <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
-                    </el-form-item>
-                </el-form>
-
-                <el-form ref="formRef" inline :model="formModel" :rules="formRules">
-                    <el-form-item label="合同" prop="key1">
-                        <el-tooltip content="年度合同指标">
-                            <el-input v-model="formModel.key1" placeholder="年度合同指标" />
-                        </el-tooltip>
-                    </el-form-item>
-                    <el-form-item label="利润" prop="key2">
-                        <el-tooltip content="年度利润指标">
-                            <el-input v-model="formModel.key2" placeholder="年度利润指标" />
-                        </el-tooltip>
-                    </el-form-item>
-                    <el-form-item label="预算" prop="key3">
-                        <el-tooltip content="预算总额">
-                            <el-input v-model="formModel.key3" placeholder="预算总额" disabled>
-                                <template #append>元</template>
-                            </el-input>
-                        </el-tooltip>
-                    </el-form-item>
-                    <el-form-item label="工资" prop="key4">
-                        <el-tooltip content="人员工资预算详情">
-                            <el-input v-model="formModel.key4" placeholder="人员工资预算详情" disabled>
-                                <template #append>元</template>
-                            </el-input>
-                        </el-tooltip>
-                    </el-form-item>
-                    <el-form-item label="综合" prop="key5">
-                        <el-tooltip content="综合管理预算详情">
-                            <el-input v-model="formModel.key5" placeholder="综合管理预算详情" disabled>
-                                <template #append>元</template>
-                            </el-input>
-                        </el-tooltip>
-                    </el-form-item>
-                </el-form>
-            </div>
-        </HcCardItem>
-
-        <HcCardItem class="mt-4">
-            <template #header>
-                <span class="text-black text-sm">* 人员工资预算详情:</span>
-            </template>
-            <template #extra>
-                <el-button type="success" @click="addTableData">
-                    <HcIcon name="add-circle"/>
-                    <span>新增</span>
-                </el-button>
-            </template>
-            <div class="h-72">
-                <HcTable :isIndex="false" :column="tableColumn" :datas="tableData">
-                    <template #key1="{row,index}">
-                        <el-select v-model="row.key1" v-if="row.isEditMode">
-                            <el-option label="管理中心" value="管理中心"/>
-                            <el-option label="人事行政资源部" value="人事行政资源部"/>
-                            <el-option label="研发部" value="研发部"/>
-                            <el-option label="技术服务部" value="技术服务部"/>
-                        </el-select>
-                        <div v-else>{{row.key1}}</div>
-                    </template>
-                    <template #key2="{row,index}">
-                        <el-select v-model="row.key2" v-if="row.isEditMode">
-                            <el-option label="总经理" value="总经理"/>
-                            <el-option label="人事行政" value="人事行政"/>
-                            <el-option label="产品经理" value="产品经理"/>
-                            <el-option label="软件实施" value="软件实施"/>
-                            <el-option label="业务实施" value="业务实施"/>
-                            <el-option label="技术经理" value="技术经理"/>
-                            <el-option label="JAVA开发" value="JAVA开发"/>
-                            <el-option label="前端开发" value="前端开发"/>
-                            <el-option label="测试" value="测试"/>
-                        </el-select>
-                        <div v-else>{{row.key2}}</div>
-                    </template>
-                    <template #key3="{row,index}">
-                        <el-input v-model="row.key3" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key3}}</div>
-                    </template>
-                    <template #key4="{row,index}">
-                        <el-input v-model="row.key4" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key4}}</div>
-                    </template>
-                    <template #key5="{row,index}">
-                        <el-input v-model="row.key5" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key5}}</div>
-                    </template>
-                    <template #key6="{row,index}">
-                        <el-select v-model="row.key6" v-if="row.isEditMode">
-                            <el-option label="在职" value="在职"/>
-                            <el-option label="计划招聘" value="计划招聘"/>
-                        </el-select>
-                        <div v-else>{{row.key6}}</div>
-                    </template>
-                    <template #key7="{row,index}">
-                        <el-input v-model="row.key7" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key7}}</div>
-                    </template>
-                    <template #action="{row,index}">
-                        <el-button size="small" type="primary" @click="row.isEditMode = false" v-if="row.isEditMode">
-                            <HcIcon name="check"/>
-                            <span>完成</span>
-                        </el-button>
-                        <el-button size="small" type="primary" @click="row.isEditMode = true" v-else>
-                            <HcIcon name="edit"/>
-                            <span>编辑</span>
-                        </el-button>
-                        <el-button size="small" type="danger" @click="delTableData(row,index)">
-                            <HcIcon name="delete-bin"/>
-                            <span>删除</span>
-                        </el-button>
-                    </template>
-                </HcTable>
-            </div>
-        </HcCardItem>
-
-        <HcCardItem class="mt-4">
-            <template #header>
-                <span class="text-black text-sm">* 综合管理预算详情:</span>
-            </template>
-            <template #extra>
-                <el-button type="success" @click="addTableData1">
-                    <HcIcon name="add-circle"/>
-                    <span>新增</span>
-                </el-button>
-            </template>
-            <div class="h-72">
-                <HcTable :isIndex="false" :column="tableColumn1" :datas="tableData1">
-                    <template #key1="{row,index}">
-                        <el-select v-model="row.key1" v-if="row.isEditMode">
-                            <el-option label="办公费" value="办公费"/>
-                            <el-option label="团建费" value="团建费"/>
-                            <el-option label="水电费" value="水电费"/>
-                            <el-option label="房租物业" value="房租物业"/>
-                            <el-option label="运杂费" value="运杂费"/>
-                            <el-option label="后勤费" value="后勤费"/>
-                        </el-select>
-                        <div v-else>{{row.key1}}</div>
-                    </template>
-                    <template #key2="{row,index}">
-                        <el-input v-model="row.key2" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key2}}</div>
-                    </template>
-                    <template #key3="{row,index}">
-                        <el-input v-model="row.key3" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key3}}</div>
-                    </template>
-                    <template #key4="{row,index}">
-                        <el-input v-model="row.key4" v-if="row.isEditMode"/>
-                        <div v-else>{{row.key4}}</div>
-                    </template>
-                    <template #action="{row,index}">
-                        <el-button size="small" type="primary" @click="row.isEditMode = false" v-if="row.isEditMode">
-                            <HcIcon name="check"/>
-                            <span>完成</span>
-                        </el-button>
-                        <el-button size="small" type="primary" @click="row.isEditMode = true" v-else>
-                            <HcIcon name="edit"/>
-                            <span>编辑</span>
-                        </el-button>
-                        <el-button size="small" type="danger" @click="delTableData1(row,index)">
-                            <HcIcon name="delete-bin"/>
-                            <span>删除</span>
-                        </el-button>
-                    </template>
-                </HcTable>
-            </div>
-        </HcCardItem>
-    </HcCard>
-</template>
-
-<script setup>
-import {onActivated, ref} from "vue";
-import {useRouter, useRoute} from 'vue-router'
-import {delMessage} from "~uti/tools";
-
-//初始变量
-const router = useRouter()
-const useRoutes = useRoute()
-const dataId = ref(useRoutes?.query?.id ?? '')
-
-//缓存页面被激活时
-onActivated(() => {
-    dataId.value = useRoutes?.query?.id ?? ''
-    console.log(useRoutes.query)
-})
-
-//顶部表单数据
-const formRef = ref(null)
-const formModel = ref({
-    key1: '', key2: '', key3: '', key4: '', key5: '',
-})
-const formRules = {
-    key1: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入年度合同指标"
-    },
-    key2: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入年度利润指标"
-    },
-    key3: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入预算总额"
-    },
-    key4: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入人员工资预算"
-    },
-    key5: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入综合管理预算"
-    },
-}
-
-//日期时间被选择
-const betweenTime = ref(null)
-const betweenTimeUpdate = ({arr, query}) => {
-    betweenTime.value = arr
-    //formModel.value.betweenTime = query
-}
-
-//工资预算表格
-const tableColumn = [
-    {key: 'key1', name: '部门', align: 'center'},
-    {key: 'key2', name: '岗位', align: 'center'},
-    {key: 'key3', name: '工资支出', align: 'center'},
-    {key: 'key4', name: '五险一金支出',  align: 'center'},
-    {key: 'key5', name: '人员数量',  align: 'center'},
-    {key: 'key6', name: '状态', align: 'center'},
-    {key: 'key7', name: '工期(月)', align: 'center'},
-    {key: 'action', name: '操作', width: '160', align: 'center'},
-]
-const tableData = ref([
-    {id: 1, key1: '管理中心', key2: '产品经理', key3: '22', key4: '33', key5: '44', key6: '在职', key7: '22', isEditMode: false},
-])
-
-//新增工资预算表格
-const addTableData = () => {
-    tableData.value.push({isEditMode: true})
-}
-
-//删除工资预算表格
-const delTableData = (row,index) => {
-    delMessage(() => {
-        if (!row.id)  {
-            tableData.value.splice(index, 1)
-        }
-    })
-}
-
-
-//综合管理费用表格
-const tableColumn1 = [
-    {key: 'key1', name: '支出类目', align: 'center'},
-    {key: 'key2', name: '每月费用', align: 'center'},
-    {key: 'key3', name: '预算期数(月)', align: 'center'},
-    {key: 'key4', name: '测算备注',  align: 'center'},
-    {key: 'action', name: '操作', width: '160', align: 'center'},
-]
-const tableData1 = ref([
-    {id: 1, key1: '办公费', key2: '1', key3: '22', key4: '33', isEditMode: false},
-])
-
-//新增工资预算表格
-const addTableData1 = () => {
-    tableData1.value.push({isEditMode: true})
-}
-
-//删除工资预算表格
-const delTableData1 = (row,index) => {
-    delMessage(() => {
-        if (!row.id)  {
-            tableData1.value.splice(index, 1)
-        }
-    })
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>
-
-<style lang="scss">
-.hac-budget-form-card-header {
-    .el-form--inline .el-form-item {
-        margin-right: 16px;
-        margin-bottom: 16px;
-    }
-}
-</style>

+ 0 - 111
src/views/home/budget.vue

@@ -1,111 +0,0 @@
-<template>
-    <HcCard>
-        <template #header>
-            <div class="w-36">
-                <el-select v-model="searchForm.annual" block clearable placeholder="选择年度" size="large">
-                    <el-option v-for="item in annuals" :label="item.name" :value="item.key"/>
-                </el-select>
-            </div>
-        </template>
-        <template #extra>
-            <el-button size="large" color="#7728F5" hc-btn @click="toBudgetChartClick">
-                <HcIcon name="folder-chart"/>
-                <span>报表查看</span>
-            </el-button>
-            <el-button size="large" type="primary" hc-btn @click="addRowClick">
-                <HcIcon name="add"/>
-                <span>新增经营预算</span>
-            </el-button>
-        </template>
-
-        <HcTable :column="tableColumn" :datas="tableData" :loading="tableLoading">
-            <template #action="{row,index}">
-                <el-button plain size="small" type="primary" @click="editRowClick(row)">编辑</el-button>
-                <el-button plain size="small" type="danger">删除</el-button>
-            </template>
-        </HcTable>
-
-        <template #action>
-            <HcPages :pages="searchForm" @change="pageChange"/>
-        </template>
-    </HcCard>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {useRouter} from 'vue-router'
-
-const router = useRouter()
-
-//年度数据
-const annuals = ref([
-    {name: '2023年', key: '2023'},
-    {name: '2022年', key: '2022'},
-    {name: '2021年', key: '2021'}
-])
-
-//搜索表单
-const searchForm = ref({annual: null, current: 1, size: 20, total: 0})
-//分页被点击
-const pageChange = ({current, size}) => {
-    searchForm.value.current = current
-    searchForm.value.size = size
-    getTableData()
-}
-
-//获取数据
-const tableLoading = ref(false)
-const tableColumn = [
-    {key: 'name', name: '名称'},
-    {key: 'key6', name: '起止时间', width: '220', align: 'center'},
-    {key: 'key1', name: '总经营预算', width: '140', align: 'center'},
-    {key: 'key2', name: '年度合同额指标', width: '140', align: 'center'},
-    {key: 'key3', name: '年度利润指标', width: '140', align: 'center'},
-    {key: 'key4', name: '工资支出', width: '140', align: 'center'},
-    {key: 'key5', name: '其它管理支出', width: '140', align: 'center'},
-    {key: 'action', name: '操作', width: '130', align: 'center'},
-]
-const tableData = ref([
-    {id: 1, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx', key6: '2022-07-01 ~ 2022-04-01'},
-    {id: 2, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx'},
-    {id: 3, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx'},
-    {id: 4, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx'},
-    {id: 5, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx'},
-    {id: 6, name: '2023年人力支出预算表', key1: 'xxxx', key2: '236323', key3: '65632', key4: '35654', key5: 'xxx'},
-])
-
-const getTableData = () => {
-
-}
-
-
-//编辑预算
-const editRowClick = (row) => {
-    router.push({
-        name: 'home-budget-form', query: {
-            id: row.id
-        }
-    })
-}
-
-//新增预算
-const addRowClick = () => {
-    router.push({
-        name: 'home-budget-form'
-    })
-}
-
-const toBudgetChartClick = () => {
-    router.push({
-        name: 'home-budget-chart'
-    })
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>
-
-<style lang="scss">
-
-</style>

+ 0 - 321
src/views/program/edit-info.vue

@@ -1,321 +0,0 @@
-<template>
-    <HcCard idRef="program-index-info-card">
-        <template #header>
-            <el-form ref="formRef" inline :model="formModel" :rules="formRules">
-                <el-form-item label="计划类型:" prop="key1" size="large">
-                    <el-radio-group v-model="formModel.key1">
-                        <el-radio label="1">年度计划</el-radio>
-                        <el-radio label="2">月度计划</el-radio>
-                        <el-radio label="3">临时计划</el-radio>
-                        <el-radio label="4">周计划</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label="计划部门:" prop="key2" class="w-52">
-                    <el-select v-model="formModel.key2" block clearable placeholder="计划部门">
-                        <el-option v-for="item in department" :label="item.name" :value="item.key"/>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="计划名称:" prop="key3" class="w-72">
-                    <el-input v-model="formModel.key3" placeholder="请输入计划名称" />
-                </el-form-item>
-                <el-form-item label="计划日期:" prop="key4" class="w-80">
-                    <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
-                </el-form-item>
-            </el-form>
-        </template>
-        <template #extra>
-            <el-button type="primary" @click="addTableData">
-                <HcIcon name="add"/>
-                <span>新增</span>
-            </el-button>
-        </template>
-
-        <HcTable :column="tableColumn" :datas="tableData">
-            <template #key1="{row,index}">
-                <el-select v-model="row.key1" placeholder="任务类型" v-if="row.isEditMode">
-                    <el-option label="行政资源" value="1"/>
-                    <el-option label="产品-设计原型" value="2"/>
-                </el-select>
-                <div v-else>{{row.key1}}</div>
-            </template>
-            <template #key2="{row,index}">
-                <el-input v-model="row.key2" v-if="row.isEditMode"/>
-                <div v-else>{{row.key2}}</div>
-            </template>
-            <template #key3="{row,index}">
-                <el-input v-model="row.key3" v-if="row.isEditMode"/>
-                <div v-else>{{row.key3}}</div>
-            </template>
-            <template #key4="{row,index}">
-                <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate" v-if="row.isEditMode"/>
-                <div v-else>{{row.key4}}</div>
-            </template>
-            <template #key5="{row,index}">
-                <el-input v-model="row.key5" v-if="row.isEditMode" disabled/>
-                <div v-else>{{row.key5}}</div>
-            </template>
-            <template #key6="{row,index}">
-                <el-select v-model="row.key6" placeholder="关联项目" v-if="row.isEditMode">
-                    <el-option label="奉建路" value="1"/>
-                    <el-option label="宝北路" value="2"/>
-                </el-select>
-                <div v-else>{{row.key6}}</div>
-            </template>
-            <template #key7="{row,index}">
-                <div class="text-blue text-hover" @click="relevanceClick(row)">关联</div>
-                <div class="text-green text-hover" v-if="false">已关联</div>
-            </template>
-            <template #key8="{row,index}">
-                <el-select v-model="row.key8" placeholder="项目环节" v-if="row.isEditMode">
-                    <el-option label="商机-演示沟通" value="1"/>
-                    <el-option label="商机-成本核算及报价" value="2"/>
-                </el-select>
-                <div v-else>{{row.key8}}</div>
-            </template>
-            <template #key9="{row,index}">
-                <el-select v-model="row.key9" placeholder="任务人" v-if="row.isEditMode">
-                    <el-option label="张三" value="1"/>
-                    <el-option label="李四" value="2"/>
-                </el-select>
-                <div v-else>{{row.key9}}</div>
-            </template>
-            <template #key10="{row,index}">
-                <el-select v-model="row.key10" placeholder="任务人" v-if="row.isEditMode">
-                    <el-option label="张三" value="1"/>
-                    <el-option label="李四" value="2"/>
-                </el-select>
-                <div v-else>{{row.key10}}</div>
-            </template>
-            <template #key11="{row,index}">
-                <el-select v-model="row.key11" placeholder="任务人" v-if="row.isEditMode">
-                    <el-option label="张三" value="1"/>
-                    <el-option label="李四" value="2"/>
-                </el-select>
-                <div v-else>{{row.key11}}</div>
-            </template>
-            <template #action="{row,index}">
-                <el-button size="small" type="primary" @click="row.isEditMode = false" v-if="row.isEditMode">
-                    <HcIcon name="check"/>
-                    <span>完成</span>
-                </el-button>
-                <el-button size="small" type="primary" @click="row.isEditMode = true" v-else>
-                    <HcIcon name="edit"/>
-                    <span>编辑</span>
-                </el-button>
-                <el-button size="small" type="danger" @click="delTableData(row,index)">
-                    <HcIcon name="delete-bin"/>
-                    <span>删除</span>
-                </el-button>
-            </template>
-        </HcTable>
-
-        <template #action>
-            <div class="hac-program-card-action">
-                <div class="hac-action-tip text-red">
-                    提示:如果计划还未制定完整,则可以点击暂存按钮进行保存,如果点击提交按钮,则计划会同步提交到上级领导和人事处,
-                    提交之后的数据不可再进行修改和删除,只能进行任务废除处理!
-                </div>
-                <div class="hac-action-btn">
-                    <el-button size="large" type="info" hc-btn>
-                        <HcIcon name="save"/>
-                        <span>暂存内容</span>
-                    </el-button>
-                    <el-button size="large" type="primary" hc-btn @click="commitProgram">
-                        <HcIcon name="check-double"/>
-                        <span>提交保存</span>
-                    </el-button>
-                </div>
-            </div>
-        </template>
-
-        <!--关联预算-->
-        <HcDialog bgColor="#ffffff" isToBody isTable isRowFooter :loading="relatedLoading" :show="relatedModal" title="关联项目成本预算" widths="62rem">
-            <HcTable :isIndex="false" :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>
-            <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>
-
-
-    </HcCard>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {delMessage} from "~uti/tools";
-
-//选择部门
-const department = ref([
-    {name: '研发部门', key: '1'},
-    {name: '业务部门', key: '2'},
-    {name: '人事部门', key: '3'},
-])
-
-//顶部表单数据
-const formRef = ref(null)
-const formModel = ref({key1: '', key2: '', key3: ''})
-const formRules = {
-    key2: {
-        required: true,
-        trigger: 'blur',
-        message: "请选择计划部门"
-    },
-    key3: {
-        required: true,
-        trigger: 'blur',
-        message: "请输入计划名称"
-    },
-    key4: {
-        required: true,
-        trigger: 'blur',
-        message: "请选择计划日期"
-    }
-}
-
-//日期时间被选择
-const betweenTime = ref(null)
-const betweenTimeUpdate = ({arr, query}) => {
-    betweenTime.value = arr
-    //formModel.value.betweenTime = query
-}
-
-//计划表
-const tableColumn = [
-    {key: 'key1', name: '任务类型', width: '200'},
-    {key: 'key2', name: '任务描述', width: '200'},
-    {key: 'key3', name: '完成指标', width: '200'},
-    {key: 'key4', name: '起止日期', width: '260'},
-    {key: 'key5', name: '总工作日', width: '140'},
-    {key: 'key6', name: '关联项目', width: '160'},
-    {key: 'key7', name: '关联预算', width: '160', align: 'center'},
-    {key: 'key8', name: '项目环节', width: '200'},
-    {key: 'key9', name: '任务人', width: '140'},
-    {key: 'key10', name: '协助人员', width: '140'},
-    {key: 'key11', name: '部门负责人', width: '140'},
-    {key: 'action', name: '操作', width: '160', align: 'center', fixed: 'right'},
-]
-const tableData = ref([
-    {id: 1, key1: '', key2: '', key3: '', key4: '33', key5: '44', key6: '', key7: '22', isEditMode: true},
-])
-
-//新增工资预算表格
-const addTableData = () => {
-    tableData.value.unshift({isEditMode: true})
-}
-
-//删除工资预算表格
-const delTableData = (row,index) => {
-    delMessage(() => {
-        if (!row.id)  {
-            tableData.value.splice(index, 1)
-        }
-    })
-}
-
-//关联预算弹窗
-const relatedLoading = ref(false)
-const relatedModal = ref(false)
-
-//关联预算
-const relevanceClick = (row) => {
-    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: '项目环节', width: '160', align: 'center'},
-    {key: 'key1', name: '预算类型', width: '100', align: 'center'},
-    {key: 'key2', name: '任务明细', width: '160', align: 'center'},
-    {key: 'key3', name: '预算金额', width: '120', align: 'center'},
-    {key: 'key4', name: '任务完成标准'},
-    {key: 'key5', name: '投入人员数量', width: '120', align: 'center'},
-    {key: 'action', name: '操作', width: '90', align: 'center'},
-]
-const tableBudgetData = ref([
-    {id: 1, key: 'xxx', key1: 'xxx', key2: 'xxx', key3: 'xxx', key4: 'xxx', key5: 'xxx'},
-    {id: 2, key: 'xxx', key1: 'xxx', key2: 'xxx', key3: 'xxx', key4: 'xxx', key5: 'xxx'},
-    {id: 3, key: 'xxx', key1: 'xxx', key2: 'xxx', key3: 'xxx', key4: 'xxx', key5: 'xxx'},
-    {id: 4, key: 'xxx', key1: 'xxx', key2: 'xxx', key3: 'xxx', key4: 'xxx', key5: 'xxx'},
-])
-
-//关闭关联预算弹窗
-const closeRelatedClick = () => {
-    relatedLoading.value = false
-    relatedModal.value = false
-}
-
-//提交关联预算弹窗
-const saveRelatedClick = () => {
-    relatedLoading.value = false
-    relatedModal.value = false
-}
-
-
-//提交计划
-const commitProgram = () => {
-    window?.$messageBox?.alert('请核对清楚计划内容!一旦提交,将无法进行自由修改计划内容', '提交提醒', {
-        showCancelButton: true,
-        confirmButtonText: '确认提交',
-        cancelButtonText: '取消',
-        type: 'info',
-        callback: (action) => {
-            if (action === 'confirm') {
-                console.log('111')
-            }
-        }
-    })
-}
-</script>
-
-<style lang="scss" scoped>
-.hac-program-card-action {
-    position: relative;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    .hac-action-tip {
-        position: relative;
-        font-size: 14px;
-        margin-right: 30px;
-        flex: 1;
-    }
-    .hac-action-btn {
-        position: relative;
-        margin-left: 60px;
-    }
-}
-</style>
-
-<style lang="scss">
-
-</style>

+ 0 - 161
src/views/program/index.vue

@@ -1,161 +0,0 @@
-<template>
-    <HcCard>
-        <template #header>
-            <div class="w-36">
-                <el-select v-model="searchForm.planType" block clearable placeholder="计划类型" size="large">
-                    <el-option v-for="item in planType" :label="item.name" :value="item.key"/>
-                </el-select>
-            </div>
-            <div class="w-36 ml-2">
-                <el-select v-model="searchForm.department" block clearable placeholder="选择部门" size="large">
-                    <el-option v-for="item in department" :label="item.name" :value="item.key"/>
-                </el-select>
-            </div>
-            <div class="w-36 ml-4">
-                <el-date-picker class="block" v-model="searchForm.startTime" type="month" value-format="YYYY-MM" placeholder="开始日期" clearable size="large"/>
-            </div>
-            <div class="mx-2">~</div>
-            <div class="w-36">
-                <el-date-picker class="block" v-model="searchForm.endTime" type="month" value-format="YYYY-MM" placeholder="结束日期" clearable size="large"/>
-            </div>
-            <div class="w-40 ml-2">
-                <el-input v-model="searchForm.queryValue" clearable placeholder="请输入计划名称" @keyup="keyUpEvent" size="large"/>
-            </div>
-            <div class="ml-4">
-                <el-button size="large" type="primary" @click="searchClick">
-                    <HcIcon name="search-2"/>
-                    <span>搜索</span>
-                </el-button>
-            </div>
-            <div class="ml-2">
-                <el-button size="large" @click="resetClick">
-                    <HcIcon name="close-circle"/>
-                    <span>重置</span>
-                </el-button>
-            </div>
-        </template>
-        <template #extra>
-            <el-button size="large" type="primary" hc-btn @click="addRowClick">
-                <HcIcon name="add"/>
-                <span>新增计划</span>
-            </el-button>
-        </template>
-
-        <HcTable :isIndex="false" :column="tableColumn" :datas="tableData" :loading="tableLoading">
-            <template #key1="{row}">
-                <span class="text-blue">{{row.key1}}</span>
-            </template>
-            <template #key4="{row}">
-                <span>{{row.key4}}条</span>
-            </template>
-            <template #key5="{row}">
-                <span>{{row.key5}}条</span>
-            </template>
-            <template #key6="{row}">
-                <span>{{row.key6}}条</span>
-            </template>
-            <template #action="{row,index}">
-                <el-button plain size="small" type="primary" @click="editRowClick(row)">编辑</el-button>
-                <el-button plain size="small" type="danger">删除</el-button>
-            </template>
-        </HcTable>
-
-        <template #action>
-            <HcPages :pages="searchForm" @change="pageChange"/>
-        </template>
-    </HcCard>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {useRouter} from 'vue-router'
-
-const router = useRouter()
-
-//计划类型
-const planType = ref([
-    {name: '临时计划', key: '1'},
-    {name: '月度计划', key: '2'},
-    {name: '年度计划', key: '3'},
-])
-
-//选择部门
-const department = ref([
-    {name: '研发部门', key: '1'},
-    {name: '业务部门', key: '2'},
-    {name: '人事部门', key: '3'},
-])
-
-//搜索表单
-const searchForm = ref({
-    planType: null, startTime: null, endTime: null, department: null, queryValue: '',
-    current: 1, size: 20, total: 0
-})
-
-//搜索框回车
-const keyUpEvent = (event) => {
-    if (event.key === "Enter") {
-        searchForm.value.current = 1;
-        getTableData()
-    }
-}
-
-//搜索
-const searchClick = () => {
-    searchForm.value.current = 1;
-    getTableData()
-}
-
-//重置搜索表单
-const resetClick = () => {
-    searchForm.value = {current: 1, size: 20, total: 0}
-}
-
-//分页被点击
-const pageChange = ({current, size}) => {
-    searchForm.value.current = current
-    searchForm.value.size = size
-    getTableData()
-}
-
-//获取数据
-const tableLoading = ref(false)
-const tableColumn = [
-    {key: 'key', name: '编号', width: '90', align: 'center'},
-    {key: 'key1', name: '计划名称'},
-    {key: 'key2', name: '计划类型', width: '120', align: 'center'},
-    {key: 'key3', name: '计划起止日期', width: '220', align: 'center'},
-    {key: 'key4', name: '计划数量', width: '120', align: 'center'},
-    {key: 'key5', name: '已完成计划', width: '120', align: 'center'},
-    {key: 'key6', name: '未完成计划', width: '100', align: 'center'},
-    {key: 'key8', name: '计划制定人', width: '100', align: 'center'},
-    {key: 'action', name: '操作', width: '130', align: 'center'},
-]
-const tableData = ref([
-    {id: 1, key: 'JH-01', key1: '2023年5月度计划', key2: '临时计划', key3: '2022-07-01~2027-04-12', key4: '36', key5: '30', key6: '6', key8: '张三'},
-    {id: 2, key: 'JH-01', key1: '2023年5月度计划', key2: '临时计划', key3: '2022-07-01~2027-04-12', key4: '36', key5: '30', key6: '6', key8: '张三'},
-    {id: 3, key: 'JH-01', key1: '2023年5月度计划', key2: '临时计划', key3: '2022-07-01~2027-04-12', key4: '36', key5: '30', key6: '6', key8: '张三'},
-    {id: 4, key: 'JH-01', key1: '2023年5月度计划', key2: '临时计划', key3: '2022-07-01~2027-04-12', key4: '36', key5: '30', key6: '6', key8: '张三'},
-])
-
-const getTableData = () => {
-
-}
-
-//新增计划
-const addRowClick = () => {
-    router.push({
-        name: 'program-index-info'
-    })
-}
-
-//编辑预算
-const editRowClick = (row) => {
-    router.push({
-        name: 'program-index-info',
-        query: {
-            id: row.id
-        }
-    })
-}
-</script>

+ 404 - 0
src/views/task/logs/index.vue

@@ -0,0 +1,404 @@
+<template>
+    <div class="hac-logs-main-body">
+        <HcCardItem ui="hac-card-item" style="height: 68px;">
+            <div class="hac-card-item-logs-header">
+                <div class="left-box">
+                    <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>
+                    </div>
+                    <div class="w-36 ml-2">
+                        <el-select v-model="searchForm.state" 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-4">
+                        <el-date-picker class="block" v-model="searchForm.startTime" type="month" value-format="YYYY-MM" placeholder="开始日期" clearable size="large"/>
+                    </div>
+                    <div class="mx-2">~</div>
+                    <div class="w-36">
+                        <el-date-picker class="block" v-model="searchForm.endTime" type="month" value-format="YYYY-MM" placeholder="结束日期" clearable size="large"/>
+                    </div>
+                    <div class="ml-4">
+                        <el-button size="large" type="primary" @click="searchClick">
+                            <HcIcon name="search-2"/>
+                            <span>搜索</span>
+                        </el-button>
+                    </div>
+                    <div class="ml-2">
+                        <el-button size="large" @click="resetClick">
+                            <HcIcon name="close-circle"/>
+                            <span>重置</span>
+                        </el-button>
+                    </div>
+                </div>
+                <div class="right-box">
+                    <el-button size="large" type="warning" v-if="isEditState" @click="isEditState = false">
+                        <HcIcon name="check-double"/>
+                        <span>提交日志</span>
+                    </el-button>
+                    <el-button size="large" type="primary" v-else @click="isEditState = true">
+                        <HcIcon name="add"/>
+                        <span>写日志</span>
+                    </el-button>
+                </div>
+            </div>
+        </HcCardItem>
+        <div class="mt-4 hac-logs-row-body">
+            <div class="hac-logs-user-list-body">
+                <HcCardItem scrollbar ui="hac-card-item">
+                    <div class="hac-user-list-item">
+                        <div class="label">昨天</div>
+                        <div class="user-item">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                        <div class="user-item cur">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                        <div class="user-item">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                    </div>
+                    <div class="hac-user-list-item">
+                        <div class="label">2023-04-23 星期一</div>
+                        <div class="user-item">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                        <div class="user-item">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                        <div class="user-item">
+                            <img class="avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                            <div class="name">张三的日志</div>
+                            <div class="state">已读</div>
+                        </div>
+                    </div>
+                </HcCardItem>
+            </div>
+            <div class="hac-logs-content-body">
+                <HcCardItem scrollbar ui="hac-card-item">
+                    <div class="hac-logs-user-info">
+                        <img class="user-avatar" src="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/20220616/8ed37a156f2b177d69181c876892739f.jpg" alt=""/>
+                        <div class="user-info">
+                            <div class="name">张三的日志</div>
+                            <div class="time">2023-02-12 21:08 添加</div>
+                        </div>
+                    </div>
+                    <HcCardItem title="风险预警" ui="hac-bg-grey mt-12">
+                        <el-input v-model="riskWarning" :autosize="{ minRows: 3, maxRows: 5 }" :readonly="!isEditState" :placeholder="isEditState?'请输入文字说明':'无'" type="textarea"/>
+                    </HcCardItem>
+
+                    <div class="hac-card-title mt-4">
+                        <span class="mr-5">今日工作内容</span>
+                        <el-button _icon hc-btn size="small" type="primary" v-if="isEditState">
+                            <HcIcon name="add"/>
+                        </el-button>
+                    </div>
+
+                    <template v-if="isEditState">
+                        <div class="mt-6 hac-log-card-item">
+                            <HcCardItem ui="hac-bg-grey">
+                                <template #header>
+                                    <div class="ml-4">关联的任务</div>
+                                </template>
+                                <template #extra>
+                                    <el-button size="default" type="primary" hc-btn @click="associatedTask">
+                                        <HcIcon name="add"/>
+                                        <span>关联任务</span>
+                                    </el-button>
+                                </template>
+                                <HcTable :isIndex="false" :column="tableTaskColumn" :datas="tableTaskData">
+                                    <template #key2="{row}">
+                                        <el-input v-model="row.key2" placeholder="进度(%)"/>
+                                    </template>
+                                    <template #action="{row,index}">
+                                        <el-button plain size="small" type="danger">
+                                            <HcIcon name="close"/>
+                                            <span>移除</span>
+                                        </el-button>
+                                    </template>
+                                </HcTable>
+
+                                <div class="title-label mt-6 mb-3">工作内容描述</div>
+                                <el-input v-model="riskWarning" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
+
+                                <el-divider class="title-label-divider" content-position="left" border-style="dashed">费用报销</el-divider>
+
+                                <div class="hac-log-form-box">
+                                    <el-form ref="formRef" inline :model="formModel" :rules="formRules">
+                                        <el-form-item label="费用报销:" prop="key1" class="w-72">
+                                            <el-select v-model="formModel.key1" block clearable placeholder="费用报销">
+                                                <el-option label="审计费" value="1"/>
+                                                <el-option label="招聘费" value="2"/>
+                                                <el-option label="水电费" value="3"/>
+                                            </el-select>
+                                        </el-form-item>
+                                        <el-form-item label="费用金额:" prop="key2" class="w-72">
+                                            <el-input v-model="formModel.key2" placeholder="请输入费用金额(元)" />
+                                        </el-form-item>
+                                    </el-form>
+                                </div>
+
+                            </HcCardItem>
+                            <div class="hac-log-angle-mark">1</div>
+                        </div>
+                        <div class="mt-6 hac-log-card-item">
+                            <HcCardItem ui="hac-bg-grey">
+                                <template #header>
+                                    <div class="ml-4">关联的任务</div>
+                                </template>
+                                <template #extra>
+                                    <el-button size="default" type="primary" hc-btn>
+                                        <HcIcon name="add"/>
+                                        <span>关联任务</span>
+                                    </el-button>
+                                </template>
+                                <HcTable :isIndex="false" :column="tableTaskColumn" :datas="tableTaskData">
+                                    <template #key2="{row}">
+                                        <el-input v-model="row.key2" placeholder="进度(%)"/>
+                                    </template>
+                                    <template #action="{row,index}">
+                                        <el-button plain size="small" type="danger">
+                                            <HcIcon name="close"/>
+                                            <span>移除</span>
+                                        </el-button>
+                                    </template>
+                                </HcTable>
+
+                                <div class="title-label mt-6 mb-3">工作内容描述</div>
+                                <el-input v-model="riskWarning" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入文字说明" type="textarea"/>
+
+                                <el-divider class="title-label-divider" content-position="left" border-style="dashed">费用报销</el-divider>
+
+                                <div class="hac-log-form-box">
+                                    <el-form ref="formRef" inline :model="formModel" :rules="formRules">
+                                        <el-form-item label="费用报销:" prop="key1" class="w-72">
+                                            <el-select v-model="formModel.key1" block clearable placeholder="费用报销">
+                                                <el-option label="审计费" value="1"/>
+                                                <el-option label="招聘费" value="2"/>
+                                                <el-option label="水电费" value="3"/>
+                                            </el-select>
+                                        </el-form-item>
+                                        <el-form-item label="费用金额:" prop="key2" class="w-72">
+                                            <el-input v-model="formModel.key2" placeholder="请输入费用金额(元)" />
+                                        </el-form-item>
+                                    </el-form>
+                                </div>
+
+                            </HcCardItem>
+                            <div class="hac-log-angle-mark">2</div>
+                        </div>
+                    </template>
+
+                    <template v-else>
+                        <div class="mt-6 hac-log-card-item">
+                            <HcCardItem ui="hac-bg-grey">
+                                <template #extra>
+                                    <div class="hac-log-extra">
+                                        <span class="text">所关联任务目前完成率:</span>
+                                        <span class="rate">80%</span>
+                                    </div>
+                                </template>
+                                <div class="hac-log-details-body">
+                                    <div class="log-details-item">
+                                        <div class="label">所属任务:</div>
+                                        <div class="description">【任务内容描述xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+                                            xxxxxxxxxxxxxxxxxxxxxxxxx】</div>
+                                    </div>
+                                    <div class="log-details-item">
+                                        <div class="label">工作内容描述:</div>
+                                        <div class="description">今日完成水泥混凝土试验记录表xxxxxxxxxxxxxxxxx</div>
+                                    </div>
+                                </div>
+                            </HcCardItem>
+                            <div class="hac-log-angle-mark">1</div>
+                        </div>
+                        <div class="mt-6 hac-log-card-item">
+                            <HcCardItem ui="hac-bg-grey">
+                                <template #extra>
+                                    <div class="hac-log-extra">
+                                        <span class="text">所关联任务目前完成率:</span>
+                                        <span class="rate">80%</span>
+                                    </div>
+                                </template>
+                                <div class="hac-log-details-body">
+                                    <div class="log-details-item">
+                                        <div class="label">所属任务:</div>
+                                        <div class="description">【任务内容描述xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+                                            xxxxxxxxxxxxxxxxxxxxxxxxx】</div>
+                                    </div>
+                                    <div class="log-details-item">
+                                        <div class="label">工作内容描述:</div>
+                                        <div class="description">今日完成水泥混凝土试验记录表xxxxxxxxxxxxxxxxx</div>
+                                    </div>
+                                </div>
+                            </HcCardItem>
+                            <div class="hac-log-angle-mark">2</div>
+                        </div>
+                    </template>
+                </HcCardItem>
+            </div>
+        </div>
+
+        <!--关联任务-->
+        <HcDialog bgColor="#ffffff" isToBody isTable isRowFooter :loading="taskModalLoading" :show="taskModal" title="关联任务" widths="62rem" @close="closeTaskClick">
+            <template #header>
+                <div class="header-box">
+                    <span class="mr-5">关联的任务</span>
+                    <span class="text-orange text-sm">选择当天日志所描述的任务</span>
+                </div>
+            </template>
+
+            <HcTable :column="tableTaskColumn1" :datas="tableTaskData1" :loading="tableTaskLoading">
+                <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>
+            <template #leftRowFooter>
+                <el-button size="large" @click="closeTaskClick">
+                    <HcIcon name="close"/>
+                    <span>取消</span>
+                </el-button>
+                <el-button size="large" type="primary" @click="saveTaskClick">
+                    <HcIcon name="check"/>
+                    <span>确认关联</span>
+                </el-button>
+            </template>
+            <template #rightRowFooter>
+                <HcPages :pages="searchTaskForm" @change="pageTaskChange"/>
+            </template>
+        </HcDialog>
+
+    </div>
+</template>
+
+<script setup>
+import {ref} from "vue";
+
+//搜索表单
+const searchForm = ref({department: null, state: null, startTime: null, endTime: null})
+
+//搜索
+const searchClick = () => {
+    searchForm.value.current = 1;
+}
+
+//重置
+const resetClick = () => {
+    searchForm.value = {}
+}
+
+//风险预警
+const riskWarning = ref('')
+
+//当前状态,false查看模式,true写日志模式
+const isEditState = ref(false)
+
+//已关联的任务
+const tableTaskColumn = [
+    {key: 'key', name: '任务内容'},
+    {key: 'key1', name: '状态', width: '120', align: 'center'},
+    {key: 'key2', name: '进度(%)', width: '160'},
+    {key: 'key3', name: '起止日期', width: '220', align: 'center'},
+    {key: 'action', name: '操作', width: '90', align: 'center'},
+]
+const tableTaskData = ref([
+    {id: 1, key: 'xxxxxxxxx', key1: '未完成', key2: '', key3: '2022-07-01~2027-04-12'},
+    {id: 2, key: 'xxxxxxxxx', key1: '未完成', key2: '', key3: '2022-07-01~2027-04-12'},
+])
+
+//顶部表单数据
+const formRef = ref(null)
+const formModel = ref({key1: '', key2: ''})
+const formRules = {
+    key1: {
+        required: true,
+        trigger: 'blur',
+        message: "请选择费用报销"
+    },
+    key2: {
+        required: true,
+        trigger: 'blur',
+        message: "请输入费用金融"
+    },
+}
+
+//关联任务弹窗
+const taskModalLoading = ref(false)
+const taskModal = ref(false)
+
+//显示关联任务
+const associatedTask = () => {
+    taskModalLoading.value = false
+    taskModal.value = true
+}
+
+//关联任务分页和搜索
+const searchTaskForm = ref({current: 1, size: 20, total: 0})
+const pageTaskChange = ({current, size}) => {
+    searchTaskForm.value.current = current
+    searchTaskForm.value.size = size
+}
+
+//关联任务表格
+const tableTaskLoading = ref(false)
+const tableTaskColumn1 = [
+    {key: 'key1', name: '任务描述'},
+    {key: 'key2', name: '任务起止日期', width: '220', align: 'center'},
+    {key: 'key3', name: '状态', width: '120', align: 'center'},
+    {key: 'action', name: '操作', width: '90', align: 'center'},
+]
+const tableTaskData1 = ref([
+    {id: 1, key1: 'xxxxxxxxx', key2: '2022-07-01~2027-04-12', key3: '未完成'},
+    {id: 2, key1: 'xxxxxxxxx', key2: '2022-07-01~2027-04-12', key3: '未完成'},
+    {id: 3, key1: 'xxxxxxxxx', key2: '2022-07-01~2027-04-12', key3: '未完成'},
+    {id: 4, key1: 'xxxxxxxxx', key2: '2022-07-01~2027-04-12', key3: '未完成'},
+])
+
+//关闭关联任务弹窗
+const closeTaskClick = () => {
+    taskModalLoading.value = false
+    taskModal.value = false
+}
+
+//提交关联任务弹窗
+const saveTaskClick = () => {
+    taskModalLoading.value = false
+    taskModal.value = false
+}
+</script>
+
+<style lang="scss" scoped>
+@import "~src/styles/logs/index.scss";
+</style>
+
+<style lang="scss">
+.hac-log-form-box .el-form .el-form-item {
+    margin-bottom: 0;
+    .el-form-item__error {
+        display: none;
+    }
+}
+</style>

+ 0 - 0
src/views/program/components/TaskTable.vue → src/views/task/plan/components/TaskTable.vue


+ 0 - 0
src/views/program/task.vue → src/views/task/plan/index.vue