Compare commits
	
		
			No commits in common. "dev" and "main" have entirely different histories. 
		
	
	
		
							
								
								
									
										3
									
								
								.env
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
VITE_BASE_URL=http://192.168.0.17:8001/
 | 
			
		||||
VITE_PROXY=/api
 | 
			
		||||
VITE_FILE_URL=https://file.zcloudchina.com/YTHFile
 | 
			
		||||
VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +0,0 @@
 | 
			
		|||
VITE_BASE_URL=http://192.168.0.16:7082/
 | 
			
		||||
VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.20.240:8869
 | 
			
		||||
VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.20.240:8899
 | 
			
		||||
| 
						 | 
				
			
			@ -1,16 +0,0 @@
 | 
			
		|||
#测试
 | 
			
		||||
VITE_BASE_URL=http://192.168.20.240:8412/integrated_traffic/
 | 
			
		||||
#websocket t掉线
 | 
			
		||||
VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.20.240:8869
 | 
			
		||||
#websocket 在线学习
 | 
			
		||||
VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.20.240:8899
 | 
			
		||||
 | 
			
		||||
##正式
 | 
			
		||||
#VITE_BASE_URL=http://39.101.166.211:8073/integrated_traffic/
 | 
			
		||||
##websocket t掉线
 | 
			
		||||
#VITE_ON_LINE_WEB_SOCKET_URL=ws://39.101.166.211:8869
 | 
			
		||||
## VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaqjt.qhdsafety.com/disconnected/
 | 
			
		||||
##websocket 在线学习
 | 
			
		||||
#VITE_LEARNING_WEB_SOCKET_URL=ws://39.101.166.211:8899
 | 
			
		||||
## VITE_LEARNING_WEB_SOCKET_URL=wss://qaaqjt.qhdsafety.com/onlinelearning/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2,4 +2,3 @@ public
 | 
			
		|||
dist
 | 
			
		||||
package.json
 | 
			
		||||
!.prettierrc.cjs
 | 
			
		||||
