duy 2 жил өмнө
parent
commit
b46e20da8a

+ 33 - 13
src/views/task/logs/components/logs-content.vue

@@ -16,7 +16,7 @@
 
         <div class="hc-logs-content-item" v-if="!isEditState">
             <div class="title">今日工作内容</div>
-            <div class="warning-tip">警告:有条任务已超期逾期未完成,请及时完成!</div>
+            <div class="warning-tip">警告:有{{undefinedNum}}条任务已超期逾期未完成,请及时完成!</div>
             <div class="content">
                 <HcTable :isIndex="false" :column="taskColumn" :datas="logData?.taskList ?? []" :row-style="tableRowStyle"/>
             </div>
@@ -28,7 +28,8 @@
             <div class="content">
                 <HcTable :isIndex="false" isCheck :column="tableColumn" :datas="tableData" @selection-change="tableSelectionChange">
                     <template #action="{row, index}">
-                        <el-button size="small" type="primary" @click="statusClick(row)">{{row.statusName === '未完成' ? '变更已完成': '已完成' }}</el-button>
+                        <!-- <el-button size="small" type="primary" @click="statusClick(row)">{{row.statusName === '未完成' ? '变更已完成': '已完成' }}</el-button> -->
+                        <el-button size="small" type="primary" @click="statusClick(row)" :disabled="row.status===1||row.status==2">变更已完成</el-button>
                     </template>
                 </HcTable>
             </div>
@@ -62,12 +63,18 @@ const props = defineProps({
     edit: {
         type: Boolean,
         default: true
+    },
+    isShowmyEdit:{
+        type: Boolean,
+        default: false
     }
 })
 
 //变量
 const isEditState = ref(props.edit);
 const logData = ref(props.data);
+const ismyEdit=ref(props.isShowmyEdit)
+const undefinedNum=ref(null)//未完成数量
 
 //渲染完成
 onMounted(() => {
@@ -84,13 +91,17 @@ watch(() => [
     if (edit) {
         getTableData()
     }
-})
+},{deep: true})
 
 //深度监听
 watch(() => [
     props.data,
-], ([data]) => {
+    props.isShowmyEdit
+    
+], ([data,edit]) => {
     logData.value = data
+    console.log(edit,'edit');
+    console.log(ismyEdit.value,'ismyEdit');
 }, {deep: true})
 
 //表格
@@ -119,14 +130,23 @@ const tableColumn = [
 ]
 const tableData = ref([])
 const getTableData = async () => {
-    const {error, code, data, msg} = await logsApi.getLogTaskList()
-    //判断状态
-    if (!error && code === 200) {
-        tableData.value = getArrValue(data)
-    } else {
-        tableData.value = []
-        window.$message?.error(msg)
-    }
+    if(!ismyEdit.value){
+        const {error, code, data, msg} = await logsApi.getLogTaskList()
+        //判断状态
+        if (!error && code === 200) {
+            tableData.value = getArrValue(data)
+        } else {
+            tableData.value = []
+            window.$message?.error(msg)
+        }
+    }else{
+        tableData.value= logData.value.taskList
+    }  
+    //计算未完成的数量
+    tableData.value.forEach((ele)=>{
+
+    })
+ 
 }
 
 //多选事件
@@ -138,7 +158,7 @@ const tableSelectionChange = (rows) => {
 const statusClick = async (row) => {
     const {error, code, msg} = await logsApi.setLogTaskComplete({
         taskId: row.id,
-        logId: ''
+        logId: ismyEdit.value?logData.value.id:''
     })
     //判断状态
     if (!error && code === 200) {

+ 39 - 6
src/views/task/logs/index.vue

@@ -36,10 +36,18 @@
                 <HcIcon name="check-double"/>
                 <span>提交日志</span>
             </el-button>
-            <el-button size="large" type="primary" v-else @click="editLogsClick">
-                <HcIcon name="add"/>
-                <span>写日志</span>
-            </el-button>
+            <template v-else>
+                <el-button size="large" type="primary"  @click="editLogsClick" v-if="!isShowEdit">
+                    <HcIcon name="add"/>
+                    <span>写日志</span>
+                </el-button>
+                <!-- 修改自己的日志 -->
+                <el-button size="large" type="primary" v-else @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"/>
                 <span>取消</span>
@@ -66,7 +74,7 @@
                 </HcCardItem>
             </div>
             <div class="hac-logs-content-body" v-loading="logLoading">
-                <HcLogsContent :data="logForm" ref="logsRef" v-if="isEditState"/>
+                <HcLogsContent :data="logForm" ref="logsRef" v-if="isEditState" :isShowmyEdit="isShowEdit"/>
                 <HcLogsContent :data="logDetail" :edit="false" v-else/>
             </div>
         </div>
@@ -85,12 +93,14 @@ import { getdepartmentList,getuserList} from "~api/other";
 
 const useAppState = useAppStore()
 const userInfo = ref(useAppState.getUserInfo);
-
+const isShowEdit=ref(false)//编辑自己的日志
 // 调用时机为首次挂载, 以及每次从缓存中被重新插入时
 onActivated(() => {
     isEditState.value = false
     getLogList()
     getDepartmentDict()
+   
+
 })
 const department=ref([])
 //获取部门列表
@@ -181,6 +191,14 @@ const getLogDetail = async () => {
         //判断状态
         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);
+            if(real_name===str){
+                isShowEdit.value=true
+            }
         } else {
             logDetail.value = {}
             window.$message?.error(msg)
@@ -202,12 +220,27 @@ const logForm = ref({
 //当前状态,false查看模式,true写日志模式
 const isEditState = ref(false)
 const editLogsClick = () => {
+    logForm.value={
+    headPicture: '',
+    logTitle: '',
+    createTime: '',
+    riskWarning: '',
+    workDesc: '',
+    expenseReimbursementAmount: '',
+}
     const {real_name, avatar} = userInfo.value
     isEditState.value = true
     logForm.value.headPicture = avatar || avatarPng
     logForm.value.logTitle = real_name + '的日志'
     logForm.value.createTime = dayjs().format('YYYY-MM-DD')
 }
+//修改自己的日志
+
+const editmyLog=()=>{
+    isEditState.value = true
+    logForm.value=logDetail.value
+  
+}
 //返回到查看日志界面
 const gobackLog=()=>{
     isEditState.value = false