优化后,再次提交

This commit is contained in:
王利强
2026-05-03 09:08:56 +08:00
parent 721ef0ad54
commit 805747d1d9
1243 changed files with 46213 additions and 221 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"navigationBarTitleText": "隐患排查",
"usingComponents": {
"up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload",
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-choose": "../../uni_modules/uview-plus/components/u-choose/u-choose",
"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

View File

@@ -0,0 +1 @@
.page.data-v-5561d26d{min-height:100vh;background:#ebf2fc;padding-bottom:120rpx}.fixed-add-btn.data-v-5561d26d{position:fixed;bottom:40rpx;left:30rpx;right:30rpx;height:88rpx;background:linear-gradient(135deg,#667eea,#2668ea);border-radius:44rpx;display:flex;align-items:center;justify-content:center;color:#fff;font-size:32rpx;font-weight:500;box-shadow:0 8rpx 24rpx rgba(38,104,234,.4);z-index:100}.fixed-add-btn .cuIcon-add.data-v-5561d26d{margin-right:10rpx;font-size:36rpx}.list-list.data-v-5561d26d{background:#fff;box-shadow:0 2rpx 6rpx 2rpx rgba(0,0,0,.08);border-left:5px solid #2667E9;border-radius:20rpx;padding:20rpx}.level-tag.data-v-5561d26d{padding:4rpx 16rpx;border-radius:8rpx}.level-minor.data-v-5561d26d{background:#f6ffed;border:2rpx solid #B7EB8F;color:#52c41a}.level-normal.data-v-5561d26d{background:#fff7e6;border:2rpx solid #FFD591;color:#fa8c16}.level-major.data-v-5561d26d{background:#fff1f0;border:2rpx solid #FFA39E;color:#f5222d}.ai-btn-wrapper.data-v-5561d26d{display:flex;justify-content:flex-end}.ai-analyze-btn.data-v-5561d26d{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-5561d26d:after{border:none}.ai-analyze-btn .ai-btn-icon.data-v-5561d26d{margin-right:8rpx;font-size:30rpx}.ai-analyze-btn[disabled].data-v-5561d26d{opacity:.7}.popup-content.data-v-5561d26d{width:600rpx;background:#fff;border-radius:20rpx;overflow:hidden}.popup-header.data-v-5561d26d{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.popup-header .popup-title.data-v-5561d26d{font-size:32rpx;color:#333}.popup-header .popup-close.data-v-5561d26d{font-size:40rpx;color:#999;line-height:1}.popup-body.data-v-5561d26d{padding:30rpx;max-height:900rpx;overflow-y:auto}.popup-footer.data-v-5561d26d{display:flex;border-top:1rpx solid #eee}.popup-footer button.data-v-5561d26d{flex:1;height:90rpx;line-height:90rpx;border-radius:0;font-size:30rpx}.popup-footer button.data-v-5561d26d:after{border:none}.popup-footer .btn-cancel.data-v-5561d26d{background:#fff;color:#666}.popup-footer .btn-confirm.data-v-5561d26d{color:#fff}.address-box.data-v-5561d26d{display:flex;align-items:center;gap:20rpx}.address-box .address-input-wrapper.data-v-5561d26d{flex:1}.address-box .btn-address.data-v-5561d26d{flex-shrink:0;height:70rpx;line-height:70rpx;padding:0 30rpx;font-size:26rpx;border-radius:8rpx;color:#fff}.address-box .btn-address.data-v-5561d26d:after{border:none}.select-trigger.data-v-5561d26d{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-5561d26d{flex:1;font-size:28rpx;color:#333}.select-trigger .select-value.placeholder.data-v-5561d26d{color:#c0c4cc}.picker-popup.data-v-5561d26d{background:#fff}.picker-popup .picker-header.data-v-5561d26d{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.picker-popup .picker-header .picker-cancel.data-v-5561d26d{font-size:28rpx;color:#999}.picker-popup .picker-header .picker-title.data-v-5561d26d{font-size:32rpx;font-weight:700;color:#333}.picker-popup .picker-header .picker-confirm.data-v-5561d26d{font-size:28rpx;color:#2667e9}.picker-popup .picker-body.data-v-5561d26d{max-height:600rpx;padding:0 30rpx}.picker-popup .picker-item.data-v-5561d26d{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-5561d26d:last-child{border-bottom:none}.picker-popup .picker-item.picker-item-active.data-v-5561d26d{color:#2667e9}.area-color-dot.data-v-5561d26d{width:24rpx;height:24rpx;border-radius:50%;margin-right:16rpx}.address-popup.data-v-5561d26d{width:600rpx;background:#fff;border-radius:20rpx;overflow:hidden}.address-popup-body.data-v-5561d26d{padding:30rpx;max-height:500rpx}.address-popup-body .search-box.data-v-5561d26d{margin-bottom:20rpx}.address-popup-body .search-box .search-input.data-v-5561d26d{width:100%;background:#f5f5f5;border-radius:8rpx;padding:16rpx 20rpx;font-size:28rpx}.address-popup-body .address-list.data-v-5561d26d{max-height:350rpx;overflow-y:auto}.address-popup-body .address-item.data-v-5561d26d{padding:24rpx 20rpx;border-bottom:1rpx solid #eee;font-size:26rpx;color:#333}.address-popup-body .address-item.data-v-5561d26d:last-child{border-bottom:none}.address-popup-body .address-item.address-item-active.data-v-5561d26d{background:#ebf2fc;color:#2667e9}.u-tag{justify-content:center!important}

View File

@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../request/api.js"),a=require("../../request/request.js");if(!Array){(e.resolveComponent("up-textarea")+e.resolveComponent("up-upload"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-textarea/u-textarea.js")+(()=>"../../uni_modules/uview-plus/components/u-upload/u-upload.js"))();const s={__name:"acceptance",setup(s){const l=e.ref(""),i=e.ref(""),o=e.ref(""),r=e.reactive({rectifyPlan:"",rectifyResult:""}),n=e.ref([]),c=e.reactive({result:1,verifyRemark:""}),u=e.ref([]),d=e=>e?(e.startsWith("http://")||e.startsWith("https://"),a.toImageUrl(e)):"";e.onLoad((a=>{a.rectifyId&&(l.value=a.rectifyId),a.hazardId&&(i.value=a.hazardId),a.assignId&&(o.value=a.assignId),console.log("验收页面参数:",{rectifyId:l.value,hazardId:i.value,assignId:o.value}),(async()=>{if(i.value&&o.value)try{const a=await t.getHiddenDangerDetail({hazardId:i.value,assignId:o.value});if(0===a.code&&a.data){if(a.data.assigns&&a.data.assigns.length>0){const e=a.data.assigns[0];e.rectify&&(r.rectifyPlan=e.rectify.rectifyPlan||"",r.rectifyResult=e.rectify.rectifyResult||"",e.rectify.attachments&&(n.value=e.rectify.attachments),console.log("整改记录:",r),console.log("整改附件:",n.value))}}else e.index.showToast({title:a.msg||"获取详情失败",icon:"none"})}catch(a){console.error("获取隐患详情失败:",a),e.index.showToast({title:"请求失败",icon:"none"})}})()}));const f=()=>{e.index.navigateBack()},p=async()=>{if(!l.value)return void e.index.showToast({title:"缺少整改ID",icon:"none"});const a=u.value.map((e=>{let t="";"string"==typeof e.url?t=e.url:e.url&&"object"==typeof e.url&&(t=e.url.url||e.url.path||"");return{fileName:("string"==typeof t&&t?t.split("/").pop():e.name||"")||"",filePath:t||"",fileType:e.type||"image/png",fileSize:e.size||0}})),s={rectifyId:Number(l.value),result:c.result,verifyRemark:c.verifyRemark||"",attachments:a};console.log("提交验收参数:",s);try{const a=await t.acceptanceRectification(s);0===a.code?(e.index.showToast({title:"验收成功",icon:"success"}),setTimeout((()=>{e.index.navigateBack()}),1500)):e.index.showToast({title:a.msg||"验收失败",icon:"none"})}catch(i){console.error("验收失败:",i),e.index.showToast({title:"请求失败",icon:"none"})}},v=e=>{u.value.splice(e.index,1)},m=async e=>{let t=[].concat(e.file),a=u.value.length;t.map((e=>{u.value.push({...e,status:"uploading",message:"上传中"})}));for(let s=0;s<t.length;s++){const e=await g(t[s].url);let l=u.value[a];u.value.splice(a,1,{...l,status:"success",message:"",url:e}),a++}},g=t=>new Promise(((s,l)=>{e.index.uploadFile({url:a.baseUrl+"/frontend/attachment/upload",filePath:t,name:"file",header:{Authorization:a.getToken()},success:e=>{const t=JSON.parse(e.data);0===t.code?s(t.data):l(t.msg||"上传失败")},fail:e=>{console.error("上传失败:",e),l(e)}})}));return(t,a)=>e.e({a:e.t(r.rectifyPlan||"暂无"),b:e.t(r.rectifyResult||"暂无"),c:n.value.length>0},n.value.length>0?{d:e.f(n.value,((t,a,s)=>({a:a,b:d(t.filePath),c:e.o((t=>(t=>{const a=n.value.map((e=>d(e.filePath)));e.index.previewImage({current:t,urls:a})})(a)),a)})))}:{},{e:e.n(1===c.result?"active":""),f:e.o((e=>c.result=1)),g:e.n(2===c.result?"active":""),h:e.o((e=>c.result=2)),i:e.o((e=>c.verifyRemark=e)),j:e.p({placeholder:"请输入验收备注",modelValue:c.verifyRemark}),k:e.o(m),l:e.o(v),m:e.p({fileList:u.value,name:"1",multiple:!0,maxCount:10}),n:e.o(f),o:e.o(p),p:e.gei(t,"")})}},l=e._export_sfc(s,[["__scopeId","data-v-380a93d8"]]);wx.createPage(l);

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "隐患验收",
"usingComponents": {
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload"
}
}

