任务清单

pull/1/head
zhangyanli 2024-02-21 18:10:20 +08:00
parent 175239e20e
commit c46a6dd3f5
3 changed files with 361 additions and 0 deletions

View File

@ -0,0 +1,108 @@
<template>
<el-dialog :visible.sync="visible" :title="title" width="600px">
<el-form v-loading="loading" ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;">
<el-form-item label="编号" prop="TASK_NUM">
<el-input id="TASK_NUM" ref="TASK_NUM" v-model="form.TASK_NUM" placeholder="这里输入隐患部位..." title="隐患部位"/>
</el-form-item>
<el-form-item label="描述" prop="TERM_DESCRIBE">
<el-input id="TERM_DESCRIBE" ref="TERM_DESCRIBE" v-model="form.TERM_DESCRIBE" type="textarea" placeholder="这里输入描述..." title="描述"/>
</el-form-item>
<el-form-item label="归属类型" prop="WORK_TYPE">
<el-select v-model="form.WORK_TYPE" clearable placeholder="请选择">
<el-option value="1" label="主要负责人" />
<el-option value="2" label="技术负责人" />
<el-option value="3" label="操作负责人" />
</el-select>
</el-form-item>
<el-form-item label="排序" prop="SORT">
<el-input id="SORT" ref="SORT" v-model="form.SORT" maxlength="255" placeholder="这里输入排序..." title="排序"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="close"> </el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
</el-dialog>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves'
export default {
components: { Pagination },
directives: { waves },
props: {
title: {
type: String,
default: ''
}
},
data() {
return {
loading: false,
visible: false,
dialogType: 'add',
form: {
TASK_NUM: '',
TERM_DESCRIBE: '',
WORK_TYPE: '',
SORT: ''
},
rules: {
TASK_NUM: [{ required: true, message: '编号不能为空', trigger: 'blur' },
{ pattern: /^[0-9]{1,2}$/,
message: '编号必须是1~2位数字' }],
TERM_DESCRIBE: [{ required: true, message: '描述不能为空', trigger: 'blur' }],
WORK_TYPE: [{ required: true, message: '归属类型不能为空', trigger: 'blur' }],
SORT: [{ required: true, message: '排序不能为空', trigger: 'blur' }]
}
}
},
methods: {
init(e) {
this.visible = true
if (e) {
this.dialogType = 'edit'
this.form = e
}
},
confirm() {
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
requestFN(
'/hiddenTermLibrary/' + this.dialogType, this.form
).then((data) => {
this.loading = false
this.close()
this.$emit('beforeClose', '')
this.$message.success('操作成功')
}).catch((e) => {
this.loading = false
})
} else {
return false
}
})
},
resetForm() {
this.form = {
TASK_NUM: '',
TERM_DESCRIBE: '',
WORK_TYPE: '',
SORT: ''
}
},
close() {
this.visible = false
this.form = {
TASK_NUM: '',
TERM_DESCRIBE: '',
WORK_TYPE: '',
SORT: ''
}
}
}
}
</script>

View File

@ -0,0 +1,236 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-row :gutter="20">
<el-form label-width="80px">
<el-col :span="6">
<el-form-item label="描述">
<el-input v-model="form.KEYWORDS" placeholder="按关键字查询" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归属类型">
<el-select v-model="form.WORK_TYPE" clearable placeholder="请选择">
<el-option value="1" label="主要负责人" />
<el-option value="2" label="技术负责人" />
<el-option value="3" label="操作负责人" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-search" @click="resetting">
重置
</el-button>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
<el-table
v-loading="listLoading"
ref="multipleTable"
:data="varList"
:row-key="getRowKey"
:header-cell-style="{
'font-weight': 'bold',
'color': '#000'
}"
tooltip-effect="dark"
border
fit
highlight-current-row
>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="TERM_DESCRIBE" label="描述" />
<el-table-column label="归属类型" >
<template slot-scope="{row}">
<span v-if="row.WORK_TYPE === '1'"></span>
<span v-if="row.WORK_TYPE === '2'"></span>
<span v-if="row.WORK_TYPE === '3'"></span>
</template>
</el-table-column>
<el-table-column prop="CREATE_TIME" label="创建时间" />
<el-table-column prop="SORT" label="顺序" />
<el-table-column label="操作" align="center" width="250">
<template slot-scope="{row}">
<el-row :gutter="20">
<el-col :span="8">
<el-button v-show="edit" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row)"></el-button>
</el-col>
<el-col :span="8">
<el-button v-show="del" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.TERM_LIBRARY_ID)"></el-button>
</el-col>
</el-row>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
<el-button v-show="false" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<edit ref="edit" :title="title" href="edit" @beforeClose="getList"/>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves'
import edit from './edit.vue'
export default {
components: { edit, Pagination },
directives: { waves },
data() {
return {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
varList: [],
title: '新增',
form: {
KEYWORDS: '',
WORK_TYPE: ''
}
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.HIDDEN_LIBRARY_ID
},
getQuery() {
this.getList()
},
getList() {
this.listLoading = true
requestFN(
'/hiddenTermLibrary/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
this.form
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
handleAdd() {
this.$refs.edit.init()
this.title = '新增'
},
handleEdit(row) {
this.$refs.edit.init(row)
this.title = '编辑'
},
handleDelete(id) {
this.$confirm('确定要删除吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/hiddenTermLibrary/delete',
{ TERM_LIBRARY_ID: id }
).then(() => {
this.$message({
message: '删除成功',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
batchDel() {
const _selectData = this.$refs.multipleTable.selection
if (_selectData == null || _selectData.length == 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map((item, index) => {
return item.TERM_LIBRARY_ID
}).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/hiddenTermLibrary/deleteAll',
{
DATA_IDS: ids
}
).then(() => {
this.$message({
message: '删除成功',
type: 'success'
})
this.listLoading = false
this.varList = []
this.listQuery.page = 1
this.$refs.multipleTable.clearSelection()
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {
})
},
hasButton: function() {
var keys = 'hiddenTermLibrary:add,hiddenTermLibrary:del,hiddenTermLibrary:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.hiddenTermLibraryfhadminadd //
this.del = data.hiddenTermLibraryfhadmindel //
this.edit = data.hiddenTermLibraryfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
resetting() {
this.form = {
KEYWORDS: '',
WORK_TYPE: ''
}
this.getList()
},
getResult(e) {
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,17 @@
<template>
<div>
<List v-show="activeName==='List'" ref="list" />
</div>
</template>
<script>
import List from './components/list.vue'
export default {
components: { List },
data() {
return {
activeName: 'List'
}
}
}
</script>