Explorar o código

优化所属项目/任务/需求。添加bizId参数

qinzhipeng_v %!s(int64=5) %!d(string=hai) anos
pai
achega
15f23d8789

+ 8 - 0
src/api/requirement.js

@@ -34,6 +34,14 @@ export function createRequirement(data) {
   })
 }
 
+export function projectListProject(data) {
+  return request({
+    url: requestIp + '/project/listProject',
+    method: 'post',
+    data
+  })
+}
+
 export function updateRequirement(data) {
   return request({
     url: requestIp + '/requirement/updateRequirement',

+ 12 - 2
src/api/taskIndex.js

@@ -65,8 +65,18 @@ export function projectList(data) {
 // 获取需求list
 export function configShowRequirementVersionEnum(data) {
   return request({
-    url: TeamManagement + `/config/showRequirementVersionEnum?id=` + data,
-    method: 'get'
+    url: TeamManagement + `/requirement/listRequirement`,
+    method: 'post',
+    data
+  })
+}
+
+// 获取项目 list
+export function projectListProject(data) {
+  return request({
+    url: TeamManagement + `/project/listProject`,
+    method: 'post',
+    data
   })
 }
 

+ 3 - 3
src/views/projectManage/bugList/details/index.vue

@@ -405,8 +405,8 @@
             </div>
           </el-tooltip>
           <div v-show="describeEditorVisible">
-            <div id="wange" class="toolbar" />
-            <div id="wange1" class="text" @blur="describeConfirm()" />
+            <div id="wage" class="toolbar" />
+            <div id="wage1" class="text" @blur="describeConfirm()" />
             <div style="margin-top:40px;float: right">
               <el-button @click="describeCancel()">取 消</el-button>
               <el-button type="primary" @click="describeConfirm()">确 认</el-button>
@@ -847,7 +847,7 @@ export default {
       this.bugUpdate(this.bug, 'title')
     },
     RichText() {
-      this.editor = new E('#wange', '#wange1')
+      this.editor = new E('#wage', '#wage1')
       this.editor.customConfig.menus = [
         'bold',
         'italic',

+ 8 - 11
src/views/projectManage/bugList/file/createdBug.vue

@@ -143,7 +143,7 @@
               <el-form-item label="描述" style="width:100%;">
                 <el-row>
                   <el-col :span="24">
-                    <div id="wange" class="toolbar" />
+                    <div id="wange" style="background-color: #FFF;" class="toolbar" />
                     <div id="wange1" class="text" />
                   </el-col>
                 </el-row>
@@ -253,7 +253,13 @@ export default {
   mounted() {
     this.form.remark = 'dd'
     setTimeout(() => {
-      this.RichText()
+      this.$set(this.formInline, 'bugDescribe', '')
+      this.editorRemark = new E('#wange', '#wange1')
+      this.editorRemark.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table', 'foreColor']
+      this.editorRemark.customConfig.onchange = (html) => {
+        this.formInline.bugDescribe = html
+      }
+      this.editorRemark.create()
     }, 100)
   },
   methods: {
@@ -272,15 +278,6 @@ export default {
         }
       }
     },
-    RichText() {
-      this.formInline.bugDescribe = ''
-      this.editorRemark = new E('#wange', '#wange1')
-      this.editorRemark.customConfig.menus = ['bold', 'italic', 'underline', 'link', 'list', 'justify', 'table', 'foreColor']
-      this.editorRemark.customConfig.onchange = (html) => {
-        this.formInline.bugDescribe = html
-      }
-      this.editorRemark.create()
-    },
     getcurrentHandler(e) {
       this.$set(this.formInline, 'currentHandler', e)
     },

+ 0 - 255
src/views/projectManage/bugList/file/drawerAge.vue

@@ -1,255 +0,0 @@
-<template>
-  <div class="Parent">
-    <el-drawer
-      style="margin-top: 80px;margin-left: 45%; width: 55%;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)"
-      :title="'BUG-' + bugQuery.id"
-      size="100%"
-      :visible.sync="drawerShow"
-      :modal="false"
-      :with-header="false"
-      :before-close="handleClose"
-      :show-close="true"
-      :wrapper-closable="false"
-    >
-      <div style="margin: 3%;">
-        <div class="Layout">
-          <span>
-            <span style="font-weight: 600; font-size: 22px; vertical-align: middle;">{{ 'BUG-' + bugQuery.id }}</span>
-            <el-dropdown placement="bottom" style="margin-left: 10px;">
-              <el-button size="mini" plain>
-                未开始<i class="el-icon-arrow-down el-icon--right" />
-              </el-button>
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item>新建需求</el-dropdown-item>
-                <el-dropdown-item>新建任务</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </span>
-          <span class="Layout" style="width: 100px;">
-            <el-dropdown placement="bottom">
-              <el-button size="mini" plain> ··· </el-button>
-              <el-dropdown-menu slot="dropdown" style="text-align: center;">
-                <el-dropdown-item @click.native="getToDetails()">查看详情</el-dropdown-item>
-                <el-dropdown-item @click.native="bugDialogVisible = true">删除</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-            <i class="el-icon-close" style="cursor: pointer;" @click="handleClose" />
-          </span>
-        </div>
-        <div style="margin: 3% 0%; font-weight: 600; font-size: 30px;">{{ bugQuery.bugName }}</div>
-        <div style="height: 570px; overflow:scroll;">
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />详情</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form label-position="left" label-width="100px" :model="bugQuery" style="display:flex;" class="forms">
-                <span style="flex:1;">
-                  <el-form-item label="所属任务:">{{ bugQuery.taskName }}</el-form-item>
-                  <el-form-item label="优先级:">{{ bugQuery.priorityName }}</el-form-item>
-                  <el-form-item label="所属模块:">{{ bugQuery.clientName }}</el-form-item>
-                  <el-form-item label="发现方式:">{{ bugQuery.discoveryMethodName }}</el-form-item>
-                  <el-form-item label="缺陷原因:">{{ bugQuery.reasomName }}</el-form-item>
-                  <el-form-item label="Reopen次数:">{{ bugQuery.reopenTimes }}</el-form-item>
-                </span>
-                <span style="flex:1;">
-                  <el-form-item label="端类型:">{{ bugQuery.platformTypeName }}</el-form-item>
-                  <el-form-item label="缺陷等级:">{{ bugQuery.priority }}</el-form-item>
-                  <el-form-item label="发现阶段:">{{ bugQuery.stageName }}</el-form-item>
-                  <el-form-item label="缺陷类型:">{{ bugQuery.bugTypeName }}</el-form-item>
-                  <el-form-item label="修复结果:">{{ bugQuery.repairResult }}</el-form-item>
-                </span>
-              </el-form>
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />客户端信息</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form label-position="left" label-width="100px" :model="bugQuery" class="Layout forms">
-                <span style="width:50%; margin-right: 3%;">
-                  <el-form-item label="客户端:">{{ bugQuery.appId }}</el-form-item>
-                  <el-form-item label="机型:">{{ bugQuery.osType }}</el-form-item>
-                  <el-form-item label="网络:">{{ bugQuery.networkType }}</el-form-item>
-                </span>
-                <span style="width:50%; margin-left: 3%;">
-                  <el-form-item label="影响版本:">{{ bugQuery.discoveryMethodName }}</el-form-item>
-                  <el-form-item label="系统版本:">{{ bugQuery.sdkVerison }}</el-form-item>
-                  <el-form-item label="网络:">{{ bugQuery.networkType }}</el-form-item>
-                </span>
-              </el-form>
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />用户信息</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form label-position="left" label-width="100px" :model="bugQuery" class="forms">
-                <el-form-item label="提报人:">{{ bugQuery.creatorList }}</el-form-item>
-                <el-form-item label="责任人:">{{ bugQuery.assignerList }}</el-form-item>
-                <el-form-item label="修复人:">{{ bugQuery.currentHandlerList }}</el-form-item>
-              </el-form>
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />时间</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form label-position="left" label-width="100px" :model="bugQuery" class="forms">
-                <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
-                <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
-                <el-form-item label="修复时长:">{{ bugQuery.osType }}</el-form-item>
-              </el-form>
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />描述</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              {{ `If I knew it was the last time, I believe I wonldn't Say goodbye with smile. Although all of world is snowing,Although all migratory birds have followed to north. I am waiting for you here all the time until I am dead one day. I really don't know How many days that I can't sleep,only because of you. Come back,Come back to me!Please!` }}
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />附件</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col>
-              <el-upload
-                class="upload-demo"
-                action="http://star.xiaojukeji.com/upload/img.node"
-                :on-preview="handlePictureCardPreview"
-                :on-progress="progress"
-                :on-success="handleChange"
-                :file-list="fileList"
-                list-type="picture-card"
-              >
-                <el-button size="small" type="primary">上传附件</el-button>
-              </el-upload>
-              <el-dialog :visible.sync="dialogVisible">
-                <img width="100%" :src="dialogImageUrl" alt="">
-              </el-dialog>
-            </el-col>
-          </el-row>
-          <div class="flex_start dividers"><div class="titIcon" style="margin-right: 1%;" />评论</div>
-          <el-row>
-            <el-col :span="24">
-              <el-divider style="color: #EEF0F5;" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
-              <p v-show="commentShow" style="color:#9B9B9B">还没有评论,快来评论吧!</p>
-              <div v-for="(item, value) of commentTxt" :key="value" class="animated bounceInRight">
-                <span style="color: #333B4A; font-size:14px;margin-left:1%;">{{ item.commentInfo.name }}</span>
-                <span style="color: #9B9B9B; font-size:12px;margin-left:1%;">{{ item.commentInfo.gmtCreater }}</span>
-                <p style="color: #333B4A; font-size:14px;margin-left:2%;">{{ item.commentInfo.content }}</p>
-              </div>
-              <el-input
-                v-model="content"
-                rows="6"
-                type="textarea"
-                placeholder="请输入评论内容..."
-                show-word-limit
-              />
-              <p style="text-align: right;">
-                <el-button size="mini" type="primary">发表评论</el-button>
-              </p>
-            </el-col>
-          </el-row>
-        </div>
-      </div>
-
-    </el-drawer>
-    <el-dialog :visible.sync="bugDialogVisible" width="30%">
-      <div class="flex_start" style="font-weight: 600; font-size: 18px; margin-bottom: 11%;"><div class="titIcon" style="margin-right: 1%;" />删除确认</div>
-      <div align="center" class="Parent">是否要删除当前缺陷?</div>
-      <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="bugDialogVisible = false">取 消</el-button>
-        <el-button size="small" type="primary" @click="deleceBug">确 定</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import '@/views/projectManage/bugList/css/index.css'
-import { bugDelete } from '@/api/defectManage'
-export default {
-  data() {
-    return {
-      drawerShow: false,
-      commentShow: false,
-      dialogVisible: false, // 查看附加
-      dialogImageUrl: '', // 附件展示图片
-      commentTxt: [], // 评论
-      bugQuery: {},
-      content: '',
-      fileList: [],
-      fileDbList: [],
-      accessory: [],
-      dis: false,
-      bugDialogVisible: false, // dialog(bug删除)
-      userInformation: localStorage.getItem('username'),
-      userNames: localStorage.getItem('realname')
-    }
-  },
-  methods: {
-    getToDetails() {
-      this.$router.push({ name: '缺陷详情', params: { id: this.bugQuery.id + '' }})
-    },
-    init(e, ele) {
-      this.drawerShow = true
-      this.bugQuery = ele
-      ele.accessory
-    },
-    handleClose(done) {
-      this.drawerShow = false
-    },
-    // 文件上传时的钩子
-    progress(event, file, fileList) {
-      this.dis = true
-    },
-    handlePictureCardPreview(file) {
-      this.dialogImageUrl = file.url
-      this.dialogVisible = true
-    },
-    deleceBug() { // 删除bug
-      var user = { name: this.userNames, ename: this.userInformation, id: '' }
-      bugDelete(user, this.bugQuery.id).then(res => {
-        this.bugDialogVisible = false
-        this.drawerShow = false
-        this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
-      })
-    },
-
-    // 上传成功回调
-    handleChange(response, file, fileList) {
-      this.fileDbList.push({ 'name': file.name, 'url': 'http:' + file.response.url })
-      this.accessory = JSON.stringify(this.fileDbList)
-      this.$message({ showClose: true, message: '文件上传成功', type: 'success' })
-    }
-  }
-}
-</script>

+ 6 - 6
src/views/projectManage/dialog_vue.vue

@@ -19,7 +19,7 @@
           </el-form-item>
           <el-form-item v-if="ascription_demand" label="归属需求" prop="requireId">
             <el-select v-model="task_form.requireId" filterable clearable placeholder="请选择" style="width:20vw">
-              <el-option v-for="item in demandList" :key="item.code" :label="item.msg" :value="item.code" />
+              <el-option v-for="item in demandList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
           </el-form-item>
           <el-form-item v-if="ascription_project" label="归属项目" prop="projectId">
@@ -101,7 +101,7 @@
 </template>
 
 <script>
-import { taskCreate, memberQueryMemberInfoByIDAPorName, configShowTaskEnum, configShowRequirementVersionEnum, taskGet, taskUpdate } from '@/api/taskIndex' // ajax
+import { taskCreate, memberQueryMemberInfoByIDAPorName, configShowTaskEnum, configShowRequirementVersionEnum, taskGet, taskUpdate, projectListProject } from '@/api/taskIndex' // ajax
 import { projectList, settingGetBizList } from '@/api/projectIndex'
 import { settingQueryBizModuleList } from '@/api/defectManage'
 export default {
@@ -225,7 +225,7 @@ export default {
           var url1 = window.location.href // 获取url中"?"符后的字串
           this.requireId = url1.split('/')
           var ss = {}
-          configShowRequirementVersionEnum('').then(res => {
+          configShowRequirementVersionEnum({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
             res.data.belongingRequire.map(item => {
               item.code === Number(this.requireId[7]) ? ss = item : ''
             })
@@ -246,12 +246,12 @@ export default {
           })
           break
       }
-      projectList({ bizId: Number(localStorage.getItem('bizId')) }).then(res => { // 获取项目(查询)
+      projectListProject({ bizId: Number(localStorage.getItem('bizId')) }).then(res => { // 获取项目(查询)
         this.projectList = res.data
       })
-      configShowRequirementVersionEnum('').then(res => {
+      configShowRequirementVersionEnum({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
         // 获取需求(查询)
-        this.demandList = res.data.belongingRequire
+        this.demandList = res.data
       })
     },
     test2(item, e) { // 获取团队人员信息

+ 6 - 2
src/views/projectManage/requirement/list/create.vue

@@ -17,7 +17,7 @@
         </el-form-item>
         <el-form-item v-if="belProject" label="归属项目" prop="belongingProject">
           <el-select v-model="form.belongingProject" placeholder="请选择" style="width:20vw">
-            <el-option v-for="(item,index) in formBackgroungInfo.belongingProject" :key="index" :label="item.msg" :value="item.code" />
+            <el-option v-for="(item,index) in AttributionItems" :key="index" :label="item.name" :value="item.id" />
           </el-select>
         </el-form-item>
       </div>
@@ -91,7 +91,7 @@
 </template>
 
 <script>
-import { getMemberInfo, createRequirement, updateRequirement, showRequirementEnum, settingGetBizList } from '@/api/requirement.js'
+import { getMemberInfo, createRequirement, updateRequirement, showRequirementEnum, settingGetBizList, projectListProject } from '@/api/requirement.js'
 
 export default {
   props: {
@@ -121,6 +121,7 @@ export default {
       },
       isVisible: false,
       belProject: false,
+      AttributionItems: [],
       form: {
         source: 1,
         name: null,
@@ -208,6 +209,9 @@ export default {
         this.all_bizId = res.data
         this.$set(this.form, 'bizId', Number(localStorage.getItem('bizId')))
       })
+      projectListProject({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
+        this.AttributionItems = res.data
+      })
     },
     showRequirementEnum() {
       return showRequirementEnum().then(res => {

+ 10 - 2
src/views/projectManage/requirement/list/index.vue

@@ -41,7 +41,7 @@
             <div class="Layout">
               <div class="queryName">归属项目</div>
               <el-select v-model="searchForm.belongingProject" size="small" clearable filterable placeholder="请选择">
-                <el-option v-for="item in searchInfo.belongingProject" :key="item.code" :label="item.msg" :value="item.code" />
+                <el-option v-for="item in AttributionItems" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </div>
             <div class="Layout marginLeft">
@@ -140,7 +140,8 @@
 import {
   getRequirement,
   showRequirementEnum,
-  getMemberInfo
+  getMemberInfo,
+  projectListProject
 } from '@/api/requirement.js'
 import RequirementCreate from './create'
 import '@/views/projectManage/publicCss/index.css'
@@ -166,6 +167,7 @@ export default {
       isToOne: true,
       bizTypeOb: {},
       sourceTypeOb: {},
+      AttributionItems: [],
       searchForm: {
         name: null,
         belongingProject: null,
@@ -194,6 +196,7 @@ export default {
   },
   created() {
     this.$store.state.data.status = true
+    this.getProject()
   },
   mounted() {
     this.showRequirementEnum().then(res => {
@@ -204,6 +207,11 @@ export default {
     this.$store.state.data.status = false
   },
   methods: {
+    getProject() {
+      projectListProject({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
+        this.AttributionItems = res.data
+      })
+    },
     specialCoIdJudge(id) {
       let result
       if (id.indexOf('-') !== -1) {

+ 9 - 6
src/views/projectManage/taskList/taskIndex.vue

@@ -60,13 +60,13 @@
               <div class="Layout">
                 <div class="queryName">归属项目</div>
                 <el-select v-model="form_task.projectId" size="small" clearable filterable placeholder="请选择">
-                  <el-option v-for="item in projectList" :key="item.code" :label="item.msg" :value="item.code" />
+                  <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id" />
                 </el-select>
               </div>
               <div class="Layout marginLeft">
                 <div class="queryName">归属需求</div>
                 <el-select v-model="form_task.requireId" size="small" clearable filterable placeholder="请选择">
-                  <el-option v-for="item in demandList" :key="item.code" :label="item.msg" :value="item.code" />
+                  <el-option v-for="item in demandList" :key="item.id" :label="item.name" :value="item.id" />
                 </el-select>
               </div>
               <div class="Layout marginLeft">
@@ -198,7 +198,8 @@ import {
   taskList,
   configShowTaskEnum,
   memberQueryMemberInfoByIDAPorName,
-  configShowRequirementVersionEnum
+  configShowRequirementVersionEnum,
+  projectListProject
 } from '@/api/taskIndex' // ajax
 import { settingQueryBizModuleList } from '@/api/defectManage'
 import openDialog from '@/views/projectManage/dialog_vue'
@@ -282,9 +283,9 @@ export default {
         this.total = res.total
         this.table_loading = false
       })
-      configShowRequirementVersionEnum('').then(res => {
+      configShowRequirementVersionEnum({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
         // 获取需求(查询)
-        this.demandList = res.data.belongingRequire
+        this.demandList = res.data
       })
       this.isToOne = true
     },
@@ -367,10 +368,12 @@ export default {
         this.daStatus = res.data.taskStatus
         this.healthStage = res.data.taskStage
         this.noTest = res.data.noTest // 是否免测
-        this.projectList = res.data.belongingProject
         this.taskSource = res.data.taskSource // 归属需求
         this.appClient = res.data.appClient // 涉及客户端
       })
+      projectListProject({ bizId: Number(localStorage.getItem('bizId')) }).then(res => {
+        this.projectList = res.data
+      })
     },
     bugDataGet() { // 所属模块
       settingQueryBizModuleList(Number(localStorage.getItem('bizId'))).then(res => {