修改并优化了一些功能及bug
This commit is contained in:
@@ -61,7 +61,7 @@
|
||||
{
|
||||
"path": "pages/editchecklist/editchecklist",
|
||||
"style": {
|
||||
"navigationBarTitleText": "编辑检查表"
|
||||
"navigationBarTitleText": "添加检查表"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -145,16 +145,14 @@
|
||||
{
|
||||
"path":"pages/personalcenter/my",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的"
|
||||
// "navigationStyle": "custom"
|
||||
|
||||
"navigationBarTitleText": "我的",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path":"pages/personalcenter/helpcenter",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助中心"
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -96,12 +96,12 @@
|
||||
</view>
|
||||
<scroll-view class="popup-body" scroll-y :style="{ height: '60vh' }">
|
||||
<view class="flex margin-bottom">
|
||||
<view class="text-gray">隐患图片/视频</view>
|
||||
<view class="text-gray">隐患图片</view>
|
||||
<view class="text-red">*</view>
|
||||
</view>
|
||||
<up-upload :fileList="hazardFileList" @afterRead="afterRead" @delete="deletePic" name="1" multiple
|
||||
:maxCount="10"></up-upload>
|
||||
<view class="text-gray text-sm">必填:请上传现场照片或者视频作为隐患证据</view>
|
||||
<view class="text-gray text-sm">必填:请上传现场照片作为隐患证据</view>
|
||||
<view class="ai-btn-wrapper margin-top">
|
||||
<button class="ai-analyze-btn" :loading="aiAnalyzing" :disabled="aiAnalyzing" @click="handleAiAnalyze">
|
||||
<text v-if="!aiAnalyzing" class="cuIcon-magic ai-btn-icon"></text>
|
||||
@@ -383,7 +383,7 @@
|
||||
const confirmHazard = () => {
|
||||
// 表单验证
|
||||
if (hazardFileList.value.length === 0) {
|
||||
uni.showToast({ title: '请上传隐患图片/视频', icon: 'none' });
|
||||
uni.showToast({ title: '请上传隐患图片', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (!hazardFormData.title) {
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<template>
|
||||
<view class="padding page">
|
||||
<scroll-view scroll-x class="tab-scroll">
|
||||
<view class="tab-list">
|
||||
<view class="tab-item" :class="{ 'tab-active': activeIndex === index }"
|
||||
v-for="(item, index) in warningList" :key="index" @click="switchTab(index)">
|
||||
{{ item.name }}
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<!-- 查询条件 -->
|
||||
<view class="bg-white radius padding margin-top search-card">
|
||||
<view class="section-header">
|
||||
@@ -84,26 +76,33 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 数据列表标题 -->
|
||||
<view class="bg-white radius padding margin-top margin-bottom flex align-center">
|
||||
<!-- 数据列表标题 + 状态筛选 -->
|
||||
<view class="bg-white radius padding-top padding-left padding-right margin-top margin-bottom">
|
||||
<view class="flex align-center" style="margin-bottom: 20rpx;">
|
||||
<view class="list-title-bar"></view>
|
||||
<view class="text-bold text-black">日常安全检查预警数据列表</view>
|
||||
</view>
|
||||
<scroll-view scroll-x :show-scrollbar="false">
|
||||
<view class="status-tabs-inner">
|
||||
<view v-for="(tab, index) in statusTabs" :key="index" class="status-tab-item"
|
||||
:class="{ 'status-tab-active': activeStatusTab === index }" @click="switchStatusTab(index)">
|
||||
<text class="status-tab-text">{{ tab.label }}{{ tab.count != null ? tab.count : '' }}</text>
|
||||
<view v-if="activeStatusTab === index" class="status-tab-bar"></view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<view v-for="(item, index) in dataList" :key="item.id" class="list-card">
|
||||
<!-- 状态标签(斜角) -->
|
||||
<view class="status-tag" :class="getStatusClass(item.overdueDays)">
|
||||
<text class="status-text">{{ getStatusText(item.overdueDays, item.statusName) }}</text>
|
||||
<!-- 卡片头部:企业名称 + 状态标签 -->
|
||||
<view class="card-title-row">
|
||||
<view class="card-company-name">{{ item.deptName || '-' }}</view>
|
||||
<view class="card-status-tag" :class="getStatusClass(item.overdueDays)">
|
||||
<text>{{ getStatusText(item.overdueDays, item.statusName) }}</text>
|
||||
</view>
|
||||
|
||||
<view class="card-header">
|
||||
<view class="text-bold text-black">#{{ index + 1 }}</view>
|
||||
</view>
|
||||
<view class="card-row">
|
||||
<view class="row-label">企业名称:</view>
|
||||
<view class="row-value">{{ item.deptName || '-' }}</view>
|
||||
</view>
|
||||
<view class="card-body">
|
||||
<view class="card-row">
|
||||
<view class="row-label">计划名称:</view>
|
||||
<view class="row-value">{{ item.planName || '-' }}</view>
|
||||
@@ -129,6 +128,7 @@
|
||||
<view class="row-value">{{ item.overdueDays || '-' }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 空状态 -->
|
||||
<view v-if="dataList.length === 0" class="empty-tip">
|
||||
@@ -168,6 +168,23 @@ const dataList = ref([])
|
||||
const pageNum = ref(1)
|
||||
const pageSize = ref(20)
|
||||
|
||||
// 状态筛选 Tab
|
||||
const statusTabs = ref([
|
||||
{ label: '全部状态', value: 0, count: null },
|
||||
{ label: '逾期未检', value: 1, count: null },
|
||||
{ label: '严重逾期', value: 2, count: null },
|
||||
{ label: '期限内待检', value: 3, count: null },
|
||||
{ label: '逾期已完成', value: 4, count: null },
|
||||
{ label: '按期已完成', value: 5, count: null }
|
||||
])
|
||||
const activeStatusTab = ref(0)
|
||||
|
||||
const switchStatusTab = (index) => {
|
||||
activeStatusTab.value = index
|
||||
pageNum.value = 1
|
||||
fetchData()
|
||||
}
|
||||
|
||||
// 日期格式化(仅日期,用于页面显示)
|
||||
const formatDate = (timestamp) => {
|
||||
const date = new Date(timestamp)
|
||||
@@ -236,6 +253,11 @@ const fetchData = async () => {
|
||||
if (searchForm.deptName && searchForm.deptName.trim()) {
|
||||
params.deptName = searchForm.deptName.trim()
|
||||
}
|
||||
// 状态筛选
|
||||
const statusValue = statusTabs.value[activeStatusTab.value].value
|
||||
if (statusValue !== 0) {
|
||||
params.inspectionStatus = statusValue
|
||||
}
|
||||
|
||||
const res = await getInspectionWarningList(params)
|
||||
if (res.code === 0) {
|
||||
@@ -391,17 +413,41 @@ onShow(() => {
|
||||
|
||||
// 数据卡片
|
||||
.list-card {
|
||||
position: relative;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 2rpx 10rpx rgba(0, 0, 0, 0.08);
|
||||
border-left: 8rpx solid #2667E9;
|
||||
border-radius: 16rpx;
|
||||
padding: 30rpx;
|
||||
padding: 0;
|
||||
margin-bottom: 20rpx;
|
||||
overflow: hidden;
|
||||
|
||||
.card-header {
|
||||
margin-bottom: 20rpx;
|
||||
.card-title-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: linear-gradient(135deg, #4A7CF7 0%, #2667E9 100%);
|
||||
padding: 24rpx 30rpx;
|
||||
}
|
||||
|
||||
.card-company-name {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
flex: 1;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.card-status-tag {
|
||||
padding: 8rpx 24rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
.card-row {
|
||||
@@ -410,6 +456,10 @@ onShow(() => {
|
||||
font-size: 28rpx;
|
||||
line-height: 1.5;
|
||||
|
||||
&:first-of-type {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.row-label {
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
@@ -423,26 +473,6 @@ onShow(() => {
|
||||
}
|
||||
}
|
||||
|
||||
// 状态标签(斜角样式)
|
||||
.status-tag {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 160rpx;
|
||||
height: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: rotate(0deg);
|
||||
border-radius: 0 16rpx 0 16rpx;
|
||||
|
||||
.status-text {
|
||||
font-size: 22rpx;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
// 严重逾期 - 红色
|
||||
.status-serious {
|
||||
background: linear-gradient(135deg, #FF6B6B 0%, #EE5A5A 100%);
|
||||
@@ -470,4 +500,49 @@ onShow(() => {
|
||||
color: #999;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
// 状态筛选 Tab 样式
|
||||
.status-tabs {
|
||||
white-space: nowrap;
|
||||
background: #fff;
|
||||
border-radius: 16rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
|
||||
.status-tabs-inner {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
height: 88rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.status-tab-item {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 24rpx;
|
||||
height: 88rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.status-tab-text {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.status-tab-active .status-tab-text {
|
||||
color: #2667E9;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.status-tab-bar {
|
||||
position: absolute;
|
||||
bottom: 8rpx;
|
||||
width: 40rpx;
|
||||
height: 6rpx;
|
||||
background: #2667E9;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -26,7 +26,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 新增按钮 -->
|
||||
<button class="add-btn cuIcon-add bg-blue round" @click="openAddPopup">新增公司区域</button>
|
||||
<button class="add-btn bg-blue round" @click="openAddPopup">新增公司区域</button>
|
||||
|
||||
<!-- 新增/编辑弹窗组件 -->
|
||||
<AreaFormPopup
|
||||
@@ -118,10 +118,18 @@ const handlePopupClose = () => {
|
||||
const handleSubmit = async (formData) => {
|
||||
submitting.value = true;
|
||||
|
||||
//新增区域时候,是要先添加企业信息,然后才能新增企业的
|
||||
|
||||
try {
|
||||
// 从本地存储中获取企业id
|
||||
// const userInfoStr = uni.getStorageSync('userInfo');
|
||||
// const userInfo = userInfoStr ? JSON.parse(userInfoStr) : {};
|
||||
// console.log('userInfo:', userInfo);
|
||||
|
||||
const submitData = {
|
||||
name: formData.name,
|
||||
color: formData.color
|
||||
// enterpriseId: userInfo.deptId
|
||||
};
|
||||
|
||||
let res;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<!-- 新增按钮 -->
|
||||
<button class="add-btn" @click="goToAdd">
|
||||
<text class="cuIcon-add"></text>
|
||||
<!-- <text class="cuIcon-add"></text> -->
|
||||
<text>新增检查表</text>
|
||||
</button>
|
||||
</view>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<view class="padding page">
|
||||
<view class="padding bg-white radius margin-bottom" v-for="(item,index) in hazardList" :key="index">
|
||||
<view class="padding bg-white radius margin-bottom card-item" v-for="(item,index) in hazardList" :key="index">
|
||||
<view class="flex justify-between margin-bottom">
|
||||
<view class="text-bold text-black">{{item.hazardTitle}}</view>
|
||||
<view>{{item.statusName}}</view>
|
||||
<view class="text-bold text-black" style="flex: 1; margin-right: 16rpx;">{{item.hazardTitle}}</view>
|
||||
<view class="status-tag" :class="getStatusClass(item.verifyResultName)">{{item.verifyResultName || '未知'}}</view>
|
||||
</view>
|
||||
<view class="flex margin-bottom">
|
||||
<view class="text-gray">隐患日期:</view>
|
||||
@@ -366,6 +366,16 @@
|
||||
})
|
||||
};
|
||||
|
||||
// 根据审核状态返回对应样式类
|
||||
const getStatusClass = (status) => {
|
||||
switch (status) {
|
||||
case '待审核': return 'status-pending';
|
||||
case '已通过': return 'status-passed';
|
||||
case '已驳回': return 'status-rejected';
|
||||
default: return 'status-pending';
|
||||
}
|
||||
};
|
||||
|
||||
// 页面加载时获取销号申请列表
|
||||
onMounted(() => {
|
||||
fetchWriteOffList();
|
||||
@@ -378,6 +388,33 @@
|
||||
background: #EBF2FC;
|
||||
}
|
||||
|
||||
.status-tag {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 22rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
font-weight: 500;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.status-pending {
|
||||
background: #FFF7E6;
|
||||
color: #FA8C16;
|
||||
}
|
||||
|
||||
.status-passed {
|
||||
background: #F6FFED;
|
||||
color: #52C41A;
|
||||
}
|
||||
|
||||
.status-rejected {
|
||||
background: #FFF1F0;
|
||||
color: #F5222D;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
width: 600rpx;
|
||||
background: #fff;
|
||||
|
||||
@@ -623,12 +623,24 @@ const formatDateTime = (timestamp) => {
|
||||
};
|
||||
|
||||
const onStartDateConfirm = (e) => {
|
||||
formData.startDate = formatDateTime(e.value);
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
// 如果已经选了结束时间,校验开始时间不能晚于结束时间
|
||||
if (formData.endDate && new Date(selectedDate) > new Date(formData.endDate)) {
|
||||
uni.showToast({ title: '开始时间不能晚于结束时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
formData.startDate = selectedDate;
|
||||
showStartDatePicker.value = false;
|
||||
};
|
||||
|
||||
const onEndDateConfirm = (e) => {
|
||||
formData.endDate = formatDateTime(e.value);
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
// 如果已经选了开始时间,校验结束时间不能早于开始时间
|
||||
if (formData.startDate && new Date(selectedDate) < new Date(formData.startDate)) {
|
||||
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
formData.endDate = selectedDate;
|
||||
showEndDatePicker.value = false;
|
||||
};
|
||||
|
||||
@@ -1015,6 +1027,10 @@ const handleSave = async () => {
|
||||
uni.showToast({ title: '请选择计划时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
if (new Date(formData.endDate) < new Date(formData.startDate)) {
|
||||
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
|
||||
// 构建 items 数组(关联检查项id列表)
|
||||
const items = [];
|
||||
@@ -1024,12 +1040,12 @@ const handleSave = async () => {
|
||||
items.push(item.id );
|
||||
}
|
||||
});
|
||||
// 添加从检查库选择的检查项详情中的所有项的 pointId
|
||||
// 添加从检查库选择的检查项详情中的所有项的 itemId
|
||||
checkItems.value.forEach(lib => {
|
||||
if (lib.details && lib.details.length > 0) {
|
||||
lib.details.forEach(detail => {
|
||||
if (detail.pointId) {
|
||||
items.push(detail.pointId );
|
||||
if (detail.itemId) {
|
||||
items.push(detail.itemId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,10 +1,23 @@
|
||||
<template>
|
||||
<view class=" page padding">
|
||||
<view class="padding radius bg-white list-list margin-bottom" v-for="item in hiddenDangerList"
|
||||
<!-- 顶部状态筛选 Tab -->
|
||||
<scroll-view class="status-tabs" scroll-x :show-scrollbar="false">
|
||||
<view class="status-tabs-inner">
|
||||
<view v-for="(tab, index) in statusTabs" :key="index" class="status-tab-item"
|
||||
:class="{ 'status-tab-active': activeTab === index }" @click="activeTab = index">
|
||||
<text class="status-tab-text">{{ tab.label }}</text>
|
||||
<view v-if="activeTab === index" class="status-tab-bar"></view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
<view v-if="filteredList.length === 0" class="empty-tip text-gray text-center padding">暂无数据</view>
|
||||
|
||||
<view class="padding radius bg-white list-list margin-bottom" v-for="item in filteredList"
|
||||
:key="item.hazardId">
|
||||
<view class="flex justify-between margin-bottom">
|
||||
<view class="text-bold text-black">{{item.title}}</view>
|
||||
<view class="text-blue">{{item.statusName}}</view>
|
||||
<view class="text-blue" style="white-space: nowrap; flex-shrink: 0; margin-left: 16rpx;">{{item.statusName}}</view>
|
||||
</view>
|
||||
<view class="flex margin-bottom">
|
||||
<view class="text-gray">隐患等级:</view>
|
||||
@@ -56,12 +69,12 @@
|
||||
</view>
|
||||
<scroll-view class="popup-body" scroll-y>
|
||||
<view class="flex margin-bottom">
|
||||
<view class="text-gray">隐患图片/视频</view>
|
||||
<view class="text-gray">隐患图片</view>
|
||||
<view class="text-red">*</view>
|
||||
</view>
|
||||
<up-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
|
||||
:maxCount="10"></up-upload>
|
||||
<view class="text-gray text-sm">必填:请上传现场照片或者视频作为隐患证据</view>
|
||||
<view class="text-gray text-sm">必填:请上传现场照片作为隐患证据</view>
|
||||
<view class="ai-btn-wrapper margin-top">
|
||||
<button class="ai-analyze-btn" :loading="aiAnalyzing" :disabled="aiAnalyzing" @click="handleAiAnalyze">
|
||||
<text v-if="!aiAnalyzing" class="cuIcon-magic ai-btn-icon"></text>
|
||||
@@ -685,12 +698,31 @@
|
||||
});
|
||||
});
|
||||
|
||||
// 状态筛选 Tab
|
||||
const statusTabs = ref([
|
||||
{ label: '全部状态', value: '' },
|
||||
{ label: '待验收', value: '待验收' },
|
||||
{ label: '待整改', value: '待整改' },
|
||||
{ label: '待交办', value: '待交办' },
|
||||
{ label: '验收通过', value: '验收通过' }
|
||||
]);
|
||||
const activeTab = ref(0);
|
||||
|
||||
// 根据选中 tab 过滤列表
|
||||
const filteredList = computed(() => {
|
||||
const currentTab = statusTabs.value[activeTab.value];
|
||||
if (!currentTab || !currentTab.value) {
|
||||
return hiddenDangerList.value;
|
||||
}
|
||||
return hiddenDangerList.value.filter(item => item.statusName === currentTab.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.page {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
padding-top: 100rpx; // 给顶部固定Tab留出空间
|
||||
padding-bottom: 120rpx; // 给底部按钮留出空间
|
||||
}
|
||||
|
||||
@@ -730,6 +762,8 @@
|
||||
.level-tag {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
// 轻微隐患
|
||||
@@ -991,6 +1025,54 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 状态筛选 Tab 样式
|
||||
.status-tabs {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 99;
|
||||
white-space: nowrap;
|
||||
background: #fff;
|
||||
padding: 0 10rpx;
|
||||
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.status-tabs-inner {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
height: 88rpx;
|
||||
}
|
||||
|
||||
.status-tab-item {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 28rpx;
|
||||
height: 88rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.status-tab-text {
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.status-tab-active .status-tab-text {
|
||||
color: #2667E9;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.status-tab-bar {
|
||||
position: absolute;
|
||||
bottom: 8rpx;
|
||||
width: 40rpx;
|
||||
height: 6rpx;
|
||||
background: #2667E9;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -246,7 +246,8 @@
|
||||
}
|
||||
}
|
||||
};
|
||||
const infoList = ref([
|
||||
// 全部菜单项
|
||||
const allMenuList = [
|
||||
{
|
||||
name: '成员管理',
|
||||
src: '/static/home_icon/chengyuangaunli.png'
|
||||
@@ -263,10 +264,10 @@
|
||||
name: '检查清单',
|
||||
src: '/static/home_icon/jiachaqingdan.png'
|
||||
},
|
||||
{
|
||||
name: '检查记录',
|
||||
src: '/static/home_icon/jianchajilu.png'
|
||||
},
|
||||
// {
|
||||
// name: '检查记录',
|
||||
// src: '/static/home_icon/jianchajilu.png'
|
||||
// },
|
||||
{
|
||||
name: '证件管理',
|
||||
src: '/static/home_icon/zhengjianguanli.png'
|
||||
@@ -279,12 +280,19 @@
|
||||
name: '隐患销号',
|
||||
src: '/static/home_icon/yinhuanxiaohao.png'
|
||||
}
|
||||
// ,
|
||||
// {
|
||||
// name: '设备登记',
|
||||
// src: '/static/home_icon/shebeidengji.png'
|
||||
// }
|
||||
]);
|
||||
];
|
||||
|
||||
// common角色只能看到的菜单名称
|
||||
const commonMenuNames = ['隐患排查', '隐患销号'];
|
||||
|
||||
// 根据角色动态展示菜单
|
||||
const infoList = computed(() => {
|
||||
if (userInfo.role === 'common') {
|
||||
return allMenuList.filter(item => commonMenuNames.includes(item.name));
|
||||
}
|
||||
// admin、manage 及其他角色展示全部菜单
|
||||
return allMenuList;
|
||||
});
|
||||
const ViewDetails = (item) => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/plandetail/plandetail?id=${item.id}`
|
||||
@@ -690,6 +698,8 @@
|
||||
.level-tag {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
// 轻微隐患
|
||||
|
||||
@@ -3,9 +3,20 @@
|
||||
<!-- 顶部弥散渐变背景 -->
|
||||
<view class="header-bg">
|
||||
<!-- 弥散光斑效果 -->
|
||||
<view class="blur-circle circle-1"></view>
|
||||
<!-- <view class="blur-circle circle-1"></view>
|
||||
<view class="blur-circle circle-2"></view>
|
||||
<view class="blur-circle circle-3"></view>
|
||||
<view class="blur-circle circle-3"></view> -->
|
||||
<u-navbar
|
||||
title="我的"
|
||||
:placeholder="false"
|
||||
:fixed="false"
|
||||
:safeAreaInsetTop="true"
|
||||
bgColor="transparent"
|
||||
titleColor="#fff"
|
||||
:border="false"
|
||||
leftIcon=""
|
||||
>
|
||||
</u-navbar>
|
||||
|
||||
<!-- 标题 -->
|
||||
<!-- <view class="header-title">我的</view> -->
|
||||
@@ -19,7 +30,7 @@
|
||||
<view class="user-name">{{ userInfo.nickName || '未设置昵称' }}</view>
|
||||
<view class="user-phone">{{ userInfo.phonenumber || '未绑定手机' }}</view>
|
||||
</view>
|
||||
<button class="edit-btn" @click="editinfo()">编辑资料</button>
|
||||
<image class="edit-icon" src="/static/my/edit.png" mode="aspectFit" @click="editinfo()"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -184,15 +195,15 @@
|
||||
<style lang="scss" scoped>
|
||||
.page-wrapper {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
// 顶部弥散渐变背景
|
||||
.header-bg {
|
||||
position: relative;
|
||||
height: 400rpx;
|
||||
background: linear-gradient(180deg, #3B7FED 0%, #007AFF 50%, #8BB8F8 100%);
|
||||
padding-top: 60rpx;
|
||||
height: 480rpx;
|
||||
background: #2667E9;
|
||||
padding-top: 0;
|
||||
overflow: hidden;
|
||||
|
||||
// 弥散光斑效果
|
||||
@@ -277,27 +288,23 @@
|
||||
}
|
||||
}
|
||||
|
||||
.edit-btn {
|
||||
// padding: 16rpx 32rpx;
|
||||
background: rgba(255, 255, 255, 0.25);
|
||||
border: 2rpx solid rgba(255, 255, 255, 0.5);
|
||||
border-radius: 32rpx;
|
||||
font-size: 26rpx;
|
||||
color: #fff;
|
||||
backdrop-filter: blur(10rpx);
|
||||
|
||||
&::after {
|
||||
border: none;
|
||||
}
|
||||
.edit-icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// 内容区域
|
||||
.content-area {
|
||||
position: relative;
|
||||
margin-top: -60rpx;
|
||||
padding: 0 30rpx 50rpx;
|
||||
margin-top: -40rpx;
|
||||
padding: 40rpx 30rpx 50rpx;
|
||||
z-index: 10;
|
||||
background: #fff;
|
||||
border-top-left-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
min-height: calc(100vh - 360rpx);
|
||||
}
|
||||
|
||||
// 菜单卡片
|
||||
@@ -305,7 +312,7 @@
|
||||
background: #fff;
|
||||
border-radius: 24rpx;
|
||||
padding: 10rpx 0;
|
||||
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06);
|
||||
box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
|
||||
@@ -2,8 +2,8 @@ import Request from './luch-request/index.js';
|
||||
// 基础的url
|
||||
|
||||
|
||||
const baseUrl = 'https://yingji.hexieapi.com/prod-api';
|
||||
// const baseUrl = 'http://192.168.1.168:5004';
|
||||
// const baseUrl = 'https://yingji.hexieapi.com/prod-api';
|
||||
const baseUrl = 'http://192.168.1.168:5004';
|
||||
|
||||
// 图片/文件资源域名:去掉 /prod-api,便于 <image> / previewImage / downloadFile 直接访问
|
||||
const imageBaseUrl = baseUrl.replace(/\/prod-api\/?$/, '');
|
||||
|
||||
BIN
static/my/edit.png
Normal file
BIN
static/my/edit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1009 B |
8
unpackage/dist/cache/.vite/deps/_metadata.json
vendored
Normal file
8
unpackage/dist/cache/.vite/deps/_metadata.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"hash": "630e51e5",
|
||||
"configHash": "b64a06b8",
|
||||
"lockfileHash": "8f13fda0",
|
||||
"browserHash": "a2f0472e",
|
||||
"optimized": {},
|
||||
"chunks": {}
|
||||
}
|
||||
3
unpackage/dist/cache/.vite/deps/package.json
vendored
Normal file
3
unpackage/dist/cache/.vite/deps/package.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"assets.js","sources":["static/home_icon/jianbianbeijing.png","static/yujin/yujin_sousuo.png","static/yujin/yujin_tongji.png","static/my/Notification.png","static/my/Account.png","static/my/Customer service.png","static/my/Phone.png","static/index/index_bg.png","static/index/phone.png","static/index/lock.png","static/index/蒙版组 260.png"],"sourcesContent":["export default \"__VITE_ASSET__ea9fb36d__\"","export default \"__VITE_ASSET__8fe3bf4d__\"","export default \"__VITE_ASSET__d9a3c09a__\"","export default \"__VITE_ASSET__553a3ebb__\"","export default \"__VITE_ASSET__ebdbece8__\"","export default \"__VITE_ASSET__2a9450b4__\"","export default \"__VITE_ASSET__57c23edd__\"","export default \"__VITE_ASSET__f48d129d__\"","export default \"__VITE_ASSET__6b0aa87a__\"","export default \"__VITE_ASSET__e0160358__\"","export default \"__VITE_ASSET__d3a3f4fb__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;"}
|
||||
{"version":3,"file":"assets.js","sources":["static/home_icon/jianbianbeijing.png","static/yujin/yujin_sousuo.png","static/yujin/yujin_tongji.png","static/my/edit.png","static/my/Notification.png","static/my/Account.png","static/my/Customer service.png","static/my/Phone.png","static/index/index_bg.png","static/index/phone.png","static/index/lock.png","static/index/蒙版组 260.png"],"sourcesContent":["export default \"__VITE_ASSET__ea9fb36d__\"","export default \"__VITE_ASSET__8fe3bf4d__\"","export default \"__VITE_ASSET__d9a3c09a__\"","export default \"__VITE_ASSET__e5df6314__\"","export default \"__VITE_ASSET__553a3ebb__\"","export default \"__VITE_ASSET__ebdbece8__\"","export default \"__VITE_ASSET__2a9450b4__\"","export default \"__VITE_ASSET__57c23edd__\"","export default \"__VITE_ASSET__f48d129d__\"","export default \"__VITE_ASSET__6b0aa87a__\"","export default \"__VITE_ASSET__e0160358__\"","export default \"__VITE_ASSET__d3a3f4fb__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"checklist.js","sources":["pages/checklist/checklist.vue","F:/software/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2hlY2tsaXN0L2NoZWNrbGlzdC52dWU"],"sourcesContent":["<template>\r\n\t<view class=\"page padding\">\r\n\t\t<!-- 检查表列表 -->\r\n\t\t<view class=\"checklist-card\" v-for=\"item in list\" :key=\"item.id\">\r\n\t\t\t<view class=\"card-name\">{{ item.name }}</view>\r\n\t\t</view>\r\n\t\t\r\n\t\t<!-- 空状态 -->\r\n\t\t<view v-if=\"list.length === 0\" class=\"empty-tip\">\r\n\t\t\t<text>暂无检查表</text>\r\n\t\t</view>\r\n\t\t\r\n\t\t<!-- 新增按钮 -->\r\n\t\t<button class=\"add-btn\" @click=\"goToAdd\">\r\n\t\t\t<text class=\"cuIcon-add\"></text>\r\n\t\t\t<text>新增检查表</text>\r\n\t\t</button>\r\n\t</view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref } from 'vue'\r\nimport { onShow } from '@dcloudio/uni-app'\r\nimport { getCheckTableList } from '@/request/api.js'\r\n\r\nconst list = ref([])\r\n\r\n// 获取检查表列表\r\nconst fetchList = async () => {\r\n\ttry {\r\n\t\tconst res = await getCheckTableList({ pageNum: 1, pageSize: 100 });\r\n\t\tif (res.code === 0) {\r\n\t\t\tlist.value = res.data.records || [];\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('获取检查表列表失败:', error);\r\n\t}\r\n}\r\n\r\n// 跳转到新增页面\r\nconst goToAdd = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/editchecklist/editchecklist'\r\n\t})\r\n}\r\n\r\n// 每次显示页面时刷新数据\r\nonShow(() => {\r\n\tfetchList();\r\n})\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.page {\r\n\tmin-height: 100vh;\r\n\tbackground: #EBF2FC;\r\n\tpadding-bottom: 120rpx;\r\n}\r\n\r\n.checklist-card {\r\n\tbackground: #fff;\r\n\tborder-radius: 16rpx;\r\n\tpadding: 30rpx;\r\n\tmargin-bottom: 20rpx;\r\n\tbox-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);\r\n\t\r\n\t.card-name {\r\n\t\tfont-size: 32rpx;\r\n\t\tcolor: #333;\r\n\t\tfont-weight: 500;\r\n\t}\r\n}\r\n\r\n.empty-tip {\r\n\ttext-align: center;\r\n\tpadding: 100rpx 0;\r\n\tcolor: #999;\r\n\tfont-size: 28rpx;\r\n}\r\n\r\n.add-btn {\r\n\tposition: fixed;\r\n\tbottom: 40rpx;\r\n\tleft: 30rpx;\r\n\tright: 30rpx;\r\n\theight: 90rpx;\r\n\tbackground: linear-gradient(135deg, #667eea 0%, #2668EA 100%);\r\n\tborder-radius: 45rpx;\r\n\tcolor: #fff;\r\n\tfont-size: 32rpx;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tbox-shadow: 0 8rpx 20rpx rgba(102, 126, 234, 0.4);\r\n\t\r\n\t.cuIcon-add {\r\n\t\tmargin-right: 10rpx;\r\n\t\tfont-size: 36rpx;\r\n\t}\r\n}\r\n</style>","import MiniProgramPage from 'E:/hexieyun/ThreeChecksOneExposure_platform/12.07chongqixinde/三查一曝光小程序/threeonecheck_小程序/pages/checklist/checklist.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","getCheckTableList","uni","onShow"],"mappings":";;;;;;AAyBA,UAAM,OAAOA,cAAG,IAAC,EAAE;AAGnB,UAAM,YAAY,YAAY;AAC7B,UAAI;AACH,cAAM,MAAM,MAAMC,YAAAA,kBAAkB,EAAE,SAAS,GAAG,UAAU,IAAG,CAAE;AACjE,YAAI,IAAI,SAAS,GAAG;AACnB,eAAK,QAAQ,IAAI,KAAK,WAAW,CAAA;AAAA,QACjC;AAAA,MACD,SAAQ,OAAO;AACfC,kFAAc,cAAc,KAAK;AAAA,MACjC;AAAA,IACF;AAGA,UAAM,UAAU,MAAM;AACrBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACP,CAAE;AAAA,IACF;AAGAC,kBAAAA,OAAO,MAAM;AACZ;IACD,CAAC;;;;;;;;;;;;;;;;;;AChDD,GAAG,WAAW,eAAe;"}
|
||||
{"version":3,"file":"checklist.js","sources":["pages/checklist/checklist.vue","F:/software/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2hlY2tsaXN0L2NoZWNrbGlzdC52dWU"],"sourcesContent":["<template>\r\n\t<view class=\"page padding\">\r\n\t\t<!-- 检查表列表 -->\r\n\t\t<view class=\"checklist-card\" v-for=\"item in list\" :key=\"item.id\">\r\n\t\t\t<view class=\"card-name\">{{ item.name }}</view>\r\n\t\t</view>\r\n\t\t\r\n\t\t<!-- 空状态 -->\r\n\t\t<view v-if=\"list.length === 0\" class=\"empty-tip\">\r\n\t\t\t<text>暂无检查表</text>\r\n\t\t</view>\r\n\t\t\r\n\t\t<!-- 新增按钮 -->\r\n\t\t<button class=\"add-btn\" @click=\"goToAdd\">\r\n\t\t\t<!-- <text class=\"cuIcon-add\"></text> -->\r\n\t\t\t<text>新增检查表</text>\r\n\t\t</button>\r\n\t</view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref } from 'vue'\r\nimport { onShow } from '@dcloudio/uni-app'\r\nimport { getCheckTableList } from '@/request/api.js'\r\n\r\nconst list = ref([])\r\n\r\n// 获取检查表列表\r\nconst fetchList = async () => {\r\n\ttry {\r\n\t\tconst res = await getCheckTableList({ pageNum: 1, pageSize: 100 });\r\n\t\tif (res.code === 0) {\r\n\t\t\tlist.value = res.data.records || [];\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('获取检查表列表失败:', error);\r\n\t}\r\n}\r\n\r\n// 跳转到新增页面\r\nconst goToAdd = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/editchecklist/editchecklist'\r\n\t})\r\n}\r\n\r\n// 每次显示页面时刷新数据\r\nonShow(() => {\r\n\tfetchList();\r\n})\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.page {\r\n\tmin-height: 100vh;\r\n\tbackground: #EBF2FC;\r\n\tpadding-bottom: 120rpx;\r\n}\r\n\r\n.checklist-card {\r\n\tbackground: #fff;\r\n\tborder-radius: 16rpx;\r\n\tpadding: 30rpx;\r\n\tmargin-bottom: 20rpx;\r\n\tbox-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);\r\n\t\r\n\t.card-name {\r\n\t\tfont-size: 32rpx;\r\n\t\tcolor: #333;\r\n\t\tfont-weight: 500;\r\n\t}\r\n}\r\n\r\n.empty-tip {\r\n\ttext-align: center;\r\n\tpadding: 100rpx 0;\r\n\tcolor: #999;\r\n\tfont-size: 28rpx;\r\n}\r\n\r\n.add-btn {\r\n\tposition: fixed;\r\n\tbottom: 40rpx;\r\n\tleft: 30rpx;\r\n\tright: 30rpx;\r\n\theight: 90rpx;\r\n\tbackground: linear-gradient(135deg, #667eea 0%, #2668EA 100%);\r\n\tborder-radius: 45rpx;\r\n\tcolor: #fff;\r\n\tfont-size: 32rpx;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tbox-shadow: 0 8rpx 20rpx rgba(102, 126, 234, 0.4);\r\n\t\r\n\t.cuIcon-add {\r\n\t\tmargin-right: 10rpx;\r\n\t\tfont-size: 36rpx;\r\n\t}\r\n}\r\n</style>","import MiniProgramPage from 'E:/hexieyun/ThreeChecksOneExposure_platform/12.07chongqixinde/三查一曝光小程序/threeonecheck_小程序/pages/checklist/checklist.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","getCheckTableList","uni","onShow"],"mappings":";;;;;;AAyBA,UAAM,OAAOA,cAAG,IAAC,EAAE;AAGnB,UAAM,YAAY,YAAY;AAC7B,UAAI;AACH,cAAM,MAAM,MAAMC,YAAAA,kBAAkB,EAAE,SAAS,GAAG,UAAU,IAAG,CAAE;AACjE,YAAI,IAAI,SAAS,GAAG;AACnB,eAAK,QAAQ,IAAI,KAAK,WAAW,CAAA;AAAA,QACjC;AAAA,MACD,SAAQ,OAAO;AACfC,kFAAc,cAAc,KAAK;AAAA,MACjC;AAAA,IACF;AAGA,UAAM,UAAU,MAAM;AACrBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACP,CAAE;AAAA,IACF;AAGAC,kBAAAA,OAAO,MAAM;AACZ;IACD,CAAC;;;;;;;;;;;;;;;;;;AChDD,GAAG,WAAW,eAAe;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -2,8 +2,9 @@
|
||||
const _imports_0$6 = "/static/home_icon/jianbianbeijing.png";
|
||||
const _imports_0$5 = "/static/yujin/yujin_sousuo.png";
|
||||
const _imports_1$3 = "/static/yujin/yujin_tongji.png";
|
||||
const _imports_0$4 = "/static/my/Notification.png";
|
||||
const _imports_1$2 = "/static/my/Account.png";
|
||||
const _imports_0$4 = "/static/my/edit.png";
|
||||
const _imports_1$2 = "/static/my/Notification.png";
|
||||
const _imports_2 = "/static/my/Account.png";
|
||||
const _imports_0$3 = "/static/my/Customer service.png";
|
||||
const _imports_1$1 = "/static/my/Phone.png";
|
||||
const _imports_0$2 = "/static/index/index_bg.png";
|
||||
@@ -21,4 +22,5 @@ exports._imports_1 = _imports_1$3;
|
||||
exports._imports_1$1 = _imports_1$2;
|
||||
exports._imports_1$2 = _imports_1$1;
|
||||
exports._imports_1$3 = _imports_1;
|
||||
exports._imports_2 = _imports_2;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map
|
||||
|
||||
@@ -7094,9 +7094,9 @@ function isConsoleWritable() {
|
||||
return isWritable;
|
||||
}
|
||||
function initRuntimeSocketService() {
|
||||
const hosts = "172.22.64.1,192.168.1.144,127.0.0.1";
|
||||
const hosts = "172.29.160.1,192.168.1.144,127.0.0.1";
|
||||
const port = "8090";
|
||||
const id = "mp-weixin_6qfIum";
|
||||
const id = "mp-weixin_h9Tzlz";
|
||||
const lazy = typeof swan !== "undefined";
|
||||
let restoreError = lazy ? () => {
|
||||
} : initOnError();
|
||||
|
||||
@@ -149,7 +149,7 @@ const _sfc_main = {
|
||||
};
|
||||
const confirmHazard = () => {
|
||||
if (hazardFileList.value.length === 0) {
|
||||
common_vendor.index.showToast({ title: "请上传隐患图片/视频", icon: "none" });
|
||||
common_vendor.index.showToast({ title: "请上传隐患图片", icon: "none" });
|
||||
return;
|
||||
}
|
||||
if (!hazardFormData.title) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -33,6 +33,20 @@ const _sfc_main = {
|
||||
const dataList = common_vendor.ref([]);
|
||||
const pageNum = common_vendor.ref(1);
|
||||
const pageSize = common_vendor.ref(20);
|
||||
const statusTabs = common_vendor.ref([
|
||||
{ label: "全部状态", value: 0, count: null },
|
||||
{ label: "逾期未检", value: 1, count: null },
|
||||
{ label: "严重逾期", value: 2, count: null },
|
||||
{ label: "期限内待检", value: 3, count: null },
|
||||
{ label: "逾期已完成", value: 4, count: null },
|
||||
{ label: "按期已完成", value: 5, count: null }
|
||||
]);
|
||||
const activeStatusTab = common_vendor.ref(0);
|
||||
const switchStatusTab = (index) => {
|
||||
activeStatusTab.value = index;
|
||||
pageNum.value = 1;
|
||||
fetchData();
|
||||
};
|
||||
const formatDate = (timestamp) => {
|
||||
const date = new Date(timestamp);
|
||||
const year = date.getFullYear();
|
||||
@@ -89,6 +103,10 @@ const _sfc_main = {
|
||||
if (searchForm.deptName && searchForm.deptName.trim()) {
|
||||
params.deptName = searchForm.deptName.trim();
|
||||
}
|
||||
const statusValue = statusTabs.value[activeStatusTab.value].value;
|
||||
if (statusValue !== 0) {
|
||||
params.inspectionStatus = statusValue;
|
||||
}
|
||||
const res = await request_api.getInspectionWarningList(params);
|
||||
if (res.code === 0) {
|
||||
if (res.data.statistics) {
|
||||
@@ -102,7 +120,7 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/Inspectionwarning/Inspectionwarning.vue:255", "获取预警列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/Inspectionwarning/Inspectionwarning.vue:277", "获取预警列表失败:", error);
|
||||
}
|
||||
};
|
||||
const handleSearch = () => {
|
||||
@@ -114,64 +132,66 @@ const _sfc_main = {
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.f(_ctx.warningList, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.name),
|
||||
b: _ctx.activeIndex === index ? 1 : "",
|
||||
c: index,
|
||||
d: common_vendor.o(($event) => _ctx.switchTab(index), index)
|
||||
};
|
||||
}),
|
||||
b: common_assets._imports_0$1,
|
||||
c: common_vendor.t(searchForm.startDate || "请选择"),
|
||||
d: common_vendor.n(searchForm.startDate ? "date-value" : "date-placeholder"),
|
||||
e: common_vendor.o(($event) => showStartDatePicker.value = true),
|
||||
f: common_vendor.o(onStartDateConfirm),
|
||||
a: common_assets._imports_0$1,
|
||||
b: common_vendor.t(searchForm.startDate || "请选择"),
|
||||
c: common_vendor.n(searchForm.startDate ? "date-value" : "date-placeholder"),
|
||||
d: common_vendor.o(($event) => showStartDatePicker.value = true),
|
||||
e: common_vendor.o(onStartDateConfirm),
|
||||
f: common_vendor.o(($event) => showStartDatePicker.value = false),
|
||||
g: common_vendor.o(($event) => showStartDatePicker.value = false),
|
||||
h: common_vendor.o(($event) => showStartDatePicker.value = false),
|
||||
i: common_vendor.o(($event) => startDateValue.value = $event),
|
||||
j: common_vendor.p({
|
||||
h: common_vendor.o(($event) => startDateValue.value = $event),
|
||||
i: common_vendor.p({
|
||||
show: showStartDatePicker.value,
|
||||
mode: "date",
|
||||
modelValue: startDateValue.value
|
||||
}),
|
||||
k: common_vendor.t(searchForm.endDate || "请选择"),
|
||||
l: common_vendor.n(searchForm.endDate ? "date-value" : "date-placeholder"),
|
||||
m: common_vendor.o(($event) => showEndDatePicker.value = true),
|
||||
n: common_vendor.o(onEndDateConfirm),
|
||||
j: common_vendor.t(searchForm.endDate || "请选择"),
|
||||
k: common_vendor.n(searchForm.endDate ? "date-value" : "date-placeholder"),
|
||||
l: common_vendor.o(($event) => showEndDatePicker.value = true),
|
||||
m: common_vendor.o(onEndDateConfirm),
|
||||
n: common_vendor.o(($event) => showEndDatePicker.value = false),
|
||||
o: common_vendor.o(($event) => showEndDatePicker.value = false),
|
||||
p: common_vendor.o(($event) => showEndDatePicker.value = false),
|
||||
q: common_vendor.o(($event) => endDateValue.value = $event),
|
||||
r: common_vendor.p({
|
||||
p: common_vendor.o(($event) => endDateValue.value = $event),
|
||||
q: common_vendor.p({
|
||||
show: showEndDatePicker.value,
|
||||
mode: "date",
|
||||
modelValue: endDateValue.value
|
||||
}),
|
||||
s: common_vendor.o(($event) => searchForm.deptName = $event),
|
||||
t: common_vendor.p({
|
||||
r: common_vendor.o(($event) => searchForm.deptName = $event),
|
||||
s: common_vendor.p({
|
||||
placeholder: "请输入公司名称",
|
||||
border: "surround",
|
||||
modelValue: searchForm.deptName
|
||||
}),
|
||||
v: common_vendor.o(handleSearch),
|
||||
w: common_assets._imports_1,
|
||||
x: common_vendor.t(statistics.total),
|
||||
y: common_vendor.t(statistics.overdue),
|
||||
z: common_vendor.t(statistics.completed),
|
||||
A: common_vendor.t(statistics.pending),
|
||||
t: common_vendor.o(handleSearch),
|
||||
v: common_assets._imports_1,
|
||||
w: common_vendor.t(statistics.total),
|
||||
x: common_vendor.t(statistics.overdue),
|
||||
y: common_vendor.t(statistics.completed),
|
||||
z: common_vendor.t(statistics.pending),
|
||||
A: common_vendor.f(statusTabs.value, (tab, index, i0) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(tab.label),
|
||||
b: common_vendor.t(tab.count != null ? tab.count : ""),
|
||||
c: activeStatusTab.value === index
|
||||
}, activeStatusTab.value === index ? {} : {}, {
|
||||
d: index,
|
||||
e: activeStatusTab.value === index ? 1 : "",
|
||||
f: common_vendor.o(($event) => switchStatusTab(index), index)
|
||||
});
|
||||
}),
|
||||
B: common_vendor.f(dataList.value, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(getStatusText(item.overdueDays, item.statusName)),
|
||||
b: common_vendor.n(getStatusClass(item.overdueDays)),
|
||||
c: common_vendor.t(index + 1),
|
||||
d: common_vendor.t(item.deptName || "-"),
|
||||
e: common_vendor.t(item.planName || "-"),
|
||||
f: common_vendor.t(item.cycleName || "-"),
|
||||
g: common_vendor.t(item.taskDate || "-"),
|
||||
h: common_vendor.t(item.finishTime || "未完成"),
|
||||
i: common_vendor.t(item.executorName || "-"),
|
||||
j: common_vendor.t(item.overdueDays || "-"),
|
||||
k: item.id
|
||||
a: common_vendor.t(item.deptName || "-"),
|
||||
b: common_vendor.t(getStatusText(item.overdueDays, item.statusName)),
|
||||
c: common_vendor.n(getStatusClass(item.overdueDays)),
|
||||
d: common_vendor.t(item.planName || "-"),
|
||||
e: common_vendor.t(item.cycleName || "-"),
|
||||
f: common_vendor.t(item.taskDate || "-"),
|
||||
g: common_vendor.t(item.finishTime || "未完成"),
|
||||
h: common_vendor.t(item.executorName || "-"),
|
||||
i: common_vendor.t(item.overdueDays || "-"),
|
||||
j: item.id
|
||||
};
|
||||
}),
|
||||
C: dataList.value.length === 0
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -120,17 +120,38 @@
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
.list-card.data-v-00b99536 {
|
||||
position: relative;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 2rpx 10rpx rgba(0, 0, 0, 0.08);
|
||||
border-left: 8rpx solid #2667E9;
|
||||
border-radius: 16rpx;
|
||||
padding: 30rpx;
|
||||
padding: 0;
|
||||
margin-bottom: 20rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.list-card .card-header.data-v-00b99536 {
|
||||
margin-bottom: 20rpx;
|
||||
.list-card .card-title-row.data-v-00b99536 {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: linear-gradient(135deg, #4A7CF7 0%, #2667E9 100%);
|
||||
padding: 24rpx 30rpx;
|
||||
}
|
||||
.list-card .card-company-name.data-v-00b99536 {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
flex: 1;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.list-card .card-status-tag.data-v-00b99536 {
|
||||
padding: 8rpx 24rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
}
|
||||
.list-card .card-body.data-v-00b99536 {
|
||||
padding: 30rpx;
|
||||
}
|
||||
.list-card .card-row.data-v-00b99536 {
|
||||
display: flex;
|
||||
@@ -138,6 +159,9 @@
|
||||
font-size: 28rpx;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.list-card .card-row.data-v-00b99536:first-of-type {
|
||||
margin-top: 0;
|
||||
}
|
||||
.list-card .card-row .row-label.data-v-00b99536 {
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
@@ -147,23 +171,6 @@
|
||||
color: #333;
|
||||
word-break: break-all;
|
||||
}
|
||||
.status-tag.data-v-00b99536 {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 160rpx;
|
||||
height: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: rotate(0deg);
|
||||
border-radius: 0 16rpx 0 16rpx;
|
||||
}
|
||||
.status-tag .status-text.data-v-00b99536 {
|
||||
font-size: 22rpx;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
}
|
||||
.status-serious.data-v-00b99536 {
|
||||
background: linear-gradient(135deg, #FF6B6B 0%, #EE5A5A 100%);
|
||||
}
|
||||
@@ -182,3 +189,41 @@
|
||||
color: #999;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.status-tabs.data-v-00b99536 {
|
||||
white-space: nowrap;
|
||||
background: #fff;
|
||||
border-radius: 16rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
.status-tabs-inner.data-v-00b99536 {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
height: 88rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.status-tab-item.data-v-00b99536 {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 24rpx;
|
||||
height: 88rpx;
|
||||
position: relative;
|
||||
}
|
||||
.status-tab-text.data-v-00b99536 {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
}
|
||||
.status-tab-active .status-tab-text.data-v-00b99536 {
|
||||
color: #2667E9;
|
||||
font-weight: bold;
|
||||
}
|
||||
.status-tab-bar.data-v-00b99536 {
|
||||
position: absolute;
|
||||
bottom: 8rpx;
|
||||
width: 40rpx;
|
||||
height: 6rpx;
|
||||
background: #2667E9;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
@@ -61,6 +61,7 @@ const _sfc_main = {
|
||||
const submitData = {
|
||||
name: formData.name,
|
||||
color: formData.color
|
||||
// enterpriseId: userInfo.deptId
|
||||
};
|
||||
let res;
|
||||
if (isEdit.value) {
|
||||
@@ -78,7 +79,7 @@ const _sfc_main = {
|
||||
loadAreaList();
|
||||
}
|
||||
} catch (err) {
|
||||
common_vendor.index.__f__("error", "at pages/area/management.vue:144", "提交失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/area/management.vue:152", "提交失败:", err);
|
||||
common_vendor.index.showToast({ title: "操作失败", icon: "none" });
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
@@ -98,7 +99,7 @@ const _sfc_main = {
|
||||
loadAreaList();
|
||||
}
|
||||
} catch (err) {
|
||||
common_vendor.index.__f__("error", "at pages/area/management.vue:166", "删除失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/area/management.vue:174", "删除失败:", err);
|
||||
common_vendor.index.showToast({ title: "删除失败", icon: "none" });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view class="{{['padding', 'page', 'data-v-847f15e8', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{h}}"><view wx:if="{{a}}" class="area-list data-v-847f15e8"><view wx:for="{{b}}" wx:for-item="item" wx:key="f" class="padding bg-white radius margin-bottom data-v-847f15e8"><view class="flex justify-between data-v-847f15e8"><view class="data-v-847f15e8"><view class="text-bold text-black data-v-847f15e8">{{item.a}}</view><view class="margin-top flex align-center data-v-847f15e8"><text class="data-v-847f15e8">颜色:</text><view class="color-dot data-v-847f15e8" style="{{'background-color:' + item.b}}"></view><text class="margin-left-xs data-v-847f15e8">{{item.c}}</text></view></view><view class="data-v-847f15e8"><button class="bg-blue cu-btn data-v-847f15e8" bindtap="{{item.d}}">编辑</button><button class="bg-red cu-btn margin-left data-v-847f15e8" bindtap="{{item.e}}">删除</button></view></view></view></view><view wx:else class="empty-state data-v-847f15e8"><text class="text-gray data-v-847f15e8">暂无区域数据</text></view><button class="add-btn cuIcon-add bg-blue round data-v-847f15e8" bindtap="{{c}}">新增公司区域</button><area-form-popup wx:if="{{g}}" class="data-v-847f15e8" virtualHostClass="data-v-847f15e8" bindsubmit="{{d}}" bindclose="{{e}}" u-i="847f15e8-0" bind:__l="__l" bindupdateVisible="{{f}}" u-p="{{g}}"/></view>
|
||||
<view class="{{['padding', 'page', 'data-v-847f15e8', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{h}}"><view wx:if="{{a}}" class="area-list data-v-847f15e8"><view wx:for="{{b}}" wx:for-item="item" wx:key="f" class="padding bg-white radius margin-bottom data-v-847f15e8"><view class="flex justify-between data-v-847f15e8"><view class="data-v-847f15e8"><view class="text-bold text-black data-v-847f15e8">{{item.a}}</view><view class="margin-top flex align-center data-v-847f15e8"><text class="data-v-847f15e8">颜色:</text><view class="color-dot data-v-847f15e8" style="{{'background-color:' + item.b}}"></view><text class="margin-left-xs data-v-847f15e8">{{item.c}}</text></view></view><view class="data-v-847f15e8"><button class="bg-blue cu-btn data-v-847f15e8" bindtap="{{item.d}}">编辑</button><button class="bg-red cu-btn margin-left data-v-847f15e8" bindtap="{{item.e}}">删除</button></view></view></view></view><view wx:else class="empty-state data-v-847f15e8"><text class="text-gray data-v-847f15e8">暂无区域数据</text></view><button class="add-btn bg-blue round data-v-847f15e8" bindtap="{{c}}">新增公司区域</button><area-form-popup wx:if="{{g}}" class="data-v-847f15e8" virtualHostClass="data-v-847f15e8" bindsubmit="{{d}}" bindclose="{{e}}" u-i="847f15e8-0" bind:__l="__l" bindupdateVisible="{{f}}" u-p="{{g}}"/></view>
|
||||
@@ -1 +1 @@
|
||||
<view class="{{['page', 'padding', 'data-v-4d00090a', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{d}}"><view wx:for="{{a}}" wx:for-item="item" wx:key="b" class="checklist-card data-v-4d00090a"><view class="card-name data-v-4d00090a">{{item.a}}</view></view><view wx:if="{{b}}" class="empty-tip data-v-4d00090a"><text class="data-v-4d00090a">暂无检查表</text></view><button class="add-btn data-v-4d00090a" bindtap="{{c}}"><text class="cuIcon-add data-v-4d00090a"></text><text class="data-v-4d00090a">新增检查表</text></button></view>
|
||||
<view class="{{['page', 'padding', 'data-v-4d00090a', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{d}}"><view wx:for="{{a}}" wx:for-item="item" wx:key="b" class="checklist-card data-v-4d00090a"><view class="card-name data-v-4d00090a">{{item.a}}</view></view><view wx:if="{{b}}" class="empty-tip data-v-4d00090a"><text class="data-v-4d00090a">暂无检查表</text></view><button class="add-btn data-v-4d00090a" bindtap="{{c}}"><text class="data-v-4d00090a">新增检查表</text></button></view>
|
||||
@@ -244,6 +244,18 @@ const _sfc_main = {
|
||||
url: "/pages/closeout/editor"
|
||||
});
|
||||
};
|
||||
const getStatusClass = (status) => {
|
||||
switch (status) {
|
||||
case "待审核":
|
||||
return "status-pending";
|
||||
case "已通过":
|
||||
return "status-passed";
|
||||
case "已驳回":
|
||||
return "status-rejected";
|
||||
default:
|
||||
return "status-pending";
|
||||
}
|
||||
};
|
||||
common_vendor.onMounted(() => {
|
||||
fetchWriteOffList();
|
||||
});
|
||||
@@ -252,13 +264,14 @@ const _sfc_main = {
|
||||
a: common_vendor.f(hazardList.value, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.hazardTitle),
|
||||
b: common_vendor.t(item.statusName),
|
||||
c: common_vendor.t(item.hazardCreatedAt),
|
||||
d: common_vendor.t(item.responsibleDeptName),
|
||||
e: common_vendor.t(item.responsiblePerson),
|
||||
f: common_vendor.t(item.createdAt),
|
||||
g: common_vendor.o(($event) => editor(), index),
|
||||
h: index
|
||||
b: common_vendor.t(item.verifyResultName || "未知"),
|
||||
c: common_vendor.n(getStatusClass(item.verifyResultName)),
|
||||
d: common_vendor.t(item.hazardCreatedAt),
|
||||
e: common_vendor.t(item.responsibleDeptName),
|
||||
f: common_vendor.t(item.responsiblePerson),
|
||||
g: common_vendor.t(item.createdAt),
|
||||
h: common_vendor.o(($event) => editor(), index),
|
||||
i: index
|
||||
};
|
||||
}),
|
||||
b: common_vendor.o(openAddPopup),
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -28,6 +28,29 @@
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
}
|
||||
.status-tag.data-v-4b6250eb {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 22rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
font-weight: 500;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
align-self: flex-start;
|
||||
}
|
||||
.status-pending.data-v-4b6250eb {
|
||||
background: #FFF7E6;
|
||||
color: #FA8C16;
|
||||
}
|
||||
.status-passed.data-v-4b6250eb {
|
||||
background: #F6FFED;
|
||||
color: #52C41A;
|
||||
}
|
||||
.status-rejected.data-v-4b6250eb {
|
||||
background: #FFF1F0;
|
||||
color: #F5222D;
|
||||
}
|
||||
.popup-content.data-v-4b6250eb {
|
||||
width: 600rpx;
|
||||
background: #fff;
|
||||
|
||||
@@ -195,11 +195,21 @@ const _sfc_main = {
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
};
|
||||
const onStartDateConfirm = (e) => {
|
||||
formData.startDate = formatDateTime(e.value);
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
if (formData.endDate && new Date(selectedDate) > new Date(formData.endDate)) {
|
||||
common_vendor.index.showToast({ title: "开始时间不能晚于结束时间", icon: "none" });
|
||||
return;
|
||||
}
|
||||
formData.startDate = selectedDate;
|
||||
showStartDatePicker.value = false;
|
||||
};
|
||||
const onEndDateConfirm = (e) => {
|
||||
formData.endDate = formatDateTime(e.value);
|
||||
const selectedDate = formatDateTime(e.value);
|
||||
if (formData.startDate && new Date(selectedDate) < new Date(formData.startDate)) {
|
||||
common_vendor.index.showToast({ title: "结束时间不能早于开始时间", icon: "none" });
|
||||
return;
|
||||
}
|
||||
formData.endDate = selectedDate;
|
||||
showEndDatePicker.value = false;
|
||||
};
|
||||
const manualCheckItems = common_vendor.ref([]);
|
||||
@@ -228,7 +238,7 @@ const _sfc_main = {
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:669", "删除检查项失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:681", "删除检查项失败:", error);
|
||||
common_vendor.index.showToast({ title: "删除失败", icon: "none" });
|
||||
}
|
||||
} else {
|
||||
@@ -304,7 +314,7 @@ const _sfc_main = {
|
||||
hasMoreLaw.value = lawList.value.length < total;
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:756", "获取法规列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:768", "获取法规列表失败:", error);
|
||||
} finally {
|
||||
lawLoading.value = false;
|
||||
}
|
||||
@@ -384,7 +394,7 @@ const _sfc_main = {
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:856", "添加检查项失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:868", "添加检查项失败:", error);
|
||||
common_vendor.index.showToast({ title: "添加失败", icon: "none" });
|
||||
}
|
||||
};
|
||||
@@ -433,7 +443,7 @@ const _sfc_main = {
|
||||
hasMoreLibrary.value = libraryList.value.length < total;
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:916", "获取检查库列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:928", "获取检查库列表失败:", error);
|
||||
} finally {
|
||||
libraryLoading.value = false;
|
||||
}
|
||||
@@ -486,7 +496,7 @@ const _sfc_main = {
|
||||
selectedLibraries.value = [];
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:981", "获取检查库详情失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:993", "获取检查库详情失败:", error);
|
||||
common_vendor.index.showToast({ title: "添加失败", icon: "none" });
|
||||
}
|
||||
};
|
||||
@@ -519,6 +529,10 @@ const _sfc_main = {
|
||||
common_vendor.index.showToast({ title: "请选择计划时间", icon: "none" });
|
||||
return;
|
||||
}
|
||||
if (new Date(formData.endDate) < new Date(formData.startDate)) {
|
||||
common_vendor.index.showToast({ title: "结束时间不能早于开始时间", icon: "none" });
|
||||
return;
|
||||
}
|
||||
const items = [];
|
||||
manualCheckItems.value.forEach((item) => {
|
||||
if (item.id) {
|
||||
@@ -528,8 +542,8 @@ const _sfc_main = {
|
||||
checkItems.value.forEach((lib) => {
|
||||
if (lib.details && lib.details.length > 0) {
|
||||
lib.details.forEach((detail) => {
|
||||
if (detail.pointId) {
|
||||
items.push(detail.pointId);
|
||||
if (detail.itemId) {
|
||||
items.push(detail.itemId);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -586,7 +600,7 @@ const _sfc_main = {
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:1101", "保存失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/editchecklist/editchecklist.vue:1117", "保存失败:", error);
|
||||
common_vendor.index.showToast({ title: "保存失败", icon: "none" });
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"navigationBarTitleText": "编辑检查表",
|
||||
"navigationBarTitleText": "添加检查表",
|
||||
"usingComponents": {
|
||||
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
|
||||
"up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker",
|
||||
|
||||
@@ -34,10 +34,10 @@ const _sfc_main = {
|
||||
if (userInfoStr) {
|
||||
const userInfo = JSON.parse(userInfoStr);
|
||||
userRole.value = userInfo.role || "";
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:211", "当前用户角色:", userRole.value);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:224", "当前用户角色:", userRole.value);
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:214", "获取用户信息失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:227", "获取用户信息失败:", error);
|
||||
}
|
||||
};
|
||||
getUserRole();
|
||||
@@ -55,7 +55,7 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:239", "获取任务信息失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:252", "获取任务信息失败:", error);
|
||||
}
|
||||
};
|
||||
common_vendor.onLoad((options) => {
|
||||
@@ -91,7 +91,7 @@ const _sfc_main = {
|
||||
areaList.value = res.data.records;
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:283", "获取区域列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:296", "获取区域列表失败:", error);
|
||||
}
|
||||
};
|
||||
fetchAreaList();
|
||||
@@ -104,26 +104,26 @@ const _sfc_main = {
|
||||
showAreaPicker.value = false;
|
||||
};
|
||||
const chooseLocation = () => {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:299", "chooseLocation called");
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:312", "chooseLocation called");
|
||||
showAddPopup.value = false;
|
||||
setTimeout(() => {
|
||||
common_vendor.index.getLocation({
|
||||
type: "gcj02",
|
||||
// 使用国测局坐标系(腾讯地图使用)
|
||||
success: (locationRes) => {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:308", "获取当前位置成功:", locationRes);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:321", "获取当前位置成功:", locationRes);
|
||||
common_vendor.index.chooseLocation({
|
||||
latitude: locationRes.latitude,
|
||||
longitude: locationRes.longitude,
|
||||
success: (res) => {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:314", "选择位置成功:", res);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:327", "选择位置成功:", res);
|
||||
selectedAddress.value = res.address + (res.name ? `(${res.name})` : "");
|
||||
lng.value = res.longitude;
|
||||
lat.value = res.latitude;
|
||||
showAddPopup.value = true;
|
||||
},
|
||||
fail: (err) => {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:323", "选择位置失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:336", "选择位置失败:", err);
|
||||
showAddPopup.value = true;
|
||||
if (err.errMsg && err.errMsg.indexOf("cancel") === -1) {
|
||||
common_vendor.index.showToast({
|
||||
@@ -135,17 +135,17 @@ const _sfc_main = {
|
||||
});
|
||||
},
|
||||
fail: (err) => {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:337", "获取当前位置失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:350", "获取当前位置失败:", err);
|
||||
common_vendor.index.chooseLocation({
|
||||
success: (res) => {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:341", "选择位置成功:", res);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:354", "选择位置成功:", res);
|
||||
selectedAddress.value = res.address + (res.name ? `(${res.name})` : "");
|
||||
lng.value = res.longitude;
|
||||
lat.value = res.latitude;
|
||||
showAddPopup.value = true;
|
||||
},
|
||||
fail: (chooseErr) => {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:348", "选择位置失败:", chooseErr);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:361", "选择位置失败:", chooseErr);
|
||||
showAddPopup.value = true;
|
||||
if (chooseErr.errMsg && chooseErr.errMsg.indexOf("cancel") === -1) {
|
||||
common_vendor.index.showToast({
|
||||
@@ -187,7 +187,7 @@ const _sfc_main = {
|
||||
});
|
||||
const selectedTag = tagOptions.value[formData.tagIndex];
|
||||
const tagId = selectedTag ? selectedTag.id : null;
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:395", "innnn", sourceOptions);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:408", "innnn", sourceOptions);
|
||||
const params = {
|
||||
title: formData.title,
|
||||
//标题
|
||||
@@ -214,7 +214,7 @@ const _sfc_main = {
|
||||
attachments
|
||||
//附件列表(图片/视频)
|
||||
};
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:413", "提交的参数:", params);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:426", "提交的参数:", params);
|
||||
try {
|
||||
const res = await request_api.addHiddenDanger(params);
|
||||
if (res.code === 0) {
|
||||
@@ -239,7 +239,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:441", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:454", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "请求失败",
|
||||
icon: "none"
|
||||
@@ -259,7 +259,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:462", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:475", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "请求失败",
|
||||
icon: "none"
|
||||
@@ -341,7 +341,7 @@ const _sfc_main = {
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:558", "上传失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:571", "上传失败:", err);
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
@@ -359,14 +359,14 @@ const _sfc_main = {
|
||||
const fullImageUrl = imageFiles[0].url;
|
||||
aiAnalyzing.value = true;
|
||||
try {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:580", "开始调用AI分析接口,图片地址:", fullImageUrl);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:593", "开始调用AI分析接口,图片地址:", fullImageUrl);
|
||||
const analyzeRes = await request_api.analyzeHazardImage({
|
||||
// imageUrl: 'https://yx.zhihuixiangxi.com:58880/1.png' ,
|
||||
imageUrl: fullImageUrl
|
||||
});
|
||||
if (analyzeRes.code === 0 && analyzeRes.data) {
|
||||
const aiData = analyzeRes.data;
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:588", "AI分析结果:", aiData);
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:601", "AI分析结果:", aiData);
|
||||
if (aiData.title)
|
||||
formData.title = aiData.title;
|
||||
if (aiData.description)
|
||||
@@ -388,7 +388,7 @@ const _sfc_main = {
|
||||
common_vendor.index.showToast({ title: analyzeRes.msg || "AI分析失败", icon: "none" });
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:611", "AI分析接口调用失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:624", "AI分析接口调用失败:", error);
|
||||
common_vendor.index.showToast({ title: "AI分析失败,请重试", icon: "none" });
|
||||
} finally {
|
||||
aiAnalyzing.value = false;
|
||||
@@ -410,7 +410,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:634", error);
|
||||
common_vendor.index.__f__("error", "at pages/hiddendanger/Inspection.vue:647", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "请求失败",
|
||||
icon: "none"
|
||||
@@ -452,16 +452,43 @@ const _sfc_main = {
|
||||
]);
|
||||
common_vendor.watch(() => formData.source, (newVal) => {
|
||||
const selected = sourceOptions.value[newVal];
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:680", "隐患来源选择结果:", {
|
||||
common_vendor.index.__f__("log", "at pages/hiddendanger/Inspection.vue:693", "隐患来源选择结果:", {
|
||||
索引: newVal,
|
||||
选中项: selected,
|
||||
id: selected == null ? void 0 : selected.id,
|
||||
title: selected == null ? void 0 : selected.title
|
||||
});
|
||||
});
|
||||
const statusTabs = common_vendor.ref([
|
||||
{ label: "全部状态", value: "" },
|
||||
{ label: "待验收", value: "待验收" },
|
||||
{ label: "待整改", value: "待整改" },
|
||||
{ label: "待交办", value: "待交办" },
|
||||
{ label: "验收通过", value: "验收通过" }
|
||||
]);
|
||||
const activeTab = common_vendor.ref(0);
|
||||
const filteredList = common_vendor.computed(() => {
|
||||
const currentTab = statusTabs.value[activeTab.value];
|
||||
if (!currentTab || !currentTab.value) {
|
||||
return hiddenDangerList.value;
|
||||
}
|
||||
return hiddenDangerList.value.filter((item) => item.statusName === currentTab.value);
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.f(hiddenDangerList.value, (item, k0, i0) => {
|
||||
a: common_vendor.f(statusTabs.value, (tab, index, i0) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(tab.label),
|
||||
b: activeTab.value === index
|
||||
}, activeTab.value === index ? {} : {}, {
|
||||
c: index,
|
||||
d: activeTab.value === index ? 1 : "",
|
||||
e: common_vendor.o(($event) => activeTab.value = index, index)
|
||||
});
|
||||
}),
|
||||
b: filteredList.value.length === 0
|
||||
}, filteredList.value.length === 0 ? {} : {}, {
|
||||
c: common_vendor.f(filteredList.value, (item, k0, i0) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(item.title),
|
||||
b: common_vendor.t(item.statusName),
|
||||
@@ -495,78 +522,78 @@ const _sfc_main = {
|
||||
t: item.hazardId
|
||||
});
|
||||
}),
|
||||
b: common_vendor.o(($event) => showAddPopup.value = true),
|
||||
c: common_vendor.o(($event) => showAddPopup.value = false),
|
||||
d: common_vendor.o(afterRead),
|
||||
e: common_vendor.o(deletePic),
|
||||
f: common_vendor.p({
|
||||
d: common_vendor.o(($event) => showAddPopup.value = true),
|
||||
e: common_vendor.o(($event) => showAddPopup.value = false),
|
||||
f: common_vendor.o(afterRead),
|
||||
g: common_vendor.o(deletePic),
|
||||
h: common_vendor.p({
|
||||
fileList: fileList1.value,
|
||||
name: "1",
|
||||
multiple: true,
|
||||
maxCount: 10
|
||||
}),
|
||||
g: !aiAnalyzing.value
|
||||
i: !aiAnalyzing.value
|
||||
}, !aiAnalyzing.value ? {} : {}, {
|
||||
h: common_vendor.t(aiAnalyzing.value ? "AI识别中..." : "AI 识别隐患"),
|
||||
i: aiAnalyzing.value,
|
||||
j: aiAnalyzing.value,
|
||||
k: common_vendor.o(handleAiAnalyze),
|
||||
l: common_vendor.o(($event) => formData.title = $event),
|
||||
m: common_vendor.p({
|
||||
j: common_vendor.t(aiAnalyzing.value ? "AI识别中..." : "AI 识别隐患"),
|
||||
k: aiAnalyzing.value,
|
||||
l: aiAnalyzing.value,
|
||||
m: common_vendor.o(handleAiAnalyze),
|
||||
n: common_vendor.o(($event) => formData.title = $event),
|
||||
o: common_vendor.p({
|
||||
placeholder: "请输入内容",
|
||||
border: "surround",
|
||||
modelValue: formData.title
|
||||
}),
|
||||
n: common_vendor.sr(levelChooseRef, "b44c631d-3,b44c631d-0", {
|
||||
p: common_vendor.sr(levelChooseRef, "b44c631d-3,b44c631d-0", {
|
||||
"k": "levelChooseRef"
|
||||
}),
|
||||
o: common_vendor.o(($event) => formData.level = $event),
|
||||
p: common_vendor.p({
|
||||
q: common_vendor.o(($event) => formData.level = $event),
|
||||
r: common_vendor.p({
|
||||
options: levelOptions.value,
|
||||
wrap: false,
|
||||
["item-width"]: "183rpx",
|
||||
["item-height"]: "72rpx",
|
||||
modelValue: formData.level
|
||||
}),
|
||||
q: common_vendor.o(($event) => formData.source = $event),
|
||||
r: common_vendor.p({
|
||||
s: common_vendor.o(($event) => formData.source = $event),
|
||||
t: common_vendor.p({
|
||||
options: sourceOptions.value,
|
||||
wrap: false,
|
||||
["item-width"]: "183rpx",
|
||||
["item-height"]: "72rpx",
|
||||
modelValue: formData.source
|
||||
}),
|
||||
s: common_vendor.o(($event) => selectedAddress.value = $event),
|
||||
t: common_vendor.p({
|
||||
v: common_vendor.o(($event) => selectedAddress.value = $event),
|
||||
w: common_vendor.p({
|
||||
placeholder: "请输入地址",
|
||||
border: "surround",
|
||||
modelValue: selectedAddress.value
|
||||
}),
|
||||
v: common_vendor.o(chooseLocation),
|
||||
w: common_vendor.t(selectedAreaName.value || "请选择隐患区域"),
|
||||
x: !selectedAreaName.value ? 1 : "",
|
||||
y: common_vendor.o(($event) => showAreaPicker.value = true),
|
||||
z: common_vendor.o(($event) => formData.description = $event),
|
||||
A: common_vendor.p({
|
||||
x: common_vendor.o(chooseLocation),
|
||||
y: common_vendor.t(selectedAreaName.value || "请选择隐患区域"),
|
||||
z: !selectedAreaName.value ? 1 : "",
|
||||
A: common_vendor.o(($event) => showAreaPicker.value = true),
|
||||
B: common_vendor.o(($event) => formData.description = $event),
|
||||
C: common_vendor.p({
|
||||
placeholder: "请输入内容",
|
||||
modelValue: formData.description
|
||||
}),
|
||||
B: common_vendor.o(($event) => formData.tagIndex = $event),
|
||||
C: common_vendor.p({
|
||||
D: common_vendor.o(($event) => formData.tagIndex = $event),
|
||||
E: common_vendor.p({
|
||||
options: tagOptions.value,
|
||||
modelValue: formData.tagIndex
|
||||
}),
|
||||
D: common_vendor.o(($event) => showAddPopup.value = false),
|
||||
E: common_vendor.o(handleAdd),
|
||||
F: common_vendor.o(($event) => showAddPopup.value = false),
|
||||
G: common_vendor.p({
|
||||
G: common_vendor.o(handleAdd),
|
||||
H: common_vendor.o(($event) => showAddPopup.value = false),
|
||||
I: common_vendor.p({
|
||||
show: showAddPopup.value,
|
||||
mode: "center",
|
||||
round: "20"
|
||||
}),
|
||||
H: common_vendor.o(($event) => showAreaPicker.value = false),
|
||||
I: common_vendor.o(confirmAreaSelect),
|
||||
J: common_vendor.f(areaList.value, (item, k0, i0) => {
|
||||
J: common_vendor.o(($event) => showAreaPicker.value = false),
|
||||
K: common_vendor.o(confirmAreaSelect),
|
||||
L: common_vendor.f(areaList.value, (item, k0, i0) => {
|
||||
return common_vendor.e({
|
||||
a: item.color,
|
||||
b: common_vendor.t(item.name),
|
||||
@@ -577,15 +604,15 @@ const _sfc_main = {
|
||||
f: common_vendor.o(($event) => tempAreaId.value = item.id, item.id)
|
||||
});
|
||||
}),
|
||||
K: areaList.value.length === 0
|
||||
M: areaList.value.length === 0
|
||||
}, areaList.value.length === 0 ? {} : {}, {
|
||||
L: common_vendor.o(($event) => showAreaPicker.value = false),
|
||||
M: common_vendor.p({
|
||||
N: common_vendor.o(($event) => showAreaPicker.value = false),
|
||||
O: common_vendor.p({
|
||||
show: showAreaPicker.value,
|
||||
mode: "bottom",
|
||||
round: "20"
|
||||
}),
|
||||
N: common_vendor.gei(_ctx, "")
|
||||
P: common_vendor.gei(_ctx, "")
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -27,6 +27,7 @@
|
||||
.page.data-v-b44c631d {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
padding-top: 100rpx;
|
||||
padding-bottom: 120rpx;
|
||||
}
|
||||
.fixed-add-btn.data-v-b44c631d {
|
||||
@@ -60,6 +61,8 @@
|
||||
.level-tag.data-v-b44c631d {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.level-minor.data-v-b44c631d {
|
||||
background: #F6FFED;
|
||||
@@ -272,6 +275,47 @@
|
||||
background: #EBF2FC;
|
||||
color: #2667E9;
|
||||
}
|
||||
.status-tabs.data-v-b44c631d {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 99;
|
||||
white-space: nowrap;
|
||||
background: #fff;
|
||||
padding: 0 10rpx;
|
||||
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
.status-tabs-inner.data-v-b44c631d {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
height: 88rpx;
|
||||
}
|
||||
.status-tab-item.data-v-b44c631d {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 28rpx;
|
||||
height: 88rpx;
|
||||
position: relative;
|
||||
}
|
||||
.status-tab-text.data-v-b44c631d {
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
}
|
||||
.status-tab-active .status-tab-text.data-v-b44c631d {
|
||||
color: #2667E9;
|
||||
font-weight: bold;
|
||||
}
|
||||
.status-tab-bar.data-v-b44c631d {
|
||||
position: absolute;
|
||||
bottom: 8rpx;
|
||||
width: 40rpx;
|
||||
height: 6rpx;
|
||||
background: #2667E9;
|
||||
border-radius: 3rpx;
|
||||
}
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
|
||||
@@ -70,7 +70,7 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
};
|
||||
const infoList = common_vendor.ref([
|
||||
const allMenuList = [
|
||||
{
|
||||
name: "成员管理",
|
||||
src: "/static/home_icon/chengyuangaunli.png"
|
||||
@@ -87,10 +87,10 @@ const _sfc_main = {
|
||||
name: "检查清单",
|
||||
src: "/static/home_icon/jiachaqingdan.png"
|
||||
},
|
||||
{
|
||||
name: "检查记录",
|
||||
src: "/static/home_icon/jianchajilu.png"
|
||||
},
|
||||
// {
|
||||
// name: '检查记录',
|
||||
// src: '/static/home_icon/jianchajilu.png'
|
||||
// },
|
||||
{
|
||||
name: "证件管理",
|
||||
src: "/static/home_icon/zhengjianguanli.png"
|
||||
@@ -103,12 +103,14 @@ const _sfc_main = {
|
||||
name: "隐患销号",
|
||||
src: "/static/home_icon/yinhuanxiaohao.png"
|
||||
}
|
||||
// ,
|
||||
// {
|
||||
// name: '设备登记',
|
||||
// src: '/static/home_icon/shebeidengji.png'
|
||||
// }
|
||||
]);
|
||||
];
|
||||
const commonMenuNames = ["隐患排查", "隐患销号"];
|
||||
const infoList = common_vendor.computed(() => {
|
||||
if (userInfo.role === "common") {
|
||||
return allMenuList.filter((item) => commonMenuNames.includes(item.name));
|
||||
}
|
||||
return allMenuList;
|
||||
});
|
||||
const ViewDetails = (item) => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/plandetail/plandetail?id=${item.id}`
|
||||
@@ -147,12 +149,12 @@ const _sfc_main = {
|
||||
const getCheckPlanLists = async () => {
|
||||
try {
|
||||
const res = await request_api.getCheckPlanList(checkPlanParams.value);
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:331", res);
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:339", res);
|
||||
if (res.code === 0) {
|
||||
checkPlanData.value = res.data.records;
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/index/index.vue:336", error);
|
||||
common_vendor.index.__f__("error", "at pages/index/index.vue:344", error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -188,13 +190,13 @@ const _sfc_main = {
|
||||
const getHiddenDangerLists = async () => {
|
||||
try {
|
||||
const res = await request_api.getHiddenDangerList(hiddenDangerParams.value);
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:388", res);
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:396", res);
|
||||
if (res.code === 0) {
|
||||
hiddenDangerData.value = res.data.records;
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:391", hiddenDangerData.value, 1111);
|
||||
common_vendor.index.__f__("log", "at pages/index/index.vue:399", hiddenDangerData.value, 1111);
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/index/index.vue:394", error);
|
||||
common_vendor.index.__f__("error", "at pages/index/index.vue:402", error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
@@ -225,6 +225,8 @@
|
||||
.level-tag.data-v-1cf27b2a {
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.level-minor.data-v-1cf27b2a {
|
||||
background: #F6FFED;
|
||||
|
||||
@@ -3,6 +3,14 @@ const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const request_request = require("../../request/request.js");
|
||||
const request_three_one_api_info = require("../../request/three_one_api/info.js");
|
||||
if (!Array) {
|
||||
const _easycom_u_navbar2 = common_vendor.resolveComponent("u-navbar");
|
||||
_easycom_u_navbar2();
|
||||
}
|
||||
const _easycom_u_navbar = () => "../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
|
||||
if (!Math) {
|
||||
_easycom_u_navbar();
|
||||
}
|
||||
const defaultAvatar = "https://ossweb-img.qq.com/images/lol/web201310/skin/big99008.jpg";
|
||||
const _sfc_main = {
|
||||
__name: "my",
|
||||
@@ -26,7 +34,7 @@ const _sfc_main = {
|
||||
userInfo.phonenumber = res.data.phonenumber || "";
|
||||
}
|
||||
} catch (e) {
|
||||
common_vendor.index.__f__("error", "at pages/personalcenter/my.vue:124", "获取用户信息失败:", e);
|
||||
common_vendor.index.__f__("error", "at pages/personalcenter/my.vue:135", "获取用户信息失败:", e);
|
||||
}
|
||||
};
|
||||
common_vendor.onShow(() => {
|
||||
@@ -48,29 +56,40 @@ const _sfc_main = {
|
||||
content: "确定要退出登录吗?",
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
common_vendor.index.__f__("log", "at pages/personalcenter/my.vue:170", "用户点击确定");
|
||||
common_vendor.index.__f__("log", "at pages/personalcenter/my.vue:181", "用户点击确定");
|
||||
common_vendor.index.clearStorageSync();
|
||||
common_vendor.index.reLaunch({
|
||||
url: "/pages/login/login"
|
||||
});
|
||||
} else if (res.cancel) {
|
||||
common_vendor.index.__f__("log", "at pages/personalcenter/my.vue:176", "用户点击取消");
|
||||
common_vendor.index.__f__("log", "at pages/personalcenter/my.vue:187", "用户点击取消");
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: getImageUrl(userInfo.avatar) || defaultAvatar,
|
||||
b: common_vendor.t(userInfo.nickName || "未设置昵称"),
|
||||
c: common_vendor.t(userInfo.phonenumber || "未绑定手机"),
|
||||
d: common_vendor.o(($event) => editinfo()),
|
||||
a: common_vendor.p({
|
||||
title: "我的",
|
||||
placeholder: false,
|
||||
fixed: false,
|
||||
safeAreaInsetTop: true,
|
||||
bgColor: "transparent",
|
||||
titleColor: "#fff",
|
||||
border: false,
|
||||
leftIcon: ""
|
||||
}),
|
||||
b: getImageUrl(userInfo.avatar) || defaultAvatar,
|
||||
c: common_vendor.t(userInfo.nickName || "未设置昵称"),
|
||||
d: common_vendor.t(userInfo.phonenumber || "未绑定手机"),
|
||||
e: common_assets._imports_0$2,
|
||||
f: common_vendor.o(($event) => editinfo()),
|
||||
g: common_assets._imports_1$1,
|
||||
h: common_vendor.o(($event) => Account()),
|
||||
i: common_vendor.o(($event) => handleLogout()),
|
||||
j: common_vendor.gei(_ctx, "")
|
||||
h: common_vendor.o(($event) => editinfo()),
|
||||
i: common_assets._imports_2,
|
||||
j: common_vendor.o(($event) => Account()),
|
||||
k: common_vendor.o(($event) => handleLogout()),
|
||||
l: common_vendor.gei(_ctx, "")
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"navigationBarTitleText": "我的",
|
||||
"usingComponents": {}
|
||||
"navigationStyle": "custom",
|
||||
"usingComponents": {
|
||||
"u-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar"
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
<view class="{{['page-wrapper', 'data-v-02345808', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{j}}"><view class="header-bg data-v-02345808"><view class="blur-circle circle-1 data-v-02345808"></view><view class="blur-circle circle-2 data-v-02345808"></view><view class="blur-circle circle-3 data-v-02345808"></view><view class="user-info-section data-v-02345808"><view class="user-avatar data-v-02345808"><image class="avatar-img data-v-02345808" src="{{a}}" mode="aspectFill"></image></view><view class="user-details data-v-02345808"><view class="user-name data-v-02345808">{{b}}</view><view class="user-phone data-v-02345808">{{c}}</view></view><button class="edit-btn data-v-02345808" bindtap="{{d}}">编辑资料</button></view></view><view class="content-area data-v-02345808"><view class="menu-card data-v-02345808"><view class="menu-item data-v-02345808" bindtap="{{f}}"><view class="menu-left data-v-02345808"><image src="{{e}}" class="menu-icon data-v-02345808"></image><text class="menu-text data-v-02345808">编辑个人信息</text></view><text class="cuIcon-right menu-arrow data-v-02345808"></text></view><view class="menu-item data-v-02345808" bindtap="{{h}}"><view class="menu-left data-v-02345808"><image src="{{g}}" class="menu-icon data-v-02345808"></image><text class="menu-text data-v-02345808">修改登录密码</text></view><text class="cuIcon-right menu-arrow data-v-02345808"></text></view></view><button class="logout-btn data-v-02345808" bindtap="{{i}}">退出登录</button></view></view>
|
||||
<view class="{{['page-wrapper', 'data-v-02345808', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{l}}"><view class="header-bg data-v-02345808"><u-navbar wx:if="{{a}}" class="data-v-02345808" virtualHostClass="data-v-02345808" u-i="02345808-0" bind:__l="__l" u-p="{{a}}"></u-navbar><view class="user-info-section data-v-02345808"><view class="user-avatar data-v-02345808"><image class="avatar-img data-v-02345808" src="{{b}}" mode="aspectFill"></image></view><view class="user-details data-v-02345808"><view class="user-name data-v-02345808">{{c}}</view><view class="user-phone data-v-02345808">{{d}}</view></view><image class="edit-icon data-v-02345808" src="{{e}}" mode="aspectFit" bindtap="{{f}}"></image></view></view><view class="content-area data-v-02345808"><view class="menu-card data-v-02345808"><view class="menu-item data-v-02345808" bindtap="{{h}}"><view class="menu-left data-v-02345808"><image src="{{g}}" class="menu-icon data-v-02345808"></image><text class="menu-text data-v-02345808">编辑个人信息</text></view><text class="cuIcon-right menu-arrow data-v-02345808"></text></view><view class="menu-item data-v-02345808" bindtap="{{j}}"><view class="menu-left data-v-02345808"><image src="{{i}}" class="menu-icon data-v-02345808"></image><text class="menu-text data-v-02345808">修改登录密码</text></view><text class="cuIcon-right menu-arrow data-v-02345808"></text></view></view><button class="logout-btn data-v-02345808" bindtap="{{k}}">退出登录</button></view></view>
|
||||
@@ -26,13 +26,13 @@
|
||||
/* 文章场景相关 */
|
||||
.page-wrapper.data-v-02345808 {
|
||||
min-height: 100vh;
|
||||
background: #EBF2FC;
|
||||
background: #fff;
|
||||
}
|
||||
.header-bg.data-v-02345808 {
|
||||
position: relative;
|
||||
height: 400rpx;
|
||||
background: linear-gradient(180deg, #3B7FED 0%, #007AFF 50%, #8BB8F8 100%);
|
||||
padding-top: 60rpx;
|
||||
height: 480rpx;
|
||||
background: #2667E9;
|
||||
padding-top: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.header-bg .blur-circle.data-v-02345808 {
|
||||
@@ -103,29 +103,26 @@
|
||||
font-size: 26rpx;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
.user-info-section .edit-btn.data-v-02345808 {
|
||||
background: rgba(255, 255, 255, 0.25);
|
||||
border: 2rpx solid rgba(255, 255, 255, 0.5);
|
||||
border-radius: 32rpx;
|
||||
font-size: 26rpx;
|
||||
color: #fff;
|
||||
-webkit-backdrop-filter: blur(10rpx);
|
||||
backdrop-filter: blur(10rpx);
|
||||
}
|
||||
.user-info-section .edit-btn.data-v-02345808::after {
|
||||
border: none;
|
||||
.user-info-section .edit-icon.data-v-02345808 {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.content-area.data-v-02345808 {
|
||||
position: relative;
|
||||
margin-top: -60rpx;
|
||||
padding: 0 30rpx 50rpx;
|
||||
margin-top: -40rpx;
|
||||
padding: 40rpx 30rpx 50rpx;
|
||||
z-index: 10;
|
||||
background: #fff;
|
||||
border-top-left-radius: 40rpx;
|
||||
border-top-right-radius: 40rpx;
|
||||
min-height: calc(100vh - 360rpx);
|
||||
}
|
||||
.menu-card.data-v-02345808 {
|
||||
background: #fff;
|
||||
border-radius: 24rpx;
|
||||
padding: 10rpx 0;
|
||||
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06);
|
||||
box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.menu-item.data-v-02345808 {
|
||||
display: flex;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../common/vendor.js");
|
||||
const request_luchRequest_core_Request = require("./luch-request/core/Request.js");
|
||||
const baseUrl = "https://yingji.hexieapi.com/prod-api";
|
||||
const baseUrl = "http://192.168.1.168:5004";
|
||||
const imageBaseUrl = baseUrl.replace(/\/prod-api\/?$/, "");
|
||||
new request_luchRequest_core_Request.Request({
|
||||
baseURL: baseUrl,
|
||||
|
||||
BIN
unpackage/dist/dev/mp-weixin/static/my/edit.png
vendored
Normal file
BIN
unpackage/dist/dev/mp-weixin/static/my/edit.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1009 B |
Reference in New Issue
Block a user