交办时间年月日,整改时回显整改人

This commit is contained in:
王利强
2026-06-23 16:58:40 +08:00
parent cc94d3e3e9
commit d4897284e8
588 changed files with 1551 additions and 1393 deletions

View File

@@ -72,6 +72,12 @@
"navigationBarTitleText": "检查表" "navigationBarTitleText": "检查表"
} }
}, },
{
"path": "pages/checklist/detail",
"style": {
"navigationBarTitleText": "检查计划详情"
}
},
{ {
"path": "pages/editchecklist/editchecklist", "path": "pages/editchecklist/editchecklist",
"style": { "style": {

View File

@@ -2,7 +2,17 @@
<view class="page padding"> <view class="page padding">
<!-- 检查表列表 --> <!-- 检查表列表 -->
<view class="checklist-card" v-for="item in list" :key="item.id"> <view class="checklist-card" v-for="item in list" :key="item.id">
<view class="card-main">
<view class="card-info">
<view class="card-name">{{ item.name }}</view> <view class="card-name">{{ item.name }}</view>
<view class="card-meta" v-if="item.deptName || item.pointCount">
<text v-if="item.deptName">{{ item.deptName }}</text>
<text v-if="item.deptName && item.pointCount" class="meta-dot">·</text>
<text v-if="item.pointCount">检查项 {{ item.pointCount }} </text>
</view>
</view>
<button class="detail-btn" @click.stop="goToDetail(item)">详情</button>
</view>
</view> </view>
<!-- 空状态 --> <!-- 空状态 -->
@@ -12,7 +22,6 @@
<!-- 新增按钮 --> <!-- 新增按钮 -->
<button class="add-btn" @click="goToAdd"> <button class="add-btn" @click="goToAdd">
<!-- <text class="cuIcon-add"></text> -->
<text>新增检查表</text> <text>新增检查表</text>
</button> </button>
</view> </view>
@@ -25,28 +34,32 @@ import { getCheckTableList } from '@/request/api.js'
const list = ref([]) const list = ref([])
// 获取检查表列表
const fetchList = async () => { const fetchList = async () => {
try { try {
const res = await getCheckTableList({ pageNum: 1, pageSize: 100 }); const res = await getCheckTableList({ pageNum: 1, pageSize: 100 })
if (res.code === 0) { if (res.code === 0) {
list.value = res.data.records || []; list.value = res.data.records || []
} }
} catch (error) { } catch (error) {
console.error('获取检查表列表失败:', error); console.error('获取检查表列表失败:', error)
} }
} }
// 跳转到新增页面
const goToAdd = () => { const goToAdd = () => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/editchecklist/editchecklist' url: '/pages/editchecklist/editchecklist'
}) })
} }
// 每次显示页面时刷新数据 const goToDetail = (item) => {
if (!item?.id) return
uni.navigateTo({
url: `/pages/checklist/detail?id=${item.id}`
})
}
onShow(() => { onShow(() => {
fetchList(); fetchList()
}) })
</script> </script>
@@ -60,14 +73,64 @@ onShow(() => {
.checklist-card { .checklist-card {
background: #fff; background: #fff;
border-radius: 16rpx; border-radius: 16rpx;
padding: 30rpx; padding: 24rpx 28rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05); box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
}
.card-name { .card-main {
display: flex;
align-items: center;
gap: 20rpx;
}
.card-info {
flex: 1;
min-width: 0;
}
.card-name {
font-size: 32rpx; font-size: 32rpx;
color: #333; color: #333;
font-weight: 500; font-weight: 500;
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
word-break: break-all;
}
.card-meta {
margin-top: 10rpx;
font-size: 24rpx;
color: #999;
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.meta-dot {
margin: 0 8rpx;
}
.detail-btn {
flex-shrink: 0;
width: 120rpx;
height: 60rpx;
line-height: 60rpx;
padding: 0;
margin: 0;
background: #fff;
border: 2rpx solid #2667E9;
border-radius: 30rpx;
color: #2667E9;
font-size: 26rpx;
&::after {
border: none;
} }
} }
@@ -93,9 +156,8 @@ onShow(() => {
justify-content: center; justify-content: center;
box-shadow: 0 8rpx 20rpx rgba(102, 126, 234, 0.4); box-shadow: 0 8rpx 20rpx rgba(102, 126, 234, 0.4);
.cuIcon-add { &::after {
margin-right: 10rpx; border: none;
font-size: 36rpx;
} }
} }
</style> </style>

321
pages/checklist/detail.vue Normal file
View File

@@ -0,0 +1,321 @@
<template>
<view class="page">
<view v-if="loading" class="loading-wrap">
<text class="loading-text">加载中...</text>
</view>
<template v-else>
<!-- 基本信息 -->
<view class="section-card">
<view class="section-title">基本信息</view>
<view class="info-row">
<text class="info-label">检查表名称</text>
<text class="info-value">{{ detail.name || '-' }}</text>
</view>
<view class="info-row">
<text class="info-label">分派单位</text>
<text class="info-value">{{ detail.deptName || '-' }}</text>
</view>
<view class="info-row">
<text class="info-label">检查表类型</text>
<text class="info-value">{{ typeLabel }}</text>
</view>
<view class="info-row">
<text class="info-label">模式</text>
<text class="info-value">{{ runModeLabel }}</text>
</view>
<view class="info-row">
<text class="info-label">执行人员</text>
<text class="info-value">{{ executorLabel }}</text>
</view>
<view class="info-row">
<text class="info-label">循环周期</text>
<text class="info-value">{{ cycleLabel }}</text>
</view>
<view class="info-row column">
<text class="info-label">检查说明</text>
<view class="info-block">
<rich-text v-if="detail.description" :nodes="detail.description"></rich-text>
<text v-else class="info-empty">-</text>
</view>
</view>
</view>
<!-- 关联表项 -->
<view class="section-card">
<view class="section-title">关联表项</view>
<view class="related-box">
<image class="related-icon" src="/static/jianchabiao/biaodan.svg" mode="aspectFit"></image>
<text class="related-text">{{ detail.itemNames || '-' }}</text>
</view>
</view>
<!-- 检查项明细 -->
<view class="section-card">
<view class="section-title">
检查项明细
<text class="item-count">{{ checkItems.length }}</text>
</view>
<view v-if="checkItems.length === 0" class="empty-block">暂无检查项</view>
<view v-else class="item-list">
<view
v-for="(item, index) in checkItems"
:key="item.pointId || index"
class="item-row"
>
<text class="item-no">{{ index + 1 }}</text>
<view class="item-content">
<text class="item-name">{{ item.checkItemName || '-' }}</text>
<text v-if="item.industryName" class="item-industry">{{ item.industryName }}</text>
</view>
</view>
</view>
</view>
<!-- 计划安排 -->
<view class="section-card">
<view class="section-title">计划安排</view>
<view class="info-row">
<text class="info-label">仅工作日</text>
<text class="info-value">{{ weekendLabel }}</text>
</view>
<view class="info-row">
<text class="info-label">计划开始日期</text>
<text class="info-value">{{ formatDate(detail.planStartTime) }}</text>
</view>
<view class="info-row">
<text class="info-label">计划结束日期</text>
<text class="info-value">{{ formatDate(detail.planEndTime) }}</text>
</view>
</view>
</template>
</view>
</template>
<script setup>
import { ref, computed } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { getOneTableInfo } from '@/request/api.js'
const loading = ref(true)
const oneTableId = ref('')
const detail = ref({})
const checkItems = ref([])
const typeMap = { 1: '日常检查', 2: '专项检查', 3: '设备检查' }
const cycleMap = { 1: '每天一次', 2: '每周', 3: '每月', 4: '每季度' }
const runModeMap = { 1: '单人完成', 2: '全员', 3: '指定分组' }
const weekendMap = { 1: '包含周末', 2: '不包含周末' }
const typeLabel = computed(() => detail.value.typeName || typeMap[detail.value.type] || '-')
const cycleLabel = computed(() => detail.value.cycleName || cycleMap[detail.value.cycle] || '-')
const runModeLabel = computed(() => detail.value.runModeName || runModeMap[detail.value.runMode] || '-')
const weekendLabel = computed(() => detail.value.isWeekendName || weekendMap[detail.value.isWeekend] || '-')
const executorLabel = computed(() => {
if (Number(detail.value.runMode) === 2) return '全员'
return detail.value.executorName || '-'
})
const formatDate = (value) => {
if (!value) return '-'
return String(value).split(' ')[0]
}
const fetchDetail = async () => {
if (!oneTableId.value) return
loading.value = true
try {
const res = await getOneTableInfo(oneTableId.value)
if (res.code === 0) {
const data = res.data || {}
detail.value = data
checkItems.value = data.itemDetailList || []
} else {
uni.showToast({ title: res.msg || '获取详情失败', icon: 'none' })
}
} catch (error) {
console.error('获取检查计划详情失败:', error)
uni.showToast({ title: '获取详情失败', icon: 'none' })
} finally {
loading.value = false
}
}
onLoad((options) => {
oneTableId.value = options.id || ''
if (!oneTableId.value) {
uni.showToast({ title: '缺少检查表ID', icon: 'none' })
loading.value = false
return
}
fetchDetail()
})
</script>
<style lang="scss" scoped>
.page {
min-height: 100vh;
background: #EBF2FC;
padding: 24rpx;
padding-bottom: 40rpx;
box-sizing: border-box;
}
.loading-wrap {
padding: 120rpx 0;
text-align: center;
}
.loading-text {
font-size: 28rpx;
color: #999;
}
.section-card {
background: #fff;
border-radius: 16rpx;
padding: 28rpx;
margin-bottom: 20rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.04);
}
.section-title {
font-size: 30rpx;
font-weight: 600;
color: #333;
margin-bottom: 20rpx;
padding-left: 16rpx;
border-left: 6rpx solid #2667E9;
}
.item-count {
font-size: 26rpx;
font-weight: 400;
color: #999;
}
.info-row {
display: flex;
align-items: flex-start;
padding: 18rpx 0;
border-bottom: 1rpx solid #f0f0f0;
&:last-child {
border-bottom: none;
}
&.column {
flex-direction: column;
}
}
.info-label {
width: 180rpx;
flex-shrink: 0;
font-size: 26rpx;
color: #999;
line-height: 1.5;
}
.info-value {
flex: 1;
font-size: 28rpx;
color: #333;
line-height: 1.5;
word-break: break-all;
}
.info-block {
width: 100%;
margin-top: 12rpx;
padding: 20rpx;
background: #f8f9fb;
border: 1rpx solid #ebeef5;
border-radius: 8rpx;
font-size: 28rpx;
color: #606266;
line-height: 1.6;
box-sizing: border-box;
}
.info-empty {
color: #c0c4cc;
}
.related-box {
display: flex;
align-items: flex-start;
gap: 12rpx;
padding: 20rpx;
background: #f8f9fb;
border: 1rpx solid #ebeef5;
border-radius: 8rpx;
}
.related-icon {
flex-shrink: 0;
width: 36rpx;
height: 36rpx;
margin-top: 4rpx;
}
.related-text {
flex: 1;
font-size: 28rpx;
color: #333;
line-height: 1.5;
word-break: break-all;
}
.empty-block {
text-align: center;
padding: 40rpx 0;
font-size: 26rpx;
color: #999;
}
.item-list {
border-top: 1rpx solid #f0f0f0;
}
.item-row {
display: flex;
align-items: flex-start;
gap: 16rpx;
padding: 24rpx 0;
border-bottom: 1rpx solid #f0f0f0;
&:last-child {
border-bottom: none;
padding-bottom: 0;
}
}
.item-no {
width: 36rpx;
font-size: 26rpx;
color: #999;
line-height: 1.5;
flex-shrink: 0;
}
.item-content {
flex: 1;
min-width: 0;
}
.item-name {
display: block;
font-size: 28rpx;
color: #333;
line-height: 1.5;
word-break: break-all;
}
.item-industry {
display: inline-block;
margin-top: 8rpx;
font-size: 24rpx;
color: #999;
}
</style>

View File

@@ -61,14 +61,14 @@
></up-picker> ></up-picker>
</view> </view>
<!-- 运行模式 --> <!-- 模式 -->
<view class="form-item"> <view class="form-item">
<view class="form-label"> <view class="form-label">
<text>运行模式</text> <text>模式</text>
</view> </view>
<view class="picker-input" @click="showModePicker = true"> <view class="picker-input" @click="showModePicker = true">
<text :class="formData.modeName ? 'picker-value' : 'picker-placeholder'"> <text :class="formData.modeName ? 'picker-value' : 'picker-placeholder'">
{{ formData.modeName || '请选择运行模式' }} {{ formData.modeName || '请选择模式' }}
</text> </text>
<text class="cuIcon-unfold picker-arrow"></text> <text class="cuIcon-unfold picker-arrow"></text>
</view> </view>
@@ -81,14 +81,15 @@
></up-picker> ></up-picker>
</view> </view>
<!-- 执行人员仅当运行模式为"指定人员"时显示 --> <!-- 执行人员单人完成模式 -->
<view class="form-item" v-if="formData.modeName === '指定人员'"> <view class="form-item" v-if="formData.modeName === '单人完成'">
<view class="form-label"> <view class="form-label">
<text>执行人员</text> <text>执行人员</text>
<text class="required">*</text>
</view> </view>
<view class="picker-input" @click="openExecutorPopup"> <view class="picker-input" @click="openExecutorPopup">
<text :class="formData.executorNames ? 'picker-value' : 'picker-placeholder'"> <text :class="formData.executorNames ? 'picker-value' : 'picker-placeholder'">
{{ formData.executorNames || '请选择执行人员' }} {{ formData.executorNames || (formData.deptId ? '请选择执行人员' : '请先选择分派单位') }}
</text> </text>
<text class="cuIcon-unfold picker-arrow"></text> <text class="cuIcon-unfold picker-arrow"></text>
</view> </view>
@@ -114,24 +115,34 @@
></up-picker> ></up-picker>
</view> </view>
<!-- 工作日开关 --> <!-- 工作日 -->
<view class="form-item"> <view class="form-item">
<view class="form-label"> <view class="form-label">
<text>工作日开关</text> <text>工作日</text>
</view> </view>
<view class="switch-row"> <view class="weekend-options">
<switch :checked="workdaySwitch" @change="onSwitchChange" color="#07C160" /> <view
class="weekend-option"
:class="{ active: formData.isWeekend === 1 }"
@click="setIsWeekend(1)"
>包含周末</view>
<view
class="weekend-option"
:class="{ active: formData.isWeekend === 2 }"
@click="setIsWeekend(2)"
>不包含周末</view>
</view> </view>
</view> </view>
<!-- 开始时间 --> <!-- 计划开始日期 -->
<view class="form-item"> <view class="form-item">
<view class="form-label"> <view class="form-label">
<text>开始时间</text> <text>计划开始日期</text>
<text class="required">*</text>
</view> </view>
<view class="picker-input" @click="openStartDatePicker"> <view class="picker-input" @click="openStartDatePicker">
<text :class="formData.startDate ? 'picker-value' : 'picker-placeholder'"> <text :class="formData.startDate ? 'picker-value' : 'picker-placeholder'">
{{ formData.startDate || '请选择开始时间' }} {{ formData.startDate || '请选择计划开始日期' }}
</text> </text>
<text class="cuIcon-unfold picker-arrow"></text> <text class="cuIcon-unfold picker-arrow"></text>
</view> </view>
@@ -140,20 +151,23 @@
mode="date" mode="date"
v-model="startDateValue" v-model="startDateValue"
:minDate="todayMinDate" :minDate="todayMinDate"
:filter="startDateFilter"
@change="onStartDatePickerChange"
@confirm="onStartDateConfirm" @confirm="onStartDateConfirm"
@cancel="showStartDatePicker = false" @cancel="showStartDatePicker = false"
@close="showStartDatePicker = false" @close="showStartDatePicker = false"
></up-datetime-picker> ></up-datetime-picker>
</view> </view>
<!-- 结束时间 --> <!-- 计划结束日期 -->
<view class="form-item"> <view class="form-item">
<view class="form-label"> <view class="form-label">
<text>结束时间</text> <text>计划结束日期</text>
<text class="required">*</text>
</view> </view>
<view class="picker-input" @click="openEndDatePicker"> <view class="picker-input" @click="openEndDatePicker">
<text :class="formData.endDate ? 'picker-value' : 'picker-placeholder'"> <text :class="formData.endDate ? 'picker-value' : 'picker-placeholder'">
{{ formData.endDate || '请选择结束时间' }} {{ formData.endDate || '请选择计划结束日期' }}
</text> </text>
<text class="cuIcon-unfold picker-arrow"></text> <text class="cuIcon-unfold picker-arrow"></text>
</view> </view>
@@ -162,6 +176,8 @@
mode="date" mode="date"
v-model="endDateValue" v-model="endDateValue"
:minDate="endDateMinDate" :minDate="endDateMinDate"
:filter="endDateFilter"
@change="onEndDatePickerChange"
@confirm="onEndDateConfirm" @confirm="onEndDateConfirm"
@cancel="showEndDatePicker = false" @cancel="showEndDatePicker = false"
@close="showEndDatePicker = false" @close="showEndDatePicker = false"
@@ -376,10 +392,10 @@
class="executor-item" class="executor-item"
v-for="item in executorList" v-for="item in executorList"
:key="item.userId" :key="item.userId"
@click="toggleExecutorSelect(item)" @click="selectExecutor(item)"
> >
<view class="executor-checkbox" :class="{ 'executor-checkbox-active': selectedExecutorIds.includes(item.userId) }"> <view class="executor-radio" :class="{ 'executor-radio-active': selectedExecutorId === item.userId }">
<text v-if="selectedExecutorIds.includes(item.userId)" class="cuIcon-check"></text> <view v-if="selectedExecutorId === item.userId" class="executor-radio-dot"></view>
</view> </view>
<view class="executor-info"> <view class="executor-info">
<text class="executor-name">{{ item.nickName }}</text> <text class="executor-name">{{ item.nickName }}</text>
@@ -398,7 +414,7 @@
<script setup> <script setup>
import { ref, reactive, computed } from 'vue'; import { ref, reactive, computed } from 'vue';
import { getRegulationList, addCheckPoint, detailcheckPoint, deleteCheckPoint, getCheckItemList, getCheckItemListDetail, getDeptUsers, getParentDepts, addCheckTable } from '@/request/api.js'; import { getRegulationList, addCheckPoint, detailcheckPoint, deleteCheckPoint, getCheckItemList, getCheckItemListDetail, getDeptUsers, getDeptChildren, addCheckTable } from '@/request/api.js';
import { onMounted } from 'vue'; import { onMounted } from 'vue';
// 表单数据 // 表单数据
@@ -413,34 +429,128 @@ const formData = reactive({
modeName: '', modeName: '',
selectDeptId: '', selectDeptId: '',
selectDeptName: '', selectDeptName: '',
executorIds: [], // 执行人员ID数组 executorId: '',
executorNames: '', // 执行人员名称(显示用) executorNames: '',
cycleId: '', cycleId: '',
cycleName: '', cycleName: '',
isWeekend: 1,
startDate: '', startDate: '',
endDate: '' endDate: ''
}); });
// 工作日开关(单独定义避免页面闪烁 // 日期工具(需放在使用它们的逻辑之前
const workdaySwitch = ref(false);
const onSwitchChange = (e) => {
workdaySwitch.value = e.detail.value;
};
// 日期选择器值
const getTodayTimestamp = () => { const getTodayTimestamp = () => {
const now = new Date(); const now = new Date()
return new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime(); return new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime()
}; }
const todayMinDate = computed(() => getTodayTimestamp()); const formatDate = (timestamp) => {
const date = new Date(timestamp)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
return `${year}-${month}-${day}`
}
// 扁平数据转部门树
const handleTree = (data, id = 'deptId', parentId = 'parentId', children = 'children') => {
const childrenListMap = {}
const tree = []
data.forEach((item) => {
childrenListMap[item[id]] = { ...item, [children]: item[children] || [] }
})
data.forEach((item) => {
const node = childrenListMap[item[id]]
const parentObj = childrenListMap[item[parentId]]
if (!parentObj) {
tree.push(node)
} else {
parentObj[children].push(node)
}
})
return tree
}
const isWeekendDate = (date) => {
const day = date.getDay()
return day === 0 || day === 6
}
const isWeekendDateString = (dateStr) => {
if (!dateStr) return false
const [year, month, day] = String(dateStr).split(' ')[0].split('-').map(Number)
return isWeekendDate(new Date(year, month - 1, day))
}
const isDateDisabled = (dateStr) => {
const todayStr = formatDate(getTodayTimestamp())
if (dateStr < todayStr) return true
if (Number(formData.isWeekend) === 2 && isWeekendDateString(dateStr)) return true
return false
}
const setIsWeekend = (value) => {
formData.isWeekend = value
if (Number(value) === 2) {
if (isWeekendDateString(formData.startDate)) {
formData.startDate = ''
}
if (isWeekendDateString(formData.endDate)) {
formData.endDate = ''
}
}
}
const startPickerContext = ref(getTodayTimestamp())
const endPickerContext = ref(getTodayTimestamp())
const buildWeekendDayFilter = (contextRef) => {
return (type, values) => {
if (Number(formData.isWeekend) !== 2 || type !== 'day') {
return values
}
const current = new Date(contextRef.value)
const year = current.getFullYear()
const month = current.getMonth()
const filtered = values.filter((dayStr) => {
const date = new Date(year, month, Number(dayStr))
return !isWeekendDate(date)
})
return filtered.length > 0 ? filtered : values
}
}
const startDateFilter = computed(() => {
return Number(formData.isWeekend) === 2 ? buildWeekendDayFilter(startPickerContext) : null
})
const endDateFilter = computed(() => {
return Number(formData.isWeekend) === 2 ? buildWeekendDayFilter(endPickerContext) : null
})
const getNextAvailableTimestamp = (timestamp, minTimestamp = getTodayTimestamp()) => {
let date = new Date(Math.max(timestamp, minTimestamp))
let guard = 0
while (guard < 366) {
const isPast = date.getTime() < minTimestamp
const isWeekendBlocked = Number(formData.isWeekend) === 2 && isWeekendDate(date)
if (!isPast && !isWeekendBlocked) {
return date.getTime()
}
date.setDate(date.getDate() + 1)
guard++
}
return date.getTime()
}
const todayMinDate = computed(() => getTodayTimestamp())
const endDateMinDate = computed(() => { const endDateMinDate = computed(() => {
if (formData.startDate) { if (formData.startDate) {
const [year, month, day] = formData.startDate.split('-').map(Number); const [year, month, day] = formData.startDate.split('-').map(Number)
return new Date(year, month - 1, day).getTime(); return new Date(year, month - 1, day + 1).getTime()
} }
return getTodayTimestamp(); return getTodayTimestamp()
}); });
const startDateValue = ref(getTodayTimestamp()); const startDateValue = ref(getTodayTimestamp());
@@ -458,13 +568,13 @@ const showEndDatePicker = ref(false);
// 选择器数据 // 选择器数据
const deptColumns = ref([['湘西自治州和谐网络科技有限公司', '湘西自治州和谐云大数据科技有限公司', '湘西网络有限公司']]); const deptColumns = ref([['湘西自治州和谐网络科技有限公司', '湘西自治州和谐云大数据科技有限公司', '湘西网络有限公司']]);
const typeColumns = ref([['日常检查', '专项检查', '设备检查']]); const typeColumns = ref([['日常检查', '专项检查', '设备检查']]);
const modeColumns = ref([['全员', '指定人员']]); const modeColumns = ref([['单人完成', '员']]);
const cycleColumns = ref([['每天一次', '每周一次', '每月一次', '每季度一次']]); const cycleColumns = ref([['每天一次', '每周一次', '每月一次', '每季度一次']]);
// 执行人员选择器 // 执行人员选择器
const showExecutorPopup = ref(false); const showExecutorPopup = ref(false);
const executorList = ref([]); const executorList = ref([]);
const selectedExecutorIds = ref([]); const selectedExecutorId = ref(null);
// 分派单位级联选择器 // 分派单位级联选择器
const deptTree = ref([]); const deptTree = ref([]);
@@ -473,15 +583,16 @@ const deptCascaderIndexs = ref([0]);
const selectedDeptPath = ref([]); // 选中的路径 const selectedDeptPath = ref([]); // 选中的路径
// 选择器确认回调 // 选择器确认回调
const onDeptConfirm = (e) => { const onDeptConfirm = () => {
// 获取最后选中的部门 const lastSelected = selectedDeptPath.value[selectedDeptPath.value.length - 1]
const lastSelected = selectedDeptPath.value[selectedDeptPath.value.length - 1];
if (lastSelected) { if (lastSelected) {
formData.deptId = lastSelected.deptId; formData.deptId = lastSelected.deptId
formData.deptName = selectedDeptPath.value.map(d => d.deptName).join(' / '); formData.deptName = selectedDeptPath.value.map(d => d.deptName).join(' / ')
clearExecutorSelection()
fetchDeptUsers(lastSelected.deptId)
} }
showDeptPicker.value = false; showDeptPicker.value = false
}; }
// 检查表类型映射:日常检查->1, 专项检查->2, 设备检查->3 // 检查表类型映射:日常检查->1, 专项检查->2, 设备检查->3
const typeMap = { const typeMap = {
@@ -500,95 +611,95 @@ const onTypeConfirm = (e) => {
const onModeConfirm = (e) => { const onModeConfirm = (e) => {
if (e.value && e.value.length > 0) { if (e.value && e.value.length > 0) {
formData.modeName = e.value[0]; formData.modeName = e.value[0]
// 如果切换到全员,清空执行人员选择
if (e.value[0] === '全员') { if (e.value[0] === '全员') {
formData.executorIds = []; clearExecutorSelection()
formData.executorNames = '';
selectedExecutorIds.value = [];
} }
} }
showModePicker.value = false; showModePicker.value = false
}; }
// 获取当前部门用户列表 const clearExecutorSelection = () => {
const fetchDeptUsers = async () => { formData.executorId = ''
formData.executorNames = ''
selectedExecutorId.value = null
}
const fetchDeptUsers = async (deptId) => {
if (!deptId) {
executorList.value = []
return
}
try { try {
const res = await getDeptUsers(); const res = await getDeptUsers(deptId)
if (res.code === 0 && res.data) { if (res.code === 0 && res.data) {
executorList.value = res.data || []; executorList.value = res.data || []
}
} catch (error) {
console.error('获取部门用户失败:', error);
}
};
// 切换执行人员选择
const toggleExecutorSelect = (item) => {
const index = selectedExecutorIds.value.indexOf(item.userId);
if (index > -1) {
selectedExecutorIds.value.splice(index, 1);
} else { } else {
selectedExecutorIds.value.push(item.userId); executorList.value = []
}
};
// 确认执行人员选择
const confirmExecutorSelect = () => {
formData.executorIds = [...selectedExecutorIds.value];
const selectedUsers = executorList.value.filter(u => selectedExecutorIds.value.includes(u.userId));
formData.executorNames = selectedUsers.map(u => u.nickName).join('、');
showExecutorPopup.value = false;
};
// 打开执行人员选择弹窗
const openExecutorPopup = () => {
selectedExecutorIds.value = [...formData.executorIds];
showExecutorPopup.value = true;
};
// 获取父级部门列表(树形结构)
const fetchParentDepts = async () => {
try {
const res = await getParentDepts();
if (res.code === 0 && res.data) {
deptTree.value = res.data;
// 初始化级联选择器第一列
initDeptCascader(res.data);
} }
} catch (error) { } catch (error) {
console.error('获取部门失败:', error); console.error('获取部门用户失败:', error)
executorList.value = []
} }
}; }
const selectExecutor = (item) => {
selectedExecutorId.value = item.userId
}
const confirmExecutorSelect = () => {
if (!selectedExecutorId.value) {
uni.showToast({ title: '请选择执行人员', icon: 'none' })
return
}
const selectedUser = executorList.value.find(u => u.userId === selectedExecutorId.value)
formData.executorId = selectedExecutorId.value
formData.executorNames = selectedUser?.nickName || selectedUser?.nickname || ''
showExecutorPopup.value = false
}
const openExecutorPopup = () => {
if (!formData.deptId) {
uni.showToast({ title: '请先选择分派单位', icon: 'none' })
return
}
selectedExecutorId.value = formData.executorId || null
fetchDeptUsers(formData.deptId)
showExecutorPopup.value = true
}
const fetchDeptChildren = async () => {
try {
const res = await getDeptChildren()
if (res.code === 0 && res.data) {
const list = Array.isArray(res.data) ? res.data : []
deptTree.value = handleTree(list, 'deptId')
initDeptCascader(deptTree.value)
}
} catch (error) {
console.error('获取部门树失败:', error)
}
}
// 初始化部门级联选择器 // 初始化部门级联选择器
const initDeptCascader = (data) => { const initDeptCascader = (treeData) => {
if (!data) return; const roots = Array.isArray(treeData) ? treeData : (treeData ? [treeData] : [])
// 第一列数据 if (roots.length === 0) return
const firstColumn = buildDeptColumn(data);
deptCascaderColumns.value = [firstColumn];
deptCascaderIndexs.value = [0];
selectedDeptPath.value = [data];
// 如果有子级,添加下一列
if (data.children && data.children.length > 0) {
const secondColumn = data.children.map(item => ({ text: item.deptName, ...item }));
deptCascaderColumns.value.push(secondColumn);
deptCascaderIndexs.value.push(0);
selectedDeptPath.value.push(data.children[0]);
// 检查是否还有下一级
if (data.children[0].children && data.children[0].children.length > 0) {
const thirdColumn = data.children[0].children.map(item => ({ text: item.deptName, ...item }));
deptCascaderColumns.value.push(thirdColumn);
deptCascaderIndexs.value.push(0);
selectedDeptPath.value.push(data.children[0].children[0]);
}
}
};
// 构建部门列数据 const firstColumn = roots.map(item => ({ text: item.deptName, ...item }))
const buildDeptColumn = (data) => { deptCascaderColumns.value = [firstColumn]
return [{ text: data.deptName, ...data }]; deptCascaderIndexs.value = [0]
}; selectedDeptPath.value = [roots[0]]
let current = roots[0]
while (current.children && current.children.length > 0) {
const nextColumn = current.children.map(item => ({ text: item.deptName, ...item }))
deptCascaderColumns.value.push(nextColumn)
deptCascaderIndexs.value.push(0)
selectedDeptPath.value.push(current.children[0])
current = current.children[0]
}
}
// 部门级联选择器列改变 // 部门级联选择器列改变
const onDeptCascaderChange = (e) => { const onDeptCascaderChange = (e) => {
@@ -636,15 +747,6 @@ const onCycleConfirm = (e) => {
showCyclePicker.value = false; showCyclePicker.value = false;
}; };
// 日期格式化(年月日)
const formatDate = (timestamp) => {
const date = new Date(timestamp);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
};
const parseDateValue = (dateStr) => { const parseDateValue = (dateStr) => {
if (!dateStr) return 0; if (!dateStr) return 0;
const [datePart] = dateStr.split(' '); const [datePart] = dateStr.split(' ');
@@ -653,45 +755,70 @@ const parseDateValue = (dateStr) => {
}; };
const openStartDatePicker = () => { const openStartDatePicker = () => {
const today = getTodayTimestamp(); const candidate = formData.startDate
if (startDateValue.value < today) { ? parseDateValue(formData.startDate)
startDateValue.value = today; : getTodayTimestamp()
} startDateValue.value = getNextAvailableTimestamp(candidate)
showStartDatePicker.value = true; startPickerContext.value = startDateValue.value
}; showStartDatePicker.value = true
}
const openEndDatePicker = () => { const openEndDatePicker = () => {
const minDate = endDateMinDate.value; if (!formData.startDate) {
if (endDateValue.value < minDate) { uni.showToast({ title: '请先选择计划开始日期', icon: 'none' })
endDateValue.value = minDate; return
} }
showEndDatePicker.value = true; const minDate = endDateMinDate.value
}; const candidate = formData.endDate
? parseDateValue(formData.endDate)
: minDate
endDateValue.value = getNextAvailableTimestamp(candidate, minDate)
endPickerContext.value = endDateValue.value
showEndDatePicker.value = true
}
const onStartDatePickerChange = (e) => {
startPickerContext.value = e.value
startDateValue.value = e.value
}
const onEndDatePickerChange = (e) => {
endPickerContext.value = e.value
endDateValue.value = e.value
}
const onStartDateConfirm = (e) => { const onStartDateConfirm = (e) => {
const selectedDate = formatDate(e.value); const selectedDate = formatDate(e.value)
const todayStr = formatDate(getTodayTimestamp()); if (isDateDisabled(selectedDate)) {
if (selectedDate < todayStr) { uni.showToast({
uni.showToast({ title: '开始时间不能早于今天', icon: 'none' }); title: Number(formData.isWeekend) === 2 ? '不能选择周末或今天之前的日期' : '开始日期不能早于今天',
return; icon: 'none'
})
return
} }
if (formData.endDate && parseDateValue(selectedDate) > parseDateValue(formData.endDate)) { if (formData.endDate && parseDateValue(selectedDate) >= parseDateValue(formData.endDate)) {
uni.showToast({ title: '开始时间不能晚于结束时间', icon: 'none' }); formData.endDate = ''
return;
} }
formData.startDate = selectedDate; formData.startDate = selectedDate
showStartDatePicker.value = false; showStartDatePicker.value = false
}; }
const onEndDateConfirm = (e) => { const onEndDateConfirm = (e) => {
const selectedDate = formatDate(e.value); const selectedDate = formatDate(e.value)
if (formData.startDate && parseDateValue(selectedDate) < parseDateValue(formData.startDate)) { if (isDateDisabled(selectedDate)) {
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' }); uni.showToast({
return; title: Number(formData.isWeekend) === 2 ? '不能选择周末或今天之前的日期' : '结束日期不能早于今天',
icon: 'none'
})
return
} }
formData.endDate = selectedDate; if (formData.startDate && parseDateValue(selectedDate) <= parseDateValue(formData.startDate)) {
showEndDatePicker.value = false; uni.showToast({ title: '计划结束日期必须晚于计划开始日期', icon: 'none' })
}; return
}
formData.endDate = selectedDate
showEndDatePicker.value = false
}
// 手动添加的检查项列表 // 手动添加的检查项列表
const manualCheckItems = ref([]); const manualCheckItems = ref([]);
@@ -1125,11 +1252,10 @@ const handleSave = async () => {
return; return;
} }
if (!formData.modeName) { if (!formData.modeName) {
uni.showToast({ title: '请选择运行模式', icon: 'none' }); uni.showToast({ title: '请选择模式', icon: 'none' });
return; return;
} }
// 如果选择指定人员,需要选择执行人员 if (formData.modeName === '单人完成' && !formData.executorId) {
if (formData.modeName === '指定人员' && formData.executorIds.length === 0) {
uni.showToast({ title: '请选择执行人员', icon: 'none' }); uni.showToast({ title: '请选择执行人员', icon: 'none' });
return; return;
} }
@@ -1138,11 +1264,11 @@ const handleSave = async () => {
return; return;
} }
if (!formData.startDate || !formData.endDate) { if (!formData.startDate || !formData.endDate) {
uni.showToast({ title: '请选择计划时间', icon: 'none' }); uni.showToast({ title: '请选择计划日期', icon: 'none' });
return; return;
} }
if (parseDateValue(formData.endDate) < parseDateValue(formData.startDate)) { if (parseDateValue(formData.endDate) <= parseDateValue(formData.startDate)) {
uni.showToast({ title: '结束时间不能早于开始时间', icon: 'none' }); uni.showToast({ title: '计划结束日期必须晚于计划开始日期', icon: 'none' });
return; return;
} }
@@ -1164,9 +1290,9 @@ const handleSave = async () => {
return; return;
} }
// 运行模式映射:指定人员=1全员=2 // 运行模式映射:单人完成=1全员=2
const runModeMap = { const runModeMap = {
'指定人员': 1, '单人完成': 1,
'全员': 2 '全员': 2
}; };
@@ -1196,15 +1322,13 @@ const handleSave = async () => {
checkPointIds: items, checkPointIds: items,
itemIds: itemIds, // 从检查库选择的库id数组 itemIds: itemIds, // 从检查库选择的库id数组
cycle: cycleMap[formData.cycleName] || 1, cycle: cycleMap[formData.cycleName] || 1,
isWeekend: workdaySwitch.value ? 1 : 2, isWeekend: formData.isWeekend,
planStartTime: `${formData.startDate} 00:00:00`, planStartTime: `${formData.startDate} 00:00:00`,
planEndTime: `${formData.endDate} 23:59:59` planEndTime: `${formData.endDate} 00:00:00`
}; };
// 如果是指定人员模式添加执行人员id if (formData.modeName === '单人完成' && formData.executorId) {
if (formData.modeName === '指定人员' && formData.executorIds.length > 0) { params.executorId = formData.executorId;
params.executorId = formData.executorIds[0]; // 如果只能选一个执行人员
// 如果支持多个执行人员可以改为params.executorIds = formData.executorIds;
} }
try { try {
@@ -1229,8 +1353,7 @@ const handleSave = async () => {
// 页面加载时获取数据 // 页面加载时获取数据
onMounted(() => { onMounted(() => {
fetchDeptUsers(); fetchDeptChildren();
fetchParentDepts();
}); });
</script> </script>
@@ -1305,13 +1428,36 @@ onMounted(() => {
} }
} }
// 开关行 // 开关行(保留兼容)
.switch-row { .switch-row {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 30rpx; gap: 30rpx;
} }
.weekend-options {
display: flex;
gap: 20rpx;
}
.weekend-option {
flex: 1;
height: 72rpx;
line-height: 72rpx;
text-align: center;
font-size: 28rpx;
color: #666;
background: #fff;
border: 2rpx solid #E5E5E5;
border-radius: 8rpx;
&.active {
color: #2667E9;
border-color: #2667E9;
background: #F0F6FF;
}
}
// 空状态提示 // 空状态提示
.empty-check-tip { .empty-check-tip {
text-align: center; text-align: center;
@@ -1732,11 +1878,11 @@ onMounted(() => {
border-bottom: 1rpx solid #f0f0f0; border-bottom: 1rpx solid #f0f0f0;
} }
.executor-checkbox { .executor-radio {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
border: 2rpx solid #ccc; border: 2rpx solid #ccc;
border-radius: 8rpx; border-radius: 50%;
margin-right: 20rpx; margin-right: 20rpx;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -1744,10 +1890,15 @@ onMounted(() => {
flex-shrink: 0; flex-shrink: 0;
} }
.executor-checkbox-active { .executor-radio-active {
background: #2667E9;
border-color: #2667E9; border-color: #2667E9;
color: #fff; }
.executor-radio-dot {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background: #2667E9;
} }
.executor-info { .executor-info {

View File

@@ -160,7 +160,7 @@
const details = (item) => { const details = (item) => {
uni.navigateTo({ uni.navigateTo({
url: `/pages/hiddendanger/view?hazardId=${item.hazardId}&assignId=${item.assignId}` url: `/pages/hiddendanger/detail2?hazardId=${item.hazardId}&assignId=${item.assignId || ''}`
}) })
} }
@@ -169,6 +169,12 @@
if (item.deadline) { if (item.deadline) {
url += `&deadline=${encodeURIComponent(item.deadline)}` url += `&deadline=${encodeURIComponent(item.deadline)}`
} }
if (item.assigneeId) {
url += `&assigneeId=${item.assigneeId}`
}
if (item.assigneeName) {
url += `&assigneeName=${encodeURIComponent(item.assigneeName)}`
}
uni.navigateTo({ url }) uni.navigateTo({ url })
} }

View File

@@ -76,7 +76,7 @@
<up-datetime-picker <up-datetime-picker
:show="showDatePicker" :show="showDatePicker"
v-model="dateValue" v-model="dateValue"
mode="datetime" mode="date"
@confirm="onDateConfirm" @confirm="onDateConfirm"
@cancel="showDatePicker = false" @cancel="showDatePicker = false"
@close="showDatePicker = false" @close="showDatePicker = false"
@@ -204,17 +204,13 @@
} }
}; };
// 日期时间选择确认 // 日期选择确认
const onDateConfirm = (e) => { const onDateConfirm = (e) => {
console.log('选择的日期时间:', e);
const date = new Date(e.value); const date = new Date(e.value);
const year = date.getFullYear(); const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0'); selectedDate.value = `${year}-${month}-${day}`;
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
selectedDate.value = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
showDatePicker.value = false; showDatePicker.value = false;
}; };

View File

@@ -446,6 +446,22 @@
} }
}; };
const applyAssigneeFromOptions = (assigneeId, assigneeName) => {
if (!assigneeId) return;
const id = String(assigneeId);
const name = assigneeName ? decodeURIComponent(String(assigneeName)).trim() : '';
const exists = detailPersonPool.value.some((user) => String(user.userId) === id);
if (!exists) {
detailPersonPool.value.push({
userId: assigneeId,
nickName: name,
deptName: ''
});
}
selectedUserIds.value = [id];
syncSelectedUsersFromIds(selectedUserIds.value);
};
const parseIdList = (raw) => { const parseIdList = (raw) => {
if (raw === null || raw === undefined || raw === '') return []; if (raw === null || raw === undefined || raw === '') return [];
if (Array.isArray(raw)) { if (Array.isArray(raw)) {
@@ -1213,6 +1229,10 @@
assignId.value = options.assignId; assignId.value = options.assignId;
} }
if (!options.rectifyId && options.assigneeId) {
applyAssigneeFromOptions(options.assigneeId, options.assigneeName);
}
// 在hazardId赋值后调用确保有值 // 在hazardId赋值后调用确保有值
if (!options.rectifyId) fetchPersonnelLists(); if (!options.rectifyId) fetchPersonnelLists();

View File

@@ -199,7 +199,7 @@
import { toImageUrl } from '@/request/request.js'; import { toImageUrl } from '@/request/request.js';
const loading = ref(true); const loading = ref(true);
const defaultAvatar = 'https://ossweb-img.qq.com/images/lol/web201310/skin/big99008.jpg'; const defaultAvatar = '/static/my/default_avater.png';
// 用户信息 // 用户信息
const userInfo = reactive({ const userInfo = reactive({
@@ -541,6 +541,12 @@
if (item.deadline) { if (item.deadline) {
url += `&deadline=${encodeURIComponent(item.deadline)}` url += `&deadline=${encodeURIComponent(item.deadline)}`
} }
if (item.assigneeId) {
url += `&assigneeId=${item.assigneeId}`
}
if (item.assigneeName) {
url += `&assigneeName=${encodeURIComponent(item.assigneeName)}`
}
uni.navigateTo({ url }) uni.navigateTo({ url })
} }

View File

@@ -107,7 +107,7 @@
import { toImageUrl } from '@/request/request.js'; import { toImageUrl } from '@/request/request.js';
import { getProfileDetail } from '@/request/three_one_api/info.js'; import { getProfileDetail } from '@/request/three_one_api/info.js';
const defaultAvatar = 'https://ossweb-img.qq.com/images/lol/web201310/skin/big99008.jpg'; const defaultAvatar = '/static/my/default_avater.png';
// 用户信息 // 用户信息
const userInfo = reactive({ const userInfo = reactive({

View File

@@ -295,6 +295,14 @@ export function getCheckTableDetail(params) {
}); });
} }
// 获取检查表完整详情(与后台检查计划详情对齐)
export function getOneTableInfo(id) {
return requestAPI({
url: `/admin/oneTable/info/${id}`,
method: 'GET'
});
}
// 获取检查表详情(排查验证用,新流程) // 获取检查表详情(排查验证用,新流程)
export function getOneTableInspectDetail(id) { export function getOneTableInspectDetail(id) {
return requestAPI({ return requestAPI({
@@ -402,12 +410,19 @@ export function getCheckItemListDetail(params) {
}); });
} }
// 获取当前部门所有用户 // 根据部门id获取用户列表
export function getDeptUsers(params) { export function getDeptUsers(deptId) {
return requestAPI({ return requestAPI({
url: '/admin/user/dept/users', url: deptId ? `/admin/user/dept/users/${deptId}` : '/admin/user/dept/users',
method: 'GET', method: 'GET'
data: params });
}
// 获取子级部门列表(从当前到最后一层)
export function getDeptChildren() {
return requestAPI({
url: '/admin/dept/children',
method: 'GET'
}); });
} }

View File

@@ -2,9 +2,9 @@ import Request from './luch-request/index.js';
// 基础的url // 基础的url
const baseUrl = 'https://yingji.hexieapi.com/prod-api'; // const baseUrl = 'https://yingji.hexieapi.com/prod-api';
// const baseUrl = 'http://192.168.1.168:5004'; //廖哥本地 // const baseUrl = 'http://192.168.1.168:5004'; //廖哥本地
// const baseUrl = 'http://192.168.1.140:5004'; //超哥本地 const baseUrl = 'http://192.168.1.140:5004'; //超哥本地
// const baseUrl = 'http://192.168.1.158:7003'; //测试环境 // const baseUrl = 'http://192.168.1.158:7003'; //测试环境

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1782184474076" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5377" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M307.2 768h102.4v51.2h-102.4zM307.2 614.4h409.6v51.2H307.2zM307.2 460.8h409.6v51.2H307.2zM307.2 307.2h358.4v51.2H307.2z" fill="#335056" p-id="5378"></path><path d="M716.8 102.4V51.2H307.2v51.2H153.6v870.4h716.8V102.4h-153.6zM358.4 102.4h307.2v51.2H358.4V102.4z m460.8 819.2H204.8V153.6h102.4v51.2h409.6V153.6h102.4v768z" fill="#335056" p-id="5379"></path><path d="M358.4 102.4h307.2v51.2H358.4z" fill="#78BDCC" p-id="5380"></path></svg>

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1 +0,0 @@
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./common/vendor.js"),o=require("./uni_modules/uview-plus/index.js");Math;const t={onLaunch:function(){console.log("App Launch")},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")}};e.index.addInterceptor("chooseImage",{success(o){const t=["bmp","gif","jpg","jpeg","png"],n=[],p=[];let i=!1,s="";o.tempFiles.forEach(((e,c)=>{const u=(e.path||o.tempFilePaths[c]).split("?")[0].split(".").pop().toLowerCase();t.includes(u)?(p.push(e),n.push(o.tempFilePaths[c])):(i=!0,s=u)})),i&&e.index.showToast({title:`已过滤不支持的 .${s} 格式图片,请上传 png/jpg/jpeg/gif/bmp`,icon:"none",duration:3500}),o.tempFilePaths=n,o.tempFiles=p}});const n=["bmp","gif","jpg","jpeg","png","doc","docx","xls","xlsx","ppt","pptx","html","htm","txt","rar","zip","gz","bz2","mp4","avi","rmvb","pdf"],p=["qiniup.com","qbox.me"];function i(o){if(!o)return!0;const t=o.split("?")[0].split(".").pop().toLowerCase();return!!n.includes(t)||(e.index.showToast({title:`不支持 .${t} 格式,请上传合规的文件或图片`,icon:"none",duration:3e3}),!1)}function s(){const n=e.createSSRApp(t);return n.use(o.uviewPlus),{app:n}}e.index.addInterceptor("uploadFile",{invoke(e){const o=e.url||"";return p.some((e=>o.includes(e)))||o.includes("/frontend/attachment/upload"),!!i(e.filePath)&&e}}),s().app.mount("#app"),exports.createApp=s;

View File

@@ -1,83 +0,0 @@
{
"pages": [
"pages/index/index",
"pages/map/map",
"pages/plandetail/plandetail",
"pages/Inspectionresult/Inspectionresult",
"pages/Inspectionresult/list",
"pages/Inspectionresult/detail",
"pages/membermanagemen/membermanagemen",
"pages/corporateInformation/corporateInformation",
"pages/editcompanInformation/editcompanInformation",
"pages/checklist/checklist",
"pages/editchecklist/editchecklist",
"pages/Inspectionlog/Inspectionlog",
"pages/Inspectionchecklist/Inspectionchecklist",
"pages/Idphotomanagement/Idphotomanagement",
"pages/hiddendanger/Inspection",
"pages/hiddendanger/view",
"pages/hiddendanger/detail2",
"pages/hiddendanger/rectification",
"pages/hiddendanger/acceptance",
"pages/hiddendanger/assignment",
"pages/closeout/application",
"pages/closeout/editor",
"pages/equipmentregistration/equipmentregistration",
"pages/area/management",
"pages/Inspectionwarning/Inspectionwarning",
"pages/personalcenter/my",
"pages/personalcenter/helpcenter",
"pages/personalcenter/notification",
"pages/personalcenter/settings",
"pages/personalcenter/account",
"pages/personalcenter/edit",
"pages/login/login",
"pages/login/reg",
"pages/login/enterprise",
"pages/login/success",
"pages/login/forget",
"pages/login/agreement"
],
"window": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#007aff",
"backgroundColor": "#F8F8F8"
},
"tabBar": {
"color": "#999999",
"selectedColor": "#007aff",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "static/tabbar_icon/home_icon.png",
"selectedIconPath": "static/tabbar_icon/home_selectedIcon.png"
},
{
"pagePath": "pages/Inspectionwarning/Inspectionwarning",
"text": "预警",
"iconPath": "static/tabbar_icon/yujing_icon.png",
"selectedIconPath": "static/tabbar_icon/yujing_selectedIcon.png"
},
{
"pagePath": "pages/personalcenter/my",
"text": "我的",
"iconPath": "static/tabbar_icon/mine_icon.png",
"selectedIconPath": "static/tabbar_icon/mine_selectedIcon.png"
}
]
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于选择隐患位置"
}
},
"requiredPrivateInfos": [
"chooseLocation",
"getLocation"
],
"usingComponents": {}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";exports._imports_0="/static/home_icon/jianbianbeijing.png",exports._imports_0$1="/static/yinhuan_detail/status.png",exports._imports_0$2="/static/yujin/yujin_sousuo.png",exports._imports_0$3="/static/my/edit.png",exports._imports_0$4="/static/my/Customer service.png",exports._imports_0$5="/static/index/index_bg.png",exports._imports_0$6="/static/index/phone.png",exports._imports_0$7="/static/index/蒙版组 260.png",exports._imports_1="/static/yinhuan_detail/date.png",exports._imports_1$1="/static/yujin/yujin_tongji.png",exports._imports_1$2="/static/my/Notification.png",exports._imports_1$3="/static/my/Phone.png",exports._imports_1$4="/static/index/lock.png",exports._imports_2="/static/my/Account.png";

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";const e=require("../common/vendor.js"),o={__name:"AreaFormPopup",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},editData:{type:Object,default:()=>({})},loading:{type:Boolean,default:!1}},emits:["update:visible","submit","close"],setup(o,{emit:a}){const t=o,l=a,n=e.reactive({name:"",color:"#D92121"}),i=[{name:"红色",value:"#D92121"},{name:"橙色",value:"#FF8822"},{name:"黄色",value:"#FFCC00"},{name:"蓝色",value:"#165DFF"}],r=i.map((e=>e.value)),c=e.computed((()=>{const e=i.find((e=>e.value===n.color));return e?`${e.name} ${e.value}`:n.color}));e.watch((()=>t.editData),(e=>{e&&Object.keys(e).length>0&&(n.name=e.name||"",n.color=(e=>{if(!e)return i[0].value;const o=String(e).toUpperCase();return r.find((e=>e.toUpperCase()===o))||i[0].value})(e.color))}),{immediate:!0,deep:!0}),e.watch((()=>t.visible),(e=>{e||u()}));const u=()=>{n.name="",n.color="#D92121"},s=()=>{l("update:visible",!1),l("close")},m=()=>{n.name?r.includes(n.color)?l("submit",{name:n.name,color:n.color}):e.index.showToast({title:"请从预设颜色中选择",icon:"none"}):e.index.showToast({title:"请输入区域名称",icon:"none"})};return(a,t)=>e.e({a:o.visible},o.visible?{b:e.t(o.isEdit?"编辑区域":"新增区域"),c:e.o(s),d:n.name,e:e.o((e=>n.name=e.detail.value)),f:n.color,g:e.t(c.value),h:e.f(i,((o,a,t)=>({a:n.color===o.value?1:"",b:o.value,c:e.t(o.name),d:o.value,e:e.o((e=>{return a=o.value,void(n.color=a);var a}),o.value)}))),i:e.o(s),j:e.o(m),k:o.loading,l:e.o((()=>{})),m:e.o(s),n:e.gei(a,"")}:{})}},a=e._export_sfc(o,[["__scopeId","data-v-737ed489"]]);wx.createComponent(a);

