duy 2 лет назад
Родитель
Сommit
0a0241c59d
2 измененных файлов с 451 добавлено и 416 удалено
  1. 366 339
      src/views/program/project/form.vue
  2. 85 77
      src/views/task/logs/index.vue

Разница между файлами не показана из-за своего большого размера
+ 366 - 339
src/views/program/project/form.vue


+ 85 - 77
src/views/task/logs/index.vue

@@ -3,97 +3,103 @@
         <template #header>
             <div class="w-36">
                 <el-select v-model="searchForm.orgDept" block clearable placeholder="选择部门" size="large" @change="changeDpet">
-                    <el-option v-for="item in department" :label="item.deptName" :value="item.id"/>
+                    <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.userId" block clearable placeholder="选择人员" size="large">
-                    <el-option v-for="item in departmentPeople" :label="item.name" :value="item.id"/>
+                    <el-option v-for="item in departmentPeople" :label="item.name" :value="item.id" />
                 </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"/>
+                <el-date-picker v-model="searchForm.startTime" class="block" type="month" value-format="YYYY-MM" placeholder="开始日期" clearable size="large" />
+            </div>
+            <div class="mx-2">
+                ~
             </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"/>
+                <el-date-picker v-model="searchForm.endTime" class="block" 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"/>
+                    <HcIcon name="search-2" />
                     <span>搜索</span>
                 </el-button>
             </div>
             <div class="ml-2">
                 <el-button size="large" @click="resetClick">
-                    <HcIcon name="close-circle"/>
+                    <HcIcon name="close-circle" />
                     <span>重置</span>
                 </el-button>
             </div>
         </template>
         <template #extra>
-            <el-button size="large" type="warning" v-if="isEditState" @click="submitLogsClick">
-                <HcIcon name="check-double"/>
+            <el-button v-if="isEditState" size="large" type="warning" @click="submitLogsClick">
+                <HcIcon name="check-double" />
                 <span>提交日志</span>
             </el-button>
             <template v-else>
-                <el-button size="large" type="primary"  @click="editLogsClick" v-if="!isShowEdit">
-                    <HcIcon name="add"/>
+                <el-button v-if="!isShowEdit" size="large" type="primary" @click="editLogsClick">
+                    <HcIcon name="add" />
                     <span>写日志</span>
                 </el-button>
                 <!-- 修改自己的日志 -->
-                <el-button size="large" type="primary" v-else @click="editmyLog">
-                    <HcIcon name="add"/>
+                <el-button v-else size="large" type="primary" @click="editmyLog">
+                    <HcIcon name="add" />
                     <span>写日志</span>
                 </el-button>
             </template>
           
-            <el-button size="large" type="primary" v-if="isEditState" @click="gobackLog">
-                <HcIcon name="arrow-go-back"/>
+            <el-button v-if="isEditState" size="large" type="primary" @click="gobackLog">
+                <HcIcon name="arrow-go-back" />
                 <span>取消</span>
             </el-button>
         </template>
         <div class="hac-logs-main-body">
             <div class="hac-logs-user-list-body">
                 <HcCardItem scrollbar>
-                    <div class="hac-user-list-item" v-for="(item, key) in userList">
-                        <div class="label">{{key}}</div>
+                    <div v-for="(item, key) in userList" class="hac-user-list-item">
+                        <div class="label">
+                            {{ key }}
+                        </div>
                         <template v-for="items in item">
-                            <div class="user-item" :class="userItemId.id === items.id?'cur':''" @click="userItemClick(items)">
-                                <img class="avatar" :src="items?.headPicture || avatarPng" alt=""/>
-                                <div class="name">{{items?.logTitle}}</div>
-                                <div class="state" v-if="items?.isEdit === 0">
-                                    <span class="text-xl text-red mr-2" v-if="items?.isRead === 0">
-                                        <HcIcon name="alarm-warning"/>
+                            <div class="user-item" :class="userItemId.id === items.id ? 'cur' : ''" @click="userItemClick(items)">
+                                <img class="avatar" :src="items?.headPicture || avatarPng" alt="">
+                                <div class="name">
+                                    {{ items?.logTitle }}
+                                </div>
+                                <div v-if="items?.isEdit === 0" class="state">
+                                    <span v-if="items?.isRead === 0" class="text-xl text-red mr-2">
+                                        <HcIcon name="alarm-warning" />
                                     </span>
