Эх сурвалжийг харах

Merge branch 'v0.0.9' of http://10.87.21.221:8000/jzyd_yyds/soc_web into v0.0.9

 Conflicts:
	src/views/system/dept/extend.vue
zhulu 1 жил өмнө
parent
commit
c10ff87379

+ 4 - 4
src/views/system/dept/extend.vue

@@ -182,7 +182,7 @@
                 ></el-option>
               </el-select>
             </el-descriptions-item>
-            <el-descriptions-item v-if="type === org_type.yewd" labelClassName="info_label_required" label="夜间值守方式" :contentStyle='contentStyle' :labelStyle='labelStyle'>
+            <el-descriptions-item v-if="type === org_type.yewd || type === org_type.zxywk" labelClassName="info_label_required" label="夜间值守方式" :contentStyle='contentStyle' :labelStyle='labelStyle'>
               <el-select
                 clearable
                 v-model="dutyMode"
@@ -353,7 +353,7 @@
               </el-select>
             </el-descriptions-item>
             <el-descriptions-item v-if="type === org_type.jkzx" :contentStyle='contentStyle' :labelStyle='labelStyle'
-                                  labelClassName="info_label_required" label="离行式加钞间出入口数量">
+                                  labelClassName="info_label_required" label="全辖离行式加钞间出入口数量">
               <el-input-number
                 v-model="cashAddingRoom"
                 controls-position="right"
@@ -387,7 +387,7 @@
                 <el-radio :label="0">否</el-radio>
               </el-radio-group>
             </el-descriptions-item>-->
-            <el-descriptions-item label="业务库防控隔离门出入口数量" v-if="type === org_type.jkzx" labelClassName="info_label_required" >
+            <el-descriptions-item label="全辖业务库防控隔离门出入口数量" v-if="type === org_type.jkzx" labelClassName="info_label_required" >
               <el-input-number
                 v-model="remoteCount"
                 controls-position="right"
@@ -1646,7 +1646,7 @@ export default {
         this.$modal.msgError("所在位置不能为空,请选择所在位置");
         return false;
       }
-      if (this.type === this.org_type.yewd && this.dutyMode == null) {
+      if ((this.type === this.org_type.yewd || this.type === this.org_type.zxywk)&& this.dutyMode == null) {
         this.$modal.msgError("夜间值守不能为空,请选择夜间值守方式");
         return false;
       }

+ 55 - 6
src/views/system/dept/index.vue

@@ -129,6 +129,26 @@
                 >导出安全保卫工作情况统计</el-button
                 >
               </el-col>
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-upload2"
+                  size="mini"
+                  @click="handleExportOrgExtend"
+                  v-hasPermi="['system:dept:exportOrgExtend']"
+                >导出机构补充信息</el-button
+                >
+              </el-col>
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-upload2"
+                  size="mini"
+                  @click="handleExportOrgDefenseDetail"
+                  v-hasPermi="['system:dept:exportDefenseDetailExtend']"
+                >导出安全防范设施建设达标信息</el-button
+                >
+              </el-col>
               <right-toolbar
                 :showSearch.sync="showSearch"
                 @queryTable="getList"
@@ -176,7 +196,7 @@
               prop="shortName"
               label="机构简称"
             ></el-table-column>
-           
+
             <el-table-column align="center" prop="type" label="机构类型">
               <template v-slot="scope">
                 <dict-tag
@@ -250,7 +270,7 @@
                     scope.row.type == 10 ||
                     scope.row.type == 5
                   " -->
-                <el-button                  
+                <el-button
                   size="mini"
                   type="text"
                   icon="el-icon-plus"
@@ -417,10 +437,10 @@
             <el-form-item v-if="isEdit" label="机构缩略词" prop="breviary">
               <el-input
                 :maxlength="5"
-                style="width: 200px;" 
+                style="width: 200px;"
                 v-model="form.breviary"
                 placeholder="请输入机构缩略词"
-              
+
               />
             </el-form-item>
           </el-col>
@@ -438,7 +458,7 @@
             </el-form-item>
           </el-col>
 
-        
+
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -670,7 +690,7 @@ export default {
         this.total = response.data.total;
 this.isEdit=response.isEdit;
         this.loading = false;
-       
+
       });
     },
 
