董国庆
2025-06-20 30097725ef9d9ff79e54dbd86064b0dfe509a49f
修改request和项目组管理
4个文件已修改
114 ■■■■ 已修改文件
laboratory/src/components/SelectMember/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory/src/utils/request.js 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory/src/views/projectList/addProject.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory/src/views/projectList/editProject.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory/src/components/SelectMember/index.vue
@@ -180,10 +180,10 @@
                delete params.roleIds;
                // TODO: 这里需要替换为新的接口调用
                const res = await listByRole(params);
                this.tableData = res.filter(item => item.roleId == 4 || item.roleId == 5);
                this.tableData = res.filter(item => item.status==0 && (item.roleId == 4 || item.roleId == 5));
            } else {
                const res = await getUserList(params);
                this.tableData = res.records;
                this.tableData = res.records.filter(item=> item.status==0);
            }
            // 数据加载完成后重新应用选中状态
            this.setSelection(this.selectData)
@@ -195,7 +195,12 @@
            this.visible = true
        },
        close() {
            this.visible = false
            this.visible = false;
            this.selectData = [];
            this.roleId = null;
            this.search = '';
            this.nickNameOrPhone = '';
            this.tableData = [];
        },
        submit() {
            this.$emit('submit', this.selectData)
laboratory/src/utils/request.js
@@ -56,29 +56,53 @@
      }
    }
    if (res.data.code == 200) {
      if (!res.data) {
        return Promise.resolve({})
      }
      if (res.data.data.code == 200) {
        return Promise.resolve(res.data.data || res.data)
      } else if (res.data.data.code == 103 || res.data.data.code == 401) {
        Message({
          message: res.data.data.msg || '登录已过期,请重新登录',
          type: 'warning',
          duration: 2000
        })
      } else if (res.data.data.code == 500) {
    if (res.data.code == 200) {
      console.log('res.data',res.data)
      if (res.config.url.startsWith('/api')) { //有
        if(res.data.data.code == 200){
          return Promise.resolve(res.data.data || res.data)
        }
        if (res.data.data.code == 103 || res.data.data.code == 401) {
          Message({
            message: res.data.data.msg || '登录已过期,请重新登录',
            type: 'warning',
            duration: 2000
          })
          sessionStorage.clear();
          window.location.replace('/');
          return Promise.reject(res.data.data.data)
        }
        Message({
          message: res.data.data.msg || '服务器错误',
          type: 'error',
          duration: 2000
        })
        return Promise.reject(res.data.data)
      } else {
        return Promise.resolve(res.data.data || res.data)
        return Promise.reject(res.data.data.data)
      }
      if (!res.data) {
        return Promise.resolve({})
      }
      console.log('res', res.data.data || res.data)
      return Promise.resolve(res.data.data || res.data)
    } else {
      if (res.data.code == 103 || res.data.code == 401) {
        Message({
          message: res.data.msg || '登录已过期,请重新登录',
          type: 'warning',
          duration: 2000
        })
        sessionStorage.clear();
        window.location.replace('/');
        return Promise.reject(res.data.data)
      }
      Message({
        message: res.data.msg || '服务器错误',
        type: 'error',
        duration: 2000
      })
      return Promise.reject(res.data.data)
    }
  },
  error => {
laboratory/src/views/projectList/addProject.vue
@@ -44,7 +44,7 @@
    name: 'AddProject',
    data() {
        return {
            form: {},
            form: this.getDefaultForm(),
            rules: {
                teamName: [{ required: true, message: '请输入项目组名称', trigger: 'blur' }],
                personCharge: [{ required: true, message: '请输入项目组描述', trigger: 'blur' }]
@@ -58,6 +58,19 @@
        }
    },
    methods: {
        getDefaultForm() {
            return {
                teamName: '',
                personCharge: ''
            }
        },
        resetForm() {
            this.form = this.getDefaultForm();
            this.selectMemberData = [];
            if (this.$refs.form) {
                this.$refs.form.resetFields();
            }
        },
        submitForm() {
            this.$refs.form.validate((valid) => {
                if (valid) {
@@ -65,12 +78,7 @@
                        this.$message.error('请选择项目组成员')
                        return
                    }
                    const ROLE_NAME_TO_TYPE = {
                        '审批人': 2,
                        '工艺工程师': 3,
                        '实验员': 4,
                        '化验师': 5
                    };
                    const data = {
                        teamName: this.form.teamName,
                        personCharge: this.form.personCharge,
@@ -79,6 +87,7 @@
                            roleType: member.roleType
                        }))
                    }
                    console.log('data data data',data)
                    addProject(data).then(res => {
                        if (res.code == 200) {
                            this.$message.success('添加成功')
@@ -90,6 +99,9 @@
        },
        addMember() {
            this.$refs.selectMember.open()
            this.$nextTick(() => {
                this.$refs.selectMember.setSelection(this.selectMemberData);
            });
        },
        memberList(i) {
            switch (i) {
@@ -123,6 +135,9 @@
                this.$refs.selectMember.setSelection(this.selectMemberData);
            });
        }
    },
    mounted() {
        this.resetForm();
    }
}
</script>
laboratory/src/views/projectList/editProject.vue
@@ -23,7 +23,7 @@
                        <div :class="item == 1 || item == 2 ? 'member-name-box' : 'member-name-box-2'">
                            <el-tooltip v-for="i in memberList(item)" :key="i.userId" class="member-name" effect="dark"
                                :content="i.nickName" placement="top">
                                <span>{{ i.nickName }}</span>
                                <span style="overflow: hidden;width: 60px; display: block;padding: 0 7px;">{{ i.nickName }}</span>
                            </el-tooltip>
                        </div>
                        <div class="member-edit" v-if="memberList(item).length != 0" @click="editUserList">修改</div>
@@ -107,6 +107,9 @@
        },
        addMember() {
            this.$refs.selectMember.open()
            this.$nextTick(() => {
                this.$refs.selectMember.setSelection(this.selectMemberData);
            });
        },
        memberList(i) {
            switch (i) {
@@ -123,10 +126,23 @@
            }
        },
        selectUser(data) {
            // this.selectMemberData = data;
            for (const [roleId, config] of Object.entries(this.ROLE_CONFIG)) {
                const members = data.filter(item => item.roleName === config.label);
                if (members.length > config.limit) {
                    this.$message.error(`${config.label}最多只能选择${config.limit}个`);
                    return
                }
            }
            console.log('data data data',data)
            this.selectMemberData = data;
            this.$refs.selectMember.close();
        },
        editUserList() {
            this.$refs.selectMember.open(this.selectMemberData);
            this.$nextTick(() => {
                this.$refs.selectMember.setSelection(this.selectMemberData);
            });
        }
    }
}