-                                    <span>{{items?.isRead === 0 ?'未读': '已读'}}</span>
+                                    <span>{{ items?.isRead === 0 ? '未读' : '已读' }}</span>
                                 </div>
                             </div>
                         </template>
                     </div>
                 </HcCardItem>
             </div>
-            <div class="hac-logs-content-body" v-loading="logLoading">
-                <HcLogsContent :data="logForm" ref="logsRef" v-if="isEditState" :isShowmyEdit="isShowEdit" />
-                <HcLogsContent :data="logDetail" :edit="false" v-else :undefinedNum="undefinedNum"/>
+            <div v-loading="logLoading" class="hac-logs-content-body">
+                <HcLogsContent v-if="isEditState" ref="logsRef" :data="logForm" :is-showmy-edit="isShowEdit" />
+                <HcLogsContent v-else :data="logDetail" :edit="false" :undefined-num="undefinedNum" />
             </div>
         </div>
     </HcCard>
 </template>
 
 <script setup>
-import {onActivated, ref} from "vue";
-import logsApi from "~api/task/logs";
-import {useAppStore} from "~src/store";
-import {getObjValue,getArrValue,isArray} from "js-fast-way";
-import HcLogsContent from "./components/logs-content.vue";
-import avatarPng from '~src/assets/images/avatar.png';
-import dayjs from 'dayjs';
-import { getdepartmentList,getuserList} from "~api/other";
+import { onActivated, ref } from 'vue'
+import logsApi from '~api/task/logs'
+import { useAppStore } from '~src/store'
+import { getArrValue, getObjValue, isArray } from 'js-fast-way'
+import HcLogsContent from './components/logs-content.vue'
+import avatarPng from '~src/assets/images/avatar.png'
+import dayjs from 'dayjs'
+import { getdepartmentList, getuserList } from '~api/other'
 
 const useAppState = useAppStore()
