| | |
| | | <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" class="projectAuto"> |
| | | <div class="DManageForm el-border-bottom"> |
| | | <zt-form-item label-width="60px" label="项目编号" prop="code" style="width: 99%" rules="required"> |
| | | <el-input v-model="dataForm.code"></el-input> |
| | | </zt-form-item> |
| | | </div> |
| | | <!-- <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" |
| | | class="projectAuto"> |
| | | <div class="DManageForm"> |
| | | <el-form-item label-width="80px" label="项目编号" prop="code" style="width: 99%;margin-bottom:-5px" readonly> |
| | | <span>{{dataForm.code}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="border: 1px solid rgba(0,0,0,.2)"> |
| | | <div class="el-flex el-border-bottom"> |
| | | <div class="DWidth DAlign DHold"> |
| | | 委托单位 |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item 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 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> |
| | | |
| | |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item 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 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> |
| | | <!-- 详细地址 --> |
| | |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item label="软件名称" prop="software" style="width: 49%" rules="required"> |
| | | <el-input v-model="dataForm.software" placeholder="请输入软件名称"></el-input> |
| | | <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 label="软件标识" prop="identity" style="width: 49%" rules="required"> |
| | | <el-input v-model="dataForm.identity" placeholder="请输入软件标识"></el-input> |
| | | <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> |
| | | <!-- 详细地址 --> |
| | | <zt-form-item label="密级" prop="secretClass" style="width: 49%" rules="required"> |
| | |
| | | <zt-form-item label="关键等级" prop="criticalLevel" style="width: 49%" rules="required"> |
| | | <zt-dict v-model="dataForm.criticalLevel" dict="critical_level"></zt-dict> |
| | | </zt-form-item> |
| | | <div class="el-flex" style="height: 40px;border-top:1px solid"> |
| | | <div class="el-flex" style="height: 40px;border-top:1px solid rgba(0,0,0,.2)"> |
| | | <div class="DWidth DAlign DHold"> |
| | | 软件类型 |
| | | </div> |
| | | <div style="width: calc(100% - 120px);"> |
| | | <el-checkbox-group v-model="dataForm.checkList"> |
| | | <el-checkbox :label="0">通用应用软件</el-checkbox> |
| | | <el-checkbox :label="1">行业应用软件</el-checkbox> |
| | | <el-checkbox :label="2">嵌入式软件</el-checkbox> |
| | | </el-checkbox-group> |
| | | <zt-dict v-model="dataForm.softwareType" :radio="true" dict="software_type" clearable></zt-dict> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | 项目责任人 |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item label-width="120px" label="项目负责人" prop="projectLeader" style="width: 48%" rules="required"> |
| | | <el-input v-model="dataForm.projectLeader" placeholder="请输入单位名称"></el-input> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="所属部门" prop="bizDeptId" |
| | | style="width: 48%"> |
| | | <zt-select v-model="dataForm.bizDeptId" :datas="bizDeptList" placeholder="所属部门"/> |
| | | </zt-form-item> |
| | | <!-- 联系人 --> |
| | | <zt-form-item label-width="120px" label="项目测试人员" prop="projectTesters" style="width: 48%" rules="required"> |
| | | <el-input v-model="dataForm.projectTesters" placeholder="请输入联系人"></el-input> |
| | | </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-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> |
| | | </el-form> |
| | | <!-- </div>--> |
| | | <!-- <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">--> |
| | | <!-- <zt-form-item label="委托单位名称" prop="entrustUnitName" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.entrustUnitName"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="委托单位地址" prop="entrustUnitAddress" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.entrustUnitAddress"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="委托单位联系人" prop="entrustUnitContact" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.entrustUnitContact"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="委托单位联系方式" prop="entrustUnitContWay" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.entrustUnitContWay"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="开发单位名称" prop="developUnitName" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.developUnitName"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="开发单位地址" prop="developUnitAddress" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.developUnitAddress"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="开发单位联系人" prop="developUnitContact" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.developUnitContact"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="开发单位联系方式" prop="developUnitContWay" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.developUnitContWay"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="软件名称" prop="software" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.software"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="项目编号" prop="code" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.code"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="项目标识" prop="identity" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.identity"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="密级" prop="secretClass" rules="required">--> |
| | | <!-- <zt-dict v-model="dataForm.secretClass" dict="secret_class"></zt-dict>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="关键等级" prop="criticalLevel" rules="required">--> |
| | | <!-- <zt-dict v-model="dataForm.criticalLevel" dict="critical_level"></zt-dict>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="项目负责人" prop="projectLeader" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.projectLeader"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="项目测试人员" prop="projectTesters" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.projectTesters"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="项目审核人员" prop="projectReviewer" rules="required">--> |
| | | <!-- <el-input v-model="dataForm.projectReviewer"></el-input>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- <zt-form-item label="是否签署合同" prop="isContract" rules="required">--> |
| | | <!-- <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict>--> |
| | | <!-- </zt-form-item>--> |
| | | <!-- </el-form>--> |
| | | </div> |
| | | </el-form> |
| | | </zt-dialog> |
| | | </template> |
| | | |
| | |
| | | developUnitAddress: '', |
| | | developUnitContact: '', |
| | | developUnitContWay: '', |
| | | checkList:[0,1], |
| | | software: '', |
| | | softwareType: '', |
| | | softwareName: '', |
| | | code: '', |
| | | identity: '', |
| | | softwareIdentity: '', |
| | | secretClass: '', |
| | | criticalLevel: '', |
| | | testLevel: '', |
| | | projectLeader: '', |
| | | projectTesters: '', |
| | | projectReviewer: '', |
| | | isContract: '' |
| | | } |
| | | projectConfiger: '', |
| | | bizDeptId: '', |
| | | isContract: '', |
| | | }, |
| | | projectLeaderList: [], |
| | | projectTestersList: [], |
| | | projectReviewerList: [], |
| | | projectConfigerList: [], |
| | | bizDeptList: [], |
| | | bizDeptIdList: [], |
| | | } |
| | | }, |
| | | watch: { |
| | | "dataForm.bizDeptId"(){ |
| | | this.getUserList() |
| | | } |
| | | }, |
| | | methods: { |
| | | init() { |
| | | this.getInfo() |
| | | this.getbizDept() |
| | | }, |
| | | // 获取信息 |
| | | async getInfo() { |
| | | let res = await this.$http.get(`/project/Project//${this.dataForm.id}`) |
| | | this.dataForm = { |
| | | ...this.dataForm, |
| | | ...res.data |
| | | 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() |
| | | } |
| | | console.log(this.dataForm, "async getInfo() dataForm") |
| | | }, |
| | | 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() { |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project//', this.dataForm) |
| | | console.log(localStorage.getItem('userSecretClass'),"formSubmit") |
| | | if (this.dataForm.secretClass>localStorage.getItem('userSecretClass')){ |
| | | this.$alert("当前项目设置的密级高于当前用户的密级,请重新设置") |
| | | return |
| | | } |
| | | 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 instanceof Array) { |
| | | this.dataForm.projectReviewer = this.dataForm.projectReviewer.join(',') |
| | | console.log(this.dataForm.projectReviewer) |
| | | } |
| | | 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 instanceof Array) { |
| | | this.dataForm.projectTesters = this.dataForm.projectTesters.split(',') |
| | | console.log(this.dataForm.projectTesters) |
| | | } |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | .projectAuto { |
| | | width: 70%; |
| | | border: 1px solid; |
| | | } |
| | | .projectAuto { |
| | | width: 70%; |
| | | } |
| | | |
| | | .el-flex { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .el-flex { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .DWidth { |
| | | width: 100px; |
| | | } |
| | | .DWidth { |
| | | width: 100px; |
| | | } |
| | | |
| | | .DWidth-Unt { |
| | | width: 100px; |
| | | } |
| | | .DWidth-Unt { |
| | | width: 100px; |
| | | } |
| | | |
| | | .DAlign { |
| | | text-align: center; |
| | | } |
| | | .DAlign { |
| | | text-align: center; |
| | | } |
| | | |
| | | .DSTOld-1-Form, |
| | | .DSTOld-1-Form{ |
| | | border-left: 1px solid; |
| | | width: 100%; |
| | | } |
| | | .el-border-left{ |
| | | border-left: 1px solid; |
| | | } |
| | | .DOldForm { |
| | | width: 100%; |
| | | } |
| | | .el-border-top-and-bottom{ |
| | | border-top: 1px solid; |
| | | border-bottom: 1px solid; |
| | | } |
| | | .DSTOld-1-Form { |
| | | border-left: 1px solid; |
| | | width: 100%; |
| | | } |
| | | .DSTOld-1-Form, |
| | | .DSTOld-1-Form { |
| | | border-left: 1px solid rgba(0, 0, 0, .2); |
| | | width: 100%; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | .el-border-left { |
| | | border-left: 1px solid rgba(0, 0, 0, .2); |
| | | } |
| | | |
| | | .zt .el-table.el-software th { |
| | | background: transparent; |
| | | } |
| | | .DOldForm { |
| | | width: 100%; |
| | | } |
| | | |
| | | .zt .el-table.el-software th > .cell { |
| | | font-weight: 500; |
| | | } |
| | | .DHold{ |
| | | font-weight: 600; |
| | | } |
| | | .zt .el-table.el-software{ |
| | | font-size: 14px; |
| | | } |
| | | .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%; |
| | | } |
| | | |
| | | .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); |
| | | } |
| | | |
| | | .zt .el-table.el-software th { |
| | | background: transparent; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | |
| | | .projectAuto .marginTopAndMarginBottom2 { |
| | | margin-top: -10px !important; |
| | | margin-bottom: 10px !important; |
| | | } |
| | | </style> |