Sfoglia il codice sorgente

Merge branch 'http_mock' of git.xiaojukeji.com:jacklijiajia/thoth-frontend into http_test

# Conflicts:
#	package.json
wangziqian 5 anni fa
parent
commit
882fc32910

+ 3 - 1
package.json

@@ -28,6 +28,8 @@
     "axios": "0.18.0",
     "cnpm": "^6.1.1",
     "core-js": "^2.6.11",
+    "browserslist": "^4.12.0",
+    "caniuse-lite": "^1.0.30001084",
     "crypto-js": "^4.0.0",
     "dayjs": "^1.8.17",
     "echarts": "^4.2.1",
@@ -71,7 +73,7 @@
     "@vue/cli-service": "3.6.0",
     "@vue/test-utils": "1.0.0-beta.29",
     "ant-design-vue": "^1.6.2",
-    "autoprefixer": "^9.5.1",
+    "autoprefixer": "^9.8.0",
     "babel-core": "7.0.0-bridge.0",
     "babel-eslint": "10.0.1",
     "babel-jest": "23.6.0",

+ 65 - 15
src/views/Platform/presentation/PresentReport.vue

@@ -13,7 +13,7 @@
 
       <div class="backStyle">一. 提测详情</div>
 
-      <div class="double" style="white-space: nowrap;">
+      <div class="double" style="display: flex; justify-content: space-between; white-space: nowrap;">
         <el-form-item label="* 是否延期" style="text-align:right;">
           <el-button :type="lateStatusBtn" style="margin: 0 20px;" size="small" class="tag" @click="lateStatusChange(2)"> 是 </el-button>
           <el-button :type="lateStatusBtn1" class="tag" size="small" @click="lateStatusChange(1)"> 否 </el-button>
@@ -21,7 +21,7 @@
         <el-form-item v-if="showDelay" label="延期原因" prop="lateReason"><el-input v-model="dataChange.lateReason" size="small" style="width: 25vw;" /></el-form-item>
       </div>
 
-      <div class="double" style="white-space: nowrap;">
+      <div class="double" style="display: flex; justify-content: space-between; white-space: nowrap;">
         <el-form-item label="* 新增Apollo" style="text-align:right;">
           <el-button :type="configInBtn" style="margin: 0 6px" size="small" class="tag" @click="changeApollo(1)"> 是 </el-button>
           <el-button :type="configInBtn1" style="margin-left: 24px" size="small" class="tag" @click="changeApollo(2)"> 否 </el-button>
@@ -29,7 +29,7 @@
         <el-form-item v-if="showApollo" label="Apollo名称" prop="configInfo"><el-input v-model="dataChange.configInfo" size="small" style="width: 25vw;" /></el-form-item>
       </div>
 
-      <div class="double" style="white-space: nowrap;">
+      <div class="double" style="display: flex; justify-content: space-between; white-space: nowrap;">
         <el-form-item label="* 依赖组件" style="text-align:right;">
           <el-button :type="dependentBtn" style="margin: 0 20px;" size="small" class="tag" @click="changeRelyOn(1)"> 是 </el-button>
           <el-button :type="dependentBtn1" class="tag" size="small" @click="changeRelyOn(2)"> 否 </el-button>
@@ -37,6 +37,14 @@
         <el-form-item v-if="showRelyOn" label="组件名称" prop="dependentComponents"><el-input v-model="dataChange.dependentComponents" size="small" style="width: 25vw;" /></el-form-item>
       </div>
 
+      <div class="CodeReview" style="display: flex; justify-content: space-between; white-space: nowrap;">
+        <el-form-item label="* CodeReview">
+          <el-button :type="CodeReview" style="margin: 0 17px 0 8px;" size="small" class="tag" @click="changeCodeReview(1)"> 是 </el-button>
+          <el-button :type="CodeReview1" class="tag" size="small" @click="changeCodeReview(0)"> 否 </el-button>
+        </el-form-item>
+        <el-form-item v-if="showCodeReview" class="double" label="执行人" prop="crBy"><el-input v-model="dataChange.crBy" size="small" style="width: 25vw;" /></el-form-item>
+      </div>
+
       <div class="double">
         <el-form-item label="测试地址" prop="packageUrl"><el-input v-model="dataChange.packageUrl" size="small" style="width:15vw;" /></el-form-item>
         <el-form-item label="打包分支" prop="packageBranch"><el-input v-model="dataChange.packageBranch" size="small" style="width:25vw;" /></el-form-item>
