qrcode-app/pages/apply/viewEvaluation.vue
2025-10-25 09:29:49 +08:00

369 lines
11 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 disabled 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.RISK_NAME" name="1">
<!-- <uni-collapse-item :title="(index+1) + '. ' + item.Nav_RiskName.NAME" name="1"> -->
<!-- <u-form-item label="风险名称" prop="Nav_RiskName.NAME" borderBottom>
<u--textarea disabled disabledColor="#fff"
v-model="item.Nav_RiskName.NAME" border="none" inputAlign="right"
autoHeight></u--textarea>
</u-form-item> -->
<u-form-item label="风险名称" prop="RISK_NAME" borderBottom>
<u--textarea disabled disabledColor="#fff"
v-model="item.RISK_NAME" border="none" inputAlign="right"
autoHeight></u--textarea>
</u-form-item>
<u-form-item label="风险描述" prop="RISK_DESCRIPTION" borderBottom>
<u--textarea disabled disabledColor="#fff"
v-model="item.RISK_DESCRIPTION" border="none" inputAlign="right"
autoHeight></u--textarea>
</u-form-item>
<u-form-item label="风险类别" prop="Nav_Type.NAME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.Nav_Type.NAME"
border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="风险等级" prop="EVALUATE_LEVEL_SHOW" borderBottom>
<u--input disabled disabledColor="#fff"
v-model="item.EVALUATE_LEVEL_SHOW" border="none"
inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="管控措施" prop="MEASURES_NAME" borderBottom>
<!-- Nav_Details.MEASURES_NAME -->
<u--textarea disabled disabledColor="#fff"
v-model="item.MEASURES_NAME" border="none"
inputAlign="right" autoHeight></u--textarea>
</u-form-item>
<u-form-item label="应急处置" prop="EMERGENCY" borderBottom>
<u--textarea disabled disabledColor="#fff" v-model="item.EMERGENCY"
border="none" inputAlign="right" autoHeight></u--textarea>
</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,
PagedEvaluateRisk
} 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 && option.RISK_AREA_ID != undefined)
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.PagedEvaluateRisk() //扫二维码 默认赋值
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: {
PagedEvaluateRisk(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 = this.pageSize
// "Nav_RiskName.NAME",
json.SelectField = ['RISK_NAME','EVALUATE_LEVEL', 'Nav_Type.NAME', 'EMERGENCY',
'RISK_DESCRIPTION', 'Nav_Details.MEASURES_NAME'
]
PagedEvaluateRisk(json).then(res => {
if (res.IsSuccessful) {
this.total = res.TotalCount
res.Data.forEach(e=>{
e.MEASURES_NAME=this.showProp(e.Nav_Details, 'MEASURES_NAME')
})
if (paginate) {
this.model.ListShow = this.model.ListShow.concat(res.Data)
} else {
this.model.ListShow = res.Data
}
if (res.TotalCount == 0)
uni.$showMsg("未获取到数据", 'none')
} else {
this.model.ListShow = [{
CHECKCONTENT: '',
DESCREPTION: '',
MEASURES_NAME: '',
EMERGENCY: '',
RISK_DESCRIPTION: ''
}]
}
})
},
doTrueOrFalse() {
this.pageIndex = 0
if (this.model.RISK_AREA_ID != undefined && this.model.RISK_AREA_ID.length > 0)
this.PagedEvaluateRisk();
},
closePicker() {
this.comPickerInfo = {
showSheet: false,
columns: [],
title: '',
name: '',
formIndex: undefined
}
},
//显示组件
handleChange() {
this.selectorInfo.showPopup = true
this.selectorInfo.title = '班组名称'
this.handleSearch()
},
showProp(Details, prop) {
//Nav_Details.MEASURES_NAME
var Show = ''
if (Details != null && Details.length > 0) {
Details.forEach(e => {
Show += (Show.length > 0 ? ' ' : '') + e[prop]
})
}
return Show
},
//数据加载
handleSearch(val, pageIndex) {
var p = {
name: this.selectorInfo.name,
title: this.selectorInfo.title,
val: val,
pageIndex: pageIndex
}
this.handleShowSheet(p)
},
async handleShowSheet(p) {
this.pageIndex = 0
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.PagedEvaluateRisk()
// this.WorkerScheduling()
}
},
onReachBottom() {
if (this.total > this.pageSize * this.pageIndex)
this.PagedEvaluateRisk(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 10px 10px 10px;
/* 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>