Commit 768dc41f authored by mahui's avatar mahui

init

parent b335d09e
...@@ -69,11 +69,11 @@ function checkCode(res,url) { ...@@ -69,11 +69,11 @@ function checkCode(res,url) {
} }
export default { export default {
post(url,data, config = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }){ post(url,data, config = { 'Content-Type': 'application/json; charset=UTF-8' }){
let record = id; let record = id;
if(list.indexOf(url)==-1){ if(list.indexOf(url)==-1){
let token = myPublic.getStorage('token'); let token = myPublic.getStorage('qsh-wc-token');
config['token'] = token; url = url+'?access_token='+token;
} }
console.log(`request`,record,url+' ',data); console.log(`request`,record,url+' ',data);
console.time(`request ${record}`); console.time(`request ${record}`);
...@@ -82,7 +82,7 @@ export default { ...@@ -82,7 +82,7 @@ export default {
method: 'post', method: 'post',
baseURL: API_HOST, baseURL: API_HOST,
url, url,
data: qs.stringify(data), data: JSON.stringify(data),
headers: config headers: config
}).then(response =>{ }).then(response =>{
return checkStatus(response,url,record); return checkStatus(response,url,record);
......
...@@ -14,6 +14,10 @@ export default { ...@@ -14,6 +14,10 @@ export default {
}, },
//工单列表 //工单列表
getPatrolList(params) { getPatrolList(params) {
return http.post('web/toilet/getPatrolList', params) return http.post('web/patrol/getPatrolList', params)
},
//工单详情
getPatrolDetail(params) {
return http.post('web/patrol/getPatrolDetail', params)
} }
} }
...@@ -47,41 +47,41 @@ ...@@ -47,41 +47,41 @@
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, // longitude:119.779647,
latitude:30.24369, // latitude:30.24369,
name:'青山湖国家森林公园', // name:'青山湖国家森林公园',
address:'浙江省杭州市临安区老圣园路北', // address:'浙江省杭州市临安区老圣园路北',
type:1 // type:1
}, // },
{ // {
longitude:119.821796, // longitude:119.821796,
latitude:30.254114, // latitude:30.254114,
name:'青山湖街道', // name:'青山湖街道',
address:'浙江省杭州市临安区', // address:'浙江省杭州市临安区',
type:1 // type:1
}, // },
{ // {
longitude:119.790127, // longitude:119.790127,
latitude:30.255317, // latitude:30.255317,
name:'灵山', // name:'灵山',
address:'浙江省杭州市临安区', // address:'浙江省杭州市临安区',
type:2 // type:2
}, // },
{ // {
longitude:119.852565, // longitude:119.852565,
latitude:30.2528, // latitude:30.2528,
name:'青山湖互通', // name:'青山湖互通',
address:'浙江省杭州市临安区', // address:'浙江省杭州市临安区',
type:1 // type:1
}, // },
{ // {
longitude:119.823904, // longitude:119.823904,
latitude:30.24808, // latitude:30.24808,
name:'青山中学', // name:'青山中学',
address:'浙江省杭州市临安区', // address:'浙江省杭州市临安区',
type:1 // type:1
}, // },
] ]
}); });
const user = computed(()=>{ const user = computed(()=>{
...@@ -98,13 +98,24 @@ ...@@ -98,13 +98,24 @@
getList(); getList();
} }
function getList() { function getList() {
let p = {
page:1,
page_size:99
};
api.toiletList(p).then((res)=>{
if(res.code==0){
if(Array.isArray(res.data.list)){
state.list = [...res.data.list];
for (let item of state.list) { for (let item of state.list) {
const marker = new BMapGL.Point(item.longitude, item.latitude); const marker = new BMapGL.Point(item.lng, item.lat);
mapShow(marker, item, function (i) { mapShow(marker, item, function (i) {
}); });
} }
} }
}
});
}
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="${require("@/assets/img/e.png")}" />`;
...@@ -172,8 +183,8 @@ ...@@ -172,8 +183,8 @@
} }
} }
function seeDetail(item){ function seeDetail(item){
state.site_id = item.ID;
state.show = true; state.show = true;
state.site_id = item.site_id||'12';
} }
onMounted(()=>{ onMounted(()=>{
nextTick(()=>{ nextTick(()=>{
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</div> </div>
<div class="row"> <div class="row">
<span class="icon icon-17"></span> <span class="icon icon-17"></span>
<input class="input" type="password" v-model="password" placeholder="请输入密码" /> <input class="input" type="password" v-model="password" placeholder="请输入密码" @keyup.enter="submit"/>
</div> </div>
<div class="opt"> <div class="opt">
<span class="btn" @click="submit">登录</span> <span class="btn" @click="submit">登录</span>
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
if(res.data){ if(res.data){
myPublic.setStorage("qsh-wc-token",res.data); myPublic.setStorage("qsh-wc-token",res.data);
await router.replace({path:"/home"}); await router.replace({path:"/home"});
window.reload();
} }
} }
}) })
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</div> </div>
<div class="row-one"> <div class="row-one">
<span class="row-name">巡检公厕单位</span> <span class="row-name">巡检公厕单位</span>
<span class="row-content">{{detail.name}}</span> <span class="row-content">{{detail.toiletId}}</span>
</div> </div>
<div class="row-one"> <div class="row-one">
<span class="row-name">巡检类型</span> <span class="row-name">巡检类型</span>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</div> </div>
<div class="row-one baseline"> <div class="row-one baseline">
<span class="row-name">巡检内容</span> <span class="row-name">巡检内容</span>
<div class="row-content"> <div class="row-content" v-if="detail.content">
<template v-for="item in detail.content"> <template v-for="item in detail.content">
<div class="check-one"> <div class="check-one">
<el-checkbox v-model="item.check" :label="item.title" size="large" :disabled="true"/> <el-checkbox v-model="item.check" :label="item.title" size="large" :disabled="true"/>
...@@ -44,11 +44,11 @@ ...@@ -44,11 +44,11 @@
</div> </div>
<div class="row-one"> <div class="row-one">
<span class="row-name">站点巡检人</span> <span class="row-name">站点巡检人</span>
<span class="row-content">{{detail.staff}}</span> <span class="row-content">{{detail.partolName}}</span>
</div> </div>
<div class="row-one"> <div class="row-one">
<span class="row-name">提交时间</span> <span class="row-name">提交时间</span>
<span class="row-content">{{detail.create_time}}</span> <span class="row-content">{{detail.CreatedAt}}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
import {ElMessage} from "element-plus" import {ElMessage} from "element-plus"
import {Close} from "@element-plus/icons-vue" import {Close} from "@element-plus/icons-vue"
import api from "@/api/methods/index" import api from "@/api/methods/index"
import myPublic from "@/utils/public"
export default { export default {
name: 'order-detail', name: 'order-detail',
emits: ['update:modelValue'], emits: ['update:modelValue'],
...@@ -76,10 +77,10 @@ ...@@ -76,10 +77,10 @@
setup(props, {emit}) { setup(props, {emit}) {
const state = reactive({ const state = reactive({
detail: { detail: {
title:'2022年6月22日公厕巡检工作', title:'',
type:1, type:1,
name:'三号路公共厕所【GC-004】', name:'',
staff:'罗小飞', partolName:'',
content:[ content:[
{ {
title:'检查格栅井', title:'检查格栅井',
...@@ -148,7 +149,7 @@ ...@@ -148,7 +149,7 @@
], ],
description:'泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、\n' + description:'泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、泵站清淤很多、\n' +
'泵站清淤很多。', '泵站清淤很多。',
create_time:'2022-06-22 10:00' CreatedAt:'2022-06-22 10:00'
}, },
typeList:[ typeList:[
{ {
...@@ -233,7 +234,12 @@ ...@@ -233,7 +234,12 @@
} }
} }
function getDetail(){ function getDetail(){
api.getPatrolDetail({id:props.order_id}).then((res)=>{
if(res.code==0){
res.data.CreatedAt = myPublic.dateFormat.format(res.data.CreatedAt)
Object.assign(state.detail,{...res.data});
}
});
} }
function closeBox(){ function closeBox(){
emit('update:modelValue',false) emit('update:modelValue',false)
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
点位名称 点位名称
</div> </div>
<div class="table-content-cell cell"> <div class="table-content-cell cell">
{{detail.name}}
</div> </div>
</div> </div>
<div class="table-row"> <div class="table-row">
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
公厕类型 公厕类型
</div> </div>
<div class="table-content-cell cell"> <div class="table-content-cell cell">
{{wcTypeChange(detail.type).text}}
</div> </div>
</div> </div>
<div class="table-row"> <div class="table-row">
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
管理人员 管理人员
</div> </div>
<div class="table-content-cell cell"> <div class="table-content-cell cell">
{{detail.manager}}
</div> </div>
</div> </div>
<div class="table-row"> <div class="table-row">
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
联系电话 联系电话
</div> </div>
<div class="table-content-cell cell"> <div class="table-content-cell cell">
{{detail.managerPhone}}
</div> </div>
</div> </div>
<div class="table-row"> <div class="table-row">
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
地址 地址
</div> </div>
<div class="table-content-cell cell"> <div class="table-content-cell cell">
{{detail.address}}
</div> </div>
</div> </div>
</div> </div>
...@@ -225,8 +225,8 @@ ...@@ -225,8 +225,8 @@
<div class="cell flex_2"> <div class="cell flex_2">
<span class="type" :style="{backgroundColor:typeChange(item.type).color}">{{typeChange(item.type).text}}</span> <span class="type" :style="{backgroundColor:typeChange(item.type).color}">{{typeChange(item.type).text}}</span>
</div> </div>
<div class="cell flex_2">{{item.staff}}</div> <div class="cell flex_2">{{item.partolName}}</div>
<div class="cell flex_2">{{item.create_time}}</div> <div class="cell flex_2">{{item.CreatedAt}}</div>
<div class="cell"> <div class="cell">
<span class="opt" @click="seeDetail(item)">查看</span> <span class="opt" @click="seeDetail(item)">查看</span>
</div> </div>
...@@ -260,6 +260,7 @@ ...@@ -260,6 +260,7 @@
import {ref,reactive, toRefs, onMounted,nextTick,defineAsyncComponent} from "vue" import {ref,reactive, toRefs, onMounted,nextTick,defineAsyncComponent} from "vue"
import {ElMessage} from "element-plus" import {ElMessage} from "element-plus"
import api from "@/api/methods/index" import api from "@/api/methods/index"
import myPublic from "@/utils/public"
export default { export default {
name: 'site-detail', name: 'site-detail',
emits: ['update:modelValue'], emits: ['update:modelValue'],
...@@ -269,7 +270,7 @@ ...@@ -269,7 +270,7 @@
default: false default: false
}, },
site_id: { site_id: {
type: String, type: Number,
default: '' default: ''
}, },
}, },
...@@ -278,7 +279,6 @@ ...@@ -278,7 +279,6 @@
show:false, show:false,
order_id:'', order_id:'',
detail: { detail: {
name: '三号路公共厕所GC-004',
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"),
...@@ -395,78 +395,21 @@ ...@@ -395,78 +395,21 @@
pageSize:15, pageSize:15,
total:20, total:20,
data:[ data:[
{
title:'2022年6月22日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-22 10:00'
},
{
title:'2022年6月21日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-21 10:00'
},
{
title:'2022年6月20日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-20 10:00'
},
{
title:'2022年6月19日公厕巡检工作',
type:2,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-19 10:00'
},
{
title:'2022年6月18日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-18 10:00'
},
{
title:'2022年6月17日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-17 10:00'
},
{
title:'2022年6月16日公厕巡检工作',
type:2,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-16 10:00'
},
{
title:'2022年6月14日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-14 10:00'
},
{
title:'2022年6月13日公厕巡检工作',
type:1,
name:'三号路公共厕所【GC-004】',
staff:'罗小飞',
create_time:'2022-06-13 10:00'
},
] ]
} }
}); });
const chart = ref(null); const chart = ref(null);
function getDetail() { function getDetail() {
api.getToiletDetail({id:props.site_id}).then((res)=>{
if(res.code==0){
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;
} }
} }
});
}
function typeChange(type=1) { function typeChange(type=1) {
switch (type) { switch (type) {
case 1: case 1:
...@@ -590,14 +533,42 @@ ...@@ -590,14 +533,42 @@
function getOrderList(page=1){ function getOrderList(page=1){
let p = { let p = {
page:page, page:page,
pageSize:state.list.pageSize page_size:state.list.pageSize,
}; };
if(state.filter.time[0]&&state.filter.time[1]){
p.start_time = state.filter.time[0];
p.end_time = state.filter.time[1];
}
if(state.filter.type){
p.type = state.filter.type;
}
state.list.page = page; state.list.page = page;
api.getPatrolList(p).then((res)=>{
if(res.code==0){
if(Array.isArray(res.data.list)){
res.data.list.forEach((item)=>{
item.CreatedAt = myPublic.dateFormat.format(item.CreatedAt);
})
state.list.data = res.data.list;
state.list.total = res.data.total;
}
}
})
} }
function seeDetail(item){ function seeDetail(item){
state.order_id = item.order_id; state.order_id = item.ID;
state.show = true; state.show = true;
} }
function wcTypeChange(type=1) {
switch (type) {
case 1:
return {text:'有动力',color:'#3396fb'};
case 2:
return {text:'无动力',color:'#f78131'};
default:
return {text:'...',color:'#f78131'};
}
}
onMounted(async () => { onMounted(async () => {
getDetail(); getDetail();
await nextTick(()=>{ await nextTick(()=>{
...@@ -612,7 +583,8 @@ ...@@ -612,7 +583,8 @@
typeChange, typeChange,
getList, getList,
getOrderList, getOrderList,
seeDetail seeDetail,
wcTypeChange
} }
}, },
components: { components: {
......
...@@ -62,7 +62,7 @@ module.exports = { ...@@ -62,7 +62,7 @@ module.exports = {
port:80, port:80,
proxy: { proxy: {
'/api': { '/api': {
target: 'http://qsh-wc-test.linanquan.com/api', target: 'http://127.0.0.1:9801',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
// '^/apis': ''表示把/apis替换为‘’(空字符串),这样既能使用代理, // '^/apis': ''表示把/apis替换为‘’(空字符串),这样既能使用代理,
......
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