View File

@@ -0,0 +1 @@
<view class="{{['page', 'padding', 'data-v-380a93d8', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{p}}"><view class="padding bg-white radius data-v-380a93d8"><view class="text-gray margin-bottom data-v-380a93d8">整改记录</view><view class="padding solid radius data-v-380a93d8"><view class="flex data-v-380a93d8"><view class="data-v-380a93d8">整改方案:</view><view class="data-v-380a93d8">{{a}}</view></view><view class="flex margin-top-sm data-v-380a93d8"><view class="data-v-380a93d8">完成情况:</view><view class="data-v-380a93d8">{{b}}</view></view><view class="margin-top-sm data-v-380a93d8"><view class="data-v-380a93d8">整改附件:</view><view wx:if="{{c}}" class="flex margin-top-xs data-v-380a93d8" style="flex-wrap:wrap;gap:10rpx"><image wx:for="{{d}}" wx:for-item="img" wx:key="a" class="data-v-380a93d8" src="{{img.b}}" style="width:136rpx;height:136rpx;border-radius:16rpx" mode="aspectFill" bindtap="{{img.c}}"></image></view><view wx:else class="text-gray text-sm margin-top-xs data-v-380a93d8">暂无附件</view></view></view><view class="flex margin-bottom margin-top data-v-380a93d8"><view class="text-gray data-v-380a93d8">验收结果</view><view class="text-red data-v-380a93d8">*</view></view><view class="flex data-v-380a93d8" style="gap:20rpx"><button class="{{['data-v-380a93d8', 'result-btn', e]}}" bindtap="{{f}}">通过</button><button class="{{['data-v-380a93d8', 'result-btn', g]}}" bindtap="{{h}}">不通过</button></view><view class="flex margin-bottom margin-top data-v-380a93d8"><view class="text-gray data-v-380a93d8">验收备注</view></view><up-textarea wx:if="{{j}}" class="data-v-380a93d8" virtualHostClass="data-v-380a93d8" u-i="380a93d8-0" bind:__l="__l" bindupdateModelValue="{{i}}" u-p="{{j}}"></up-textarea><view class="flex margin-bottom margin-top data-v-380a93d8"><view class="text-gray data-v-380a93d8">验收图片/视频</view></view><up-upload wx:if="{{m}}" class="data-v-380a93d8" virtualHostClass="data-v-380a93d8" bindafterRead="{{k}}" binddelete="{{l}}" u-i="380a93d8-1" bind:__l="__l" u-p="{{m}}"></up-upload><view class="flex margin-top-xl data-v-380a93d8" style="gap:20rpx"><button class="round flex-sub data-v-380a93d8" bindtap="{{n}}">取消</button><button class="bg-blue round flex-sub data-v-380a93d8" bindtap="{{o}}">提交验收</button></view></view></view>

