Commit 64b36e18 authored by honghuiliu's avatar honghuiliu 💬

Merge remote-tracking branch 'origin/master'

parents 940bbe80 4f3dac54
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -8,6 +8,10 @@
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<script src="./echarts.min.js">
</script>
<script src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=fklOeUwr7Y1amxhGFZL8lvE6QvIKpGNi&callback=initialize">
</script>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
......
......@@ -36,4 +36,5 @@
<glyph unicode="&#xe91a;" glyph-name="27" d="M0.030 448.294l416.786 416.786 77.706-77.706-416.786-416.786-77.706 77.706zM77.726 526.001l416.786-416.786-77.706-77.706-416.786 416.786 77.706 77.706zM153.7 494.854h868.951v-109.893h-868.951v109.893z" />
<glyph unicode="&#xe91b;" glyph-name="28" d="M1022.667 448.335l-416.786-416.786-77.706 77.706 416.786 416.786 77.706-77.706zM944.971 370.618l-416.786 416.786 77.706 77.706 416.786-416.786-77.706-77.706zM868.951 401.745h-868.951v109.893h868.951v-109.893z" />
<glyph unicode="&#xe91c;" glyph-name="29" horiz-adv-x="835" d="M417.31-64.008l-417.336 417.336 77.808 77.808 417.336-417.336-77.808-77.808zM339.501 13.801l417.336 417.336 77.808-77.808-417.336-417.336-77.808 77.808zM370.727 89.903v870.097h110.038v-870.097h-110.038z" />
<glyph unicode="&#xe91d;" glyph-name="30" d="M511.959 960c-282.712-0.046-511.878-229.241-511.878-511.959 0-282.747 229.212-511.959 511.959-511.959s511.959 229.212 511.959 511.959v0c-0.046 282.757-229.277 511.959-512.041 511.959v0zM511.959 799.376c108.073 0 195.684-87.611 195.684-195.684s-87.611-195.684-195.684-195.684c-108.073 0-195.684 87.611-195.684 195.684v0c0 108.073 87.611 195.684 195.684 195.684v0zM511.959 56.509c-0.016 0-0.035 0-0.054 0-123.032 0-232.755 56.985-304.214 146l-0.592 0.763c72.128 89.679 181.849 146.585 304.86 146.585s232.732-56.906 304.272-145.829l0.588-0.756c-72.021-89.777-181.719-146.763-304.728-146.763-0.046 0-0.093 0-0.139 0h0.007z" />
</font></defs></svg>
\ No newline at end of file
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?e6yl7u');
src: url('fonts/icomoon.eot?e6yl7u#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?e6yl7u') format('truetype'),
url('fonts/icomoon.woff?e6yl7u') format('woff'),
url('fonts/icomoon.svg?e6yl7u#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
font-family: 'icomoon';
src: url('fonts/icomoon.eot?ecryv7');
src: url('fonts/icomoon.eot?ecryv7#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?ecryv7') format('truetype'),
url('fonts/icomoon.woff?ecryv7') format('woff'),
url('fonts/icomoon.svg?ecryv7#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
}
[class^="icon-"], [class*=" icon-"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-1:before {
content: "\e900";
content: "\e900";
}
.icon-2:before {
content: "\e901";
content: "\e901";
}
.icon-3:before {
content: "\e902";
content: "\e902";
}
.icon-4:before {
content: "\e903";
content: "\e903";
}
.icon-5:before {
content: "\e904";
content: "\e904";
}
.icon-6:before {
content: "\e905";
content: "\e905";
}
.icon-7:before {
content: "\e906";
content: "\e906";
}
.icon-8:before {
content: "\e907";
content: "\e907";
}
.icon-9:before {
content: "\e908";
content: "\e908";
}
.icon-10:before {
content: "\e909";
content: "\e909";
}
.icon-11:before {
content: "\e90a";
content: "\e90a";
}
.icon-12:before {
content: "\e90b";
content: "\e90b";
}
.icon-13:before {
content: "\e90c";
content: "\e90c";
}
.icon-14:before {
content: "\e90d";
content: "\e90d";
}
.icon-15:before {
content: "\e90e";
content: "\e90e";
}
.icon-16:before {
content: "\e90f";
content: "\e90f";
}
.icon-17:before {
content: "\e910";
content: "\e910";
}
.icon-18:before {
content: "\e911";
content: "\e911";
}
.icon-19:before {
content: "\e912";
content: "\e912";
}
.icon-20:before {
content: "\e913";
content: "\e913";
}
.icon-21:before {
content: "\e914";
content: "\e914";
}
.icon-22:before {
content: "\e915";
content: "\e915";
}
.icon-23:before {
content: "\e916";
content: "\e916";
}
.icon-24:before {
content: "\e917";
content: "\e917";
}
.icon-25:before {
content: "\e918";
content: "\e918";
}
.icon-26:before {
content: "\e919";
content: "\e919";
}
.icon-27:before {
content: "\e91a";
content: "\e91a";
}
.icon-28:before {
content: "\e91b";
content: "\e91b";
}
.icon-29:before {
content: "\e91c";
content: "\e91c";
}
.icon-30:before {
content: "\e91d";
}
This diff is collapsed.
......@@ -3,12 +3,19 @@ import App from './App.vue'
import router from './router'
import { store } from '@/store'
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import 'element-plus/dist/index.css'
import vue3PhotoPreview from 'vue3-photo-preview';
import 'vue3-photo-preview/dist/index.css';
const app = createApp(App);
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
app.use(vue3PhotoPreview);
app.use(store);
app.use(ElementPlus);
app.use(ElementPlus, {
locale: zhCn
});
app.use(router);
app.mount('#app');
......@@ -8,10 +8,7 @@ export const useStore = defineStore('app',{
},
info:{
username:'银河环卫工',
area:{
areaName:'青山湖街道'
}
username:'admin'
},
tabs:[
{
......
import axios from 'axios'
import { ref } from 'vue'
const weatherInfo = ref('');
const amapKey = '89e4bcbcfe9cbe7560782e22719d31a6';
export const useWeatherInfo = () => {
ip();
return weatherInfo
};
export const ip = async() => {
// key换成你自己的 https://console.amap.com/dev/index
if (amapKey === '') {
return false
}
const res = await axios.get('https://restapi.amap.com/v3/ip?key=' + amapKey)
if (res.data.adcode) {
getWeather(res.data.adcode)
}
};
const getWeather = async(code) => {
const response = await axios.get('https://restapi.amap.com/v3/weather/weatherInfo?key=' + amapKey + '&extensions=base&city=' + code)
if (response.data.status === '1') {
const s = response.data.lives[0];
// weatherInfo.value = s.city + ' 天气:' + s.weather + ' 温度:' + s.temperature + '摄氏度 风向:' + s.winddirection + ' 风力:' + s.windpower + '级 空气湿度:' + s.humidity
weatherInfo.value = s.weather
}
};
This diff is collapsed.
<template>
<div class="order-detail">
<div class="order-title">
<span>工单详情</span>
<el-icon class="close" :size="20" color="#333" @click="closeBox"><Close /></el-icon>
</div>
<div class="order-body">
<div class="row-one">
<span class="row-name">工单标题</span>
<span class="row-content">{{detail.title}}</span>
</div>
<div class="row-one">
<span class="row-name">巡检公厕单位</span>
<span class="row-content">{{detail.name}}</span>
</div>
<div class="row-one">
<span class="row-name">巡检类型</span>
<span class="row-content">{{typeChange(detail.type).text}}</span>
</div>
<div class="row-one baseline">
<span class="row-name">巡检内容</span>
<div class="row-content">
<template v-for="item in detail.content">
<div class="check-one">
<el-checkbox v-model="item.check" :label="item.title" size="large" :disabled="true"/>
</div>
</template>
</div>
</div>
<div class="row-one">
<span class="row-name">附件</span>
<div class="row-content">
<photo-provider>
<photo-consumer v-for="(url,index) in fileList" :key="url" :src="url">
<p v-if="url" class="img-one view-box" :style="`background-image:url('${url}')`">
</p>
</photo-consumer>
</photo-provider>
</div>
</div>
<div class="row-one">
<span class="row-name">异常描述</span>
<span class="row-content">{{detail.description}}</span>
</div>
<div class="row-one">
<span class="row-name">站点巡检人</span>
<span class="row-content">{{detail.staff}}</span>
</div>
<div class="row-one">
<span class="row-name">提交时间</span>
<span class="row-content">{{detail.create_time}}</span>
</div>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import {reactive, toRefs, onMounted} from "vue"
import {ElMessage} from "element-plus"
import {Close} from "@element-plus/icons-vue"
import api from "@/api/methods/index"
export default {
name: 'order-detail',
emits: ['update:modelValue'],
props: {
modelValue: {
type: Boolean,
default: false
},
order_id: {
type: String,
default: ''
},
},
setup(props, {emit}) {
const state = reactive({
detail: {
title:'2022年6月22日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
content:[
{
title:'检查格栅井',
check:true
},
{
title:'格栅井照片',
check:false
},
{
title:'检查调节池',
check:true
},
{
title:'检查厌氧池',
check:false
},
{
title:'检查缺氧池',
check:true
},
{
title:'检查好氧池',
check:true
},
{
title:'检查清水池',
check:true
},
{
title:'格栅污泥池',
check:false
},
{
title:'检查出水井',
check:true
},
{
title:'清水池照片',
check:true
},
{
title:'检查各井口及井盖',
check:false
},
{
title:'检查水泵系统',
check:true
},
{
title:'检查风机系统',
check:false
},
{
title:'检查加药系统',
check:true
},
{
title:'检查监控系统',
check:true
},
{
title:'检查设备房',
check:false
},
],
description:'泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、\n' +
'泵站清淤很多。',
create_time:'2022-06-22 10:00'
},
typeList:[
{
name:'液位',
prop:'a1',
value:0,
unit:'m',
color:'#09a8ae',
create_time:'2022-09-01 10:00'
},
{
name:'调解池流量',
prop:'a2',
value:0,
unit:'m^3/h',
color:'#ff6b6b',
create_time:'2022-09-01 10:00'
},
{
name:'出水池流量',
prop:'a3',
value:0,
unit:'m^3/h',
color:'#946fd0',
create_time:'2022-09-01 10:00'
},
{
name:'厌氧池PH值',
prop:'a4',
value:0,
unit:'',
color:'#3396fb',
create_time:'2022-09-01 10:00'
},
{
name:'好氧池PH值',
prop:'a5',
value:0,
unit:'',
color:'#28ae09',
create_time:'2022-09-01 10:00'
},
{
name:'出水池PH值',
prop:'a6',
value:0,
unit:'',
color:'#ffc019',
create_time:'2022-09-01 10:00'
},
{
name:'好氧池DO值',
prop:'a7',
value:0,
unit:'mg/l',
color:'#f8893f',
create_time:'2022-09-01 10:00'
},
{
name:'MBR池DO值',
prop:'a8',
value:0,
unit:'mg/l',
color:'#eb509d',
create_time:'2022-09-01 10:00'
}
],
fileList:[
"https://wensi-zhanlang.oss-cn-hangzhou.aliyuncs.com/volunteer/2022-08-24/1661300843457_Wc5B4kFjCb.jpeg",
"https://wensi-zhanlang.oss-cn-hangzhou.aliyuncs.com/volunteer/2022-06-30/1656575865931_zwwirj2Kix.webp",
"https://wensi-zhanlang.oss-cn-hangzhou.aliyuncs.com/volunteer/2022-06-30/1656574020995_SnDzKQYTQR.webp"
]
});
function typeChange(type=1) {
switch (type) {
case 1:
return {text:'一体化设备',color:'#3396fb'};
case 2:
return {text:'玻璃钢',color:'#f78131'};
default:
return {text:'...',color:'#f78131'};
}
}
function getDetail(){
}
function closeBox(){
emit('update:modelValue',false)
}
onMounted(async () => {
getDetail();
});
return {
...toRefs(state),
Close,
closeBox,
typeChange
}
},
components:{
}
}
</script>
<style lang="less">
.order-detail {
position: absolute;
right: 0;
width: 800px;
height: 100%;
-webkit-user-select: none;
background-color: #fff;
display: flex;
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
box-shadow: 0 0 20px rgba(0,0,0,.2);
flex-direction: column;
overflow: hidden;
z-index: 12;
.order-title{
flex-shrink: 0;
display: flex;
align-items: center;
height: 60px;
justify-content: space-between;
padding: 0 20px 0 30px;
border-bottom: 1px solid #efefef;
.close{
cursor: pointer;
&:hover{
opacity: .8;
}
}
}
.order-body{
flex: 1;
padding: 10px 20px 10px 30px;
overflow-y: auto;
.row-one{
flex-shrink: 0;
display: flex;
align-items: center;
padding: 10px 0;
.row-name{
flex-shrink: 0;
width: 100px;
color: #666;
margin-right: 15px;
}
.row-content{
flex: 1;
min-height: 30px;
background-color: #f8f8f8;
border-radius: 6px;
color: #333;
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 10px 20px;
.check-one{
width: 33.3%;
padding: 5px 0;
}
.img-one{
position: relative;
width:60px;
height:60px;
border-radius: 4px;
border:1px solid #f7f8fa;
margin-right: 10px;
margin-bottom:5px;
background-repeat:no-repeat;
background-size:cover;
background-position:center;
cursor: pointer;
}
}
}
.baseline{
align-items: baseline;
.row-content{
background-color: #fff;
}
}
}
}
</style>
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment