فهرست منبع

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc_web into V0.0.2

luowei 2 سال پیش
والد
کامیت
fd282626ad

+ 1 - 1
src/api/core/drill/drillTask.js

@@ -1,6 +1,6 @@
 import request from '@/utils/request'
 
-export function listEduTask(query) {
+export function listDrillTask(query) {
   return request({
     url: '/core/drill/task/list',
     method: 'get',

+ 2 - 2
src/views/core/drill/task/dialog.newtask.vue

@@ -89,14 +89,14 @@
                 <K-file-upload ref="upload" :defaultValue="formFileListDefualtValue" v-model="formData.fileList"/>
               </el-form-item>
             </el-col>
-            
+
           </el-row>
         </el-form>
       </div>
 
       <div slot="footer" class="dialog-footer">
         <el-button @click="onHide">取消</el-button>
-        <el-button type="primary" @click="onSave">暂存</el-button>
+<!--        <el-button type="primary" @click="onSave">暂存</el-button>-->
         <el-button type="primary" @click="onSubmit">提交</el-button>
       </div>
     </DialogCom>

+ 185 - 177
src/views/core/drill/task/index.vue

@@ -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`)

+ 1 - 1
src/views/core/edu/task/dialog.newTask.vue

@@ -109,7 +109,7 @@
 
       <div slot="footer" class="dialog-footer">
         <el-button @click="onHide">取消</el-button>
-        <el-button type="primary" @click="onSave">暂存</el-button>
+<!--        <el-button type="primary" @click="onSave">暂存</el-button>-->
         <el-button type="primary" @click="onSubmit">提交</el-button>
       </div>
     </DialogCom>

+ 26 - 21
src/views/core/edu/task/index.vue

@@ -173,6 +173,15 @@
               >任务登记
               </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:eduTask:remove']"
+              >删除
+              </el-button>
+              <el-button
                 icon="el-icon-document-copy"
                 type="text"
                 v-if="scope.row.pdfUrl"
@@ -201,13 +210,14 @@
 </template>
 
 <script>
-import {listEduTask, addEduTask, updateEduTask} from "@/api/core/edu/eduTask";
+import {listEduTask, addEduTask, recordEduTask, delEduTask} from "@/api/core/edu/eduTask";
 import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
 import OrgTree from "@/components/orgTree";
 import DialogInfo from "./dialog.info";
 import DialogPerform from "./dialog.perform";
 import DialogNewTask from "./dialog.newTask";
 import dayjs from "dayjs";
+import tableList from "@/mixins/tableList";
 
 export default {
   name: "EduTask",
@@ -218,6 +228,7 @@ export default {
     OrgTree,
     DialogNewTask,DataRangePicker
   },
+  mixins: [tableList],
   data() {
     return {
       // 遮罩层
@@ -335,6 +346,16 @@ export default {
       this.open = true;
       this.title = "添加教育任务";
     },
+    /** 删除按钮操作 */
+    handleDelete(id) {
+      this.$modal.confirm('删除后不可恢复,是否确认删除该任务?').then(function () {
+        return delEduTask(id);
+      }).then(() => {
+        this.$modal.msgSuccess("删除成功");
+        this.getList();
+      }).catch(() => {
+      });
+    },
     /** 修改按钮操作 */
     handleDetail(id) {
       console.log("this.$refs", this.$refs["infoDialog"])
@@ -347,26 +368,6 @@ export default {
       //   this.title = "修改教育任务";
       // });
     },
-    /** 提交按钮 */
-    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, {});
@@ -397,6 +398,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秒