jinlin
2024-01-10 cdf29a8f6fb9990f82ccc1d3f47bfba48cfaf4fc
web/src/views/modules/project/Project-AddOrUpdate.vue
@@ -1,7 +1,8 @@
<template>
  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
<!--    <div class="fa-card-a fa-box-a" style="height: calc(100vh - 130px)">-->
      <el-form ref="dataForm" style="padding: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" label-width="120px"
    <el-form ref="dataForm" style="padding: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm"
             label-width="120px"
               class="projectAuto">
        <div class="DManageForm">
          <el-form-item label-width="80px" label="项目编号" prop="code" style="width: 99%;margin-bottom:-5px" readonly>
@@ -15,11 +16,13 @@
            </div>
            <div class="DSTOld-1-Form">
              <!-- 单位名称 -->
              <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="entrustUnitName" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="entrustUnitName" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.entrustUnitName" placeholder="请输入单位名称"></el-input>
              </zt-form-item>
              <!-- 联系人 -->
              <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="entrustUnitContact" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="entrustUnitContact" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.entrustUnitContact" placeholder="请输入联系人"></el-input>
              </zt-form-item>
@@ -39,11 +42,13 @@
            </div>
            <div class="DSTOld-1-Form">
              <!-- 单位名称 -->
              <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="developUnitName" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="developUnitName" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.developUnitName" placeholder="请输入单位名称"></el-input>
              </zt-form-item>
              <!-- 联系人 -->
              <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="developUnitContact" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="developUnitContact" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.developUnitContact" placeholder="请输入联系人"></el-input>
              </zt-form-item>
              <!-- 详细地址 -->
@@ -62,11 +67,13 @@
            </div>
            <div class="DSTOld-1-Form">
              <!-- 单位名称 -->
              <zt-form-item class="marginTopAndMarginBottom" label="软件名称" prop="softwareName" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="软件名称" prop="softwareName" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称"></el-input>
              </zt-form-item>
              <!-- 联系人 -->
              <zt-form-item class="marginTopAndMarginBottom" label="软件标识" prop="softwareIdentity" style="width: 49%" rules="required">
            <zt-form-item class="marginTopAndMarginBottom" label="软件标识" prop="softwareIdentity" style="width: 49%"
                          rules="required">
                <el-input v-model="dataForm.softwareIdentity" placeholder="请输入软件标识"></el-input>
              </zt-form-item>
              <!-- 详细地址 -->
@@ -95,31 +102,36 @@
              项目责任人
            </div>
            <div class="DSTOld-1-Form">
              <!-- 项目负责人 -->
              <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目负责人" prop="projectLeader" style="width: 48%" rules="required">
                <zt-select v-model="dataForm.projectLeader" url="/sys/userEx/getUsersList" placeholder="项目负责人"/>
<!--                <el-input v-model="dataForm.projectLeader" placeholder="请输入项目负责人"></el-input>-->
<!--                <el-select  v-model="dataForm.projectLeader"   placeholder="项目负责人" style="width: 100%">-->
<!--                  <el-option v-for="data in dataList"></el-option>-->
<!--                </el-select>-->
<!--                <el-select v-model="dataForm.projectLeader" clearable placeholder="项目负责人">-->
<!--                  <el-option v-for="item in dataList" :key="item.value" :label="item.label"-->
<!--                             :value="item.value"/>-->
<!--                </el-select>-->
              </zt-form-item>
              <!-- 项目测试人员 -->
              <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目测试人员" prop="projectTesters" style="width: 48%" rules="required">
<!--                <el-input v-model="dataForm.projectTesters" placeholder="请输入项目测试人员"></el-input>-->
                <zt-select v-model="dataForm.projectTesters" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="项目测试人员"/>
              </zt-form-item>
              <!-- 项目审核人 -->
              <zt-form-item label-width="120px" label="项目审核人" prop="projectReviewer" style="width: 48%" rules="required">
<!--                <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>-->
                <zt-select v-model="dataForm.projectReviewer" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="项目审核人"/>
            <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="所属部门" prop="bizDeptId"
                          style="width: 48%">
              <zt-select v-model="dataForm.bizDeptId" :datas="bizDeptList" onchange="getUserList()" placeholder="所属部门"/>
              </zt-form-item>
              <!-- 是否签署合同 -->
              <zt-form-item label-width="120px" label="是否签署合同" prop="isContract" style="width: 48%" rules="required">
            <zt-form-item label-width="120px" label="是否签署合同" prop="isContract" style="width: 48%">
                <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict>
            </zt-form-item>
            <!-- 项目负责人 -->
            <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目负责人" prop="projectLeader"
                          style="width: 48%">
              <zt-select v-model="dataForm.projectLeader" :datas="projectLeaderList" placeholder="项目负责人"/>
            </zt-form-item>
            <!-- 项目测试人员 -->
            <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目测试人员" prop="projectTesters"
                          style="width: 48%">
              <!--                <el-input v-model="dataForm.projectTesters" placeholder="请输入项目测试人员"></el-input>-->
              <zt-select v-model="dataForm.projectTesters" :datas="projectTestersList" :multiple="true"
                         :clearable="true" placeholder="项目测试人员"/>
            </zt-form-item>
            <!-- 项目审核人 -->
            <zt-form-item label-width="120px" label="项目审核人" prop="projectReviewer" style="width: 48%">
              <!--                <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>-->
              <zt-select v-model="dataForm.projectReviewer" :datas="projectReviewerList" :multiple="true"
                         :clearable="true" placeholder="项目审核人"/>
            </zt-form-item>
            <zt-form-item label-width="120px" label="项目配置人" prop="projectConfiger" style="width: 48%">
              <!--                <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>-->
              <zt-select v-model="dataForm.projectConfiger" :datas="projectConfigerList" :multiple="true"
                         :clearable="true" placeholder="项目配置人"/>
              </zt-form-item>
            </div>
          </div>
