瀏覽代碼

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

zhulu 1 年之前
父節點
當前提交
25752fa361

+ 2 - 1
src/api/safetycheck/plan.js

@@ -78,7 +78,8 @@ export function delelte(id) {
 export function getDesignateHangshe(planId){
   return request({
     url: '/core/SafecheckPlanToExecOrg/designatehangshe/' + planId,
-    method: 'get'
+    method: 'get',
+    showLoading:true
   })
 }
 

+ 4 - 0
src/assets/styles/ruoyi.scss

@@ -351,3 +351,7 @@
  .el-table--small .el-table__cell{
    padding: 10px 0!important;
  }
+
+ .el-collapse-item__header{
+   font-size: 16px!important;
+ }

+ 22 - 17
src/components/orgTree/index.vue

@@ -16,25 +16,29 @@
         <el-checkbox v-model="checkSub" @change="changeCheckBox"
           >关联所有下级数据</el-checkbox>
       </div>
-      <el-tree
-        :data="treeList"
-        :props="defaultProps"
-        :expand-on-click-node="false"
-        :filter-node-method="filterNode"
-        ref="tree"
-        node-key="id"
-        class="el-tree-ex"
-        :default-expanded-keys="defaultKeys"
-        :default-checked-keys="defaultKeys"
-        @node-click="handleNodeClick"
-        v-bind="$attrs"
-      >
-        <span class="custom-tree-node" slot-scope="{ node, data }">
+      <el-collapse v-model="activeNames" >
+        <el-collapse-item title="福建农信" name="1">
+          <el-tree
+            :data="treeList"
+            :props="defaultProps"
+            :expand-on-click-node="false"
+            :filter-node-method="filterNode"
+            ref="tree"
+            node-key="id"
+            class="el-tree-ex"
+            :default-expanded-keys="defaultKeys"
+            :default-checked-keys="defaultKeys"
+            @node-click="handleNodeClick"
+            v-bind="$attrs"
+          >
+            <span class="custom-tree-node" slot-scope="{ node, data }">
 
-            <span>{{ node.label }}</span>
+                <span>{{ node.label }}</span>
 
-        </span>
-      </el-tree>
+            </span>
+          </el-tree>
+        </el-collapse-item>
+      </el-collapse>
     </div>
   </div>
 </template>
@@ -46,6 +50,7 @@ export default {
   data() {
     return {
       //过滤信息
+      activeNames: ["1"],
       deptName: "",
       // 机构树列表
       treeList: [],

+ 1 - 0
src/components/orgTree/orgDropDown.vue

@@ -32,6 +32,7 @@ export default {
   watch: {
     value(v) {
       if(!v){
+        this.$emit("select", null);
         return;
       }
       if (!this.currentNode || this.currentNode.id != v) {        

+ 4 - 1
src/views/check/dialog.edit.vue

@@ -465,7 +465,7 @@ export default {
     },
     NowBuild() {
       //如果新增或者是草稿状态的立即生效的编辑
-      if ((this.id==null||this.id==undefined)||(this.defbuildTaskNow &&this.formData.planStatus==0)) return true;
+      if ((this.formData.planCycle!=6)&&((this.id==null||this.id==undefined)||(this.defbuildTaskNow &&this.formData.planStatus==0))) return true;
       else return false;
     },
     getLabel(options, value) {
@@ -672,6 +672,9 @@ export default {
         this.formData.roleIds =
           this.selectedValues.length == 0 ? null : this.selectedValues;
           this.loading = true;
+          if(this.formData.planCycle==6){
+            this.formData.buildTaskNow = true;
+          }
         await api.add(this.formData).then(data=>{
           this.loading = false;
           this.$emit("success");

+ 22 - 7
src/views/core/drill/drillDictionary/index.vue

@@ -73,11 +73,16 @@
               <dict-tag :options="dict.type.core_drill_type" :value="scope.row.drillType"/>
             </template>
           </el-table-column>
-          <el-table-column  label="演练场景" scoped-slot="drillProjects" align="center" width="180" prop="drillProjects">
+          <el-table-column label="演练类型" align="left" header-align="center" width="180" prop="drillType">
             <template slot-scope="scope">
-              <div class="ellipsis" :title="scope.row.drillProjects">{{ scope.row.drillProjects }}</div>
+              <dict-tag :options="dict.type.core_drill_category" :value="scope.row.drillCategory"/>
             </template>
           </el-table-column>
+<!--          <el-table-column  label="演练场景" scoped-slot="drillProjects" align="center" width="180" prop="drillProjects">
+            <template slot-scope="scope">
+              <div class="ellipsis" :title="scope.row.drillProjects">{{ scope.row.drillProjects }}</div>
+            </template>
+          </el-table-column>-->
           <el-table-column  label="预设案由" scoped-slot="defaultCause" align="center" prop="defaultCause">
             <template slot-scope="scope">
               <div class="ellipsis" :title="scope.row.defaultCause">{{ scope.row.defaultCause }}</div>
@@ -130,9 +135,19 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="演练场景" prop="drillProjects">
-          <el-input v-model="form.drillProjects" maxlength="50"  placeholder="请输入演练场景"/>
+        <el-form-item label="演练类型" prop="drillCategory" style="width:100%;">
+          <el-select v-model="form.drillCategory" placeholder="请选择演练类型" style="width:100%;">
+            <el-option
+              v-for="dict in dict.type.core_drill_category"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
         </el-form-item>
+<!--        <el-form-item label="演练场景" prop="drillProjects">
+          <el-input v-model="form.drillProjects" maxlength="50"  placeholder="请输入演练场景"/>
+        </el-form-item>-->
         <el-form-item label="预设案由" prop="defaultCause">
           <k-textarea v-model="form.defaultCause" :length="2000" show-word-limit placeholder="请输入预设案由"/>
         </el-form-item>
@@ -163,7 +178,7 @@ import KTextarea from "@/components/common/textarea.vue";
 export default {
   name: "DrillDictionary",
   components: {OrgTree,BtnTip,KTextarea},
-  dicts: ['core_drill_type'],
+  dicts: ['core_drill_type','core_drill_category'],
   mixins: [tableList],
   data() {
     return {
@@ -199,8 +214,8 @@ export default {
       form: {},
       // 表单校验
       rules: {
-        drillType: [{ required: true, message: "请选择演练类型" }],
-        drillProjects: [{ required: true, message: "请输入解决方案名称" }],
+        drillType: [{ required: true, message: "请选择演练项目" }],
+        drillCategory: [{ required: true, message: "请选中演练类型" }],
         defaultCause: [{ required: true, message: "请输入预设案由" }],
       }
     };

+ 3 - 3
src/views/core/drill/task/dialog.info.vue

@@ -63,7 +63,7 @@
                 {{ formData.drillEndTime }}
               </el-form-item>
             </el-col>
-           
+
             <el-col :span="24">
               <el-form-item prop="hostId" label="预设案由">{{
                   formData.presetCase
@@ -100,11 +100,11 @@
             </el-col>
             <!-- 图片 -->
             <el-col :span="12">
-              <el-form-item prop="imageList" label="参人员签名图片">
+              <el-form-item prop="imageList" label="参人员签名图片">
                 <ImageListPreview v-model="formData.signImageList"></ImageListPreview>
               </el-form-item>
             </el-col>
-            
+
             <el-col :span="12">
               <el-form-item prop="comment" label="评语">{{
                   formData.comment

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

@@ -6,7 +6,7 @@
                  label-width="120px" label-prefix=":">
           <el-row>
             <!-- 演练主题 -->
-            <el-col :span="12">
+            <el-col :span="24">
               <el-form-item prop="title" label="任务名称">
                 <el-input
                   v-model="formData.title"
@@ -51,7 +51,7 @@
 
               <el-form-item prop="presetCase" label="预设案由">
                 <div style="display: flex;justify-content: flex-end; margin-bottom: 10px">
-                  <el-button type="primary" @click="selectMaterials">演练范本库</el-button>
+                  <el-button type="primary" @click="selectMaterials">参考演练范本库</el-button>
                 </div>
                 <k-textarea v-model="formData.presetCase" placeholder="请输入预设案由" :length="2000"/>
               </el-form-item>
@@ -64,9 +64,9 @@
             </el-col>
 
             <el-col :span="12">
-              <el-form-item prop="absenceList" label="参人员">
+              <el-form-item prop="absenceList" label="参人员">
                 <k-select :multiple="true" v-model="formData.absenceList" url="/user/find/all"
-                          :params="{ orgId: formData.orgId }" placeholder="请选择缺席人员"
+                          :params="{ orgId: formData.orgId }" placeholder="请选择参演人员"
                           @select="absenceUserSelectChanged"></k-select>
               </el-form-item>
             </el-col>
@@ -326,7 +326,7 @@ export default {
       console.log("onSubmit this.formData", this.formData);
       // if (!this.validatePerson()) {
       //   this.$message.error("参与人员与缺席人员重复,请重新选择!");
-      // } 
+      // }
       this.formData.taskUserList = this.formData.taskUserList ? this.formData.taskUserList : []
       if (this.formData.taskUserList.length == 0 || this.formData.taskUserList.filter(item => item.type == 1).length == 0) {
         this.$message.error("参与人员不能为空,请重新选择!");

+ 3 - 3
src/views/core/drill/task/dialog.perform.vue

@@ -54,7 +54,7 @@
 
               <el-form-item prop="presetCase" label="预设案由">
                 <div style="display: flex;justify-content: flex-end; margin-bottom: 10px">
-                  <el-button type="primary" @click="selectMaterials">演练范本库</el-button>
+                  <el-button type="primary" @click="selectMaterials">参考演练范本库</el-button>
                 </div>
                 <k-textarea v-model="formData.presetCase" placeholder="请输入预设案由" :length="2000"/>
               </el-form-item>
@@ -67,9 +67,9 @@
             </el-col>
 
             <el-col :span="12">
-              <el-form-item prop="absenceList" label="参人员">
+              <el-form-item prop="absenceList" label="参人员">
                 <k-select style="width: 100%;" :multiple="true" v-model="formData.absenceList" url="/user/find/all"
-                          :params="{ orgId: formData.orgId }" placeholder="请选择参人员"
+                          :params="{ orgId: formData.orgId }" placeholder="请选择参人员"
                           @select="absenceUserSelectChanged"></k-select>
               </el-form-item>
             </el-col>

+ 13 - 6
src/views/core/drill/task/dialog.select.drillDictionary.vue

@@ -37,8 +37,15 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item prop="drillProjects" label="演练场景">
-            <el-input v-model="search.drillProjects" placeholder="请输入关键字"></el-input>
+          <el-form-item label="演练项目" prop="drillCategory">
+            <el-select v-model="search.drillCategory" placeholder="请选择演练项目" clearable>
+              <el-option
+                v-for="dict in dict.type.core_drill_category"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
           </el-form-item>
         </template>
 
@@ -51,9 +58,9 @@
               <dict-tag :options="dict.type.core_drill_type" :value="scope.row.drillType"/>
             </template>
           </el-table-column>
-          <el-table-column label="演练场景" scoped-slot="drillProjects" align="center" prop="drillProjects">
+          <el-table-column label="演练类型" scoped-slot="drillCategory" align="center" prop="drillCategory">
             <template slot-scope="scope">
-              <div class="ellipsis" :title="scope.row.drillProjects">{{ scope.row.drillProjects }}</div>
+              <dict-tag :options="dict.type.core_drill_category" :value="scope.row.drillCategory"/>
             </template>
           </el-table-column>
           <el-table-column label="预设案由" scoped-slot="defaultCause" align="center" prop="defaultCause">
@@ -65,7 +72,7 @@
       </g-search-table>
     </div>
 
-    <div slot="footer" class="dialog-footer">      
+    <div slot="footer" class="dialog-footer">
       <el-button type="primary" @click="onSubmit">确定</el-button>
       <el-button @click="onHide">关闭</el-button>
     </div>
@@ -76,7 +83,7 @@ import GSearchTable from "@/components/table/gx.search.table.vue";
 // import { ruleListForOrg } from "@/api/resumption/rule.js";
 export default {
   components: {GSearchTable},
-  dicts: ['core_drill_type'],
+  dicts: ['core_drill_type','core_drill_category'],
   data() {
     return {
       isShow: false,

+ 2 - 2
src/views/core/reportForms/monitorAccessReport.vue

@@ -188,9 +188,9 @@
         getList() {
           this.loading = true;
           listReport(this.queryParams).then(response => {
-            this.checkList = response.data.rows;
+            this.checkList = response.data;
             this.title=response.title;
-            this.total = response.data.total;
+            // this.total = response.data.total;
             this.loading = false;
           });
         },

+ 6 - 1
src/views/resumption/plan/distribute.vue

@@ -38,7 +38,7 @@
           >
         </el-col>
       </el-row>
-      <el-table :data="tableData" height="400px" size="small">
+      <el-table :data="tableData" height="400px" size="small" v-loading="loading">
         <el-table-column type="index" label="序号" width="80"></el-table-column>
         <el-table-column prop="orgName" label="机构名称"></el-table-column>
         <el-table-column prop="status" label="计划状态" width="150px">
@@ -72,6 +72,7 @@ export default {
   data() {
     return {
       isShow: false,
+      loading:false,
       info: this.emptyInfo(),
       tableData: [],
       filterName: null,
@@ -90,15 +91,19 @@ export default {
   methods: {
     show(plan) {
       this.isShow = true;
+      this.loading=true;
       this.info.id = plan.id;
       listByTypes({
         orgId: plan.planCreateOrgId,
         orgTypes: ["3"],
       }).then((r) => {
+        this.loading=false;
         this.info.orgAndStatus = r.data.map((d) => {
           return { orgId: d.id, orgName: d.shortName, status: "1" };
         });
         this.tableData = this.info.orgAndStatus;
+      }).catch(()=>{
+        this.loading=false;
       });
     },
     handleAllStatus(status) {

+ 23 - 1
src/views/safetycheck/taskManager/components/checkRegister.vue

@@ -31,6 +31,7 @@
               v-model="info.checkRoleId"
               placeholder="请选择检查人员"
               style="width: 100%"
+              clearable
             >
               <el-option
                 v-for="role in roleOptions"
@@ -59,6 +60,7 @@
               placeHolder="请输入检查组成员"
               v-model="info.checkTeam"
               maxlength="100"
+              clearable
             ></el-input> </el-form-item
         ></el-col>
         <el-col :span="6">
@@ -68,6 +70,7 @@
               v-model="info.planStartTime"
               type="date"
               placeholder="选择检查日期"
+              clearable
             >
             </el-date-picker>
           </el-form-item>
@@ -197,7 +200,8 @@ export default {
         checkList: [],
       },
       roleOptions: [],
-      prevCheckOrgType: null, //上一个选中机构的类型
+      prevCheckOrgType: null, //上一个选中检查机构的类型
+      prevBecheckedOrgType: null, //上一个受检机构的类型
       exceptionRules: {
         remark: [{ required: true, message: "请输入情况描述" }],
         rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
@@ -226,6 +230,12 @@ export default {
     dayjs,
     getLabel,
     onCheckOrgSelect(node) {
+      if (node == null) {
+        this.prevCheckOrgType = null;
+        this.roleOptions = [];
+        this.checkRoleId = null;
+        return;
+      }
       if (node.type == this.prevCheckOrgType) {
         return;
       }
@@ -239,6 +249,18 @@ export default {
       });
     },
     onBecheckOrgSelect(node) {
+      if (node == null) {
+        this.prevBecheckedOrgType = null;
+        this.info.checkList = [];
+        return;
+      }
+
+      if (node.type == this.prevBecheckedOrgType) {
+        return;
+      }
+
+      this.info.checkList = [];
+      this.prevBecheckedOrgType = node.type;
       this.info.beCheckOrgType = node.type;
     },
     onAddPoint() {

+ 33 - 23
src/views/system/user/extend.vue

@@ -40,16 +40,25 @@
 
               <el-form-item label="持证上岗未通过原因" v-if="formData.certificateWork == 0" label-width="240"
                             prop="certificateFailReason">
-                <el-select style="width: 280px;" v-model="formData.certificateFailReason" placeholder="请选择未通过原因">
+                <el-select style="width: 225px;" v-model="formData.certificateFailReason" placeholder="请选择未通过原因">
                   <el-option v-for="dict in dict.type.post_no_pass" :key="dict.value" :label="dict.label"
                              :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
 
+            <el-col :xs="24" :sm="12" :md="8" :lg="8">
+              <el-form-item label="专业技术职业资格" v-if="formData.certificateWork != 0" label-width="240"
+                            prop="professionalQualifications">
+                <el-input style="width: 240px;" maxlength="50" v-model="formData.professionalQualifications"
+                          placeholder="请输入初级以上证书名称">
+                </el-input>
+              </el-form-item>
+            </el-col>
 
           </el-row>
           <el-row>
+     
 
             <el-col :xs="24" :sm="12" :md="8" :lg="6">
               <el-form-item label="所属部门" prop="deptId">
@@ -71,7 +80,7 @@
 
             <el-col :xs="24" :sm="12" :md="8" :lg="6">
               <el-form-item prop="entryTime" label="现任职日期">
-                <el-date-picker v-model="formData.entryTime"  align="right"
+                <el-date-picker style="width: 270px;" v-model="formData.entryTime"  align="right"
                                 type="date" placeholder="选择现任职日期">
                 </el-date-picker>
               </el-form-item>
@@ -100,19 +109,13 @@
 
             <el-col :xs="24" :sm="12" :md="8" :lg="6">
               <el-form-item label="最高学历" prop="highestEducation">
-                <el-select style="width: 217px;" v-model="formData.highestEducation" placeholder="请选择最高学历">
+                <el-select style="width: 270px;" v-model="formData.highestEducation" placeholder="请选择最高学历">
                   <el-option v-for="dict in dict.type.sys_highest_education" :key="dict.value" :label="dict.label"
                              :value="dict.value" />
                 </el-select>
               </el-form-item>
             </el-col>
-            <!-- <el-col :xs="24" :sm="12" :md="8" :lg="8">
-              <el-form-item label="初级以上相关专业技术职业资格" v-if="formData.certificateWork != 0" label-width="240" prop="professionalQualifications">
-                <el-input style="width: 280px;" maxlength="50" v-model="formData.professionalQualifications"
-                  placeholder="请输入初级以上相关专业技术职业资格">
-                </el-input>
-              </el-form-item>
-            </el-col> -->
+        
           </el-row>
           <el-row>
 
@@ -132,12 +135,11 @@
             </el-col>
             <el-col :xs="24" :sm="12" :md="8" :lg="6">
               <el-form-item label="身份证号码" prop="idCard">
-                <el-input maxlength="18" style="width: 217px;" v-model="formData.idCard"
+                <el-input maxlength="18" style="width: 270px;" v-model="formData.idCard"
                           placeholder="请输入身份证号码">
                 </el-input>
               </el-form-item>
             </el-col>
-            <!-- :picker-options="endDatepickerOptions" -->
 
 
           </el-row>
@@ -157,29 +159,31 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="8">
+            <!-- <el-col :xs="24" :sm="12" :md="8" :lg="8">
               <el-form-item label="专业技术职业资格" v-if="formData.certificateWork != 0" label-width="240"
                             prop="professionalQualifications">
                 <el-input style="width: 280px;" maxlength="50" v-model="formData.professionalQualifications"
                           placeholder="请输入初级以上证书名称">
                 </el-input>
               </el-form-item>
+            </el-col> -->
+
+            <el-col :xs="24" :sm="12" :md="8" :lg="8">
+              <el-form-item label="金融安全防范工程专家" prop="financialExperts" label-width="240">
+                <el-select style="width: 210px;" v-model="formData.financialExperts" placeholder="请选择金融安全防范工程专家">
+                  <el-option v-for="dict in dict.type.administrative_level" :key="dict.value" :label="dict.label"
+                             :value="dict.value" />
+                </el-select>
+              </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <!-- <el-row>
             <el-col :xs="24" :sm="24" :md="24" :lg="24">
               <el-form-item v-if="formData.certificateWork != 0" label="上传初级以上专业技术职业资格证书">
                 <imgs-upload :limit="5" v-model="formData.qualificationCertificateUrl" :fileSize="2"></imgs-upload>
               </el-form-item>
             </el-col>
-            <!--<el-col :xs="24" :sm="12" :md="8" :lg="6">
-              <el-form-item label="示例图">
-                <div style="width: 280px;">
-                  <el-image :src="uplp"></el-image>
-                </div>
-              </el-form-item>
-            </el-col>-->
-          </el-row>
+          </el-row> -->
         </el-form>
       </div>
       <div style="padding-top: 10px; margin-left: 42%">
@@ -204,7 +208,7 @@ import { extendUserInformation } from "@/api/system/information";
 export default {
   props: [],
   components: { TreeSelect ,ImgsUpload},
-  dicts: ['sys_yes_no','sys_highest_education', "sys_work_type", "sys_duties", "sys_education_type", 'sys_department_type', 'post_no_pass', 'current_position','department_name'],
+  dicts: ['administrative_level','sys_yes_no','sys_highest_education', "sys_work_type", "sys_duties", "sys_education_type", 'sys_department_type', 'post_no_pass', 'current_position','department_name'],
   data() {
     return {
       startDatepickerOptions: {
@@ -248,6 +252,12 @@ export default {
         userId: null,
       },
       rules: {
+        financialExperts:[
+          { required: true, message: '请选择金融安全防范工程专家级别', trigger: 'blur'}
+        ],
+        idCard:[
+          { required: true, message: '请输入身份证号码', trigger: 'change'}
+        ],
         deptId: [
           { required: true, message: '请选择所属部门', trigger: 'blur' },
         ],