Forráskód Böngészése

Merge branch 'master' of http://94.191.59.107:3000/houwenfeng/ybxf-security-ui

liyangzheng 1 éve
szülő
commit
bbd03f50c3

+ 1 - 1
src/utils/ruoyi.js

@@ -5,7 +5,7 @@
 
 const baseURL = process.env.VUE_APP_BASE_API;
 
-// 日期格式化
+// 日期格式化   时间戳转年月日
 export function parseTime(time, pattern) {
   if (arguments.length === 0 || !time) {
     return null;

+ 2 - 2
src/views/backend/org/index.vue

@@ -49,10 +49,10 @@
     </el-form>
     <!-- 操作工具栏 -->
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
           v-hasPermi="['backend:org:create']">新增</el-button>
-      </el-col>
+      </el-col> -->
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
           v-hasPermi="['backend:org:export']">导出</el-button>

+ 2 - 2
src/views/backend/org2/index.vue

@@ -49,10 +49,10 @@
     </el-form>
     <!-- 操作工具栏 -->
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
           v-hasPermi="['backend:org:create']">新增</el-button>
-      </el-col>
+      </el-col> -->
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
           v-hasPermi="['backend:org:export']">导出</el-button>

+ 272 - 0
src/views/backend/yhgl/index.vue

@@ -0,0 +1,272 @@
+<template>
+    <div class="app-container">
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+        <!-- <el-form-item label="类型名称" prop="dictType">
+          <el-select v-model="queryParams.dictType">
+            <el-option v-for="item in typeOptions" :key="item.id" :label="item.name" :value="item.type"/>
+          </el-select>
+        </el-form-item> -->
+        <el-form-item label="类型标签" prop="label">
+          <el-input v-model="queryParams.label" placeholder="请输入类型标签" clearable @keyup.enter.native="handleQuery"/>
+        </el-form-item>
+        <!-- <el-form-item label="状态" prop="status">
+          <el-select v-model="queryParams.status" placeholder="数据状态" clearable>
+            <el-option v-for="dict in statusDictDatas" :key="dict.value" :label="dict.label" :value="dict.value"/>
+          </el-select>
+        </el-form-item> -->
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+          <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+        </el-form-item>
+      </el-form>
+  
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
+        </el-col>
+        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      </el-row>
+  
+      <el-table v-loading="loading" :data="dataList" >
+        <el-table-column label="类型编码" align="center" prop="id" />
+        <el-table-column label="类型标签" align="center" prop="label" />
+        <el-table-column label="类型键值" align="center" prop="value" />
+        <el-table-column label="类型排序" align="center" prop="sort" />
+        <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+          <template v-slot="scope">
+            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
+            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+  
+      <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
+                  @pagination="getList"/>
+  
+      <!-- 添加或修改参数配置对话框 -->
+      <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="90px">
+          <el-form-item label="类型类型">
+            <el-input v-model="form.dictType" :disabled="true" />
+          </el-form-item>
+          <el-form-item label="数据标签" prop="label">
+            <el-input v-model="form.label" placeholder="请输入数据标签" />
+          </el-form-item>
+          <el-form-item label="数据键值" prop="value">
+            <el-input v-model="form.value" placeholder="请输入数据键值" />
+          </el-form-item>
+          <el-form-item label="显示排序" prop="sort">
+            <el-input-number v-model="form.sort" controls-position="right" :min="0" />
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </template>
+  
+  <script>
+  import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data";
+  import { listAllSimple, getType } from "@/api/system/dict/type";
+  
+  import { CommonStatusEnum } from '@/utils/constants'
+  import { getDictDatas, DICT_TYPE } from '@/utils/dict'
+  
+  export default {
+    name: "Data",
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 导出遮罩层
+        exportLoading: false,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 类型表格数据
+        dataList: [],
+        // 默认类型类型
+        defaultDictType: "",
+        // 弹出层标题
+        title: "",
+        // 是否显示弹出层
+        open: false,
+        // 类型数据类型
+        typeOptions: [],
+        // 查询参数
+        queryParams: {
+          pageNo: 1,
+          pageSize: 10,
+          dictName: undefined,
+          dictType: undefined,
+          status: undefined
+        },
+        // 表单参数
+        form: {},
+        // 表单校验
+        rules: {
+          label: [
+            { required: true, message: "数据标签不能为空", trigger: "blur" }
+          ],
+          value: [
+            { required: true, message: "数据键值不能为空", trigger: "blur" }
+          ],
+          sort: [
+            { required: true, message: "数据顺序不能为空", trigger: "blur" }
+          ]
+        },
+        // 数据标签回显样式
+        colorTypeOptions: [{
+            value: "default",
+            label: "默认"
+          }, {
+            value: "primary",
+            label: "主要"
+          }, {
+            value: "success",
+            label: "成功"
+          }, {
+            value: "info",
+            label: "信息"
+          }, {
+            value: "warning",
+            label: "警告"
+          }, {
+            value: "danger",
+            label: "危险"
+          }
+        ],
+  
+        // 枚举
+        CommonStatusEnum: CommonStatusEnum,
+        // 数据类型
+        statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS)
+      };
+    },
+    created() {
+      this.getType(199);
+      this.getTypeList();
+    },
+    methods: {
+      /** 查询类型类型详细 */
+      getType(dictId) {
+        getType(dictId).then(response => {
+          this.queryParams.dictType = response.data.type;
+          this.defaultDictType = response.data.type;
+          this.getList();
+        });
+      },
+      /** 查询类型类型列表 */
+      getTypeList() {
+        listAllSimple().then(response => {
+          this.typeOptions = response.data;
+        });
+      },
+      /** 查询类型数据列表 */
+      getList() {
+        this.loading = true;
+        listData(this.queryParams).then(response => {
+          this.dataList = response.data.list;
+          this.total = response.data.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: undefined,
+          label: undefined,
+          value: undefined,
+          sort: 0,
+          status: CommonStatusEnum.ENABLE,
+          colorType: 'default',
+          cssClass: undefined,
+          remark: undefined
+        };
+        this.resetForm("form");
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNo = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.queryParams.dictType = this.defaultDictType;
+        this.handleQuery();
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "添加类型数据";
+        this.form.dictType = this.queryParams.dictType;
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getData(id).then(response => {
+          this.form = response.data;
+          this.open = true;
+          this.title = "修改类型数据";
+        });
+      },
+      /** 提交按钮 */
+      submitForm: function() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id !== undefined) {
+              updateData(this.form).then(response => {
+                this.$modal.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addData(this.form).then(response => {
+                this.$modal.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id;
+        this.$modal.confirm('是否确认删除类型编码为"' + ids + '"的数据项?').then(function() {
+            return delData(ids);
+          }).then(() => {
+            this.getList();
+            this.$modal.msgSuccess("删除成功");
+        }).catch(() => {});
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$modal.confirm('是否确认导出所有数据项?').then(() => {
+            this.exportLoading = true;
+            return exportData(queryParams);
+          }).then(response => {
+            this.$download.excel(response, '类型数据.xls');
+            this.exportLoading = false;
+        }).catch(() => {});
+      }
+    }
+  };
+  </script>
+  

+ 143 - 33
src/views/index.vue

@@ -4,7 +4,12 @@
     <div>
       <panel-group @handleSetLineChartData="handleSetLineChartData" />
       <el-row :gutter="20">
-        <el-col :xs="44" :sm="44" :lg="16" :style="{ height: wheight + 10 + 'px', background: '#fff' }">
+        <el-col
+          :xs="44"
+          :sm="44"
+          :lg="16"
+          :style="{ height: wheight + 10 + 'px', background: '#fff' }"
+        >
           <!-- <div class="chart-wrapper" style="position: relative;">
             <div class="date-picker" style="position: absolute;top: 0;right:30px;z-index:999;margin-top: 10px">
               <el-date-picker v-model="selectedMonth" type="month" placeholder="选择月份" format="yyyy-MM"
@@ -15,14 +20,27 @@
           </div> -->
           <!-- :height="wheight?wheight" -->
           <div style="margin-top: 10px; font-weight: 500; font-size: 15px">
-            <span>任务列表</span><span style="float: right; cursor: pointer; float: right" @click="gomorelist">更多</span>
+            <span>任务列表</span
+            ><span
+              style="float: right; cursor: pointer; float: right"
+              @click="gomorelist"
+              >更多</span
+            >
           </div>
-          <el-table ref="filterTable" :data="tableDataMiddle" :height="wheight - 50"
-            style="width: 100%; padding-top: 10px" @filter-change="filterTags">
+          <el-table
+            ref="filterTable"
+            :data="tableDataMiddle"
+            :height="wheight - 50"
+            style="width: 100%; padding-top: 10px"
+            @filter-change="filterTags"
+          >
             <el-table-column label="任务名称" align="center" prop="taskName" />
             <el-table-column label="任务类型" align="center" prop="taskType">
               <template v-slot="scope">
-                <dict-tag :type="DICT_TYPE.TASK_TYPE" :value="scope.row.taskType" />
+                <dict-tag
+                  :type="DICT_TYPE.TASK_TYPE"
+                  :value="scope.row.taskType"
+                />
               </template>
             </el-table-column>
             <el-table-column label="任务内容" align="center">
@@ -30,13 +48,25 @@
                 <div v-html="scope.row.taskContent"></div>
               </template>
             </el-table-column>
-            <el-table-column label="任务状态" align="center" prop="taskStatus" :filters="[
-              { text: '待完成', value: 1 },
-              { text: '待审核', value: 2 },
-              { text: '已归档', value: 3 },
-            ]" filter-placement="bottom-end" :filter-multiple="false" column-key="taskStatus" v-slot="scope">
+            <el-table-column
+              label="任务状态"
+              align="center"
+              prop="taskStatus"
+              :filters="[
+                { text: '待完成', value: 1 },
+                { text: '待审核', value: 2 },
+                { text: '已归档', value: 3 },
+              ]"
+              filter-placement="bottom-end"
+              :filter-multiple="false"
+              column-key="taskStatus"
+              v-slot="scope"
+            >
               <template>
-                <dict-tag :type="DICT_TYPE.TASK_STATUS" :value="scope.row.taskStatus" />
+                <dict-tag
+                  :type="DICT_TYPE.TASK_STATUS"
+                  :value="scope.row.taskStatus"
+                />
               </template>
             </el-table-column>
             <!-- <el-table-column prop="tag" label="任务状态" width="100"
@@ -50,26 +80,41 @@
         </el-col>
         <el-col :xs="24" :sm="24" :lg="8">
           <div class="chart-wrapper" style="position: relative">
-            <div class="date-picker" style="
+            <div
+              class="date-picker"
+              style="
                 position: absolute;
                 top: 0;
                 left: 170px;
                 z-index: 999;
                 margin-top: 10px;
-              ">
-              <el-date-picker v-model="selectedMonths" type="month" placeholder="选择月份" format="M" value-format="M"
-                @change="handleChange">
+              "
+            >
+              <el-date-picker
+                v-model="selectedMonths"
+                type="month"
+                placeholder="选择月份"
+                format="M"
+                value-format="M"
+                @change="handleChange"
+              >
               </el-date-picker>
             </div>
             <raddar-chart :reportData="reportData" />
             <!-- <div>详细情况</div> -->
-            <el-button size="middle" type="text" style="
+            <el-button
+              size="middle"
+              type="text"
+              style="
                 position: absolute;
                 bottom: 5px;
                 right: 50px;
                 z-index: 999;
                 margin-top: 10px;
-              " @click="handleDeatail">详细情况</el-button>
+              "
+              @click="handleDeatail"
+              >详细情况</el-button
+            >
           </div>
         </el-col>
         <!-- <el-col :xs="24" :sm="24" :lg="8">
@@ -98,33 +143,93 @@
                     src="../assets/images/shangshen.png" style="width:6px;height:8px;margin: 6px 0 0 3px;"></div>
               </div> -->
             <!-- </div> -->
-            <div class="chart-wrapper" style="position: relative; width: 100%; margin-bottom: 0" id="wheight">
-              <line-chart :chart-data="lineChartData" :chart-datano="lineChartDatano" />
+            <div
+              class="chart-wrapper"
+              style="position: relative; width: 100%; margin-bottom: 0"
+              id="wheight"
+            >
+              <line-chart
+                :chart-data="lineChartData"
+                :chart-datano="lineChartDatano"
+              />
             </div>
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="8">
-          <div class="chart-wrapper chart-wrappers" style="height: 356px; overflow: auto">
+          <div
+            class="chart-wrapper chart-wrappers"
+            style="height: 356px; overflow: auto"
+          >
             <div style="margin-bottom: 10px">
-              <span class="line-left-top">整改隐患记录</span><span style="float: right; cursor: pointer" @click="more">更多</span>
+              <span class="line-left-top">整改隐患记录</span
+              ><span style="float: right; cursor: pointer" @click="more"
+                >更多</span
+              >
             </div>
-            <el-table :data="tableData" style="width: 100%" :cell-class-name="tableCellClassName">
-              <el-table-column label="任务名称" prop="task_name" header-align="center" align="center">
+            <el-table
+              :data="tableData"
+              style="width: 100%"
+              :cell-class-name="tableCellClassName"
+            >
+              <el-table-column
+                label="任务名称"
+                prop="task_name"
+                header-align="center"
+                align="center"
+              >
               </el-table-column>
-              <el-table-column label="检查时间" prop="inspect_time" header-align="center" align="center">
+              <el-table-column
+                label="检查时间"
+                prop="inspect_time"
+                header-align="center"
+                align="center"
+              >
+                <template v-slot="scope">
+                  <span>{{ parseTime(scope.row.inspect_time) }}</span>
+                </template>
               </el-table-column>
-              <el-table-column label="单位名称" prop="org_name" header-align="center" align="center">
+              <el-table-column
+                label="单位名称"
+                prop="org_name"
+                header-align="center"
+                align="center"
+              >
               </el-table-column>
             </el-table>
           </div>
         </el-col>
       </el-row>
     </div>
-    <el-dialog title="维保报告单位数量详情" :visible.sync="showRaddarDetail" width="60%" v-dialogDrag append-to-body
-      class="details">
-      <el-button size="mini" type="primary" plain @click="handleDeatailWei" style="margin-bottom: 10px;">未上传</el-button>
-      <el-button size="mini" type="success" plain @click="handleDeatailYi" style="margin-bottom: 10px;">已上传</el-button>
-      <el-table highlight-current-row v-loading="loading" :data="list" style="width: 100%; overflow: auto">
+    <el-dialog
+      title="维保报告单位数量详情"
+      :visible.sync="showRaddarDetail"
+      width="60%"
+      v-dialogDrag
+      append-to-body
+      class="details"
+    >
+      <el-button
+        size="mini"
+        type="primary"
+        plain
+        @click="handleDeatailWei"
+        style="margin-bottom: 10px"
+        >未上传</el-button
+      >
+      <el-button
+        size="mini"
+        type="success"
+        plain
+        @click="handleDeatailYi"
+        style="margin-bottom: 10px"
+        >已上传</el-button
+      >
+      <el-table
+        highlight-current-row
+        v-loading="loading"
+        :data="list"
+        style="width: 100%; overflow: auto"
+      >
         <el-table-column label="ID" align="center" prop="id" />
         <el-table-column label="单位名称" align="center" prop="orgName">
           <template v-slot="scope">
@@ -135,8 +240,13 @@
         </el-table-column>
       </el-table>
       <!-- 分页组件 -->
-      <pagination v-show="total > 0" :total="total" :page.sync="queryRader.pageNo" :limit.sync="queryRader.pageSize"
-        @pagination="getData" />
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryRader.pageNo"
+        :limit.sync="queryRader.pageSize"
+        @pagination="getData"
+      />
     </el-dialog>
   </div>
 </template>
@@ -287,7 +397,7 @@ export default {
       this.$router.push({ path: "/backend/taskInfo" });
     },
     //统计参数月份没有上传维保报告的数量
-    async currentReport() { },
+    async currentReport() {},
     //近30天隐患统计
     async countdengerbyday() {
       const res = await countdengerbyday({

+ 2 - 2
src/views/unitorg/org/index.vue

@@ -49,10 +49,10 @@
     </el-form>
     <!-- 操作工具栏 -->
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
           v-hasPermi="['backend:org:create']">新增</el-button>
-      </el-col>
+      </el-col> -->
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
           v-hasPermi="['backend:org:export']">导出</el-button>