Files
UNION_HUTB/target/classes/views/platform/member/check/task.html
T
2026-09-09 09:14:28 +08:00

194 lines
7.5 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<guava>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
style="width: 100%"
v-model="pageForm.year"
type="year"
value-format="yyyy"
placeholder="选择年度">
</el-date-picker>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="任务列表" :app="this">
<template #func>
<el-button icon="el-icon-plus" size="small" @click="openAdd" type="primary">
新增任务
</el-button>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
</el-table-column>
<el-table-column header-align="center" label="操作" width="200px">
<template scope="{row}">
<el-button size="mini" type="primary" @click="openEdit(row)">编辑</el-button>
<el-button size="mini" type="danger" @click="doDelete(row.id)">删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</guava>
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" :close-on-click-modal="false"
width="40%">
<el-form :model="formData" ref="form" label-width="80px" :rules="rules">
<el-form-item prop="taskName" label="任务名称">
<el-input v-model="formData.taskName" maxlength="20"></el-input>
</el-form-item>
<el-form-item prop="startTime" label="开始时间">
<el-date-picker
v-model="formData.startTime"
type="datetime"
value-format="yyyy-MM-dd"
placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
<el-form-item prop="endTime" label="结束时间">
<el-date-picker
v-model="formData.endTime"
type="datetime"
value-format="yyyy-MM-dd"
placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
<el-form-item prop="createTaskMode" label="核对模式">
<el-radio-group v-model="formData.createTaskMode">
<el-radio-button :label="1">工会小组核对</el-radio-button>
<el-radio-button :label="2">个人核对</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item prop="description" label="任务说明">
<el-input v-model="formData.description"
type="textarea"
maxlength="50"></el-input>
</el-form-item>
</el-form>
<el-row type="flex" justify="end">
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary" @click="doSubmit">确定</el-button>
</el-row>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
computed: {
dialogTitle() {
return this.formData.id ? '编辑任务' : '新增任务'
}
},
data() {
return {
tableColumns: [
{prop: 'taskName', label: '任务名称', sortable: true},
{prop: 'year', label: '年度', sortable: true},
{prop: 'startTime', label: '开始时间', sortable: true},
{prop: 'endTime', label: '结束时间', sortable: true},
],
dialogVisible: false,
rules: {
taskName: [{required: true, message: '请输入', trigger: ['change', 'blur']}],
startTime: [{required: true, message: '请选择', trigger: ['change', 'blur']}],
endTime: [{required: true, message: '请选择', trigger: ['change', 'blur']}],
description: [{required: true, message: '请输入', trigger: ['change', 'blur']}],
createTaskMode: [{required: true, message: '请选择', trigger: ['change', 'blur']}]
},
formData: {
startTime: null,
endTime: null,
description: null
},
pageForm: {
year: new Date().getFullYear() + ''
}
}
},
methods: {
openAdd() {
this.dialogVisible = true
this.$refs['form'].resetFields()
},
openEdit(row) {
this.dialogVisible = true
this.$nextTick(() => {
this.formData = {...row}
})
},
async doSubmit() {
const valid = await this.$refs['form'].validate()
if (!valid) return
const methodName = this.formData.id ? '/doEdit' : '/doAdd'
const resp = await $.post(loc() + methodName, this.formData)
if (resp.code === 0) {
this.pageData()
this.notifySuccess(resp.msg)
this.dialogVisible = false
} else {
this.notifyWarning(resp.msg)
}
},
async doDelete(id) {
const confirm = await this.$confirm('您确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if ('confirm' !== confirm) return
const resp = await $.post(loc() + '/doDelete', {id})
if (resp.code === 0) {
this.doSearch()
this.notifySuccess(resp.msg)
} else {
this.notifyWarning(resp.msg)
}
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->