@@ -127,34 +135,39 @@ export default {
         functionInfo: [{ required: true, message: '需求list不能为空', trigger: 'change' }],
         env: [{ required: true, message: '提测环境不能为空', trigger: 'change' }],
         configInfo: [{ required: true, message: 'Apollo名称不能为空', trigger: 'change' }],
-        dependentComponents: [{ required: true, message: '组件名称不能为空', trigger: 'change' }]
+        dependentComponents: [{ required: true, message: '组件名称不能为空', trigger: 'change' }],
+        crBy: [{ required: true, message: '执行人不能为空', trigger: 'change' }]
       },
       lateStatusBtn: 'info',
-      lateStatusBtn1: 'info',
+      lateStatusBtn1: 'success',
       configInBtn: 'info',
-      configInBtn1: 'info',
+      configInBtn1: 'danger',
       dependentBtn: 'info',
-      dependentBtn1: 'info',
+      dependentBtn1: 'danger',
+      CodeReview: 'info',
+      CodeReview1: 'danger',
       showDelay: false,
       showApollo: false,
       showRelyOn: false,
+      showCodeReview: false, // 执行人
       userData: '',
       objData: '',
       userInformation: localStorage.getItem('username'),
       userNames: localStorage.getItem('realname'),
       id: '',
       name: '',
-      dataChange: {},
+      dataChange: {
+        cr: 0
+      },
       DetailsOfProposal: '',
       lateStatus: '',
-      configInfo: '',
-      dependentComponents: '',
       bizIdCode: '',
       projectIdCode: '',
       ids: [],