@@ -701,6 +721,32 @@ this.isEdit=response.isEdit;
         `机构信息管理-安全保卫工作情况统计表_${new Date().getTime()}.xlsx`
       );
     },
+    handleExportOrgExtend(){
+      if (this.queryParams.type && !(this.queryParams.type === "4" || this.queryParams.type === "5" || this.queryParams.type === "6" || this.queryParams.type === "10")){
+        this.$modal.msgError("该机构类型暂不支持导出补充信息,请重新选择机构类型");
+        return;
+      }
+      this.download(
+        "system/dept/exportOrgExtend",
+        {
+          ...this.queryParams,
+        },
+        `机构补充信息_${new Date().getTime()}.xlsx`
+      );
+    },
+    handleExportOrgDefenseDetail(){
+      if (this.queryParams.type && !(this.queryParams.type === "4" || this.queryParams.type === "5" || this.queryParams.type === "6" || this.queryParams.type === "10")){
+        this.$modal.msgError("该机构类型暂不支持导出安全防范设施建设达标信息,请重新选择机构类型");
+        return;
+      }
+      this.download(
+        "system/dept/exportDefenseDetailExtend",
+        {
+          ...this.queryParams,
+        },
+        `安全防范设施建设达标信息_${new Date().getTime()}.xlsx`
+      );
+    },
     /** 转换机构数据结构 */
     // normalizer(node) {
     //   if (node.children && !node.children.length) {
@@ -891,4 +937,7 @@ this.isEdit=response.isEdit;
 .status_no_class {
   color: red;
 }
+.el-col {
+  padding-top: 5px;
+}
 </style>

+ 188 - 108
src/views/system/user/index.vue

@@ -92,7 +92,8 @@
                   icon="el-icon-search"
                   size="mini"
                   @click="handleQuery"
-                  >搜索</el-button
+                >搜索
+                </el-button
                 >
               </el-col>
               <el-col :span="1.5">
@@ -101,7 +102,8 @@
                   icon="el-icon-refresh"
                   size="mini"
                   @click="resetQuery"
-                  >重置</el-button
+                >重置
+                </el-button
                 >
               </el-col>
               <el-col :span="1.5">
@@ -111,7 +113,8 @@
                   size="mini"
                   @click="handleAdd"
                   v-hasPermi="['system:user:add']"
-                  >新增人员</el-button
+                >新增人员
+                </el-button
                 >
               </el-col>
               <!-- <el-col :span="1.5">
@@ -129,7 +132,8 @@
                   size="mini"
                   @click="handleImport"
                   v-hasPermi="['system:user:import']"
-                  >导入人员</el-button
+                >导入人员
+                </el-button
                 >
               </el-col>
 
@@ -140,7 +144,8 @@
                   size="mini"
                   @click="handleExport"
                   v-hasPermi="['system:user:export']"
-                  >导出人员</el-button
+                >导出人员
+                </el-button
                 >
               </el-col>
               <el-col :span="1.5">
@@ -150,7 +155,8 @@
                   size="mini"
                   @click="handleExportManager"
                   v-hasPermi="['system:user:exportManager']"
-                  >导出管理人员</el-button
+                >导出管理人员
+                </el-button
                 >
               </el-col>
 
@@ -161,7 +167,19 @@
                   size="mini"
                   @click="handleExportSecurity"
                   v-hasPermi="['system:user:exportSecurity']"
