Commit 9be7af28 authored by lei's avatar lei

add:安全检查list接口、首页安全信息接口联调

parent f1d55a71
This diff is collapsed.
This diff is collapsed.
...@@ -2,101 +2,103 @@ ...@@ -2,101 +2,103 @@
* 请求拦截、相应拦截、错误统一处理 * 请求拦截、相应拦截、错误统一处理
*/ */
// 环境的切换 // 环境的切换
axios.defaults.baseURL = 'http://192.168.3.37:8036' axios.defaults.baseURL = 'http://192.168.2.16:8080'
axios.defaults.timeout = 50000 axios.defaults.timeout = 50000
// post请求头 // post请求头
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
axios.defaults.headers.post['Content-Type'] = 'application/json' axios.defaults.headers.post['Content-Type'] = 'application/json'
axios.defaults.headers.common['systemId'] = '1' axios.defaults.headers.common['systemId'] = '1'
axios.defaults.headers.common['Authorization'] = localStorage.getItem('Authorization') axios.defaults.headers.common['Authorization'] =
localStorage.getItem('Authorization')
// 请求拦截器 // 请求拦截器
axios.interceptors.request.use(config => { axios.interceptors.request.use((config) => {
console.log('request拦截器', config) vant.Toast.loading({
vant.Toast.loading({ message: '加载中...',
message: '加载中...', forbidClick: true,
forbidClick: true, loadingType: 'spinner',
loadingType: 'spinner', })
}); return config
return config
}) })
// 响应拦截器 // 响应拦截器
axios.interceptors.response.use((res) => { axios.interceptors.response.use(
// 成功的响应数据 服务器的相关的数据返回来之后,响应拦截器能够检测到,可以做一些事 (res) => {
// 成功的响应数据 服务器的相关的数据返回来之后,响应拦截器能够检测到,可以做一些事
vant.Toast.clear()
return res;
}, (error) => {
// 响应失败的时候的回调函数
return Promise.reject(new Error(error))
})
vant.Toast.clear()
return res
},
(error) => {
// 响应失败的时候的回调函数
return Promise.reject(new Error(error))
}
)
var http = { var http = {
get: function(url, params) { get: function (url, params) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios axios
.get(url, { .get(url, {
params: params params: params,
}) })
.then(res => { .then((res) => {
resolve(res.data) resolve(res.data)
}) })
.catch(err => { .catch((err) => {
reject(err.data) reject(err.data)
}) })
}) })
}, },
post: function(url, params) { post: function (url, params) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios axios
.post(url, params) .post(url, params)
.then(res => { .then((res) => {
let response = res.data let response = res.data
console.log('res.statusCode', response) console.log('res.statusCode', response)
if (response.statusCode >= 300 || response.status >= 300) { if (response.statusCode >= 300 || response.status >= 300) {
// alert('系统发生错误') // alert('系统发生错误')
vant.Dialog.alert({ vant.Dialog.alert({
title: '信息提示', title: '信息提示',
message: response.message, message: response.message,
}) })
return return
} }
resolve(res.data) resolve(res.data)
}) })
.catch(err => { .catch((err) => {
reject(err.data) reject(err.data)
}) })
}) })
}, },
postFile: function(url, params) { postFile: function (url, params) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios({ axios({
url, url,
method: 'post', method: 'post',
data: params, data: params,
headers: { headers: {
'Content-Type': 'application/json', // 'multipart/form-data;', 'Content-Type': 'application/json', // 'multipart/form-data;',
'Authorization': localStorage.getItem('Authorization') Authorization: localStorage.getItem('Authorization'),
}, },
}).then(res => { })
let response = res.data .then((res) => {
console.log('res.statusCode', response) let response = res.data
if (response.statusCode >= 300 || response.status >= 300) { console.log('res.statusCode', response)
// alert('系统发生错误') if (response.statusCode >= 300 || response.status >= 300) {
vant.Dialog.alert({ // alert('系统发生错误')
title: '信息提示', vant.Dialog.alert({
message: response.message, title: '信息提示',
}) message: response.message,
return })
} return
resolve(res.data) }
}) resolve(res.data)
.catch(err => { })
reject(err.data) .catch((err) => {
}) reject(err.data)
}) })
}, })
},
} }
...@@ -34,6 +34,8 @@ document.write('<script type="text/javascript" src="' + contextPath + '/sdk/vue. ...@@ -34,6 +34,8 @@ document.write('<script type="text/javascript" src="' + contextPath + '/sdk/vue.
<script type="text/javascript" src="' + contextPath + '/sdk/flexible.js"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/flexible.js"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/util.js?rev=' + jsVersion + '"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/util.js?rev=' + jsVersion + '"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/jssdk2/apiKeyMap.js?rev=' + jsVersion + '"></script>\ <script type="text/javascript" src="' + contextPath + '/sdk/jssdk2/apiKeyMap.js?rev=' + jsVersion + '"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/axios.min.js"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/axios_http.js"></script>\
<script type="text/javascript" src="' + contextPath + '/sdk/http.js?rev=' + jsVersion + '"></script>'); <script type="text/javascript" src="' + contextPath + '/sdk/http.js?rev=' + jsVersion + '"></script>');
......
...@@ -14,36 +14,36 @@ ...@@ -14,36 +14,36 @@
<div class="header"> <div class="header">
<!-- <div class="level">安全等级</div> --> <!-- <div class="level">安全等级</div> -->
<div class="title"> <div class="title">
<img src="../image/code/sj.png" alt=""><span>威海市宝威酒店有限公司</span> <img src="../image/code/sj.png" alt=""><span>{{userInfo.unitName}}</span>
</div> </div>
<div class="detail"> <div class="detail">
<van-row> <van-row>
<van-col span="24">场所类型: 小餐饮</van-col> <van-col span="24">场所类型: {{userInfo.smallPlaceTypeName}}</van-col>
</van-row> </van-row>
<van-row type="flex" justify="space-around" <van-row type="flex" justify="space-around"
style="width:100%; margin-top: .3rem; margin-bottom: .3rem;"> style="width:100%; margin-top: .3rem; margin-bottom: .3rem;">
<van-col span="6">自查数:75</van-col> <van-col span="6">自查数:{{userData.checkSelfCount}}</van-col>
<van-col span="6">检查数:75</van-col> <van-col span="6">检查数:{{userData.checkCount}}</van-col>
<van-col span="6">隐患数:75</van-col> <van-col span="6">隐患数:{{userData.hiddenCount}}</van-col>
<van-col span="6">未整改:75</van-col> <van-col span="6">未整改:{{userData.hiddenNoReCount}}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="24">山东省威海市环翠区和谐街35-6</van-col> <van-col span="24">{{userInfo.businessAddress}}</van-col>
</van-row> </van-row>
</div> </div>
<!-- Tab栏 --> <!-- Tab栏 -->
<van-tabs v-model:active="activeTab" title-active-color="#1989fa" line-height="2px" <van-tabs v-model:active="activeTab" @click="getMerchantSelfCheckData" title-active-color="#1989fa" line-height="2px"
style="margin-bottom: 15px;"> style="margin-bottom: 15px;">
<van-tab title="检查记录"></van-tab> <van-tab title="检查记录" name="1"></van-tab>
<van-tab title="自查记录"></van-tab> <van-tab title="自查记录" name="2"></van-tab>
</van-tabs> </van-tabs>
</div> </div>
<van-list> <van-list>
<van-cell v-for="item in filteredHazards" :key="item.id"> <van-cell v-for="item in hazardList" :key="item.id">
<div style="width: 100%;"> <div style="width: 100%;">
<!-- 第一行:隐患描述 --> <!-- 第一行:隐患描述 -->
<div style=" <div style="
...@@ -54,17 +54,17 @@ ...@@ -54,17 +54,17 @@
font-size: 0.3rem; font-size: 0.3rem;
font-weight: bold; font-weight: bold;
font-family: PingFang SC; font-family: PingFang SC;
">{{ item.description }}</div> ">{{ item.remark }}</div>
<!-- 第二行:状态和时间 --> <!-- 第二行:状态和时间 -->
<div style="display: flex; justify-content: start; gap: .34rem; margin: 8px 0;"> <div style="display: flex; justify-content: start; gap: .34rem; margin: 8px 0;">
<span style="color: #737373; font-size: 0.28rem;">检查时间:{{ item.date }}</span> <span style="color: #737373; font-size: 0.28rem;">检查时间:{{ item.checkTime }}</span>
</div> </div>
<!-- 第三行:商家和箭头 --> <!-- 第三行:商家和箭头 -->
<div style="display: flex; justify-content: start; gap: .4rem; align-items: center;"> <div style="display: flex; justify-content: start; gap: .4rem; align-items: center;">
<span>检查人:XXX</span> <span>检查人:{{item.checkPeople}}</span>
<span>隐患数:985</span> <span>隐患数:{{item.hiddenCount}}</span>
<span>未整改:21</span> <span>未整改:{{item.notRectifiedCount}}</span>
</div> </div>
</div> </div>
</van-cell> </van-cell>
......
// 在原有Vue实例中添加 var VUE = null
new Vue({ window.addEventListener('load', function () {
el: '#app', VUE = new Vue({
data() { el: '#app',
return { data() {
// 新增子Tab数据 return {
subActiveTab: 0, // 新增子Tab数据
hazardList: [{ activeTab: '1',
id: 1, hazardList: [
description: '消防通道被货物堵塞,存在严重安全隐患', // 更多示例数据...
status: '待审核', ],
date: '2024-03-15', // 新增以下数据
shop: 'XX餐饮店', userInfo: {},
type: 2 userData: {
}, checkCount: 0, //检查数
{ checkSelfCount: 0, //自查数
id: 2, hiddenCount: 0, //隐患数
description: '消防通道被货物堵塞,存在严重安全隐患', hiddenNoReCount: 0, //未整改数
status: '待整改', },
date: '2024-03-15', }
shop: 'XX餐饮店', },
type: 2 created() {
}, this.init()
// 更多示例数据... },
], computed: {},
activeTab: 0, methods: {
showTimePicker: false, //初始化页面
// 新增以下数据 init() {
showTypePicker: false, this.getUserInfo()
typeOptions: ['小餐饮', '酒店', '商场', '学校', '医疗机构'], this.getUserData()
formData: { this.getMerchantSelfCheckData()
principal: '', },
phone: '', /**请求数据 */
area: '', // 获取用户数据的方法
businessHours: '', getUserData() {
type: '', // 新增类型字段 http
}, .get('/gq/checkRecord/merHomeStatistics?date=' + this.selectedDate)
checkList: [{ .then((res) => {
id: 1, if (res.code == 200) {
date: '2024-03-15', this.userData = res.data
result: '合格' }
}, })
{ },
id: 2, //获取用户信息
date: '2024-03-14', getUserInfo() {
result: '不合格' http.get('/gq/information/getAll/141 ').then((res) => {
} if (res.code !== 200 && res.data == null) {
] return
} }
}, if (res.data.roleDeptNameVo.roleName == '商户') {
computed: { this.userInfo = {
filteredHazards() { userType: 'sj', // 登录用户type
const statusMap = ['全部', '待审核', '待整改', '已整改']; userId: '1', // 登录用户id
return this.hazardList.filter(item => userName: '张三', // 登录用户name
this.subActiveTab === 0 ? true : item.status === statusMap[this.subActiveTab] deptId: '1', // 登录用户部门id
); deptName: res.data.roleDeptNameVo.deptName, // 登录用户部门name
} businessAddress: res.data.merchantInfoNumVo.businessAddress, //
}, smallPlaceTypeName: res.data.merchantInfoNumVo.smallPlaceTypeName, //
methods: { unitName: res.data.merchantInfoNumVo.unitName, //
// 新增选择确认方法 role: 'dudao',
onConfirmType(value) { roleName: '商家',
this.formData.type = value; }
this.showTypePicker = false; }
}, })
onConfirmTime(time) { },
this.formData.businessHours = time; //获取商户自查数据
this.showTimePicker = false; getMerchantSelfCheckData() {
}, http
statusTagType(status) { .get(
const types = { '/gq/checkRecord/list?merId=1&pageSize=10&pageNum=0&type=' +
'待审核': 'warning', this.activeTab
'待整改': 'primary', )
'已整改': 'success', .then((res) => {
'整改逾期': 'danger', this.hazardList = res.rows
}; })
return types[status] || ''; },
}, },
viewDetail(id) { })
console.log('查看详情:', id); })
// 这里添加跳转逻辑
}
}
});
\ No newline at end of file
// 在原有Vue实例中添加 var VUE = null
new Vue({ window.addEventListener("load", function() {
el: '#app', VUE = new Vue({
data() { // 在原有Vue实例中添加
return { el: '#app',
shanghuName: '', data() {
// 新增子Tab数据 return {
subActiveTab: 0, shanghuName: '',
hazardList: [{ // 新增子Tab数据
id: 1, subActiveTab: 0,
description: '消防通道被货物堵塞,存在严重安全隐患', hazardList: [{
status: '待审核', id: 1,
date: '2024-03-15', description: '消防通道被货物堵塞,存在严重安全隐患',
shop: 'XX餐饮店', status: '待审核',
type: 2 date: '2024-03-15',
}, shop: 'XX餐饮店',
{ type: 2
id: 2, },
description: '消防通道被货物堵塞,存在严重安全隐患', {
status: '待整改', id: 2,
date: '2024-03-15', description: '消防通道被货物堵塞,存在严重安全隐患',
shop: 'XX餐饮店', status: '待整改',
type: 2 date: '2024-03-15',
}, shop: 'XX餐饮店',
// 更多示例数据... type: 2
], },
activeTab: 0, // 更多示例数据...
} ],
}, activeTab: 0,
computed: { }
filteredHazards() {
const statusMap = ['全部', '待审核', '待整改', '已整改'];
return this.hazardList.filter(item =>
this.subActiveTab === 0 ? true : item.status === statusMap[this.subActiveTab]
);
}
},
methods: {
onSearch() {
console.log('xxxx')
},
// 新增选择确认方法
onConfirmType(value) {
this.formData.type = value;
this.showTypePicker = false;
},
onConfirmTime(time) {
this.formData.businessHours = time;
this.showTimePicker = false;
}, },
statusTagType(status) { computed: {
const types = { filteredHazards() {
'待审核': 'warning', const statusMap = ['全部', '待审核', '待整改', '已整改'];
'待整改': 'primary', return this.hazardList.filter(item =>
'已整改': 'success', this.subActiveTab === 0 ? true : item.status === statusMap[this.subActiveTab]
'整改逾期': 'danger', );
}; }
return types[status] || '';
}, },
viewDetail(id) { methods: {
console.log('查看详情:', id); onSearch() {
// 这里添加跳转逻辑 console.log('xxxx')
},
// 新增选择确认方法
onConfirmType(value) {
this.formData.type = value;
this.showTypePicker = false;
},
onConfirmTime(time) {
this.formData.businessHours = time;
this.showTimePicker = false;
},
statusTagType(status) {
const types = {
'待审核': 'warning',
'待整改': 'primary',
'已整改': 'success',
'整改逾期': 'danger',
};
return types[status] || '';
},
viewDetail(id) {
console.log('查看详情:', id);
// 这里添加跳转逻辑
}
} }
} });
}); })
\ No newline at end of file \ No newline at end of file
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