wsx 10 ماه پیش
والد
کامیت
ccbbf22b30

+ 149 - 132
src/views/project-manage/task-manage/components/base-form.vue

@@ -189,151 +189,168 @@
 </template>
 
 <script>
-import PersonSelect from '@/components/CommomSelect/person-select.vue';
-import moment from 'moment';
+  import PersonSelect from '@/components/CommomSelect/person-select.vue';
+  import moment from 'moment';
 
-export default {
-  name: 'base-form',
-  components: { PersonSelect },
-  props: {
-    dialogType: {
-      type: String,
-      default: ''
-    },
-    dialogForm: {
-      type: Object,
-      default: () => {
-        return {};
+  export default {
+    name: 'base-form',
+    components: { PersonSelect },
+    props: {
+      dialogType: {
+        type: String,
+        default: ''
+      },
+      dialogForm: {
+        type: Object,
+        default: () => {
+          return {};
+        }
+      },
+      deptList: {
+        type: Array,
+        default() {
+          return [];
+        }
+      },
+      userList: {
+        type: Array,
+        default() {
+          return [];
+        }
+      },
+      deptTreeList: {
+        type: Array,
+        default() {
+          return [];
+        }
       }
     },
-    deptList: {
-      type: Array,
-      default() {
-        return [];
+    watch: {
+      dialogForm: {
+        handler(val) {
+          for (const key in this.form) {
+            if (key == 'relationType') {
+              this.form[key] = this.dialogForm[key];
+            } else {
+              this.form[key] = this.dialogForm[key] || this.form[key];
+            }
+          }
+        },
+        deep: true
+      },
+      userList: {
+        handler(newList, oldList) {
+          if (this.dialogType === 'edit') {
+            if (this.isFirstEdit) {
+              // 首次进入修改操作,不做清空处理
+              this.isFirstEdit = false;
+            } else {
+              // 非首次进入修改操作,正常清空
+              this.form.responsibleUserIds = [];
+            }
+          } else {
+            // 非修改操作,正常清空
+            this.form.responsibleUserIds = [];
+          }
+        },
+        deep: true
       }
     },
-    userList: {
-      type: Array,
-      default() {
-        return [];
+    computed: {
+      getCrcle() {
+        let result = '';
+        if (this.form['planEndDate'] && this.form['planStartDate']) {
+          const a = moment(this.form.planEndDate);
+          const b = moment(this.form.planStartDate);
+          result = a.diff(b, 'days') + 1 + ' 天'; // 1
+          this.form.budget = result;
+          return result;
+        }
+        return result;
       }
     },
-    deptTreeList: {
-      type: Array,
-      default() {
-        return [];
-      }
-    }
-  },
-  watch: {
-    dialogForm: {
-      handler(val) {
-        for (const key in this.form) {
-          if (key == 'relationType') {
-            this.form[key] = this.dialogForm[key];
-          } else {
-            this.form[key] = this.dialogForm[key] || this.form[key];
+    data() {
+      return {
+        isFirstEdit: true,
+        form: {
+          beforeTaskId: '',
+          code: '',
+          budget: '',
+          responsibleUserIds: [],
+          remark: '',
+          milepost: '0',
+          planStartDate: '',
+          planEndDate: '',
+          proportion: '',
+          cost: '',
+          type: '',
+          name: '',
+          responsibleDeptId: '',
+          taskFilesList: []
+        },
+        rules: {
+          type: {
+            required: true,
+            message: '请选择任务类型',
+            trigger: 'change'
+          },
+          name: { required: true, message: '请输入任务名称', trigger: 'blur' },
+          code: { required: true, message: '请输入任务编码', trigger: 'blur' },
+          planStartDate: {
+            required: true,
+            message: '请选择计划开始日期',
+            trigger: 'change'
+          },
+          planEndDate: {
+            required: true,
+            message: '请选择计划完成日期',
+            trigger: 'change'
+          },
+          responsibleUserIds: {
+            required: true,
+            message: '请选择执行人',
+            trigger: 'change'
+          },
+          responsibleDeptId: {
+            required: true,
+            message: '请选择负责部门',
+            trigger: 'change'
+          },
+          proportion: {
+            required: true,
+            message: '请输入权重占比',
+            trigger: ['change', 'blur']
+          },
+          cost: {
+            required: true,
+            message: '请输入费用',
+            trigger: ['change', 'blur']
           }
-        }
-      },
-      deep: true
+        },
+        usersList: []
+      };
     },
-    userList: {
-      handler(val) {
-        // this.form.responsibleUserIds = [];
-      }
-    }
-  },
-  computed: {
-    getCrcle() {
-      let result = '';
-      if (this.form['planEndDate'] && this.form['planStartDate']) {
+    methods: {
+      setCycleValue(val, prop) {
+        if (!this.form[prop] || !val) return (this.form.budget = '');
         const a = moment(this.form.planEndDate);
         const b = moment(this.form.planStartDate);
-        result = a.diff(b, 'days') + 1 + ' 天'; // 1
-        this.form.budget = result;
-        return result;
-      }
-      return result;
-    }
-  },
-  data() {
-    return {
-      form: {
-        beforeTaskId: '',
-        code: '',
-        budget: '',
-        responsibleUserIds: [],
-        remark: '',
-        milepost: '0',
-        planStartDate: '',
-        planEndDate: '',
-        proportion: '',
-        cost: '',
-        type: '',
-        name: '',
-        responsibleDeptId: '',
-        taskFilesList: []
+        this.form.budget = a.diff(b, 'days') + 1 + ' 天'; // 1
       },
-      rules: {
-        type: { required: true, message: '请选择任务类型', trigger: 'change' },
-        name: { required: true, message: '请输入任务名称', trigger: 'blur' },
-        code: { required: true, message: '请输入任务编码', trigger: 'blur' },
-        planStartDate: {
-          required: true,
-          message: '请选择计划开始日期',
-          trigger: 'change'
-        },
-        planEndDate: {
-          required: true,
-          message: '请选择计划完成日期',
-          trigger: 'change'
-        },
-        responsibleUserIds: {
-          required: true,
-          message: '请选择执行人',
-          trigger: 'change'
-        },
-        responsibleDeptId: {
-          required: true,
-          message: '请选择负责部门',
-          trigger: 'change'
-        },
-        proportion: {
-          required: true,
-          message: '请输入权重占比',
-          trigger: ['change', 'blur']
-        },
-        cost: {
-          required: true,
-          message: '请输入费用',
-          trigger: ['change', 'blur']
-        }
-      }
-    };
-  },
-  methods: {
-    setCycleValue(val, prop) {
-      if (!this.form[prop] || !val) return (this.form.budget = '');
-      const a = moment(this.form.planEndDate);
-      const b = moment(this.form.planStartDate);
-      this.form.budget = a.diff(b, 'days') + 1 + ' 天'; // 1
-    },
-    validForm() {
-      return new Promise((resolve, reject) => {
-        this.$refs.form.validate((valid) => {
-          if (!valid) {
-            this.$message.warning('有必填项未填,请检查');
-            reject('有必填项未填,请检查');
-          } else {
-            resolve(this.form);
-          }
+      validForm() {
+        return new Promise((resolve, reject) => {
+          this.$refs.form.validate((valid) => {
+            if (!valid) {
+              this.$message.warning('有必填项未填,请检查');
+              reject('有必填项未填,请检查');
+            } else {
+              resolve(this.form);
+            }
+          });
         });
-      });
+      }
     }
-  }
-};
+  };
 </script>
 
-<style scoped lang="scss">
-</style>
+<style scoped lang="scss"></style>

+ 0 - 1
src/views/project-manage/task-manage/components/deliverablesInfoTable.vue

@@ -31,7 +31,6 @@
           <el-popconfirm
             class="ele-action"
             title="确定要删除此信息吗?"
-            :disabled="form.datasource.length==1"
             @confirm="handleDelInfo($index)"
           >
             <template v-slot:reference>