-                  >导出安保部门从业人员</el-button
+                >导出安保部门从业人员
+                </el-button
+                >
+              </el-col>
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-download"
+                  size="mini"
+                  @click="handleImportRole"
+                  v-hasPermi="['system:user:import']"
+                >导入角色
+                </el-button
                 >
               </el-col>
               <right-toolbar
@@ -205,26 +223,26 @@
                 :show-overflow-tooltip="true"
               />
               <el-table-column
-              align="center"
-              label="地区"
-              width="100"
-            >
-            <template slot-scope="r">
-                {{ (parseInt(r.row.orgType)>2 && parseInt(r.row.orgType) !=9)?r.row.affiliatedArea:""}}
-              </template>
-         </el-table-column>
-            <el-table-column
-              align="center"
-              prop="affiliatedBank"
-              width="150"
-              label="行社"
-            >
-            <template slot-scope="r">
-                {{ (parseInt(r.row.orgType)>3 && parseInt(r.row.orgType) !=9)? r.row.affiliatedBank:""}}
-              </template>
-          </el-table-column>
+                align="center"
+                label="地区"
+                width="100"
+              >
+                <template slot-scope="r">
+                  {{ (parseInt(r.row.orgType) > 2 && parseInt(r.row.orgType) != 9) ? r.row.affiliatedArea : "" }}
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                prop="affiliatedBank"
+                width="150"
+                label="行社"
+              >
+                <template slot-scope="r">
+                  {{ (parseInt(r.row.orgType) > 3 && parseInt(r.row.orgType) != 9) ? r.row.affiliatedBank : "" }}
+                </template>
+              </el-table-column>
               <el-table-column
-                label="所属机构"                
+                label="所属机构"
                 align="center"
                 key="orgName"
                 prop="orgName"
@@ -318,7 +336,8 @@
                     icon="el-icon-plus"
                     @click="handleExtend(scope.row)"
                     v-hasPermi="['system:information:edit']"
-                    >补充信息</el-button
+                  >补充信息
+                  </el-button
                   >
                   <el-button
                     size="mini"
@@ -327,7 +346,8 @@
                     v-show="!($store.getters.isAdmin && $store.getters.userId==scope.row.id)"
                     @click="handleUpdate(scope.row)"
                     v-hasPermi="['system:user:edit']"
-                    >编辑</el-button
+                  >编辑
+                  </el-button
                   >
                   <el-button
                     size="mini"
@@ -336,7 +356,8 @@
                     v-show="scope.row.source == 0 && !($store.getters.isAdmin && $store.getters.userId==scope.row.id)"
                     @click="handleDelete(scope.row)"
                     v-hasPermi="['system:user:remove']"
-                    >删除</el-button
+                  >删除
+                  </el-button
                   >
                   <el-button
                     size="mini"
@@ -345,39 +366,41 @@
                     v-if="scope.row.source == 0 && !($store.getters.isAdmin && $store.getters.userId==scope.row.id)"
                     @click="handleRestPassword(scope.row)"
                     v-hasPermi="['system:user:resetPwd']"
-                    >重置密码</el-button
+                  >重置密码
+                  </el-button
                   >
                   <el-button
                     size="mini"
                     type="text"
-                    icon="el-icon-s-check"                    
+                    icon="el-icon-s-check"
                     @click="mapperSubUser(scope.row)"
                     v-hasPermi="['system:user:mapperUser']"
-                    
-                    >关联账号</el-button
+
+                  >关联账号
+                  </el-button
                   >
                 </template>
               </el-table-column>
             </el-table>
             <pagination
-            :total="total"
-            :page.sync="queryParams.pageNum"
-            :limit.sync="queryParams.pageSize"
-            @pagination="getList"
-          />
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getList"
+            />
           </div>
         </div>
       </el-col>
     </el-row>
-  <!-- 重置密码对话框 -->
-    <DialogCom :title="title" :visible.sync="close"  width="700px" append-to-body>
+    <!-- 重置密码对话框 -->
+    <DialogCom :title="title" :visible.sync="close" width="700px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules">
         <el-row>
