Your Name
2022-03-21 0bbc5abeab6a1cb504b36bcd620fcb55e496d989
'登录页'
已重命名1个文件
已修改10个文件
已添加8个文件
1357 ■■■■■ 文件已修改
config/dev.env.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/prod.env.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/riskLevelManage.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/bg_login.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/icon_visible.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img_bg_login.png 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Map/libs/Map.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tab/Model.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Tab/Plot.vue 460 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/analyseUnit/index.vue 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/controlAction/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/event/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/fourColorMap/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/components/login-form.vue 276 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/dev.env.js
@@ -16,8 +16,10 @@
  // IMG_API: '"https://sinanoaq.com:8100/upload/"',
  //   BASE_API: '"http://220.171.99.118:4100"',
  //   IMG_API: '"http://220.171.99.118:4100/upload/"',
      BASE_API: '"http://192.168.0.35:8006"',
      IMG_API: '"http://192.168.0.35:8006/upload/"',
  //     BASE_API: '"http://192.168.0.35:8006"',
  //     IMG_API: '"http://192.168.0.35:8006/upload/"',
    BASE_API: '"http://222.92.213.21:8006/zhongtai"',
    IMG_API: '"http://222.92.213.21:8006/zhongtai/upload/"',
    // BASE_API: '"http://220.171.99.118:4101/api"',
    // IMG_API: '"http://220.171.99.118:4101/api/upload/"',
};
config/prod.env.js
@@ -8,8 +8,8 @@
    // BASE_API: '"https://sinanoaq.cn:8100"',
    // IMG_API: '"https://sinanoaq.cn:8100/upload/"',
    BASE_API: '"http://220.171.99.118:4100"',
    IMG_API: '"http://220.171.99.118:4100/upload/"',
    BASE_API: '"http://222.92.213.21:8006/zhongtai"',
    IMG_API: '"http://222.92.213.21:8006/zhongtai/upload/"',
    // BASE_API: '"http://220.171.99.118:4101/api"',
    // IMG_API: '"http://220.171.99.118:4101/api/upload/"',
