ysc пре 2 година
родитељ
комит
020d84762e
2 измењених фајлова са 39 додато и 9 уклоњено
  1. 3 1
      src/views/task/task.vue
  2. 36 8
      src/views/task/view.vue

+ 3 - 1
src/views/task/task.vue

@@ -97,7 +97,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleAudit(scope.row)"
-            :disabled="scope.row.progressValue!=100||scope.row.status!='2'"
+            :disabled="scope.row.progressValue!=100||(scope.row.status!='2'&&scope.row.status!='3')"
             v-hasPermi="['task:task:audit']"
           >审核
           </el-button>
@@ -512,6 +512,7 @@ export default {
       this.$refs["auditForm"].validate(valid => {
         if (valid) {
           auditTask(this.auditForm).then(res => {
+            this.resetForm("auditForm");
             this.getList()
             this.detailOpen = false
             this.$message.success("操作成功");
@@ -522,6 +523,7 @@ export default {
     /** 分解任务提交按钮 */
     submitSplit() {
       splitTask(this.splitForm).then(res => {
+        this.resetForm("splitForm");
         this.getList()
         this.splitOpen = false
         this.$message.success("操作成功");

+ 36 - 8
src/views/task/view.vue

@@ -38,7 +38,7 @@
       size="mini"
       :cell-style="cellStyle"
       @cell-click="cellClick"
-      @cell-dblclick="cellDbclick"
+      @cell-dblclick="cellDbClick"
       @row-click="rowClick"
       height="calc(100vh - 140px)"
       border>
@@ -114,7 +114,7 @@
           <div>{{ form.feedbackDate }}</div>
         </el-form-item>
         <el-form-item label="反馈类型" prop="feedbackType">
-          <el-radio-group v-model="form.feedbackType">
+          <el-radio-group v-model="form.feedbackType" @input="feedbackTypeChange">
             <el-radio label="1">进度反馈</el-radio>
             <el-radio label="2">完成</el-radio>
             <el-radio label="3">终止</el-radio>
@@ -124,11 +124,11 @@
         <el-form-item label="进度" prop="value">
           <el-input-number v-model="form.value" :min="1" :max="100"></el-input-number>
         </el-form-item>
-        <el-form-item label="附件">
+        <el-form-item label="附件" prop="fileUrl">
           <file-upload @getFileUrl="getFileUrl" @removeFile="removeFile"></file-upload>
         </el-form-item>
         <el-form-item label="反馈描述" prop="description">
-          <el-input v-model="form.description" type="textarea"/>
+          <el-input v-model="form.description" type="textarea" autosize/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -163,6 +163,16 @@ const statusMap = {
 export default {
   components: {TaskDetail, FileUpload},
   data() {
+    let validateValue = (rule, value, callback) => {
+      if (this.form.feedbackType != '1' && this.form.feedbackType != '2') {
+        return callback();
+      }
+      if (!value) {
+        return callback(new Error('进度不能为空'));
+      }
+      return callback();
+    };
+
     return {
       queryParams: {
         projectId: undefined,
@@ -177,7 +187,18 @@ export default {
       form: {},
       feedbacks: [],
       visible: false,
-      rules: {},
+      rules: {
+        feedbackType: [
+          {required: true, message: "反馈类型不能为空", trigger: "change"}
+        ],
+        value: [
+          {validator: validateValue, trigger: 'blur'}
+        ],
+        description: [
+          {required: true, message: "反馈描述不能为空", trigger: "blur"},
+          {min: 3, max: 5, message: '长度在 3 到 500 个字符', trigger: 'blur'}
+        ]
+      },
       openDetail: false,
       detailForm: {},
       cellColorMap: {
@@ -186,7 +207,7 @@ export default {
         '3': '#f56c6c',
         '4': '#67c23a',
         '5': '#e6a23c',
-      }
+      },
     }
   },
   created() {
@@ -201,9 +222,9 @@ export default {
       })
     },
     getList() {
-      this.tableHeaders = this.getMonthDate(this.queryParams.month);
       listView(this.queryParams).then(res => {
         this.tableData = res.data
+        this.tableHeaders = this.getMonthDate(this.queryParams.month);
       })
     },
     cellStyle({row, column, rowIndex, columnIndex}) {
@@ -229,7 +250,7 @@ export default {
         this.feedbacks = res.data
       })
     },
-    cellDbclick(row, column, cell, event) {
+    cellDbClick(row, column, cell, event) {
       if (!row[column.property].color || row[column.property].color === 'white') {
         return
       }
@@ -262,6 +283,13 @@ export default {
         this.openDetail = true
       })
     },
+    feedbackTypeChange(val) {
+      if (val === '2') {
+        this.form.value = 100
+      } else {
+        this.form.value = undefined
+      }
+    },
     // 取消按钮
     cancel() {
       this.open = false;