|
@@ -4,47 +4,48 @@
|
|
|
<div class="block">
|
|
|
<div class="operate-flex">
|
|
|
<span>状态</span>
|
|
|
- <el-select v-model="form.status" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="状态">
|
|
|
+ <el-select v-model="form.status" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="状态" @change="updateData()">
|
|
|
<el-option v-for="item in processStatusEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
<span>优先级</span>
|
|
|
- <el-select v-model="form.priority" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="优先级">
|
|
|
+ <el-select v-model="form.priority" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="优先级" @change="updateData()">
|
|
|
<el-option v-for="item in priorityEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
<span>进展</span>
|
|
|
- <el-select v-model="form.stage" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="进展">
|
|
|
+ <el-select v-model="form.stage" size="medium" style="width:11%;margin-right: 15px;" clearable placeholder="进展" @change="updateData()">
|
|
|
<el-option v-for="item in stageEnumList" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
- <el-button type="primary" plain size="medium">新建日报报告</el-button>
|
|
|
- <el-button type="primary" plain size="medium">新建准出报告</el-button>
|
|
|
+ <el-button type="primary" plain size="medium" @click="createDailyReport(form)">新建日报报告</el-button>
|
|
|
+ <el-button type="primary" plain size="medium" @click="createReport(form)">新建准出报告</el-button>
|
|
|
<el-button type="primary" plain size="medium" @click="changeaddTaskData()">新建任务</el-button>
|
|
|
- <el-button type="primary" plain size="medium">编辑</el-button>
|
|
|
+ <el-button type="primary" plain size="medium" @click="projectShowData()">编辑</el-button>
|
|
|
</div>
|
|
|
<div class="display-messege">
|
|
|
- 项目名称 : {{ form.name }}
|
|
|
+ <span style="font-weight:bold;">项目名称 :</span> {{ form.name }}
|
|
|
</div>
|
|
|
<div class="display-messege">
|
|
|
- <div class="divide-twoparts">业务线 : {{ form.bizIdString }}</div>
|
|
|
- <div class="divide-twoparts">平台类型 : {{ form.platForm }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">业务线 :</span> {{ form.bizIdString }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">关注人 :</span> {{ form.focusPenson }}</div>
|
|
|
</div>
|
|
|
<div class="display-messege">
|
|
|
- <div class="divide-twoparts">产品 : {{ form.pm }}</div>
|
|
|
- <div class="divide-twoparts">开发 : {{ form.rd }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">平台类型 :</span> {{ form.platFormString }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">开发 :</span> {{ form.rd }}</div>
|
|
|
</div>
|
|
|
<div class="display-messege">
|
|
|
- <div class="divide-twoparts">测试 : {{ form.qa }}</div>
|
|
|
- <div class="divide-twoparts">交互 : {{ form.ui }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">产品 :</span> {{ form.pm }}</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">测试 :</span> {{ form.qa }}</div>
|
|
|
</div>
|
|
|
<div class="display-messege">
|
|
|
- <div class="divide-twoparts">视觉 : {{ form.ue }}</div>
|
|
|
- <div class="divide-twoparts">关注人 : 222</div>
|
|
|
+ <div class="divide-twoparts"><span style="font-weight:bold;">版本 :</span> {{ form.version }}</div>
|
|
|
</div>
|
|
|
- <div class="display-messege">
|
|
|
- <div class="divide-twoparts">描述 : {{ form.description }}</div>
|
|
|
- <div class="divide-twoparts">详细添加 : 222</div>
|
|
|
+ <div class="display-messege-end-one">
|
|
|
+ <div class="divide-fullparts"><span style="font-weight:bold;">详细添加 :</span><div class="add-border" v-html="form.timeInfo" /></div>
|
|
|
+ </div>
|
|
|
+ <div class="display-messege-end">
|
|
|
+ <div class="divide-fullparts"><span style="font-weight:bold;">描述 :</span> {{ form.description }}</div>
|
|
|
</div>
|
|
|
<div class="display-messege-end">
|
|
|
- 备注 : {{ form.remarks }}
|
|
|
+ <div class="divide-fullparts"><span style="font-weight:bold;">备注 :</span> {{ form.remarks }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="block-end">
|
|
@@ -64,18 +65,27 @@
|
|
|
width="80"
|
|
|
/>
|
|
|
<el-table-column
|
|
|
- prop="name"
|
|
|
label="标题名称"
|
|
|
align="center"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-link style="font-weight: 400;" type="primary" :underline="false" @click="getClickId(scope.row)">{{ scope.row.name }}</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="statusString"
|
|
|
label="状态"
|
|
|
align="center"
|
|
|
width="130"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag
|
|
|
+ :type="scope.row.statusString === '打回' ? 'danger' : 'success'"
|
|
|
+ disable-transitions
|
|
|
+ >{{ scope.row.statusString }}</el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="gmtCreate"
|
|
|
+ prop="createTime"
|
|
|
label="创建时间"
|
|
|
align="center"
|
|
|
/>
|
|
@@ -84,10 +94,20 @@
|
|
|
align="center"
|
|
|
width="300"
|
|
|
>
|
|
|
- <template>
|
|
|
+ <template v-slot="scope">
|
|
|
<div>
|
|
|
- <el-button size="mini" type="primary" plain>编辑</el-button>
|
|
|
- <el-button size="mini" type="danger" plain>删除</el-button>
|
|
|
+ <el-button size="mini" type="primary" plain @click="changeTaskData(scope.row.id)">编辑</el-button>
|
|
|
+ <el-button size="mini" type="danger" plain @click="deleteTaskDataOut(scope.row.id)">删除</el-button>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="deleteTaskDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ >
|
|
|
+ <span>确定要删除这条任务信息吗</span>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" size="mini" @click="delTaskData()">确 定</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="deleteTaskDialogVisible = false">取 消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -108,10 +128,13 @@
|
|
|
width="80"
|
|
|
/>
|
|
|
<el-table-column
|
|
|
- prop="name"
|
|
|
label="标题名称"
|
|
|
align="center"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-link style="font-weight: 400;" type="primary" :underline="false" @click="JumpDaily(scope.row)">{{ scope.row.reportName }}</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="gmtCreate"
|
|
|
label="创建时间"
|
|
@@ -122,10 +145,20 @@
|
|
|
align="center"
|
|
|
width="300"
|
|
|
>
|
|
|
- <template>
|
|
|
+ <template v-slot="scope">
|
|
|
<div>
|
|
|
<el-button size="mini" type="primary" plain>编辑</el-button>
|
|
|
- <el-button size="mini" type="danger" plain>删除</el-button>
|
|
|
+ <el-button size="mini" type="danger" plain @click="deleteDailyTestDataOut(scope.row.id)">删除</el-button>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="deleteDailyTestDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ >
|
|
|
+ <span>确定要删除这条日报信息吗</span>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" size="mini" @click="delDailyTest()">确 定</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="deleteDailyTestDialogVisible = false">取 消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -146,10 +179,13 @@
|
|
|
width="80"
|
|
|
/>
|
|
|
<el-table-column
|
|
|
- prop="name"
|
|
|
label="标题名称"
|
|
|
align="center"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-link style="font-weight: 400;" type="primary" :underline="false" @click="JumpOut(scope.row)">{{ scope.row.reportName }}</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
prop="gmtCreate"
|
|
|
label="创建时间"
|
|
@@ -160,10 +196,20 @@
|
|
|
align="center"
|
|
|
width="300"
|
|
|
>
|
|
|
- <template>
|
|
|
+ <template v-slot="scope">
|
|
|
<div>
|
|
|
<el-button size="mini" type="primary" plain>编辑</el-button>
|
|
|
- <el-button size="mini" type="danger" plain>删除</el-button>
|
|
|
+ <el-button size="mini" type="danger" plain @click="deleteTestReport(scope.row.id)">删除</el-button>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="deleteTestReportDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ >
|
|
|
+ <span>确定要删除这条准出报告信息吗</span>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" size="mini" @click="delTestReport()">确 定</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="deleteTestReportDialogVisible = false">取 消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -176,13 +222,17 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getProjectData } from '@/api/projectPage'
|
|
|
+import { getProjectData, updateProject, deleteTaskData, deleteDailyReport, deleteProjectTestReport } from '@/api/projectPage'
|
|
|
import { bugGetEnum } from '@/api/defectManage' // 下拉菜单data
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
form: {},
|
|
|
+ deleteTaskDialogVisible: false,
|
|
|
+ deleteDailyTestDialogVisible: false,
|
|
|
+ deleteTestReportDialogVisible: false,
|
|
|
+ userData: {},
|
|
|
stageEnumList: [], // 进展
|
|
|
priorityEnumList: [], // 优先级
|
|
|
processStatusEnumList: [], // 状态
|
|
@@ -191,6 +241,9 @@ export default {
|
|
|
projectTestReports: [], // 准出报告Data
|
|
|
projectData: {},
|
|
|
statusOptions: [],
|
|
|
+ userInformation: localStorage.getItem('username'),
|
|
|
+ userNames: localStorage.getItem('realname'),
|
|
|
+ pauseId: '',
|
|
|
activeName: 'first'
|
|
|
}
|
|
|
},
|
|
@@ -199,6 +252,61 @@ export default {
|
|
|
this.idDetail()
|
|
|
},
|
|
|
methods: {
|
|
|
+ deleteTaskDataOut(e) {
|
|
|
+ this.deleteTaskDialogVisible = true
|
|
|
+ this.pauseId = e
|
|
|
+ },
|
|
|
+ deleteDailyTestDataOut(e) {
|
|
|
+ this.deleteDailyTestDialogVisible = true
|
|
|
+ this.pauseId = e
|
|
|
+ },
|
|
|
+ deleteTestReport(e) {
|
|
|
+ this.deleteTestReportDialogVisible = true
|
|
|
+ this.pauseId = e
|
|
|
+ },
|
|
|
+ // 编辑任务列表
|
|
|
+ changeTaskData(e) {
|
|
|
+ this.$router.push({ name: '任务更新', query: { id: e, projectId: this.$route.query.id }})
|
|
|
+ },
|
|
|
+ // 删除任务列表
|
|
|
+ delTaskData() {
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
+ deleteTaskData(this.pauseId, this.userData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.successFun('delete')
|
|
|
+ this.idDetail()
|
|
|
+ } else {
|
|
|
+ this.errorFun(response.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.deleteTaskDialogVisible = false
|
|
|
+ },
|
|
|
+ // 删除日报列表
|
|
|
+ delDailyTest() {
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
+ deleteDailyReport(this.pauseId, this.userData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.successFun('delete')
|
|
|
+ this.idDetail()
|
|
|
+ } else {
|
|
|
+ this.errorFun(response.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.deleteDailyTestDialogVisible = false
|
|
|
+ },
|
|
|
+ // 删除准出
|
|
|
+ delTestReport() {
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
+ deleteProjectTestReport(this.pauseId, this.userData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.successFun('delete')
|
|
|
+ this.idDetail()
|
|
|
+ } else {
|
|
|
+ this.errorFun(response.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.deleteTestReportDialogVisible = false
|
|
|
+ },
|
|
|
// 根据id获取数据
|
|
|
idDetail() {
|
|
|
getProjectData(this.$route.query.id).then(res => {
|
|
@@ -219,8 +327,56 @@ export default {
|
|
|
this.stageEnumList = res.data.stageEnumList
|
|
|
})
|
|
|
},
|
|
|
+ projectShowData() {
|
|
|
+ this.$router.push({ name: '项目创建', query: { id: this.$route.query.id }})
|
|
|
+ },
|
|
|
+ // 跳转任务页面 获取任务点击id
|
|
|
+ getClickId(ele) {
|
|
|
+ this.$router.push({ name: '任务查看', query: { id: ele.id }})
|
|
|
+ },
|
|
|
+ // 日报预览跳转
|
|
|
+ JumpDaily(val) {
|
|
|
+ val.projectId = this.$route.query.id
|
|
|
+ this.$router.push({ path: '/Platform/presentation/testPresenyL', query: { data: val }})
|
|
|
+ },
|
|
|
+ // 准出预览跳转
|
|
|
+ JumpOut(val) {
|
|
|
+ val.projectId = this.$route.query.id
|
|
|
+ this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: val }})
|
|
|
+ },
|
|
|
+ // 新建日报报告
|
|
|
+ createDailyReport(ele) {
|
|
|
+ this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { projectId: ele }})
|
|
|
+ },
|
|
|
+ // 新建准出报告
|
|
|
+ createReport(ele) {
|
|
|
+ if (ele.platForm !== '服务端') {
|
|
|
+ this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { projectId: ele }}) // 客户端
|
|
|
+ } else {
|
|
|
+ this.$router.push({ path: '/Platform/presentation/Acceptance', query: { projectId: ele }}) // 服务端
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 查看头部change
|
|
|
+ updateData() {
|
|
|
+ // this.bizData = this.form
|
|
|
+ this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
+ this.objData = { projectInfo: this.form, user: this.userData }
|
|
|
+ updateProject(this.objData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.successFun('update')
|
|
|
+ } else {
|
|
|
+ this.errorFun(response.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
changeaddTaskData() {
|
|
|
this.$router.push({ name: '任务创建', query: { id: this.$route.query.id }})
|
|
|
+ },
|
|
|
+ successFun(successText) {
|
|
|
+ this.$notify({ title: 'Success', message: `${successText} Successfully`, type: 'success', duration: 2000 })
|
|
|
+ },
|
|
|
+ errorFun(errorText) {
|
|
|
+ this.$notify({ title: 'Failed', message: errorText, type: 'error', duration: 2000 })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -267,6 +423,20 @@ export default {
|
|
|
display flex
|
|
|
width 100%
|
|
|
margin-bottom 15px
|
|
|
+ .display-messege-end-one
|
|
|
+ font-size 14px
|
|
|
+ font-family PingFangSC-Regular,PingFangSC
|
|
|
+ font-weight 400
|
|
|
+ color rgba(51,59,74,1)
|
|
|
+ display flex
|
|
|
+ width 100%
|
|
|
+ margin 30px 0 15px 0
|
|
|
+ .add-border >>> table
|
|
|
+ border-collapse collapse
|
|
|
+ .add-border >>> table tr td
|
|
|
+ border solid 1px black
|
|
|
+ .add-border >>> table tr th
|
|
|
+ border solid 1px black
|
|
|
.display-messege-end
|
|
|
font-size 14px
|
|
|
font-family PingFangSC-Regular,PingFangSC
|
|
@@ -274,7 +444,9 @@ export default {
|
|
|
color rgba(51,59,74,1)
|
|
|
display flex
|
|
|
width 100%
|
|
|
- margin-bottom 10px
|
|
|
+ margin-bottom 15px
|
|
|
.divide-twoparts
|
|
|
width 40%
|
|
|
+ .divide-fullparts
|
|
|
+ width 100%
|
|
|
</style>
|