-       
+
           <el-col :span="10">
-            <el-form-item  label="密码" prop="password" label-width="100PX">
+            <el-form-item label="密码" prop="password" label-width="100PX">
               <el-input
-              style="width: 500px;"
+                style="width: 500px;"
                 v-model="form.password"
                 placeholder="请输入密码"
                 autocomplete="off"
@@ -535,7 +558,8 @@
                   :key="`${dict.value}`"
                   :label="dict.value"
                   :disabled="form.source == 1"
-                  >{{ dict.label }}</el-radio
+                >{{ dict.label }}
+                </el-radio
                 >
               </el-radio-group>
             </el-form-item>
@@ -547,7 +571,8 @@
                   v-for="dict in dict.type.sys_yes_no"
                   :key="`${dict.value}`"
                   :label="dict.value"
-                  >{{ dict.label }}</el-radio
+                >{{ dict.label }}
+                </el-radio
                 >
               </el-radio-group>
             </el-form-item>
@@ -606,7 +631,7 @@
     <mapperUser-dialog
       ref="mapperUserDialog"
     ></mapperUser-dialog>
-    
+
   </div>
 </template>
 
@@ -626,12 +651,13 @@ import {
   changeUserStatus,
   selectrolesByOrgId,
 } from "@/api/system/user";
-import { getToken } from "@/utils/auth";
-import { deptTreeSelect } from "@/api/system/public";
+import {getToken} from "@/utils/auth";
+import {deptTreeSelect} from "@/api/system/public";
 import tableList from "@/mixins/tableList";
-import { getInfo } from "@/api/login";
-import { getRoles } from "@/api/system/public";
+import {getInfo} from "@/api/login";
+import {getRoles} from "@/api/system/public";
 import request from "@/utils/request";
