|
|
@@ -8,162 +8,172 @@
|
|
|
<el-col :span="20" :xs="24">
|
|
|
<div class="main-right-box">
|
|
|
<div class="main-search-box">
|
|
|
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
|
|
- <el-form-item label="任务名称" prop="title">
|
|
|
- <el-input v-model="queryParams.title" placeholder="请输入关键字" clearable/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="演练项目" prop="type">
|
|
|
- <el-select v-model="queryParams.type" placeholder="请选择演练项目" clearable>
|
|
|
- <el-option
|
|
|
- v-for="dict in dict.type.core_drill_type"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="任务进度" prop="status">
|
|
|
- <el-select v-model="queryParams.status" placeholder="请选择任务进度" clearable>
|
|
|
- <el-option
|
|
|
- v-for="dict in dict.type.drill_task_status"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!-- <el-form-item label="任务时间" prop="rangen">
|
|
|
- <el-date-picker
|
|
|
- v-model="queryParams.range"
|
|
|
- type="daterange"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="请选择开始日期">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item> -->
|
|
|
- <el-form-item class="searchTitle" prop="rangen" label="任务时间">
|
|
|
- <DataRangePicker
|
|
|
- v-model="queryParams.range"
|
|
|
- key="daterange"
|
|
|
- type="daterange"
|
|
|
- :clearable="timeClearable"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <!-- <el-form-item>
|
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
- </el-form-item> -->
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
|
|
+ <el-form-item label="任务名称" prop="title">
|
|
|
+ <el-input v-model="queryParams.title" placeholder="请输入关键字" clearable/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="演练项目" prop="type">
|
|
|
+ <el-select v-model="queryParams.type" placeholder="请选择演练项目" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="dict in dict.type.core_drill_type"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="任务进度" prop="status">
|
|
|
+ <el-select v-model="queryParams.status" placeholder="请选择任务进度" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="dict in dict.type.drill_task_status"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- <el-form-item label="任务时间" prop="rangen">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.range"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="请选择开始日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item> -->
|
|
|
+ <el-form-item class="searchTitle" prop="rangen" label="任务时间">
|
|
|
+ <DataRangePicker
|
|
|
+ v-model="queryParams.range"
|
|
|
+ key="daterange"
|
|
|
+ type="daterange"
|
|
|
+ :clearable="timeClearable"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <!-- <el-form-item>
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
+ </el-form-item> -->
|
|
|
|
|
|
- </el-form>
|
|
|
- <el-row :gutter="10" class="mb8">
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddTask">临时登记
|
|
|
- </el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出数据
|
|
|
- </el-button>
|
|
|
- </el-col>
|
|
|
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
- </el-row>
|
|
|
+ </el-form>
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddTask">临时登记
|
|
|
+ </el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出数据
|
|
|
+ </el-button>
|
|
|
+ </el-col>
|
|
|
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
+ </el-row>
|
|
|
</div>
|
|
|
<el-table border height="646" v-loading="loading" :data="eduTaskList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column label="序号" type="index" align="center" width="60"/>
|
|
|
- <el-table-column label="任务名称" width="250" align="left" header-align="center" prop="title"/>
|
|
|
- <el-table-column label="演练机构" width="200" align="left" header-align="center" prop="orgName"/>
|
|
|
- <!-- <el-table-column label="演练角色" align="center">
|
|
|
- <template slot-scope="scope">
|
|
|
- <template v-if="scope.row.taskRoleNameList ">
|
|
|
- <el-tag size="mini" type="success"
|
|
|
- v-for="(item, index) in (scope.row.taskRoleNameList || '').split(',')"
|
|
|
- :key="index">
|
|
|
- {{ item }}
|
|
|
- </el-tag>
|
|
|
+ <el-table-column label="序号" type="index" align="center" width="60"/>
|
|
|
+ <el-table-column label="任务名称" width="250" align="left" header-align="center" prop="title"/>
|
|
|
+ <el-table-column label="演练机构" width="200" align="left" header-align="center" prop="orgName"/>
|
|
|
+ <!-- <el-table-column label="演练角色" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <template v-if="scope.row.taskRoleNameList ">
|
|
|
+ <el-tag size="mini" type="success"
|
|
|
+ v-for="(item, index) in (scope.row.taskRoleNameList || '').split(',')"
|
|
|
+ :key="index">
|
|
|
+ {{ item }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
- </template>
|
|
|
- </el-table-column>-->
|
|
|
- <el-table-column label="演练项目" width="200" align="left" header-align="center" prop="type">
|
|
|
- <template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.core_drill_type" :value="scope.row.type"/>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="任务进度" width="100" align="center" header-align="center" prop="status">
|
|
|
- <template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.drill_task_status" :value="scope.row.status"/>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="任务时间" align="center" width="300">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{scope.row.startDate? dayjs(scope.row.startDate).format("YYYY年MM月DD日") +" ~ "+dayjs(scope.row.endDate).format("YYYY年MM月DD日"):''}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ </el-table-column>-->
|
|
|
+ <el-table-column label="演练项目" width="200" align="left" header-align="center" prop="type">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <dict-tag :options="dict.type.core_drill_type" :value="scope.row.type"/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="任务进度" width="100" align="center" header-align="center" prop="status">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <dict-tag :options="dict.type.drill_task_status" :value="scope.row.status"/>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="任务时间" align="center" width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.startDate ? dayjs(scope.row.startDate).format("YYYY年MM月DD日") + " ~ " + dayjs(scope.row.endDate).format("YYYY年MM月DD日") : '' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <!-- <el-table-column label="开始日期" align="center" prop="startDate" width="180">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="截止日期" align="center" prop="endDate" width="180">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="指挥人" align="center" prop="hostName"/>
|
|
|
- <el-table-column label="演练地点" align="center" prop="drillSite"/>-->
|
|
|
+ <!-- <el-table-column label="开始日期" align="center" prop="startDate" width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="截止日期" align="center" prop="endDate" width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="指挥人" align="center" prop="hostName"/>
|
|
|
+ <el-table-column label="演练地点" align="center" prop="drillSite"/>-->
|
|
|
|
|
|
- <!-- <el-table-column label="演练时间" align="center" width="300">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{scope.row.drillStartTime? dayjs(scope.row.drillStartTime).format("YYYY-MM-DD HH:MM") +" ~ "+dayjs(scope.row.drillEndTime).format("YYYY-MM-DD HH:MM"):''}}
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
-<!-- <el-table-column label="评分" align="center" prop="commentScore"/>
|
|
|
+ <!-- <el-table-column label="演练时间" align="center" width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.drillStartTime? dayjs(scope.row.drillStartTime).format("YYYY-MM-DD HH:MM") +" ~ "+dayjs(scope.row.drillEndTime).format("YYYY-MM-DD HH:MM"):''}}
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <!-- <el-table-column label="评分" align="center" prop="commentScore"/>
|
|
|
|
|
|
- <el-table-column scoped-slot="comment" align="center" prop="comment" label="评语">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div class="ellipsis" :title="scope.row.comment">{{ scope.row.comment }}</div>
|
|
|
- </template>
|
|
|
- </el-table-column>-->
|
|
|
+ <el-table-column scoped-slot="comment" align="center" prop="comment" label="评语">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="ellipsis" :title="scope.row.comment">{{ scope.row.comment }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>-->
|
|
|
|
|
|
- <el-table-column label="操作" align="left" header-align="center" class-name="small-padding fixed-width">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-view"
|
|
|
- @click="handleDetail(scope.row.id)"
|
|
|
- v-hasPermi="['core:drillTask:query']"
|
|
|
- >详情
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-document-add"
|
|
|
- v-if="canEvaluate(scope.row)"
|
|
|
- @click="handleEvaluate(scope.row.id)"
|
|
|
- v-hasPermi="['core:drillTask:evaluate']"
|
|
|
- >评价</el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-document-add"
|
|
|
- v-if="canPerform(scope.row)"
|
|
|
- @click="handleRecorded(scope.row.id)"
|
|
|
- v-hasPermi="['core:drillTask:edit']"
|
|
|
- >任务登记
|
|
|
- </el-button>
|
|
|
- <el-button type="text" v-if="scope.row.pdfUrl" @click="onDown(scope.row.pdfUrl)"
|
|
|
- >演练登记簿
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <el-table-column label="操作" align="left" header-align="center" class-name="small-padding fixed-width">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-view"
|
|
|
+ @click="handleDetail(scope.row.id)"
|
|
|
+ v-hasPermi="['core:drillTask:query']"
|
|
|
+ >详情
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-document-add"
|
|
|
+ v-if="canEvaluate(scope.row)"
|
|
|
+ @click="handleEvaluate(scope.row.id)"
|
|
|
+ v-hasPermi="['core:drillTask:evaluate']"
|
|
|
+ >评价
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-document-add"
|
|
|
+ v-if="canPerform(scope.row)"
|
|
|
+ @click="handleRecorded(scope.row.id)"
|
|
|
+ v-hasPermi="['core:drillTask:edit']"
|
|
|
+ >任务登记
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ v-if="canDelete(scope.row)"
|
|
|
+ @click="handleDelete(scope.row.id)"
|
|
|
+ v-hasPermi="['core:drillTask:remove']"
|
|
|
+ >删除
|
|
|
+ </el-button>
|
|
|
+ <el-button type="text" v-if="scope.row.pdfUrl" @click="onDown(scope.row.pdfUrl)"
|
|
|
+ >演练登记簿
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
|
|
|
- <pagination
|
|
|
- v-show="total>0"
|
|
|
- :total="total"
|
|
|
- :page.sync="queryParams.pageNum"
|
|
|
- :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="getList"
|
|
|
- />
|
|
|
+ <pagination
|
|
|
+ v-show="total>0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -175,7 +185,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {listEduTask, addEduTask, updateEduTask} from "@/api/core/drill/drillTask";
|
|
|
+import {listDrillTask, delDrillTask} from "@/api/core/drill/drillTask";
|
|
|
import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
|
|
|
import OrgTree from "@/components/orgTree";
|
|
|
import DialogInfo from "./dialog.info";
|
|
|
@@ -183,6 +193,9 @@ import DialogPerform from "./dialog.perform";
|
|
|
import DialogNewTask from "./dialog.newtask";
|
|
|
import DialogEvaluate from "./dialog.evaluate";
|
|
|
import dayjs from "dayjs";
|
|
|
+import {publishPlan} from "@/api/core/edu/plan";
|
|
|
+import {delDrillDictionary} from "@/api/core/drill/drillDictionary";
|
|
|
+import {delEduTask} from "@/api/core/edu/eduTask";
|
|
|
|
|
|
export default {
|
|
|
name: "EduTask",
|
|
|
@@ -235,7 +248,7 @@ export default {
|
|
|
{required: true, message: "机构不能为空", trigger: "blur"}
|
|
|
],
|
|
|
},
|
|
|
- selectedOrgName:null,
|
|
|
+ selectedOrgName: null,
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
@@ -247,7 +260,7 @@ export default {
|
|
|
/** 查询教育任务列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
- listEduTask(this.queryParams).then(response => {
|
|
|
+ listDrillTask(this.queryParams).then(response => {
|
|
|
this.eduTaskList = response.rows;
|
|
|
this.total = response.total;
|
|
|
this.loading = false;
|
|
|
@@ -279,10 +292,10 @@ export default {
|
|
|
this.clearQueryForm();
|
|
|
this.handleQuery();
|
|
|
},
|
|
|
- clearQueryForm(){
|
|
|
- this.queryParams.type=null;
|
|
|
- this.queryParams.status=null;
|
|
|
- this.queryParams.range=[];
|
|
|
+ clearQueryForm() {
|
|
|
+ this.queryParams.type = null;
|
|
|
+ this.queryParams.status = null;
|
|
|
+ this.queryParams.range = [];
|
|
|
},
|
|
|
//单选框状态改变
|
|
|
checkChange(state) {
|
|
|
@@ -291,13 +304,13 @@ export default {
|
|
|
},
|
|
|
getDefaultOrg(org) {
|
|
|
this.queryParams.orgId = org.id;
|
|
|
- this.selectedOrgName=org.shortName;
|
|
|
+ this.selectedOrgName = org.shortName;
|
|
|
this.getList();
|
|
|
},
|
|
|
// 节点单击事件
|
|
|
clickTreeNode(data) {
|
|
|
this.queryParams.orgId = data.id;
|
|
|
- this.selectedOrgName=data.shortName;
|
|
|
+ this.selectedOrgName = data.shortName;
|
|
|
this.handleQuery();
|
|
|
},
|
|
|
// 多选框选中数据
|
|
|
@@ -316,30 +329,21 @@ export default {
|
|
|
handleDetail(id) {
|
|
|
this.$refs["infoDialog"].show(id, {});
|
|
|
},
|
|
|
- /** 提交按钮 */
|
|
|
- submitForm() {
|
|
|
- this.$refs["form"].validate(valid => {
|
|
|
- if (valid) {
|
|
|
- if (this.form.id != null) {
|
|
|
- updateEduTask(this.form).then(response => {
|
|
|
- this.$modal.msgSuccess("修改成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- } else {
|
|
|
- addEduTask(this.form).then(response => {
|
|
|
- this.$modal.msgSuccess("新增成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
+
|
|
|
/** 培训登记按钮操作 */
|
|
|
handleRecorded(id) {
|
|
|
this.$refs["performDialog"].show(id, {});
|
|
|
},
|
|
|
+ /** 删除按钮操作 */
|
|
|
+ handleDelete(id) {
|
|
|
+ this.$modal.confirm('删除后不可恢复,是否确认删除该任务?').then(function () {
|
|
|
+ return delDrillTask(id);
|
|
|
+ }).then(() => {
|
|
|
+ this.$modal.msgSuccess("删除成功");
|
|
|
+ this.getList();
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
+ },
|
|
|
/** 评价按钮操作 */
|
|
|
handleEvaluate(id) {
|
|
|
this.$refs["evaluateDialog"].show(id, {});
|
|
|
@@ -370,6 +374,10 @@ export default {
|
|
|
});
|
|
|
return (flag == 1) && isOver;*/
|
|
|
},
|
|
|
+ canDelete(row) {
|
|
|
+ //仅行社安全保卫管理人员进入且演练任务处于待评价状态才显示
|
|
|
+ return row.orgId == this.$store.getters.orgId && !row.planId;
|
|
|
+ },
|
|
|
isNotOverOrUnStart(row) {
|
|
|
const currentTime = dayjs().startOf('day'); // 获取当前时间,并将时分秒部分设置为00时00分00秒
|
|
|
const startDate = dayjs(row.startDate).startOf('day'); // 转换开始时间为 Moment.js 对象,并将时分秒部分设置为00时00分00秒
|
|
|
@@ -385,7 +393,7 @@ export default {
|
|
|
console.log(123123123)
|
|
|
this.$refs["newTaskDialog"].show(id, {});
|
|
|
},
|
|
|
- handleExport(){
|
|
|
+ handleExport() {
|
|
|
this.download('core/drill/task/export', {
|
|
|
...this.queryParams
|
|
|
}, `${this.selectedOrgName}_${this.$tab.getCurrentTabName()}_${dayjs().format("YYYYMMDD")}.xlsx`)
|