wucl 2 年 前
コミット
795138fdd2

+ 43 - 23
src/views/item/list.vue

@@ -15,18 +15,18 @@
           round
           style="float: left"
         />
-<!--        <el-select-->
-<!--          v-model="listQuery.state"-->
-<!--          placeholder="状态"-->
-<!--          clearable-->
-<!--          filterable-->
-<!--          style="margin-left: 20px;width: 100px;float: left;"-->
-<!--          class="filter-item"-->
-<!--        >-->
-<!--          <el-option label="进行中" value="进行中"/>-->
-<!--          <el-option label="已完成" value="已完成"/>-->
-<!--          <el-option label="未开始" value="未开始"/>-->
-<!--        </el-select>-->
+        <el-select
+          v-model="listQuery.state"
+          placeholder="状态"
+          clearable
+          filterable
+          style="margin-left: 20px;width: 100px;float: left;"
+          class="filter-item"
+        >
+          <el-option label="进行中" value="进行中"/>
+          <el-option label="已完成" value="已完成"/>
+          <el-option label="未开始" value="未开始"/>
+        </el-select>
         <el-input
           v-model="listQuery.name"
           placeholder="项目名称"
@@ -62,44 +62,49 @@
             <span>{{ row.name }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="事业部流水号" align="center" width="140">
+        <el-table-column label="事业部流水号" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.businessNo }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="项目编号" align="center" width="140">
+        <el-table-column label="项目编号" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.oaNo }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="所属部门" align="center" width="140">
+        <el-table-column label="所属部门" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.departmentName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="业务来源" align="center" width="140">
+        <el-table-column label="业务来源" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.businessSource }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="委托单位" align="center" width="140">
+        <el-table-column label="委托单位" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.clientUnit}}</span>
           </template>
         </el-table-column>
-        <el-table-column label="委托人" align="center" width="140">
+        <el-table-column label="委托人" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.clientName}}</span>
           </template>
         </el-table-column>
-        <el-table-column label="合同金额" align="center" width="140">
+        <el-table-column label="合同金额" align="center" width="130">
           <template slot-scope="{row}">
             <span>{{ row.amount}}</span>
           </template>
         </el-table-column>
-        <el-table-column label="状态" align="center" width="140">
+        <el-table-column label="状态" align="center" width="130">
           <template slot-scope="{row}">
-            <span>{{ row.state}}</span>
+            <el-tag>{{ row.state}}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="当前阶段" align="center" width="130">
+          <template slot-scope="{row}">
+            <el-tag>{{computedStageName(row.stageName)}}</el-tag>
           </template>
         </el-table-column>
         <el-table-column label="操作" align="center">
@@ -159,7 +164,7 @@
               name=""
               type="success"
               :page-jump="true"
-              :page-query="{id: row.id,itemName:row.name}"
+              :page-query="{id: row.id,itemName:row.name,stageName:row.stageName,stageId:row.stageId}"
               round
               size="mini"
             />
@@ -205,7 +210,8 @@
           // name: '',
           // staffNo: '',
           descs: 'id',
-          me: false
+          me: false,
+          state:null
         },
         listQueryKey: 'keyword',
         importLoading: false,
@@ -213,6 +219,9 @@
     },
     created() {
       const that = this;
+      if (this.$router.currentRoute.path === '/item/list/me'){
+        this.listQuery.state = "进行中";
+      }
       that.getList()
     },
     methods: {
@@ -221,9 +230,20 @@
           current: 1,
           size: 10,
           descs: 'id',
+          me: false
+        }
+        if (this.$router.currentRoute.path === '/item/list/me'){
+          this.listQuery.me = true;
         }
         this.getList()
       },
+      computedStageName(val){
+        if (val===null || val===undefined || val === ''){
+          return "无";
+        }else {
+          return val;
+        }
+      },
       removeHandle(row) {
         // console.log(data)
         const that = this

+ 9 - 7
src/views/item/plan.vue

@@ -203,13 +203,6 @@
         users: []
       }
     },