View File

@@ -1,4 +0,0 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -1 +0,0 @@
<view wx:if="{{a}}" bindtap="{{m}}" class="{{['popup-mask', 'data-v-737ed489', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{n}}"><view class="popup-content data-v-737ed489" catchtap="{{l}}"><view class="popup-header data-v-737ed489"><view class="popup-title text-bold data-v-737ed489">{{b}}</view><view class="popup-close data-v-737ed489" bindtap="{{c}}">×</view></view><view class="popup-body data-v-737ed489"><view class="flex margin-bottom-sm data-v-737ed489"><view class="data-v-737ed489">区域名称</view><view class="text-red data-v-737ed489">*</view></view><input class="form-input data-v-737ed489" placeholder="请输入区域名称" value="{{d}}" bindinput="{{e}}"/><view class="flex margin-bottom-sm margin-top data-v-737ed489"><view class="data-v-737ed489">区域颜色</view><view class="text-red data-v-737ed489">*</view></view><view class="flex align-center margin-bottom-sm data-v-737ed489"><view class="color-preview data-v-737ed489" style="{{'background-color:' + f}}"></view><text class="margin-left-sm text-gray data-v-737ed489">{{g}}</text></view><view class="margin-bottom-sm text-gray data-v-737ed489">请选择颜色</view><view class="color-grid data-v-737ed489"><view wx:for="{{h}}" wx:for-item="item" wx:key="d" class="color-option data-v-737ed489" bindtap="{{item.e}}"><view class="{{['color-item', 'data-v-737ed489', item.a && 'color-item-active']}}" style="{{'background-color:' + item.b}}"></view><text class="color-label data-v-737ed489">{{item.c}}</text></view></view></view><view class="popup-footer data-v-737ed489"><button class="btn-cancel data-v-737ed489" bindtap="{{i}}">取消</button><button class="btn-confirm bg-blue data-v-737ed489" bindtap="{{j}}" loading="{{k}}">确定</button></view></view></view>

