|
@@ -0,0 +1,348 @@
|
|
|
+<template>
|
|
|
+ <div style="background-color:#F2F3F6;display:flex;align-items: center;justify-content: center;">
|
|
|
+ <el-container>
|
|
|
+ <el-header class="bgborder" style=" margin: 1%;display:flex;align-items: center;justify-content: space-between;">
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_all }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 1 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_name }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 2 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_project }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 3 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_demand }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 4 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_ExemptionTest }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 8 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_bizId }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 5 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_platform }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 6 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-dropdown @command="handleCommand">
|
|
|
+ <span class="el-dropdown-link drop_down" style="cursor: pointer;">{{ form_task.task_Modular }}<i class="el-icon-arrow-down el-icon--right" /></span>
|
|
|
+ <el-dropdown-menu slot="dropdown" align="center">
|
|
|
+ <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 7 }">{{ item.label }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-select id="basicName" v-model="form_task.task_PersonInCharge" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="负责人">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ <el-select id="basicName" v-model="form_task.task_Participant" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="参与人">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ <el-select id="basicName" v-model="form_task.task_Founder" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="创建人">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ <el-button type="primary" size="mini" style="float: right">查询</el-button>
|
|
|
+ <el-button size="mini" style="float: right;" @click="query_Reset">重置</el-button>
|
|
|
+ </el-header>
|
|
|
+
|
|
|
+ <el-main class="bgborder" style=" margin: 0 1%;min-height: 79.5vh;padding:0 !important">
|
|
|
+ <div style="margin: 1.5%; font-weight: 600; white-space: nowrap;"><b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>任务列表 <el-button type="primary" size="mini" icon="el-icon-plus" style="float: right;" @click="dialogFormVisible = true">新建</el-button></div>
|
|
|
+ <el-table :data="tableData" style="width: 100%;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true" :row-class-name="tableRowClassName">
|
|
|
+ <el-table-column label="任务名称" min-width="200" align="center" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope"><span @click="link_project">{{ scope.row.address }}</span></template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="归属项目" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="归属需求" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="业务线" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="平台" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="模块" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="是否免测" min-width="80" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="开发负责人" min-width="80" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="测试负责人" min-width="80" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="开发" min-width="80" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="测试" min-width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.teamName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="创建日期" min-width="120" align="center">
|
|
|
+ <template slot-scope="scope">{{ scope.row.date }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-main>
|
|
|
+ <el-footer class="footer" style="display:flex;align-items: center;justify-content: flex-end;">
|
|
|
+ <el-pagination background :current-page="currentPage" :page-sizes="[15, 20, 25, 30]" :page-size="100" layout="total, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
|
|
|
+ </el-footer>
|
|
|
+ </el-container>
|
|
|
+ <el-dialog title="新建任务" :visible.sync="dialogFormVisible" width="70%">
|
|
|
+ <el-form :model="form" label-position="right" style="margin: 0 3%;" label-width="120px">
|
|
|
+ <el-form-item label="任务名称" style="width: 100%">
|
|
|
+ <el-input v-model="form.name" autocomplete="off" placeholder="请输入任务名称" />
|
|
|
+ </el-form-item>
|
|
|
+ <div style="display:flex;align-items: center;justify-content: space-between;">
|
|
|
+ <div>
|
|
|
+ <el-form-item label="直接归属">
|
|
|
+ <el-checkbox-group v-model="form.type">
|
|
|
+ <el-checkbox label="不归属" name="type"> 不归属</el-checkbox>
|
|
|
+ <el-checkbox label="需求" name="type" />
|
|
|
+ <el-checkbox label="项目" name="type" />
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="业务/平台/模块">
|
|
|
+ <el-select v-model="form.value" clearable placeholder="请选择" style="width: 20vw">
|
|
|
+ <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开发负责人">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-form-item label="归属需求">
|
|
|
+ <el-select v-model="form.value" clearable placeholder="请选择" style="width:20vw">
|
|
|
+ <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否免测">
|
|
|
+ <el-checkbox-group v-model="form.checkList">
|
|
|
+ <el-checkbox label="否" name="type" />
|
|
|
+ <el-checkbox label="是" name="type" />
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="测试负责人">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="技术文档链接">
|
|
|
+ <el-input v-model="form.textarea" placeholder="请粘贴链接" />
|
|
|
+ </el-form-item>
|
|
|
+ <div style="display:flex;align-items: center;justify-content: space-between;">
|
|
|
+ <el-form-item label="是否跟版">
|
|
|
+ <el-checkbox-group v-model="form.checkList" style="width: 20vw;">
|
|
|
+ <el-checkbox label="否" name="type" />
|
|
|
+ <el-checkbox label="是" name="type" />
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="涉及的客户端">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请选择 多选" style="width: 20vw">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="dialogFormVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="dialogFormVisible = false">创 建</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ curIndex: 1,
|
|
|
+ pageSize: 15,
|
|
|
+ options: [],
|
|
|
+ value1: [],
|
|
|
+ list: [],
|
|
|
+ form: {
|
|
|
+ type: [],
|
|
|
+ checkList: []
|
|
|
+ },
|
|
|
+ form_task: {
|
|
|
+ task_all: '全部',
|
|
|
+ task_name: '任务名称',
|
|
|
+ task_project: '归属项目',
|
|
|
+ task_demand: '归属需求',
|
|
|
+ task_ExemptionTest: '是否免测',
|
|
|
+ task_PersonInCharge: '负责人',
|
|
|
+ task_bizId: '业务线',
|
|
|
+ task_platform: '平台',
|
|
|
+ task_Modular: '模块',
|
|
|
+ task_Participant: '参与人',
|
|
|
+ task_Founder: '创建人'
|
|
|
+
|
|
|
+ },
|
|
|
+ loading: false,
|
|
|
+ dialogFormVisible: false,
|
|
|
+ currentPage: 0,
|
|
|
+ tableData: [{
|
|
|
+ value: '2016-05-02',
|
|
|
+ address: '王小虎',
|
|
|
+ teamName: '金沙江路 1518 弄'
|
|
|
+ }],
|
|
|
+ options1: [{
|
|
|
+ teamName: '选项1',
|
|
|
+ label: '黄金糕'
|
|
|
+ }, {
|
|
|
+ teamName: '选项2',
|
|
|
+ label: '双皮奶'
|
|
|
+ }, {
|
|
|
+ teamName: '选项3',
|
|
|
+ label: '蚵仔煎'
|
|
|
+ }, {
|
|
|
+ value: '选项4',
|
|
|
+ label: '龙须面'
|
|
|
+ }, {
|
|
|
+ value: '选项5',
|
|
|
+ label: '北京烤系三星那些闹事你辛苦啦斯诺克选手内心鸭'
|
|
|
+ }],
|
|
|
+ value: '',
|
|
|
+ all_city_list: [{ value: 1, label: '秦志鹏' }, { value: 2, label: '汝瑞' }, { value: 3, label: '赵杰' }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleCommand(command) {
|
|
|
+ console.log(command)
|
|
|
+ var isCommand = ''
|
|
|
+ switch (command.flag) {
|
|
|
+ case 1: // 全部
|
|
|
+ this.form_task.task_all = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 2:
|
|
|
+ this.form_task.task_name = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 3:
|
|
|
+ this.form_task.task_project = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 4:
|
|
|
+ this.form_task.task_demand = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 5:
|
|
|
+ this.form_task.task_bizId = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 6:
|
|
|
+ this.form_task.task_platform = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 7:
|
|
|
+ this.form_task.task_Modular = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ case 8:
|
|
|
+ this.form_task.task_ExemptionTest = command.label
|
|
|
+ isCommand = command.label.value
|
|
|
+ break
|
|
|
+ }
|
|
|
+ console.log(isCommand)
|
|
|
+ },
|
|
|
+ remoteMethod(query) {
|
|
|
+ if (query !== '') {
|
|
|
+ this.loading = true
|
|
|
+ setTimeout(() => {
|
|
|
+ this.loading = false
|
|
|
+ this.options = this.list.filter(item => {
|
|
|
+ return item.label.toLowerCase()
|
|
|
+ .indexOf(query.toLowerCase()) > -1
|
|
|
+ })
|
|
|
+ }, 200)
|
|
|
+ } else {
|
|
|
+ this.options = []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ tableRowClassName({ row, rowIndex }) {
|
|
|
+ if (rowIndex === 1) {
|
|
|
+ return 'warning-row'
|
|
|
+ } else if (rowIndex === 3) {
|
|
|
+ return 'success-row'
|
|
|
+ }
|
|
|
+ return ''
|
|
|
+ },
|
|
|
+ link_project() {
|
|
|
+ window.open('http://localhost:9528/#/Platform/projectManage/projectViewDetails', '_blank')
|
|
|
+ },
|
|
|
+ query_Reset() { // 重置
|
|
|
+ this.$set(this.form_task, 'task_all', '全部')
|
|
|
+ this.$set(this.form_task, 'task_name', '任务名称')
|
|
|
+ this.$set(this.form_task, 'task_project', '归属项目')
|
|
|
+ this.$set(this.form_task, 'task_demand', '归属需求')
|
|
|
+ this.$set(this.form_task, 'task_ExemptionTest', '是否免测')
|
|
|
+ this.$set(this.form_task, 'task_bizId', '业务线')
|
|
|
+ this.$set(this.form_task, 'task_platform', '平台')
|
|
|
+ this.$set(this.form_task, 'task_Modular', '模块')
|
|
|
+ this.$set(this.form_task, 'task_PersonInCharge', '负责人')
|
|
|
+ this.$set(this.form_task, 'task_Participant', '参与人')
|
|
|
+ this.$set(this.form_task, 'task_Modular', '创建人')
|
|
|
+ },
|
|
|
+ handleSizeChange(size) { // 分页
|
|
|
+ this.pageSize = size
|
|
|
+ // this.get_list()
|
|
|
+ },
|
|
|
+ handleCurrentChange(curIndex) { // 分页
|
|
|
+ this.curIndex = curIndex
|
|
|
+ // this.get_list()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+ .footer { text-align: right; margin: 1%; background-color: #FFFFFF; border-radius: 8px; }
|
|
|
+
|
|
|
+ .bgborder { background-color: #FFFFFF; border-radius: 8px;}
|
|
|
+
|
|
|
+ .bgborder .el-input__inner { border: none;width: 90px;}
|
|
|
+
|
|
|
+ .bgborder .el-select .el-input .el-select__caret { color: #333333 !important; }
|
|
|
+
|
|
|
+ .bgborder .el-table .el-table__body tr:hover td { color: #409EFF; background: #EEF0F5; } /*hover时字体, 背景颜色*/
|
|
|
+
|
|
|
+ .bgborder .el-input__icon { width: 77px !important; }
|
|
|
+
|
|
|
+ .el-table .warning-row { background: oldlace; }
|
|
|
+
|
|
|
+ /* #basicName::-webkit-input-placeholder {
|
|
|
+ color: #333333;
|
|
|
+ } */
|
|
|
+ .drop_down {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #333333;
|
|
|
+ /* white-space: nowrap; */
|
|
|
+ }
|
|
|
+</style>
|