qrcode-app/pages/apply/viewRisk.vue
wyw 7217872c88 1、添加 信息查看导航 维码生成器 隐患查看 检查查看 风险查看 视频查看
2、按钮点击 添加形参
3、接口 添加   区域选择、检查库、隐患 搜索
4、修改 request  公共方法信息(原来的都写死了)
2025-02-25 16:46:59 +08:00

333 lines
9.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- 隐患查看 -->
<view class="content">
<view class="container">
<view class="form-sub">
<u-form :model="model" ref="uForm" label-width="90px" class="demo-ruleForm" size="mini">
<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;">隐患信息</view>
<u-form-item label="区域名称" prop="RISK_AREA_NAME" borderBottom ref="item1"
@click="handleShowSheet({title: '区域名称'})">
<u--input v-model="model.RISK_AREA_NAME" border="none" suffixIcon="arrow-right"
customStyle="margin:0px;display:flex;padding:3px 9px"
suffixIconStyle="font-size:12px"></u--input>
</u-form-item>
<u-form-item label="包含下级区域" prop="ISDOWN" borderBottom>
<u-radio-group v-model="model.ISDOWN" style="display: flex;flex-direction: row"
placement="column">
<u-radio :customStyle="{marginBottom: '4px',marginTop: '4px' ,marginLeft:'15px' }"
v-for="(item, index) in radiolist" :key="index" :label="item.name" :name="item.name"
@change="doTrueOrFalse()" />
</u-radio-group>
</u-form-item>
</u-form>
<!-- 动态加载隐患信息 -->
<u-sticky offset-top="20">
<view class="sub-form">
<view class="sub-form-wrap">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center"
errorType="border-bottom" style="margin-bottom: 50px;" ref="sForm">
<uni-collapse :border="false" accordion>
<uni-card style="margin-bottom: 5px;" margin="0" spacing="0" :is-shadow="false"
v-for="(item, index) in model.ListShow">
<uni-collapse-item :title="(index+1) + '. ' + item.CHECKCONTENT" name="1">
<u-form-item label="检查内容" prop="CHECKCONTENT" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.CHECKCONTENT"
border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item v-if="model.ISDOWN=='是'" label="区域" prop="Nav_RiskArea.NAME"
borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.Nav_RiskArea.NAME"
border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="地址" prop="ADDRESS" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.ADDRESS"
border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="上报时间" prop="CREATE_TIME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.CREATE_TIME"
border="none" inputAlign="right"></u--input>
</u-form-item>
</uni-collapse-item>
</uni-card>
</uni-collapse>
</u--form>
</view>
</view>
</u-sticky>
<query-selector :show="selectorInfo.showPopup" :defaultChecked="selectorInfo.defaultChecked"
:title="selectorInfo.title" :lists="selectorInfo.dataLists" @search="handleSearch"
@select="handleSelected" @close="selectorInfo.showPopup=false" :total="selectorInfo.totalCount" />
</view>
</view>
</view>
</template>
<script>
import {
OrderPagedRiskArea,
PagedRisk
} from '../../services/apply'
import {
initFilter,
extendRule
} from '../../utils/common'
export default {
data() {
return {
OrgId: '',
pageIndex: 0,
pageSize: 20,
total: 0,
model: {
RISK_AREA_NAME: '请选择区域',
RISK_AREA_ID: '',
ISDOWN: '否',
SchedulingType: '',
COUNT_WORKER: '',
COUNT_LEVEL: '',
START_TIME: '',
END_TIME: '',
SchedulingNEXTTIME: '',
LISTPERSON_SCHEDULING: [{
NAME: ''
}],
LISTUSER_LEAVE: [{
NAME: ''
}],
ListShow: []
},
radiolist: [{
value: false,
name: '否'
}, {
value: true,
name: '是'
}],
selectorInfo: {
showPopup: false,
totalCount: 0,
title: '班组名称',
// itemData: {},
index: 0,
dataLists: [],
defaultText: '',
defaultValue: '',
name: '',
defaultChecked: []
},
}
},
onLoad(option) {
if (option.RISK_AREA_ID)
this.model.RISK_AREA_ID = option.RISK_AREA_ID // 'FA89F8DA-0B46-4665-A8DD-3675829F6D6F'
this.OrgId = option.OrgId // 'B043B28B-BBC3-C452-6052-4FBA1457ABFA'
if (this.model.RISK_AREA_ID != undefined && this.model.RISK_AREA_ID != '') {
this.PagedRisk() //扫二维码 默认赋值
const json = initFilter(this.OrgId, null, "NAME", 0, 1);
json.IgnoreDataRule = true
json.Limit = 2
extendRule(json, "ID", 1, this.model.RISK_AREA_ID)
OrderPagedRiskArea(json).then(res => {
if (res != undefined && res.Data.length > 0) {
this.model.RISK_AREA_NAME = res.Data[0].NAME
}
})
}
},
onReady() {
//如果需要兼容微信小程序并且校验规则中含有方法等只能通过setRules方法设置规则。
this.$refs.uForm.setRules(this.rules)
},
methods: {
PagedRisk(paginate) {
this.pageIndex++
const json = initFilter(this.OrgId, this.model.RISK_AREA_ID, "CREATE_TIME", 1, this.pageIndex, ((
this.model.ISDOWN == '否' || this.model.ISDOWN == '') ? false : true))
json.IgnoreDataRule = true
json.Limit = 20
json.SelectField = ["CHECKCONTENT", "ADDRESS", "CREATE_TIME", "Nav_RiskArea.NAME"]
PagedRisk(json).then(res => {
if (res.IsSuccessful) {
// this.model.ListShow = res.Data
this.total = res.TotalCount
if (paginate) {
this.model.ListShow = this.model.ListShow.concat(res.Data)
} else {
this.model.ListShow = res.Data
}
} else {
this.model.ListShow = [{
CHECKCONTENT: '',
ADDRESS: '',
CREATE_TIME: ''
}]
}
})
},
doTrueOrFalse() {
if (this.model.RISK_AREA_ID != undefined && this.model.RISK_AREA_ID.length > 0) {
this.pageIndex = 0
this.PagedRisk();
}
},
closePicker() {
this.comPickerInfo = {
showSheet: false,
columns: [],
title: '',
name: '',
formIndex: undefined
}
},
//显示组件
handleChange() {
this.selectorInfo.showPopup = true
this.selectorInfo.title = '班组名称'
this.handleSearch()
},
//数据加载
handleSearch(val, pageIndex) {
var p = {
name: this.selectorInfo.name,
title: this.selectorInfo.title,
val: val,
pageIndex: pageIndex
}
this.handleShowSheet(p)
},
async handleShowSheet(p) {
var defaultChecked = []
const json = initFilter(this.OrgId, null, "NAME", 0, (p.pageIndex ?? 1));
json.IgnoreDataRule = true
json.Limit = 20
if (p.val) {
extendRule(json, "NAME", 9, p.val)
}
let dataSelect = await OrderPagedRiskArea(json).then(res => {
this.selectorInfo.totalCount = res.TotalCount
if (res != undefined && res.Data.length > 0) {
for (let i = 0; i < res.Data.length; i++) {
res.Data[i].name = res.Data[i].NAME
res.Data[i].code = res.Data[i].CODE
}
}
return res.Data
})
if (defaultChecked == null)
defaultChecked = []
if (dataSelect.length) {
this.selectorInfo = {
totalCount: this.selectorInfo.totalCount,
showPopup: true,
title: p.title,
name: p.name,
dataLists: dataSelect,
defaultChecked: defaultChecked
}
} else {
// 暂无数据
}
},
handleSelected(e) {
this.selectorInfo.showPopup = false
this.model.RISK_AREA_NAME = e.NAME
this.model.RISK_AREA_ID = e.ID
this.PagedRisk()
// this.WorkerScheduling()
}
},
onReachBottom() {
if (this.total > this.pageSize * this.pageIndex)
this.PagedCheckMain(true)
}
}
</script>
<style>
.content {
background-color: #f4f7ff;
width: 100%;
/* #ifndef APP-PLUS */
height: calc(100vh - 44px - 50px); // 非APP平台下生效
/* #endif */
/* #ifdef APP-PLUS */
height: calc(100vh); // APP平台下生效
/* #endif */
}
.container {
padding: 20px 16px 10px 16px;
}
.form-sub {
/* margin: 20px 16px 10px 16px; */
/* border: 1px solid #EBEEF5; */
padding: 20px 30px 10px 30px;
/* box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 3px 1px; */
background-color: #ffffff;
border-radius: 10px;
}
.demo-ruleForm>>>.u-form-item__body__left__content__label {
font-size: 14px;
color: #8e8b9c;
/* justify-content: flex-start; */
}
.demo-ruleForm>>>.u-form-item__body__left__content__ {
left: -11px;
top: 0px
}
.demo-ruleForm>>>.u-textarea__field {
font-size: 14px;
}
.demo-ruleForm>>>.u-cell__title-text {
font-size: 14px;
}
.demo-ruleForm-thr>>>.u-textarea {
padding: 9px 9px 25px 9px;
}
.demo-ruleForm-thr>>>.u-form-item__body__left__content__label {
font-size: 14px;
color: #8e8b9c;
/* justify-content: flex-start; */
}
.demo-ruleForm-thr>>>.u-form-item__body__left__content__ {
left: -11px;
top: 0px
}
.demo-ruleForm-thr>>>.u-textarea__field {
font-size: 14px;
}
.demo-ruleForm-thr>>>.u-cell__title-text {
font-size: 14px;
}
.bottom-button {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
padding: 10px 16px;
box-sizing: border-box;
background: #f4f7ff;
z-index: 999;
}
</style>