ZaiZai 2 éve
szülő
commit
8cc6f35d0c
3 módosított fájl, 126 hozzáadás és 56 törlés
  1. 44 0
      src/api/modules/task/logs.js
  2. 6 6
      src/api/request/httpApi.js
  3. 76 50
      src/views/task/logs/index.vue

+ 44 - 0
src/api/modules/task/logs.js

@@ -0,0 +1,44 @@
+import {httpApi} from "../../request/httpApi";
+
+export default {
+    //日志填报列表查询
+    async getLogList(form, msg = false) {
+        return httpApi({
+            url: '/api/blade-control/log/list',
+            method: 'post',
+            data: form
+        }, msg);
+    },
+    //日志填报详情
+    async getLogDetail(form, msg = false) {
+        return httpApi({
+            url: '/api/blade-control/log/detail',
+            method: 'post',
+            params: form
+        },msg);
+    },
+    //日志任务列表-获取当前用户当日的任务信息
+    async getLogTaskList(form, msg = false) {
+        return httpApi({
+            url: '/api/blade-control/log/task/list',
+            method: 'post',
+            data: form
+        },msg);
+    },
+    //日志任务完成
+    async setLogTaskComplete(form, msg = false) {
+        return httpApi({
+            url: '/api/blade-control/log/task/complete',
+            method: 'post',
+            params: form
+        },msg);
+    },
+     //日志填报新增或修改
+     async setLogSubmit(form, msg = false) {
+        return httpApi({
+            url: '/api/blade-control/log/submit',
+            method: 'post',
+            data: form
+        },msg);
+    },
+}

+ 6 - 6
src/api/request/httpApi.js

@@ -18,15 +18,15 @@ export const httpApi = async (obj, message = true) => {
 
 //处理数据
 const getResData = (response, error = false) => {
-    const headers = getObjValue(response?.headers)
+    const headers = getObjValue(response?.headers), resData = getObjValue(response?.data);
     return {
         response,
-        res: response?.data,
-        data: response?.data?.data,
-        code: response?.data?.code,
-        msg: response?.data?.msg,
+        res: resData,
+        data: resData?.data,
+        code: resData?.code,
+        msg: resData?.msg,
         status: response?.status,
-        disposition: response?.headers['content-disposition'],
+        disposition: headers['content-disposition'],
         message: getMsgVal(response),
         error: error
     }

+ 76 - 50
src/views/task/logs/index.vue

@@ -2,17 +2,17 @@
     <HcCard>
         <template #header>
             <div class="w-36">
-                <el-select v-model="searchForm.department" block clearable placeholder="选择部门" size="large">
-                    <el-option label="研发部门" value="1"/>
-                    <el-option label="业务部门" value="2"/>
-                    <el-option label="人事部门" value="3"/>
+                <el-select v-model="searchForm.orgDept" block clearable placeholder="选择部门" size="large">
+                    <el-option label="暂无接口1" value="1"/>
+                    <el-option label="暂无接口2" value="2"/>
+                    <el-option label="暂无接口3" 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 v-model="searchForm.userId" block clearable placeholder="选择人员" size="large">
+                    <el-option label="暂无接口1" value="1"/>
+                    <el-option label="暂无接口2" value="2"/>
+                    <el-option label="暂无接口3" value="3"/>
                 </el-select>
             </div>
             <div class="w-36 ml-4">
@@ -48,46 +48,20 @@
         <div class="hac-logs-main-body">
             <div class="hac-logs-user-list-body">
                 <HcCardItem scrollbar>
-                    <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">
-                                <span class="text-xl text-red mr-2">
-                                    <HcIcon name="alarm-warning"/>
-                                </span>
-                                <span>已读</span>
+                    <div class="hac-user-list-item" v-for="(item, key) in userList">
+                        <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" alt=""/>
+                                <div class="name">{{items?.logTitle}}</div>
+                                <div class="state">
+                                    <span class="text-xl text-red mr-2">
+                                        <HcIcon name="alarm-warning"/>
+                                    </span>
+                                    <span>{{items?.isRead === 0 ?'未读': '已读'}}</span>
+                                </div>
                             </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>
+                        </template>
                     </div>
                 </HcCardItem>
             </div>
@@ -144,14 +118,21 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {onActivated, ref} from "vue";
+import logsApi from "~api/task/logs";
+import {getObjValue} from "js-fast-way";
+
+// 调用时机为首次挂载, 以及每次从缓存中被重新插入时
+onActivated(() => {
+    getLogList()
+})
 
 //搜索表单
-const searchForm = ref({department: null, state: null, startTime: null, endTime: null})
+const searchForm = ref({orgDept: null, userId: null, startTime: null, endTime: null})
 
 //搜索
 const searchClick = () => {
-    searchForm.value.current = 1;
+    getLogList()
 }
 
 //重置
@@ -159,6 +140,51 @@ const resetClick = () => {
     searchForm.value = {}
 }
 
+//日志填报列表查询
+const userList = ref({})
+const getLogList = async () => {
+    const {error, code, data, msg} = await logsApi.getLogList(searchForm.value)
+    //判断状态
+    if (!error && code === 200) {
+        const res = getObjValue(data)
+        userList.value = res
+        //默认选择第一个
+        Object.keys(res).forEach((key, index) => {
+            if (index === 0) {
+                userItemId.value = res[key][0]
+            }
+        })
+        getLogDetail()
+    } else {
+        userList.value = {}
+        userItemId.value = {}
+        window.$message?.error(msg)
+    }
+}
+
+//用户列表点击
+const userItemId = ref({})
+const userItemClick = (item) => {
+    userItemId.value = item
+    getLogDetail()
+}
+
+//日志填报详情
+const getLogDetail = async () => {
+    const item = userItemId.value
+    const {error, code, data, msg} = await logsApi.getLogDetail({
+        id: item.id
+    })
+    //判断状态
+    if (!error && code === 200) {
+        console.log(data)
+    } else {
+        window.$message?.error(msg)
+    }
+}
+
+
+
 //风险预警
 const riskWarning = ref('')