index.html
@@ -27,7 +27,7 @@
        }
        .popup-wrapper {
            background-image: url("./images/popup_bg.png");
            background-image: url("./public/images/popup_bg.png");
            background-size: auto 100%;
            background-repeat: no-repeat;
            background-position: center center;
src/api/riskLevelManage.js
对比新文件
@@ -0,0 +1,46 @@
import {getToken} from "../utils/auth";
import request from '@/utils/request'
export function getAnalyseUnitList(data) {
    return request({
        headers: {
            'Authorization': getToken()
        },
        url: process.env.BASE_API + '/riskAnaUnit/page',
        method: 'post',
        data:data
    })
}
export function addAnalyseUnit(data) {
    return request({
        headers: {
            'Authorization': getToken()
        },
        url: process.env.BASE_API + '/riskAnaUnit/add',
        method: 'post',
        data:data
    })
}
export function updateAnalyseUnit(data) {
    return request({
        headers: {
            'Authorization': getToken()
        },
        url: process.env.BASE_API + '/riskAnaUnit/mod',
        method: 'post',
        data:data
    })
}
export function deleteAnalyseUnit(data) {
    return request({
        headers: {
            'Authorization': getToken()
        },
        url: process.env.BASE_API + '/riskAnaUnit/del',
        method: 'post',
        data:data
    })
}
src/assets/bg_login.png
src/assets/icon_visible.png
src/assets/img_bg_login.png
src/components/Map/libs/Map.js
@@ -1414,8 +1414,8 @@
    this.measureTool.clearMeasure();
    this.clearAllPlots();
    this.removeModels();
    // this.viewer.destroy();
    // this.viewer = null;
    // this.fire(UI_CHANGE_EVENT);
    this.viewer.destroy();
    this.viewer = null;
    this.fire(UI_CHANGE_EVENT);
  }
}
src/components/Tab/Model.vue
@@ -216,4 +216,4 @@
    box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.15);
}
</style>
</style>
src/components/Tab/Plot.vue
@@ -1,250 +1,250 @@
<template>
  <div class="container">
    <div class="model-panel-list">
      <el-row :gutter="10">
        <el-col :span="6">
          <el-button
            icon="el-icon-plus"
            size="small"
            type="primary"
            @click="showCreateHandle"
          >
            创建
          </el-button>
        </el-col>
        <el-col :span="6">
          <el-button
            icon="el-icon-delete"
            size="small"
            type="danger"
            @click="clearHandle"
          >
            清空
          </el-button>
        </el-col>
        <el-col :span="6">
          <el-button
            icon="el-icon-view"
            size="small"
            :type="showPlot ? 'success' : 'info'"
            @click="toggleVisible"
          >
            {{ showPlot ? '隐藏' : '显示' }}
          </el-button>
        </el-col>
      </el-row>
      <el-row :gutter="10" v-for="label in labels" :key="label.attr.id">
        <el-col :span="14">
          {{ label.attr.name || ' ' }}
        </el-col>
        <el-col :span="10" style="textalign: right">
          <el-button
            icon="el-icon-s-promotion"
            size="mini"
            circle
            @click="() => focusHandle(label.attr.id)"
          />
          <el-button
            icon="el-icon-edit"
            size="mini"
            circle
            @click="() => editHandle(label)"
          />
          <el-button
            icon="el-icon-delete"
            type="danger"
            size="mini"
            circle
            @click="() => removeHandle(label.attr.id)"
          />
        </el-col>
      </el-row>
    </div>
    <el-dialog
      :visible="showCreatePanel"
      width="380px"
      title="创建标注"
      :append-to-body="true"
      :close-on-click-modal="false"
      :before-close="closeCreateHandle"
    >
      <p>请输入内容:</p>
      <el-input v-model="label.name" placeholder="请输入内容" />
      <span slot="footer" class="dialog-footer">
    <div class="container">
        <div class="model-panel-list">
            <el-row :gutter="10">
                <el-col :span="6">
                    <el-button
                        icon="el-icon-plus"
                        size="small"
                        type="primary"
                        @click="showCreateHandle"
                    >
                        创建
                    </el-button>
                </el-col>
                <el-col :span="6">
                    <el-button
                        icon="el-icon-delete"
                        size="small"
                        type="danger"
                        @click="clearHandle"
                    >
                        清空
                    </el-button>
                </el-col>
                <el-col :span="6">
                    <el-button
                        icon="el-icon-view"
                        size="small"
                        :type="showPlot ? 'success' : 'info'"
                        @click="toggleVisible"
                    >
                        {{ showPlot ? '隐藏' : '显示' }}
                    </el-button>
                </el-col>
            </el-row>
            <el-row :gutter="10" v-for="label in labels" :key="label.attr.id">
                <el-col :span="14">
                    {{ label.attr.name || ' ' }}
                </el-col>
                <el-col :span="10" style="textalign: right">
                    <el-button
                        icon="el-icon-s-promotion"
                        size="mini"
                        circle
                        @click="() => focusHandle(label.attr.id)"
                    />
                    <el-button
                        icon="el-icon-edit"
                        size="mini"
                        circle
                        @click="() => editHandle(label)"
                    />
                    <el-button
                        icon="el-icon-delete"
                        type="danger"
                        size="mini"
                        circle
                        @click="() => removeHandle(label.attr.id)"
                    />
                </el-col>
            </el-row>
        </div>
        <el-dialog
            :visible="showCreatePanel"
            width="380px"
            title="创建标注"
            :append-to-body="true"
            :close-on-click-modal="false"
            :before-close="closeCreateHandle"
        >
            <p>请输入内容:</p>
            <el-input v-model="label.name" placeholder="请输入内容" />
            <span slot="footer" class="dialog-footer">
        <el-button @click="closeCreateHandle">取 消</el-button>
        <el-button type="primary" @click="createHandle">确 定</el-button>
      </span>
    </el-dialog>
  </div>
        </el-dialog>
    </div>
</template>
<script>
import { global } from '../../global';
    import { global } from '../../global';