env.d.ts
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ module.exports = {
 | 
			
		|||
    node: true
 | 
			
		||||
  },
 | 
			
		||||
  extends: [
 | 
			
		||||
    "plugin:vue/vue3-recommended",
 | 
			
		||||
    "plugin:vue/vue3-essential",
 | 
			
		||||
    "standard",
 | 
			
		||||
    "@vue/prettier",
 | 
			
		||||
    "eslint:recommended"
 | 
			
		||||
| 
						 | 
				
			
			@ -18,23 +18,9 @@ module.exports = {
 | 
			
		|||
  rules: {
 | 
			
		||||
    "no-console": "warn",
 | 
			
		||||
    "vue/multi-word-component-names": "off",
 | 
			
		||||
    "vue/no-v-html": "off",
 | 
			
		||||
    "vue/require-default-prop": "off",
 | 
			
		||||
    "camelcase": "off",
 | 
			
		||||
    "eqeqeq": "error",
 | 
			
		||||
    "vue/no-template-shadow": "error",
 | 
			
		||||
    "vue/attribute-hyphenation": "error",
 | 
			
		||||
    "vue/html-end-tags": "error",
 | 
			
		||||
    camelcase: "off",
 | 
			
		||||
    eqeqeq: "error",
 | 
			
		||||
    "vue/eqeqeq": "error",
 | 
			
		||||
    "vue/component-name-in-template-casing": ["error", "kebab-case"],
 | 
			
		||||
    "vue/enforce-style-attribute": [
 | 
			
		||||
      "error",
 | 
			
		||||
      { "allow": ["scoped", "module"] }
 | 
			
		||||
    ],
 | 
			
		||||
    "vue/v-on-event-hyphenation": ["error", "always",{
 | 
			
		||||
      "autofix": true,
 | 
			
		||||
    }],
 | 
			
		||||
    "vue/require-explicit-emits": "error",
 | 
			
		||||
    "no-unused-vars": [
 | 
			
		||||
      "error",
 | 
			
		||||
      { vars: "all", args: "after-used", ignoreRestSiblings: false }
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +30,5 @@ module.exports = {
 | 
			
		|||
  globals: {
 | 
			
		||||
    BMapGL: "readonly",
 | 
			
		||||
    JSEncrypt: "readonly",
 | 
			
		||||
    Aliplayer: "readonly",
 | 
			
		||||
    AliyunUpload: "readonly",
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,27 +0,0 @@
 | 
			
		|||
interface ImportMetaEnv {
 | 
			
		||||
  // Auto generate by env-parse
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_PROXY: string
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_FILE_URL: string
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_TEMPLATE_URL: string
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_BASE_URL: string
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_ON_LINE_WEB_SOCKET_URL: string
 | 
			
		||||
  /**
 | 
			
		||||
   * undefined
 | 
			
		||||
   */
 | 
			
		||||
  readonly VITE_LEARNING_WEB_SOCKET_URL: string
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								index.html
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -2,10 +2,9 @@
 | 
			
		|||
<html lang="en">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="UTF-8" />
 | 
			
		||||
    <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
 | 
			
		||||
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
 | 
			
		||||
    <title>交通运输安全生产综合管理系统</title>
 | 
			
		||||
 | 
			
		||||
    <title>管理平台</title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <div id="app"></div>
 | 
			
		||||
| 
						 | 
				
			
			@ -16,10 +15,5 @@
 | 
			
		|||
            src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=OElqFYoKiAH8KFtph8ftLKF5NlNrbCUr"></script>
 | 
			
		||||
    <script type="text/javascript" src="/jsencrypt.min.js"></script>
 | 
			
		||||
    <script type="module" src="/src/main.js"></script>
 | 
			
		||||
    <link rel="stylesheet" href="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/skins/default/aliplayer-min.css" />
 | 
			
		||||
    <script charset="utf-8" type="text/javascript" src="https://g.alicdn.com/apsara-media-box/imp-web-player/2.16.3/aliplayer-min.js"></script>
 | 
			
		||||
    <script src="/aliyun-upload-sdk-1.5.6/lib/es6-promise.min.js"></script>
 | 
			
		||||
    <script src="/aliyun-upload-sdk-1.5.6/lib/aliyun-oss-sdk-6.17.1.min.js"></script>
 | 
			
		||||
    <script src="/aliyun-upload-sdk-1.5.6/aliyun-upload-sdk-1.5.6.min.js"></script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,289 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <canvas ref="canvas" @mousedown="mouseDown" @mousemove="mouseMove" @mouseup="mouseUp"
 | 
			
		||||
  @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd"></canvas>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    width: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 800
 | 
			
		||||
    },
 | 
			
		||||
    height: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 300
 | 
			
		||||
    },
 | 
			
		||||
    lineWidth: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 4
 | 
			
		||||
    },
 | 
			
		||||
    lineColor: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: '#000000'
 | 
			
		||||
    },
 | 
			
		||||
    bgColor: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: ''
 | 
			
		||||
    },
 | 
			
		||||
    isCrop: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false
 | 
			
		||||
    },
 | 
			
		||||
    isClearBgColor: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true
 | 
			
		||||
    },
 | 
			
		||||
    format: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: 'image/png'
 | 
			
		||||
    },
 | 
			
		||||
    quality: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 1
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  data () {
 | 
			
		||||
    return {
 | 
			
		||||
      hasDrew: false,
 | 
			
		||||
      resultImg: '',
 | 
			
		||||
      points: [],
 | 
			
		||||
      canvasTxt: null,
 | 
			
		||||
      startX: 0,
 | 
			
		||||
      startY: 0,
 | 
			
		||||
      isDrawing: false,
 | 
			
		||||
      sratio: 1
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    ratio () {
 | 
			
		||||
      return this.height / this.width
 | 
			
		||||
    },
 | 
			
		||||
    stageInfo () {
 | 
			
		||||
      return this.$refs.canvas.getBoundingClientRect()
 | 
			
		||||
    },
 | 
			
		||||
    myBg () {
 | 
			
		||||
      return this.bgColor ? this.bgColor : 'rgba(255, 255, 255, 0)'
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
    'myBg': function (newVal) {
 | 
			
		||||
      this.$refs.canvas.style.background = newVal
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  beforeMount () {
 | 
			
		||||
    window.addEventListener('resize', this.$_resizeHandler)
 | 
			
		||||
  },
 | 
			
		||||
  beforeDestroy () {
 | 
			
		||||
    window.removeEventListener('resize', this.$_resizeHandler)
 | 
			
		||||
  },
 | 
			
		||||
  mounted () {
 | 
			
		||||
    const canvas = this.$refs.canvas
 | 
			
		||||
    canvas.height = this.height
 | 
			
		||||
    canvas.width = this.width
 | 
			
		||||
    canvas.style.background = this.myBg
 | 
			
		||||
    this.$_resizeHandler()
 | 
			
		||||
    // 在画板以外松开鼠标后冻结画笔
 | 
			
		||||
    document.onmouseup = () => {
 | 
			
		||||
      this.isDrawing = false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    $_resizeHandler () {
 | 
			
		||||
      const canvas = this.$refs.canvas
 | 
			
		||||
      canvas.style.width = this.width + "px"
 | 
			
		||||
      const realw = parseFloat(window.getComputedStyle(canvas).width)
 | 
			
		||||
      canvas.style.height = this.ratio * realw + "px";
 | 
			
		||||
      this.canvasTxt = canvas.getContext('2d')
 | 
			
		||||
      this.canvasTxt.scale(1 * this.sratio, 1 * this.sratio)
 | 
			
		||||
      this.sratio = realw / this.width
 | 
			
		||||
      this.canvasTxt.scale(1 / this.sratio, 1 / this.sratio)
 | 
			
		||||
    },
 | 
			
		||||
    // pc
 | 
			
		||||
    mouseDown (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      this.isDrawing = true
 | 
			
		||||
      this.hasDrew = true
 | 
			
		||||
      let obj = {
 | 
			
		||||
        x: e.offsetX,
 | 
			
		||||
        y: e.offsetY
 | 
			
		||||
      }
 | 
			
		||||
      this.drawStart(obj)
 | 
			
		||||
    },
 | 
			
		||||
    mouseMove (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      if (this.isDrawing) {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          x: e.offsetX,
 | 
			
		||||
          y: e.offsetY
 | 
			
		||||
        }
 | 
			
		||||
        this.drawMove(obj)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    mouseUp (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      let obj = {
 | 
			
		||||
        x: e.offsetX,
 | 
			
		||||
        y: e.offsetY
 | 
			
		||||
      }
 | 
			
		||||
      this.drawEnd(obj)
 | 
			
		||||
      this.isDrawing = false
 | 
			
		||||
    },
 | 
			
		||||
    // mobile
 | 
			
		||||
    touchStart (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      this.hasDrew = true
 | 
			
		||||
      if (e.touches.length === 1) {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          x: e.targetTouches[0].clientX - this.$refs.canvas.getBoundingClientRect().left,
 | 
			
		||||
          y: e.targetTouches[0].clientY - this.$refs.canvas.getBoundingClientRect().top
 | 
			
		||||
        }
 | 
			
		||||
        this.drawStart(obj)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    touchMove (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      if (e.touches.length === 1) {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          x: e.targetTouches[0].clientX - this.$refs.canvas.getBoundingClientRect().left,
 | 
			
		||||
          y: e.targetTouches[0].clientY - this.$refs.canvas.getBoundingClientRect().top
 | 
			
		||||
        }
 | 
			
		||||
        this.drawMove(obj)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    touchEnd (e) {
 | 
			
		||||
      e = e || event
 | 
			
		||||
      e.preventDefault()
 | 
			
		||||
      if (e.touches.length === 1) {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          x: e.targetTouches[0].clientX - this.$refs.canvas.getBoundingClientRect().left,
 | 
			
		||||
          y: e.targetTouches[0].clientY - this.$refs.canvas.getBoundingClientRect().top
 | 
			
		||||
        }
 | 
			
		||||
        this.drawEnd(obj)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    // 绘制
 | 
			
		||||
    drawStart (obj) {
 | 
			
		||||
      this.startX = obj.x
 | 
			
		||||
      this.startY = obj.y
 | 
			
		||||
      this.canvasTxt.beginPath()
 | 
			
		||||
      this.canvasTxt.moveTo(this.startX, this.startY)
 | 
			
		||||
      this.canvasTxt.lineTo(obj.x, obj.y)
 | 
			
		||||
      this.canvasTxt.lineCap = 'round'
 | 
			
		||||
      this.canvasTxt.lineJoin = 'round'
 | 
			
		||||
      this.canvasTxt.lineWidth = this.lineWidth * this.sratio
 | 
			
		||||
      this.canvasTxt.stroke()
 | 
			
		||||
      this.canvasTxt.closePath()
 | 
			
		||||
      this.points.push(obj)
 | 
			
		||||
    },
 | 
			
		||||
    drawMove (obj) {
 | 
			
		||||
      this.canvasTxt.beginPath()
 | 
			
		||||
      this.canvasTxt.moveTo(this.startX, this.startY)
 | 
			
		||||
      this.canvasTxt.lineTo(obj.x, obj.y)
 | 
			
		||||
      this.canvasTxt.strokeStyle = this.lineColor
 | 
			
		||||
      this.canvasTxt.lineWidth = this.lineWidth * this.sratio
 | 
			
		||||
      this.canvasTxt.lineCap = 'round'
 | 
			
		||||
      this.canvasTxt.lineJoin = 'round'
 | 
			
		||||
      this.canvasTxt.stroke()
 | 
			
		||||
      this.canvasTxt.closePath()
 | 
			
		||||
      this.startY = obj.y
 | 
			
		||||
      this.startX = obj.x
 | 
			
		||||
      this.points.push(obj)
 | 
			
		||||
    },
 | 
			
		||||
    drawEnd (obj) {
 | 
			
		||||
      this.canvasTxt.beginPath()
 | 
			
		||||
      this.canvasTxt.moveTo(this.startX, this.startY)
 | 
			
		||||
      this.canvasTxt.lineTo(obj.x, obj.y)
 | 
			
		||||
      this.canvasTxt.lineCap = 'round'
 | 
			
		||||
      this.canvasTxt.lineJoin = 'round'
 | 
			
		||||
      this.canvasTxt.stroke()
 | 
			
		||||
      this.canvasTxt.closePath()
 | 
			
		||||
      this.points.push(obj)
 | 
			
		||||
      this.points.push({x: -1, y: -1})
 | 
			
		||||
    },
 | 
			
		||||
    // 操作
 | 
			
		||||
    generate (options) {
 | 
			
		||||
      let imgFormat = options && options.format ? options.format: this.format
 | 
			
		||||
      let imgQuality = options && options.quality ? options.quality: this.quality
 | 
			
		||||
      const pm =  new Promise((resolve, reject) => {
 | 
			
		||||
        if (!this.hasDrew) {
 | 
			
		||||
          reject(`Warning: Not Signned!`)
 | 
			
		||||
          return
 | 
			
		||||
        }
 | 
			
		||||
        var resImgData = this.canvasTxt.getImageData(0, 0, this.$refs.canvas.width, this.$refs.canvas.height)
 | 
			
		||||
        this.canvasTxt.globalCompositeOperation = "destination-over"
 | 
			
		||||
        this.canvasTxt.fillStyle = this.myBg
 | 
			
		||||
        this.canvasTxt.fillRect(0,0,this.$refs.canvas.width ,this.$refs.canvas.height)
 | 
			
		||||
        this.resultImg = this.$refs.canvas.toDataURL(imgFormat, imgQuality)
 | 
			
		||||
        var resultImg = this.resultImg
 | 
			
		||||
        this.canvasTxt.clearRect(0, 0, this.$refs.canvas.width ,this.$refs.canvas.height)
 | 
			
		||||
        this.canvasTxt.putImageData(resImgData, 0, 0)
 | 
			
		||||
        this.canvasTxt.globalCompositeOperation = "source-over"
 | 
			
		||||
        if (this.isCrop) {
 | 
			
		||||
          const crop_area = this.getCropArea(resImgData.data)
 | 
			
		||||
          var crop_canvas = document.createElement('canvas')
 | 
			
		||||
          const crop_ctx = crop_canvas.getContext('2d')
 | 
			
		||||
          crop_canvas.width = crop_area[2] - crop_area[0]
 | 
			
		||||
          crop_canvas.height = crop_area[3] - crop_area[1]
 | 
			
		||||
          const crop_imgData = this.canvasTxt.getImageData(...crop_area)
 | 
			
		||||
          crop_ctx.globalCompositeOperation = "destination-over"
 | 
			
		||||
          crop_ctx.putImageData(crop_imgData, 0, 0)
 | 
			
		||||
          crop_ctx.fillStyle = this.myBg
 | 
			
		||||
          crop_ctx.fillRect(0, 0, crop_canvas.width , crop_canvas.height)
 | 
			
		||||
          resultImg = crop_canvas.toDataURL(imgFormat, imgQuality)
 | 
			
		||||
          crop_canvas = null
 | 
			
		||||
        }
 | 
			
		||||
        resolve(resultImg)
 | 
			
		||||
      })
 | 
			
		||||
      return pm
 | 
			
		||||
    },
 | 
			
		||||
    reset () {
 | 
			
		||||
      this.canvasTxt.clearRect(
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        this.$refs.canvas.width,
 | 
			
		||||
        this.$refs.canvas.height
 | 
			
		||||
      )
 | 
			
		||||
      if (this.isClearBgColor) {
 | 
			
		||||
        this.$emit('update:bgColor', '')
 | 
			
		||||
        this.$refs.canvas.style.background = 'rgba(255, 255, 255, 0)'
 | 
			
		||||
      }
 | 
			
		||||
      this.points = []
 | 
			
		||||
      this.hasDrew = false
 | 
			
		||||
      this.resultImg = ''
 | 
			
		||||
    },
 | 
			
		||||
    getCropArea (imgData) {
 | 
			
		||||
      var topX = this.$refs.canvas.width; var btmX = 0; var topY = this.$refs.canvas.height; var btnY = 0
 | 
			
		||||
      for (var i = 0; i < this.$refs.canvas.width; i++) {
 | 
			
		||||
        for (var j = 0; j < this.$refs.canvas.height; j++) {
 | 
			
		||||
          var pos = (i + this.$refs.canvas.width * j) * 4
 | 
			
		||||
          if (imgData[pos] > 0 || imgData[pos + 1] > 0 || imgData[pos + 2] || imgData[pos + 3] > 0) {
 | 
			
		||||
            btnY = Math.max(j, btnY)
 | 
			
		||||
            btmX = Math.max(i, btmX)
 | 
			
		||||
            topY = Math.min(j, topY)
 | 
			
		||||
            topX = Math.min(i, topX)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      topX++
 | 
			
		||||
      btmX++
 | 
			
		||||
      topY++
 | 
			
		||||
      btnY++
 | 
			
		||||
      const data = [topX, topY, btmX, btnY]
 | 
			
		||||
      return data
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
canvas {
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  display: block;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										48
									
								
								package.json
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -10,69 +10,51 @@
 | 
			
		|||
    "lint": "eslint --ext .js,.vue --fix src .prettierrc.cjs"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@element-plus/icons-vue": "^2.3.1",
 | 
			
		||||
    "@element-plus/icons-vue": "^2.1.0",
 | 
			
		||||
    "@icon-park/vue-next": "^1.4.2",
 | 
			
		||||
    "@vueuse/core": "^9.13.0",
 | 
			
		||||
    "@vueuse/integrations": "^10.7.1",
 | 
			
		||||
    "@wangeditor/editor": "^5.1.23",
 | 
			
		||||
    "@wangeditor/editor-for-vue": "^5.1.12",
 | 
			
		||||
    "@vueuse/integrations": "^10.7.0",
 | 
			
		||||
    "animate.css": "^4.1.1",
 | 
			
		||||
    "autofit.js": "^3.0.7",
 | 
			
		||||
    "axios": "^1.6.3",
 | 
			
		||||
    "dayjs": "^1.11.10",
 | 
			
		||||
    "echarts": "^5.4.3",
 | 
			
		||||
    "element-plus": "^2.6.1",
 | 
			
		||||
    "html2canvas": "^1.4.1",
 | 
			
		||||
    "jspdf": "^2.5.1",
 | 
			
		||||
    "element-plus": "^2.4.4",
 | 
			
		||||
    "lodash-es": "^4.17.21",
 | 
			
		||||
    "mitt": "^3.0.1",
 | 
			
		||||
    "nanoid": "^5.0.4",
 | 
			
		||||
    "normalize.css": "^8.0.1",
 | 
			
		||||
    "pako": "^2.1.0",
 | 
			
		||||
    "pinia": "^2.1.7",
 | 
			
		||||
    "pinia-plugin-persistedstate": "^3.2.1",
 | 
			
		||||
    "pinia-plugin-persistedstate": "^3.2.0",
 | 
			
		||||
    "qrcode": "^1.5.3",
 | 
			
		||||
    "qs": "^6.11.2",
 | 
			
		||||
    "relation-graph": "^2.1.24",
 | 
			
		||||
    "throttle-debounce": "^5.0.0",
 | 
			
		||||
    "v-viewer": "^3.0.11",
 | 
			
		||||
    "vant": "^4.8.4",
 | 
			
		||||
    "viewerjs": "^1.11.6",
 | 
			
		||||
    "vue": "^3.4.3",
 | 
			
		||||
    "vue-countup-v3": "^1.4.1",
 | 
			
		||||
    "vue-draggable-plus": "^0.3.4",
 | 
			
		||||
    "vue-esign": "^1.1.4",
 | 
			
		||||
    "vue": "^3.3.13",
 | 
			
		||||
    "vue-router": "^4.2.5",
 | 
			
		||||
    "vue3-pdfjs": "^0.1.6",
 | 
			
		||||
    "vue3-print-nb": "^0.1.4",
 | 
			
		||||
    "vue3-puzzle-vcode": "^1.1.5",
 | 
			
		||||
    "vue3-seamless-scroll": "^2.0.1",
 | 
			
		||||
    "xlsx": "^0.18.5"
 | 
			
		||||
    "vue3-puzzle-vcode": "^1.0.16"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@our-patches/postcss-px-to-viewport": "^1.2.0",
 | 
			
		||||
    "@types/node": "^18.19.4",
 | 
			
		||||
    "@vitejs/plugin-basic-ssl": "^1.0.2",
 | 
			
		||||
    "@vitejs/plugin-vue": "^4.6.2",
 | 
			
		||||
    "@types/node": "^18.18.4",
 | 
			
		||||
    "@vitejs/plugin-basic-ssl": "^1.0.1",
 | 
			
		||||
    "@vitejs/plugin-vue": "^4.4.0",
 | 
			
		||||
    "@vue/eslint-config-prettier": "^7.1.0",
 | 
			
		||||
    "autoprefixer": "^10.4.16",
 | 
			
		||||
    "eslint": "^8.56.0",
 | 
			
		||||
    "eslint": "^8.51.0",
 | 
			
		||||
    "eslint-config-prettier": "^8.10.0",
 | 
			
		||||
    "eslint-config-standard": "^17.1.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.29.1",
 | 
			
		||||
    "eslint-plugin-import": "^2.28.1",
 | 
			
		||||
    "eslint-plugin-n": "^15.7.0",
 | 
			
		||||
    "eslint-plugin-prettier": "^4.2.1",
 | 
			
		||||
    "eslint-plugin-promise": "^6.1.1",
 | 
			
		||||
    "eslint-plugin-vue": "^9.19.2",
 | 
			
		||||
    "eslint-plugin-vue": "^9.17.0",
 | 
			
		||||
    "prettier": "^2.8.8",
 | 
			
		||||
    "sass": "^1.69.0",
 | 
			
		||||
    "unplugin-auto-import": "^0.12.2",
 | 
			
		||||
    "unplugin-vue-components": "^0.22.12",
 | 
			
		||||
    "vite": "^4.5.1",
 | 
			
		||||
    "vite": "^4.4.11",
 | 
			
		||||
    "vite-plugin-enhance-log": "^0.5.2",
 | 
			
		||||
    "vite-plugin-env-parse": "^1.0.10",
 | 
			
		||||
    "vite-plugin-eslint": "^1.8.1",
 | 
			
		||||
    "vite-plugin-remove-console": "^2.2.0",
 | 
			
		||||
    "vue-eslint-parser": "^9.3.2"
 | 
			
		||||
    "vite-plugin-remove-console": "^2.1.1",
 | 
			
		||||
    "vue-eslint-parser": "^9.3.1"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 Before Width: | Height: | Size: 17 KiB  | 
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
						 | 
				
			
			@ -15,4 +15,4 @@
 | 
			
		|||
import zhCn from "element-plus/dist/locale/zh-cn.mjs";
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
<style lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,13 +6,11 @@ import { cloneDeep } from "lodash-es";
 | 
			
		|||
import pinia from "./pinia";
 | 
			
		||||
import children from "@/components/children/index";
 | 
			
		||||
import { MODEL } from "@/assets/js/constant";
 | 
			
		||||
// import asyncRouter from "@/assets/js/asyncRouter";
 | 
			
		||||
import asyncRouter from "@/assets/js/asyncRouter";
 | 
			
		||||
import { getAsyncRouter } from "@/request/api";
 | 
			
		||||
// import { getRouteTreeAll } from "@/request/system_management.js";
 | 
			
		||||
 | 
			
		||||
const modules = import.meta.glob([
 | 
			
		||||
  "./views/**/*.vue",
 | 
			
		||||
  "!./views/**/components/*.vue",
 | 
			
		||||
]); // 获取到views下所有的vue文件
 | 
			
		||||
const modules = import.meta.glob("./views/**/*.vue"); // 获取到views下所有的vue文件
 | 
			
		||||
let storageRouter = null; // 用来获取后台拿到的路由
 | 
			
		||||
 | 
			
		||||
router.beforeEach(async (to, from, next) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -29,9 +27,10 @@ router.beforeEach(async (to, from, next) => {
 | 
			
		|||
      // 变量里没有储存路由
 | 
			
		||||
      // pinia里没有储存路由,去后台获取路由
 | 
			
		||||
      if (routerStore.getRouters.length === 0) {
 | 
			
		||||
        const resData = await getAsyncRouter();
 | 
			
		||||
        storageRouter = resData.routeList; // 后台请求得到的路由数据
 | 
			
		||||
        // storageRouter = asyncRouter; // 死路由
 | 
			
		||||
        await getAsyncRouter();
 | 
			
		||||
        // const resData = await getRouteTreeAll();
 | 
			
		||||
        // storageRouter = resData.menuList; // 后台请求得到的路由数据
 | 
			
		||||
        storageRouter = asyncRouter; // 死路由
 | 
			
		||||
        routerStore.setRouters(storageRouter); // 存储路由
 | 
			
		||||
        routerGo(to, next); // 执行路由跳转方法
 | 
			
		||||
      } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +73,6 @@ function routerGo(to, next) {
 | 
			
		|||
function filterAsyncRouter(asyncRouterMap) {
 | 
			
		||||
  // 遍历后台传来的路由字符串,转换为组件对象
 | 
			
		||||
  return asyncRouterMap.filter((route) => {
 | 
			
		||||
    route.meta = JSON.parse(route.meta);
 | 
			
		||||
    if (route.component) {
 | 
			
		||||
      if (route.component === "children") {
 | 
			
		||||
        route.component = children;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,6 +115,7 @@
 | 
			
		|||
 | 
			
		||||
* {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
 | 
			
		||||
  &:not(dd,dl,dt) {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -126,10 +127,11 @@ h1, h2, h3, h4, h5, h6 {
 | 
			
		|||
  font-size: revert;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layout-container {
 | 
			
		||||
  background-color: #051a55;
 | 
			
		||||
#app {
 | 
			
		||||
  background-color: #030f2f;
 | 
			
		||||
  min-height: 100vh;
 | 
			
		||||
 | 
			
		||||
  background-image: url("/src/assets/images/public/bg.jpg");
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a {
 | 
			
		||||
| 
						 | 
				
			
			@ -159,14 +161,6 @@ a {
 | 
			
		|||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mb {
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mt {
 | 
			
		||||
  margin-top: 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-blue {
 | 
			
		||||
  color: #3b3bff;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -191,38 +185,6 @@ a {
 | 
			
		|||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@mixin table($tdTextAlign,$titleTextAlign) {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  display: table;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
 | 
			
		||||
  tr {
 | 
			
		||||
    page-break-inside: avoid;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  td, th {
 | 
			
		||||
    border: 1px solid var(--el-border-color);
 | 
			
		||||
    padding: 8px;
 | 
			
		||||
    line-height: 1.6;
 | 
			
		||||
    text-align: $tdTextAlign;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .title {
 | 
			
		||||
    background: var(--el-fill-color-light);
 | 
			
		||||
    width: 200px;
 | 
			
		||||
    text-align: $titleTextAlign;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.print_table {
 | 
			
		||||
  @include table(center,left);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.archive_print_table {
 | 
			
		||||
  @include table(left,center);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
img.ml-10:first-child {
 | 
			
		||||
  margin-left: 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -237,7 +199,6 @@ input:-webkit-autofill:active {
 | 
			
		|||
 | 
			
		||||
div::-webkit-scrollbar {
 | 
			
		||||
  width: 4px;
 | 
			
		||||
  height: 4px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div::-webkit-scrollbar-thumb {
 | 
			
		||||
| 
						 | 
				
			
			@ -295,6 +256,14 @@ div::-webkit-scrollbar-track {
 | 
			
		|||
  border-bottom: 1px dashed var(--el-border-color-darker);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.w-e-bar-item:has([data-menu-key="group-video"]) {
 | 
			
		||||
  display: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.w-e-bar-item-menus-container .w-e-bar-item:has([data-menu-key="insertImage"]) {
 | 
			
		||||
  display: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.vue-auth-box_ {
 | 
			
		||||
  background: #020f3a !important;
 | 
			
		||||
  border: 1px solid #223765 !important;
 | 
			
		||||
| 
						 | 
				
			
			@ -320,7 +289,7 @@ div::-webkit-scrollbar-track {
 | 
			
		|||
  margin: 3mm;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.page_break {
 | 
			
		||||
.page_break{
 | 
			
		||||
  page-break-after: always;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -328,7 +297,6 @@ div::-webkit-scrollbar-track {
 | 
			
		|||
  .el-descriptions__label.el-descriptions__cell.is-bordered-label {
 | 
			
		||||
    color: #000 !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .el-descriptions {
 | 
			
		||||
    --el-text-color-primary: #000 !important;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -338,16 +306,19 @@ div::-webkit-scrollbar-track {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  .print_use {
 | 
			
		||||
    @include table(center,left);
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    display: table;
 | 
			
		||||
 | 
			
		||||
    td, th {
 | 
			
		||||
      border: 1px solid var(--el-border-color);
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      line-height: 1.6;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .print_no_use {
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mobile {
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  background-color: #fafafa;
 | 
			
		||||
  min-height: 100vh;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +1,16 @@
 | 
			
		|||
:root {
 | 
			
		||||
  --el-header-height: 69px;
 | 
			
		||||
  --el-aside-scrollbar-height: calc(100vh - var(--el-header-height));
 | 
			
		||||
  --el-main-scrollbar-height: calc(100vh - var(--el-header-height) - 40px);
 | 
			
		||||
  --el-main-scrollbar-height: calc(100vh - var(--el-header-height) - 60px);
 | 
			
		||||
  --el-border-color: #273868 !important; // 边框颜色
 | 
			
		||||
  --el-text-color-regular: #fff !important;
 | 
			
		||||
  --el-fill-color-light: #0e1d44 !important; //hover背景色
 | 
			
		||||
  --el-color-check: #14affe !important; //hover、选中 文字颜色
 | 
			
		||||
  --el-aside-bg-color: #08277e !important;
 | 
			
		||||
  --el-aside-bg-color: #081e42 !important;
 | 
			
		||||
  --el-input-bg-color: #081435 !important;
 | 
			
		||||
  --el-fill-color-blank: #081435 !important; // 背景色
 | 
			
		||||
  --el-border-color-lighter: var(--el-border-color) !important;
 | 
			
		||||
  --el-bullet-frame-bg-color: #08163b !important;
 | 
			
		||||
  --el-text-color-primary: #fff !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-button:focus, .el-button:hover {
 | 
			
		||||
| 
						 | 
				
			
			@ -90,8 +89,9 @@
 | 
			
		|||
 | 
			
		||||
.el-menu-item {
 | 
			
		||||
  &:hover, &.is-active {
 | 
			
		||||
    //background: #1d3f77;
 | 
			
		||||
    background-image: linear-gradient(to right, #2c6ee9, rgba(0, 0, 0, 0));
 | 
			
		||||
    background-image: url("/src/assets/images/public/list_on.png");
 | 
			
		||||
    background-repeat: no-repeat;
 | 
			
		||||
    background-size: 100% 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -118,14 +118,10 @@
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-select, .el-cascader, .el-date-editor.el-input, .el-date-editor.el-input__wrapper, .el-input__wrapper, .el-input-number, .el-select-v2 {
 | 
			
		||||
.el-select, .el-cascader, .el-date-editor.el-input, .el-date-editor.el-input__wrapper, .el-input__wrapper, .el-input-number {
 | 
			
		||||
  width: 100% !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-textarea.is-disabled .el-textarea__inner, .el-select {
 | 
			
		||||
  --el-disabled-border-color: var(--el-border-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-table {
 | 
			
		||||
  --el-table-bg-color: #071a43 !important;
 | 
			
		||||
  --el-bg-color: #071a43 !important;
 | 
			
		||||
| 
						 | 
				
			
			@ -153,14 +149,6 @@
 | 
			
		|||
  --el-pagination-bg-color: var(--el-fill-color-blank) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-pagination .el-select {
 | 
			
		||||
  width: 128px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-pagination--small .el-select {
 | 
			
		||||
  width: 100px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-radio {
 | 
			
		||||
  --el-radio-input-bg-color: #091839 !important;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +188,7 @@
 | 
			
		|||
  --el-checkbox-disabled-border-color: var(--el-border-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner, .el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner {
 | 
			
		||||
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
 | 
			
		||||
  --el-checkbox-disabled-checked-input-fill: var(--el-checkbox-bg-color);
 | 
			
		||||
  --el-checkbox-disabled-checked-input-border-color: var(--el-color-check);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -251,19 +239,11 @@
 | 
			
		|||
  color: var(--el-text-color-regular) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-date-table.is-week-mode .el-date-table__row {
 | 
			
		||||
  &.current, &:hover {
 | 
			
		||||
    .el-date-table-cell {
 | 
			
		||||
      --el-datepicker-inrange-bg-color: var(--el-fill-color-light) !important;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-input.is-disabled .el-input__wrapper {
 | 
			
		||||
  box-shadow: 0 0 0 1px var(--el-border-color) inset !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-select .el-tag.el-tag--info {
 | 
			
		||||
.el-select__tags .el-tag--info {
 | 
			
		||||
  background-color: #214082 !important;
 | 
			
		||||
  --el-tag-text-color: var(--el-text-color-regular) !important;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -295,10 +275,14 @@
 | 
			
		|||
  --el-border-color-light: var(--el-border-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-divider__text {
 | 
			
		||||
  font-size: 16px !important;
 | 
			
		||||
  font-weight: 700 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-dialog {
 | 
			
		||||
  background: transparent !important;
 | 
			
		||||
  --el-dialog-margin-top: 50px !important;
 | 
			
		||||
  padding: 0 !important;
 | 
			
		||||
 | 
			
		||||
  .el-dialog__header {
 | 
			
		||||
    background-image: url("/src/assets/images/public/tctitlebg.png");
 | 
			
		||||
| 
						 | 
				
			
			@ -322,14 +306,8 @@
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .el-dialog__body {
 | 
			
		||||
  .el-dialog__body, .el-dialog__footer {
 | 
			
		||||
    background-color: var(--el-bullet-frame-bg-color);
 | 
			
		||||
    padding: calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .el-dialog__footer {
 | 
			
		||||
    background-color: var(--el-bullet-frame-bg-color);
 | 
			
		||||
    padding: var(--el-dialog-padding-primary);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -358,8 +336,6 @@
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
.el-divider__text {
 | 
			
		||||
  font-size: 16px !important;
 | 
			
		||||
  font-weight: 700 !important;
 | 
			
		||||
  background-color: var(--el-fill-color-blank) !important;
 | 
			
		||||
  color: var(--el-text-color-regular) !important;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -404,28 +380,6 @@
 | 
			
		|||
  color: var(--el-text-color-regular) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-step__title, .el-select-dropdown__option-item {
 | 
			
		||||
  font-size: 14px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-step__description {
 | 
			
		||||
  * {
 | 
			
		||||
    font-size: 12px !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-notification {
 | 
			
		||||
  --el-notification-title-color: #000 !important;
 | 
			
		||||
 | 
			
		||||
  .el-notification__closeBtn:hover {
 | 
			
		||||
    --el-notification-close-hover-color: #000 !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-color-predefine__color-selector.selected {
 | 
			
		||||
  --el-color-primary: #fff !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-input-number.is-disabled .el-input-number__decrease, .el-input-number.is-disabled .el-input-number__increase{
 | 
			
		||||
  border-color: var(--el-border-color) !important;
 | 
			
		||||
.el-step__title{
 | 
			
		||||
  font-size: 14px !important;;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 Before Width: | Height: | Size: 424 B  | 
| 
		 Before Width: | Height: | Size: 423 B  | 
| 
		 Before Width: | Height: | Size: 38 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 24 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 27 KiB  | 
| 
		 Before Width: | Height: | Size: 116 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 58 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB  | 
| 
		 Before Width: | Height: | Size: 5.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 MiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB  | 
| 
		 Before Width: | Height: | Size: 850 KiB  | 
| 
		 Before Width: | Height: | Size: 3.2 KiB  | 
| 
		 Before Width: | Height: | Size: 7.6 KiB  | 
| 
		 Before Width: | Height: | Size: 2.5 MiB  | 
| 
		 Before Width: | Height: | Size: 7.9 KiB  | 
| 
		 Before Width: | Height: | Size: 9.7 KiB  | 
| 
		 Before Width: | Height: | Size: 7.4 KiB  | 
| 
		 Before Width: | Height: | Size: 9.2 KiB  | 
| 
		 Before Width: | Height: | Size: 7.2 KiB  | 
| 
		 Before Width: | Height: | Size: 8.9 KiB  | 
| 
		 Before Width: | Height: | Size: 7.1 KiB  | 
| 
		 Before Width: | Height: | Size: 8.8 KiB  | 
| 
		 Before Width: | Height: | Size: 7.9 KiB  | 
| 
		 Before Width: | Height: | Size: 9.6 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.9 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB  |