Commit cf339574 authored by mahui's avatar mahui

init

parent 6f54a644
...@@ -46,43 +46,7 @@ ...@@ -46,43 +46,7 @@
show:false, show:false,
site_id:'', site_id:'',
time:myPublic.dateFormat.format(Date.now(), 'HH:mm:ss YYYY年MM月DD日'), time:myPublic.dateFormat.format(Date.now(), 'HH:mm:ss YYYY年MM月DD日'),
list:[ list:[]
// {
// longitude:119.779647,
// latitude:30.24369,
// name:'青山湖国家森林公园',
// address:'浙江省杭州市临安区老圣园路北',
// type:1
// },
// {
// longitude:119.821796,
// latitude:30.254114,
// name:'青山湖街道',
// address:'浙江省杭州市临安区',
// type:1
// },
// {
// longitude:119.790127,
// latitude:30.255317,
// name:'灵山',
// address:'浙江省杭州市临安区',
// type:2
// },
// {
// longitude:119.852565,
// latitude:30.2528,
// name:'青山湖互通',
// address:'浙江省杭州市临安区',
// type:1
// },
// {
// longitude:119.823904,
// latitude:30.24808,
// name:'青山中学',
// address:'浙江省杭州市临安区',
// type:1
// },
]
}); });
const user = computed(()=>{ const user = computed(()=>{
return store.info; return store.info;
...@@ -118,7 +82,7 @@ ...@@ -118,7 +82,7 @@
} }
function mapShow(coordinate, item, callBack) { function mapShow(coordinate, item, callBack) {
const now = Date.now(); const now = Date.now();
let str = `<img src="${require("@/assets/img/e.png")}" />`; let str = `<img src="${item.showImage}" />`;
str += `<p style="font-weight: 700">${item.name}${typeChange(item.type)}</p>`; str += `<p style="font-weight: 700">${item.name}${typeChange(item.type)}</p>`;
str += `<p>位置:${item.address}</p>`; str += `<p>位置:${item.address}</p>`;
str += `<p id="${now}" style="color: #3396fb;cursor: pointer" onclick="">查看详情<span class="icon-4"></span></p>`; str += `<p id="${now}" style="color: #3396fb;cursor: pointer" onclick="">查看详情<span class="icon-4"></span></p>`;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="detail-body"> <div class="detail-body">
<div class="body-one base" v-if="tab=='base'"> <div class="body-one base" v-if="tab=='base'">
<div class="poster"> <div class="poster">
<div class="blur-mask" :style="`background-image:url('${detail.poster[detail.index]}')`"></div> <div class="blur-mask" :style="`background-image:url('${detail.showImage}')`"></div>
<div class="banner"> <div class="banner">
<el-carousel :interval="5000" arrow="never" style="height: 480px;" <el-carousel :interval="5000" arrow="never" style="height: 480px;"
@change="(val)=>{detail.index=val}"> @change="(val)=>{detail.index=val}">
...@@ -279,14 +279,7 @@ ...@@ -279,14 +279,7 @@
show:false, show:false,
order_id:'', order_id:'',
detail: { detail: {
poster: [ poster:[],
require("@/assets/img/banner-1.png"),
require("@/assets/img/banner-1.png"),
require("@/assets/img/banner-1.png"),
require("@/assets/img/banner-1.png"),
require("@/assets/img/banner-1.png"),
require("@/assets/img/banner-1.png"),
],
index: 0, index: 0,
yewei:0.7, yewei:0.7,
type:1 type:1
...@@ -419,6 +412,9 @@ ...@@ -419,6 +412,9 @@
function getDetail() { function getDetail() {
api.getToiletDetail({id:props.site_id}).then((res)=>{ api.getToiletDetail({id:props.site_id}).then((res)=>{
if(res.code==0){ if(res.code==0){
if(res.data.image){
state.detail.poster = res.data.image.split(',')
}
Object.assign(state.detail,{...res.data}); Object.assign(state.detail,{...res.data});
if(state.detail.type==1){ if(state.detail.type==1){
state.tabs.find(one=>one.value=='process').show = true; state.tabs.find(one=>one.value=='process').show = true;
......
...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
"script-ext-html-webpack-plugin": "^2.1.4", "script-ext-html-webpack-plugin": "^2.1.4",
"spark-md5": "^3.0.1", "spark-md5": "^3.0.1",
"vue": "^3.2.25", "vue": "^3.2.25",
"vue-router": "^4.0.0-0" "vue-router": "^4.0.0-0",
"vue3-photo-preview": "^0.2.5"
}, },
"devDependencies": { "devDependencies": {
"@vitejs/plugin-legacy": "^1.4.4", "@vitejs/plugin-legacy": "^1.4.4",
......
...@@ -12,6 +12,7 @@ export default { ...@@ -12,6 +12,7 @@ export default {
<style lang="scss"> <style lang="scss">
// 引入初始化样式 // 引入初始化样式
@import '@/style/theme/index.css';
@import '@/style/main.scss'; @import '@/style/main.scss';
@import '@/style/base.scss'; @import '@/style/base.scss';
@import '@/style/mobile.scss'; @import '@/style/mobile.scss';
......
...@@ -13,6 +13,8 @@ import auth from '@/directive/auth' ...@@ -13,6 +13,8 @@ import auth from '@/directive/auth'
import { store } from '@/pinia' import { store } from '@/pinia'
import upload from "@/components/upload.vue" import upload from "@/components/upload.vue"
import newInput from "@/components/input/new-input.vue" import newInput from "@/components/input/new-input.vue"
import vue3PhotoPreview from 'vue3-photo-preview';
import 'vue3-photo-preview/dist/index.css';
import App from './App.vue' import App from './App.vue'
const app = createApp(App) const app = createApp(App)
app.config.productionTip = false app.config.productionTip = false
...@@ -22,6 +24,7 @@ app ...@@ -22,6 +24,7 @@ app
.use(store) .use(store)
.use(auth) .use(auth)
.use(router) .use(router)
.use(vue3PhotoPreview)
.use(ElementPlus, { locale: zhCn }) .use(ElementPlus, { locale: zhCn })
.component('new-upload',upload) .component('new-upload',upload)
.component('new-input',newInput) .component('new-input',newInput)
......
This diff is collapsed.
...@@ -79,29 +79,32 @@ ...@@ -79,29 +79,32 @@
</div> </div>
</div> </div>
<el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="弹窗操作"> <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="弹窗操作">
<el-form :model="formData" label-position="right" label-width="80px"> <el-form :model="formData" label-position="right" label-width="120px">
<el-form-item label="工单标题:">
<el-input v-model="formData.title" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="巡检类型:">
<el-select v-model="formData.type" placeholder="请选择" style="width:100%" clearable>
<el-option v-for="(item,key) in partol_typeOptions" :key="key" :label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="巡检内容:"> <el-form-item label="巡检内容:">
<el-input v-model="formData.content" clearable placeholder="请输入"/> <!--<el-input v-model="formData.content" clearable placeholder="请输入"/>-->
</el-form-item> </el-form-item>
<el-form-item label="异常描述:"> <el-form-item label="巡检图片:">
<el-input v-model="formData.description" clearable placeholder="请输入"/> <new-upload v-if="dialogFormVisible" :limit="99" :list="formData.image?formData.image.split(','):[]" @upload="(file)=>formData.image = file.join(',')" :multiply="true"></new-upload>
</el-form-item> </el-form-item>
<el-form-item label="巡检图片多个逗号分隔:"> <el-form-item label="异常描述:">
<el-input v-model="formData.image" clearable placeholder="请输入"/> <el-input type="textarea" resize="none" v-model="formData.description" clearable placeholder="请输入"/>
</el-form-item> </el-form-item>
<el-form-item label="巡视人:"> <el-form-item label="巡视人:">
<el-input v-model="formData.partolName" clearable placeholder="请输入"/> <el-input v-model="formData.partolName" clearable placeholder="请输入"/>
</el-form-item> </el-form-item>
<el-form-item label="工单标题:">
<el-input v-model="formData.title" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="巡检公厕:"> <el-form-item label="巡检公厕:">
<el-input v-model.number="formData.toiletId" clearable placeholder="请输入"/> <el-select v-model="formData.toiletId" placeholder="请选择" style="width:100%" clearable>
</el-form-item> <el-option v-for="(item,key) in toiletList" :key="key" :label="item.name"
<el-form-item label="巡检类型:"> :value="item.ID"/>
<el-select v-model="formData.type" placeholder="请选择" style="width:100%" clearable>
<el-option v-for="(item,key) in partol_typeOptions" :key="key" :label="item.label"
:value="item.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -130,7 +133,9 @@ ...@@ -130,7 +133,9 @@
findQshPartol, findQshPartol,
getQshPartolList getQshPartolList
} from '@/api/qshPartol' } from '@/api/qshPartol'
import {
getQshToiletList
} from '@/api/qshToilet'
// 全量引入格式化工具 请按需保留 // 全量引入格式化工具 请按需保留
import {getDictFunc, formatDate, formatBoolean, filterDict} from '@/utils/format' import {getDictFunc, formatDate, formatBoolean, filterDict} from '@/utils/format'
import {ElMessage, ElMessageBox} from 'element-plus' import {ElMessage, ElMessageBox} from 'element-plus'
...@@ -144,7 +149,7 @@ ...@@ -144,7 +149,7 @@
image: '', image: '',
partolName: '', partolName: '',
title: '', title: '',
toiletId: 0, toiletId: '',
type: undefined, type: undefined,
}) })
...@@ -153,6 +158,7 @@ ...@@ -153,6 +158,7 @@
const total = ref(0) const total = ref(0)
const pageSize = ref(10) const pageSize = ref(10)
const tableData = ref([]) const tableData = ref([])
const toiletList = ref([])
const searchInfo = ref({}) const searchInfo = ref({})
// 重置 // 重置
...@@ -192,6 +198,15 @@ ...@@ -192,6 +198,15 @@
getTableData() getTableData()
// 公厕列表查询
const getTableData_2 = async () => {
const table = await getQshToiletList({page: 1, pageSize: 99})
if (table.code === 0) {
toiletList.value = table.data.list
}
}
getTableData_2();
// ============== 表格控制部分结束 =============== // ============== 表格控制部分结束 ===============
// 获取需要的字典 可能为空 按需保留 // 获取需要的字典 可能为空 按需保留
...@@ -300,7 +315,7 @@ ...@@ -300,7 +315,7 @@
image: '', image: '',
partolName: '', partolName: '',
title: '', title: '',
toiletId: 0, toiletId: '',
type: undefined, type: undefined,
} }
} }
......
...@@ -55,8 +55,6 @@ ...@@ -55,8 +55,6 @@
<el-table-column align="left" label="经度" prop="lng" min-width="120"/> <el-table-column align="left" label="经度" prop="lng" min-width="120"/>
<el-table-column align="left" label="管理人员" prop="manager" min-width="120"/> <el-table-column align="left" label="管理人员" prop="manager" min-width="120"/>
<el-table-column align="left" label="管理员联系电话" prop="managerPhone" min-width="140"/> <el-table-column align="left" label="管理员联系电话" prop="managerPhone" min-width="140"/>
<el-table-column align="left" label="监控信息" prop="monitor" min-width="120"/>
<el-table-column align="left" label="创建时间" min-width="180"> <el-table-column align="left" label="创建时间" min-width="180">
<template #default="scope">{{ formatDate(scope.row.CreatedAt) }}</template> <template #default="scope">{{ formatDate(scope.row.CreatedAt) }}</template>
</el-table-column> </el-table-column>
...@@ -83,12 +81,24 @@ ...@@ -83,12 +81,24 @@
</div> </div>
</div> </div>
<el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="弹窗操作"> <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" title="弹窗操作">
<el-form :model="formData" label-position="right" label-width="80px"> <el-form :model="formData" label-position="right" label-width="120px">
<el-form-item label="点位名称:">
<el-input v-model="formData.name" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="公厕类型:">
<el-select v-model="formData.type" placeholder="请选择" style="width:100%" clearable>
<el-option v-for="(item,key) in typeOptions" :key="key" :label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="公厕地址:"> <el-form-item label="公厕地址:">
<el-input v-model="formData.address" clearable placeholder="请输入"/> <el-input v-model="formData.address" clearable placeholder="请输入"/>
</el-form-item> </el-form-item>
<el-form-item label="点位图片:"> <el-form-item label="展示图片:">
<el-input v-model="formData.image" clearable placeholder="请输入"/> <new-upload v-if="dialogFormVisible" :list="[formData.showImage]" @upload="(file)=>formData.showImage = file[0]"></new-upload>
</el-form-item>
<el-form-item label="轮播图片:">
<new-upload v-if="dialogFormVisible" :limit="9" :list="formData.image?formData.image.split(','):[]" @upload="(file)=>formData.image = file.join(',')" :multiply="true"></new-upload>
</el-form-item> </el-form-item>
<el-form-item label="纬度:"> <el-form-item label="纬度:">
<el-input v-model="formData.lat" clearable placeholder="请输入"/> <el-input v-model="formData.lat" clearable placeholder="请输入"/>
...@@ -105,18 +115,6 @@ ...@@ -105,18 +115,6 @@
<el-form-item label="监控信息:"> <el-form-item label="监控信息:">
<el-input v-model="formData.monitor" clearable placeholder="请输入"/> <el-input v-model="formData.monitor" clearable placeholder="请输入"/>
</el-form-item> </el-form-item>
<el-form-item label="点位名称:">
<el-input v-model="formData.name" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="展示图片:">
<el-input v-model="formData.showImage" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="公厕类型:">
<el-select v-model="formData.type" placeholder="请选择" style="width:100%" clearable>
<el-option v-for="(item,key) in typeOptions" :key="key" :label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
......
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