// 默认样式
const LABEL_STYLE = {
  opacity: 1,
  color: '#FFFFFF',
  font_family: '黑体',
  font_size: 18,
  font_style: 'normal',
  font_weight: 'normal',
  border: false,
  border_color: '#ffffff',
  border_width: 2,
  background: true,
  background_color: 'rgba(0, 0, 0, .8)',
};
export default {
  components: {},
  data() {
    return {
      label: {
        id: null,
        name: '',
      },
      showCreatePanel: false,
      showPlot: true,
    // 默认样式
    const LABEL_STYLE = {
        opacity: 1,
        color: '#FFFFFF',
        font_family: '黑体',
        font_size: 18,
        font_style: 'normal',
        font_weight: 'normal',
        border: false,
        border_color: '#ffffff',
        border_width: 2,
        background: true,
        background_color: 'rgba(0, 0, 0, .8)',
    };
  },
  computed: {
    timestamp() {
      return this.$store.state.map.timestamp;
    },
    labels() {
      return this.entities.map(entity => entity.attribute);
    },
    entities() {
      let entities =
        this.timestamp && global.map
          ? global.map.plotDrawTool.getEntitys()
          : [];
      return entities.filter(entity => entity.attribute.type === 'polygon');
    },
  },
  methods: {
    editHandle(label) {
      if (!global.map) return;
      this.label = {
        id: label.attr.id,
        name: label.attr.name,
      };
      this.showCreatePanel = true;
    },
    removeHandle(id) {
      if (!global.map) return;
      global.map.deletePlot(id);
      this.$store.dispatch('map/updateTimestamp');
    },
    closeCreateHandle() {
      this.showCreatePanel = false;
    },
    showCreateHandle() {
      this.showCreatePanel = true;
    },
    _initLabel() {
      this.label = {
        id: null,
        name: '',
      };
    },
    createHandle() {
      if (!global.map) return;
      let map = global.map;
      const { id, name } = this.label;
      const entity = id && map.getPlotById(id);
      this.closeCreateHandle();
      if (entity) {
        map.updatePlotStyle(id, { text: name });
        map.updatePlotAttribute(id, { name });
        this._initLabel();
        this.$store.dispatch('map/updateTimestamp');
      } else {
        map.startDraw(
          {
            type: 'polygon',
            style: { text: name },
            attr: {
              name,
    export default {
        components: {},
        data() {
            return {
                label: {
                    id: null,
                    name: '',
                },
                showCreatePanel: false,
                showPlot: true,
            };
        },
        computed: {
            timestamp() {
                return this.$store.state.map.timestamp;
            },
          },
          () => {
            this._initLabel();
            this.$store.dispatch('map/updateTimestamp');
          }
        );
      }
    },
    toggleVisible() {
      this.showPlot = !this.showPlot;
      if (global.map) {
        this.entities.forEach(entity => {
          entity.show = this.showPlot;
        });
      }
      this.$store.dispatch('map/updateTimestamp');
    },
    focusHandle(markerId) {
      if (global.map) {
        const entity = global.map.getPlotById(markerId);
        if (entity) {
          global.map.viewer.flyTo(entity, { duration: 1 });
        }
      }
    },
    clearHandle() {
      if (global.map) {
        this.entities.forEach(entity => {
          global.map.plotDrawTool.deleteEntity(entity);
        });
      }
      this.$store.dispatch('map/updateTimestamp');
    },
  },
};
            labels() {
                return this.entities.map(entity => entity.attribute);
            },
            entities() {
                let entities =
                    this.timestamp && global.map
                        ? global.map.plotDrawTool.getEntitys()
                        : [];
                return entities.filter(entity => entity.attribute.type === 'polygon');
            },
        },
        methods: {
            editHandle(label) {
                if (!global.map) return;
                this.label = {
                    id: label.attr.id,
                    name: label.attr.name,
                };
                this.showCreatePanel = true;
            },
            removeHandle(id) {
                if (!global.map) return;
                global.map.deletePlot(id);
                this.$store.dispatch('map/updateTimestamp');
            },
            closeCreateHandle() {
                this.showCreatePanel = false;
            },
            showCreateHandle() {
                this.showCreatePanel = true;
            },
            _initLabel() {
                this.label = {
                    id: null,
                    name: '',
                };
            },
            createHandle() {
                if (!global.map) return;
                let map = global.map;
                const { id, name } = this.label;
                const entity = id && map.getPlotById(id);
                this.closeCreateHandle();
                if (entity) {
                    map.updatePlotStyle(id, { text: name });
                    map.updatePlotAttribute(id, { name });
                    this._initLabel();
                    this.$store.dispatch('map/updateTimestamp');
                } else {
                    map.startDraw(
                        {
                            type: 'polygon',
                            style: { text: name },
                            attr: {
                                name,
                            },
                        },
                        () => {
                            this._initLabel();
                            this.$store.dispatch('map/updateTimestamp');
                        }
                    );
                }
            },
            toggleVisible() {
                this.showPlot = !this.showPlot;
                if (global.map) {
                    this.entities.forEach(entity => {
                        entity.show = this.showPlot;
                    });
                }
                this.$store.dispatch('map/updateTimestamp');
            },
            focusHandle(markerId) {
                if (global.map) {
                    const entity = global.map.getPlotById(markerId);
                    if (entity) {
                        global.map.viewer.flyTo(entity, { duration: 1 });
                    }
                }
            },
            clearHandle() {
                if (global.map) {
                    this.entities.forEach(entity => {
                        global.map.plotDrawTool.deleteEntity(entity);
                    });
                }
                this.$store.dispatch('map/updateTimestamp');
            },
        },
    };
</script>
<style scoped>
.images img {
  width: 36px;
  height: auto;
  margin: 0px 5px;
  cursor: pointer;
}
    .images img {
        width: 36px;
        height: auto;
        margin: 0px 5px;
        cursor: pointer;
    }
.model-panel-list > div {
  margin-bottom: 5px;
  padding: 5px 0 5px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
    .model-panel-list > div {
        margin-bottom: 5px;
        padding: 5px 0 5px 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }
.image-list {
  margin: 20px 0;
}
    .image-list {
        margin: 20px 0;
    }
.image-list ul,
.image-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}
    .image-list ul,
    .image-list li {
        margin: 0;
        padding: 0;
        list-style: none;
    }
.image-list li {
  display: inline-block;
  margin: 0 5px 5px 5px;
  cursor: pointer;
  padding: 5px 8px;
  border-radius: 3px;
}
    .image-list li {
        display: inline-block;
        margin: 0 5px 5px 5px;
        cursor: pointer;
        padding: 5px 8px;
        border-radius: 3px;
    }
.image-list li img {
  width: 32px;
  height: 32px;
}
    .image-list li img {
        width: 32px;
        height: 32px;
    }
.image-list li:hover,
.image-list li.active {
  box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.15);
}
    .image-list li:hover,
    .image-list li.active {
        box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.15);
    }