-    computed: {
-      timeDefault() {
-        const date = new Date();
-        const s1 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate());
-        return s1;
-      }
-    },
     created() {
       this.getFlow();
       this.getSimpleAll();
@@ -260,6 +253,15 @@
           .catch(err => { console.error(err) })
       },
       saveNode(){
+        if (this.postForm.startDate>this.postForm.endDate){
+          this.$notify({
+            title: '错误',
+            message: '开始日期不能大于结束日期',
+            type: 'error',
+            duration: 2000
+          });
+          return;
+        }
         if (this.postForm.remark && this.postForm.remark.length>200){
           this.$notify({
             title: '错误',

+ 37 - 2
src/views/log/detail.vue

@@ -29,6 +29,22 @@
                   <el-row>
                     <el-col :xs="24" :sm="12" :lg="10" :span="6">
                       <el-form-item
+                        label="当前阶段:"
+                        prop="stageName"
+                        label-width="180px"
+                        class="postInfo-container-item"
+                      >
+                        <el-input :value="stageName" class="filter-item" readonly disabled/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+              </div>
+              <div>
+                <div class="postInfo-container">
+                  <el-row>
+                    <el-col :xs="24" :sm="12" :lg="10" :span="6">
+                      <el-form-item
                         label="日期:"
                         prop="logDate"
                         :rules="{required: true, message: '请选择日志日期', trigger: 'blur'}"
@@ -87,10 +103,13 @@
         postForm: {
           itemId: this.$route.query.id,
           userId: this.$store.getters.userInfo.id,
-          logDate:null
+          logDate:null,
+          stageId: this.$route.query.stageId,
         },
         itemId: this.$route.query.id,
         itemName: this.$route.query.itemName,
+        stageName: this.$route.query.stageName,
+        stageId: this.$route.query.stageId,
         activeName: 'first',
         vLoading: false,
         listQuery:{},
@@ -108,7 +127,7 @@
     computed: {
       timeDefault() {
         const date = new Date();
-        const s1 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate());
+        const s1 = date.getFullYear() + "-" + (this.getZero(date.getMonth() + 1)) + "-" + this.getZero((date.getDate()));
         return s1;
       }
     },
@@ -120,6 +139,13 @@
       //     });
       //   }
       // },
+      getZero(num) {
+        // 单数前面加0
+        if (parseInt(num) < 10) {
+          num = '0' + num;
+        }
+        return num;
+      },
       handleCreate() {
         if (this.postForm.taskSituation && this.postForm.taskSituation.length>200){
           this.$notify({
@@ -130,6 +156,15 @@
           });
           return;
         }
+        if (this.postForm.logDate>this.timeDefault){
+          this.$notify({
+            title: '错误',
+            message: '日期选择错误,不能选择还未开始的日期。',
+            type: 'error',
+            duration: 2000
+          });
+          return;
+        }
         this.vLoading = true;
 
         this.$refs.postForm.validate(valid => {

+ 17 - 0
src/views/log/edit.vue

@@ -29,6 +29,22 @@
                   <el-row>
                     <el-col :xs="24" :sm="12" :lg="10" :span="6">
                       <el-form-item
+                        label="当前阶段:"
+                        prop="stageName"
+                        label-width="180px"
+                        class="postInfo-container-item"
+                      >
+                        <el-input :value="stageName" class="filter-item" readonly disabled/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+              </div>
+              <div>
+                <div class="postInfo-container">
+                  <el-row>
+                    <el-col :xs="24" :sm="12" :lg="10" :span="6">
+                      <el-form-item
                         label="日期:"
                         prop="logDate"
                         :rules="{required: true, message: '请选择日志日期', trigger: 'blur'}"
@@ -86,6 +102,7 @@
         type: 'logDetail',
         postForm: {},
         id: this.$route.query.id,
+        stageName : this.$route.query.stageName,
         activeName: 'first',
         vLoading: false,
         listQuery:{},

+ 6 - 1
src/views/log/list.vue

@@ -55,6 +55,11 @@
             <span>{{ row.itemName }}</span>
           </template>
         </el-table-column>
+        <el-table-column label="阶段名称" align="center">
+          <template slot-scope="{row}">
+            <span>{{ row.stageName }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="创建时间" align="center">
           <template slot-scope="{row}">
             <span>{{ row.created }}</span>
@@ -68,7 +73,7 @@
               name=""
               type="primary"
               :page-jump="true"
-              :page-query="{id: row.id}"
+              :page-query="{id: row.id,stageName:row.stageName}"
               round
               size="mini"
             />

+ 106 - 11
src/views/log/rate.vue

@@ -13,16 +13,100 @@
         <el-table-column :label="name" v-for="(name,index) in userNames" :key="index" width="520px">
           <template slot-scope="{row}">
             <div v-for="(l,index) in row.list" :key="index">
-              <div class="content" v-if = "g.userName===name" v-for="g in l.logs" :key="g.id">
-                <el-tag>{{g.itemName}}</el-tag>
-                <span class="task">{{g.taskSituation}}</span>
-                <br/>
+              <div class="content" v-if = "g.userName===name" v-for="g in l.logs" :key="g.id" @click="openDetail(g.id)">
+                <el-tag effect="dark">{{g.itemName}}</el-tag>
+                <el-tag type="success" effect="dark">{{g.stageName===null?'无':g.stageName}}</el-tag>
+                <el-tooltip content="查看详情" placement="bottom" effect="light">
+                  <el-tag class="info" type="info" effect="dark">{{g.taskSituation}}</el-tag>
+                </el-tooltip>
               </div>
             </div>
           </template>
         </el-table-column>
       </el-table>
     </y-page-list-layout>
+    <el-dialog
+      width="600px"
+      title="日志详情"
+      :visible.sync="dialogFormVisible"
+      :close-on-click-modal="false"
+      custom-class="myDialog"
+    >
+      <el-form ref="postForm" :model="postForm" class="form-container">
+        <div>
+          <div class="postInfo-container">
+            <el-row>
+              <el-col :xs="24" :sm="12" :lg="18" :span="6">
+                <el-form-item
+                  label="项目名称:"
+                  prop="itemName"
+                  label-width="180px"
+                  class="postInfo-container-item"
+                >
+                  <el-input :value="postForm.itemName" class="filter-item" readonly/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+        <div>
+          <div class="postInfo-container">
+            <el-row>
+              <el-col :xs="24" :sm="12" :lg="18" :span="6">
+                <el-form-item
+                  label="阶段名称:"
+                  prop="stageName"
+                  label-width="180px"
+                  class="postInfo-container-item"
+                >
+                  <el-input :value="postForm.stageName" class="filter-item" readonly disabled/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+        <div>
+          <div class="postInfo-container">
+            <el-row>
+              <el-col :xs="24" :sm="12" :lg="18" :span="6">
+                <el-form-item
+                  label="日期:"
+                  prop="logDate"
+                  label-width="180px"
+                  class="postInfo-container-item"
+                >
+                  <el-date-picker
+                    :value="postForm.logDate"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    style="width: 100%"
+                    placeholder="选择日期"
+                    readonly
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+        <div>
+          <div class="postInfo-container">
+            <el-row>
+              <el-col :xs="24" :sm="12" :lg="18" :span="6">
+                <el-form-item
+                  label="每日任务情况:"
+                  prop="taskSituation"
+                  :rules="{required: true, message: '请填写每日任务情况', trigger: 'blur'}"
+                  label-width="180px"
+                  class="postInfo-container-item"
+                >
+                  <el-input type="textarea" :value="postForm.taskSituation" class="filter-item" readonly/>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -52,7 +136,9 @@
         scope: true,
         tableData: [],
         dates:[],
+        dialogFormVisible: false,
         userNames:[],
+        stageName: "第二阶段",
       }
     },
     created() {
@@ -70,6 +156,17 @@
 
     },
     methods:{
+      openDetail(id){
+        const that = this;
+        this.$api.itemLog.detail(id).then(res=>{
+          this.postForm = res.data;
+          setTimeout(() => {
+            that.dialogFormVisible = true;
+          }, 200)
+        }).catch(
+          that.dialogFormVisible = false
+        )
+      },
       getLogs(){
         this.$api.itemLog.collect({scope:this.scope, itemId: this.itemId}).then(res=>{
           this.tableData = res.data;
@@ -91,7 +188,6 @@
             list: list.filter(i=>i[key] === item)
           }
         })
-        console.log(newList);
         return newList;
       }
     }
@@ -101,12 +197,11 @@
   div.content{
     margin-bottom: 5px;
   }
-  span.task:hover{
-    background-color: #e8f4ff;
-    color: #1890ff;
-    border-radius: 5px;
-    margin: -2px;
-    padding: 3px;
+  .info:hover{
     cursor: pointer;
   }
+
+  /deep/.myDialog{
+    border-radius: 20px;
+  }
 </style>

+ 26 - 102
src/views/log/rateCollect.vue

@@ -14,9 +14,11 @@
           <template slot-scope="{row}">
             <div v-for="(l,index) in row.list" :key="index">
               <div class="content" v-if = "g.userName===name" v-for="g in l.logs" :key="g.id" @click="openDetail(g.id)">
-                <el-tag>{{g.itemName}}</el-tag>
-                <span class="task">{{g.taskSituation}}</span>
-                <br/>
+                <el-tag effect="dark">{{g.itemName}}</el-tag>
+                <el-tag type="success" effect="dark">{{g.stageName===null?'无':g.stageName}}</el-tag>
+                <el-tooltip content="查看详情" placement="bottom" effect="light">
+                  <el-tag class="info" type="info" effect="dark">{{g.taskSituation}}</el-tag>
+                </el-tooltip>
               </div>
             </div>
           </template>
@@ -28,6 +30,7 @@
       title="日志详情"
       :visible.sync="dialogFormVisible"
       :close-on-click-modal="false"
+      custom-class="myDialog"
     >
       <el-form ref="postForm" :model="postForm" class="form-container">
         <div>
@@ -51,36 +54,12 @@
             <el-row>
               <el-col :xs="24" :sm="12" :lg="18" :span="6">
                 <el-form-item
-                  label="日期:"
-                  prop="logDate"
-                  label-width="180px"
-                  class="postInfo-container-item"
-                >
-                  <el-date-picker
-                    :value="postForm.logDate"
-                    type="date"
-                    value-format="yyyy-MM-dd"
-                    style="width: 100%"
-                    placeholder="选择日期"
-                    readonly
-                  />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </div>
-        </div>
-        <div>
-          <div class="postInfo-container">
-            <el-row>
-              <el-col :xs="24" :sm="12" :lg="18" :span="6">
-                <el-form-item
-                  label="每日任务情况:"
-                  prop="taskSituation"
-                  :rules="{required: true, message: '请填写每日任务情况', trigger: 'blur'}"
+                  label="阶段名称:"
+                  prop="stageName"
                   label-width="180px"
                   class="postInfo-container-item"
                 >
-                  <el-input type="textarea" :value="postForm.taskSituation" class="filter-item" readonly/>
+                  <el-input :value="postForm.stageName" class="filter-item" readonly disabled/>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -91,38 +70,15 @@
             <el-row>
               <el-col :xs="24" :sm="12" :lg="18" :span="6">
                 <el-form-item
-                  label="计划完成时间:"
-                  prop="esitmateDate"
-                  label-width="180px"
-                  class="postInfo-container-item"
-                >
-                  <el-date-picker
-                    :value="postForm.esitmateDate"
-                    type="datetime"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    style="width: 100%"
-                    placeholder="选择日期"
-                    readonly
-                  />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </div>
-        </div>
-        <div>
-          <div class="postInfo-container">
-            <el-row>
-              <el-col :xs="24" :sm="12" :lg="18" :span="6">
-                <el-form-item
-                  label="实际完成日期:"
-                  prop="actualDate"
+                  label="日期:"
+                  prop="logDate"
                   label-width="180px"
                   class="postInfo-container-item"
                 >
                   <el-date-picker
-                    :value="postForm.actualDate"
-                    type="datetime"
-                    value-format="yyyy-MM-dd HH:mm:ss"
+                    :value="postForm.logDate"
+                    type="date"
+                    value-format="yyyy-MM-dd"
                     style="width: 100%"
                     placeholder="选择日期"
                     readonly
@@ -137,44 +93,13 @@
             <el-row>
               <el-col :xs="24" :sm="12" :lg="18" :span="6">
                 <el-form-item
-                  label="任务完成情况评价:"
-                  prop="summary"
-                  label-width="180px"
-                  class="postInfo-container-item"
-                >
-                  <el-input type="textarea" :value="postForm.summary" class="filter-item" readonly/>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </div>
-        </div>
-        <div>
-          <div class="postInfo-container">
-            <el-row>
-              <el-col :xs="24" :sm="12" :lg="18" :span="6">
-                <el-form-item
-                  label="超时或省时原因:"
-                  prop="reason"
-                  label-width="180px"
-                  class="postInfo-container-item"
-                >
-                  <el-input type="textarea" :value="postForm.reason" class="filter-item" readonly/>
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </div>
-        </div>
-        <div>
-          <div class="postInfo-container">
-            <el-row>
-              <el-col :xs="24" :sm="12" :lg="18" :span="6">
-                <el-form-item
-                  label="任务权重:"
-                  prop="weight"
+                  label="每日任务情况:"
+                  prop="taskSituation"
+                  :rules="{required: true, message: '请填写每日任务情况', trigger: 'blur'}"
                   label-width="180px"
                   class="postInfo-container-item"
                 >
-                  <el-input :value="postForm.weight" class="filter-item" readonly/>
+                  <el-input type="textarea" :value="postForm.taskSituation" class="filter-item" readonly/>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -209,7 +134,7 @@
         dates:[],
         userNames:[],
         dialogFormVisible: false,
-        postForm:{}
+        postForm:{},
       }
     },
     created() {
@@ -258,8 +183,7 @@
             [key]: item,
             list: list.filter(i=>i[key] === item)
           }
-        })
-        console.log(newList);
+        });
         return newList;
       }
     }
@@ -268,13 +192,13 @@
 <style lang="css" scoped>
     div.content{
       margin-bottom: 5px;
+      width: 8000px;
     }
-    span.task:hover{
-      background-color: #e8f4ff;
-      color: #1890ff;
-      border-radius: 5px;
-      margin: -2px;
-      padding: 3px;
+    .info:hover{
       cursor: pointer;
     }
+
+    /deep/.myDialog{
+      border-radius: 20px;
+    }
 </style>