Procházet zdrojové kódy

Merge branch 'dev' of http://10.87.10.227:4000/jzyd_yyds/soc_web into dev

zhulu před 2 roky
rodič
revize
cdbd9b9c1e

+ 5 - 5
src/api/core/task.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询列表监控调阅任务
 export function listTask(query) {
   return request({
-    url: '/core/task/list',
+    url: '/core/retrievalTask/list',
     method: 'get',
     params: query
   })
@@ -12,7 +12,7 @@ export function listTask(query) {
 // 查询详细监控调阅任务
 export function getTask(id) {
   return request({
-    url: '/core/task/' + id,
+    url: '/core/retrievalTask/' + id,
     method: 'get'
   })
 }
@@ -20,7 +20,7 @@ export function getTask(id) {
 // 新增监控调阅任务
 export function addTask(data) {
   return request({
-    url: '/core/task',
+    url: '/core/retrievalTask',
     method: 'post',
     data: data
   })
@@ -29,7 +29,7 @@ export function addTask(data) {
 // 修改监控调阅任务
 export function updateTask(data) {
   return request({
-    url: '/core/task',
+    url: '/core/retrievalTask',
     method: 'put',
     data: data
   })
@@ -38,7 +38,7 @@ export function updateTask(data) {
 // 删除监控调阅任务
 export function delTask(id) {
   return request({
-    url: '/core/task/' + id,
+    url: '/core/retrievalTask/' + id,
     method: 'delete'
   })
 

+ 8 - 0
src/api/resumption/plan.js

@@ -16,6 +16,14 @@ export function itemfind(id) {
     method: 'get'
   })
 }
+// 查询【请填写功能名称】详细
+export function distribute(query) {
+  return request({
+    url: '/core/api/plan/distribute' ,
+    method: 'post',
+    data: query
+  })
+}
 export function getPointIds(id) {
   return request({
     url: '/core/api/plan/getPointIds/' + id,

+ 1 - 0
src/api/resumption/protection.js

@@ -23,6 +23,7 @@ export function update(data) {
     url: "/core/resumption/protection/edit",
     method: "post",
     data: data,
+    showLoading: true,
   });
 }
 

+ 2 - 1
src/api/resumption/rule.js

@@ -41,11 +41,12 @@ export function update(data) {
     url: "/core/resumption/rule/edit",
     method: "post",
     data: data,
+    showLoading: true,
   });
 }
 
 // 删除【请填写功能名称】
-export function delelte(id) {
+export function remove(id) {
   return request({
     url: "/core/resumption/rule/" + id,
     method: "delete",

+ 2 - 1
src/api/resumption/ruleManager.js

@@ -39,7 +39,8 @@ export function update(data) {
   return request({
     url: '/core/resumption/ruleItem/edit',
     method: 'post',
-    data: data
+    data: data,
+    showLoading: true,
   })
 }
 

+ 0 - 0
src/components/computed.sync.ts → src/components/computed.sync.js


+ 28 - 27
src/components/orgTree/orgDropDown.vue

@@ -5,55 +5,56 @@
     :normalizer="normalizer"
     v-bind="$attrs"
     @select="select"
+    ref="tree"
   />
 </template>
 <script>
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { deptTreeSelect } from "@/api/system/public";
-import sync from '@/components/computed.sync.ts'
+import sync from "@/components/computed.sync.js";
 export default {
-  name: "orgTree",
-  prop:{
-    // value:{
-    //   type:String
-    // }
+  name: "orgDropTree",
+  data() {
+    return {
+      deptOptions: []
+    };
   },
-  watch:{
+  props: {
+    value: {
+      type:String,      
+    },
+  },
+  watch: {
     // value(v){
-    //   debugger
-    //   this.val=value
-    // },
-    // val(v){
-    //   this.$emit('input',v) 
-    // }
+    //   // debugger
+    //   // console.info("watch",v);
+    // }   
   },
-  computed:{
-    val:sync('value')
+  computed: {
+    val:sync('value')     ,
   },
   components: { Treeselect },
-  data(){
-      return {
-        deptOptions:[]
-      }
-    },
+  
   methods: {
-    
     /** 查询机构下拉树结构 */
     getDeptTree() {
       deptTreeSelect().then((response) => {
         this.deptOptions = response.data;
-        console.log(this.deptOptions, " this.deptOptions");
+        // console.log(this.deptOptions, " this.deptOptions");
         if (response.data && response.data.length > 0) {
           // this.val = response.data[0].id;
-          // this.$emit('input',response.data[0].id) 
+          // this.value = response.data[0].id;
+          // let t=this.$refs.tree;
+          // debugger;
+          // this.$emit("input", response.data[0].id);
           // this.$emit("select", response.data[0]);
         }
       });
     },
     /** 转换机构数据结构 */
     normalizer(node) {
-      if (node.children && !node.children.length) {
+      if (node.children == null || node.children.length == 0) {
         delete node.children;
       }
       return {
@@ -62,9 +63,9 @@ export default {
         children: node.children,
       };
     },
-    select(node){
-      this.$emit('select',node);
-    }
+    select(node) {
+      this.$emit("select", node);
+    },
   },
   mounted() {
     this.getDeptTree();

+ 2 - 12
src/views/commonOption.js

@@ -1,15 +1,5 @@
-const statusOptions = [
-  {
-    value: 0,
-    label: "启用",
-  },
-  {
-    value: 1,
-    label: "禁用",
-  },
-];
 const getLabel=(options,value)=>{
-  let option=options.find(o=>o.value===value);
+  let option=options.find(o=>o.value==value);
   return option?option.label:'';
 }
-export { statusOptions ,getLabel};
+export { getLabel};

+ 14 - 14
src/views/core/accessPlan/index.vue

@@ -28,7 +28,7 @@
             :value="`${dict.value}`"></el-option>
         </el-select>
       </el-form-item>
-    
+
       <el-form-item label="计划名称" prop="planName">
         <el-input v-model="queryParams.planName" placeholder="请输入计划名称" clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
@@ -63,21 +63,21 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="计划所属机构" align="center" prop="orgName" />
       <el-table-column label="计划名称" align="center" prop="planName" />
-  
+
       <el-table-column label="机构类型" align="center" key="orgType" prop="orgType"  width="80">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_org_type" :value="scope.row.orgType" />
             </template>
           </el-table-column>
       <el-table-column label="调阅角色" align="center" prop="roleName" />
-   
+
       <el-table-column label="调阅周期" align="center" key="planCycle" prop="planCycle"  width="80">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_access_cycle" :value="scope.row.planCycle" />
             </template>
           </el-table-column>
       <el-table-column label="调阅频次" align="center" prop="planFrequency" />
-    
+
       <el-table-column label="计划状态" align="center" key="planStatus" prop="planStatus"  width="80">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.planStatus" />
@@ -105,7 +105,7 @@
         <el-form-item label="计划名称" prop="planName">
           <el-input v-model="form.planName" placeholder="请输入计划名称" />
         </el-form-item>
-       
+
         <el-form-item label="调阅机构类型" prop="orgType">
         <el-select style="width: 100%;" v-model="form.orgType" placeholder="请选择">
           <el-option v-for="dict in dict.type.sys_org_type" :key="dict.value" :label="dict.label"
@@ -121,30 +121,30 @@
 
 
 
-    
-            <el-form-item style="width: 100%;" v-if="form.planCycle==1" label="开始时间" prop="startTime">
+
+            <el-form-item style="width: 100%;" v-if="form.planCycle==0" label="开始时间" prop="startTime">
               <el-date-picker
                 clearable
                 v-model="form.startTime"
-                type="date"
+                type="datetime"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 placeholder="请选择时间">
               </el-date-picker>
             </el-form-item>
- 
 
 
-        
-            <el-form-item style="width: 100%;" v-if="form.planCycle==1" label="结束时间" prop="endTime">
+
+
+            <el-form-item style="width: 100%;" v-if="form.planCycle==0" label="结束时间" prop="endTime">
               <el-date-picker
                 clearable
                 v-model="form.endTime"
-                type="date"
+                type="datetime"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 placeholder="请选择时间">
               </el-date-picker>
             </el-form-item>
-      
+
 
 
       <el-form-item label="调阅角色" prop="roleId">
@@ -154,7 +154,7 @@
       </el-form-item>
         <el-form-item label="调阅频次" prop="planFrequency">
           <el-input type="number" v-model.number="form.planFrequency"  placeholder="请输入调阅频次" />
-        </el-form-item> 
+        </el-form-item>
         <el-form-item label="备注" prop="description">
           <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
         </el-form-item>

+ 32 - 18
src/views/core/edu/plan/index.vue

@@ -292,9 +292,9 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-          <el-form-item label="备注" prop="remark">
-            <el-input v-model="form.remark" placeholder="请输入备注"/>
-          </el-form-item>
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" placeholder="请输入备注"/>
+            </el-form-item>
           </el-col>
         </el-row>
         <el-col :span="14">
@@ -313,14 +313,23 @@
 </template>
 
 <script>
-import {listPlan, getPlan, delPlan, addPlan, updatePlan, listPlanRole, roleList, publishPlan} from "@/api/core/edu/plan";
+import {
+  listPlan,
+  getPlan,
+  delPlan,
+  addPlan,
+  updatePlan,
+  listPlanRole,
+  roleList,
+  publishPlan
+} from "@/api/core/edu/plan";
 import OrgTree from "@/components/orgTree";
 import {deptTreeSelect} from "@/api/system/public";
 import {formatTime} from "@/utils/ruoyi";
 
 export default {
   name: "Plan",
-  dicts: ['plan_cycle', 'sys_org_type', 'plan_status','edu_plan_cycle'],
+  dicts: ['plan_cycle', 'sys_org_type', 'plan_status', 'edu_plan_cycle'],
   components: {OrgTree},
   data() {
     return {
@@ -396,6 +405,7 @@ export default {
     },
     //初始化所有角色数据
     initRoleList(query) {
+      this.form.planRoleId=[];
       roleList(query).then(response => {
         this.roleList = response.data;
       });
@@ -427,14 +437,15 @@ export default {
       return row.belongOrgId === this.$store.getters.orgId
     },
     checkCanDel(row) {
-      return row.belongOrgId === this.$store.getters.orgId || row.createByTopOrg === 0
+      //计划创建机构为当前机构且不是顶级机构创建的计划才显示“删除”按钮
+      return row.belongOrgId == this.$store.getters.orgId && row.createByTopOrg == 0
     },
     //省联社下发的计划不显示“删除”按钮
     checkCreateByTopOrg(row) {
       return row.createByTopOrg !== 1
     },
-    execOrgTypeChanged(row){
-      console.log("this.form.execOrgType",this.form.execOrgType);
+    execOrgTypeChanged(row) {
+      console.log("this.form.execOrgType", this.form.execOrgType);
       this.initRoleList(this.form.execOrgType);
     },
     /** 查询机构树数据 */
@@ -510,16 +521,7 @@ export default {
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
-    /** 新增按钮操作 */
-    handlePublish(row) {
-      if (row.id != null) {
-        publishPlan(row.id).then(response => {
-          this.$modal.msgSuccess("下发成功");
-          this.open = false;
-          this.getList();
-        });
-      }
-    },
+
     /** 新增按钮操作 */
     handleAdd() {
       this.initRoleList();
@@ -571,6 +573,18 @@ export default {
       }).catch(() => {
       });
     },
+    /** 下发计划 */
+    handlePublish(row) {
+      if (row.id != null) {
+        this.$modal.confirm('是否确认下发该计划?').then(function () {
+          return publishPlan(row.id);
+        }).then(() => {
+          this.$modal.msgSuccess("计划下发成功");
+          this.getList();
+        }).catch(() => {
+        });
+      }
+    },
     /** 导出按钮操作 */
     handleExport() {
       this.download('system/plan/export', {

+ 3 - 1
src/views/core/knowledge/index.vue

@@ -6,6 +6,8 @@
           v-model="queryParams.name"
           placeholder="请输入标签名称"
           clearable
+          maxlength="50"
+          show-word-limit
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -96,7 +98,7 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="标签名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入标签名称" />
+          <el-input type="text" v-model="form.name" placeholder="请输入标签名称" maxlength="50" show-word-limit/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">

+ 5 - 3
src/views/core/materials/index.vue

@@ -31,6 +31,8 @@
               v-model="queryParams.title"
               placeholder="请输入资料标题"
               clearable
+              maxlength="50"
+              show-word-limit
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
@@ -161,7 +163,7 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="资料标题" prop="title">
-          <el-input v-model="form.title" placeholder="请输入资料标题"/>
+          <el-input v-model="form.title" placeholder="请输入资料标题"  maxlength="50" show-word-limit/>
         </el-form-item>
 
         <el-form-item label="资料类型" prop="knowledgeId">
@@ -171,10 +173,10 @@
         </el-form-item>
 
         <el-form-item label="资料内容" prop="content">
-          <el-input v-model="form.content" placeholder="请输入资料内容"/>
+          <el-input v-model="form.content" placeholder="请输入资料内容"  maxlength="200" show-word-limit/>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注"/>
+          <el-input v-model="form.remark" placeholder="请输入备注"  maxlength="200" show-word-limit/>
         </el-form-item>
         <el-form-item label="附件" prop="fileList">
           <file-upload ref="upload" @input="getFileList" v-model="form.fileList"/>

+ 157 - 0
src/views/core/task/dialog.info.vue

@@ -0,0 +1,157 @@
+<template>
+    <div class="edu-training-edit">
+        <el-dialog title="调阅详情" :visible.sync="isShow" width="960px">
+            <div class="page-body">
+                <el-form :model="formData" size="small" ref="form" label-position="right" label-width="120px"
+                    label-suffix=":">
+                    <el-row>
+
+                         <el-col :span="12">
+                            <el-form-item prop="type" label="任务名称">{{
+                                formData.taskName
+                            }}</el-form-item>
+                        </el-col>
+
+                        <el-col :span="12">
+                            <el-form-item label="任务状态">
+                                <template>
+                                    <dict-tag :options="dict.type.retrieval_task_status" :value="formData.status"/>
+                                </template>
+                            </el-form-item>
+                        </el-col>
+
+                           <el-col :span="12">
+                            <el-form-item prop="trainingStartDateTime" label="任务时间">{{
+                                formData.planStartTime
+                            }}-{{ formData.planEndTime}}</el-form-item>
+                        </el-col>
+
+                      <el-col :span="12">
+                        <el-form-item prop="dueCount" label="调阅机构">{{
+                            formData.orgName
+                          }}</el-form-item>
+                      </el-col>
+                      <el-col :span="12">
+                        <el-form-item prop="dueCount" label="调阅角色">{{
+                            formData.roleName
+                          }}</el-form-item>
+                      </el-col>
+                      <el-col :span="12">
+                        <el-form-item prop="dueCount" label="调阅人">{{
+                            formData.retrievalUserName
+                          }}</el-form-item>
+                      </el-col>
+                          <!-- 培训截止时间 -->
+                          <el-col :span="12">
+                            <el-form-item prop="trainingEndDateTime" label="调阅开始时间">{{
+                                formData.startTime
+                            }}</el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                          <el-form-item prop="trainingEndDateTime" label="调阅结束时间">{{
+                              formData.endTime
+                            }}</el-form-item>
+                        </el-col>
+
+
+                    </el-row>
+                  <el-table v-loading="loading" :data="formData.taskDataVoList" @selection-change="handleSelectionChange">
+                    <el-table-column label="序号" type="index" align="center">
+                      <template slot-scope="scope">
+                        <span>{{scope.$index + 1}}</span>
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="视频主机" align="center" prop="hostName" />
+                    <el-table-column label="视频通道" align="center" prop="channelName" />
+                    <el-table-column label="项目" align="center" prop="project" >
+                      <template slot-scope="scope">
+                        <dict-tag :options="dict.type.core_registration_project" :value="scope.row.project"/>
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="检查情况" align="center" prop="situation" >
+                      <template slot-scope="scope">
+                      <dict-tag :options="dict.type.core_check_type" :value="scope.row.situation"/>
+                      </template>
+                    </el-table-column>
+                    <el-table-column label="说明" align="center" prop="remark" />
+                  </el-table>
+                </el-form>
+            </div>
+
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="onHide">关闭</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getEduTask } from "@/api/core/edu/eduTask";
+import { getTask} from "@/api/core/task";
+export default {
+    components: {},
+  dicts: ['core_registration_project', 'core_check_type','retrieval_task_status'],
+    data() {
+        const params = this.$route.params;
+        return {
+            id: params ? params.id : null,
+            isShow: false,
+            formData: this.reset(),
+        };
+    },
+    props: {},
+    watch: {},
+    computed: {
+        ...mapState(["loginUser"]),
+    },
+    methods: {
+        ...mapMutations([]),
+        reset(other = {}) {
+            return {
+              id: null,
+              taskName: null,
+              status: null,
+              planStartTime: null,
+              planEndTime: null,
+              orgName: null,
+              roleName: null,
+              retrievalUserName: null,
+              startTime: null,
+              endTime:null,
+              taskDataVoList:[],
+                ...other,
+            };
+        },
+        async refresh(id, other) {
+            if (!id) {
+                this.reset(other);
+            }
+            else {
+              getTask(id).then(response => {
+                this.formData = response.data;
+                this.open = true;
+                this.title = "调阅详情";
+              });
+            }
+        },
+        async show(id, other = {}) {
+            this.id = id;
+            await this.refresh(id, other);
+            this.isShow = true;
+        },
+        // 事件
+        onHide() {
+            this.isShow = false;
+        },
+        // 事件
+        //apimark//
+    },
+    mounted() { },
+};
+</script>
+
+<!-- <style lang="less">
+.edu-training-edit {
+}
+</style> -->

+ 22 - 53
src/views/core/task/index.vue

@@ -81,19 +81,19 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="序号" type="index" align="center">
         <template slot-scope="scope">
-          <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+          <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
         </template>
       </el-table-column>
       <el-table-column label="任务名称" align="center" prop="taskName" />
       <el-table-column label="开始时间" align="center" prop="planStartTime" width="180">
-        <template slot-scope="scope">
+<!--        <template slot-scope="scope">
           <span>{{ parseTime(scope.row.planStartTime, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template>-->
       </el-table-column>
       <el-table-column label="结束时间" align="center" prop="planEndTime" width="180">
-        <template slot-scope="scope">
+<!--        <template slot-scope="scope">
           <span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template>-->
       </el-table-column>
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
@@ -104,14 +104,14 @@
       <el-table-column label="调阅角色" align="center" prop="roleName" />
 
       <el-table-column label="调阅开始时间" align="center" prop="startTime" width="180">
-        <template slot-scope="scope">
+<!--        <template slot-scope="scope">
           <span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template>-->
       </el-table-column>
       <el-table-column label="调阅结束时间" align="center" prop="endTime" width="180">
-        <template slot-scope="scope">
+<!--        <template slot-scope="scope">
           <span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template>-->
       </el-table-column>
       <el-table-column label="调阅人" align="center" prop="retrievalUserName" />
       <el-table-column label="异常数" align="center" prop="exceptionCount" />
@@ -120,14 +120,15 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-if="scope.row.status === '2'"
+            icon="el-icon-view"
+            @click="lookView(scope.row)"
+            v-if="scope.row.status == 2"
+            v-hasPermi="['core:task:query']"
           >查看</el-button>
         </template>
       </el-table-column>
     </el-table>
-
+        <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
     <pagination
       v-show="total>0"
       :total="total"
@@ -143,9 +144,10 @@
 <script>
 import { listTask, getTask, delTask, addTask, updateTask,roleList } from "@/api/core/task";
 import OrgTree from "@/components/orgTree";
+import DialogInfo from "./dialog.info";
 import {listPlanRole} from "@/api/core/edu/plan";
 export default {
-  components: {OrgTree},
+  components: {OrgTree,DialogInfo},
   name: "Task",
   dicts: ['plan_cycle', 'retrieval_task_status'],
   data() {
@@ -261,6 +263,7 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
+      this.queryParams.dateRange = [];
       this.getList();
     },
     /** 重置按钮操作 */
@@ -281,48 +284,14 @@ export default {
       this.title = "添加监控调阅任务";
     },
     /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getTask(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改监控调阅任务";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateTask(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addTask(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除监控调阅任务编号为"' + ids + '"的数据项?').then(function() {
-        return delTask(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+    lookView(row) {
+      this.$refs["infoDialog"].show(row.id,{});
+
     },
+
     /** 导出按钮操作 */
     handleExport() {
-      this.download('core/task/export', {
+      this.download('core/retrievalTask/export', {
         ...this.queryParams
       }, `task_${new Date().getTime()}.xlsx`)
     }

+ 10 - 5
src/views/resumption/plan/dialog.edit.vue

@@ -286,10 +286,14 @@ export default {
       isShow: false,
       formData: this.reset(),
       formDataRules: {
-        name: [{ required: true, message: "请输入履职内容库名称" }],
-        type: [{ required: true, message: "请选择履职类型" }],
-        orgType: [{ required: true, message: "请选择履职机构类型" }],
-        status: [{ required: true, message: "请选择状态" }],
+        planName: [{ required: true, message: "请输入计划名称" }],
+        planType: [{ required: true, message: "请选择计划类型" }],
+        planCycle: [{ required: true, message: "请选择履职周期" }],
+        planStatus: [{ required: true, message: "请选择计划状态" }],
+        execOrgType: [{ required: true, message: "请选择履职角色" }],
+        roleList: [{ required: true, message: "请选择履职角色" }],
+        planExec: [{ required: true, message: "请选择履职时间" }],
+        count: [{ required: true, message: "请选择履职次数" }],
       },
       statusOptions: statusOptions,
     };
@@ -341,6 +345,7 @@ export default {
       this.count = value;
     },
     async refresh(id, other) {
+      this.getRolesByOrg();
       this.formData = id ? (await api.get(id)).data : this.reset(other);
     },
     onSelect(selectList){
@@ -409,7 +414,7 @@ export default {
         this.formData.planCreateOrgName = this.orgName;
         if (!isValidate) return;
         this.formData.itemList = this.tableData == null ? [] : this.tableData;
-        this.formData.roleList = this.selectedValues;
+        this.formData.roleList = this.selectedValues.length==0?null:this.selectedValues;
         await api.update(this.formData);
         this.$emit("success");
         this.onHide();

+ 8 - 2
src/views/resumption/plan/index.vue

@@ -309,7 +309,7 @@
       :orgTypeOptions="dict.type.sys_org_type"
       :ruleTypeOptions="dict.type.rule_type"
     ></dialog-edit>
-    <DialogDistribute ref="dialogDistribute"></DialogDistribute>
+    <DialogDistribute ref="dialogDistribute" @select="sel"></DialogDistribute>
   </div>
 </template>
 
@@ -386,7 +386,13 @@ export default {
   },
   methods: {
     ...mapMutations([]),
-
+    sel(selectList){
+      this.loading = true;
+      api.distribute(selectList).then((response) => {
+        this.getList();
+          this.loading = false;
+        })
+    },
     getRolesByOrg() {
       let params = {
         // orgId:this.queryParams.orgId

+ 28 - 20
src/views/resumption/protection/dialog.edit.vue

@@ -3,6 +3,7 @@
     <el-dialog
       :title="id ? '编辑防区' : '新增防区'"
       :visible.sync="isShow"
+      @close="onHide"
       width="500px"
     >
       <div class="page-body">
@@ -16,11 +17,15 @@
           label-prefix=":"
         >
           <el-form-item label="所属机构" prop="orgId">
-            <orgDropDown v-model="formData.orgId" placeholder="选择所属机构" @select="onOrgSelect"/>
+            <orgDropDown
+              v-model="formData.orgId"
+              placeholder="选择所属机构"
+              @select="onOrgSelect"
+            />
           </el-form-item>
           <el-form-item prop="name" label="防区名称:">
             <el-input
-              v-model="formData.name"
+            v-model="formData.name"
               :maxlength="50"
               name="name"
               placeholder="请输入防区名称"
@@ -40,7 +45,7 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">取消</el-button>
+        <el-button @click="isShow=false">取消</el-button>
         <el-button type="primary" @click="onSubmit">确定</el-button>
       </div>
     </el-dialog>
@@ -48,7 +53,7 @@
 </template>
 
 <script>
-import { mapState, mapMutations } from "vuex";
+import { mapState, mapMutations, mapGetters } from "vuex";
 import * as api from "@/api/resumption/protection";
 import orgDropDown from "../../../components/orgTree/orgDropDown.vue";
 export default {
@@ -59,15 +64,21 @@ export default {
       formData: this.reset(),
       // 机构树选项
       formDataRules: {
-        name: [{ required: true, message: "请选择所属机构" }],
+        orgId: [{ required: true, message: "请选择所属机构" }],
         name: [{ required: true, message: "请输入防区名称" }],
       },
     };
   },
   props: {},
-  watch: {},
+  watch: {
+    // "formData.orgId":{
+    //   handler(v){
+    //     console.info("formData.orgId",v)
+    //   }
+    // }
+  },
   computed: {
-    ...mapState([]),
+    ...mapGetters(["orgId"]),
   },
   methods: {
     ...mapMutations([]),
@@ -75,8 +86,8 @@ export default {
       return {
         id: null,
         orgId: null,
-        orgPath:null,
-        orgName:null,
+        orgPath: null,
+        orgName: null,
         name: null,
         allHour: null,
       };
@@ -92,25 +103,22 @@ export default {
 
     // 事件
     onHide() {
-      this.$refs.form.resetFields();
-      this.formData=this.reset();
-      this.isShow = false;
+      this.$refs.form.resetFields();     
     },
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
         if (!isValidate) return;
         await api.update(this.formData);
         this.$emit("success");
-        this.onHide();
+        this.isShow = false;
       });
-    },  
-    onOrgSelect(node){      
-      this.formData.orgPath=node.path;
-      this.formData.orgName=node.name;
-    }
-  },
-  created() {
+    },
+    onOrgSelect(node) {
+      this.formData.orgPath = node.path;
+      this.formData.orgName = node.name;
+    },
   },
+  created() {},
   mounted() {},
   components: { orgDropDown },
 };

+ 11 - 14
src/views/resumption/rule/dialog.edit.vue

@@ -3,6 +3,7 @@
     <el-dialog
       :title="id ? '编辑履职内容库定义' : '新增履职内容库定义'"
       :visible.sync="isShow"
+      @close="onHide"
       width="500px"
     >
       <div class="page-body">
@@ -19,7 +20,6 @@
             <el-input
               v-model="formData.name"
               :maxlength="50"
-              name="name"
               placeholder="请输入履职内容库名称"
               clearable
             />
@@ -84,7 +84,7 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">取消</el-button>
+        <el-button @click="isShow=false">取消</el-button>
         <el-button type="primary" @click="onSubmit">确定</el-button>
       </div>
     </el-dialog>
@@ -94,14 +94,9 @@
 <script>
 import { mapState, mapMutations } from "vuex";
 import * as api from "@/api/resumption/rule";
-import { statusOptions } from "./../../commonOption";
 
 export default {
   data() {
-    // const params = this.$route.params;
-    // let o1=options;
-    // let o=statusOptions;
-    // debugger
     return {
       id: null,
       isShow: false,
@@ -112,7 +107,6 @@ export default {
         orgType: [{ required: true, message: "请选择履职机构类型" }],
         status: [{ required: true, message: "请选择状态" }],
       },
-      statusOptions: statusOptions,
     };
   },
   props: {
@@ -122,6 +116,9 @@ export default {
     ruleTypeOptions: {
       type: Array,
     },
+    statusOptions: {
+      type: Array,
+    },
   },
   watch: {},
   computed: {
@@ -140,7 +137,7 @@ export default {
       };
     },
     async refresh(id, other) {
-      this.formData = id ? (await api.get(id)).data : this.reset(other);      
+      this.formData = id ? (await api.get(id)).data : this.reset(other);
     },
     async show(id, other = {}) {
       this.id = id;
@@ -149,16 +146,16 @@ export default {
     },
 
     // 事件
-    onHide() {
-      this.isShow = false;
-      this.$refs.form.resetFields();
+    onHide() {   
+      this.formData=this.reset();
+      this.$refs.form.resetFields(); 
     },
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
         if (!isValidate) return;
         await api.update(this.formData);
-          this.$emit("success");
-          this.onHide();
+        this.$emit("success");
+        this.isShow = false;
       });
     },
 

+ 11 - 16
src/views/resumption/rule/index.vue

@@ -163,7 +163,7 @@
           ></el-table-column>
           <el-table-column prop="status" label="状态" v-if="columns[5].visible">
             <template slot-scope="r">
-              <span>{{ getStatusLabel(r.row.status) }}</span>
+              <span>{{ getLabel(dict.type.plan_status, r.row.status) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -181,15 +181,12 @@
                 v-hasPermi="['resumption:rule:edit']"
                 >修改</el-button
               >
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="onDel(r.row.id)"
-                v-hasPermi="['resumption:rule:remove']"
-                class="red-btn"
-                >删除</el-button
+              <el-popconfirm
+                title="确定删除履职内容库定义?"
+                @confirm="onDel(r.row.id)"
               >
+                <el-button type="text" size="small" slot="reference" icon="el-icon-delete" v-hasPermi="['resumption:rule:remove']">删除</el-button>
+              </el-popconfirm>
             </template>
           </el-table-column>
         </el-table>
@@ -208,6 +205,7 @@
       @success="getList()"
       :orgTypeOptions="dict.type.sys_org_type"
       :ruleTypeOptions="dict.type.rule_type"
+      :statusOptions="dict.type.plan_status"
     ></dialog-edit>
   </div>
 </template>
@@ -217,11 +215,11 @@ import OrgTree from "@/components/orgTree";
 import { mapState, mapMutations } from "vuex";
 import DialogEdit from "./dialog.edit";
 import * as api from "@/api/resumption/rule";
-import { statusOptions, getLabel } from "./../../commonOption";
+import { getLabel } from "./../../commonOption";
 
 export default {
   name: "ruletype",
-  dicts: ["sys_org_type", "rule_type"],
+  dicts: ["sys_org_type", "rule_type", "plan_status"],
   components: {
     DialogEdit,
     OrgTree,
@@ -298,7 +296,8 @@ export default {
       this.$refs.editDialog.show(id, other);
     },
     async onDel(id) {
-      await api.delRule(id);
+      await api.remove(id);
+      this.$message.info("删除成功");
       this.getList();
     },
     // 多选框选中数据
@@ -324,10 +323,6 @@ export default {
       this.queryParams.orgId = data.id;
       this.getList();
     },
-    getStatusLabel(value) {
-      return getLabel(statusOptions, value);
-    },
-
     //apimark//
   },
   mounted() {},

+ 1 - 1
src/views/resumption/ruleManager/dialog.editItem.vue

@@ -33,7 +33,7 @@
             <el-button type="primary" @click="onEdit(-1)">新增</el-button>
           </div>
           <el-table :data="formData.pointDtoList" border style="width: 100%">
-            <el-table-column prop="name" label="履职要点"> </el-table-column>
+            <el-table-column prop="name" label="履职内容"> </el-table-column>
             <el-table-column prop="areaName" label="履职区域">
             </el-table-column>
             <el-table-column label="操作" width="140">

+ 1 - 0
src/views/resumption/ruleManager/index.vue

@@ -332,6 +332,7 @@ export default {
     },
     async deldata(val) {
       await del(val);
+      this.$message.info("删除成功");
       this.getList();
     },
     /** 重置按钮操作 */

+ 2 - 1
src/views/system/dept/index.vue

@@ -361,7 +361,8 @@ export default {
         leader: undefined,
         phone: undefined,
         email: undefined,
-        status: "0"
+        status: "0",
+        isLock: "0"
       };
       this.resetForm("form");
     },

+ 3 - 0
src/views/system/user/index.vue

@@ -328,6 +328,9 @@ export default {
           { required: true, message: "用户密码不能为空", trigger: "blur" },
           { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
         ],
+        orgId: [
+        { required: true, message: "所属机构不能为空", trigger: "blur" }
+        ],
         // email: [
         //   {
         //     type: "email",