View File

@@ -1 +0,0 @@
.popup-mask.data-v-737ed489{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999}.popup-content.data-v-737ed489{width:600rpx;background:#fff;border-radius:20rpx;overflow:hidden}.popup-header.data-v-737ed489{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.popup-title.data-v-737ed489{font-size:32rpx}.popup-close.data-v-737ed489{font-size:40rpx;color:#999}.popup-body.data-v-737ed489{padding:30rpx}.popup-footer.data-v-737ed489{display:flex;padding:20rpx 30rpx 30rpx}.popup-footer button.data-v-737ed489{flex:1;height:80rpx;line-height:80rpx;border-radius:40rpx;font-size:30rpx;margin:0 10rpx}.popup-footer button.data-v-737ed489:after{border:none}.popup-footer .btn-cancel.data-v-737ed489{background:#f5f5f5;color:#666}.popup-footer .btn-confirm.data-v-737ed489{color:#fff}.form-input.data-v-737ed489{width:100%;height:70rpx;padding:0 20rpx;border:2rpx solid #dadbde;border-radius:8rpx;font-size:28rpx;box-sizing:border-box}.color-preview.data-v-737ed489{width:70rpx;height:70rpx;border-radius:8rpx;flex-shrink:0;border:2rpx solid #e5e5e5}.color-grid.data-v-737ed489{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24rpx 0}.color-option.data-v-737ed489{width:25%;display:flex;flex-direction:column;align-items:center}.color-item.data-v-737ed489{width:80rpx;height:80rpx;border-radius:12rpx;border:4rpx solid transparent;box-sizing:border-box}.color-label.data-v-737ed489{margin-top:12rpx;font-size:24rpx;color:#666}.color-item-active.data-v-737ed489{border-color:#333;box-shadow:0 0 0 4rpx rgba(0,0,0,.08)}

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +0,0 @@
{
"component": true,
"usingComponents": {
"up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload",
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";const t=require("../../utils/upload.js"),e=[{id:2,title:"一般隐患"},{id:3,title:"重大隐患"}],l=[{id:1,title:"部门检查"},{id:2,title:"督导检查"},{id:3,title:"企业自查"},{id:4,title:"行业互查"}];exports.AI_LEVEL_MAP={"轻微":0,"轻微隐患":0,"一般":0,"一般隐患":0,"重大":1,"重大隐患":1},exports.LEVEL_OPTIONS=e,exports.SOURCE_OPTIONS=l,exports.buildHiddenDangerParams=function(a,i={}){var r,d,n;const{formData:s,address:o,lng:u,lat:c,areaId:g,fileList:I}=a,p=null==(r=a.tagOptions)?void 0:r[s.tagIndex],f=s.tagId??(p?p.id:null);return{title:s.title,level:(null==(d=e[s.level])?void 0:d.id)||2,lng:u||0,lat:c||0,address:o||"",areaId:g||null,description:s.description||"",source:(null==(n=l[s.source])?void 0:n.title)||"",tagId:f,attachments:(I||[]).filter((t=>"success"===t.status)).map((e=>t.buildAttachmentItem(e))),regulationId:s.regulationId||null,...i}},exports.createEmptyHazardPayload=function(){return{formData:{title:"",level:0,source:0,description:"",tagIndex:0,tagId:null,regulationId:null,regulationName:""},address:"",lng:0,lat:0,areaId:"",areaName:"",fileList:[]}},exports.hasValidHazardPayload=function(t){if(!t)return!1;const{formData:e,fileList:l}=t;return!!((null==e?void 0:e.title)&&(null==l?void 0:l.length)>0)};

View File

@@ -1 +0,0 @@
"use strict";require("../../common/vendor.js"),require("../../request/request.js");

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +0,0 @@
{
"component": true,
"usingComponents": {}
}

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

View File

@@ -1,4 +0,0 @@
{
"component": true,
"usingComponents": {}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.hazard-detail-panel-v2.data-v-1547c16c{flex:1;min-height:0;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.loading-wrap.data-v-1547c16c,.empty-wrap.data-v-1547c16c{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.loading-text.data-v-1547c16c,.empty-text.data-v-1547c16c{font-size:28rpx;color:#909399}.detail-body.data-v-1547c16c{display:flex;gap:20rpx;align-items:stretch;overflow:hidden;box-sizing:border-box}.steps-card.data-v-1547c16c{width:140rpx;flex-shrink:0;background:#fff;border-radius:20rpx;box-sizing:border-box}.step-item.data-v-1547c16c{padding:0 12rpx}.step-track.data-v-1547c16c{display:flex;flex-direction:column;align-items:center;padding:28rpx 0 0}.step-dot.data-v-1547c16c{width:66rpx;height:66rpx;border-radius:50%;background:#f3f3f3;display:flex;align-items:center;justify-content:center;transition:background .2s}.step-dot--active.data-v-1547c16c{background:#2667e9}.step-icon.data-v-1547c16c{width:36rpx;height:36rpx}.step-label.data-v-1547c16c{margin-top:12rpx;font-size:24rpx;color:#999;line-height:1.2}.step-label--active.data-v-1547c16c{color:#2667e9;font-weight:600}.step-line.data-v-1547c16c{width:0;height:40rpx;margin:10rpx 0;border-left:2rpx dashed #dcdfe6}.content-column.data-v-1547c16c{flex:1;width:0;min-height:0;box-sizing:border-box}.content-scroll.data-v-1547c16c{width:100%;box-sizing:border-box}.node-section.data-v-1547c16c{box-sizing:border-box;padding:0;margin-bottom:24rpx}.node-section--last.data-v-1547c16c{padding-bottom:40rpx;margin-bottom:0}.detail-card.data-v-1547c16c{background:#fff;border-radius:20rpx;overflow:hidden;padding:28rpx 38rpx;box-sizing:border-box}.card-header-v2.data-v-1547c16c{display:flex;align-items:flex-start;justify-content:space-between;gap:16rpx;padding:0}.card-header-main.data-v-1547c16c{flex:1;min-width:0}.operator.data-v-1547c16c{font-size:28rpx;font-weight:600;color:#303133;line-height:1.5;word-break:break-all}.time.data-v-1547c16c{display:block;margin-top:8rpx;font-size:24rpx;color:#999;line-height:1.4}.level-badge.data-v-1547c16c{flex-shrink:0;padding:6rpx 16rpx;border-radius:8rpx;font-size:22rpx;font-weight:500;white-space:nowrap}.level-badge.level-normal.data-v-1547c16c{background:#fff7e6;border:2rpx solid #ffd591;color:#fa8c16}.level-badge.level-major.data-v-1547c16c{background:#fff1f0;border:2rpx solid #ffa39e;color:#f5222d}.card-divider.data-v-1547c16c{height:0;margin:20rpx 0;border-top:2rpx dashed #eee}.card-body.data-v-1547c16c{padding:0}.detail-row-v2.data-v-1547c16c{display:flex;align-items:flex-start;justify-content:flex-start;gap:24rpx;padding:18rpx 0}.detail-row-v2--block.data-v-1547c16c{flex-wrap:wrap}.label.data-v-1547c16c{flex-shrink:0;font-size:26rpx;color:#999;line-height:1.5}.value.data-v-1547c16c{flex:1;min-width:0;font-size:26rpx;color:#333;line-height:1.6;text-align:left;word-break:break-all}.value--inline.data-v-1547c16c{display:flex;align-items:center}.area-dot.data-v-1547c16c{width:20rpx;height:20rpx;border-radius:50%;margin-right:12rpx;flex-shrink:0}.level-tag.data-v-1547c16c{display:inline-flex;align-items:center;padding:4rpx 16rpx;border-radius:8rpx;font-size:24rpx;font-weight:500;line-height:1.4;white-space:nowrap}.level-normal.data-v-1547c16c{background:#fff7e6;border:2rpx solid #ffd591;color:#fa8c16}.level-major.data-v-1547c16c{background:#fff1f0;border:2rpx solid #ffa39e;color:#f5222d}.tag-badge.data-v-1547c16c{display:inline-flex;align-items:center;padding:4rpx 16rpx;border-radius:8rpx;font-size:24rpx;background:#eef3ff;border:2rpx solid #aac5fc;color:#2667e9}.attachment-list.data-v-1547c16c{display:flex;flex-wrap:wrap;gap:16rpx;flex:1;min-width:0}.attachment-img.data-v-1547c16c{width:160rpx;height:160rpx;border-radius:12rpx;background:#f5f7fa}.sign-img.data-v-1547c16c{width:300rpx;height:160rpx;border:1rpx solid #e4e7ed;border-radius:8rpx;background:#fafafa;flex:1;min-width:0;max-width:100%}.file-link.data-v-1547c16c{display:inline-block;padding:12rpx 20rpx;background:#f5f7fa;border:1rpx solid #e4e7ed;border-radius:8rpx;color:#2667e9;font-size:24rpx}.result-tag.data-v-1547c16c{padding:6rpx 16rpx;border-radius:6rpx;font-size:24rpx}.result-tag--pass.data-v-1547c16c{background:#f0f9eb;color:#67c23a}.result-tag--fail.data-v-1547c16c{background:#fef0f0;color:#f56c6c}

View File

@@ -1 +0,0 @@
"use strict";const e="submit",t="assign",a="rectify",r="verify",i="writeoff",s={1:"status-blue",2:"status-orange",3:"status-red",4:"status-yellow",5:"status-green"},n={"待交办":"status-blue","待整改":"status-orange","整改中":"status-orange","待验收":"status-red","待销号":"status-yellow","已完成":"status-green","已销号":"status-green"},o={2:"一般隐患",3:"重大隐患"};function m(e,t="-"){if(Array.isArray(e)&&e.length)return e.join("、");if("string"==typeof e&&e.trim()){const t=e.split(/[,,、]/).map((e=>e.trim())).filter(Boolean);return t.length?t.join("、"):e}return t}function c(e,t,a){(t||[]).forEach((t=>{if(!t)return;const s=t.verifyId??t.id;if(null!=s){if(a.has(s))return;a.add(s)}e.push(function(e){return!!e&&(2===e.type||"销号"===e.typeName)}(t)?function(e){return{type:i,nodeName:"销号",titlePrefix:"销号",operator:e.verifierName||"-",time:e.verifyTime||"-",content:{resultName:e.resultName||"-",remark:e.remark||"",attachments:e.attachments||[],signPath:e.signPath||"",writeoffDeptName:e.writeoffDeptName||"-"}}}(t):function(e){return{type:r,nodeName:"验收",titlePrefix:"验收",operator:e.verifierName||"-",time:e.verifyTime||"-",content:{resultName:e.resultName||"-",remark:e.remark||"",attachments:e.attachments||[],signPath:e.signPath||"",verifyDeptName:e.verifyDeptName||"-"}}}(t))}))}exports.generateHazardHistory=function(r){if(!r)return[];const i=[];var s;return i.push({type:e,nodeName:"提交",titlePrefix:"提交",operator:r.reporterName||"-",time:r.createdAt||"-",content:{title:r.title||"-",source:r.source||"-",areaName:r.areaName||"-",areaColor:r.areaColor||"",address:r.address||"-",level:r.level,levelName:r.levelName||(s=r.level,o[s]||"未知"),tagName:r.tagName||"-",description:r.description||"-",attachments:r.attachments||[],legalBasis:r.legalBasis||r.regulationName||"-",reporterPhone:r.reporterPhone||"-",reportDeptName:r.reportDeptName||"-"}}),r.assignFlows&&r.assignFlows.length>0&&r.assignFlows.forEach((e=>{var r;e.assignId&&i.push({type:t,nodeName:"交办",titlePrefix:"交办",operator:e.assignerName||"-",time:e.assignTime||"-",content:{assigneeName:e.assigneeName||"-",deadline:e.deadline||"-",assignDeptName:e.assignDeptName||"-",assignRemark:e.assignRemark||"-",priorityName:e.priorityName||"-"}}),e.rectify&&i.push({type:a,nodeName:"整改",titlePrefix:"整改",operator:e.rectify.rectifierName||"-",time:e.rectify.rectifyTime||"-",content:{rectifyPlan:e.rectify.rectifyPlan||"-",rectifyResult:e.rectify.rectifyResult||"-",rectificationMeasures:e.rectify.rectificationMeasures||"-",controlMeasures:e.rectify.controlMeasures||"-",deadline:e.deadline||"-",rectifierNames:(r=e.rectify,r?Array.isArray(r.rectifierNames)&&r.rectifierNames.length?r.rectifierNames.join("、"):Array.isArray(r.memberNames)&&r.memberNames.length?r.memberNames.join("、"):m(r.rectifierName,"-"):"-"),managerNames:m(e.rectify.managerNames,"-"),planCost:e.rectify.planCost,actualCost:e.rectify.actualCost,attachments:e.rectify.attachments||[],signPath:e.rectify.signPath||"",rectifyStatusName:e.rectify.rectifyStatusName||"-"}});const s=new Set;c(i,e.verifies||[],s),c(i,function(e){return e.writeOffs||e.writeoffs||[]}(e),s)})),i},exports.getStatusClass=function(e,t){return t&&n[t]?n[t]:s[e]||""},exports.getStepIconPath=function(e,t=!1){const a={submit:"tijiao",assign:"jiaoban",rectify:"zhenggai",verify:"yanshou",writeoff:"xiaohao"}[e]||"tijiao";return"zhenggai"===a?t?"/static/yinhuan_detail/zhenggai_selected.png":"/static/yinhuan_detail/zhenggai__unselected.png":`/static/yinhuan_detail/${a}__${t?"selected":"unselected"}.png`};

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),l=require("./hazardDetail.js");exports.useHazardDetailScroll=function(t,o){const n=e.getCurrentInstance(),u=(null==n?void 0:n.proxy)||n,r=e.ref([]),a=e.ref(0),i=e.ref([0]),c=e.ref(0),s=e.ref(""),v=e.ref(""),d=e.ref(!0),f=e.ref(!1);let h=null;const g=()=>{clearTimeout(h),h=setTimeout((()=>{r.value.length&&e.nextTick$1((()=>{const l=e.index.createSelectorQuery().in(u);l.select(".content-scroll").boundingClientRect(),l.select(".content-scroll").scrollOffset(),l.selectAll(".node-section").boundingClientRect(),l.exec((e=>{const l=null==e?void 0:e[0],t=null==e?void 0:e[1],o=(null==e?void 0:e[2])||[];if(!l||!o.length)return;c.value=l.height||0;const n=(null==t?void 0:t.scrollTop)||0;i.value=o.map((e=>e.top-l.top+n))}))}))}),80)};return e.watch((()=>"function"==typeof o?o():null==o?void 0:o.value),(e=>{e||(g(),setTimeout(g,300))})),e.watch((()=>"function"==typeof t?t():null==t?void 0:t.value),(e=>{return t=e,r.value=l.generateHazardHistory(t),a.value=0,s.value="",g(),void setTimeout(g,300);var t}),{immediate:!0,deep:!0}),e.watch(a,(e=>{v.value="hazard-step-"+e,setTimeout((()=>{v.value=""}),300)})),e.watch((()=>r.value.length),(()=>g())),e.onReady((()=>{g(),setTimeout(g,300)})),{historyList:r,activeIndex:a,contentScrollIntoView:s,stepScrollIntoView:v,scrollWithAnimation:d,onContentScroll:e=>{if(f.value)return;const{scrollTop:l=0,scrollHeight:t=0}=e.detail||{};((e,l=0)=>{const t=r.value.length;if(!t)return;if(l>0&&c.value>0&&e+c.value>=l-60)return void(a.value!==t-1&&(a.value=t-1));const o=i.value;if(!o.length)return;let n=0;for(let u=o.length-1;u>=0;u--)if(e>=o[u]-80){n=u;break}n!==a.value&&(a.value=n)})(l,t),g()},onScrollToLower:()=>{const e=r.value.length;e>0&&a.value!==e-1&&(a.value=e-1)},scrollToNode:e=>{e<0||e>=r.value.length||(f.value=!0,d.value=!0,a.value=e,s.value="hazard-node-"+e,setTimeout((()=>{s.value="",f.value=!1,g()}),350))},scheduleMeasureLayout:g}};

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../../../common/vendor.js");Math||o();const o=()=>"../wd-icon/wd-icon.js",n=e.defineComponent({name:"wd-button",options:{addGlobalClass:!0,virtualHost:!0,styleIsolation:"shared"},props:e.buttonProps,emits:["click","getuserinfo","contact","getphonenumber","getrealtimephonenumber","error","launchapp","opensetting","chooseavatar","agreeprivacyauthorization"],setup(o,{emit:n}){const a=o,t=n,i=e.ref(20),s=e.ref(70),r=e.ref(""),c=e.computed((()=>`background-image: url(${r.value});`)),l=e.computed((()=>a.disabled||a.loading?void 0:a.openType));function d(e){a.disabled||a.loading||t("click",e)}function u(e){"phoneNumber"===a.scope?g(e):"userInfo"===a.scope&&p(e)}function p(e){t("getuserinfo",e.detail)}function f(e){t("contact",e.detail)}function g(e){t("getphonenumber",e.detail)}function m(e){t("getrealtimephonenumber",e.detail)}function b(e){t("error",e.detail)}function h(e){t("launchapp",e.detail)}function v(e){t("opensetting",e.detail)}function w(e){t("chooseavatar",e.detail)}function k(e){t("agreeprivacyauthorization",e.detail)}return e.watch((()=>a.loading),(()=>{!function(){const{loadingColor:o,type:n,plain:t}=a;let i=o;if(!i)switch(n){case"primary":i="#4D80F0";break;case"success":i="#34d19d";break;case"info":case"default":i="#333";break;case"warning":i="#f0883a";break;case"error":i="#fa4350"}const s=((e="#4D80F0",o=!0)=>`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42"><defs><linearGradient x1="100%" y1="0%" x2="0%" y2="0%" id="a"><stop stop-color="${o?e:"#fff"}" offset="0%" stop-opacity="0"/><stop stop-color="${o?e:"#fff"}" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M21 1c11.046 0 20 8.954 20 20s-8.954 20-20 20S1 32.046 1 21 9.954 1 21 1zm0 7C13.82 8 8 13.82 8 21s5.82 13 13 13 13-5.82 13-13S28.18 8 21 8z" fill="${o?"#fff":e}"/><path d="M4.599 21c0 9.044 7.332 16.376 16.376 16.376 9.045 0 16.376-7.332 16.376-16.376" stroke="url(#a)" stroke-width="3.5" stroke-linecap="round"/></g></svg>`)(i,!t);r.value=`"data:image/svg+xml;base64,${e.encode(s)}"`}()}),{deep:!0,immediate:!0}),(o,n)=>e.e({a:o.loading},o.loading?{b:e.s(c.value)}:o.icon?{d:e.p({"custom-class":"wd-button__icon",name:o.icon,classPrefix:o.classPrefix})}:{},{c:o.icon,e:e.gei(o,o.buttonId),f:""+(o.disabled||o.loading?"":"wd-button--active"),g:e.s(o.customStyle),h:e.n("is-"+o.type),i:e.n("is-"+o.size),j:e.n(o.round?"is-round":""),k:e.n(o.hairline?"is-hairline":""),l:e.n(o.plain?"is-plain":""),m:e.n(o.disabled?"is-disabled":""),n:e.n(o.block?"is-block":""),o:e.n(o.loading?"is-loading":""),p:e.n(o.customClass),q:i.value,r:s.value,s:l.value,t:o.sendMessageTitle,v:o.sendMessagePath,w:o.sendMessageImg,x:o.appParameter,y:o.showMessageCard,z:o.sessionFrom,A:o.lang,B:o.hoverStopPropagation,C:o.scope,D:e.o(d),E:e.o(u),F:e.o(p),G:e.o(f),H:e.o(g),I:e.o(m),J:e.o(b),K:e.o(h),L:e.o(v),M:e.o(w),N:e.o(k)})}}),a=e._export_sfc(n,[["__scopeId","data-v-161f130c"]]);wx.createComponent(a);

View File

@@ -1,6 +0,0 @@
{
"component": true,
"usingComponents": {
"wd-icon": "../wd-icon/wd-icon"
}
}

View File

@@ -1 +0,0 @@
<button id="{{e}}" hover-class="{{f}}" style="{{g + ';' + virtualHostStyle}}" class="{{['data-v-161f130c', 'wd-button', h, i, j, k, l, m, n, o, p, virtualHostClass]}}" hover-start-time="{{q}}" hover-stay-time="{{r}}" open-type="{{s}}" send-message-title="{{t}}" send-message-path="{{v}}" send-message-img="{{w}}" app-parameter="{{x}}" show-message-card="{{y}}" session-from="{{z}}" lang="{{A}}" hover-stop-propagation="{{B}}" scope="{{C}}" bindtap="{{D}}" bindgetAuthorize="{{E}}" bindgetuserinfo="{{F}}" bindcontact="{{G}}" bindgetphonenumber="{{H}}" bindgetrealtimephonenumber="{{I}}" binderror="{{J}}" bindlaunchapp="{{K}}" bindopensetting="{{L}}" bindchooseavatar="{{M}}" bindagreeprivacyauthorization="{{N}}" hidden="{{virtualHostHidden || false}}"><view class="wd-button__content data-v-161f130c"><view wx:if="{{a}}" class="wd-button__loading data-v-161f130c"><view class="wd-button__loading-svg data-v-161f130c" style="{{b}}"></view></view><wd-icon wx:elif="{{c}}" class="data-v-161f130c" virtualHostClass="data-v-161f130c" u-i="161f130c-0" bind:__l="__l" u-p="{{d}}"></wd-icon><view class="wd-button__text data-v-161f130c"><slot/></view></view></button>

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../../../common/vendor.js"),o=e.defineComponent({name:"wd-icon",options:{virtualHost:!0,addGlobalClass:!0,styleIsolation:"shared"},props:e.iconProps,emits:["click","touch"],setup(o,{emit:t}){const s=o,c=t,n=e.computed((()=>e.isDef(s.name)&&s.name.includes("/"))),a=e.computed((()=>{const e=s.classPrefix;return`${e} ${s.customClass} ${n.value?"wd-icon--image":e+"-"+s.name}`})),i=e.computed((()=>{const o={};return s.color&&(o.color=s.color),s.size&&(o["font-size"]=e.addUnit(s.size)),`${e.objToStyle(o)} ${s.customStyle}`}));function l(e){c("click",e)}return(o,t)=>e.e({a:n.value},n.value?{b:o.name}:{},{c:e.o(l),d:e.n(a.value),e:e.s(i.value),f:e.gei(o,"")})}}),t=e._export_sfc(o,[["__scopeId","data-v-bef80b7c"]]);wx.createComponent(t);

View File

@@ -1,4 +0,0 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -1 +0,0 @@
<view bindtap="{{c}}" class="{{['data-v-bef80b7c', d, virtualHostClass]}}" style="{{e + ';' + virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{f}}"><image wx:if="{{a}}" class="wd-icon__image data-v-bef80b7c" src="{{b}}"></image></view>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +0,0 @@
{
"component": true,
"usingComponents": {
"wd-button": "../wd-button/wd-button"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['wd-signature', 'data-v-5e53ec40', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{y}}"><view class="wd-signature__content data-v-5e53ec40"><block wx:if="{{r0}}"><canvas class="wd-signature__content-canvas data-v-5e53ec40" style="{{a}}" width="{{b}}" height="{{c}}" canvas-id="{{d}}" id="{{e}}" disable-scroll="{{f}}" bindtouchstart="{{g}}" bindtouchend="{{h}}" bindtouchmove="{{i}}" type="2d"/></block></view><view class="wd-signature__footer data-v-5e53ec40"><block wx:if="{{$slots.footer}}"><slot name="footer"></slot></block><block wx:else><block wx:if="{{j}}"><wd-button wx:if="{{m}}" class="data-v-5e53ec40" virtualHostClass="data-v-5e53ec40" u-s="{{['d']}}" bindclick="{{l}}" u-i="5e53ec40-0" bind:__l="__l" u-p="{{m}}">{{k}}</wd-button><wd-button wx:if="{{p}}" class="data-v-5e53ec40" virtualHostClass="data-v-5e53ec40" u-s="{{['d']}}" bindclick="{{o}}" u-i="5e53ec40-1" bind:__l="__l" u-p="{{p}}">{{n}}</wd-button></block><wd-button wx:if="{{s}}" class="data-v-5e53ec40" virtualHostClass="data-v-5e53ec40" u-s="{{['d']}}" bindclick="{{r}}" u-i="5e53ec40-2" bind:__l="__l" u-p="{{s}}">{{q}}</wd-button><wd-button wx:if="{{w}}" class="data-v-5e53ec40" virtualHostClass="data-v-5e53ec40" u-s="{{['d']}}" bindclick="{{v}}" u-i="5e53ec40-3" bind:__l="__l" u-p="{{w}}">{{t}}</wd-button></block></view></view>

View File

@@ -1 +0,0 @@
.wd-signature__content.data-v-5e53ec40{justify-content:center;align-items:center;display:flex;overflow:hidden;background:var(--wot-signature-bg, var(--wot-color-white, white));border-radius:var(--wot-signature-radius, 4px);border:var(--wot-signature-border, 1px solid var(--wot-color-gray-5, #c8c9cc))}.wd-signature__content-canvas.data-v-5e53ec40{width:100%}.wd-signature__footer.data-v-5e53ec40{margin-top:var(--wot-signature-footer-margin-top, 8px);justify-content:flex-end;display:flex}.wd-signature__footer.data-v-5e53ec40 .wd-button{margin-left:var(--wot-signature-button-margin-left, 8px)}

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +0,0 @@
{
"navigationBarTitleText": "证件照管理",
"usingComponents": {
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup",
"u-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker",
"u-modal": "../../uni_modules/uview-plus/components/u-modal/u-modal"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.page.data-v-5f64e04d{min-height:100vh;background:#ebf2fc;padding-bottom:120rpx}.license-list.data-v-5f64e04d{padding-bottom:20rpx}.license-item.data-v-5f64e04d{background:#fff;border-radius:16rpx;padding:24rpx;margin-bottom:20rpx;box-shadow:0 2rpx 12rpx rgba(0,0,0,.05)}.license-header.data-v-5f64e04d{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx;padding-bottom:16rpx;border-bottom:1rpx solid #f0f0f0}.license-type.data-v-5f64e04d{font-size:32rpx;font-weight:700;color:#333}.license-actions.data-v-5f64e04d{display:flex;gap:20rpx}.action-btn.data-v-5f64e04d{font-size:28rpx;padding:8rpx 16rpx}.license-detail.data-v-5f64e04d{margin-bottom:16rpx}.detail-row.data-v-5f64e04d{display:flex;margin-bottom:12rpx;font-size:28rpx}.detail-row .label.data-v-5f64e04d{color:#999;width:160rpx;flex-shrink:0}.detail-row .value.data-v-5f64e04d{color:#333;flex:1}.license-photo.data-v-5f64e04d{width:200rpx;height:150rpx;border-radius:8rpx;overflow:hidden}.license-photo image.data-v-5f64e04d{width:100%;height:100%}.empty-state.data-v-5f64e04d{padding:200rpx 0;text-align:center}.add-btn.data-v-5f64e04d{position:fixed;bottom:40rpx;left:30rpx;right:30rpx;height:88rpx;line-height:88rpx;border-radius:44rpx;font-size:32rpx}.popup-content.data-v-5f64e04d{width:600rpx;background:#fff;border-radius:20rpx;padding:30rpx}.popup-header.data-v-5f64e04d{display:flex;justify-content:space-between;align-items:center;margin-bottom:30rpx}.popup-title.data-v-5f64e04d{font-size:34rpx;color:#333}.popup-close.data-v-5f64e04d{font-size:48rpx;color:#999;line-height:1}.popup-body.data-v-5f64e04d{max-height:700rpx;overflow-y:auto}.form-item.data-v-5f64e04d{margin-bottom:24rpx}.form-label.data-v-5f64e04d{font-size:28rpx;color:#333;margin-bottom:12rpx}.form-input.data-v-5f64e04d{width:100%;height:80rpx;border:2rpx solid #E5E5E5;border-radius:12rpx;padding:0 24rpx;font-size:28rpx;box-sizing:border-box}.form-select.data-v-5f64e04d{display:flex;align-items:center;line-height:80rpx}.upload-box.data-v-5f64e04d{width:200rpx;height:200rpx;border:2rpx dashed #ccc;border-radius:12rpx;display:flex;align-items:center;justify-content:center;position:relative}.upload-add.data-v-5f64e04d{display:flex;flex-direction:column;align-items:center}.upload-icon.data-v-5f64e04d{font-size:60rpx;color:#999}.upload-text.data-v-5f64e04d{font-size:24rpx;color:#999;margin-top:8rpx}.upload-preview.data-v-5f64e04d{width:100%;height:100%;position:relative}.upload-img.data-v-5f64e04d{width:100%;height:100%;border-radius:12rpx}.upload-delete.data-v-5f64e04d{position:absolute;top:-16rpx;right:-16rpx;width:40rpx;height:40rpx;background:#ff4d4f;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28rpx}.popup-footer.data-v-5f64e04d{display:flex;justify-content:center;gap:30rpx;margin-top:40rpx}.btn-cancel.data-v-5f64e04d{flex:1;height:80rpx;line-height:80rpx;border:2rpx solid #E5E5E5;border-radius:40rpx;background:#fff;color:#333;font-size:30rpx}.btn-confirm.data-v-5f64e04d{flex:1;height:80rpx;line-height:80rpx;border-radius:40rpx;color:#fff;font-size:30rpx}.dept-popup.data-v-5f64e04d{width:600rpx;background:#fff;border-radius:20rpx;padding:30rpx}.dept-list.data-v-5f64e04d{max-height:400rpx;overflow-y:auto;margin-bottom:30rpx}.dept-item.data-v-5f64e04d{display:flex;align-items:center;padding:24rpx;border:2rpx solid #E5E5E5;border-radius:12rpx;margin-bottom:16rpx}.dept-checkbox.data-v-5f64e04d{width:36rpx;height:36rpx;border:2rpx solid #ccc;border-radius:6rpx;margin-right:20rpx;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dept-checkbox-active.data-v-5f64e04d{background:#2667e9;border-color:#2667e9;color:#fff}.dept-name.data-v-5f64e04d{font-size:28rpx;color:#333}.btn-dept-confirm.data-v-5f64e04d{width:100%;height:80rpx;line-height:80rpx;border-radius:40rpx;color:#fff;font-size:30rpx}

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),r={};const n=e._export_sfc(r,[["render",function(r,n){return{a:e.gei(r,"")}}]]);wx.createPage(n);

View File

@@ -1,4 +0,0 @@
{
"navigationBarTitleText": "检查清单",
"usingComponents": {}
}

View File

@@ -1 +0,0 @@
<view class="{{['padding', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{a}}"><view class="text-bold text-black">检查清单预览</view><view class="flex margin-bottom"><view class="text-gray">计划名称:</view><view>和谐矿业每日巡检</view></view><view class="flex margin-bottom"><view class="text-gray">检查时间:</view><view>2025-11-19 10:18:40</view></view><view class="flex margin-bottom"><view class="text-gray">检查人员:</view><view>18174379303</view></view><image></image><view class="flex margin-bottom"><view>被检查单位:</view><view></view></view><view class="flex margin-bottom"><view>检查人员:</view><view></view></view><view class="flex margin-bottom"><view>上次检查情况:</view><view></view></view><view class="flex margin-bottom"><view>本次检查情况:</view><view></view></view><view class="flex margin-bottom"><view>检查日期:</view><view>2025-11-19 10:18:40</view></view><view class="flex justify-between"><view class="flex text-center align-center"><button class="bg-blue">缩小</button><view>50%</view><button class="bg-blue">放大</button></view><button class="lg cu-btn">重置</button></view></view>

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),c={__name:"Inspectionlog",setup:c=>(c,s)=>({a:e.o((c=>{e.index.navigateTo({url:"/pages/Inspectionchecklist/Inspectionchecklist"})})),b:e.gei(c,"")})},s=e._export_sfc(c,[["__scopeId","data-v-fa142cd8"]]);wx.createPage(s);

View File

@@ -1,4 +0,0 @@
{
"navigationBarTitleText": "检查记录",
"usingComponents": {}
}

View File

@@ -1 +0,0 @@
<view class="{{['page', 'padding', 'data-v-fa142cd8', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{b}}"><view class="padding bg-white radius list data-v-fa142cd8"><view class="text-bold margin-bottom text-black data-v-fa142cd8">和谐矿业每日巡检</view><view class="flex margin-bottom data-v-fa142cd8"><view class="text-gray data-v-fa142cd8">检查时间:</view><view class="data-v-fa142cd8">2025-11-19 10:18:40</view></view><view class="flex margin-bottom data-v-fa142cd8"><view class="text-gray data-v-fa142cd8">检查人员:</view><view class="data-v-fa142cd8">18174379303</view></view><view class="flex margin-bottom data-v-fa142cd8"><view class="text-gray data-v-fa142cd8">隐患数量:</view><view class="data-v-fa142cd8">1</view></view><view class="flex margin-bottom data-v-fa142cd8"><view class="text-gray data-v-fa142cd8">备注:</view><view class="data-v-fa142cd8">可以</view></view><view class="flex justify-between data-v-fa142cd8"><view class="data-v-fa142cd8"></view><button class="bg-blue round cu-btn lg data-v-fa142cd8" bindtap="{{a}}">预览清单</button></view></view></view>

View File

@@ -1 +0,0 @@
.page.data-v-fa142cd8{min-height:100vh;background:#ebf2fc}.list.data-v-fa142cd8{background:#fff;box-shadow:0 2rpx 6rpx 2rpx rgba(0,0,0,.08);border-left:5px solid #2667E9;border-radius:20rpx;padding:20rpx}

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +0,0 @@
{
"navigationBarTitleText": "检查结果",
"usingComponents": {
"u-radio": "../../uni_modules/uview-plus/components/u-radio/u-radio",
"u-radio-group": "../../uni_modules/uview-plus/components/u-radio-group/u-radio-group",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"hazard-form-popup": "../../components/hazard/HazardFormPopup"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['page', 'padding', 'data-v-8e75359a', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{J}}"><view wx:if="{{a}}" class="progress-bar data-v-8e75359a"><view class="progress-text data-v-8e75359a"><text class="current-index data-v-8e75359a">第 {{b}} 个问题</text><text class="total-count data-v-8e75359a"> / 共 {{c}} 个</text></view><view class="progress-line data-v-8e75359a"><view class="progress-inner data-v-8e75359a" style="{{'width:' + d}}"></view></view></view><view class="padding bg-white radius data-v-8e75359a"><view class="text-bold data-v-8e75359a">{{e}}</view><view class="margin-top data-v-8e75359a"><rich-text class="data-v-8e75359a" nodes="{{f}}"></rich-text></view><view class="margin-top data-v-8e75359a"><u-radio-group wx:if="{{j}}" class="data-v-8e75359a" virtualHostClass="data-v-8e75359a" u-s="{{['d']}}" bindchange="{{h}}" u-i="8e75359a-0" bind:__l="__l" bindupdateModelValue="{{i}}" u-p="{{j}}"><u-radio wx:for="{{g}}" wx:for-item="item" wx:key="a" class="data-v-8e75359a" virtualHostClass="data-v-8e75359a" bindchange="{{item.b}}" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></u-radio></u-radio-group></view><view wx:if="{{k}}" class="hazard-section margin-top data-v-8e75359a"><view class="hazard-tip data-v-8e75359a"><text class="cuIcon-warn text-yellow margin-right-xs data-v-8e75359a"></text><text class="text-orange data-v-8e75359a">检查结果为异常,需填写隐患信息</text></view><view wx:if="{{l}}" class="hazard-btn data-v-8e75359a" bindtap="{{m}}"><text class="text-blue data-v-8e75359a">填写隐患信息</text></view><view wx:else class="hazard-card data-v-8e75359a"><view class="card-header data-v-8e75359a"><view class="text-bold text-black data-v-8e75359a">{{n}}</view><view class="{{['level-tag', 'data-v-8e75359a', p && 'level-minor', q && 'level-normal', r && 'level-major']}}">{{o}}</view></view><view class="card-body data-v-8e75359a"><view class="info-row data-v-8e75359a"><text class="text-gray data-v-8e75359a">检查形式:</text><text class="data-v-8e75359a">{{s}}</text></view><view class="info-row data-v-8e75359a"><text class="text-gray data-v-8e75359a">隐患位置:</text><text class="data-v-8e75359a">{{t}}</text></view><view class="info-row data-v-8e75359a"><text class="text-gray data-v-8e75359a">隐患描述:</text><text class="description-text data-v-8e75359a">{{v}}</text></view><view wx:if="{{w}}" class="info-row data-v-8e75359a"><text class="text-gray data-v-8e75359a">附件:</text><text class="data-v-8e75359a">{{x}}个文件</text></view></view><view class="card-footer data-v-8e75359a"><button class="btn-edit data-v-8e75359a" bindtap="{{y}}">修改</button><button class="btn-clear data-v-8e75359a" bindtap="{{z}}">清除</button></view></view></view><view class="margin-top data-v-8e75359a"><up-textarea wx:if="{{B}}" class="data-v-8e75359a" virtualHostClass="data-v-8e75359a" u-i="8e75359a-2" bind:__l="__l" bindupdateModelValue="{{A}}" u-p="{{B}}"></up-textarea></view></view><button class="bg-blue round margin-top-xl data-v-8e75359a" bindtap="{{C}}">提交</button><hazard-form-popup wx:if="{{I}}" class="r data-v-8e75359a" virtualHostClass="r data-v-8e75359a" u-r="hazardFormRef" bindconfirm="{{E}}" bindclearDraft="{{F}}" u-i="8e75359a-3" bind:__l="__l" bindupdateShow="{{G}}" bindupdateModelValue="{{H}}" u-p="{{I}}"/></view>

View File

@@ -1 +0,0 @@
.page.data-v-8e75359a{min-height:100vh;background:#ebf2fc}.progress-bar.data-v-8e75359a{background:#fff;border-radius:12rpx;padding:24rpx;margin-bottom:20rpx;box-shadow:0 2rpx 12rpx rgba(0,0,0,.05)}.progress-text.data-v-8e75359a{display:flex;align-items:baseline;margin-bottom:16rpx}.progress-text .current-index.data-v-8e75359a{font-size:32rpx;font-weight:700;color:#2667e9}.progress-text .total-count.data-v-8e75359a{font-size:28rpx;color:#999}.progress-line.data-v-8e75359a{height:12rpx;background:#e5e5e5;border-radius:6rpx;overflow:hidden}.progress-inner.data-v-8e75359a{height:100%;background:linear-gradient(90deg,#2667e9,#5b9bff);border-radius:6rpx;transition:width .3s ease}.hazard-section.data-v-8e75359a{border-top:1rpx solid #eee;padding-top:20rpx}.hazard-tip.data-v-8e75359a{display:flex;align-items:center;padding:16rpx 20rpx;background:#fff7e6;border:1rpx solid #FFE7BA;border-radius:8rpx;margin-bottom:20rpx}.hazard-tip .text-orange.data-v-8e75359a{color:#fa8c16;font-size:26rpx}.hazard-btn.data-v-8e75359a{display:flex;align-items:center;justify-content:center;height:88rpx;border:2rpx dashed #2667E9;border-radius:12rpx;background:#f5f9ff}.hazard-btn .text-blue.data-v-8e75359a{color:#2667e9;font-size:28rpx}.hazard-card.data-v-8e75359a{background:#f5f9ff;border:1rpx solid #D6E4FF;border-radius:12rpx;overflow:hidden}.hazard-card .card-header.data-v-8e75359a{display:flex;justify-content:space-between;align-items:center;padding:20rpx;border-bottom:1rpx solid #E8E8E8;background:#fff}.hazard-card .card-body.data-v-8e75359a{padding:20rpx}.hazard-card .card-body .info-row.data-v-8e75359a{display:flex;margin-bottom:12rpx;font-size:26rpx}.hazard-card .card-body .info-row.data-v-8e75359a:last-child{margin-bottom:0}.hazard-card .card-body .info-row .text-gray.data-v-8e75359a{flex-shrink:0;color:#999}.hazard-card .card-body .info-row .description-text.data-v-8e75359a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.hazard-card .card-footer.data-v-8e75359a{display:flex;border-top:1rpx solid #E8E8E8;background:#fff}.hazard-card .card-footer button.data-v-8e75359a{flex:1;height:80rpx;line-height:80rpx;font-size:28rpx;border-radius:0}.hazard-card .card-footer button.data-v-8e75359a:after{border:none}.hazard-card .card-footer .btn-edit.data-v-8e75359a{background:#fff;color:#2667e9;border-right:1rpx solid #E8E8E8}.hazard-card .card-footer .btn-clear.data-v-8e75359a{background:#fff;color:#f56c6c}.level-tag.data-v-8e75359a{padding:4rpx 16rpx;border-radius:8rpx;font-size:24rpx}.level-minor.data-v-8e75359a{background:#f6ffed;border:2rpx solid #B7EB8F;color:#52c41a}.level-normal.data-v-8e75359a{background:#fff7e6;border:2rpx solid #FFD591;color:#fa8c16}.level-major.data-v-8e75359a{background:#fff1f0;border:2rpx solid #FFA39E;color:#f5222d}

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +0,0 @@
{
"navigationBarTitleText": "排查详情",
"usingComponents": {
"up-icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"u-radio": "../../uni_modules/uview-plus/components/u-radio/u-radio",
"u-radio-group": "../../uni_modules/uview-plus/components/u-radio-group/u-radio-group",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup",
"hazard-form-popup": "../../components/hazard/HazardFormPopup"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../request/api.js");if(!Array){e.resolveComponent("u-navbar")()}Math;const t={__name:"list",setup(t){const n=e.ref(!0),o=e.ref([]),l=e.ref(""),s=e.ref(""),r={pageNum:1,pageSize:100,name:""},i=e=>e?String(e).split(" ")[0]:"",u=e=>{const a=Number(e);return Number.isNaN(a)?0:Math.min(100,Math.max(0,a))};e.onLoad((e=>{e.tableId&&(l.value=e.tableId),e.name&&(s.value=decodeURIComponent(e.name))})),e.onShow((()=>{(async()=>{var t;if(!l.value)return n.value=!1,void(o.value=[]);n.value=!0;try{const s=await a.getPlanTableDetail({...r,tableId:l.value});0===s.code?o.value=(null==(t=s.data)?void 0:t.records)||[]:e.index.showToast({title:s.msg||"获取检查清单失败",icon:"none"})}catch(s){console.error("获取检查清单失败:",s),e.index.showToast({title:"获取检查清单失败",icon:"none"})}finally{n.value=!1}})()}));const d=()=>{e.index.switchTab({url:"/pages/index/index"})};return e.onBackPress((()=>(d(),!0))),(a,t)=>e.e({a:e.o(d),b:e.p({title:"检查列表",placeholder:!0,safeAreaInsetTop:!0,bgColor:"#3375e6",titleColor:"#ffffff",leftIconColor:"#ffffff",autoBack:!1}),c:n.value},n.value?{}:l.value?0===o.value.length?{}:{f:e.f(o.value,((a,t,n)=>e.e({a:e.t(a.name||s.value||"检查任务"),b:e.t(a.runModeName),c:e.t(a.cycle),d:a.taskDate},a.taskDate?{e:e.t(i(a.taskDate))}:{},{f:e.t(i(a.planStartTime)),g:e.t(i(a.planEndTime)),h:u(a.progress)+"%",i:e.t(u(a.progress)),j:e.t(a.totalCount??0),k:e.t(a.pendingCount??0),l:e.t(a.unusualNum??0),m:e.t(a.finishedCount??0),n:e.o((t=>(a=>{const t=a.id,n=i(a.taskDate);if(!t||!n)return void e.index.showToast({title:"缺少任务参数",icon:"none"});const o=a.name||s.value||"",r=l.value?`&tableId=${l.value}`:"";e.index.navigateTo({url:`/pages/Inspectionresult/detail?oneTableId=${t}&taskDate=${encodeURIComponent(n)}&name=${encodeURIComponent(o)}${r}`})})(a)),a.id||a.taskDate),o:a.id||a.taskDate})))}:{},{d:!l.value,e:0===o.value.length,g:e.gei(a,"")})}},n=e._export_sfc(t,[["__scopeId","data-v-ea20e208"]]);wx.createPage(n);

View File

@@ -1,7 +0,0 @@
{
"navigationStyle": "custom",
"navigationBarTitleText": "检查列表",
"usingComponents": {
"u-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['page', 'data-v-ea20e208', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{g}}"><u-navbar wx:if="{{b}}" class="data-v-ea20e208" virtualHostClass="data-v-ea20e208" bindleftClick="{{a}}" u-i="ea20e208-0" bind:__l="__l" u-p="{{b}}"/><view class="page-content padding data-v-ea20e208"><view wx:if="{{c}}" class="empty-tip text-gray text-center padding data-v-ea20e208">加载中...</view><view wx:elif="{{d}}" class="empty-tip text-gray text-center padding data-v-ea20e208"> 请从首页检查计划进入 </view><view wx:elif="{{e}}" class="empty-tip text-gray text-center padding data-v-ea20e208"> 暂无检查任务 </view><block wx:else><view wx:for="{{f}}" wx:for-item="item" wx:key="o" class="plan-card margin-bottom data-v-ea20e208"><view class="plan-header data-v-ea20e208"><text class="plan-header-title data-v-ea20e208">{{item.a}}</text></view><view class="plan-body data-v-ea20e208"><view class="flex data-v-ea20e208"><view class="border-border margin-right-xs data-v-ea20e208">{{item.b}}完成</view><view class="border-border data-v-ea20e208">{{item.c}}</view></view><view wx:if="{{item.d}}" class="flex text-gray margin-top data-v-ea20e208"><view class="data-v-ea20e208">任务日期:</view><view class="data-v-ea20e208" style="color:#333333">{{item.e}}</view></view><view class="flex text-gray margin-top data-v-ea20e208"><view class="data-v-ea20e208">计划时间:</view><view class="data-v-ea20e208" style="color:#333333">{{item.f}}至{{item.g}}</view></view><view class="flex margin-top align-center data-v-ea20e208"><view class="data-v-ea20e208" style="color:#B5B5B5">完成进度:</view><view class="flex align-center margin-left-sm data-v-ea20e208"><view class="cu-progress round data-v-ea20e208"><view class="bg-green data-v-ea20e208" style="{{'width:' + item.h}}"></view></view><text class="margin-left-sm data-v-ea20e208">{{item.i}}%</text></view></view><view class="plan-stats margin-top data-v-ea20e208"><view class="plan-stat-item data-v-ea20e208"><view class="plan-stat-num text-orange data-v-ea20e208">{{item.j}}</view><view class="plan-stat-label data-v-ea20e208">总检项</view></view><view class="plan-stat-item data-v-ea20e208"><view class="plan-stat-num text-yellow data-v-ea20e208">{{item.k}}</view><view class="plan-stat-label data-v-ea20e208">待排查</view></view><view class="plan-stat-item data-v-ea20e208"><view class="plan-stat-num text-red data-v-ea20e208">{{item.l}}</view><view class="plan-stat-label data-v-ea20e208">异常数</view></view><view class="plan-stat-item data-v-ea20e208"><view class="plan-stat-num text-blue data-v-ea20e208">{{item.m}}</view><view class="plan-stat-label data-v-ea20e208">已完成</view></view></view><view class="margin-top margin-bottom flex justify-end data-v-ea20e208"><button class="cu-btn round lg bg-blue data-v-ea20e208" catchtap="{{item.n}}"> 检查处置 </button></view></view></view></block></view></view>

View File

@@ -1 +0,0 @@
.page.data-v-ea20e208{min-height:100vh;background:#ebf2fc}.empty-tip.data-v-ea20e208{font-size:28rpx}.plan-card.data-v-ea20e208{border-radius:16rpx;overflow:hidden;box-shadow:0 2rpx 6rpx 2rpx rgba(0,0,0,.06)}.plan-header.data-v-ea20e208{background:linear-gradient(135deg,#4a90e2,#2667e9);padding:24rpx 30rpx;display:flex;align-items:center}.plan-header .plan-header-title.data-v-ea20e208{color:#fff;font-size:30rpx;font-weight:700}.plan-body.data-v-ea20e208{padding:24rpx 30rpx 10rpx;background:#fff}.plan-stats.data-v-ea20e208{display:flex;background:#f5f7fa;border-radius:12rpx;border:1rpx solid #E8ECF0;overflow:hidden}.plan-stats .plan-stat-item.data-v-ea20e208{flex:1;text-align:center;padding:20rpx 0;border-right:1rpx solid #E8ECF0}.plan-stats .plan-stat-item.data-v-ea20e208:last-child{border-right:none}.plan-stats .plan-stat-num.data-v-ea20e208{font-size:36rpx;font-weight:700}.plan-stats .plan-stat-label.data-v-ea20e208{font-size:24rpx;color:#666;margin-top:8rpx}.cu-progress.data-v-ea20e208{width:300rpx;height:20rpx;background:#ebeef5;border-radius:100rpx;overflow:hidden}.cu-progress view.data-v-ea20e208{height:100%;border-radius:100rpx;transition:width .3s ease}.bg-green.data-v-ea20e208{background:#2667e9}.border-border.data-v-ea20e208{padding:10rpx;background:#eef3ff;border-radius:4rpx;border:2rpx solid #AAC5FC;text-align:center;display:flex;justify-content:center;align-items:center;font-size:28rpx;color:#2667e9}

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../request/api.js");if(!Array){(e.resolveComponent("up-datetime-picker")+e.resolveComponent("up-input")+e.resolveComponent("u-loadmore"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js")+(()=>"../../uni_modules/uview-plus/components/u-input/u-input.js")+(()=>"../../uni_modules/uview-plus/components/u-loadmore/u-loadmore.js"))();const o={__name:"Inspectionwarning",setup(o){const l=e.reactive({startDate:"",endDate:"",deptName:""}),u=e.ref(!1),s=e.ref(!1),n=e.ref(Number(new Date)),r=e.ref(Number(new Date)),d=e.reactive({total:0,overdue:0,pending:0,completed:0,overdueCompleted:0,onTimeCompleted:0});e.reactive({total:0,overdue:0,completed:0,pending:0});const i=e.ref([]),v=e.ref(1),c=e.ref(20),m=e.ref("loadmore"),p=e.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}]),g=e.ref(0),f=e=>{const t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},D=e=>{const t=f(e.value);l.startDate=t,u.value=!1},h=e=>{const t=f(e.value);l.endDate=t,s.value=!1},N=e=>{if(!e||"按期"===e)return"status-normal";const t=parseInt(e);return t>=7?"status-serious":t>=1?"status-overdue":"status-normal"},b=(e,t)=>{if(!e||"按期"===e)return"已完成"===t?"按期已完成":"期限内待检";const a=parseInt(e);return a>=7?"严重逾期":a>=1?"已完成"===t?"逾期已完成":"逾期未检":"期限内待检"},w=async()=>{try{const e={pageNum:v.value,pageSize:c.value};l.startDate&&(e.startDate=l.startDate),l.endDate&&(e.endDate=l.endDate),l.deptName&&l.deptName.trim()&&(e.deptName=l.deptName.trim());const t=p.value[g.value].value;0!==t&&(e.inspectionStatus=t);const o=await a.getInspectionWarningList(e);if(0===o.code)if(o.data.statistics&&(d.total=o.data.statistics.total||0,d.overdue=o.data.statistics.overdue||0,d.pending=o.data.statistics.pending||0,d.completed=o.data.statistics.completed||0,d.overdueCompleted=o.data.statistics.overdueCompleted||0,d.onTimeCompleted=o.data.statistics.onTimeCompleted||0,p.value[0].count=o.data.statistics.total||0,p.value[1].count=o.data.statistics.overdue||0,p.value[2].count=o.data.statistics.pending||0,p.value[3].count=o.data.statistics.completed||0,p.value[4].count=o.data.statistics.overdueCompleted||0,p.value[5].count=o.data.statistics.onTimeCompleted||0),o.data.page&&o.data.page.records){const e=o.data.page.records;1===v.value?i.value=e:i.value=[...i.value,...e];const t=o.data.page.total||0;i.value.length>=t?m.value="nomore":m.value="loadmore"}else m.value="nomore"}catch(e){console.error("获取预警列表失败:",e)}},C=()=>{v.value=1,i.value=[],w()};return e.onReachBottom((()=>{"loadmore"===m.value&&(v.value++,w())})),e.onShow((()=>{w()})),(a,o)=>e.e({a:t._imports_0$2,b:e.t(l.startDate||"请选择"),c:e.n(l.startDate?"date-value":"date-placeholder"),d:e.o((e=>u.value=!0)),e:e.o(D),f:e.o((e=>u.value=!1)),g:e.o((e=>u.value=!1)),h:e.o((e=>n.value=e)),i:e.p({show:u.value,mode:"date",modelValue:n.value}),j:e.t(l.endDate||"请选择"),k:e.n(l.endDate?"date-value":"date-placeholder"),l:e.o((e=>s.value=!0)),m:e.o(h),n:e.o((e=>s.value=!1)),o:e.o((e=>s.value=!1)),p:e.o((e=>r.value=e)),q:e.p({show:s.value,mode:"date",modelValue:r.value}),r:e.o((e=>l.deptName=e)),s:e.p({placeholder:"请输入公司名称",border:"surround",modelValue:l.deptName}),t:e.o(C),v:t._imports_1$1,w:e.t(d.total),x:e.t(d.overdue),y:e.t(d.onTimeCompleted),z:e.t(d.completed),A:e.f(p.value,((t,a,o)=>e.e({a:e.t(t.label),b:e.t(null!=t.count?t.count:""),c:g.value===a},(g.value,{}),{d:a,e:g.value===a?1:"",f:e.o((e=>(e=>{g.value=e,v.value=1,i.value=[],w()})(a)),a)}))),B:e.f(i.value,((t,a,o)=>({a:e.t(t.deptName||"-"),b:e.t(b(t.overdueDays,t.statusName)),c:e.n(N(t.overdueDays)),d:e.t(t.planName||"-"),e:e.t(t.cycleName||"-"),f:e.t(t.taskDate||"-"),g:e.t(t.finishTime||"未完成"),h:e.t(t.executorName||"-"),i:e.t(t.overdueDays||"-"),j:t.id}))),C:i.value.length>0},i.value.length>0?{D:e.p({status:m.value})}:{},{E:0===i.value.length},(i.value.length,{}),{F:e.gei(a,"")})}},l=e._export_sfc(o,[["__scopeId","data-v-b713017f"]]);wx.createPage(l);

View File

@@ -1,8 +0,0 @@
{
"navigationBarTitleText": "日常安全检查预警",
"usingComponents": {
"up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker",
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"u-loadmore": "../../uni_modules/uview-plus/components/u-loadmore/u-loadmore"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.page.data-v-b713017f{min-height:100vh;background:#ebf2fc;padding-bottom:40rpx}.section-header.data-v-b713017f{display:flex;align-items:center}.section-header .section-icon.data-v-b713017f{width:40rpx;height:40rpx;margin-right:12rpx}.search-card .date-row.data-v-b713017f{display:flex;gap:20rpx}.search-card .date-row .date-item.data-v-b713017f{flex:1}.search-card .date-label.data-v-b713017f{font-size:28rpx;color:#333;margin-bottom:12rpx}.search-card .date-picker.data-v-b713017f{display:flex;align-items:center;justify-content:space-between;height:72rpx;padding:0 20rpx;background:#f8f8f8;border-radius:8rpx;border:1rpx solid #eee}.search-card .date-picker .date-value.data-v-b713017f{color:#333;font-size:28rpx}.search-card .date-picker .date-placeholder.data-v-b713017f{color:#999;font-size:28rpx}.search-card .search-btn.data-v-b713017f{margin-top:30rpx;background:linear-gradient(135deg,#667eea,#2667e9);color:#fff;border-radius:40rpx;height:80rpx;line-height:80rpx;font-size:30rpx}.stat-grid.data-v-b713017f{display:flex;justify-content:space-between;gap:16rpx}.stat-grid .stat-item.data-v-b713017f{flex:1;height:124rpx;border-radius:12rpx;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-grid .stat-item .stat-num.data-v-b713017f{font-size:40rpx;font-weight:700}.stat-grid .stat-item .stat-label.data-v-b713017f{font-size:24rpx;margin-top:8rpx}.stat-grid .stat-total.data-v-b713017f{background:linear-gradient(135deg,#628efb,#4a7cf7)}.stat-grid .stat-overdue.data-v-b713017f{background:linear-gradient(135deg,#32dcc7,#20c5b0)}.stat-grid .stat-completed.data-v-b713017f{background:linear-gradient(135deg,#32d1e9,#20b8d0)}.stat-grid .stat-pending.data-v-b713017f{background:linear-gradient(135deg,#a190f5,#8b78e8)}.list-title-bar.data-v-b713017f{width:8rpx;height:32rpx;background:#2667e9;border-radius:4rpx;margin-right:12rpx}.list-card.data-v-b713017f{background:#fff;box-shadow:0 2rpx 10rpx rgba(0,0,0,.08);border-radius:16rpx;padding:0;margin-bottom:20rpx;overflow:hidden}.list-card .card-title-row.data-v-b713017f{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#4a7cf7,#2667e9);padding:24rpx 30rpx}.list-card .card-company-name.data-v-b713017f{font-size:32rpx;font-weight:700;color:#fff;flex:1;margin-right:16rpx}.list-card .card-status-tag.data-v-b713017f{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-b713017f{padding:30rpx}.list-card .card-row.data-v-b713017f{display:flex;margin-top:16rpx;font-size:28rpx;line-height:1.5}.list-card .card-row.data-v-b713017f:first-of-type{margin-top:0}.list-card .card-row .row-label.data-v-b713017f{color:#999;white-space:nowrap;flex-shrink:0}.list-card .card-row .row-value.data-v-b713017f{color:#333;word-break:break-all}.status-serious.data-v-b713017f{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.status-overdue.data-v-b713017f{background:linear-gradient(135deg,#ffa726,#ff9800)}.status-normal.data-v-b713017f{background:linear-gradient(135deg,#66bb6a,#4caf50)}.status-completed.data-v-b713017f{background:linear-gradient(135deg,#42a5f5,#2196f3)}.empty-tip.data-v-b713017f{text-align:center;padding:100rpx 0;color:#999;font-size:28rpx}.status-tabs.data-v-b713017f{white-space:nowrap;background:#fff;border-radius:16rpx;margin-bottom:20rpx;padding:0 10rpx}.status-tabs-inner.data-v-b713017f{display:inline-flex;align-items:center;height:88rpx;white-space:nowrap}.status-tab-item.data-v-b713017f{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24rpx;height:88rpx;position:relative}.status-tab-text.data-v-b713017f{font-size:26rpx;color:#666}.status-tab-active .status-tab-text.data-v-b713017f{color:#2667e9;font-weight:700}.status-tab-bar.data-v-b713017f{position:absolute;bottom:8rpx;width:40rpx;height:6rpx;background:#2667e9;border-radius:3rpx}

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../request/three_one_api/area.js");Math||o();const o=()=>"../../components/AreaFormPopup.js",t={__name:"management",setup(o){const t=e.ref([]),l=e.ref(!1),n=e.ref(!1),c=e.ref(null),r=e.ref(!1),s=e.ref({});e.onMounted((()=>{i()}));const i=async()=>{try{const e=await a.getAreaList();0===e.code&&(t.value=e.data.records||[])}catch(e){console.error("获取区域列表失败:",e)}},u=()=>{n.value=!1,c.value=null,s.value={},l.value=!0},d=()=>{n.value=!1,c.value=null,s.value={}},v=async o=>{r.value=!0;try{const t={name:o.name,color:o.color};let s;n.value?(t.id=c.value,s=await a.updateArea(t)):s=await a.addArea(t),0===s.code&&(l.value=!1,e.index.showToast({title:n.value?"修改成功":"新增成功",icon:"success"}),i())}catch(t){console.error("提交失败:",t),e.index.showToast({title:"操作失败",icon:"none"})}finally{r.value=!1}};return(o,h)=>e.e({a:t.value.length>0},t.value.length>0?{b:e.f(t.value,((o,t,r)=>({a:e.t(o.name||"区域名称"),b:o.color,c:e.t(o.color),d:e.o((t=>(async o=>{try{const e=await a.getAreaDetail({id:o.id});0===e.code&&(n.value=!0,c.value=o.id,s.value={name:e.data.name||"",color:e.data.color||"#D92121"},l.value=!0)}catch(t){console.error("获取区域详情失败:",t),e.index.showToast({title:"获取详情失败",icon:"none"})}})(o)),o.id),e:e.o((t=>(o=>{e.index.showModal({title:"确认删除",content:"确定要删除该区域吗?",confirmColor:"#e54d42",success:async t=>{if(t.confirm)try{0===(await a.deleteArea({id:o.id})).code&&(e.index.showToast({title:"删除成功",icon:"success"}),i())}catch(l){console.error("删除失败:",l),e.index.showToast({title:"删除失败",icon:"none"})}}})})(o)),o.id),f:o.id})))}:{},{c:e.o(u),d:e.o(v),e:e.o(d),f:e.o((e=>l.value=e)),g:e.p({isEdit:n.value,editData:s.value,loading:r.value,visible:l.value}),h:e.gei(o,"")})}},l=e._export_sfc(t,[["__scopeId","data-v-6ce07390"]]);wx.createPage(l);

View File

@@ -1,6 +0,0 @@
{
"navigationBarTitleText": "区域管理",
"usingComponents": {
"area-form-popup": "../../components/AreaFormPopup"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['padding', 'page', 'data-v-6ce07390', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{h}}"><view wx:if="{{a}}" class="area-list data-v-6ce07390"><view wx:for="{{b}}" wx:for-item="item" wx:key="f" class="padding bg-white radius margin-bottom data-v-6ce07390"><view class="flex justify-between data-v-6ce07390"><view class="data-v-6ce07390"><view class="text-bold text-black data-v-6ce07390">{{item.a}}</view><view class="margin-top flex align-center data-v-6ce07390"><text class="data-v-6ce07390">颜色:</text><view class="color-dot data-v-6ce07390" style="{{'background-color:' + item.b}}"></view><text class="margin-left-xs data-v-6ce07390">{{item.c}}</text></view></view><view class="data-v-6ce07390"><button class="bg-blue cu-btn data-v-6ce07390" bindtap="{{item.d}}">编辑</button><button class="bg-red cu-btn margin-left data-v-6ce07390" bindtap="{{item.e}}">删除</button></view></view></view></view><view wx:else class="empty-state data-v-6ce07390"><text class="text-gray data-v-6ce07390">暂无区域数据</text></view><button class="add-btn bg-blue round data-v-6ce07390" bindtap="{{c}}">新增公司区域</button><area-form-popup wx:if="{{g}}" class="data-v-6ce07390" virtualHostClass="data-v-6ce07390" bindsubmit="{{d}}" bindclose="{{e}}" u-i="6ce07390-0" bind:__l="__l" bindupdateVisible="{{f}}" u-p="{{g}}"/></view>

View File

@@ -1 +0,0 @@
.page.data-v-6ce07390{min-height:100vh;background:#ebf2fc;padding-bottom:120rpx}.area-list.data-v-6ce07390{padding-bottom:20rpx}.empty-state.data-v-6ce07390{padding:200rpx 0;text-align:center}.add-btn.data-v-6ce07390{position:fixed;bottom:40rpx;left:30rpx;right:30rpx;height:88rpx;line-height:88rpx;border-radius:44rpx;font-size:32rpx}.color-dot.data-v-6ce07390{width:30rpx;height:30rpx;border-radius:6rpx;flex-shrink:0;margin-left:10rpx}

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../request/api.js"),t={__name:"checklist",setup(t){const c=e.ref([]),r=()=>{e.index.navigateTo({url:"/pages/editchecklist/editchecklist"})};return e.onShow((()=>{(async()=>{try{const e=await a.getCheckTableList({pageNum:1,pageSize:100});0===e.code&&(c.value=e.data.records||[])}catch(e){console.error("获取检查表列表失败:",e)}})()})),(a,t)=>e.e({a:e.f(c.value,((a,t,c)=>({a:e.t(a.name),b:a.id}))),b:0===c.value.length},(c.value.length,{}),{c:e.o(r),d:e.gei(a,"")})}},c=e._export_sfc(t,[["__scopeId","data-v-e435212a"]]);wx.createPage(c);

View File

@@ -1,4 +0,0 @@
{
"navigationBarTitleText": "检查表",
"usingComponents": {}
}

View File

@@ -1 +0,0 @@
<view class="{{['page', 'padding', 'data-v-e435212a', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{d}}"><view wx:for="{{a}}" wx:for-item="item" wx:key="b" class="checklist-card data-v-e435212a"><view class="card-name data-v-e435212a">{{item.a}}</view></view><view wx:if="{{b}}" class="empty-tip data-v-e435212a"><text class="data-v-e435212a">暂无检查表</text></view><button class="add-btn data-v-e435212a" bindtap="{{c}}"><text class="data-v-e435212a">新增检查表</text></button></view>

View File

@@ -1 +0,0 @@
.page.data-v-e435212a{min-height:100vh;background:#ebf2fc;padding-bottom:120rpx}.checklist-card.data-v-e435212a{background:#fff;border-radius:16rpx;padding:30rpx;margin-bottom:20rpx;box-shadow:0 2rpx 10rpx rgba(0,0,0,.05)}.checklist-card .card-name.data-v-e435212a{font-size:32rpx;color:#333;font-weight:500}.empty-tip.data-v-e435212a{text-align:center;padding:100rpx 0;color:#999;font-size:28rpx}.add-btn.data-v-e435212a{position:fixed;bottom:40rpx;left:30rpx;right:30rpx;height:90rpx;background:linear-gradient(135deg,#667eea,#2668ea);border-radius:45rpx;color:#fff;font-size:32rpx;display:flex;align-items:center;justify-content:center;box-shadow:0 8rpx 20rpx rgba(102,126,234,.4)}.add-btn .cuIcon-add.data-v-e435212a{margin-right:10rpx;font-size:36rpx}

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +0,0 @@
{
"navigationBarTitleText": "销号申请",
"usingComponents": {
"up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['padding', 'page', 'data-v-310af818', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{K}}"><view wx:for="{{a}}" wx:for-item="item" wx:key="i" class="padding bg-white radius margin-bottom card-item data-v-310af818"><view class="flex justify-between margin-bottom data-v-310af818"><view class="text-bold text-black data-v-310af818" style="flex:1;margin-right:16rpx">{{item.a}}</view><view class="{{['status-tag', 'data-v-310af818', item.c]}}">{{item.b}}</view></view><view class="flex margin-bottom data-v-310af818"><view class="text-gray data-v-310af818">隐患日期:</view><view class="text-black data-v-310af818">{{item.d}}</view></view><view class="flex margin-bottom data-v-310af818"><view class="text-gray data-v-310af818">责任单位:</view><view class="text-black data-v-310af818">{{item.e}}</view></view><view class="flex margin-bottom data-v-310af818"><view class="text-gray data-v-310af818">判定人员:</view><view class="text-black data-v-310af818">{{item.f}}</view></view><view class="flex margin-bottom data-v-310af818"><view class="text-gray data-v-310af818">创建时间:</view><view class="text-black data-v-310af818">{{item.g}}</view></view><view class="flex justify-between data-v-310af818"><view class="data-v-310af818"></view><view class="data-v-310af818"><button class="bg-blue round cu-btn lg data-v-310af818" bindtap="{{item.h}}">查看详情</button></view></view></view><button class="cuIcon-add bg-blue round margin-top data-v-310af818" bindtap="{{b}}">新增</button><u-popup wx:if="{{F}}" class="data-v-310af818" virtualHostClass="data-v-310af818" u-s="{{['d']}}" bindclose="{{E}}" u-i="310af818-0" bind:__l="__l" u-p="{{F}}"><view class="popup-content data-v-310af818"><view class="popup-header data-v-310af818"><view class="popup-title text-bold data-v-310af818">新增销号申请</view><view class="popup-close data-v-310af818" bindtap="{{c}}">×</view></view><scroll-view class="popup-body data-v-310af818" scroll-y style="{{'height:' + '60vh'}}"><view class="flex margin-bottom data-v-310af818"><view class="data-v-310af818">隐患</view><view class="text-red data-v-310af818">*</view></view><view class="picker-input data-v-310af818" bindtap="{{f}}"><text class="{{['data-v-310af818', e]}}">{{d}}</text></view><up-picker wx:if="{{false}}" class="data-v-310af818" virtualHostClass="data-v-310af818" bindconfirm="{{g}}" bindcancel="{{h}}" bindclose="{{i}}" u-i="310af818-1,310af818-0" bind:__l="__l" u-p="{{j}}"></up-picker><view class="flex margin-bottom margin-top data-v-310af818"><view class="data-v-310af818">整改时限</view></view><view class="picker-input readonly data-v-310af818"><text class="{{['data-v-310af818', l]}}">{{k}}</text></view><view class="margin-bottom margin-top data-v-310af818">隐患治理责任单位</view><view class="picker-input readonly data-v-310af818"><text class="{{['data-v-310af818', n]}}">{{m}}</text></view><view class="margin-bottom margin-top data-v-310af818">主要负责人</view><view class="picker-input readonly data-v-310af818"><text class="{{['data-v-310af818', p]}}">{{o}}</text></view><view class="ai-btn-wrapper margin-top margin-bottom data-v-310af818"><button class="ai-analyze-btn data-v-310af818" loading="{{s}}" disabled="{{t}}" bindtap="{{v}}"><text wx:if="{{q}}" class="cuIcon-magic ai-btn-icon data-v-310af818"></text> {{r}}</button></view><view class="margin-bottom margin-top data-v-310af818">主要治理内容</view><up-textarea wx:if="{{x}}" class="data-v-310af818" virtualHostClass="data-v-310af818" u-i="310af818-2,310af818-0" bind:__l="__l" bindupdateModelValue="{{w}}" u-p="{{x}}"></up-textarea><view class="margin-bottom margin-top data-v-310af818">隐患治理完成内容</view><up-textarea wx:if="{{z}}" class="data-v-310af818" virtualHostClass="data-v-310af818" u-i="310af818-3,310af818-0" bind:__l="__l" bindupdateModelValue="{{y}}" u-p="{{z}}"></up-textarea><view class="margin-bottom margin-top data-v-310af818">隐患治理责任单位自行验收的情况</view><up-textarea wx:if="{{B}}" class="data-v-310af818" virtualHostClass="data-v-310af818" u-i="310af818-4,310af818-0" bind:__l="__l" bindupdateModelValue="{{A}}" u-p="{{B}}"></up-textarea></scroll-view><view class="popup-footer data-v-310af818"><button class="btn-cancel data-v-310af818" bindtap="{{C}}">取消</button><button class="btn-confirm bg-blue data-v-310af818" bindtap="{{D}}">确定</button></view></view></u-popup><up-picker wx:if="{{J}}" class="data-v-310af818" virtualHostClass="data-v-310af818" bindconfirm="{{G}}" bindcancel="{{H}}" bindclose="{{I}}" u-i="310af818-5" bind:__l="__l" u-p="{{J}}"></up-picker></view>

View File

@@ -1 +0,0 @@
.page.data-v-310af818{min-height:100vh;background:#ebf2fc}.status-tag.data-v-310af818{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-310af818{background:#fff7e6;color:#fa8c16}.status-passed.data-v-310af818{background:#f6ffed;color:#52c41a}.status-rejected.data-v-310af818{background:#fff1f0;color:#f5222d}.status-reapply.data-v-310af818{background:#e6f7ff;color:#1890ff}.status-default.data-v-310af818{background:#f5f5f5;color:#8c8c8c}.popup-content.data-v-310af818{width:600rpx;background:#fff;border-radius:20rpx;overflow:hidden}.popup-header.data-v-310af818{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.popup-header .popup-title.data-v-310af818{font-size:32rpx;color:#333}.popup-header .popup-close.data-v-310af818{font-size:40rpx;color:#999;line-height:1}.popup-body.data-v-310af818{padding:30rpx}.popup-footer.data-v-310af818{display:flex;border-top:1rpx solid #eee}.popup-footer button.data-v-310af818{flex:1;height:90rpx;line-height:90rpx;border-radius:0;margin:0!important;padding:0!important;font-size:30rpx}.popup-footer button.data-v-310af818:after{border:none}.popup-footer .btn-cancel.data-v-310af818{background:#fff;color:#666}.popup-footer .btn-confirm.data-v-310af818{color:#fff}.ai-btn-wrapper.data-v-310af818{display:flex;justify-content:flex-end}.ai-analyze-btn.data-v-310af818{display:flex;align-items:center;justify-content:center;height:72rpx;padding:0 32rpx;font-size:28rpx;color:#fff;background:linear-gradient(135deg,#4facfe,#2668ea);border-radius:36rpx;border:none}.ai-analyze-btn.data-v-310af818:after{border:none}.ai-analyze-btn .ai-btn-icon.data-v-310af818{margin-right:8rpx;font-size:30rpx}.ai-analyze-btn[disabled].data-v-310af818{opacity:.7}.picker-input.data-v-310af818{background:#fff;border-radius:8rpx;padding:24rpx 20rpx;margin-bottom:20rpx;border:1rpx solid #eee}.picker-input text.data-v-310af818{font-size:28rpx}.picker-input.readonly.data-v-310af818{background:#f5f5f5;color:#666}

View File

@@ -1 +0,0 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../request/api.js"),n=require("../../utils/upload.js");if(!Array){(e.resolveComponent("up-input")+e.resolveComponent("up-textarea"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-input/u-input.js")+(()=>"../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"))();const o={__name:"editor",setup(o){const t=e.ref(""),l=e.ref(""),i=e.reactive({hazardId:"",hazardName:"",deadline:"",responsibilityUnit:"",mainPerson:"",mainGovernanceContent:"",governanceCompleteContent:"",status:"",rejectReason:""}),r=e.computed((()=>{const e=Number(i.status);return 1===e?"通过":2===e?"不通过":""})),d=e.computed((()=>Boolean(String(i.rejectReason||"").trim()))),s=e.computed((()=>Boolean(l.value))),u=()=>{l.value&&e.index.previewImage({urls:[l.value],current:l.value})},c=()=>{console.error("签名图片加载失败:",l.value)},p=async o=>{var t;if(o)try{e.index.showLoading({title:"加载中..."});const r=await a.getWriteOffApplyDetail(o);if(0===r.code&&r.data){const e=r.data;i.hazardId=e.hazardId||"",i.hazardName=e.hazardName||"",i.deadline=e.deadline||"",i.responsibilityUnit=e.responsibilityUnit||"",i.mainPerson=e.mainPerson||"",i.mainGovernanceContent=e.mainGovernanceContent||"",i.governanceCompleteContent=e.governanceCompleteContent||"",i.status=e.status??"",i.rejectReason=e.rejectReason||"",t=e.signPath,l.value=t?n.toSubmitFileUrl(t):""}else e.index.showToast({title:r.msg||"获取详情失败",icon:"none"})}catch(r){console.error("获取销号申请详情失败:",r),e.index.showToast({title:"获取详情失败",icon:"none"})}finally{e.index.hideLoading()}else e.index.showToast({title:"缺少申请ID",icon:"none"})},m=()=>{e.index.navigateBack()};return e.onLoad((e=>{t.value=(null==e?void 0:e.applyId)||"",p(t.value)})),(a,n)=>e.e({a:e.o((e=>i.hazardName=e)),b:e.p({placeholder:"暂无",disabled:!0,modelValue:i.hazardName}),c:e.o((e=>i.deadline=e)),d:e.p({placeholder:"暂无",disabled:!0,modelValue:i.deadline}),e:e.o((e=>i.responsibilityUnit=e)),f:e.p({placeholder:"暂无",disabled:!0,modelValue:i.responsibilityUnit}),g:e.o((e=>i.mainPerson=e)),h:e.p({placeholder:"暂无",disabled:!0,modelValue:i.mainPerson}),i:e.o((e=>i.mainGovernanceContent=e)),j:e.p({placeholder:"暂无",disabled:!0,autoHeight:!0,modelValue:i.mainGovernanceContent}),k:e.o((e=>i.governanceCompleteContent=e)),l:e.p({placeholder:"暂无",disabled:!0,autoHeight:!0,modelValue:i.governanceCompleteContent}),m:e.p({modelValue:r.value,placeholder:"暂无",disabled:!0}),n:d.value},d.value?{o:e.o((e=>i.rejectReason=e)),p:e.p({placeholder:"暂无",disabled:!0,autoHeight:!0,modelValue:i.rejectReason})}:{},{q:s.value},s.value?{r:l.value,s:e.o(u),t:e.o(c)}:{},{v:e.o(m),w:e.gei(a,"")})}},t=e._export_sfc(o,[["__scopeId","data-v-4709c0fa"]]);wx.createPage(t);

View File

@@ -1,7 +0,0 @@
{
"navigationBarTitleText": "销号详情",
"usingComponents": {
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea"
}
}

View File

@@ -1 +0,0 @@
<view class="{{['padding', 'page', 'data-v-4709c0fa', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{w}}"><view class="padding bg-white radius data-v-4709c0fa"><view class="text-gray margin-bottom data-v-4709c0fa">隐患名称</view><up-input wx:if="{{b}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-0" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></up-input><view class="text-gray margin-bottom margin-top data-v-4709c0fa">整改时限</view><up-input wx:if="{{d}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-1" bind:__l="__l" bindupdateModelValue="{{c}}" u-p="{{d}}"></up-input><view class="text-gray margin-bottom margin-top data-v-4709c0fa">隐患治理责任单位</view><up-input wx:if="{{f}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-2" bind:__l="__l" bindupdateModelValue="{{e}}" u-p="{{f}}"></up-input><view class="text-gray margin-bottom margin-top data-v-4709c0fa">主要负责人</view><up-input wx:if="{{h}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-3" bind:__l="__l" bindupdateModelValue="{{g}}" u-p="{{h}}"></up-input><view class="text-gray margin-bottom margin-top data-v-4709c0fa">主要治理内容</view><up-textarea wx:if="{{j}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-4" bind:__l="__l" bindupdateModelValue="{{i}}" u-p="{{j}}"></up-textarea><view class="text-gray margin-bottom margin-top data-v-4709c0fa">隐患治理完成内容</view><up-textarea wx:if="{{l}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-5" bind:__l="__l" bindupdateModelValue="{{k}}" u-p="{{l}}"></up-textarea><view class="text-gray margin-bottom margin-top data-v-4709c0fa">状态</view><up-input wx:if="{{m}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-6" bind:__l="__l" u-p="{{m}}"></up-input><block wx:if="{{n}}"><view class="text-gray margin-bottom margin-top data-v-4709c0fa">驳回理由</view><up-textarea wx:if="{{p}}" class="data-v-4709c0fa" virtualHostClass="data-v-4709c0fa" u-i="4709c0fa-7" bind:__l="__l" bindupdateModelValue="{{o}}" u-p="{{p}}"></up-textarea></block><block wx:if="{{q}}"><view class="text-gray margin-bottom margin-top data-v-4709c0fa">电子签名</view><view class="signature-box data-v-4709c0fa"><image src="{{r}}" class="signature-img data-v-4709c0fa" mode="aspectFit" bindtap="{{s}}" binderror="{{t}}"></image></view></block><view class="flex justify-center margin-top-xl data-v-4709c0fa"><button class="round cu-btn lg data-v-4709c0fa" bindtap="{{v}}">返回</button></view></view></view>

View File

@@ -1 +0,0 @@
.page.data-v-4709c0fa{min-height:100vh;background:#ebf2fc}.signature-box.data-v-4709c0fa{width:100%;height:240rpx;background:#f8f8f8;border:1rpx dashed #dcdfe6;border-radius:8rpx;overflow:hidden}.signature-img.data-v-4709c0fa{width:100%;height:240rpx}

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +0,0 @@
{
"navigationBarTitleText": "企业信息",
"usingComponents": {
"up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload",
"up-modal": "../../uni_modules/uview-plus/components/u-modal/u-modal",
"u-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.page.data-v-b5d053e4{min-height:100vh;background:#ebf2fc}.list.data-v-b5d053e4{background:#fff;box-shadow:0 2rpx 6rpx 2rpx rgba(0,0,0,.08);border-left:5px solid #2667E9;border-radius:20rpx;padding:20rpx}.info-item.data-v-b5d053e4{display:flex;margin-top:16rpx;font-size:28rpx}.info-item .text-gray.data-v-b5d053e4{flex-shrink:0;color:#999}.empty-box.data-v-b5d053e4{padding:100rpx 40rpx;text-align:center}.modal-scroll-body.data-v-b5d053e4{height:60vh;padding:20rpx 0;box-sizing:border-box}.form-input.data-v-b5d053e4{width:100%;height:80rpx;padding:0 24rpx;border:1rpx solid #dcdfe6;border-radius:8rpx;font-size:28rpx;box-sizing:border-box;background:#fff}.form-textarea.data-v-b5d053e4{width:100%;min-height:160rpx;padding:20rpx 24rpx;border:1rpx solid #dcdfe6;border-radius:8rpx;font-size:28rpx;box-sizing:border-box;background:#fff}.form-label.data-v-b5d053e4{display:flex;align-items:center;margin-bottom:12rpx}.form-label .text-red.data-v-b5d053e4{margin-left:4rpx}.select-trigger.data-v-b5d053e4{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1rpx solid #dcdfe6;border-radius:8rpx;padding:20rpx 24rpx}.select-trigger .select-value.data-v-b5d053e4{flex:1;font-size:28rpx;color:#333}.select-trigger .select-value.placeholder.data-v-b5d053e4{color:#c0c4cc}.picker-popup.data-v-b5d053e4{background:#fff}.picker-popup .picker-header.data-v-b5d053e4{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.picker-popup .picker-header .picker-cancel.data-v-b5d053e4{font-size:28rpx;color:#999}.picker-popup .picker-header .picker-title.data-v-b5d053e4{font-size:32rpx;font-weight:700;color:#333}.picker-popup .picker-header .picker-confirm.data-v-b5d053e4{font-size:28rpx;color:#2667e9}.picker-popup .picker-body.data-v-b5d053e4{max-height:600rpx;padding:0 30rpx}.picker-popup .picker-item.data-v-b5d053e4{display:flex;justify-content:space-between;align-items:center;padding:30rpx 0;border-bottom:1rpx solid #f5f5f5;font-size:30rpx;color:#333}.picker-popup .picker-item.data-v-b5d053e4:last-child{border-bottom:none}.picker-popup .picker-item.active.data-v-b5d053e4{color:#2667e9}

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +0,0 @@
{
"navigationBarTitleText": "添加检查表",
"usingComponents": {
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker",
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

Some files were not shown because too many files have changed in this diff Show More