View File

@@ -0,0 +1 @@
.page.data-v-380a93d8{min-height:100vh;background:#ebf2fc}.result-btn.data-v-380a93d8{flex:1;height:80rpx;line-height:80rpx;border-radius:8rpx;background:#f5f5f5;color:#666;font-size:28rpx}.result-btn.data-v-380a93d8:after{border:none}.result-btn.active.data-v-380a93d8{background:#2667e9;color:#fff}

View File

@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../request/api.js");if(!Array){(e.resolveComponent("up-picker")+e.resolveComponent("up-datetime-picker"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-picker/u-picker.js")+(()=>"../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js"))();const t={__name:"assignment",setup(t){const o=e.ref(""),n=e.ref(""),s=e.ref(!1),r=e.ref(""),u=e.ref(""),i=e.ref([["暂无数据"]]),l=e.ref([]),d=e.ref(!1),c=e.ref(Date.now()),v=e.ref(""),g=e=>{if(console.log("选择的人员:",e),e.value&&e.value.length>0){r.value=e.value[0];const a=l.value.find((a=>a.name===e.value[0]));a&&(u.value=a.id)}s.value=!1},m=e=>{console.log("选择的日期时间:",e);const a=new Date(e.value),t=a.getFullYear(),o=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0"),s=String(a.getHours()).padStart(2,"0"),r=String(a.getMinutes()).padStart(2,"0"),u=String(a.getSeconds()).padStart(2,"0");v.value=`${t}-${o}-${n} ${s}:${r}:${u}`,d.value=!1},p=()=>{e.index.navigateBack()},f=async()=>{if(!u.value)return void e.index.showToast({title:"请选择整改人员",icon:"none"});if(!v.value)return void e.index.showToast({title:"请选择整改期限",icon:"none"});const t={hazardId:Number(o.value),assigneeId:Number(u.value),deadline:v.value,assignRemark:""};console.log("提交数据:",t);try{const o=await a.assignHiddenDanger(t);0===o.code?(e.index.showToast({title:"交办成功",icon:"success"}),setTimeout((()=>{e.index.navigateBack()}),1500)):e.index.showToast({title:o.msg||"交办失败",icon:"none"})}catch(n){console.error("交办失败:",n),e.index.showToast({title:"请求失败",icon:"none"})}};return e.onLoad((e=>{e.hazardId&&(o.value=e.hazardId),e.assignId&&(n.value=e.assignId),(async()=>{try{const e=await a.getDepartmentPersonUsers();if(0===e.code&&e.data){const a=[];e.data.forEach((e=>{e.users&&e.users.length>0&&e.users.forEach((t=>{a.push({id:String(t.userId),name:`${t.nickName}${e.deptName}`})}))})),l.value=a,i.value=[a.map((e=>e.name))],console.log("整改人员列表:",a)}}catch(e){console.error("获取部门人员失败:",e)}})()})),(a,t)=>({a:e.t(r.value||"请选择整改人员"),b:e.n(r.value?"":"text-gray"),c:e.o((e=>s.value=!0)),d:e.o(g),e:e.o((e=>s.value=!1)),f:e.o((e=>s.value=!1)),g:e.p({show:s.value,columns:i.value}),h:e.t(v.value||"请选择整改期限"),i:e.n(v.value?"":"text-gray"),j:e.o((e=>d.value=!0)),k:e.o(m),l:e.o((e=>d.value=!1)),m:e.o((e=>d.value=!1)),n:e.o((e=>c.value=e)),o:e.p({show:d.value,mode:"datetime",modelValue:c.value}),p:e.o(p),q:e.o(f),r:e.gei(a,"")})}},o=e._export_sfc(t,[["__scopeId","data-v-98dd2562"]]);wx.createPage(o);

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "隐患交办",
"usingComponents": {
"up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker",
"up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker"
}
}

View File

@@ -0,0 +1 @@
<view class="{{['padding', 'page', 'data-v-98dd2562', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{r}}"><view class="padding radius bg-white data-v-98dd2562"><view class="flex margin-bottom data-v-98dd2562"><view class="text-gray data-v-98dd2562">整改人员</view><view class="text-red data-v-98dd2562">*</view></view><view class="picker-input data-v-98dd2562" bindtap="{{c}}"><text class="{{['data-v-98dd2562', b]}}">{{a}}</text></view><up-picker wx:if="{{g}}" class="data-v-98dd2562" virtualHostClass="data-v-98dd2562" bindconfirm="{{d}}" bindcancel="{{e}}" bindclose="{{f}}" u-i="98dd2562-0" bind:__l="__l" u-p="{{g}}"></up-picker><view class="flex margin-bottom margin-top data-v-98dd2562"><view class="text-gray data-v-98dd2562">整改期限</view><view class="text-red data-v-98dd2562">*</view></view><view class="picker-input data-v-98dd2562" bindtap="{{j}}"><text class="{{['data-v-98dd2562', i]}}">{{h}}</text></view><up-datetime-picker wx:if="{{o}}" class="data-v-98dd2562" virtualHostClass="data-v-98dd2562" bindconfirm="{{k}}" bindcancel="{{l}}" bindclose="{{m}}" u-i="98dd2562-1" bind:__l="__l" bindupdateModelValue="{{n}}" u-p="{{o}}"></up-datetime-picker><view class="btn-group margin-top-xl data-v-98dd2562"><button class="btn-cancel data-v-98dd2562" bindtap="{{p}}">取消</button><button class="btn-confirm bg-blue data-v-98dd2562" bindtap="{{q}}">确认</button></view></view></view>

View File

@@ -0,0 +1 @@
.page.data-v-98dd2562{min-height:100vh;background:#ebf2fc}.picker-input.data-v-98dd2562{background:#fff;border-radius:8rpx;padding:24rpx 20rpx;margin-bottom:20rpx;border:1rpx solid #F6F6F6}.picker-input text.data-v-98dd2562{font-size:28rpx;color:#333}.btn-group.data-v-98dd2562{display:flex;gap:30rpx}.btn-cancel.data-v-98dd2562{flex:1;height:80rpx;line-height:80rpx;border:2rpx solid #2667E9;border-radius:40rpx;background:#fff;color:#2667e9;font-size:30rpx}.btn-confirm.data-v-98dd2562{flex:1;height:80rpx;line-height:80rpx;border-radius:40rpx;color:#fff;font-size:30rpx}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
{
"navigationBarTitleText": "隐患整改",
"usingComponents": {
"up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea",
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker",
"up-checkbox": "../../uni_modules/uview-plus/components/u-checkbox/u-checkbox",
"up-checkbox-group": "../../uni_modules/uview-plus/components/u-checkbox-group/u-checkbox-group",
"u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup",
"up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload"
}
}

View File

@@ -0,0 +1 @@
<view class="{{['page', 'padding', 'data-v-641bd0a1', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{H}}"><view class="padding bg-white radius data-v-641bd0a1"><view class="form-header margin-bottom data-v-641bd0a1"><view class="form-label data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">整改方案</view><view class="text-red data-v-641bd0a1">*</view></view><button class="ai-rectify-btn data-v-641bd0a1" loading="{{c}}" disabled="{{d}}" bindtap="{{e}}"><text wx:if="{{a}}" class="cuIcon-magic ai-btn-icon data-v-641bd0a1"></text> {{b}}</button></view><up-textarea wx:if="{{g}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="641bd0a1-0" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-textarea><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">整改完成情况</view><view class="text-red data-v-641bd0a1">*</view></view><up-textarea wx:if="{{i}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="641bd0a1-1" bind:__l="__l" bindupdateModelValue="{{h}}" u-p="{{i}}"></up-textarea><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">投资资金(计划)</view><view class="text-red data-v-641bd0a1">*</view></view><up-input wx:if="{{k}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="641bd0a1-2" bind:__l="__l" bindupdateModelValue="{{j}}" u-p="{{k}}"></up-input><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">投资资金(实际)</view><view class="text-red data-v-641bd0a1">*</view></view><up-input wx:if="{{m}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="641bd0a1-3" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"></up-input><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">限定整改时间</view><view class="text-red data-v-641bd0a1">*</view></view><up-datetime-picker wx:if="{{o}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="641bd0a1-4" bind:__l="__l" bindupdateModelValue="{{n}}" u-p="{{o}}"></up-datetime-picker><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">整改人员</view><view class="text-red data-v-641bd0a1">*</view></view><view class="select-trigger data-v-641bd0a1" bindtap="{{r}}"><view class="{{['select-content', 'data-v-641bd0a1', q && 'text-gray']}}">{{p}}</view><text class="cuIcon-unfold data-v-641bd0a1"></text></view><u-popup wx:if="{{B}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-s="{{['d']}}" bindclose="{{A}}" u-i="641bd0a1-5" bind:__l="__l" u-p="{{B}}"><view class="user-popup data-v-641bd0a1"><view class="popup-header data-v-641bd0a1"><view class="popup-title text-bold data-v-641bd0a1">选择整改人员</view><view class="popup-close data-v-641bd0a1" bindtap="{{s}}">×</view></view><view class="popup-body data-v-641bd0a1"><up-checkbox-group wx:if="{{x}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-s="{{['d']}}" bindchange="{{v}}" u-i="641bd0a1-6,641bd0a1-5" bind:__l="__l" bindupdateModelValue="{{w}}" u-p="{{x}}"><view wx:for="{{t}}" wx:for-item="item" wx:key="c" class="user-item data-v-641bd0a1"><up-checkbox wx:if="{{item.b}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></up-checkbox></view></up-checkbox-group></view><view class="popup-footer data-v-641bd0a1"><button class="btn-cancel data-v-641bd0a1" bindtap="{{y}}">取消</button><button class="btn-confirm bg-blue data-v-641bd0a1" bindtap="{{z}}">确定</button></view></view></u-popup><view class="form-label margin-bottom margin-top data-v-641bd0a1"><view class="text-gray data-v-641bd0a1">整改图片/视频</view><view class="text-red data-v-641bd0a1">*</view></view><up-upload wx:if="{{E}}" class="data-v-641bd0a1" virtualHostClass="data-v-641bd0a1" bindafterRead="{{C}}" binddelete="{{D}}" u-i="641bd0a1-8" bind:__l="__l" u-p="{{E}}"></up-upload><button class="bg-blue round margin-top-xl data-v-641bd0a1" bindtap="{{G}}">{{F}}</button></view></view>

View File

@@ -0,0 +1 @@
.page.data-v-641bd0a1{min-height:100vh;background:#ebf2fc}.ai-rectify-btn.data-v-641bd0a1{display:flex;align-items:center;justify-content:center;height:60rpx;padding:0 24rpx;margin:0;font-size:24rpx;color:#fff;background:linear-gradient(135deg,#4facfe,#2668ea);border-radius:30rpx;border:none;white-space:nowrap;flex-shrink:0}.ai-rectify-btn.data-v-641bd0a1:after{border:none}.ai-rectify-btn .ai-btn-icon.data-v-641bd0a1{margin-right:6rpx;font-size:26rpx}.ai-rectify-btn[disabled].data-v-641bd0a1{opacity:.7}.form-header.data-v-641bd0a1{display:flex;align-items:center;justify-content:space-between;width:100%}.form-label.data-v-641bd0a1{display:flex;align-items:center}.form-label .text-red.data-v-641bd0a1{margin-left:4rpx;line-height:1}.date-input.data-v-641bd0a1{background:#fff;border-radius:8rpx;padding:24rpx 20rpx;margin-bottom:20rpx;border:1rpx solid #F6F6F6}.date-input text.data-v-641bd0a1{font-size:28rpx;color:#333}.select-trigger.data-v-641bd0a1{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1rpx solid #dcdfe6;border-radius:8rpx;padding:20rpx 24rpx;margin-bottom:20rpx}.select-trigger .select-content.data-v-641bd0a1{flex:1;font-size:28rpx;color:#333}.user-popup.data-v-641bd0a1{background:#fff}.user-popup .popup-header.data-v-641bd0a1{display:flex;justify-content:space-between;align-items:center;padding:30rpx;border-bottom:1rpx solid #eee}.user-popup .popup-header .popup-title.data-v-641bd0a1{font-size:32rpx;color:#333}.user-popup .popup-header .popup-close.data-v-641bd0a1{font-size:40rpx;color:#999;line-height:1}.user-popup .popup-body.data-v-641bd0a1{padding:20rpx 30rpx;max-height:600rpx;overflow-y:auto}.user-popup .user-item.data-v-641bd0a1{padding:24rpx 0;border-bottom:1rpx solid #f5f5f5}.user-popup .user-item.data-v-641bd0a1:last-child{border-bottom:none}.user-popup .popup-footer.data-v-641bd0a1{display:flex;border-top:1rpx solid #eee}.user-popup .popup-footer button.data-v-641bd0a1{flex:1;height:90rpx;line-height:90rpx;border-radius:0;font-size:30rpx}.user-popup .popup-footer button.data-v-641bd0a1:after{border:none}.user-popup .popup-footer .btn-cancel.data-v-641bd0a1{background:#fff;color:#666}.user-popup .popup-footer .btn-confirm.data-v-641bd0a1{color:#fff}

View File

@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../request/api.js"),a=require("../../request/request.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 s={__name:"view",setup(s){const n=e.reactive({hazardId:"",assignId:"",title:"",level:0,levelName:"",source:"",description:"",address:"",areaName:"",createdAt:"",attachments:[]}),r=e.ref([]),o=e=>a.toImageUrl(e);return e.onLoad((a=>{a.hazardId&&a.assignId&&(async(a,s)=>{try{const o=await t.getHiddenDangerDetail({hazardId:a,assignId:s});if(0===o.code&&o.data){if(Object.assign(n,o.data),console.log("隐患详情数据:",o.data),console.log("隐患附件:",o.data.attachments),o.data.assigns&&o.data.assigns.length>0){const e=o.data.assigns[0];e.rectify&&e.rectify.attachments&&(r.value=e.rectify.attachments,console.log("整改附件:",r.value))}}else e.index.showToast({title:o.msg||"获取详情失败",icon:"none"})}catch(o){console.error("获取隐患详情失败:",o),e.index.showToast({title:"请求失败",icon:"none"})}})(a.hazardId,a.assignId)})),(t,a)=>e.e({a:n.attachments&&n.attachments.length>0},n.attachments&&n.attachments.length>0?{b:e.f(n.attachments,((t,a,s)=>({a:a,b:o(t.filePath),c:e.o((t=>(t=>{if(!n.attachments||0===n.attachments.length)return;const a=n.attachments.map((e=>o(e.filePath)));e.index.previewImage({current:t,urls:a})})(a)),a)})))}:{},{c:e.o((e=>n.title=e)),d:e.p({disabled:"true",disabledColor:"#F6F6F6",border:"surround",modelValue:n.title}),e:e.n(1===n.level?"bg-blue light":"bg-gray"),f:e.n(2===n.level?"bg-blue light":"bg-gray"),g:e.n(3===n.level?"bg-blue light":"bg-gray"),h:n.address,i:e.o((e=>n.address=e.detail.value)),j:e.t(n.areaName||"暂无"),k:e.o((e=>n.description=e)),l:e.p({placeholder:"暂无描述",disabled:!0,modelValue:n.description}),m:e.t(n.source||"暂无"),n:e.t(n.createdAt||"暂无"),o:e.gei(t,"")})}},n=e._export_sfc(s,[["__scopeId","data-v-474e61da"]]);wx.createPage(n);

View File

@@ -0,0 +1,7 @@
{
"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

@@ -0,0 +1 @@
<view class="{{['padding', 'page', 'data-v-474e61da', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{o}}"><view class="padding bg-white radius data-v-474e61da"><view class="flex data-v-474e61da"><view class="text-gray data-v-474e61da">隐患图片/视频</view><view class="text-red data-v-474e61da">*</view></view><view class="margin-bottom data-v-474e61da"><view wx:if="{{a}}" class="margin-top data-v-474e61da"><view class="flex data-v-474e61da" style="flex-wrap:wrap;gap:10rpx"><image wx:for="{{b}}" wx:for-item="img" wx:key="a" class="data-v-474e61da" src="{{img.b}}" style="width:136rpx;height:136rpx;border-radius:16rpx" mode="aspectFill" bindtap="{{img.c}}"></image></view></view><view wx:else class="text-gray text-sm data-v-474e61da">暂无图片</view><view class="text-gray text-sm margin-top-xs data-v-474e61da">必填:请上传现场照片或者视频作为隐患证据</view></view><view class="flex margin-bottom data-v-474e61da"><view class="text-gray data-v-474e61da">隐患标题</view><view class="text-red data-v-474e61da">*</view></view><up-input wx:if="{{d}}" class="data-v-474e61da" virtualHostClass="data-v-474e61da" u-i="474e61da-0" bind:__l="__l" bindupdateModelValue="{{c}}" u-p="{{d}}"/><view class="margin-bottom text-gray text-sm margin-top-xs data-v-474e61da">请用简洁的语言概括隐患要点</view><view class="flex margin-bottom data-v-474e61da"><view class="text-gray data-v-474e61da">隐患等级</view><view class="text-red data-v-474e61da">*</view></view><view class="flex col-3 data-v-474e61da" style="gap:10rpx"><view class="{{['data-v-474e61da', e]}}" style="padding:16rpx 40rpx">轻微隐患</view><view class="{{['data-v-474e61da', f]}}" style="padding:16rpx 40rpx">一般隐患</view><view class="{{['data-v-474e61da', g]}}" style="padding:16rpx 40rpx">重大隐患</view></view><view class="text-gray text-sm margin-top-xs margin-bottom data-v-474e61da">请用隐患可能造成的危害程度选择等级</view><view class="flex data-v-474e61da"><view class="text-gray data-v-474e61da">隐患位置</view><view class="text-red data-v-474e61da">*</view></view><view class="address-box margin-top-sm margin-bottom-sm data-v-474e61da"><input class="address-input data-v-474e61da" placeholder="暂无地址" disabled value="{{h}}" bindinput="{{i}}"/><button class="address-btn bg-blue data-v-474e61da">选择地址</button></view><view class="text-gray text-sm data-v-474e61da">如办公楼3层东侧消防通道生产车间A区设备旁等或点击"选择地址"按钮在地图上选择</view><view class="text-gray margin-top margin-bottom data-v-474e61da">隐患区域</view><view class="bg-gray padding radius data-v-474e61da">{{j}}</view><view class="flex margin-bottom margin-top data-v-474e61da"><view class="text-gray data-v-474e61da">隐患描述</view><view class="text-red data-v-474e61da">*</view></view><up-textarea wx:if="{{l}}" class="data-v-474e61da" virtualHostClass="data-v-474e61da" u-i="474e61da-1" bind:__l="__l" bindupdateModelValue="{{k}}" u-p="{{l}}"></up-textarea><view class="text-gray text-sm margin-top-xs margin-bottom data-v-474e61da">请详细说明隐患现状、潜在风险及影响范围</view><view class="text-gray margin-bottom data-v-474e61da">隐患来源</view><view class="bg-gray padding radius data-v-474e61da">{{m}}</view><view class="text-gray margin-top margin-bottom data-v-474e61da">创建时间</view><view class="bg-gray padding radius data-v-474e61da">{{n}}</view></view></view>

View File

@@ -0,0 +1 @@
.page.data-v-474e61da{min-height:100vh;background:#ebf2fc}.address-box.data-v-474e61da{display:flex;align-items:center;gap:20rpx}.address-input.data-v-474e61da{flex:1;height:80rpx;background:#f6f6f6;border-radius:12rpx;padding:0 24rpx;font-size:28rpx;color:#333}.address-btn.data-v-474e61da{flex-shrink:0;height:80rpx;line-height:80rpx;padding:0 32rpx;border-radius:12rpx;font-size:28rpx;color:#fff}