Browse Source

日志列表修改

xujunjie 1 year ago
parent
commit
713b58cf23
5 changed files with 89 additions and 40 deletions
  1. 1 5
      pages/daily/daily.vue
  2. 29 18
      pages/daily/form.vue
  3. 52 17
      pages/daily/projectDaily.vue
  4. 4 0
      services/daily.js
  5. 3 0
      utils/listMixin.js

+ 1 - 5
pages/daily/daily.vue

@@ -45,7 +45,6 @@
 import { queryDaily } from "@/services/daily";
 import mixin from "@/utils/listMixin";
 import moment from "moment";
-import { mapActions } from "vuex";
 
 export default {
   mixins: [mixin],
@@ -57,9 +56,7 @@ export default {
       list: [],
     };
   },
-  onLoad() {
-    this.queryProjectList();
-  },
+  
   onShow() {
     this.pagination.currentPage = 1;
     this.initData();
@@ -70,7 +67,6 @@ export default {
     },
   },
   methods: {
-    ...mapActions(["queryProjectList"]),
     handelSearchConfirm() {},
     scrollToLower() {
       if (this.list.length >= this.pagination.total) {

+ 29 - 18
pages/daily/form.vue

@@ -8,13 +8,7 @@
       <view class="forms">
         <view class="title2">张三的金科环境项目日志</view>
         <view class="title-sub">日志详情</view>
-        <uni-forms
-          :modelValue="formData"
-          label-position="left"
-          class="form"
-          ref="form"
-          :rules="rules"
-        >
+        <uni-forms label-position="left" class="form" ref="form" :rules="rules">
           <view class="box" v-for="item in formData" :key="item.key">
             <view
               v-show="formData.length > 1"
@@ -28,16 +22,21 @@
               name="project_name"
               class="formItem"
             >
-              <picker
-                @change="(e) => selectProject(item.key, e)"
-                :range="projectList"
-                range-key="Name"
-              >
-                <view class="select" v-if="item.project_name">
-                  {{ item.project_name }}
-                </view>
-                <view class="selectPlaceholder" v-else>请选择项目</view>
-              </picker>
+              <template v-if="!project_id">
+                <picker
+                  @change="(e) => selectProject(item.key, e)"
+                  :range="projectList"
+                  range-key="Name"
+                >
+                  <view class="select" v-if="item.project_name">
+                    {{ item.project_name }}
+                  </view>
+                  <view class="selectPlaceholder" v-else>请选择项目</view>
+                </picker>
+              </template>
+              <view class="select" v-else>
+                {{ getProjectName(project_id) }}
+              </view>
             </uni-forms-item>
             <uni-forms-item
               required
@@ -81,7 +80,7 @@ import {
   approvalLogDaily,
   approvalDelLog,
 } from "@/services/daily";
-import { mapState } from "vuex";
+import { mapState, mapActions } from "vuex";
 export default {
   data() {
     return {
@@ -110,16 +109,28 @@ export default {
       },
     };
   },
+  onLoad() {
+  },
   onLoad(options) {
+    this.queryProjectList();
     if (options.id) {
       this.initDate(options.id);
     }
+    if (options.project_id) {
+      this.project_id = options.project_id;
+      // this.formData[0].code_id = options.project_id
+    }
     this.log_id = options.id;
   },
   computed: {
     ...mapState(["projectList"]),
   },
   methods: {
+    ...mapActions(["queryProjectList"]),
+    getProjectName(id) {
+      const item = this.projectList.find(item => item.ID == id)
+      return item ? item.Name : '-'
+    },
     selectProject(key, e) {
       const select = this.projectList[e.target.value];
       const idx = this.formData.findIndex((item) => item.key == key);

+ 52 - 17
pages/daily/projectDaily.vue

@@ -19,7 +19,7 @@
           style="padding: 20rpx 30rpx"
           :radius="20"
           placeholder="请输入日志标题"
-          v-model="filter.searchKeyword"
+          v-model="projectFilter.searchKeyword"
           @confirm="handelSearchConfirm"
         />
         <view class="selectRow">
@@ -86,21 +86,22 @@
         scroll-y="true"
         @scrolltolower="scrollToLower()"
       >
-        <view class="item">
+        <view class="item" v-for="item in list" :key="item.id">
           <view class="box">
-            <view class="title">张三的金科环境项目日志</view>
+            <view class="title">{{ item.title }}</view>
             <view class="desc">
               <view class="desc-title">日志概述:</view>
               <view class="desc-content">
-                项目进展顺利项目进展顺利项目进项目进展顺利项目进展顺利项目进
+                {{ item.content }}
               </view>
             </view>
             <view class="bottom">
-              <view class="time">07-12 8:50</view>
-              <view class="user">提交人:xxx</view>
+              <view class="time">{{ item.c_time | time }}</view>
+              <view class="user">提交人:{{ item.author_name }}</view>
             </view>
           </view>
         </view>
+        <view class="loadmore">{{ loadMoreText }}</view>
       </scroll-view>
     </view>
   </view>
@@ -109,40 +110,74 @@
 <script>
 import uniDatetimePicker from "@/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue";
 import moment from "moment";
+import { queryProjectDaily } from "@/services/daily";
+import mixin from "@/utils/listMixin";
+
 export default {
   components: {
     uniDatetimePicker,
   },
+  mixins: [mixin],
   data() {
     return {
       scrollTop: 0,
-      filter: { searchKeyword: "" },
+      projectFilter: { searchKeyword: "", s_time: "", e_time: "" },
       project_id: "",
+      list: [],
+      loadMoreText: "暂无数据",
     };
   },
+  filters: {
+    time(t) {
+      return t ? moment(t).format("MM-DD HH:mm") : "-";
+    },
+  },
   methods: {
-    handelSearchConfirm() {},
-    handelChange() {},
+    handelSearchConfirm() {
+      this.pagination.currentPage = 1;
+      this.initData();
+    },
+    handelChange(e) {
+      this.projectFilter.author = e.target.value
+
+      this.pagination.currentPage = 1;
+      this.initData();
+    },
     scrollToLower() {
-      // if (this.projectList.length >= this.pagination.total) {
-      //   this.loadMoreText = "没有更多数据了";
-      //   return;
-      // }
-      // this.pagination.currentPage++;
-      // this.initData();
+      if (this.list.length >= this.pagination.total) {
+        this.loadMoreText = "没有更多数据了";
+        return;
+      }
+      this.pagination.currentPage++;
+      this.initData();
     },
     handelTimePickerChange(time) {
       if (time.length !== 2) {
         return;
       }
-      this.filter.start = moment(time[0]).format("YYYY-MM-DD 00:00:00");
+      this.projectFilter.s_time = moment(time[0]).format("YYYY-MM-DD 00:00:00");
+      this.projectFilter.e_time = moment(time[1]).format("YYYY-MM-DD 23:59:59");
 
-      this.filter.end = moment(time[1]).format("YYYY-MM-DD 23:59:59");
+      this.pagination.currentPage = 1;
+      this.initData();
+    },
+    async getList(params) {
+      console.log(params);
+      let res = await queryProjectDaily({
+        ...params,
+        project_id: this.project_id,
+      });
+      this.list = res.data.list;
+      return res.data;
     },
   },
   onLoad(options) {
     this.project_id = options.project_id;
   },
+  onShow() {
+    this.pagination.currentPage = 1;
+    this.initData();
+  },
 };
 </script>
 

+ 4 - 0
services/daily.js

@@ -4,6 +4,10 @@ import request from "./request";
 export async function queryDaily() {
   return await request("v2/approval/log-own/list", "GET");
 }
+// 请求项目日志列表
+export async function queryProjectDaily(params) {
+  return await request(`v2/approval/log-projects/${params.project_id}`, "GET", params);
+}
 export async function queryProjectList() {
   return await request("v2/workload/project", "GET");
 }

+ 3 - 0
utils/listMixin.js

@@ -23,6 +23,9 @@ export default {
         if (pagination.currentPage * pagination.pageSize >= pagination.total) {
           this.loadMoreText = "全部加载完毕";
         }
+        if(pagination.total == 0) {
+          this.loadMoreText = '暂无数据'
+        }
       });
     },
   },