</style>
src/router/index.js
@@ -53,7 +53,22 @@
        hidden: true
    },
    {
        path: '',
        path: '/',
        component: Layout,
        redirect: '/doublePreventAction/doublePreventAction/riskLevelManage/index/doublePreventAction/riskLevelManage/analyseUnit/index',
        children: [
            {
                path: 'dashboard',
                component: () => import('@/views/doublePreventAction/riskLevelManage/analyseUnit/index'),
                name: 'Dashboard1',
                meta: { title: '首页', icon: 'el-icon-dash', noCache: true, affix: true }
            }
        ],
        hidden: true
    },
    {
        path: 'dashboard',
        component: Layout,
        redirect: 'dashboard',
        children: [
src/views/dashboard/index.vue
@@ -7,7 +7,7 @@
<script>
import { mapGetters } from 'vuex'
import menuIndex from '../mapManage/map/index'
import menuIndex from '../doublePreventAction/riskLevelManage/analyseUnit/index'
export default {
  name: 'Dashboard',
src/views/doublePreventAction/riskLevelManage/analyseUnit/index.vue
对比新文件
@@ -0,0 +1,285 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search">
                <span>单位名称:</span>
                <el-input v-model="listQuery.filter.riskUintName" style="width:200px">
                </el-input>
            </div>
            <el-button class="filter-item" style="margin-left: 10px;margin-top: 10px" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
            <el-button class="filter-item" style="margin-left: 10px;margin-top: 10px" type="primary" icon="el-icon-plus" @click="showUnitForm('','新增')">新增</el-button>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="analyseUnitData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
            >
                <el-table-column label="安全风险分析单元ID" prop="hazardLiablePersonId" align="center">
                </el-table-column>
                <el-table-column label="安全风险分析对象编码" prop="hazardCode" align="center">
                </el-table-column>
                <el-table-column label="责任部门" prop="hazardDep" align="center">
                </el-table-column>
                <el-table-column label="责任人" prop="hazardLiablePerson" align="center">
                </el-table-column>
                <el-table-column label="安全风险分析单元名称" prop="riskUintName" align="center">
                </el-table-column>
                <el-table-column label="创建人" prop="createBy" align="center">
                </el-table-column>
                <el-table-column label="创建时间" prop="createTime" align="center">
                </el-table-column>
                <el-table-column label="最后修改人" prop="updateBy" align="center">
                </el-table-column>
                <el-table-column label="最后修改时间" prop="updateTime" align="center">
                </el-table-column>
                <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button type="text" @click="showUnitForm(scope.row,'编辑')">编辑</el-button>
                        <el-button type="text" style="color: red" @click="deleteById(scope.row)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="currentPage"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
        <el-dialog :title="title" :visible.sync="analyseUnitVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="600px">
            <el-form ref="dataForm" :rules="analyseUnitFormRules" :model="analyseUnitForm" label-position="right" label-width="160px">
                <el-form-item label="责任部门">
                    <el-select v-model="analyseUnitForm.hazardDep" class="analyseUnit_input">
                        <el-option
                        v-for="item in departmentList"
                        :key="item.id"
                        :value="item.department"
                        :label="item.department"
                        ></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="责任人">
                    <el-input v-model="analyseUnitForm.hazardLiablePerson" class="analyseUnit_input"></el-input>
                </el-form-item>
                <el-form-item label="安全风险分析对象编码">
                    <el-input v-model="analyseUnitForm.hazardCode" class="analyseUnit_input"></el-input>
                </el-form-item>
                <el-form-item label="安全分线分析单元名称">
                    <el-input v-model="analyseUnitForm.riskUintName" class="analyseUnit_input"></el-input>
                </el-form-item>
            </el-form>
            <div  align="right">
                <el-button @click="unitFormVisible = false">取消</el-button>
                <el-button type="primary" @click="submitUnit()">确认</el-button>
            </div>
        </el-dialog>
    </div>
</template>
<script>
    import { mapGetters } from 'vuex'
    import { computePageCount } from '@/utils'
    import { addAnalyseUnit, deleteAnalyseUnit, getAnalyseUnitList, updateAnalyseUnit } from '@/api/riskLevelManage'
    import {getAllDepartment, getDepartmentList} from "../../../../api/departmentManage";
    export default {
        name: 'index',
        filters: {
            parseMain(type){
                if(type === 1){
                    return "是"
                }else if(type === 0){
                    return "否"
                }
            },
        },
        computed: {
            ...mapGetters([
                'userType'
            ])
        },
        data() {
            return {
                tableKey: 0,
                analyseUnitData: [],
                departmentList:[],
                listLoading: false,
                pageSize: 10,
                recordTotal: 0,
                currentPage: 1,
                pageTotal: 0,
                title:'',
                company:'',
                code:'',
                analyseUnitVisible:false,
                analyseUnitFormRules:{},
                analyseUnitForm:{
                    id: null,
                    hazardCode: "",
                    hazardDep: "",
                    hazardLiablePerson: "",
                    riskUintName: "",
                    createTime: "",
                    updateTime: "",
                    createBy: "",
                    updateBy: "",
                    validFlag: null,
                    hazardLiablePersonId: null,
                    hazardDepId: 1
                },
                listQuery:{
                    pageIndex:1,
                    pageSize:10,
                    filter:{
                        riskUnitName:'',
                    }
                },
            }
        },
        created() {
            this.getAnalyseUnitData()
            this.getDepartment()
        },
        methods: {
            async getAnalyseUnitData(){
                this.listLoading = true
                let res = await getAnalyseUnitList(this.listQuery)
                if(res.data.code === '200'){
                    this.recordTotal = res.data.result.total
                    this.pageSize = res.data.result.size
                    this.pageTotal = computePageCount(res.data.result.total, res.data.result.size)
                    this.currentPage = res.data.result.current
                    this.analyseUnitData = res.data.result.records
                }else{
                    this.$message({
                        message:res.data.message,
                        type:'warning'
                    })
                }
                this.listLoading = false
            },
            async getDepartment(){
                let res = await getDepartmentList({pageSize:1000,pageIndex:1})
                if(res.data.code === '200'){
                    this.departmentList = res.data.result.result
                }else{
                    this.$message({
                        message:res.data.message,
                        type:'warning'
                    })
                }
            },
            showUnitForm(value,type){
                this.analyseUnitVisible = true
                if(type === '新增'){
                    this.title = '新增'
                    this.analyseUnitForm = {
                        id: null,
                        hazardCode: "",
                        hazardDep: "",
                        hazardLiablePerson: "",
                        riskUintName: "",
                        createTime: "",
                        updateTime: "",
                        createBy: "",
                        updateBy: "",
                        validFlag: null,
                        hazardLiablePersonId: null,
                        hazardDepId: 1
                    }
                }else{
                    this.title = '修改'
                    this.analyseUnitForm = value
                }
            },
            submitUnit(){
                if(this.title === '新增'){
                    addAnalyseUnit(this.analyseUnitForm).then((res)=>{
                        if(res.data.code === '200'){
                            this.analyseUnitVisible = false
                            this.getAnalyseUnitData()
                            this.$notify({
                                type:'success',
                                duration:2000,
                                message:'新增成功',
                                title:'成功'
                            })
                        }else{
                            this.$message({
                                type:'warning',
                                message:res.data.message
                            })
                        }
                    })
                }else{
                    updateAnalyseUnit(this.analyseUnitForm).then((res)=>{
                        if(res.data.code === '200'){
                            this.analyseUnitVisible = false
                            this.getAnalyseUnitData()
                            this.$notify({
                                type:'success',
                                duration:2000,
                                title:'成功',
                                message:'编辑成功'
                            })
                        }else{
                            this.$message({
                                type:'warning',
                                message:res.data.message
                            })
                        }
                    })
                }
            },
            deleteById(val){
                this.$confirm('删除此条信息,是否继续','提示',{
                    confirmButtonText:'确定',
                    cancelButtonText:'取消',
                    type:'warning',
                }).then(()=> {
                    deleteAnalyseUnit({id:val.id}).then( ()=>{
                        this.getAnalyseUnitData()
                        this.$notify({
                            title:'成功',
                            message:'删除成功',
                            type:'success',
                            duration:2000,
                        })
                    })
                })
            },
            refreshHandle(){
                this.getAnalyseUnitData()
            },
            handleSizeChange(val){
                this.listQuery.pageSize = val
                this.getAnalyseUnitData()
            },
            handleCurrentChange(val){
                this.listQuery.pageIndex = val
                this.getAnalyseUnitData()
            },
        }
    }
</script>
<style scoped>
    .basic_search{
        display:inline-block;
        padding-bottom: 10px;
    }
    .analyseUnit_input{
        width:320px;
    }
</style>
src/views/doublePreventAction/riskLevelManage/controlAction/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/doublePreventAction/riskLevelManage/event/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/doublePreventAction/riskLevelManage/fourColorMap/index.vue
文件名从 src/views/mapManage/map/index.vue 修改
@@ -6,13 +6,13 @@
</template>
<script>
    import Map from '../../../components/Map';
    import Tab from '../../../components/Tab';
    import { global } from '../../../global';
    import Map from '../../../../components/Map';
    import Tab from '../../../../components/Tab';
    import { global } from '../../../../global';
    import {
        getCatesian3FromPX,
        Cartesian3_to_WGS84,
    } from '../../../components/Map/libs/Point';
    } from '../../../../components/Map/libs/Point';
    export default {
        name: 'App',
@@ -66,7 +66,7 @@
                this.loaded = true;
                map.addModel({
                    link: 'http://model.szwutu.cn:8100/data1/namisoub3dm/tileset.json',
                    link: 'http://model.szwutu.cn:8100/data1/namiso-ub3dm/tileset.json',
                    name: '商业园区',
                    callback: tileset => {
                        var boundingSphere = tileset.boundingSphere;
src/views/doublePreventAction/riskLevelManage/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
    <router-view />
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/login/components/login-form.vue
@@ -1,43 +1,89 @@
<template>
    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" :inline="false" class="loginForm" @keydown.enter.native="handleSubmit">
        <div class="title-container">
            <h3 class="title">登录</h3>
    <div class="login-form">
        <div class="login-form-title"><span>登录</span></div>
        <div class="login-form-main">
            <el-form ref="loginForm" :model="loginForm" :rules="loginRules" :inline="false" class="loginForm" @keydown.enter.native="handleSubmit">
                <div class="login-form-main-user"><span>用户名</span></div>
                <div class="login-form-main-user_input">
                <el-form-item prop="username">
                    <el-input
                        v-model="loginForm.username"
                        placeholder="请输入用户名"
                        name="username"
                        type="text"
                        auto-complete="on"
                    />
                </el-form-item>
                </div>
                <div class="login-form-main-password"><span>密码</span></div>
                <div class="login-form-main-password_input">
                    <el-row>
                        <el-col :span="21">
                            <el-form-item prop="password">
                                <el-input
                                    v-model="loginForm.password"
                                    :type="loginPasswordType"
                                    placeholder="请输入密码"
                                    name="password"
                                    auto-complete="on"
                                    @keyup.enter.native="handleSubmit"
                                />
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <img src="../../../assets/icon_visible.png" style="margin:0 auto;padding-top: 9px;padding-left: 10px;" @click="showLoginPwd"></img>
                        </el-col>
                    </el-row>
                </div>
            </el-form>
        </div>
        <el-form-item prop="username">
      <span class="svg-container">
        <svg-icon icon-class="user" />
      </span>
            <el-input
                v-model="loginForm.username"
                placeholder="请输入用户名"
                name="username"
                type="text"
                auto-complete="on"
            />
        </el-form-item>
        <el-form-item prop="password">
      <span class="svg-container">
        <svg-icon icon-class="password" />
      </span>
            <el-input
                v-model="loginForm.password"
                :type="loginPasswordType"
                placeholder="请输入密码"
                name="password"
                auto-complete="on"
                @keyup.enter.native="handleSubmit"
            />
            <span class="show-pwd" @click="showLoginPwd">
        <svg-icon :icon-class="loginPasswordType === 'password' ? 'eye' : 'eye-open'" />
      </span>
        </el-form-item>
        <div style="text-align:center;">
            <el-button :loading="logingLoading" class="login-button" type="primary" @click.native.prevent="handleSubmit">
                登录
        <div class="login-form-button">
            <el-button class="login-form-login-button" :loading="logingLoading" :disabled="submitLoading" type="primary" @click.native.prevent="handleSubmit">
                  <span>
                      登录
                  </span>
            </el-button>
            <br>
        </div>
    </el-form>
    </div>
    <!--    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" :inline="false" class="loginForm" @keydown.enter.native="handleSubmit">-->
<!--        <div class="title-container">-->
<!--            <h3 class="title">登录</h3>-->
<!--        </div>-->
<!--        <el-form-item prop="username">-->
<!--      <span class="svg-container">-->
<!--        <svg-icon icon-class="user" />-->
<!--      </span>-->
<!--            <el-input-->
<!--                v-model="loginForm.username"-->
<!--                placeholder="请输入用户名"-->
<!--                name="username"-->
<!--                type="text"-->
<!--                auto-complete="on"-->
<!--            />-->
<!--        </el-form-item>-->
<!--        <el-form-item prop="password">-->
<!--      <span class="svg-container">-->
<!--        <svg-icon icon-class="password" />-->
<!--      </span>-->
<!--            <el-input-->
<!--                v-model="loginForm.password"-->
<!--                :type="loginPasswordType"-->
<!--                placeholder="请输入密码"-->
<!--                name="password"-->
<!--                auto-complete="on"-->
<!--                @keyup.enter.native="handleSubmit"-->
<!--            />-->
<!--            <span class="show-pwd" @click="showLoginPwd">-->
<!--        <svg-icon :icon-class="loginPasswordType === 'password' ? 'eye' : 'eye-open'" />-->
<!--      </span>-->
<!--        </el-form-item>-->
<!--        <div style="text-align:center;">-->
<!--            <el-button :loading="logingLoading" class="login-button" type="primary" @click.native.prevent="handleSubmit">-->
<!--                登录-->
<!--            </el-button>-->
<!--            <br>-->
<!--        </div>-->
<!--    </el-form>-->
</template>
<script>
    import Cookies from "js-cookie";
@@ -85,7 +131,6 @@
        },
        created(){
            this.test()
        },
        methods: {
            showLoginPwd() {
@@ -123,95 +168,72 @@
    }
</script>
<style rel="stylesheet/scss" lang="scss">
    $cursor: #fff;
    $bg:#2d3a4b;
    $dark_gray:#889aa4;
    $light_gray:#eee;
    .loginForm {
        .el-input {
            display: inline-block;
            height: 47px;
            width: 85%;
            input {
                background: transparent;
                background-color: #eee;
                border: 0px;
                -webkit-appearance: none;
                border-radius: 0px;
                padding: 12px 5px 12px 15px;
                color: #333333;
                height: 47px;
                caret-color:#333333;
                &:-webkit-autofill {
                    -webkit-box-shadow: 0 0 0px 1000px #cfd5da inset !important;
                    -webkit-text-fill-color: #fff !important;
                }
            }
        }
        .el-form-item {
            border: 1px solid rgba(255, 255, 255, 0.1);
            background: rgba(0, 0, 0, 0.1);
            border-radius: 5px;
            color: #454545;
        }
        .tips {
            font-size: 14px;
            color: #fff;
            margin-bottom: 10px;
            span {
                &:first-of-type {
                    margin-right: 16px;
                }
            }
        }
        .svg-container {
            padding: 6px 5px 6px 15px;
            color: $dark_gray;
            vertical-align: middle;
            width: 30px;
            display: inline-block;
        }
        .title-container {
            position: relative;
            .title {
                font-size: 26px;
                color: #333333;
                margin: 0px auto 40px auto;
                text-align: center;
                font-weight: bold;
            }
            .set-language {
                color: #fff;
                position: absolute;
                top: 3px;
                font-size:18px;
                right: 0px;
                cursor: pointer;
            }
        }
        .show-pwd {
            position: absolute;
            right: 10px;
            top: 7px;
            font-size: 16px;
            color: $dark_gray;
            cursor: pointer;
            user-select: none;
        }
        .thirdparty-button {
            position: absolute;
            right: 0;
            bottom: 6px;
        }
        .login-button {
            height:36px;
            margin-bottom:30px;
            margin-top:10px;
            width:100px;
            border-radius:25px;
            background-color: #034EA2;
        }
<style scoped>
    .login-form{
        min-height: 100%;
        width:100%;
    }
    .login-form-main{
        margin-left:50px;
    }
    .login-form-title{
        width: 60px;
        height: 143px;
        font-size: 30px;
        font-family: PingFangSC-Medium, PingFang SC;
        font-weight: 600;
        color: #1851DC;
        line-height: 42px;
        padding-top: 53px;
        margin:0 auto;
    }
    .login-form-main-user{
        height: 20px;
        font-size: 16px;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 500;
        color: #333333;
        line-height: 20px;
    }
    .login-form-main-password{
        height: 20px;
        font-size: 16px;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 500;
        color: #333333;
        line-height: 20px;
        margin-top: 24px;
    }
    /deep/.el-input__inner{
        height: 40px;
        border:0px;
        background: #F0F0F0;
    }
    .login-form-main-user_input{
        margin-top: 8px;
        width: 364px;
        height: 40px;
        background: #FFFFFF !important;
        border-radius: 4px;
        border: 0px solid;
    }
    .login-form-main-password_input{
        margin-top: 8px;
        width: 364px;
        height: 40px;
        background: #F0F0F0;
        border-radius: 4px;
        border: 0px solid;
    }
    .login-form-button{
        width:100%;
        text-align: center;
        padding-top: 40px;
    }
    .login-form-login-button {
        width: 364px;
        height: 48px;
        background: #4778FF;
        border-radius: 4px;
    }
</style>
src/views/login/index.vue
@@ -1,41 +1,36 @@
<template>
    <div :class="logincontainer">
        <div v-title :data-title="titleName" class="main"/>
        <el-row>
            <el-col :xs="24" :sm="24" :lg="12">
                <div class="login-logo">
                    <div>
                        <i class="el-icon-logo" />
                    </div>
                </div>
                <div class="login-font">
                    <div v-if="isSafe">
            <span>
              {{ safeLoginTitle }}
            </span>
                    </div>
                    <div v-else>
            <span>
              特殊作业综合监管平台
            </span>
                    </div>
                </div>
            </el-col>
            <el-col :xs="24" :sm="24" :lg="12">
                <div class="left-container">
                    <div v-if="action==='login'" class="login-component">
                        <login-form
                            @on-success-valid="handleLogin"
                        />
                    </div>
                </div>
            </el-col>
        </el-row>
        <el-col :xs="24" :sm="24" :lg="12">
            <div class="bottom-container">
                <span>Copyright©2017 中国科学院苏州纳米技术与纳米仿生研究所 苏ICP备10220403号-6</span>
    <div class="login-container">
        <div class="title-one">
            <span>拜城县众泰煤焦化有限公司</span>
        </div>
        <div class="title-two">
            <span>智能化安全管理技术平台</span>
        </div>
        <div class="login-main">
            <div class="login-main-pic"></div>
            <div class="login-main-form">
                <login-form
                    @on-success-valid="handleLogin"
                />
            </div>
        </el-col>
        </div>
        <div class="bottom-container">
            <span style="text-align: center">Copyright©2022 新疆阿克苏拜城众泰煤焦化有限公司 版权所有</span>
        </div>
<!--        <el-row>-->
<!--            <el-col :xs="24" :sm="24" :lg="12">-->
<!--                <div class="left-container">-->
<!--                    <div v-if="action==='login'" class="login-component">-->
<!--                    </div>-->
<!--                </div>-->
<!--            </el-col>-->
<!--        </el-row>-->
<!--        <el-col :xs="24" :sm="24" :lg="12">-->
<!--            <div class="bottom-container">-->
<!--                <span>Copyright©2017 中国科学院苏州纳米技术与纳米仿生研究所 苏ICP备10220403号-6</span>-->
<!--            </div>-->
<!--        </el-col>-->
    </div>
</template>
@@ -138,7 +133,7 @@
                            _this.$store.commit('SET_USER_TYPE', data.type)
                            // 加载菜单
                            initRouter(_this)
                            _this.$router.replace('/mapManage/mapManage/map/index')
                            _this.$router.replace('/')
                        } else {
                            _this.$message({
                                showClose: true,
@@ -172,100 +167,63 @@
    .login-container {
        min-height: 100%;
        width: 100%;
        background: url("../../assets/bg_pic.png") center no-repeat;
        background: url("../../assets/bg_login.png") center no-repeat;
        //background-size: auto 100%;
        background-size: cover;
        background-position: center;
        position: relative;
        background-color: #fff;
        // background-color: #2d3a4b;
        overflow: hidden;
        .login-logo {
            position: relative;
            color: #fff;
            text-align: center;
            padding: 0 35px 0 35px;
            margin: 0 auto;
            margin-top: 25%;
            margin-left: -100px;
        }
        .login-font {
            position: relative;
            text-align: center;
            margin-left: -10%;
            margin-top: -20%;
        }
        .login-font span {
            display: inline-block;
            width: 500px;
            height: 72px;
            font-size: 45px;
            font-family: PingFangSC-Semibold;
        background-size:cover;
        .title-one{
            width: 360px;
            height: 42px;
            font-size: 30px;
            font-family: PingFangSC-Semibold, PingFang SC;
            font-weight: 600;
            color: white;
            line-height: 60px;
            vertical-align: middle;
            margin-top:50px;
            //padding: 20px 0; /* 撑开高度 */
        }
        .login-logo span {
            display: inline-block;
            width: 500px;
            height: 72px;
            font-size: 45px;
            font-family: PingFangSC-Semibold;
            font-weight: 600;
            color: rgba(51, 51, 51, 1);
            line-height: 60px;
            vertical-align: middle;
            margin-top: 50px;
            //padding: 20px 0; /* 撑开高度 */
        }
        //使用图片来替换
        //before属性中的content文本是用来占位的,必须有
        //可以设置字体大小来确定大小
        //使用visibility: hidden;来隐藏文字
        .el-icon-logo {
            /*background: url("../../assets/logo.png") center no-repeat;*/
            background-size: cover;
            height: 10px;
            width: 128px;
            color: #fff;
            vertical-align: middle;
        }
        .el-icon-logo:before {
            content: "替";
            font-size: 25px;
            visibility: hidden;
        }
        .left-container {
            color: #FFFFFF;
            line-height: 42px;
            text-shadow: 0px 8px 10px rgba(16, 57, 193, 0.3);
            margin: 0 auto;
            margin-top: 8%;
            .login-component {
                background-color: white;
                position: relative;
                width: 600px;
                max-width: 100%;
                padding: 40px 35px 0 30px;
                margin: 0 auto;
                margin-top: 25%;
                overflow: hidden;
            margin-top: 120px;
        }
        .title-two{
            width: 473px;
            height: 61px;
            font-size: 43px;
            font-family: PingFangSC-Semibold, PingFang SC;
            font-weight: 600;
            color: #FFFFFF;
            line-height: 61px;
            text-shadow: 0px 8px 10px rgba(16, 57, 193, 0.3);
            margin: 0 auto;
            margin-top: 5px;
        }
        .login-main{
            display: flex;
            background: linear-gradient(270deg, #FFFFFF 0%, #FFFFFF 100%);
            box-shadow: 0px 20px 40px 0px rgba(34, 0, 255, 0.7);
            width:1036px;
            min-height: 474px;
            margin:0 auto;
            margin-top: 60px;
            .login-main-pic{
                display: inline-block;
                height: 474px;
                width: 572px;
                background: url("../../assets/img_bg_login.png") center no-repeat;
            }
            .register-component {
                position: relative;
                width: 600px;
                max-width: 100%;
                padding: 40px 35px 0 35px;
                margin: 0 auto;
                overflow: hidden;
                background-color: #fff;
            .login-main-form{
                display: inline-block;
                height:100%;
                width:464px;
            }
        }
        .bottom-container{
            position: absolute;
            bottom: 0;
            left: 30%;
            width:600px;
            height: 42px;
            font-family: PingFangSC-Semibold, PingFang SC;
            line-height: 42px;
            text-shadow: 0px 8px 10px rgba(16, 57, 193, 0.3);
            margin: 0 auto;
            margin-top: 150px;
        }
    }