+
 export default {
   dicts: [
     "sys_normal_disable",
@@ -642,7 +668,7 @@ export default {
 
   name: "User",
   mixins: [tableList],
-  components: { OrgTree,MapperUserDialog },
+  components: {OrgTree, MapperUserDialog},
 
   data() {
     return {
@@ -671,7 +697,7 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
-      close:false,
+      close: false,
       // 机构名称
       deptName: null,
       isRoleIdsChanged: false,
@@ -698,10 +724,25 @@ export default {
         // 是否更新已经存在的用户数据
         updateSupport: 0,
         // 设置上传的请求头部
-        headers: { Authorization: "Bearer " + getToken() },
+        headers: {Authorization: "Bearer " + getToken()},
         // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/system/user/importData",
+        url: process.env.VUE_APP_BASE_API + this.uploadUrl,
       },
+      uploadUrl: null,
+      /*roleUpload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: "Bearer " + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + + this.uploadUrl,
+      },*/
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -718,19 +759,19 @@ export default {
       },
       // 列信息
       columns: [
-        { key: 0, label: `用户名`, visible: true },
-        { key: 1, label: `姓名`, visible: true },
-        { key: 2, label: `手机`, visible: true },
-        { key: 3, label: `所属机构`, visible: true },
-        { key: 4, label: `状态`, visible: true },
-        { key: 5, label: `是否管理人员`, visible: true },
-        { key: 6, label: `登录IP`, visible: true },
-        { key: 7, label: `登录时间`, visible: true },
+        {key: 0, label: `用户名`, visible: true},
+        {key: 1, label: `姓名`, visible: true},
+        {key: 2, label: `手机`, visible: true},
+        {key: 3, label: `所属机构`, visible: true},
+        {key: 4, label: `状态`, visible: true},
+        {key: 5, label: `是否管理人员`, visible: true},
+        {key: 6, label: `登录IP`, visible: true},
+        {key: 7, label: `登录时间`, visible: true},
       ],
       // 表单校验
       rules: {
         username: [
-          { required: true, message: "账号不能为空", trigger: "blur" },
+          {required: true, message: "账号不能为空", trigger: "blur"},
           {
             min: 2,
             max: 20,
@@ -739,14 +780,14 @@ export default {
           },
         ],
         name: [
-          { required: true, message: "用户名称不能为空", trigger: "blur" },
+          {required: true, message: "用户名称不能为空", trigger: "blur"},
         ],
         roleIds: [
-          { required: true, message: "用户角色不能为空", trigger: "change" },
+          {required: true, message: "用户角色不能为空", trigger: "change"},
         ],
         password: [
-          { required: true, message: "密码不能为空", trigger: "blur" },
-          { min: 8, message: "密码至少为8位", trigger: "blur" },
+          {required: true, message: "密码不能为空", trigger: "blur"},
+          {min: 8, message: "密码至少为8位", trigger: "blur"},
           {
             validator: (rule, value, callback) => {
               if (
@@ -773,10 +814,10 @@ export default {
           },
         ],
         orgId: [
-          { required: true, message: "业务机构不能为空", trigger: "blur" },
+          {required: true, message: "业务机构不能为空", trigger: "blur"},
         ],
         originalOrgId: [
-          { required: true, message: "所属机构不能为空", trigger: "blur" },
+          {required: true, message: "所属机构不能为空", trigger: "blur"},
         ],
         phone: [
           {
@@ -816,7 +857,8 @@ export default {
     // }
   },
 
-  created() {},
+  created() {
+  },
 
   mounted() {
     this.getAllRoles();
@@ -959,7 +1001,7 @@ export default {
     // 取消按钮
     cancel() {
       this.open = false;
-      this.close=false;
+      this.close = false;
       this.reset();
     },
     // 表单重置
@@ -1025,8 +1067,7 @@ export default {
         this.title = "重置密码";
       });
     },
-    mapperSubUser(row)
-    {
+    mapperSubUser(row) {
       this.$refs.mapperUserDialog.show(row.id);
     },
     /** 修改按钮操作 */
@@ -1074,19 +1115,19 @@ export default {
       //   .catch(() => {});
       console.log(this.form.id, "row");
       let data = {
-             id: this.form.id,
-             password: this.form.password,
-           };
+        id: this.form.id,
+        password: this.form.password,
+      };
       resetUserPwd(data).then((response) => {
-             this.$modal.msgSuccess("修改成功,新密码是:" + value);
-          });
+        this.$modal.msgSuccess("修改成功,新密码是:" + value);
+      });
     },
     /** 分配角色操作 */
     handleAuthRole: function (row) {
       const userId = row.id;
       this.$router.push("/system/user-auth/role/" + userId);
     },
-    submitRest:function (){
+    submitRest: function () {
       this.$refs["form"].validate((valid) => {
         if (valid) {
           console.log(this.form, "this.form");
@@ -1097,16 +1138,16 @@ export default {
             //   this.close = false;
             //   this.getList();
             // });
-         
+
             let data = {
-             id: this.form.id,
-             password: this.form.password,
-           };
+              id: this.form.id,
+              password: this.form.password,
+            };
             resetUserPwd(data).then((response) => {
-             this.$modal.msgSuccess("修改成功,新密码是:" + this.form.password);
-             this.close = false;
-          });
-          } 
+              this.$modal.msgSuccess("修改成功,新密码是:" + this.form.password);
+              this.close = false;
+            });
+          }
         }
       });
     },
@@ -1144,7 +1185,8 @@ export default {
           this.getList();
           this.$modal.msgSuccess("删除成功");
         })
-        .catch(() => {});
+        .catch(() => {
+        });
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -1196,6 +1238,12 @@ export default {
     /** 导入按钮操作 */
     handleImport() {
       this.upload.title = "用户导入";
+      this.uploadUrl = "/system/user/importData";
+      this.upload.open = true;
+    },
+    handleImportRole() {
+      this.upload.title = "角色导入";
+      this.uploadUrl = "/system/user/importRole";
       this.upload.open = true;
     },
     /** 下载模板操作 */
@@ -1209,50 +1257,83 @@ export default {
     // 文件上传中处理
     handleFileUploadProgress(event, file, fileList) {
       this.upload.isUploading = true;
-      console.log(file, "file");
-      console.log(fileList, "fileList");
+
     },
     // 文件上传成功处理
     handleFileSuccess(response, file, fileList) {
+      console.log(123)
+      let isRole = this.uploadUrl == "/system/user/importRole";
       this.upload.open = false;
       this.upload.isUploading = false;
       this.$refs.upload.clearFiles();
       this.$alert(
         "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-          response.msg +
-          "</div>",
+        response.msg +
+        "</div>",
         "导入结果",
-        { dangerouslyUseHTMLString: true }
+        {dangerouslyUseHTMLString: true}
       );
       this.getList();
     },
     beforeUpload(file) {
-      // file 为上传的文件对象
-      console.log(file, "file");
       // 返回 false 可以阻止文件上传
       // 创建 FormData 对象
+      let isRole = this.uploadUrl == "/system/user/importRole";
+      let config = {
+        headers: {
+          'Content-Type': 'multipart/form-data'
+        },
+        responseType: 'blob'
+      }
+      if (!isRole) {
+        config = {
+          headers: {
+            'Content-Type': 'multipart/form-data'
+          },
+        }
+      }
       const formData = new FormData();
       // 添加文件到 FormData
       formData.append("file", file);
-      request
-        .post("/system/user/importData", formData, {
-          headers: {
-            "Content-Type": "multipart/form-data",
-          },
-        })
+      request.post(this.uploadUrl, formData, config)
         .then((response) => {
           // 在接收到后端响应时执行的逻辑
           // console.log(response,"response");
           this.upload.open = false;
           this.upload.isUploading = false;
           this.$refs.upload.clearFiles();
-          this.$alert(
-            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+          if (!isRole) {
+            this.$alert(
+              "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
               response.msg +
               "</div>",
-            "导入结果",
-            { dangerouslyUseHTMLString: true }
-          );
+              "导入结果",
+              {dangerouslyUseHTMLString: true}
+            );
+          } else {
+            debugger
+            if (response&&response.size >0) {
+              this.$alert(
+                "导入失败,请根据返回的Excel检查文件内容"
+              );
+              const blob = new Blob([response],
+                {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'})  //你需要的类型 转化为blob对象
+              const url = window.URL.createObjectURL(blob)         //将对象转化为链接
+              let a = document.createElement('a')
+              // 下载链接
+              a.href = url
+              a.download = '角色导入结果.xlsx'
+              document.body.appendChild(a)
+              // 点击a标签,进行下载
+              a.click()
+              // 移除元素
+              document.body.removeChild(a)
+            } else {
+              this.$alert(
+                "导入成功!"
+              );
+            }
+          }
           this.getList();
         })
         .catch((error) => {
@@ -1263,7 +1344,6 @@ export default {
     },
     // 提交上传文件
     submitFileForm() {
-      // console.log(this.$refs.upload.getFile(),"this.$refs.upload")
       this.$refs.upload.submit();
     },
   }
@@ -1271,4 +1351,4 @@ export default {
 </script>
 
 <style lang="scss"></style>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped></style>

+ 1 - 1
src/views/warnRule/index.vue

@@ -56,7 +56,7 @@
                       <span>{{weekDayDic[ruleItem.row.weekDay+""]}} {{ruleItem.row.startTime}}--{{ruleItem.row.endTime}} </span>
                     </template>
                   </el-table-column>
-                  <el-table-column prop="description" label="熟悉名称--限定符--作用值">
+                  <el-table-column prop="description" label="属性名称--限定符--作用值">
                   </el-table-column>
                 </el-table>
               </template>