483 lines
14 KiB
Vue
483 lines
14 KiB
Vue
<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-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.OperationStepNAME"
|
||
name="1">
|
||
<u-form-item label="作业名称" prop="OperationStepNAME" borderBottom>
|
||
<u--textarea disabled disabledColor="#fff"
|
||
v-model="item.OperationStepNAME" border="none"
|
||
inputAlign="right" autoHeight></u--textarea>
|
||
</u-form-item>
|
||
<u-form-item label="作业地点" prop="JOB_LOCATION" borderBottom>
|
||
<u--input disabled disabledColor="#fff" v-model="item.JOB_LOCATION"
|
||
border="none" inputAlign="right"></u--input>
|
||
</u-form-item>
|
||
<u-form-item label="作业人" prop="DoUserName" borderBottom>
|
||
<u--textarea disabled disabledColor="#fff"
|
||
v-model="item.DoUserName" border="none"
|
||
inputAlign="right" autoHeight></u--textarea>
|
||
</u-form-item>
|
||
<u-form-item label="监护人" prop="MonitorUserNAME" borderBottom>
|
||
<u--input disabled disabledColor="#fff"
|
||
v-model="item.MonitorUserNAME" border="none"
|
||
inputAlign="right"></u--input>
|
||
</u-form-item>
|
||
<u-form-item label="作业原因" prop="JobCause" borderBottom>
|
||
<u--textarea disabled disabledColor="#fff" v-model="item.JobCause"
|
||
border="none" inputAlign="right" autoHeight></u--textarea>
|
||
</u-form-item>
|
||
<u-form-item label="作业开始时间" prop="JOB_DATE" borderBottom>
|
||
<u--input disabled disabledColor="#fff"
|
||
v-model="item.JOB_DATE" border="none"
|
||
inputAlign="right"></u--input>
|
||
</u-form-item>
|
||
<u-form-item label="作业结束时间" prop="JOB_END_DATE" borderBottom>
|
||
<u--input disabled disabledColor="#fff"
|
||
v-model="item.JOB_END_DATE" 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,
|
||
PagedDangerJob
|
||
} from '../../services/apply'
|
||
import {
|
||
initFilter,
|
||
extendRule
|
||
} from '../../utils/common'
|
||
import config from '../../config/common';
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
OrgId: '',
|
||
pageIndex: 0,
|
||
pageSize: 20,
|
||
total: 0,
|
||
// vodPlayerJs: 'https://player.polyv.net/resp/vod-player/latest/player.js',
|
||
// vid: '', // '3cbccb39d99458bbef9fafad687a63ac_3',
|
||
// FILE_PATH: '',
|
||
// ISLOCAL: true,
|
||
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.PagedCheckMain()//扫二维码 默认赋值
|
||
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
|
||
}
|
||
})
|
||
|
||
this.pageIndex = 0
|
||
this.PagedDangerJob();
|
||
}
|
||
},
|
||
// mounted() {
|
||
// this.loadPlayerScript(this.loadPlayer);
|
||
// },
|
||
// onReady() {
|
||
// //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
|
||
// this.$refs.uForm.setRules(this.rules)
|
||
// },
|
||
methods: {
|
||
PagedDangerJob(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
|
||
json.SelectField = ["Nav_OperationStep.NAME", "JOB_LOCATION", "Nav_MonitorUser.NAME", "JobCause",
|
||
"Nav_CrucialLicensePerson.Nav_User.NAME", "JOB_END_DATE", "JOB_DATE" ]
|
||
PagedDangerJob(json).then(res => {
|
||
if (res.IsSuccessful) {
|
||
this.total = res.TotalCount
|
||
// this.model.ListShow = res.Data
|
||
if (res.Data && res.Data.length > 0) {
|
||
var DoUserName = ''
|
||
var MonitorUserNAME = ''
|
||
var OperationStepNAME=''
|
||
res.Data.forEach(e => {
|
||
// if (e.Nav_Viedo.ISLOCAL) {
|
||
// e.Nav_Viedo.FILE_PATH = config.uni_app_web_source_url + e.Nav_Viedo
|
||
// .FILE_PATH
|
||
// }
|
||
DoUserName = ''
|
||
if (e.Nav_CrucialLicensePerson != null && e.Nav_CrucialLicensePerson
|
||
.length > 0) {
|
||
e.Nav_CrucialLicensePerson.forEach(e => {
|
||
if(e.USER_ID){
|
||
DoUserName += (DoUserName.length > 0 ? " " : "") + e.Nav_User.NAME
|
||
}
|
||
})
|
||
}
|
||
e.DoUserName = DoUserName
|
||
|
||
MonitorUserNAME=''
|
||
if(e.Nav_MonitorUser!=null&&e.Nav_MonitorUser.NAME!=null)
|
||
{
|
||
MonitorUserNAME=e.Nav_MonitorUser.NAME
|
||
}
|
||
e.MonitorUserNAME = MonitorUserNAME
|
||
|
||
OperationStepNAME=''
|
||
if(e.Nav_OperationStep!=null&&e.Nav_OperationStep.NAME!=null)
|
||
{
|
||
OperationStepNAME=e.Nav_OperationStep.NAME
|
||
}
|
||
e.OperationStepNAME = OperationStepNAME
|
||
})
|
||
}
|
||
|
||
if (paginate) {
|
||
this.model.ListShow = this.model.ListShow.concat(res.Data)
|
||
} else {
|
||
this.model.ListShow = res.Data
|
||
}
|
||
// this.loadPlayerScript(this.loadPlayer);//保利威信息对接
|
||
if (res.TotalCount == 0)
|
||
uni.$showMsg("未获取到数据", 'none')
|
||
// else {
|
||
// for (let i = 0; i < this.model.ListShow.length; i++) {
|
||
// if (!this.model.ListShow[i].Nav_Viedo.ISLOCAL)
|
||
// this.loadPlayerP(i,this.model.ListShow[i].Nav_Viedo.FILE_PATH);
|
||
// }
|
||
// }
|
||
} else {
|
||
this.model.ListShow = [{
|
||
CHECKCONTENT: '',
|
||
DESCREPTION: ''
|
||
}]
|
||
}
|
||
})
|
||
},
|
||
|
||
doTrueOrFalse() {
|
||
this.pageIndex = 0
|
||
if (this.model.RISK_AREA_ID != undefined && this.model.RISK_AREA_ID.length > 0)
|
||
this.PagedDangerJob();
|
||
},
|
||
|
||
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) {
|
||
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 {
|
||
// 暂无数据
|
||
}
|
||
},
|
||
startPlay(item) {
|
||
var vid = ''
|
||
if (item.Nav_Viedo.FILE_PATH.indexOf('=') > -1)
|
||
vid = item.Nav_Viedo.FILE_PATH.split('=')[1]
|
||
if (vid.length > 0) {
|
||
uni.navigateTo({
|
||
url: 'viewVideoplyplayer?vid=' + vid
|
||
});
|
||
}
|
||
},
|
||
handleSelected(e) {
|
||
this.selectorInfo.showPopup = false
|
||
this.model.RISK_AREA_NAME = e.NAME
|
||
this.model.RISK_AREA_ID = e.ID
|
||
this.PagedDangerJob()
|
||
// this.WorkerScheduling()
|
||
},
|
||
// playVideo(FILE_PATH) {
|
||
// var vid = ''
|
||
// if (FILE_PATH.indexOf('=') > -1)
|
||
// vid = FILE_PATH.split('=')[1]
|
||
// if (vid.length > 0) {
|
||
// uni.navigateTo({
|
||
// url: 'ext-ply-player?id=' + vid
|
||
// });
|
||
// }
|
||
// },
|
||
|
||
// loadPlayerScript(callback) {
|
||
// if (!window.polyvPlayer) {
|
||
// const myScript = document.createElement('script');
|
||
// myScript.setAttribute('src', this.vodPlayerJs);
|
||
// myScript.onload = callback;
|
||
// document.body.appendChild(myScript);
|
||
// } else {
|
||
// callback();
|
||
// }
|
||
// },
|
||
// loadPlayer() {
|
||
// const polyvPlayer = window.polyvPlayer;
|
||
// this.player = polyvPlayer({
|
||
// wrap: '#player',
|
||
// width: 300,
|
||
// height: 300,
|
||
// vid: this.vid,
|
||
// });
|
||
// },
|
||
|
||
// loadPlayerScriptIni() {
|
||
// if (!window.polyvPlayer) {
|
||
// const myScript = document.createElement('script');
|
||
// myScript.setAttribute('src', this.vodPlayerJs);
|
||
// // myScript.onload = callbackP(index);
|
||
// document.body.appendChild(myScript);
|
||
// }
|
||
// },
|
||
// loadPlayerScriptP(index, callbackP) {
|
||
// debugger
|
||
// if (!window.polyvPlayer) {
|
||
// const myScript = document.createElement('script');
|
||
// myScript.setAttribute('src', this.vodPlayerJs);
|
||
// myScript.onload = callbackP(index);
|
||
// document.body.appendChild(myScript);
|
||
// } else {
|
||
// callbackP(index);
|
||
// }
|
||
// },
|
||
// loadPlayerP(index, path) {
|
||
// const polyvPlayer = window.polyvPlayer;
|
||
// debugger
|
||
// var eleId = '#player' + index
|
||
// var eVid = path.split('=')[1]
|
||
// this.player = polyvPlayer({
|
||
// wrap: eleId,
|
||
// width: 300,
|
||
// height: 300,
|
||
// vid: eVid,
|
||
// });
|
||
// }
|
||
|
||
},
|
||
onReachBottom() {
|
||
if (this.total > this.pageSize * this.pageIndex)
|
||
this.PagedDangerJob(true)
|
||
},
|
||
// destroyed() {
|
||
// if (this.player) {
|
||
// this.player.destroy();
|
||
// }
|
||
// }
|
||
}
|
||
</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> |