-const userInfo = ref(useAppState.getUserInfo);
-const isShowEdit=ref(false)//编辑自己的日志
+const userInfo = ref(useAppState.getUserInfo)
+const isShowEdit = ref(false)//编辑自己的日志
 // 调用时机为首次挂载, 以及每次从缓存中被重新插入时
 onActivated(() => {
     isEditState.value = false
@@ -103,10 +109,10 @@ onActivated(() => {
    
 
 })
-const department=ref([])
+const department = ref([])
 //获取部门列表
-const getDepartmentDict=async()=>{
-    const {error, code, data} = await getdepartmentList({deptType:2})
+const getDepartmentDict = async ()=>{
+    const { error, code, data } = await getdepartmentList({ deptType:2 })
     if (!error && code === 200) {
         department.value = getArrValue(data)
 
@@ -116,13 +122,13 @@ const getDepartmentDict=async()=>{
     }
 }
 //改变部门
-const changeDpet=(val)=>{
+const changeDpet = (val)=>{
     getDepartmentuserDict(val)
 }
-const departmentPeople=ref([])
+const departmentPeople = ref([])
 //获取部门人员列表
-const getDepartmentuserDict=async(id)=>{
-    const {error, code, data} = await getuserList({deptId:id})
+const getDepartmentuserDict = async (id)=>{
+    const { error, code, data } = await getuserList({ deptId:id })
     if (!error && code === 200) {
         departmentPeople.value = getArrValue(data)
 
@@ -133,8 +139,8 @@ const getDepartmentuserDict=async(id)=>{
 }
 //获取所有员工
 
-const getUserDict=async()=>{
-    const {error, code, data} = await getuserList({tenantId:useAppState.tenantId})
+const getUserDict = async ()=>{
+    const { error, code, data } = await getuserList({ tenantId:useAppState.tenantId })
     if (!error && code === 200) {
         departmentPeople.value = getArrValue(data)
 
@@ -144,7 +150,7 @@ const getUserDict=async()=>{
     }
 }
 //搜索表单
-const searchForm = ref({orgDept: null, userId: null, startTime: null, endTime: null})
+const searchForm = ref({ orgDept: null, userId: null, startTime: null, endTime: null })
 
 //搜索
 const searchClick = () => {
@@ -164,7 +170,7 @@ const resetClick = () => {
 //日志填报列表查询
 const userList = ref({})
 const getLogList = async () => {
-    const {error, code, data, msg} = await logsApi.getLogList(searchForm.value)
+    const { error, code, data, msg } = await logsApi.getLogList(searchForm.value)
     //判断状态
     if (!error && code === 200) {
         const res = getObjValue(data)
@@ -188,8 +194,8 @@ const userItemId = ref({})
 const userItemClick = (item) => {
     if (!isEditState.value) {
         userItemId.value = item
-        isShowEdit.value=false
-        item.isRead=1
+        isShowEdit.value = false
+        item.isRead = 1
         getLogDetail()
     } else {
         window.$message?.warning('请先提交日志或退出填写日志状态')
@@ -198,42 +204,44 @@ const userItemClick = (item) => {
 
 //日志填报详情
 const logDetail = ref({})
-const undefinedNum=ref(null)
+const undefinedNum = ref(null)
 const getLogDetail = async () => {
     const item = userItemId.value
-    if(item.id){
-        const {error, code, data, msg} = await logsApi.getLogDetail({
-        id: item.id
+    if (item.id) {
+        const { error, code, data, msg } = await logsApi.getLogDetail({
+        id: item.id,
         })
         //判断状态
         if (!error && code === 200) {
             logDetail.value = getObjValue(data)
-            const {real_name, avatar} = userInfo.value
-            let logTitle=logDetail.value['logTitle']
-            console.log(logTitle,'logTitle');
-            let index = logTitle.lastIndexOf("的");
-            let str = logTitle.substring(0,index);
+            const { real_name, avatar } = userInfo.value
+            let logTitle = logDetail.value['logTitle']
+            console.log(logTitle, 'logTitle')
+            let index = logTitle.lastIndexOf('的')
+            let str = logTitle.substring(0, index)
             //判断是否编辑自己的日志
-            if(real_name===str){
-                isShowEdit.value=true
+            if (real_name === str) {
+                isShowEdit.value = true
             }
         } else {
             logDetail.value = {}
             window.$message?.error(msg)
         }
         //计算未完成数量
-        console.log(logDetail.value.taskList,'taskList');
-        let arr=[]
-        if(isArray(logDetail.value?.taskList)){
-            arr=logDetail.value?.taskList.filter((ele)=>{
-                if(ele?.isOverdue==1){
+        console.log(logDetail.value.taskList, 'taskList')
+        let arr = []
+        if (isArray(logDetail.value?.taskList)) {
+            // eslint-disable-next-line array-callback-return
+            arr = logDetail.value?.taskList.filter((ele)=>{
+                // eslint-disable-next-line eqeqeq
+                if (ele?.isOverdue == 1) {
                     return ele
                 }
             })
         }
      
-        undefinedNum.value=arr.length
-       console.log( undefinedNum.value,' undefinedNum.value');
+        undefinedNum.value = arr.length
+       console.log( undefinedNum.value, ' undefinedNum.value')
     }
 
 }
@@ -251,8 +259,8 @@ const logForm = ref({
 //当前状态,false查看模式,true写日志模式
 const isEditState = ref(false)
 const editLogsClick = () => {
-    console.log('写日志');
-    logForm.value={
+    console.log('写日志')
+    logForm.value = {
     headPicture: '',
     logTitle: '',
     createTime: '',
@@ -260,7 +268,7 @@ const editLogsClick = () => {
     workDesc: '',
     expenseReimbursementAmount: '',
 }
-    const {real_name, avatar} = userInfo.value
+    const { real_name, avatar } = userInfo.value
     isEditState.value = true
     logForm.value.headPicture = avatar || avatarPng
     logForm.value.logTitle = real_name + '的日志'
@@ -268,16 +276,16 @@ const editLogsClick = () => {
 }
 //修改自己的日志
 
-const editmyLog=()=>{
-    console.log('修改自己的');
+const editmyLog = ()=>{
+    console.log('修改自己的')
     isEditState.value = true
-    logForm.value=logDetail.value
+    logForm.value = logDetail.value
   
 }
 //返回到查看日志界面
-const gobackLog=()=>{
+const gobackLog = ()=>{
     isEditState.value = false
-    isShowEdit.value=false
+    isShowEdit.value = false
 }
 const logsRef = ref(null)
 const logLoading = ref(false)
@@ -290,7 +298,7 @@ const submitLogsClick = async () => {
     delete form.headPicture
     delete form.logTitle
     //发起请求
-    const {error, code, msg} = await logsApi.setLogSubmit(form)
+    const { error, code, msg } = await logsApi.setLogSubmit(form)
     //判断状态
     logLoading.value = false
     if (!error && code === 200) {

Некоторые файлы не были показаны из-за большого количества измененных файлов