开始巡查、系统反馈页面静态还原
This commit is contained in:
parent
f5234cf420
commit
c060ab66f7
@ -22,11 +22,11 @@ export default {
|
||||
<style lang="scss">
|
||||
@import '@/static/icon/iconfont.css';
|
||||
/*每个页面公共css */
|
||||
uni-page-body {
|
||||
// uni-page-body {
|
||||
// padding-bottom:var(--window-bottom)
|
||||
}
|
||||
// }
|
||||
|
||||
uni-page {
|
||||
#app {
|
||||
background: url('@/static/image/index/bg.png') no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
@ -16,6 +16,11 @@
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"permissions": {
|
||||
"camera": {
|
||||
"desc": "用于扫描二维码"
|
||||
}
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules" : {},
|
||||
/* 应用发布信息 */
|
||||
|
@ -32,6 +32,24 @@
|
||||
"style": {
|
||||
"navigationBarTitleText": "历史巡检"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/startInspection/startInspection",
|
||||
"style": {
|
||||
"navigationBarTitleText": "开始巡检"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/scanCode/scanCode",
|
||||
"style": {
|
||||
"navigationBarTitleText": "扫描二维码"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/feedback/feedback",
|
||||
"style": {
|
||||
"navigationBarTitleText": "系统反馈"
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
121
src/pages/feedback/feedback.vue
Normal file
121
src/pages/feedback/feedback.vue
Normal file
@ -0,0 +1,121 @@
|
||||
<!--
|
||||
* @Author: XHC
|
||||
* @Date: 2025-05-26 11:59:36
|
||||
* @LastEditors: XHC
|
||||
* @LastEditTime: 2025-05-26 15:52:32
|
||||
* @Description: 系统反馈
|
||||
-->
|
||||
<template>
|
||||
<div class="feedback">
|
||||
<view class="tips">
|
||||
<view class="tips-icon"><uni-icons fontFamily="iconfont" color="#387ABC" size="20">{{''}}</uni-icons> </view>
|
||||
<text>为更好解决问题,问题发生时请立即反馈。</text>
|
||||
</view>
|
||||
<uni-card :is-shadow="false">
|
||||
<uni-forms ref="feedbackForm" :modelValue="formData" :rules="rules">
|
||||
<uni-forms-item name="radio">
|
||||
<uni-section class="section" title="反馈类型" type="line"></uni-section>
|
||||
<uni-data-checkbox mode="tag" v-model="formData.radio" :localdata="radioData"></uni-data-checkbox>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item name="described">
|
||||
<uni-section class="section" title="问题描述" type="line"></uni-section>
|
||||
<uni-easyinput type="textarea" v-model="formData.described" placeholder="请输入问题描述" />
|
||||
</uni-forms-item>
|
||||
<uni-forms-item name="imageValue">
|
||||
<uni-section class="section" title="问题截图" type="line"></uni-section>
|
||||
<uni-file-picker limit="9" v-model="formData.imageValue"><uni-icons type="camera-filled" color="#004894" size="50"></uni-icons></uni-file-picker>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item name="type">
|
||||
<uni-section class="section" title="问题类型" type="line"></uni-section>
|
||||
<uni-data-select v-model="formData.type" :localdata="range" placeholder="请输入问题类型"></uni-data-select>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item name="datetime">
|
||||
<uni-section class="section" title="发生时间" type="line"></uni-section>
|
||||
<uni-datetime-picker type="datetime" return-type="timestamp" v-model="formData.datetime" placeholder="请输入发生时间"/>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</uni-card>
|
||||
<button type="primary" @click="submit('feedbackForm')">提交</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue';
|
||||
|
||||
// 表单数据
|
||||
let feedbackForm = ref(null)
|
||||
let formData = reactive({
|
||||
radio: 0,
|
||||
described: '',
|
||||
imageValue: '',
|
||||
type: '',
|
||||
datetime:''
|
||||
})
|
||||
// 单选数据
|
||||
let radioData = reactive([
|
||||
{ text: '功能异常', value: 0 },
|
||||
{ text: '总结与意见', value: 1 },
|
||||
])
|
||||
// 下拉数据
|
||||
let range = reactive([
|
||||
{ value: 0, text: "类型1" },
|
||||
{ value: 1, text: "类型2" },
|
||||
])
|
||||
// 表单校验
|
||||
let rules = reactive( {
|
||||
// email: {
|
||||
// rules: [{
|
||||
// required: true,
|
||||
// errorMessage: '域名不能为空'
|
||||
// }, {
|
||||
// format: 'email',
|
||||
// errorMessage: '域名格式错误'
|
||||
// }]
|
||||
// }
|
||||
})
|
||||
|
||||
// 表单提交
|
||||
const submit = (ref) => {
|
||||
ref.value.validate().then(res => {
|
||||
console.log('success', res);
|
||||
uni.showToast({
|
||||
title: `校验通过`
|
||||
})
|
||||
}).catch(err => {
|
||||
console.log('err', err);
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.feedback {
|
||||
.tips {
|
||||
border-radius: 10rpx;
|
||||
background: #ffffff3f;
|
||||
margin: 30rpx;
|
||||
padding: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
.tips-icon {
|
||||
background: #fff;
|
||||
border-radius: 50%;
|
||||
padding: 10rpx;
|
||||
margin: 10rpx;
|
||||
}
|
||||
}
|
||||
:deep(.checklist-box.is--tag.is-checked), :deep(uni-button) {
|
||||
background-color: #004894!important;
|
||||
border-color: #004894!important;
|
||||
}
|
||||
:deep(uni-button) {
|
||||
margin: 0 60rpx;
|
||||
}
|
||||
|
||||
:deep(.uni-easyinput__content), :deep(.file-picker__box-content), :deep(.uni-select), :deep(.uni-date-single), :deep(.uni-date-x--border) {
|
||||
background-color: #DCEDFD!important;
|
||||
border-color: #A3C3E3!important;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -2,7 +2,7 @@
|
||||
* @Author: XHC
|
||||
* @Date: 2025-05-19 11:07:37
|
||||
* @LastEditors: XHC
|
||||
* @LastEditTime: 2025-05-23 16:03:02
|
||||
* @LastEditTime: 2025-05-23 16:51:56
|
||||
* @Description: 首页
|
||||
-->
|
||||
<template>
|
||||
@ -78,8 +78,9 @@
|
||||
{{ item.name }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="category-content">
|
||||
<view v-if="categoryCurIndex == 0">
|
||||
<uni-card class="list-card" v-for="(item, index) in listData" :key="index">
|
||||
<uni-card class="list-card" v-for="(item, index) in listData" :key="index" @click="goToStartInspection(item)">
|
||||
<view class="head">
|
||||
<text class="title">{{ item.title }}</text>
|
||||
<uni-tag :inverted="true" :text="item.state" :type="item.state == '未巡检' ? 'error' : item.state == '巡检中' ? 'warning' : 'success'" />
|
||||
@ -95,6 +96,7 @@
|
||||
<view v-if="categoryCurIndex == 2"></view>
|
||||
<view v-if="categoryCurIndex == 3"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="navCurIndex == 1">发电分部</view>
|
||||
<view v-if="navCurIndex == 2">自动分部</view>
|
||||
<view v-if="navCurIndex == 3">保护分部</view>
|
||||
@ -183,6 +185,15 @@ const goToHistory = () => {
|
||||
url: '/pages/history/history'
|
||||
});
|
||||
}
|
||||
|
||||
// 列表跳转
|
||||
const goToStartInspection = (item) => {
|
||||
console.log(item);
|
||||
|
||||
uni.navigateTo({
|
||||
url: `/pages/startInspection/startInspection?data=${JSON.stringify(item)}`
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: XHC
|
||||
* @Date: 2025-05-19 15:19:14
|
||||
* @LastEditors: XHC
|
||||
* @LastEditTime: 2025-05-23 16:02:51
|
||||
* @LastEditTime: 2025-05-26 11:58:55
|
||||
* @Description: 我的
|
||||
-->
|
||||
<template>
|
||||
@ -19,7 +19,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="list">
|
||||
<uni-card class="list-item" v-for="(item, index) in listData" :key="index">
|
||||
<uni-card class="list-item" v-for="(item, index) in listData" :key="index" @click="goToPages(index)">
|
||||
<uni-row :gutter="30">
|
||||
<uni-col :span="2">
|
||||
<uni-icons fontFamily="iconfont" color="#1469BD" size="20">{{item.icon}}</uni-icons>
|
||||
@ -70,6 +70,21 @@ let listData = reactive([
|
||||
{ icon: '\ue650', title: '关于' },
|
||||
])
|
||||
|
||||
const goToPages = (index) => {
|
||||
switch (index) {
|
||||
case 0:
|
||||
|
||||
break;
|
||||
case 1:
|
||||
uni.navigateTo({
|
||||
url: '/pages/feedback/feedback'
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
8
src/pages/scanCode/scanCode.vue
Normal file
8
src/pages/scanCode/scanCode.vue
Normal file
@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<view class="scanCode">scanCode</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
221
src/pages/startInspection/startInspection.vue
Normal file
221
src/pages/startInspection/startInspection.vue
Normal file
@ -0,0 +1,221 @@
|
||||
<!--
|
||||
* @Author: XHC
|
||||
* @Date: 2025-05-23 16:46:57
|
||||
* @LastEditors: XHC
|
||||
* @LastEditTime: 2025-05-26 11:49:57
|
||||
* @Description: 开始巡检
|
||||
-->
|
||||
<template>
|
||||
<view class="startInspection">
|
||||
<view class="patrol-info">
|
||||
<view class="title">
|
||||
<uni-section title="巡检信息" type="line"></uni-section>
|
||||
<uni-tag :inverted="true" text="日常巡检" type="success" />
|
||||
</view>
|
||||
<view class="info-box">
|
||||
<view class="info-item">
|
||||
<uni-row :gutter="10">
|
||||
<uni-col :span="7">
|
||||
<text class="title">路线名称:</text>
|
||||
</uni-col>
|
||||
<uni-col :span="17">
|
||||
<text>{{ infoData.title }}</text>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<uni-row :gutter="10">
|
||||
<uni-col :span="7">
|
||||
<text class="title">路线编号:</text>
|
||||
</uni-col>
|
||||
<uni-col :span="17">
|
||||
<text>{{ infoData.num }}</text>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<uni-row :gutter="10">
|
||||
<uni-col :span="7">
|
||||
<text class="title">巡检频率:</text>
|
||||
</uni-col>
|
||||
<uni-col :span="17">
|
||||
<text>{{ infoData.frequency }}</text>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<uni-row :gutter="10">
|
||||
<uni-col :span="7">
|
||||
<text class="title">巡检人员:</text>
|
||||
</uni-col>
|
||||
<uni-col :span="17">
|
||||
<text>{{ infoData.person }}</text>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<uni-row :gutter="10">
|
||||
<uni-col :span="7">
|
||||
<text class="title">巡检内容:</text>
|
||||
</uni-col>
|
||||
<uni-col :span="17">
|
||||
<text>{{ infoData.content }}</text>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="inspection-points">
|
||||
<view class="title">
|
||||
<uni-section title="巡检点位:" type="line"><text>3/32</text></uni-section>
|
||||
<uni-icons type="scan" size="26" @click="scanQRCode" ></uni-icons>
|
||||
</view>
|
||||
<view class="list-box">
|
||||
<view class="list-item" v-for="(item, index) in listData" :key="index">
|
||||
<view>
|
||||
<view class="item-title">
|
||||
<uni-section class="section" :title="item.title" type="line"></uni-section>
|
||||
<uni-tag :inverted="true" :text="item.state" :type="item.state == '正常' ? 'success' : 'warning'" />
|
||||
</view>
|
||||
<view class="content">
|
||||
<text>{{ item.time }}</text> <text class="name">{{ item.name }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<uni-icons type="right" color="#0E65BA" size="26"></uni-icons>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import { reactive } from "vue";
|
||||
|
||||
let infoData = reactive({
|
||||
title: '',
|
||||
num: '',
|
||||
frequency: '白班每班一次',
|
||||
person: '运行部 五值 白班',
|
||||
content: '主要巡检没备:左岸电站}-8号机組发电机,层、中间层(含机組自用电))、GcB及水轮机层没备。'
|
||||
})
|
||||
|
||||
let listData = reactive([
|
||||
{ title: '发电机出口断路器', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '励磁系统', state: '正常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '励磁变', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '发电机出口断路器', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '发电机出口断路器', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '发电机出口断路器', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
{ title: '发电机出口断路器', state: '异常', time: '2025-02-20 8:40', name: '张三' },
|
||||
])
|
||||
|
||||
onLoad((options) => {
|
||||
infoData = { ...infoData, ...JSON.parse(options.data) }
|
||||
console.log(infoData);
|
||||
|
||||
})
|
||||
|
||||
// 扫描二维码
|
||||
const scanQRCode = () => {
|
||||
uni.scanCode({
|
||||
// 扫码成功的回调函数
|
||||
success: (res) => {
|
||||
// 这里res.result就是二维码的内容
|
||||
console.log('扫描结果:', res.result);
|
||||
uni.navigateTo({
|
||||
url: '/pages/scanCode/scanCode'
|
||||
});
|
||||
},
|
||||
// 扫码失败的回调函数
|
||||
fail: (err) => {
|
||||
console.log('扫描失败:', err);
|
||||
// 可以在这里提示用户扫描失败的信息
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.startInspection {
|
||||
.patrol-info {
|
||||
.info-box {
|
||||
.info-item {
|
||||
padding: 20rpx 10rpx;
|
||||
margin: 0 20rpx;
|
||||
border-bottom: 1rpx solid #EDF4FD;
|
||||
.title {
|
||||
color: #808185;
|
||||
}
|
||||
&:last-of-type {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.patrol-info, .inspection-points {
|
||||
margin: 0 30rpx;
|
||||
padding: 10rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #fff;
|
||||
>.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.inspection-points {
|
||||
margin-top: 20rpx;
|
||||
.title {
|
||||
padding-right: 20rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
:deep(.uni-section) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.list-box {
|
||||
.list-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #F1F6FD;
|
||||
border-radius: 15rpx;
|
||||
margin: 20rpx;
|
||||
padding: 10rpx 20rpx 20rpx 0;
|
||||
.item-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.section {
|
||||
background: transparent;
|
||||
margin-right: 20rpx;
|
||||
.name {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
:deep(.uni-section-header) {
|
||||
font-weight: 700;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
:deep(.uni-section-header__content) {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.content {
|
||||
margin-left: 30rpx;
|
||||
color: #7F8084;
|
||||
font-size: 23rpx;
|
||||
.name {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -54,6 +54,12 @@
|
||||
<div class="content unicode" style="display: block;">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">意见反馈</div>
|
||||
<div class="code-name">&#xe627;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">紧急联系人</div>
|
||||
@ -174,9 +180,9 @@
|
||||
<pre><code class="language-css"
|
||||
>@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('iconfont.woff2?t=1747971580274') format('woff2'),
|
||||
url('iconfont.woff?t=1747971580274') format('woff'),
|
||||
url('iconfont.ttf?t=1747971580274') format('truetype');
|
||||
src: url('iconfont.woff2?t=1748240865474') format('woff2'),
|
||||
url('iconfont.woff?t=1748240865474') format('woff'),
|
||||
url('iconfont.ttf?t=1748240865474') format('truetype');
|
||||
}
|
||||
</code></pre>
|
||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||
@ -202,6 +208,15 @@
|
||||
<div class="content font-class">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-yijianfankui"></span>
|
||||
<div class="name">
|
||||
意见反馈
|
||||
</div>
|
||||
<div class="code-name">.icon-yijianfankui
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-jinjilianxiren"></span>
|
||||
<div class="name">
|
||||
@ -382,6 +397,14 @@
|
||||
<div class="content symbol">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-yijianfankui"></use>
|
||||
</svg>
|
||||
<div class="name">意见反馈</div>
|
||||
<div class="code-name">#icon-yijianfankui</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-jinjilianxiren"></use>
|
||||
|
@ -1,8 +1,8 @@
|
||||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 4926721 */
|
||||
src: url('iconfont.woff2?t=1747971580274') format('woff2'),
|
||||
url('iconfont.woff?t=1747971580274') format('woff'),
|
||||
url('iconfont.ttf?t=1747971580274') format('truetype');
|
||||
src: url('iconfont.woff2?t=1748240865474') format('woff2'),
|
||||
url('iconfont.woff?t=1748240865474') format('woff'),
|
||||
url('iconfont.ttf?t=1748240865474') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@ -13,6 +13,10 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-yijianfankui:before {
|
||||
content: "\e627";
|
||||
}
|
||||
|
||||
.icon-jinjilianxiren:before {
|
||||
content: "\e610";
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -5,6 +5,13 @@
|
||||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "25439277",
|
||||
"name": "意见反馈",
|
||||
"font_class": "yijianfankui",
|
||||
"unicode": "e627",
|
||||
"unicode_decimal": 58919
|
||||
},
|
||||
{
|
||||
"icon_id": "3182358",
|
||||
"name": "紧急联系人",
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user