瀏覽代碼

视图修改

yanshichao 1 年之前
父節點
當前提交
717a11ce5a
共有 2 個文件被更改,包括 152 次插入182 次删除
  1. 74 90
      src/views/task/projectView.vue
  2. 78 92
      src/views/task/view.vue

+ 74 - 90
src/views/task/projectView.vue

@@ -105,72 +105,71 @@
       </el-table-column>
       <el-table-column align="center" v-for="header in tableHeaders" :key="header.day" :prop="header.day" width="42">
         <template slot="header">
-          <div style="width:32px;font-size: 10px;text-align: center">{{ header.day }}</div>
-          <div v-if="header.week=='周六'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
-          <div v-else-if="header.week=='周日'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
-          <div v-else-if="header.week=='今日'" class="view-cell" style="color: #008000">{{ header.week }}</div>
-          <div v-else class="view-cell">{{ header.week }}</div>
+          <div style="width:40px;text-align: center">
+            <div style="font-size: 10px;text-align: center">{{ header.day }}</div>
+            <div v-if="header.week=='周六'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
+            <div v-else-if="header.week=='周日'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
+            <div v-else-if="header.week=='今日'" class="view-cell" style="color: #008000">{{ header.week }}</div>
+            <div v-else class="view-cell">{{ header.week }}</div>
+          </div>
         </template>
         <template slot-scope="scope">
           <span v-if="scope.row[header.day].comment" class="comment-badge"></span>