-      configIn: '',
-      dependent: '',
-      clien: ''
+      configIn: 2,
+      dependent: 2,
+      clien: '',
+      cr: ''
     }
   },
   created() {
@@ -177,6 +190,9 @@ export default {
     getRouterData() {
       console.log(this.clienData, '提测客户端')
       this.dataChange = this.clienData
+      this.dataChange.cr = 0
+      this.dataChange.configIn = 2
+      this.dataChange.lateStatus = 1
       if (this.dataChange.id) {
         if (this.dataChange.lateStatus === 1) {
           this.lateStatusBtn1 = 'success'
@@ -211,6 +227,18 @@ export default {
           this.dependent = 2
           this.showRelyOn = false
         }
+        if (this.dataChange.crBy !== '' && this.dataChange.crBy !== null) { // 执行人
+          this.CodeReview = 'success'
+          this.CodeReview1 = 'info'
+          this.dataChange.cr = 1
+          this.showCodeReview = true
+        } else {
+          this.CodeReview = 'info'
+          this.CodeReview1 = 'danger'
+          this.dataChange.cr = 0
+          this.$set(this.dataChange, 'crBy', '')
+          this.showCodeReview = false
+        }
         this.$nextTick(() => {
           this.DetailsOfProposal.txt.html(this.dataChange.joinTest)
         })
@@ -253,10 +281,11 @@ export default {
       this.$refs['dataChange'].validate((valid) => {
         if (valid) {
           this.dataChange = ele
+          this.dataChange.configInfo ? '' : this.dataChange.configInfo = ''
+          this.dataChange.dependentComponents ? '' : this.dataChange.dependentComponents = ''
           typeof (this.DetailsOfProposal) === 'string' ? this.dataChange.joinTest = this.DetailsOfProposal : ''
           this.dataChange.bizId = Number(localStorage.getItem('bizId'))
           this.dataChange.taskIds = this.ids
-          this.dataChange.lateStatus = this.lateStatus
           this.dataChange.type = 1
           this.userData = { ename: this.userInformation, name: this.userNames }
           this.objData = { launchTestInfo: this.dataChange, user: this.userData }
@@ -319,12 +348,28 @@ export default {
         this.dependent = 2
         this.showRelyOn = false
       }
+    },
+
+    // CodeReview
+    changeCodeReview(e) {
+      if (e === 1) {
+        this.CodeReview = 'success'
+        this.CodeReview1 = 'info'
+        this.dataChange.cr = 1
+        this.showCodeReview = true
+      } else {
+        this.CodeReview = 'info'
+        this.CodeReview1 = 'danger'
+        this.dataChange.cr = 0
+        this.$set(this.dataChange, 'crBy', '')
+        this.showCodeReview = false
+      }
     }
   }
 }
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
   .eleStyle {
     width: 100%;
     height:100%;
@@ -350,6 +395,11 @@ export default {
     border: 1px solid #DEE2E7;
     height: auto;
   }
+  .CodeReview {
+    /deep/ .el-form-item__label {
+      width: 106px;
+    }
+  }
 
 </style>
 <style lang="stylus" scoped>

+ 27 - 3
src/views/Platform/presentation/acceptTheReport.vue

@@ -19,6 +19,11 @@
             <div v-show="showData" style="flex:1" class="marage">完成结果 : {{ fromCreateData.safeInfo }}</div><br>
           </div>
 
+          <div style="display: flex;">
+            <el-form-item style="flex:1;margin: 0 0 1%;" label="CodeReview : "><span :style="CodeReview1">{{ CodeReview }}</span></el-form-item>
+            <el-form-item v-show="showCodeReview" style="flex:1" label="执行人 : ">{{ fromCreateData.crBy }}</el-form-item>
+          </div>
+
           <div style="display: flex;">
             <div style="flex:1">
               <div class="marage">SDL链接 : <a href="http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=237016271" style="color:blue;">普惠SDL准入标准</a></div><br>
@@ -69,6 +74,11 @@
             <el-form-item v-show="showDelay" style="flex:1" label="延期原因 : ">{{ fromCreateData.lateReason }}</el-form-item>
           </div>
 
+          <div style="display: flex;">
+            <el-form-item style="flex:1;margin: 0 0 1%;" label="CodeReview : "><span :style="CodeReview1">{{ CodeReview }}</span></el-form-item>
+            <el-form-item v-show="showCodeReview" style="flex:1" label="执行人 : ">{{ fromCreateData.crBy }}</el-form-item>
+          </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>
@@ -105,18 +115,21 @@ export default {
       configInfo1: { color: 'green' },
       dependentComponents1: { color: 'green' },
       lateStatus1: { color: 'red' },
+      CodeReview1: { color: 'red' },
       safeStatus1: { color: 'green' },
       form: {},
-      dependentCom: '',
-      config: '',
+      dependentCom: '',
+      config: '',
       showDelay: false,
       showDelay1: false,
       showDelay2: false,
+      showCodeReview: false,
       towShow: false,
       oneShow: false,
       showData: false,
       joinTestOne: '',
       lateStatus: '',
+      CodeReview: '否', // CodeReview
       safeStatus: '',
       name: '',
       haha: '',
@@ -130,6 +143,7 @@ export default {
   methods: {
     idGet() {
       this.fromCreateData = this.message
+
       if (this.fromCreateData.type === 2) {
         this.towShow = false
         this.oneShow = true
@@ -149,7 +163,8 @@ export default {
         this.safeStatus = '否'
         this.safeStatus1.color = 'green'
       }
-      if (this.fromCreateData.lateReason !== '') {
+
+      if (this.fromCreateData.lateReason !== '' && this.fromCreateData.lateReason !== null) {
         this.showDelay = true
         this.lateStatus = '是'
       } else {
@@ -173,7 +188,16 @@ export default {
         this.dependentCom = '否'
         this.dependentComponents1.color = 'red'
       }
+      if (this.fromCreateData.crBy !== '' && this.fromCreateData.crBy !== null) { // CodeReview
+        this.showCodeReview = true
+        this.CodeReview = '是'
+        this.CodeReview1.color = 'green'
+      } else {
+        this.showCodeReview = false
+        this.CodeReview = '否'
+      }
     }
+
   }
 }
 </script>

+ 67 - 15
src/views/Platform/presentation/presentationReport.vue

@@ -29,13 +29,21 @@
         <el-form-item v-if="showData" label="完成结果" prop="safeInfo"><el-input v-model="fromDev.safeInfo" size="small" style="width: 25vw;" /></el-form-item>
       </div>
 
+      <div class="CodeReview" style="display: flex; justify-content: space-between; white-space: nowrap;">
+        <el-form-item label="* CodeReview">
+          <el-button :type="CodeReview" style="margin: 0 9px 0 12px;" size="small" class="tag" @click="showCodeReviews(1)"> 是 </el-button>
+          <el-button :type="CodeReview1" class="tag" size="small" @click="showCodeReviews(0)"> 否 </el-button>
+        </el-form-item>
+        <el-form-item v-if="showCodeReview" class="double" label="执行人" prop="crBy"><el-input v-model="fromDev.crBy" size="small" style="width: 25vw;" /></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" size="small" style="width:15vw;" placeholder="请填写" /></el-form-item>
         <el-form-item label="开发时间" prop="devTimeStart">
-          <el-date-picker v-model="fromDev.devTimeStart" type="date" size="small" style="width:12.5vw; margin-right:2%;" placeholder="选择日期" />
-          <el-date-picker v-model="fromDev.devTimeEnd" type="date" size="small" style="width:12.5vw;" placeholder="选择日期" />
+          <el-date-picker v-model="fromDev.devTimeStart" value-format="yyyy-MM-dd" type="date" size="small" style="width:12.5vw; margin-right:2%;" placeholder="选择日期" />
+          <el-date-picker v-model="fromDev.devTimeEnd" value-format="yyyy-MM-dd" type="date" size="small" style="width:12.5vw;" placeholder="选择日期" />
         </el-form-item>
       </div>
 
@@ -46,14 +54,14 @@
           </el-select>
         </el-form-item>
         <el-form-item label="计划提测时间" prop="planLaunchTime">
-          <el-date-picker v-model="fromDev.planLaunchTime" size="small" type="date" style="width:25vw;" placeholder="选择日期" />
+          <el-date-picker v-model="fromDev.planLaunchTime" value-format="yyyy-MM-dd" size="small" type="date" style="width:25vw;" placeholder="选择日期" />
         </el-form-item>
       </div>
 
       <div class="double">
         <el-form-item label=" prd地址 " prop="prdUrl"><el-input v-model="fromDev.prdUrl" size="small" style="width:15vw;" placeholder="请提供wiki链接" /></el-form-item>
         <el-form-item label="实际提测时间" prop="launchTime">
-          <el-date-picker v-model="fromDev.launchTime" type="date" size="small" style="width:25vw;" placeholder="选择日期" />
+          <el-date-picker v-model="fromDev.launchTime" value-format="yyyy-MM-dd" type="date" size="small" style="width:25vw;" placeholder="选择日期" />
         </el-form-item>
       </div>
       <div class="double">
@@ -97,6 +105,8 @@
 </template>
 
 <script>
+const _ = require('lodash')
+import moment from 'moment'
 import { launchTestUpdate, launchTestCreate } from '@/api/InterfaceReport'
 import E from 'wangeditor'
 
@@ -129,22 +139,26 @@ export default {
         testSuggest: [{ required: true, message: '测试建议不能为空', trigger: 'change' }],
         isEdition: [{ required: true, message: '是否跟版不能为空', trigger: 'change' }],
         getInfo: [{ required: true, message: '涉及安全项不能为空', trigger: 'change' }],
-        safeInfo: [{ required: true, message: '完成结果不能为空', trigger: 'change' }]
+        safeInfo: [{ required: true, message: '完成结果不能为空', trigger: 'change' }],
+        crBy: [{ required: true, message: '执行人不能为空', trigger: 'change' }]
       },
       objData: '',
       lateStatusBtn: 'info',
-      lateStatusBtn1: 'info',
+      lateStatusBtn1: 'success',
       getInfoBtn: 'info',
-      getInfoBtn1: 'info',
+      getInfoBtn1: 'success',
+      CodeReview: 'info',
+      CodeReview1: 'danger',
       userData: '',
       showDelay: false,
       labelWidth: '60px',
-      lateStatus: '',
+      lateStatus: 1,
       getInfo: '',
       fromDev: {},
       ids: [],
       editorContent: '',
       showData: false,
+      showCodeReview: false,
       DetailsOfProposal: '',
       projectIdCode: ''
     }
@@ -199,6 +213,19 @@ export default {
           this.showData = false
           this.$set(this.fromDev, 'safeInfo', '')
         }
+        if (this.fromDev.crBy !== '' && this.fromDev.crBy !== null) { // CodeReview
+          alert(this.fromDev.crBy !== null)
+          this.CodeReview = 'success'
+          this.CodeReview1 = 'info'
+          this.fromDev.cr = 1
+          this.showCodeReview = true
+        } else {
+          this.CodeReview = 'info'
+          this.CodeReview1 = 'danger'
+          this.fromDev.cr = 0
+          this.showCodeReview = false
+          this.$set(this.fromDev, 'crBy', '')
+        }
         this.$nextTick(() => {
           this.fromDev.joinTest !== null ? this.editorContent.txt.html(this.fromDev.joinTest) : ''
           this.fromDev.moduleInfo !== null ? this.DetailsOfProposal.txt.html(this.fromDev.moduleInfo) : ''
@@ -208,13 +235,17 @@ export default {
     getQueryData(ele) {
       this.$refs['fromDev'].validate((valid) => {
         if (valid) {
-          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.fromDev.id === undefined ? this.fromDev.id = this.clien : ''
+          const params = _.cloneDeep(this.fromDev)
+          typeof (this.editorContent) === 'string' ? params.joinTest = this.editorContent : ''
+          typeof (this.DetailsOfProposal) === 'string' ? params.moduleInfo = this.DetailsOfProposal : ''
+          params.lateStatus = this.lateStatus
+          params.devTimeStart = moment(params.devTimeStart).format('YYYY.MM.DD')
+          params.devTimeEnd = moment(params.devTimeEnd).format('YYYY.MM.DD')
+          params.planLaunchTime = moment(params.planLaunchTime).format('YYYY.MM.DD')
+          params.launchTime = moment(params.launchTime).format('YYYY.MM.DD')
+          params.id === undefined ? params.id = this.clien : ''
           this.userData = { id: '', ename: this.userInformation, name: this.userNames }
-          this.objData = { launchTestInfo: this.fromDev, user: this.userData }
+          this.objData = { launchTestInfo: params, user: this.userData }
           launchTestUpdate(this.objData).then(res => {
             if (res.code === 200) {
               this.$message({ type: 'success', message: '更新成功' })
@@ -284,12 +315,28 @@ export default {
         this.getInfoBtn = 'danger'
         this.showData = true
       }
+    },
+
+    showCodeReviews(e) { // CodeReview
+      if (e === 1) {
+        this.CodeReview = 'success'
+        this.CodeReview1 = 'info'
+        this.fromDev.cr = 1
+        this.showCodeReview = true
+      }
+      if (e === 0) {
+        this.CodeReview1 = 'danger'
+        this.CodeReview = 'info'
+        this.fromDev.cr = 0
+        this.showCodeReview = false
+      }
+      this.$set(this.fromDev, 'crBy', '')
     }
   }
 }
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
 .eleStyle {
     width: 100%;
     height:100%;
@@ -315,6 +362,11 @@ export default {
    border: 2px solid #DEE2E7;
    height: auto;
   }
+  .CodeReview {
+    /deep/ .el-form-item__label {
+      width: 106px;
+    }
+  }
 </style>
 <style lang="stylus" scoped>
   .double