| | |
| | | # 生产环境配置 |
| | | NODE_ENV = 'production' |
| | | |
| | | VUE_APP_API_URL = 'http://192.168.0.7/system_gateway' |
| | | # VUE_APP_API_URL = 'http://192.168.0.7/system_gateway' |
| | | |
| | | VUE_APP_API_URL = 'http://10.49.152.112/system_gateway' |
| | | |
| | | VUE_APP_AMAP_KEY='045542fc5f436b75e6c911c5c84ff8cd' |
| | | |
| | |
| | | }, |
| | | open (title, target) { |
| | | this.title = title |
| | | this.form.imgurlFull = '' |
| | | this.form.imgurl = '' |
| | | this.visible = true |
| | | // 新建组织 |
| | | if (target == null) { |
| | |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="激活文件" prop="activateFile"> |
| | | <el-upload |
| | | accept=".zip" |
| | | class="upload-demo" |
| | | :action="base" |
| | | :limit="1" |
| | | :data="{ folder: 'activate' }" |
| | | :file-list="fileList" |
| | | :on-success="getFile" |
| | | :on-remove="removeFile"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | <div slot="tip" class="el-upload__tip">只能上传zip文件</div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <h3 style="margin: 20px 0;">柜组信息</h3> |
| | | <el-form-item label="排列" prop="rowNum"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | |
| | | } |
| | | }; |
| | | return { |
| | | base: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload', |
| | | fileList: [], |
| | | // 表单数据 |
| | | form: { |
| | | id: null, |
| | |
| | | noPrefix: '', |
| | | noLength: '', |
| | | noIndex: '', |
| | | sortType: 0 |
| | | sortType: 0, |
| | | activateFile: null |
| | | }, |
| | | // 验证规则 |
| | | rules: { |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = res[key] |
| | | } |
| | | if (res.activateFile) { |
| | | this.fileList = [{ |
| | | name: res.activateFile.name, |
| | | url: res.activateFile.fileurlFull, |
| | | ...res.activateFile |
| | | }] |
| | | } |
| | | this.visible = true |
| | | }) |
| | | }) |
| | |
| | | this.form.noIndex = '' |
| | | this.form.sortType = 0 |
| | | } |
| | | }, |
| | | getFile(response) { |
| | | this.fileList = [{ |
| | | name: response.data.originname, |
| | | fileurl: response.data.imgaddr, |
| | | ...response.data |
| | | }] |
| | | this.form.activateFile = { |
| | | name: response.data.originname, |
| | | fileurl: response.data.imgaddr, |
| | | ...response.data |
| | | } |
| | | }, |
| | | removeFile() { |
| | | this.form.activateFile = null |
| | | this.fileList = [] |
| | | } |
| | | } |
| | | } |
| | |
| | | <meta charset="UTF-8"> |
| | | <link rel="icon" href="/favicon.ico"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | | <title>安泰智慧物流园区系统</title> |
| | | <title>马鞍山烟草三交一封智能柜</title> |
| | | </head> |
| | | <body> |
| | | <div id="app"></div> |
| | |
| | | { |
| | | path: '/', |
| | | meta: { |
| | | title: '钥匙柜数据看板' |
| | | title: '马鞍山烟草三交一封智能柜' |
| | | }, |
| | | component: () => import('../views/KeyCabinet.vue') |
| | | } |
| | |
| | | <img src="@/assets/images/bg.png" class="main_bg" alt="" /> |
| | | <div class="main_header"> |
| | | <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> |
| | | <div class="title">钥匙柜数据看板</div> |
| | | <div class="title">三交一封智能柜</div> |
| | | <div class="time_wrap"> |
| | | <span class="date">{{ date }}</span> |
| | | <span class="week">{{ week }}</span> |
| | |
| | | </div> |
| | | <div class="car_static"> |
| | | <div class="echart_wrap"> |
| | | <div class="pie_text"> |
| | | <div class="fs30"><strong>30</strong></div> |
| | | <div style="font-size: 15px; color: rgba(255,255,255,0.8); font-weight: 400;">入库总量</div> |
| | | <div class="pie_text" v-if="fenbu"> |
| | | <div class="fs30"><strong>{{fenbu.alcoholNum + fenbu.unCloseNum + fenbu.timeOutNum}}</strong></div> |
| | | <div style="font-size: 15px; color: rgba(255,255,255,0.8); font-weight: 400;">告警总量</div> |
| | | </div> |
| | | <div class="echart1" id="echart1"></div> |
| | | </div> |
| | |
| | | <div class="icon" :style="{ background: `linear-gradient(270deg, ${colors[1].color1} 0%, ${colors[1].color2} 100%)` }"></div> |
| | | <div class="text">柜门未关告警</div> |
| | | </div> |
| | | <div class="num" :style="{ color: '#FEAF01' }">{{fenbu.timeOutNum}}次|{{fenbu.timeOutNumPct}}%</div> |
| | | <div class="num" :style="{ color: '#FEAF01' }">{{fenbu.unCloseNum}}次|{{fenbu.unCloseNumPct}}%</div> |
| | | </div> |
| | | <div class="item1"> |
| | | <div class="line"> |
| | | <div class="icon" :style="{ background: `linear-gradient(270deg, ${colors[2].color1} 0%, ${colors[2].color2} 100%)` }"></div> |
| | | <div class="text">超时未还告警</div> |
| | | </div> |
| | | <div class="num" :style="{ color: '#28F0C4' }">{{fenbu.unCloseNum}}次|{{fenbu.unCloseNumPct}}%</div> |
| | | <div class="num" :style="{ color: '#28F0C4' }">{{fenbu.timeOutNum}}次|{{fenbu.timeOutNumPct}}%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | fenbu.value = { |
| | | ...res.data, |
| | | alcoholNumPct: calculatePercentage(res.data.alcoholNum,[res.data.alcoholNum + res.data.timeOutNum + res.data.unCloseNum]), |
| | | timeOutNumPct: calculatePercentage(res.data.timeOutNum,[res.data.alcoholNum + res.data.timeOutNum + res.data.unCloseNum]), |
| | | unCloseNumPct: calculatePercentage(res.data.unCloseNum,[res.data.alcoholNum + res.data.timeOutNum + res.data.unCloseNum]) |
| | | unCloseNumPct: calculatePercentage(res.data.unCloseNum,[res.data.alcoholNum + res.data.timeOutNum + res.data.unCloseNum]), |
| | | timeOutNumPct: calculatePercentage(res.data.timeOutNum,[res.data.alcoholNum + res.data.timeOutNum + res.data.unCloseNum]) |
| | | } |
| | | dataList5.value = [res.data.alcoholNum, res.data.timeOutNum, res.data.unCloseNum] |
| | | dataList5.value = [res.data.alcoholNum, res.data.unCloseNum, res.data.timeOutNum] |
| | | nextTick(() => { |
| | | initEchart1() |
| | | }) |
| | |
| | | <div style="display: flex; align-items: center;margin-top: 4px;"> |
| | | <div style="width: 12px;height: 12px;background: linear-gradient(to bottom, #50afd3, #1d4861);border-radius: 50%;margin-right: 12px;"></div> |
| | | <div style="color: #FFFFFF;font-size: 14px;font-weight: 400;">领取:</div> |
| | | <div style="color: #00F2F3;font-size: 14px;font-weight: 500;">${params[0].data}个</div> |
| | | <div style="color: #00F2F3;font-size: 14px;font-weight: 500;">${params[0].data}次</div> |
| | | </div> |
| | | <div style="display: flex; align-items: center;margin-top: 4px;"> |
| | | <div style="width: 12px;height: 12px;background: linear-gradient(to bottom, rgb(255,184,0), rgba(255, 138, 0, 0.20));border-radius: 50%;margin-right: 12px;"></div> |
| | | <div style="color: #FFFFFF;font-size: 14px;font-weight: 400;">归还:</div> |
| | | <div style="color: #00F2F3;font-size: 14px;font-weight: 500;">${params[1].data}个</div> |
| | | <div style="color: #00F2F3;font-size: 14px;font-weight: 500;">${params[1].data}次</div> |
| | | </div> |
| | | </div> |
| | | `; |
| | |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: '单位:个', |
| | | name: '单位:次', |
| | | minInterval: 1, |
| | | axisLabel: { |
| | | color: '#D2E0FF', |
| | |
| | | server: { |
| | | proxy: { |
| | | "/system_gateway": { |
| | | target: "http://192.168.1.45:10010", |
| | | // target: "http://192.168.1.45:10010", |
| | | target: "http://10.49.152.112/system_gateway", |
| | | // target: "http://192.168.0.7/system_gateway", |
| | | // target: "http://10.50.250.253:8088/gateway_interface", |
| | | // target: "https://atwl.ahzyssl.com/zhyq_interface", |