-          <div v-popover:popover style="font-size: 10px;cursor: pointer">{{ scope.row[header.day].value }}</div>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <el-popover
-      ref="popover"
-      placement="top"
-      width="700"
-      v-model="popoverVisible"
-      trigger="manual">
-      <el-table :data="feedbacks" border size="mini">
-        <el-table-column width="75" label="反馈状态">
-          <template slot-scope="temp">
-            <div>{{ getFeedbackTypeName(temp.row.feedbackType) }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column width="60" property="userName" label="反馈人"></el-table-column>
-        <el-table-column width="55" label="完成度">
-          <template slot-scope="temp">
-            <div>{{ !temp.row.value ? '' : temp.row.value + '%' }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column width="60" prop="hours" label="工时(h)"></el-table-column>
-        <el-table-column width="110" property="createTime" label="反馈时间">
-          <template slot-scope="temp">
-            <div>{{ parseTime(temp.row.createTime) }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column label="反馈备注">
-          <template slot-scope="temp">
-            <div>
-              <span style="margin-right: 5px">{{ temp.row.description }}</span>
-              <span v-for="(file,index) in temp.row.fileList">
-                      <a :href="file.url" style="color: darkgreen">
+          <el-popover
+            v-if="scope.row[header.day].value!=''"
+            placement="top"
+            width="700"
+            trigger="click">
+            <el-table :data="feedbacks" border size="mini">
+              <el-table-column width="75" label="反馈状态" align="center">
+                <template slot-scope="temp">
+                  <div>{{ getFeedbackTypeName(temp.row.feedbackType) }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column width="60" property="userName" label="反馈人" align="center"/>
+              <el-table-column width="55" label="完成度" align="center">
+                <template slot-scope="temp">
+                  <div>{{ !temp.row.value ? '' : temp.row.value + '%' }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column width="60" prop="hours" label="工时(h)" align="center"/>
+              <el-table-column width="110" property="createTime" label="反馈时间" align="center">
+                <template slot-scope="temp">
+                  <div>{{ parseTime(temp.row.createTime) }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column label="反馈备注" align="center">
+                <template slot-scope="temp">
+                  <div>
+                    <span>{{ temp.row.description }}</span>
+                    <span v-for="(file,index) in temp.row.fileList">
+                                <a :href="file.url" style="color: darkgreen">
                                   <span style="margin-left: 5px">{{ file.name }}</span>
-                      </a>
+                                </a>
                     </span>
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column label="当前达成进度" width="100px" align="center">
+                <template slot-scope="temp">
+                  <el-popover
+                    v-if="temp.row.descriptionDetail&&temp.row.descriptionDetail.length>0"
+                    placement="top"
+                    width="600"
+                    trigger="hover">
+                    <div v-html="temp.row.descriptionDetail"></div>
+                    <el-button slot="reference" type="text">详情</el-button>
+                  </el-popover>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div slot="reference" style="line-height:40px;font-size: 10px;cursor: pointer">
+              {{ scope.row[header.day].value }}
             </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="当前达成进度" width="100px">
-          <template slot-scope="temp">
-            <el-popover
-              v-if="temp.row.descriptionDetail&&temp.row.descriptionDetail.length>0"
-              placement="top"
-              width="600"
-              trigger="hover">
-              <div v-html="temp.row.descriptionDetail"></div>
-              <el-button slot="reference"
-                         type="text">详情
-              </el-button>
-            </el-popover>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-popover>
-
+          </el-popover>
+        </template>
+      </el-table-column>
+    </el-table>
 
     <el-dialog title="添加评论" :visible.sync="open" width="680px" class="feed-dialog" append-to-body @close="cancel">
       <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
@@ -258,7 +257,6 @@ export default {
       tableData: [],
       page: 0,
       total: 0,
-      popoverVisible: false,
       open: false,
       form: {},
       feedbacks: [],
@@ -351,33 +349,21 @@ export default {
     },
 
     cellClick(row, column, cell, event) {
-      this.popoverVisible = false;
-      clearTimeout(this.clickTimer);
-      this.clickTimer = setTimeout(() => {
-        if (!row[column.property].value || row[column.property].value === '') {
-          return;
-        }
-        let date = row[column.property].date
-        if (DateUtil.unix(date) > DateUtil.unix()) {
-          return;
-        }
-        getFeedbackList(row.id, date).then(res => {
-          this.feedbacks = res.data.map(item => {
-            item['executor'] = row.executor
-            return item
-          })
+      if (!row[column.property].value || row[column.property].value === '') {
+        return;
+      }
+      let date = row[column.property].date
+      if (DateUtil.unix(date) > DateUtil.unix()) {
+        return;
+      }
+      getFeedbackList(row.id, date).then(res => {
+        this.feedbacks = res.data.map(item => {
+          item['executor'] = row.executor
+          return item
         })
-        this.$refs.popover.doDestroy(true);
-        this.$nextTick(() => {
-          this.$refs.popover.referenceElm = event.target;
-          this.popoverVisible = true;
-        });
-      }, 300)
-
+      })
     },
     cellDbClick(row, column, cell, event) {
-      clearTimeout(this.clickTimer);
-      this.popoverVisible = false;
       if (row.status === '4' || row.status === '5') {
         return;
       }
@@ -503,13 +489,11 @@ export default {
 
 <style scoped lang="scss">
 ::v-deep.el-table .cell {
-  padding-left: 5px;
-  padding-right: 5px;
+  padding: 0px;
 }
 
 ::v-deep.el-table th.el-table__cell > .cell {
-  padding-left: 5px;
-  padding-right: 5px;
+  padding: 0px
 }
 
 .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
@@ -517,7 +501,7 @@ export default {
 }
 
 .view-cell {
-  width: 32px;
+  width: 40px;
   font-size: 10px;
   text-align: center
 }

+ 78 - 92
src/views/task/view.vue

@@ -85,78 +85,78 @@
       </el-table-column>
       <el-table-column align="center" v-for="header in tableHeaders" :key="header.day" :prop="header.day" width="42">
         <template slot="header">
-          <div style="width: 32px;font-size: 10px;text-align: center">{{ header.day }}</div>
-          <div v-if="header.week=='周六'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
-          <div v-else-if="header.week=='周日'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
-          <div v-else-if="header.week=='今日'" class="view-cell" style="color: #008000">{{ header.week }}</div>
-          <div v-else class="view-cell">{{ header.week }}</div>
+          <div style="width:40px;text-align: center">
+            <div style="font-size: 10px;">{{ header.day }}</div>
+            <div v-if="header.week=='周六'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
+            <div v-else-if="header.week=='周日'" class="view-cell" style="color: #1c84c6">{{ header.week }}</div>
+            <div v-else-if="header.week=='今日'" class="view-cell" style="color: #008000">{{ header.week }}</div>
+            <div v-else class="view-cell">{{ header.week }}</div>
+          </div>
         </template>
         <template slot-scope="scope">
           <span v-if="scope.row[header.day].comment" class="comment-badge"></span>
           <span v-if="scope.row[header.day].audit" class="audit-badge"></span>
-          <div v-popover:popover style="font-size: 10px;cursor: pointer">{{ scope.row[header.day].value }}</div>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <el-popover
-      ref="popover"
-      placement="top"
-      width="700"
-      v-model="popoverVisible"
-      trigger="manual">
-      <el-table :data="feedbacks" border size="mini">
-        <el-table-column width="75" label="反馈状态">
-          <template slot-scope="temp">
-            <div>{{ getFeedbackTypeName(temp.row.feedbackType) }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column width="60" property="userName" label="反馈人"></el-table-column>
-        <el-table-column width="55" label="完成度">
-          <template slot-scope="temp">
-            <div>{{ temp.row.feedbackType === '4' ? '' : temp.row.value + '%' }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column width="60" prop="hours" label="工时(h)"></el-table-column>
-        <el-table-column width="110" property="createTime" label="反馈时间">
-          <template slot-scope="temp">
-            <div>{{ parseTime(temp.row.createTime) }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column label="反馈备注">
-          <template slot-scope="temp">
-            <div>
-              <span style="margin-right: 5px">{{ temp.row.description }}</span>
-              <span v-for="(file,index) in temp.row.fileList">
-                      <a :href="file.url" style="color: darkgreen">
+          <el-popover
+            v-if="scope.row[header.day].value!=''"
+            placement="top"
+            width="700"
+            trigger="click">
+            <el-table :data="feedbacks" border size="mini">
+              <el-table-column width="75" label="反馈状态" align="center">
+                <template slot-scope="temp">
+                  <div>{{ getFeedbackTypeName(temp.row.feedbackType) }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column width="60" property="userName" label="反馈人" align="center"/>
+              <el-table-column width="55" label="完成度" align="center">
+                <template slot-scope="temp">
+                  <div>{{ !temp.row.value ? '' : temp.row.value + '%' }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column width="60" prop="hours" label="工时(h)" align="center"/>
+              <el-table-column width="110" property="createTime" label="反馈时间" align="center">
+                <template slot-scope="temp">
+                  <div>{{ parseTime(temp.row.createTime) }}</div>
+                </template>
+              </el-table-column>
+              <el-table-column label="反馈备注" align="center">
+                <template slot-scope="temp">
+                  <div>
+                    <span>{{ temp.row.description }}</span>
+                    <span v-for="(file,index) in temp.row.fileList">
+                                <a :href="file.url" style="color: darkgreen">
                                   <span style="margin-left: 5px">{{ file.name }}</span>
-                      </a>
+                                </a>
                     </span>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="当前达成进度" width="100px">
-          <template slot-scope="temp">
-            <el-popover
-              v-if="temp.row.descriptionDetail&&temp.row.descriptionDetail.length>0"
-              placement="top"
-              width="600"
-              trigger="hover">
-              <div v-html="temp.row.descriptionDetail"></div>
-              <el-button slot="reference"
-                         type="text">详情
-              </el-button>
-            </el-popover>
-            <span
-              v-if="(temp.row.feedbackType === '4'||temp.row.feedbackType === '5')&& temp.row.executor===userId && temp.row.commentConfirm!='1'"
-              style="margin-left: 10px">
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column label="当前达成进度" width="100px" align="center">
+                <template slot-scope="temp">
+                  <el-popover
+                    v-if="temp.row.descriptionDetail&&temp.row.descriptionDetail.length>0"
+                    placement="top"
+                    width="600"
+                    trigger="hover">
+                    <div v-html="temp.row.descriptionDetail"></div>
+                    <el-button slot="reference" type="text">详情</el-button>
+                  </el-popover>
+                  <span
+                    v-if="(temp.row.feedbackType === '4'||temp.row.feedbackType === '5')&& scope.row.executor===userId && temp.row.commentConfirm!='1'"
+                    style="margin-left: 10px">
                   <el-button type="text" icon="el-icon-thumb" size="mini"
                              @click="confirmComment(temp.row)">确认</el-button>
                   </span>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-popover>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div slot="reference" style="line-height:40px;font-size: 10px;cursor: pointer">
+              {{ scope.row[header.day].value }}
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+    </el-table>
 
     <el-dialog title="反馈任务" :visible.sync="open" width="680px" class="feed-dialog" append-to-body @close="cancel">
       <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="106px">
@@ -471,33 +471,21 @@ export default {
     },
 
     cellClick(row, column, cell, event) {
-      this.popoverVisible = false;
-      clearTimeout(this.clickTimer);
-      this.clickTimer = setTimeout(() => {
-        if (!row[column.property].value || row[column.property].value === '') {
-          return;
-        }
-        let date = row[column.property].date
-        if (DateUtil.unix(date) > DateUtil.unix()) {
-          return;
-        }
-        getFeedbackList(row.id, date).then(res => {
-          this.feedbacks = res.data.map(item => {
-            item['executor'] = row.executor
-            return item
-          })
+      if (!row[column.property].value || row[column.property].value === '') {
+        return;
+      }
+      let date = row[column.property].date
+      if (DateUtil.unix(date) > DateUtil.unix()) {
+        return;
+      }
+      getFeedbackList(row.id, date).then(res => {
+        this.feedbacks = res.data.map(item => {
+          item['executor'] = row.executor
+          return item
         })
-        this.$refs.popover.doDestroy(true);
-        this.$nextTick(() => {
-          this.$refs.popover.referenceElm = event.target;
-          this.popoverVisible = true;
-        });
-      }, 300)
+      })
     },
     cellDbClick(row, column, cell, event) {
-      clearTimeout(this.clickTimer);
-      this.popoverVisible = false;
-      this.$refs.popover.doDestroy(true);
       let feedbackDate = DateUtil.getFeedBackDate(this.queryParams.startDate, this.queryParams.endDate, column.property)
       if (DateUtil.unix(feedbackDate) > DateUtil.unix()) {
         this.$message.warning("反馈时间不能超过:" + DateUtil.day())
@@ -682,13 +670,11 @@ export default {
 
 <style scoped lang="scss">
 ::v-deep.el-table .cell {
-  padding-left: 5px;
-  padding-right: 5px;
+  padding: 0px;
 }
 
 ::v-deep.el-table th.el-table__cell > .cell {
-  padding-left: 5px;
-  padding-right: 5px;
+  padding: 0px;
 }
 
 .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
@@ -696,7 +682,7 @@ export default {
 }
 
 .view-cell {
-  width: 32px;
+  width: 40px;
   font-size: 10px;
   text-align: center
 }