qinzhipeng_v il y a 5 ans
Parent
commit
389cce2089

+ 9 - 14
src/views/Platform/presentation/Assumptions.vue

@@ -121,22 +121,16 @@ export default {
       }
     },
     selectionReport(e) {
-      console.log(this.queryData.state)
-      if (this.queryData.state !== undefined) {
+      if (this.queryData.state !== '') {
         for (var ele of this.restaurants) {
           if (ele.id === e) {
-            var hh = ele.type
+            var hh = ele
           }
         }
-        switch (hh) {
-          case 1:
-            this.centerDialogVisible = false
-            this.$router.push({ path: '/Platform/presentation/PresentReport', query: { id: this.mun }})
-            break
-          case 2:
-            this.centerDialogVisible = false
-            this.$router.push({ path: '/Platform/presentation/presentationReport', query: { id: this.mun }})
-            break
+        if (hh.type === 5) {
+          this.$router.push({ path: '/Platform/presentation/presentationReport', query: { task: hh }})
+        } else {
+          this.$router.push({ path: '/Platform/presentation/PresentReport', query: { task: hh }})
         }
       } else {
         this.centerDialogVisible = true
@@ -146,8 +140,9 @@ export default {
     getQueryData() {
       taskListCreate({ status: 5 }).then(res => {
         const arr = []
-        for (var ele of res.data) {
-          arr.push({ value: ele.name, id: ele.id, type: ele.type })
+        for (var ele of res.data.taskInfoList) {
+          arr.push({ value: ele.name, id: ele.id, type: ele.type, bizId: ele.bizId })
+          console.log(arr)
         }
         this.restaurants = arr
       })

+ 2 - 2
src/views/Platform/presentation/ClientAcceptance.vue

@@ -92,12 +92,12 @@
         <div id="editorEle" class="toolbar" />
         <div id="editorEle1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;min-height:100px;" />
 
-        <dir align="right" style="display: flex; margin: 5vw 0 3vw 64vw;">
+        <div align="right" style="display: flex; margin: 5vw 0 3vw 64vw;">
           <div style="flex: 1;"><el-button @click="clickPreview(ClientData)"> 预 览 </el-button></div>
           <div v-show="showButton" style="flex: 1;"><el-button type="primary" @click="getCreateData(ClientData)"> 保 存 </el-button></div>
           <div v-show="showButton1" style="flex: 1;"><el-button type="primary" @click="getQueryData(ClientData)"> 更 新 </el-button></div>
           <div style="flex: 1;"><el-button @click="open()"> 取 消 </el-button></div>
-        </dir>
+        </div>
       </el-form>
     </div>
   </div>

+ 2 - 2
src/views/Platform/presentation/DailyNewsAdded.vue

@@ -332,11 +332,11 @@ export default {
   }
   .toolbar {
     /* width: 86vw; */
-    border: 2px solid #DEE2E7;
+    border: 1px solid #DEE2E7;
   }
   .text {
     /* width: 86vw; */
-    border: 2px solid #DEE2E7;
+    border: 1px solid #DEE2E7;
     height: auto;
     font-size: 15px;
     color: #606266

+ 160 - 96
src/views/Platform/presentation/PresentReport.vue

@@ -3,104 +3,99 @@
   <div class="eleStyle">
     <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
       <el-form ref="dataChange" :model="dataChange" :rules="serviceDataRules" style="margin:2% 3%;">
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="标题" style="flex: 2; text-align: sleft;" prop="name">
-            <el-input v-model="dataChange.name" style="width:40vw;" placeholder="报告标题(端-版本-需求提测报告)" />
+        <div class="double">
+          <el-form-item label="标题" prop="name">
+            <el-input v-model="dataChange.name" style="width:50vw;" placeholder="报告标题(端-版本-需求提测报告)" />
           </el-form-item>
-          <el-form-item label="by" prop="submitter" style="flex: 1; text-align:right;">
-            <el-input v-model="dataChange.submitter" style="width: 24vw;" placeholder="who" />
+          <el-form-item label="by" prop="submitter">
+            <el-input v-model="dataChange.submitter" style="width: 25vw;" placeholder="who" />
           </el-form-item>
         </div>
 
         <div class="backStyle">一. 提测详情</div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="是否延期" prop="lateStatus" style="flex: 1;">
-            <el-radio-group v-model="dataChange.lateStatus">
-              <el-radio style="margin: 0 5vw;" label="2" @change="lateStatusChange">否</el-radio>
-              <el-radio label="1" @change="lateStatusChange(1)">是</el-radio>
-            </el-radio-group>
+        <div class="double" style="white-space: nowrap;">
+          <el-form-item label="* 是否延期" prop="lateStatus">
+            <div style="text-align:right;">
+              <el-button :type="lateStatusBtn" style="margin: 0 20px;" class="tag" @click="lateStatusChange(2)"> 是 </el-button>
+              <el-button :type="lateStatusBtn1" class="tag" @click="lateStatusChange(1)"> 否 </el-button>
+            </div>
           </el-form-item>
-          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason" style="flex: 2; text-align: right; margin-right:9%;"><el-input v-model="dataChange.lateReason" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="dataChange.lateReason" style="width: 50vw;" /></el-form-item>
         </div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="新增Apollo" prop="configIn" style="flex: 1;">
-            <el-radio-group v-model="dataChange.configIn">
-              <el-radio style="margin: 0 4.6vw;" label="2" @change="changeApollo">否</el-radio>
-              <el-radio label="1" @change="changeApollo(1)">是</el-radio>
-            </el-radio-group>
+        <div class="double" style="white-space: nowrap;">
+          <el-form-item label="* 新增Apollo" prop="configIn">
+            <div style="text-align:right;">
+              <el-button :type="configInBtn" style="margin: 0 6px" class="tag" @click="changeApollo(1)"> 是 </el-button>
+              <el-button :type="configInBtn1" style="margin-left: 24px" class="tag" @click="changeApollo(2)"> 否 </el-button>
+            </div>
           </el-form-item>
-          <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo" style="flex: 2;text-align: right; margin-right:10%;"><el-input v-model="dataChange.configInfo" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo"><el-input v-model="dataChange.configInfo" style="width: 50vw;" /></el-form-item>
         </div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="依赖组件" prop="dependent" style="flex: 1;">
-            <el-radio-group v-model="dataChange.dependent">
-              <el-radio style="margin: 0 5vw;" label="2" @change="changeRelyOn">否</el-radio>
-              <el-radio label="1" @change="changeRelyOn(1)">是</el-radio>
-            </el-radio-group>
+        <div class="double" style="white-space: nowrap;">
+          <el-form-item label="* 依赖组件" prop="dependent">
+            <div style="text-align:right;">
+              <el-button :type="dependentBtn" style="margin: 0 20px;" class="tag" @click="changeRelyOn(1)"> 是 </el-button>
+              <el-button :type="dependentBtn1" class="tag" @click="changeRelyOn(2)"> 否 </el-button>
+            </div>
           </el-form-item>
-          <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents" style="flex: 2;text-align: right; margin-right:8.6%;"><el-input v-model="dataChange.dependentComponents" style="width: 50vw;" /></el-form-item>
+          <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents"><el-input v-model="dataChange.dependentComponents" style="width: 50vw;" /></el-form-item>
         </div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="测试地址" prop="packageUrl" style="flex: 1;"><el-input v-model="dataChange.packageUrl" style="width:25vw;" /></el-form-item>
-          <el-form-item label="打包分支" prop="packageBranch" style="flex: 1;text-align: right;margin-right:2%;"><el-input v-model="dataChange.packageBranch" style="width:40vw;" /></el-form-item>
+        <div class="double">
+          <el-form-item label="测试地址" prop="packageUrl"><el-input v-model="dataChange.packageUrl" style="width:25vw;" /></el-form-item>
+          <el-form-item label="打包分支" prop="packageBranch"><el-input v-model="dataChange.packageBranch" style="width:46.5vw;" /></el-form-item>
         </div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label=" 优 先 级 " prop="priority" style="flex: 1;">
+        <div class="double">
+          <el-form-item label=" 优 先 级" prop="priority">
             <el-select v-model="dataChange.priority" style="width:25vw;" placeholder="请选择优先级">
               <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
             </el-select>
           </el-form-item>
-          <el-form-item label="提测环境" prop="env" style="flex: 1;text-align: right;margin-right:2%;"><el-input v-model="dataChange.env" style="width:40vw;" /></el-form-item>
+          <el-form-item label="提测环境" prop="env"><el-input v-model="dataChange.env" style="width:46.5vw;" /></el-form-item>
         </div>
 
-        <div style="display: flex;white-space: nowrap;">
-          <el-form-item label="PM & UI " prop="pmUi" style="flex: 1;"><el-input v-model="dataChange.pmUi" style="width: 25vw;" /></el-form-item>
-          <el-form-item label="需 求 list " prop="functionInfo" style="flex: 1;text-align: right; margin-right:2%;"><el-input v-model="dataChange.functionInfo" style="width:40vw;" /></el-form-item>
+        <div class="double">
+          <el-form-item label="PM & UI" prop="pmUi"><el-input v-model="dataChange.pmUi" style="width: 85vw;" /></el-form-item>
+        </div>
+
+        <div class="double">
+          <el-form-item label="自测结果" prop="selfTestInfo"><el-input v-model="dataChange.selfTestInfo" style="width:85vw;" /></el-form-item>
+        </div>
+
+        <div class="double">
+          <el-form-item label="需求list" prop="functionInfo"><el-input v-model="dataChange.functionInfo" style="width:85vw;margin-left:9px;" /></el-form-item>
+        </div>
+
+        <div class="double">
+          <el-form-item label="涉及接口"><el-input v-model="dataChange.interfaceInfo" style="width:85vw;margin-left:9px;" type="textarea" :rows="5" /></el-form-item>
+        </div>
+
+        <div class="double">
+          <el-form-item label="测试建议"><el-input v-model="dataChange.testSuggest" style="width:85vw;margin-left:9px;" type="textarea" :rows="5" /></el-form-item>
         </div>
-        <el-row :gutter="24">
-          <el-col :span="23">
-            <el-form-item label="自测结果"><el-input v-model="dataChange.selfTestInfo" style=" text-align: right;" /></el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="23">
-            <el-form-item label="涉及接口" style="padding:2px;"><el-input v-model="dataChange.interfaceInfo" style=" text-align: right;" type="textarea" :rows="3" /></el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="23">
-            <el-form-item label="测试建议" style="padding:2px;"><el-input v-model="dataChange.testSuggest" style=" text-align: right;" type="textarea" :rows="5" /></el-form-item>
-          </el-col>
-        </el-row>
 
         <div class="backStyle">二. 联调详情</div>
 
-        <el-row :gutter="24">
-          <el-col :span="24">
-            <div id="DetailsOfProposal" class="toolbar" />
-            <div id="DetailsOfProposal1" class="text" />
-          </el-col>
-        </el-row>
+        <div id="DetailsOfProposal" class="toolbar" />
+        <div id="DetailsOfProposal1" class="text" />
 
         <div class="backStyle">三. 其他</div>
 
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="其他"><el-input v-model="dataChange.others" type="textarea" :rows="5" /></el-form-item>
-          </el-col>
-        </el-row>
+        <div class="double">
+          <el-form-item label="其他"><el-input v-model="dataChange.others" style="width:85vw;" type="textarea" :rows="5" /></el-form-item>
+        </div>
+
+        <div class="double" align="right" style="margin: 5vw 0 3vw 60vw;">
+          <div><el-button @click="clickPreview(dataChange)"> 预 览 </el-button></div>
+          <div v-show="showButton"><el-button type="primary" @click="getCreateData(dataChange)"> 保 存 </el-button></div>
+          <div v-show="showButton1"><el-button type="primary" @click="getQueryData(dataChange)"> 更 新 </el-button></div>
+          <div><el-button @click="open(dataChange)"> 取 消 </el-button></div>
+        </div>
 
-        <el-row :gutter="24" style="margin:70px 0 0 60vw;" type="flex" justify="center">
-          <el-col :span="8"><el-button type="info" @click="clickPreview(dataChange)"> 预 览 </el-button></el-col>
-          <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(dataChange)"> 保 存 </el-button></el-col>
-          <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(dataChange)"> 更 新 </el-button></el-col>
-          <el-col :span="8"><el-button type="info" @click="open(dataChange)"> 取 消 </el-button></el-col>
-        </el-row>
       </el-form>
     </div>
   </div>
@@ -116,19 +111,26 @@ export default {
     return {
       priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
       serviceDataRules: {
+        selfTestInfo: [{ required: true, message: '自测结果不能为空', trigger: 'change' }],
         name: [{ required: true, message: '报告标题不能为空', trigger: 'change' }],
         submitter: [{ required: true, message: 'by不能为空', trigger: 'change' }],
         pmUi: [{ required: true, message: 'PM & UI不能为空', trigger: 'change' }],
-        lateStatus: [{ required: true, message: '是否延期不能为空', trigger: 'change' }],
+        lateStatus: [{ required: false, message: '是否延期不能为空', trigger: 'change' }],
         lateReason: [{ required: true, message: '延期原因不能为空', trigger: 'change' }],
-        dependent: [{ required: true, message: '依赖组建不能为空', trigger: 'change' }],
-        configIn: [{ required: true, message: '新增Apollo不能为空', trigger: 'change' }],
+        dependent: [{ required: false, message: '依赖组建不能为空', trigger: 'change' }],
+        configIn: [{ required: false, message: '新增Apollo不能为空', trigger: 'change' }],
         priority: [{ required: true, message: '优先级不能为空', trigger: 'change' }],
         packageUrl: [{ required: true, message: '测试地址不能为空', trigger: 'change' }],
         packageBranch: [{ required: true, message: '打包分支不能为空', trigger: 'change' }],
         functionInfo: [{ required: true, message: '需求list不能为空', trigger: 'change' }],
         env: [{ required: true, message: '提测环境不能为空', trigger: 'change' }]
       },
+      lateStatusBtn: 'info',
+      lateStatusBtn1: 'info',
+      configInBtn: 'info',
+      configInBtn1: 'info',
+      dependentBtn: 'info',
+      dependentBtn1: 'info',
       showDelay: false,
       showApollo: false,
       showRelyOn: false,
@@ -140,14 +142,15 @@ export default {
       userNames: localStorage.getItem('realname'),
       id: '',
       name: '',
-      labelWidth: '60px',
       dataChange: {},
       DetailsOfProposal: '',
       lateStatus: '',
       configInfo: '',
       dependentComponents: '',
       bizIdCode: '',
-      projectIdCode: ''
+      projectIdCode: '',
+      configIn: '',
+      dependent: ''
     }
   },
   created() {
@@ -174,37 +177,51 @@ export default {
         this.showButton1 = true
         this.showButton = false
         this.dataChange = this.$route.query.data
-        if (this.dataChange.lateStatus === 1) {
-          this.dataChange.lateStatus = '1'
-          this.showDelay = true
-        } else {
-          this.dataChange.lateStatus = '2'
+        if (this.dataChange.lateStatus === '') {
+          this.lateStatusBtn1 = 'success'
+          this.lateStatusBtn = 'info'
+          this.lateStatus = 1
           this.showDelay = false
+        } else {
+          this.lateStatusBtn1 = 'info'
+          this.lateStatusBtn = 'danger'
+          this.lateStatus = 2
+          this.showDelay = true
         }
         if (this.dataChange.configInfo !== '') {
-          this.dataChange.configIn = '1'
+          this.configInBtn = 'success'
+          this.configInBtn1 = 'info'
+          this.configIn = 1
           this.showApollo = true
         } else {
-          this.dataChange.configIn = '2'
+          this.configInBtn = 'info'
+          this.configInBtn1 = 'danger'
+          this.configIn = 2
           this.showApollo = false
         }
         if (this.dataChange.dependentComponents !== '') {
-          this.dataChange.dependent = '1'
+          this.dependentBtn = 'success'
+          this.dependentBtn1 = 'info'
+          this.dependent = 1
           this.showRelyOn = true
         } else {
-          this.dataChange.dependent = '2'
+          this.dependentBtn = 'info'
+          this.dependentBtn1 = 'danger'
+          this.dependent = 2
           this.showRelyOn = false
         }
       }
     },
     getQueryData(ele) {
       this.dataChange = ele
+      this.dataChange.lateStatus = this.lateStatus
       typeof (this.DetailsOfProposal) === 'string' ? this.dataChange.joinTest = this.DetailsOfProposal : ''
       this.userData = { ename: this.userInformation, name: this.userNames }
       this.objData = { launchTestInfo: this.dataChange, user: this.userData }
       launchTestUpdate(this.objData).then(res => {
         if (res.code === 200) {
           this.$message({ type: 'success', message: '更新成功' })
+          this.$router.go(-1)
         } else {
           this.$message.error('更新失败')
         }
@@ -215,28 +232,24 @@ export default {
         if (valid) {
           this.dataChange = ele
           typeof (this.DetailsOfProposal) === 'string' ? this.dataChange.joinTest = this.DetailsOfProposal : ''
-          // this.dataChange.joinTest = this.DetailsOfProposal
           if (this.$route.query.task) {
             this.dataChange.taskId = this.projectIdCode
             this.dataChange.bizId = this.bizIdCode
           }
-
+          this.dataChange.lateStatus = this.lateStatus
           this.dataChange.type = 1
-          this.dataChange.lateStatus === 1 ? this.dataChange.lateStatus = 1 : this.dataChange.lateStatus = 2
-          this.dataChange.configInfo === 1 ? this.dataChange.configInfo = ele.lateReason : this.dataChange.configInfo = ''
-          this.dataChange.dependentComponents === 1 ? this.dataChange.dependentComponents = ele.lateReason : this.dataChange.dependentComponents = ''
           this.userData = { ename: this.userInformation, name: this.userNames }
           this.objData = { launchTestInfo: this.dataChange, user: this.userData }
           launchTestCreate(this.objData).then(res => {
             if (res.code === 200) {
-              this.$message({ type: 'success', message: '保存成功' })
+              this.$message.success(res.msg)
               this.$router.go(-1)
             } else {
-              this.$message.error('保存失败')
+              this.$message.error(res.msg)
             }
           })
         } else {
-          console.log('error submit!!')
+          this.$message.error('必填项不能为空')
           return false
         }
       })
@@ -253,15 +266,55 @@ export default {
         .then(() => { this.$message({ type: 'info', message: '继续修改' }) })
         .catch(action => { action === 'cancel' ? this.$router.go(-1) : '' })
     },
+
+    // 是否延期
     lateStatusChange(e) {
-      e === 1 ? this.showDelay = true : this.showDelay = false
+      if (e === 1) {
+        this.lateStatusBtn1 = 'success'
+        this.lateStatusBtn = 'info'
+        this.lateStatus = 1
+        this.showDelay = false
+        this.$set(this.dataChange, 'lateReason', '')
+      } else {
+        this.lateStatusBtn1 = 'info'
+        this.lateStatusBtn = 'danger'
+        this.lateStatus = 2
+        this.showDelay = true
+      }
     },
+
+    // 新增Apollo
     changeApollo(e) {
-      e === 1 ? this.showApollo = true : this.showApollo = false
+      if (e === 1) {
+        this.configInBtn = 'success'
+        this.configInBtn1 = 'info'
+        this.configIn = 1
+        this.showApollo = true
+      } else {
+        this.$set(this.dataChange, 'configInfo', '')
+        this.configInBtn = 'info'
+        this.configInBtn1 = 'danger'
+        this.configIn = 2
+        this.showApollo = false
+      }
     },
+
+    // 依赖组件
     changeRelyOn(e) {
-      e === 1 ? this.showRelyOn = true : this.showRelyOn = false
+      if (e === 1) {
+        this.dependentBtn = 'success'
+        this.dependentBtn1 = 'info'
+        this.dependent = 1
+        this.showRelyOn = true
+      } else {
+        this.$set(this.dataChange, 'dependentComponents', '')
+        this.dependentBtn = 'info'
+        this.dependentBtn1 = 'danger'
+        this.dependent = 2
+        this.showRelyOn = false
+      }
     },
+
     clickPreview(ele) {
       this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: ele }})
     }
@@ -282,17 +335,28 @@ export default {
     border-radius: 4px;
     margin: 1% 0;
   }
-  .el-col {
-    white-space:nowrap;
+  .tag {
+     width:80px;
+     text-align: center;
+     cursor:pointer
   }
   .toolbar {
-    border: 1px solid #ccc;
+    border: 1px solid #DEE2E7;
   }
   .text {
     font-size: 15px;
     color: #606266;
-    border: 1px solid #ccc;
+    border: 1px solid #DEE2E7;
     height: auto;
   }
 
 </style>
+<style lang="stylus" scoped>
+  .double
+    display flex
+    justify-content space-between
+  .double >>> .el-form-item__content
+    display flex
+  .double >>> .el-form-item__label
+    margin-right 14.19px
+</style>

+ 94 - 185
src/views/Platform/presentation/acceptTheReport.vue

@@ -1,145 +1,87 @@
 <template>
-  <div>
-    <!-- 提测预览 -->
-    <div v-if="oneShow">
-      <el-form :inline="true" :model="fromCreateData" style="margin:0%;7%">
-        <el-row :gutter="20">
-          <el-col :span="12" :offset="16" style="margin-top:30px;"><div><el-button icon="el-icon-message" size="mini" @click="promptEmail(fromCreateData)">发送报告</el-button><el-button icon="el-icon-check" size="mini" style="margin-left:10px;" @click="download()">下载测试报告</el-button></div></el-col>
-        </el-row>
-        <div id="resumeId" style="padding:0% 9%;">
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <span style="font-size:27px;">{{ fromCreateData.name }}</span>
-              <span style="margin-left:100px">by <span style="font-weight:bold;margin-left: 10px"> {{ fromCreateData.submitter }}</span></span><br>
-
-              <span class="titleStyle" style="margin-top: 30px;">一、提测详情</span><br>
-
-              <el-form-item label="开发时间 : ">{{ fromCreateData.devTimeStart }} 至 {{ fromCreateData.devTimeEnd }}</el-form-item><br>
-              <el-form-item label="计划提测时间 : ">{{ fromCreateData.planLaunchTime }}</el-form-item><br>
-              <el-form-item label="实际提测时间 : ">{{ fromCreateData.launchTime }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="是否延期 : ">
-                <span :style="lateStatus1">{{ lateStatus }}</span>
-              </el-form-item><br>
-              <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item>
-            </el-col>
-          </el-row>
-
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="优先级 : "> {{ fromCreateData.priority }}</el-form-item><br>
-              <el-form-item label="是否跟版 : ">{{ fromCreateData.isEdition }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="涉及安全项 :">
-                <span :style="safeStatus1">{{ safeStatus }}</span>
-              </el-form-item><br>
-              <el-form-item v-show="showData" label="完成结果 :">{{ fromCreateData.safeInfo }}</el-form-item>
-            </el-col>
-          </el-row>
-          <a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue; font-size:13px;">普惠SDL准入标准</a>
-          <el-row><el-col><el-form-item label="prd地址 : "> {{ fromCreateData.prdUrl }}</el-form-item></el-col></el-row>
-          <el-row><el-col><el-form-item label="设计方案 : ">{{ fromCreateData.devUrl }}</el-form-item></el-col></el-row>
-
-          <span class="titleStyle">二、提测详情</span><br>
-
-          <el-row style="width:68vw;"><div class="rich" v-html=" moduleInfoOne" /></el-row>
-          <el-row><el-col style="padding-top:20px;"><el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item></el-col></el-row>
-          <el-row :gutter="23"><el-col :span="23"><el-form-item label="测试建议 : " style="padding:2px;">{{ fromCreateData.testSuggest }}</el-form-item></el-col></el-row>
-
-          <span class="titleStyle">三、联调详情</span><br>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="joinTestOne" /></el-col></el-row>
-
-          <span class="titleStyle">四、其他</span><br>
-
-          <el-row :gutter="23"><el-col><el-form-item label="新增配置 :">{{ fromCreateData.configInfo }}</el-form-item></el-col></el-row>
-          <el-row :gutter="23"><el-col :span="23"><el-form-item label="其他 : ">{{ fromCreateData.others }}</el-form-item></el-col></el-row>
+  <!-- 提测预览 -->
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
+      <div id="resumeId" style="padding:2% 3%;">
+        <div style="display: flex; font-size: 19px;  white-space: nowrap; font-weight: bold;">
+          <span style="flex:2;">标题 : {{ fromCreateData.name }}</span>
+          <span style="flex:1;">by : {{ fromCreateData.submitter }} </span>
+          <span style="flex:1;">
+            <el-button type="primary" size="mini" style="margin:0 2% 0 0%;" @click="promptEmail(fromCreateData)">发送报告</el-button>
+            <el-button size="mini" @click="download()">下载测试报告</el-button>
+          </span>
         </div>
-      </el-form>
-    </div>
-
-    <div v-if="towShow">
-      <el-form :inline="true" :model="fromCreateData" style="margin:0%;7%">
-        <el-row :gutter="20">
-          <el-col :span="12" :offset="16" style="margin-top:30px;"><div><el-button icon="el-icon-message" size="mini" @click="promptEmail1(fromCreateData)">发送报告</el-button><el-button icon="el-icon-check" size="mini" style="margin-left:10px;" @click="download1()">下载测试报告</el-button></div></el-col>
-        </el-row>
-        <div id="resumeId1" style="padding:0% 9%;">
-          <el-row :gutter="20">
-            <el-col :span="13">
-              <span style="font-size:27px;">{{ fromCreateData.name }}</span>
-              <span style="margin-left:100px">by <span style="font-weight:bold;margin-left: 10px"> {{ fromCreateData.submitter }}</span></span><br>
-            </el-col>
-          </el-row>
-
-          <span class="titleStyle" style="margin-top: 30px;">一、提测详情</span>
-
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="是否延期 : ">
-                <span :style="lateStatus1">{{ lateStatus }}</span>
-                <!-- <el-radio-group v-model="lateStatus">
-                  <el-radio label="1" disabled>是</el-radio>
-                  <el-radio label="2" disabled>否</el-radio>
-                </el-radio-group> -->
-              </el-form-item><br>
-              <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="23"><el-col><el-form-item label="测试地址 ">{{ fromCreateData.packageUrl }}</el-form-item></el-col></el-row>
-          <el-row :gutter="23"><el-col :span="23"><el-form-item label="打包分支 ">{{ fromCreateData.packageBranch }}</el-form-item></el-col></el-row>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="提测环境 ">{{ fromCreateData.env }}</el-form-item><br>
-              <el-form-item label="优先级 ">{{ fromCreateData.priority }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="新增Apollo">
-                <span :style="configInfo1">{{ configInfo }}</span>
-                <!-- <el-radio-group v-model="c">
-                  <el-radio label="1" disabled>是</el-radio>
-                  <el-radio label="2" disabled>否</el-radio>
-                </el-radio-group> -->
-              </el-form-item><br>
-              <el-form-item v-show="showDelay1" label="Apollo名称">{{ fromCreateData.configInfo }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="依赖组件">
-                <span :style="dependentComponents1">{{ dependentComponents }}</span>
-                <!-- <el-radio-group v-model="dependentComponents">
-                  <el-radio label="1" disabled>是</el-radio>
-                  <el-radio label="2" disabled>否</el-radio>
-                </el-radio-group> -->
-              </el-form-item><br>
-              <el-form-item v-show="showDelay2" label="组件名称">{{ fromCreateData.dependentComponents }}</el-form-item>
-            </el-col>
-          </el-row>
-          <el-row><el-col><el-form-item label="PM & UI ">{{ fromCreateData.pmUi }}</el-form-item></el-col></el-row>
-          <el-row><el-col><el-form-item label="需求list">{{ fromCreateData.functionInfo }}</el-form-item></el-col></el-row>
-          <el-row><el-col><el-form-item label="自测结果">{{ fromCreateData.selfTestInfo }}</el-form-item></el-col></el-row>
-          <el-row><el-col><el-form-item label="涉及接口">{{ fromCreateData.interfaceInfo }}</el-form-item></el-col></el-row>
-          <el-row><el-col><el-form-item label="测试建议">{{ fromCreateData.testSuggest }}</el-form-item></el-col></el-row>
 
-          <span class="titleStyle">二、联调详情</span>
-
-          <el-row><el-col style="width:68vw;"><div class="rich" v-html="joinTestOne" /></el-col></el-row>
-
-          <span class="titleStyle">三、其他</span>
+        <div class="titleStyle">一. 提测详情</div>
+
+        <div v-if="oneShow">
+          <el-form :model="fromCreateData">
+            <div style="display:flex;">
+              <div style="flex:1">
+                <el-form-item label="是否延期 : "><span :style="lateStatus1">{{ lateStatus }}</span></el-form-item><br>
+                <el-form-item label="涉及安全项 :"><span :style="safeStatus1">{{ safeStatus }}</span></el-form-item><br>
+                <el-form-item label="是否跟版 : ">{{ fromCreateData.isEdition }}</el-form-item><br>
+                <el-form-item label="优 先 级 : "> {{ fromCreateData.priority }}</el-form-item><br>
+                <el-form-item label="prd地址 : "> {{ fromCreateData.prdUrl }}</el-form-item><br>
+                <el-form-item label="设计方案 : ">{{ fromCreateData.devUrl }}</el-form-item><br>
+                <el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item><br>
+                <el-form-item label="测试建议 : ">{{ fromCreateData.testSuggest }}</el-form-item>
+              </div>
+              <div style="flex:1">
+                <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item><br>
+                <el-form-item v-show="showData" label="完成结果 :">{{ fromCreateData.safeInfo }}</el-form-item><br>
+                <el-form-item label="开发时间 : ">{{ fromCreateData.devTimeStart }} 至 {{ fromCreateData.devTimeEnd }}</el-form-item><br>
+                <el-form-item label="计划提测时间 : ">{{ fromCreateData.planLaunchTime }}</el-form-item><br>
+                <el-form-item label="实际提测时间 : ">{{ fromCreateData.launchTime }}</el-form-item><br>
+              </div>
+            </div>
+            <el-form-item label="SDL链接 : "><a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue;">普惠SDL准入标准</a></el-form-item>
+
+            <div class="rich" v-html=" moduleInfoOne" />
+          </el-form>
+        </div>
 
-          <el-row :gutter="23"><el-col :span="23"><el-form-item label="其他">{{ fromCreateData.others }}</el-form-item></el-col></el-row>
+        <div v-if="towShow">
+          <el-form :model="fromCreateData">
+            <div style="display:flex;">
+              <div style="flex:1">
+                <el-form-item label="测试地址 : ">{{ fromCreateData.packageUrl }}</el-form-item><br>
+                <el-form-item label="提测环境 : ">{{ fromCreateData.env }}</el-form-item><br>
+                <el-form-item label="新增Apollo : "><span :style="configInfo1">{{ configInfo }}</span></el-form-item><br>
+                <el-form-item label="依赖组件 : "><span :style="dependentComponents1">{{ dependentComponents }}</span></el-form-item><br>
+                <el-form-item label="是否延期 : "><span :style="lateStatus1">{{ lateStatus }}</span></el-form-item><br>
+
+                <el-form-item label="自测结果 : ">{{ fromCreateData.selfTestInfo }}</el-form-item><br>
+
+              </div>
+              <div style="flex:1">
+                <el-form-item label="打包分支 : ">{{ fromCreateData.packageBranch }}</el-form-item><br>
+                <el-form-item label="优 先 级 : ">{{ fromCreateData.priority }}</el-form-item><br>
+                <el-form-item v-show="showDelay1" label="Apollo名称">{{ fromCreateData.configInfo }}</el-form-item><br>
+                <el-form-item v-show="showDelay2" label="组件名称 : ">{{ fromCreateData.dependentComponents }}</el-form-item>
+                <el-form-item v-show="showDelay" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item><br>
+
+              </div>
+            </div>
+            <el-form-item label="PM & UI : ">{{ fromCreateData.pmUi }}</el-form-item><br>
+            <div class="noWrap">
+              <el-form-item label="测试建议 :">{{ fromCreateData.testSuggest }}</el-form-item><br>
+              <el-form-item label="需求list :">{{ fromCreateData.functionInfo }}</el-form-item><br>
+              <el-form-item label="涉及接口 :">{{ fromCreateData.interfaceInfo }}</el-form-item><br>
+            </div>
+          </el-form>
         </div>
-      </el-form>
+        <div class="titleStyle">二. 联调详情</div>
+        <div class="rich" v-html="joinTestOne" />
+
+        <div class="titleStyle">三. 其他</div>
+        <el-form>
+          <el-form-item label="其他 : ">{{ fromCreateData.others }}</el-form-item><br>
+          <el-form-item v-if="oneShow" label="新增配置 :">{{ fromCreateData.configInfo }}</el-form-item>
+          <el-button style="float:right; margin:8% 50%;" @click="open()"> 返 回 </el-button>
+        </el-form>
+      </div>
     </div>
-    <el-button type="info" style="float:right; margin:2% 50%;" @click="open()"> 返 回 </el-button>
   </div>
 </template>
 
@@ -151,7 +93,6 @@ export default {
   name: 'AcceptTheReport',
   data() {
     return {
-      bizIdData: localStorage.getItem('key'),
       configInfo1: { color: 'green' },
       dependentComponents1: { color: 'green' },
       lateStatus1: { color: 'red' },
@@ -162,7 +103,6 @@ export default {
       towShow: false,
       oneShow: false,
       showData: false,
-      labelWidth: '60px',
       joinTestOne: '',
       lateStatus: '',
       safeStatus: '',
@@ -179,9 +119,6 @@ export default {
     download() {
       this.getPdf('resumeId', this.name)
     },
-    download1() {
-      this.getPdf('resumeId1', this.name)
-    },
     promptEmail(e) {
       this.$prompt('请输入邮箱', '提示', {
         confirmButtonText: '确定',
@@ -192,19 +129,8 @@ export default {
         this.$message({ type: 'info', message: '取消输入' })
       })
     },
-    promptEmail1(e) {
-      this.$prompt('请输入邮箱', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消'
-      }).then(({ value }) => {
-        this.sendReport1(value, e)
-      }).catch(() => {
-        this.$message({ type: 'info', message: '取消输入' })
-      })
-    },
     getRouterData() {
       this.fromCreateData = this.$route.query.data
-      console.log(this.fromCreateData)
       if (this.fromCreateData.type === 2) {
         this.towShow = false
         this.oneShow = true
@@ -248,7 +174,7 @@ export default {
         this.dependentComponents1.color = 'red'
       }
     },
-    open() { this.$router.go(-2) },
+    open() { this.$router.push({ path: '/Platform/presentation/Assumptions' }) },
     sendReport(e, ele) {
       var shareContent = document.getElementById('resumeId')// 需要截图的包裹的(原生的)DOM 对象
       var canvas = document.createElement('canvas') // 创建一个canvas节点
@@ -273,52 +199,35 @@ export default {
           res.code === 200 ? this.$message.success('发送测试报告成功') : this.$message.error('发送测试报告失败,请联系管理员!')
         })
       })
-    },
-    sendReport1(e, ele) {
-      var shareContent = document.getElementById('resumeId1')// 需要截图的包裹的(原生的)DOM 对象
-      var canvas = document.createElement('canvas') // 创建一个canvas节点
-      const contentWidth = shareContent.width
-      const contentHeight = shareContent.height
-      var scale = 5 // 定义任意放大倍数 支持小数
-      canvas.width = contentWidth * scale// 定义canvas 宽度 * 缩放
-      canvas.height = contentHeight * scale// 定义canvas高度 *缩放
-      canvas.getContext('2d').scale(scale, scale) // 获取context,设置scale
-      var opts = {
-        scale: scale, // 添加的scale 参数
-        canvas: canvas, // 自定义 canvas
-        width: 1200, // dom 原始宽度
-        height: 1300 // dom 原始高度
-      }
-      html2canvas(shareContent, opts).then(function(canvas) {
-        // 从 canvas 提取图片数据
-        var imgData = canvas.toDataURL('image/png')
-        var sendImgData = imgData.substring(imgData.indexOf(',') + 1)
-        var postData = { 'reportId': ele.id, 'imgStr': sendImgData, 'url': window.location.href, 'emailUser': e }
-        launchTestSendmail(postData).then(res => {
-          res.code === 200 ? this.$message.success('发送测试报告成功') : this.$message.error('发送测试报告失败,请联系管理员!')
-        })
-      })
     }
   }
 }
 </script>
 
 <style scoped>
-  .el-col {
-    white-space:nowrap;
+  .eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
   .el-form-item {
     margin: -5px 0;
   }
   .titleStyle {
-    color: #000000;
-    background: #ccc;
-    line-height: 40px;
-    padding-right: 40px;
-    font-size: 15px;
+    color: #333B4A;
+    margin: 1% 0;
+    font-size: 19px;
+    font-weight: bold;
   }
   .rich>>> table tr td{border:1px solid #ccc;font-size: 15px; color: #606266}
   .rich>>> table th{border:1px solid #ccc; font-size: 15px; color: #606266}
   .rich>>> table {border:1px solid #ccc; border-collapse: collapse;line-height: 30px; text-align: center;font-size: 15px; color: #606266}
 
 </style>
+<style lang="stylus" scoped>
+ .noWrap >>> .el-form-item
+  display flex
+ .noWrap >>> .el-form-item__label
+  text-align left
+</style>

+ 179 - 159
src/views/Platform/presentation/presentationReport.vue

@@ -1,132 +1,102 @@
 <template>
-  <div style="margin:2% 3% 9%;">
-    <!-- 提测报告,新增服务端报告 -->
-    <el-form ref="fromCreateData" :inline="true" :model="fromCreateData" :rules="serviceDataRules">
-      <el-row :gutter="20">
-        <el-col :span="13">
-          <el-form-item label=" " prop="name">
-            <el-input v-model="fromCreateData.name" style="width:39vw;" placeholder="报告标题(端-版本-需求提测报告)" />
-          </el-form-item>
-        </el-col>
-        <el-col :span="2">
-          <el-form-item label="by" prop="submitter" style="margin-left:4vw;background: white">
-            <el-input v-model="fromCreateData.submitter" style="width:20vw; margin-left:30px; border:2px solid #ccc;border-radius: 4px;" placeholder="who" />
+
+  <!-- 提测报告,新增服务端报告 -->
+  <div class="eleStyle">
+    <div style="height:100%;width:94%; background:#ffffff; margin: 3%; border-radius: 8px; overflow: hidden;">
+      <el-form ref="fromDev" :model="fromDev" :rules="serviceDataRules" style="margin: 2% 3%;">
+        <div class="double">
+          <el-form-item label="标题" prop="name">
+            <el-input v-model="fromDev.name" style="width:50vw;" placeholder="报告标题(端-版本-需求提测报告)" />
           </el-form-item>
-        </el-col>
-      </el-row>
-      <el-form-item label="一、提测详情" class="cententTit" />
-      <el-row :gutter="23">
-        <el-col :span="8">
-          <el-form-item label="开发时间" prop="devTimeStart">
-            <el-date-picker v-model="fromCreateData.devTimeStart" type="date" style="width:31vw;" placeholder="选择日期" /> ——————
-            <el-date-picker v-model="fromCreateData.devTimeEnd" type="date" style="width:35vw;" placeholder="选择日期" />
+          <el-form-item label="by" prop="submitter">
+            <el-input v-model="fromDev.submitter" style="width: 25vw;" placeholder="who" />
           </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20" type="flex">
-        <el-col :span="12">
+        </div>
+
+        <div class="backStyle">一. 提测详情</div>
+
+        <div class="double" style="white-space: nowrap;">
           <el-form-item label="是否延期" prop="lateStatus">
-            <el-radio-group v-model="fromCreateData.lateStatus">
-              <el-radio style="margin: 0 95px;" label="1" @change="lateStatusChange('1')">是</el-radio>
-              <el-radio style="padding-right: 185px;" label="2" @change="lateStatusChange('2')">否</el-radio>
-            </el-radio-group>
+            <div style="margin-left: 15px;">
+              <el-button :type="lateStatusBtn" style="margin: 0 10px;" class="tag" @click="lateStatusChange(2)"> 是 </el-button>
+              <el-button :type="lateStatusBtn1" class="tag" @click="lateStatusChange(1)"> 否 </el-button>
+            </div>
           </el-form-item>
-          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason" style="margin-left:75px;">
-            <el-input v-model="fromCreateData.lateReason" style="width:29.5vw;" />
+          <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="fromDev.lateReason" style="width: 50vw;" /></el-form-item>
+        </div>
+
+        <div class="double" style="white-space: nowrap;">
+          <el-form-item label="涉及安全项" prop="getInfo">
+            <el-button :type="getInfoBtn" style="margin: 0 10px;" class="tag" @click="showStatusData(2)"> 是 </el-button>
+            <el-button :type="getInfoBtn1" style="margin-left: 14px;" class="tag" @click="showStatusData(1)"> 否 </el-button>
           </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="12">
-          <el-form-item label="计划提测时间 " prop="planLaunchTime"><el-date-picker v-model="fromCreateData.planLaunchTime" type="date" style="width:29vw;" placeholder="选择日期" /></el-form-item>
-          <el-form-item label="实际提测时间" prop="launchTime" style="margin-left:75px;"><el-date-picker v-model="fromCreateData.launchTime" type="date" style="width:27.5vw;" placeholder="选择日期" /></el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="12">
-          <el-form-item label="优先级 " prop="priority">
-            <el-select v-model="fromCreateData.priority" style="width:32vw;" placeholder="请选择优先级">
+          <el-form-item v-if="showData" label="完成结果" prop="lateReason"><el-input v-model="fromDev.safeInfo" style="width: 50vw;" /></el-form-item>
+        </div>
+
+        <el-form-item label="SDL链接 : "><el-link href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" type="primary" target="_blank"> 普惠SDL准入标准</el-link></el-form-item>
+
+        <div class="double">
+          <el-form-item label="是否跟版" prop="isEdition"><el-input v-model="fromDev.isEdition" style="width:30vw;" placeholder="请填写" /></el-form-item>
+          <el-form-item label="开发时间" prop="devTimeStart">
+            <el-date-picker v-model="fromDev.devTimeStart" type="date" style="width:20vw; margin-right:2%;" placeholder="选择日期" />
+            <el-date-picker v-model="fromDev.devTimeEnd" type="date" style="width:20vw;" placeholder="选择日期" />
+          </el-form-item>
+        </div>
+
+        <div class="double">
+          <el-form-item label=" 优 先 级" prop="priority">
+            <el-select v-model="fromDev.priority" style="width:30vw;" placeholder="请选择优先级">
               <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
             </el-select>
           </el-form-item>
-          <el-form-item label="是否跟版" prop="isEdition" style="margin-left:75px;"><el-input v-model="fromCreateData.isEdition" style="width:29.3vw;" /></el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="12">
-          <el-form-item label="涉及安全项" prop="getInfo" style=" white-space:nowrap;">
-            <el-radio-group v-model="fromCreateData.getInfo">
-              <el-radio style="margin: 0 85px;" label="1" @change="showStatusData('1')">是</el-radio>
-              <el-radio style="margin-right: 50px;" label="2" @change="showStatusData('2')">否</el-radio>
-              <a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue; font-size:13px;padding-right: 32px;">普惠SDL准入标准</a>
-            </el-radio-group>
+          <el-form-item label="计划提测时间" prop="planLaunchTime">
+            <el-date-picker v-model="fromDev.planLaunchTime" type="date" style="width:40vw;" placeholder="选择日期" />
           </el-form-item>
+        </div>
 
-          <el-form-item v-if="showData" label="完成结果" prop="safeInfo" style="margin-left:75px;">
-            <el-input v-model="fromCreateData.safeInfo" style="width:29.2vw;" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="23">
-          <el-form-item label="prd地址 " prop="prdUrl">
-            <el-input v-model="fromCreateData.prdUrl" style="width:72.5vw; padding-left:7px;" placeholder="请提供wiki链接" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="23">
-          <el-form-item label="设计方案" prop="devUrl"><el-input v-model="fromCreateData.devUrl" style="width:72vw;" placeholder="请提供wiki链接,包含接口定义,数据库改动,依赖关系" /></el-form-item>
-        </el-col>
-      </el-row>
-      <el-form-item label="二、提测详情" class="cententTit" />
-      <el-row>
-        <el-col style="width:78vw;">
-          <div id="DetailsOfProposal" class="toolbar" />
-          <div id="DetailsOfProposal1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;" />
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="23" style="padding-top:20px;">
-          <el-form-item label="自测结果" prop="selfTestInfo">
-            <el-input v-model="fromCreateData.selfTestInfo" style="width:72vw;" placeholder="请提供wiki链接(提测前QA需提供准人case)" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="23">
-          <el-form-item label="测试建议" prop="testSuggest" style="padding:2px;"><el-input v-model="fromCreateData.testSuggest" style="width:72vw;" type="textarea" :rows="5" placeholder="改动点影响分析:是否影响老功能,那些老功能需要回归接口是否影响上下游系统,有没有通知相关人性能,安全" /></el-form-item>
-        </el-col>
-      </el-row>
-      <el-form-item label="三、联调详情" class="cententTit" />
-      <el-row>
-        <el-col style="width:78vw;">
-          <div id="editorContent" class="toolbar" />
-          <div id="editorContent1" class="text" style="text-align:left;cellspacing:0;cellpadding:0;" />
-        </el-col>
-      </el-row>
-      <el-form-item label="四、其他" class="cententTit" style="margin-top:20px;" />
-      <el-row :gutter="23">
-        <el-col :span="23">
-          <el-form-item label="新增配置">
-            <el-input v-model="fromCreateData.configInfo" style="width:73vw;" type="textarea" :rows="2" placeholder="全局变量、kdiamond配置、降级点、新增topic等,disconf配置,apollo配置说明用途" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="23">
-        <el-col :span="23">
-          <el-form-item label="其他">
-            <el-input v-model="fromCreateData.others" style="padding-left:25px;width:75vw;" type="textarea" :rows="5" />
+        <div class="double">
+          <el-form-item label=" prd地址 " prop="prdUrl"><el-input v-model="fromDev.prdUrl" style="width:30vw;" placeholder="请提供wiki链接" /></el-form-item>
+          <el-form-item label="实际提测时间" prop="launchTime">
+            <el-date-picker v-model="fromDev.launchTime" type="date" style="width:40vw;" placeholder="选择日期" />
           </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="24" style="margin:70px 0 0 150px;" type="flex" justify="center">
-        <el-col :span="8"><el-button type="info" @click="clickPreview(fromCreateData)"> 预 览 </el-button></el-col>
-        <el-col v-show="showButton" :span="8"><el-button type="info" @click="getCreateData(fromCreateData)"> 保 存 </el-button></el-col>
-        <el-col v-show="showButton1" :span="8"><el-button type="info" @click="getQueryData(fromCreateData)"> 更 新 </el-button></el-col>
-        <el-col :span="8"><el-button type="info" @click="open(fromCreateData)"> 取 消 </el-button></el-col>
-      </el-row>
-    </el-form>
+        </div>
+        <div class="double">
+          <el-form-item label="设计方案" prop="devUrl"><el-input v-model="fromDev.devUrl" style="width:83.5vw;" placeholder="请提供wiki链接,包含接口定义,数据库改动,依赖关系" /></el-form-item>
+        </div>
+
+        <div class="backStyle">二. 提测详情</div>
+
+        <div id="DetailsOfProposal" class="toolbar" />
+        <div id="DetailsOfProposal1" class="text" />
+
+        <div class="double">
+          <el-form-item label="自测结果" prop="selfTestInfo" style="padding-top:1%;"><el-input v-model="fromDev.selfTestInfo" style="width:83.5vw;" placeholder="请提供wiki链接(提测前QA需提供准人case)" /></el-form-item>
+        </div>
+        <div class="double">
+          <el-form-item label="测试建议" prop="testSuggest"><el-input v-model="fromDev.testSuggest" style="width:83.5vw;" type="textarea" :rows="5" placeholder="改动点影响分析:是否影响老功能,那些老功能需要回归接口是否影响上下游系统,有没有通知相关人性能,安全" /></el-form-item>
+        </div>
+
+        <div class="backStyle">三. 联调详情</div>
+
+        <div id="editorContent" class="toolbar" />
+        <div id="editorContent1" class="text" />
+
+        <div class="backStyle">四. 其他</div>
+        <div class="double">
+          <el-form-item label="新增配置"><el-input v-model="fromDev.configInfo" style="width:83.5vw;" type="textarea" :rows="2" placeholder="全局变量、kdiamond配置、降级点、新增topic等,disconf配置,apollo配置说明用途" /></el-form-item>
+        </div>
+        <div class="double" align="right">
+          <el-form-item label="其他"><el-input v-model="fromDev.others" style="padding-left: 25px; text-align: right; width: 85vw;" type="textarea" :rows="5" placeholder="请输入其他内容…" /></el-form-item>
+        </div>
+
+        <div class="double" align="right" style="margin: 5vw 0 3vw 60vw;">
+          <div><el-button @click="clickPreview(fromDev)"> 预 览 </el-button></div>
+          <div v-show="showButton"><el-button type="primary" @click="getCreateData(fromDev)"> 保 存 </el-button></div>
+          <div v-show="showButton1"><el-button type="primary" @click="getQueryData(fromDev)"> 更 新 </el-button></div>
+          <div><el-button @click="open(fromDev)"> 取 消 </el-button></div>
+        </div>
+      </el-form>
+    </div>
   </div>
 </template>
 
@@ -159,6 +129,10 @@ export default {
         getInfo: [{ required: true, message: '涉及安全项不能为空', trigger: 'change' }]
       },
       objData: '',
+      lateStatusBtn: 'info',
+      lateStatusBtn1: 'info',
+      getInfoBtn: 'info',
+      getInfoBtn1: 'info',
       showButton: true,
       showButton1: false,
       userData: '',
@@ -166,7 +140,7 @@ export default {
       labelWidth: '60px',
       lateStatus: '',
       getInfo: '',
-      fromCreateData: {},
+      fromDev: {},
       editorContent: '',
       showData: false,
       DetailsOfProposal: '',
@@ -208,34 +182,43 @@ export default {
       if (this.$route.query.data) {
         this.showButton1 = true
         this.showButton = false
-        this.fromCreateData = this.$route.query.data
-        if (this.fromCreateData.lateReason !== null) {
-          this.fromCreateData.lateStatus = '1'
+        this.fromDev = this.$route.query.data
+        if (this.fromDev.lateReason !== '') {
+          this.lateStatusBtn1 = 'info'
+          this.lateStatusBtn = 'danger'
+          this.lateStatus = 2
           this.showDelay = true
         } else {
-          this.fromCreateData.lateStatus = '2'
+          this.lateStatusBtn1 = 'success'
+          this.lateStatusBtn = 'info'
+          this.lateStatus = 1
           this.showDelay = false
         }
-        if (this.fromCreateData.safeInfo !== null) {
-          this.fromCreateData.getInfo = '1'
+        if (this.fromDev.safeInfo !== '') {
+          this.getInfoBtn1 = 'info'
+          this.getInfoBtn = 'danger'
+          this.lateStatus = 2
           this.showData = true
         } else {
-          this.fromCreateData.getInfo = '2'
+          this.getInfoBtn1 = 'success'
+          this.getInfoBtn = 'info'
+          this.lateStatus = 1
           this.showData = false
+          this.$set(this.fromDev, 'safeInfo', '')
         }
       }
     },
     getRouterData1() {
-      this.editorContent.txt.html(this.fromCreateData.joinTest)
-      this.DetailsOfProposal.txt.html(this.fromCreateData.moduleInfo)
+      this.editorContent.txt.html(this.fromDev.joinTest)
+      this.DetailsOfProposal.txt.html(this.fromDev.moduleInfo)
     },
     getQueryData(ele) {
-      this.fromCreateData = ele
-      typeof (this.editorContent) === 'string' ? this.fromCreateData.joinTest = this.editorContent : ''
-      typeof (this.DetailsOfProposal) === 'string' ? this.fromCreateData.moduleInfo = this.DetailsOfProposal : ''
-      this.fromCreateData.lateStatus = this.lateStatus
+      this.fromDev = ele
+      typeof (this.editorContent) === 'string' ? this.fromDev.joinTest = this.editorContent : ''
+      typeof (this.DetailsOfProposal) === 'string' ? this.fromDev.moduleInfo = this.DetailsOfProposal : ''
+      this.fromDev.lateStatus = this.lateStatus
       this.userData = { id: '', ename: this.userInformation, name: this.userNames }
-      this.objData = { launchTestInfo: this.fromCreateData, user: this.userData }
+      this.objData = { launchTestInfo: this.fromDev, user: this.userData }
       launchTestUpdate(this.objData).then(res => {
         if (res.code === 200) {
           this.$message({ type: 'success', message: '更新成功' })
@@ -251,24 +234,24 @@ export default {
         cancelButtonText: '放弃修改'
       })
         .then(() => { this.$message({ type: 'info', message: '继续修改' }) })
-        .catch(action => { action === 'cancel' ? this.$router.go(-1) : '' })
+        .catch(action => { action === 'cancel' ? this.$router.push({ path: '/Platform/presentation/Assumptions' }) : '' })
     },
     getCreateData(ele) {
-      this.$refs['fromCreateData'].validate((valid) => {
+      this.$refs['fromDev'].validate((valid) => {
         if (valid) {
-          this.fromCreateData = ele
-          typeof (this.editorContent) === 'string' ? this.fromCreateData.joinTest = this.editorContent : ''
-          typeof (this.DetailsOfProposal) === 'string' ? this.fromCreateData.moduleInfo = this.DetailsOfProposal : ''
-          this.fromCreateData.lateReason = ele.lateReason
-          this.fromCreateData.lateStatus = this.lateStatus
+          this.fromDev = ele
+          typeof (this.editorContent) === 'string' ? this.fromDev.joinTest = this.editorContent : ''
+          typeof (this.DetailsOfProposal) === 'string' ? this.fromDev.moduleInfo = this.DetailsOfProposal : ''
+          this.fromDev.lateReason = ele.lateReason
+          this.fromDev.lateStatus = this.lateStatus
 
           if (this.$route.query.task) { // 任务提测
-            this.fromCreateData.bizId = this.bizIdCode
-            this.fromCreateData.taskId = this.projectIdCode
+            this.fromDev.bizId = this.bizIdCode
+            this.fromDev.taskId = this.projectIdCode
           }
-          this.fromCreateData.type = 2
+          this.fromDev.type = 2
           this.userData = { id: '', ename: this.userInformation, name: this.userNames }
-          this.objData = { launchTestInfo: this.fromCreateData, user: this.userData }
+          this.objData = { launchTestInfo: this.fromDev, user: this.userData }
           launchTestCreate(this.objData).then(res => {
             if (res.code === 200) {
               this.$message({ type: 'success', message: '保存成功' })
@@ -283,12 +266,34 @@ export default {
       })
     },
     lateStatusChange(e) {
-      this.lateStatus = e
-      e === '1' ? this.showDelay = true : this.showDelay = false
+      if (e === 1) {
+        this.lateStatusBtn1 = 'success'
+        this.lateStatusBtn = 'info'
+        this.lateStatus = 1
+        this.showDelay = false
+        this.$set(this.fromDev, 'lateReason', '')
+      } else {
+        this.lateStatusBtn1 = 'info'
+        this.lateStatusBtn = 'danger'
+        this.lateStatus = 2
+        this.showDelay = true
+      }
     },
     showStatusData(e) {
-      e === '1' ? this.showData = true : this.showData = false
+      if (e === 1) {
+        this.getInfoBtn1 = 'success'
+        this.getInfoBtn = 'info'
+        this.lateStatus = 1
+        this.showData = false
+        this.$set(this.fromDev, 'safeInfo', '')
+      } else {
+        this.getInfoBtn1 = 'info'
+        this.getInfoBtn = 'danger'
+        this.lateStatus = 2
+        this.showData = true
+      }
     },
+
     clickPreview(ele) {
       this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: ele }})
     }
@@ -297,24 +302,39 @@ export default {
 </script>
 
 <style scoped>
-  .el-col {
-    white-space:nowrap;
+.eleStyle {
+    width: 100%;
+    height:100%;
+    background:#F2F3F6;
+    display: inline-block;
   }
-  .el-form-item {
-    background: #ccc;
-    border-radius: 4px;
-    padding:2px;
+  .tag {
+     width:80px;
+     text-align: center;
+     cursor:pointer
   }
-  .cententTit {
-    padding-right:100px;
+  .backStyle {
+    font-size: 19px;
+    font-weight: bold;
+    border-radius: 4px;
+    margin: 1% 0;
   }
-
   .toolbar {
-    border: 2px solid #ccc;
+    border: 2px solid #DEE2E7;
   }
   .text {
-   font-size: 15px; color: #606266;
-    border: 2px solid #ccc;
-    height: aotu;
+   font-size: 15px;
+   color: #606266;
+   border: 2px solid #DEE2E7;
+   height: auto;
   }
 </style>
+<style lang="stylus" scoped>
+  .double
+    display flex
+    justify-content space-between
+  .double >>> .el-form-item__content
+    display flex
+  .double >>> .el-form-item__label
+    margin-right 14.19px
+</style>