@@ -152,53 +164,92 @@
          projectLeader: '',
          projectTesters: '',
          projectReviewer: '',
          projectConfiger: '',
          bizDeptId: '',
          isContract: '',
        }
        },
        projectLeaderList: [],
        projectTestersList: [],
        projectReviewerList: [],
        projectConfigerList: [],
        bizDeptList: [],
        bizDeptIdList: [],
      }
    },
    watch: {
      /*      bizDeptId(val, oldval) {
              alert(1)
              this.getUserList()
            },*/
    },
    methods: {
      init() {
        this.getInfo()
        this.getbizDept()
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/project/Project//${this.dataForm.id}`)
        console.log(this.dataForm.id, "async getInfo()")
        if (this.dataForm.id == undefined) {
          return
        }
        let res = await this.$http.get(`/project/Project/${this.dataForm.id}`)
        if (res.success) {
          this.dataForm = {
            ...this.dataForm,
            ...res.data
          }
          await this.getUserList()
        }
        if(this.dataForm && this.dataForm.projectTesters){
            this.dataForm.projectTesters=this.dataForm.projectTesters.split(',')
            console.log(this.dataForm.projectTesters)
          }
          if(this.dataForm && this.dataForm.projectReviewer){
            this.dataForm.projectReviewer=this.dataForm.projectReviewer.split(',')
            console.log(this.dataForm.projectReviewer)
      },
      async getUserList() {
        let res = await this.$http.get(`/project/Project/getUsersLists?deptId=${this.dataForm.bizDeptId}`)
        if (res.success) {
          this.projectLeaderList = res.data.zrr
          this.projectTestersList = res.data.csry
          this.projectReviewerList = res.data.shry
          this.projectConfigerList = res.data.pzry
          }
        console.log(this.dataForm,'this.dataForm')
      },
      async getbizDept() {
        let res = await this.$http.get(`/sys/dept/getList`)
        if (res.success) {
          this.bizDeptList = res.data;
        }
        console.log(this.bizDeptList, "getbizDept")
      },
      // 表单提交
      async formSubmit() {
        if(this.dataForm && this.dataForm.projectTesters){
        if (this.dataForm && this.dataForm.projectTesters instanceof Array) {
          this.dataForm.projectTesters=this.dataForm.projectTesters.join(',')
          console.log(this.dataForm.projectTesters)
        }
        if(this.dataForm && this.dataForm.projectReviewer){
        if (this.dataForm && this.dataForm.projectReviewer instanceof Array) {
          this.dataForm.projectReviewer=this.dataForm.projectReviewer.join(',')
          console.log(this.dataForm.projectReviewer)
        }
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project//', this.dataForm)
        if (this.dataForm && this.dataForm.projectConfiger instanceof Array) {
          this.dataForm.projectConfiger = this.dataForm.projectConfiger.join(',')
          console.log(this.dataForm.projectConfiger)
        }
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }else {
          if(this.dataForm && this.dataForm.projectTesters){
          if (this.dataForm && this.dataForm.projectTesters instanceof Array) {
            this.dataForm.projectTesters=this.dataForm.projectTesters.split(',')
            console.log(this.dataForm.projectTesters)
          }
          if(this.dataForm && this.dataForm.projectReviewer){
          if (this.dataForm && this.dataForm.projectReviewer instanceof Array) {
            this.dataForm.projectReviewer=this.dataForm.projectReviewer.split(',')
            console.log(this.dataForm.projectReviewer)
          }
          if (this.dataForm && this.dataForm.projectConfiger instanceof Array) {
            this.dataForm.projectConfiger = this.dataForm.projectConfiger.split(',')
            console.log(this.dataForm.projectConfiger)
          }
        }
      }
@@ -232,16 +283,20 @@
  border-left: 1px solid rgba(0,0,0,.2);
  width: 100%;
}
.el-border-left{
  border-left: 1px solid rgba(0,0,0,.2);
}
.DOldForm {
  width: 100%;
}
.el-border-top-and-bottom{
  border-top: 1px solid rgba(0,0,0,.2);
  border-bottom: 1px solid rgba(0,0,0,.2);
}
.DSTOld-1-Form {
  border-left: 1px solid rgba(0,0,0,.2);
  width: 100%;
@@ -250,9 +305,11 @@
.DSTOld-1-Form > .el-form-item>.el-form-item__content {
  width: calc(100% - 120px);
}
.DManageForm > .el-form-item>.el-form-item__content {
  width: calc(100% - 120px);
}
.el-border-bottom {
  border-bottom: 1px solid rgba(0,0,0,.2);
}
@@ -264,12 +321,15 @@
.zt .el-table.el-software th > .cell {
  font-weight: 500;
}
.DHold{
  font-weight: 600;
}
.zt .el-table.el-software{
  font-size: 14px;
}
.projectAuto .marginTopAndMarginBottom {
  margin-top: 10px !important;
  margin-bottom: 0 !important;