This commit is contained in:
何美荣 2026-06-01 17:37:39 +08:00
commit a5ca30b13f
4 changed files with 437 additions and 165 deletions

View File

@ -2,8 +2,8 @@
"name" : "矿山安全生产标准化系统", "name" : "矿山安全生产标准化系统",
"appid" : "__UNI__DE7034E", //BBB1077 "appid" : "__UNI__DE7034E", //BBB1077
"description" : "厦钨矿山安全app", "description" : "厦钨矿山安全app",
"versionName" : "1.0.008", "versionName" : "1.0.009",
"versionCode" : 10008, "versionCode" : 10009,
"transformPx" : false, "transformPx" : false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {

View File

@ -2,7 +2,7 @@
<view class="todo-page"> <view class="todo-page">
<view class="background"></view> <view class="background"></view>
<view class="allview"> <view class="allview">
<view class="card" > <view class="card">
<u--form labelWidth="auto" :model="model" ref="wForm" class="demo-ruleForm"> <u--form labelWidth="auto" :model="model" ref="wForm" class="demo-ruleForm">
<view style="position: relative;"> <view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view> <view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
@ -12,27 +12,77 @@
<u-form-item required label="调查名称" prop="LOCATION" borderBottom> <u-form-item required label="调查名称" prop="LOCATION" borderBottom>
<u--input disabledColor="#ffffff" v-model="model.NAME" border="none" inputAlign="right" fontSize="14px" placeholder="请输入调查名称"></u--input> <u--input disabledColor="#ffffff" v-model="model.NAME" border="none" inputAlign="right" fontSize="14px" placeholder="请输入调查名称"></u--input>
</u-form-item> </u-form-item>
<u-form-item required label="截止时间" prop="ENDTIME" borderBottom @click="showCheckDate(1)"> <u-form-item required label="截止时间" prop="ENDTIME" borderBottom @click="showCheckDate(1)">
<u--input disabled disabledColor="#fff" v-model="model.END_TIME" placeholder="请选择时间" border="none" inputAlign="right" fontSize="14px"></u--input> <u--input disabled disabledColor="#fff" v-model="model.END_TIME" placeholder="请选择时间" border="none" inputAlign="right" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12"></u-icon> <u-icon style="margin-left: 4px;" name="arrow-down" size="12"></u-icon>
</u-form-item> </u-form-item>
<u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})" > <u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})">
<u-icon name="arrow-down" size="12" slot="right"></u-icon> <u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item> </u-form-item>
<view class="tag-view" v-if="model.Nav_JoinDepartment"> <view class="tag-view" v-if="model.Nav_JoinDepartment">
<uni-tag class="tag" v-for="(i, k) in model.Nav_JoinDepartment.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Department.NAME" type="primary" /> <uni-tag class="tag" v-for="(i, k) in model.Nav_JoinDepartment.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Department.NAME" type="primary" />
</view> </view>
<u-form-item required label="调查内容" @click="handleShowSheet({title: '调查内容', name: 'Nav_Points'})" > <u-form-item required label="调查内容" @click="handleShowSheet({title: '调查内容', name: 'Nav_Points'})">
<u-icon name="arrow-down" size="12" slot="right"></u-icon> <u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item> </u-form-item>
<view class="tag-view" v-if="model.Nav_Points"> <view class="tag-view" v-if="model.Nav_Points">
<uni-tag class="tag" v-for="(i, k) in model.Nav_Points.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Point.NAME" type="primary" /> <uni-tag class="tag" v-for="(i, k) in model.Nav_Points.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Point.NAME" type="primary" />
</view> </view>
<u-form-item label="含下级组织成员" v-if="model.STATUS == undefined||model.STATUS == '0'">
<u-switch v-model="model.IS_DOWN" @change="changeDown" slot="right"></u-switch>
</u-form-item>
</u--form>
<u--form labelWidth="auto" :model="model" ref="wForm" class="sub-form">
<view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
</view>
<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;margin-top: 20px;">参与人员</view>
<uni-collapse :border="false" accordion>
<view v-for="(item, index) in model.Nav_ListUsers.filter(i => !i.IS_DELETED)" :key="index">
<uni-collapse-item title-border="none" :border="false">
<template v-slot:title>
<view class="uni-collapse-item__title-box">
<view class="uni-collapse-item__title-text">
{{index+1+'.'+(item.Nav_Department||{}).NAME+'-'+(item.Nav_User||{}).NAME}}
</view>
<view @click.stop>
<u-icon @click="handleDelRowBefore(item)" name="trash" color="#ff4d4f" size="21" style="margin-right: 10px;"></u-icon>
</view>
</view>
</template>
<view class="content" style="padding: 0px 0px 0px 10px;">
<u-form-item label="组织" prop="Product_Unit" @click="handleShowSheet({title: '组织', name: 'Nav_Department',itemData:item})" borderBottom>
<u--input v-model="(item.Nav_Department||{}).NAME" disabled disabledColor="#ffffff" placeholder="请选择组织" border="none" inputAlign="right" fontSize="14px">
</u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12">
</u-icon>
</u-form-item>
<u-form-item label="人员" prop="Product_Unit" @click="handleShowSheet({title: '人员', name: 'Nav_User',itemData:item})" borderBottom>
<u--input v-model="(item.Nav_User||{}).NAME" disabled disabledColor="#ffffff" placeholder="请选择人员" border="none" inputAlign="right" fontSize="14px">
</u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12">
</u-icon>
</u-form-item>
</view>
</uni-collapse-item>
</view>
</uni-collapse>
<view style="padding: 10px 16px;display: flex;flex-direction: row;">
<u-button type="primary" @click="handleNew" color="#3d4b70" :plain="true" style="margin-right: 5px;">新增</u-button>
<!-- <u-button type="primary" @click="handleNewCheckList" color="#3d4b70" style="margin-left: 5px;">检查清单</u-button> -->
</view>
</u--form> </u--form>
</view> </view>
<view style="padding: 10px 16px;" class="bottom-button"> <view style="padding: 10px 16px;" class="bottom-button">
<u-button type="primary" @click="submit" color="#3d4b70" :loading="stepLoad">提交</u-button> <u-button type="primary" @click="submit" color="#3d4b70" :loading="stepLoad">提交</u-button>
</view> </view>
<query-selector :multiple="selectorInfo.isMultiple" :show="selectorInfo.showPopup" :title="selectorInfo.title" :lists="selectorInfo.dataLists" :defaultChecked="selectorInfo.defaultChecked" <query-selector :multiple="selectorInfo.isMultiple" :show="selectorInfo.showPopup" :title="selectorInfo.title" :lists="selectorInfo.dataLists" :defaultChecked="selectorInfo.defaultChecked"
@ -88,9 +138,10 @@
model: { model: {
Nav_JoinDepartment: [], Nav_JoinDepartment: [],
Nav_Points: [], Nav_Points: [],
NAME:'', NAME: '',
END_TIME:'', END_TIME: '',
Nav_ListUsers: []
}, },
peopleSelectOption: { peopleSelectOption: {
showSelector: false, showSelector: false,
@ -148,8 +199,7 @@
loadData() { loadData() {
if (this.ID == undefined || this.ID == '') { if (this.ID == undefined || this.ID == '') {
this.stepLoad = false this.stepLoad = false
if (this.ID == undefined || this.ID == '') this.ID = guid()
this.ID = guid()
this.model.ID = this.ID this.model.ID = this.ID
} else { } else {
const orgId = uni.getStorageSync('orgId') const orgId = uni.getStorageSync('orgId')
@ -160,6 +210,9 @@
extendInclude(json, 'Nav_Points'); extendInclude(json, 'Nav_Points');
extendInclude(json, 'Nav_Points.Nav_Point'); extendInclude(json, 'Nav_Points.Nav_Point');
extendInclude(json, 'Nav_LaunchUser'); extendInclude(json, 'Nav_LaunchUser');
extendInclude(json, 'Nav_ListUsers');
extendInclude(json, 'Nav_ListUsers.Nav_Department');
extendInclude(json, 'Nav_ListUsers.Nav_User');
extendIgnoreDataRule(json) extendIgnoreDataRule(json)
// extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_Question'); // extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_Question');
@ -186,6 +239,20 @@
} }
}, },
changeDown(e) {
this.getOperationList()
},
handleDelRowBefore(item) {
item.IS_DELETED = true
let indexNotDel = 1
this.model.Nav_ListUsers.forEach((e, i) => {
if (!e.IS_DELETED) {
e.ROW_NO = indexNotDel
indexNotDel++
}
})
this.$forceUpdate()
},
async handleShowSheet(p) { async handleShowSheet(p) {
const orgId = uni.getStorageSync('orgId') const orgId = uni.getStorageSync('orgId')
@ -205,18 +272,24 @@
json.Start = (p.pageIndex - 1) * json.Limit; json.Start = (p.pageIndex - 1) * json.Limit;
} }
json.Sort = 'NAME' json.Sort = 'NAME'
if (p.name == 'Nav_JoinDepartment') { if (p.name == 'Nav_JoinDepartment' || p.name == 'Nav_Department') {
this.selectorInfo.isMultiple = true
extendRule(json, 'ENABLE_STATUS', 1, '0')
if (p.name == 'Nav_JoinDepartment') {
this.selectorInfo.isMultiple = true
extendRule(json, 'ENABLE_STATUS', 1, '0')
json.Sort = 'ID'
json.SelectField = ["ID", "NAME", "NAME"]
}
dataSelect = await getRequestOrderPage(json, "/FM/Department/OrderPaged").then(res => { dataSelect = await getRequestOrderPage(json, "/FM/Department/OrderPaged").then(res => {
this.selectorInfo.totalCount = res.TotalCount this.selectorInfo.totalCount = res.TotalCount
if (res != undefined && res.Data.length > 0) { if (res != undefined && res.Data.length > 0) {
for (let i = 0; i < res.Data.length; i++) { for (let i = 0; i < res.Data.length; i++) {
res.Data[i].NAME = res.Data[i].NAME res.Data[i].NAME = res.Data[i].NAME
res.Data[i].name = res.Data[i].NAME
} }
} else { } else {
uni.showToast({ uni.showToast({
@ -226,21 +299,24 @@
} }
return res.Data return res.Data
}) })
if (this.model.Nav_JoinDepartment && this.model.Nav_JoinDepartment.length > 0 && this.model.Nav_JoinDepartment[0] if (p.name == 'Nav_JoinDepartment') {
.Nav_Department != null) { if (this.model.Nav_JoinDepartment && this.model.Nav_JoinDepartment.length > 0 && this.model.Nav_JoinDepartment[0]
// this.selectorInfo.defaultChecked = [] .Nav_Department != null) {
this.model.Nav_JoinDepartment.forEach(e => { // this.selectorInfo.defaultChecked = []
defaultChecked.push(e.Nav_Department) this.model.Nav_JoinDepartment.forEach(e => {
}) defaultChecked.push(e.Nav_Department)
} else { })
defaultChecked = null } else {
defaultChecked = null
}
} }
} else if (p.name == 'Nav_Points') { } else if (p.name == 'Nav_Points') {
this.selectorInfo.isMultiple = true this.selectorInfo.isMultiple = true
extendRule(json, 'TYPE', 1, '1') extendRule(json, 'TYPE', 1, '1')
dataSelect = await getRequestOrderPage(json, "/SE/TestEnumPoint/OrderPaged").then(res => { dataSelect = await getRequestOrderPage(json, "/SE/TestEnumPoint/OrderPaged").then(res => {
this.selectorInfo.totalCount = res.TotalCount this.selectorInfo.totalCount = res.TotalCount
if (res != undefined && res.Data.length > 0) { if (res != undefined && res.Data.length > 0) {
@ -264,6 +340,25 @@
} else { } else {
defaultChecked = null defaultChecked = null
} }
} else if (p.name == 'Nav_User') {
if (p.itemData.DEPARTMENT_ID) {
extendRule(json, 'DEPARTMENT_ID', 1, p.itemData.DEPARTMENT_ID)
}
json.OrgRule = []
dataSelect = await getRequestOrderPage(json, "/FM/FMUser/OrderPagedUseful").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
}
} else {
uni.showToast({
title: '暂无信息',
icon: 'none'
})
}
return res.Data
})
} }
if (defaultChecked == null) if (defaultChecked == null)
defaultChecked = [] defaultChecked = []
@ -314,6 +409,7 @@
}) })
} }
this.model.Nav_JoinDepartment = listArea this.model.Nav_JoinDepartment = listArea
this.getOperationList()
// this.model.RiskAreaNAME = areaShow // this.model.RiskAreaNAME = areaShow
} else if (this.selectorInfo.name == 'Nav_Points') { } else if (this.selectorInfo.name == 'Nav_Points') {
let listArea = [] let listArea = []
@ -331,9 +427,45 @@
}) })
} }
this.model.Nav_Points = listArea this.model.Nav_Points = listArea
} } else if (this.selectorInfo.name == 'Nav_Department') {
this.selectorInfo.itemData.Nav_Department = e
this.selectorInfo.itemData.DEPARTMENT_ID = e.ID
} else if (this.selectorInfo.name == 'Nav_User') {
this.selectorInfo.itemData.Nav_User = e
this.selectorInfo.itemData.USER_ID = e.ID
}
},
handleNew() {
this.model.Nav_ListUsers.push({
Nav_Department: {
NAME: ''
},
Nav_User: {
NAME: ''
},
USER_ID: '',
DEPARTMENT_ID: ''
})
},
getOperationList() {
let keyWord = ''
if (this.model.Nav_JoinDepartment != null && this.model.Nav_JoinDepartment.length > 0) {
this.model.Nav_JoinDepartment.forEach(e => {
if (e.IS_DELETED == null || e.IS_DELETED == false)
keyWord += e.DEPARTMENT_ID + '|'
})
}
if (keyWord.length > 0) {
const orgId = uni.getStorageSync('orgId')
const json = initFilter(orgId, keyWord, null, null, null, (this.model.IS_DOWN == null ? 'false' : this.model.IS_DOWN), this.model.ID)
extendRule(json, 'id', 1, this.model.ID);
getRequestOrderPage(json, "/SE/SESafeSurvey/GetListDemand").then(res => {
this.model.Nav_ListUsers = res.Data
})
}
}, },
showCheckDate(dataIndex, item) { showCheckDate(dataIndex, item) {
this.dateTimePickerInfo = { this.dateTimePickerInfo = {
@ -355,17 +487,18 @@
}, },
submit() { submit() {
this.modelEdit = JSON.parse(JSON.stringify(this.model)) this.modelEdit = JSON.parse(JSON.stringify(this.model))
// if(this.modelEdit.Nav_JoinDepartment&&this.modelEdit.Nav_JoinDepartment.length>0){ if (this.modelEdit.Nav_ListUsers && this.modelEdit.Nav_ListUsers.length > 0) {
// this.modelEdit.Nav_JoinDepartment.map(item=>{ this.modelEdit.Nav_ListUsers.map(item => {
// delete item.Nav_Department delete item.Nav_Department
// }) delete item.Nav_User
// } })
}
// if(this.modelEdit.Nav_Points&&this.modelEdit.Nav_Points.length>0){ // if(this.modelEdit.Nav_Points&&this.modelEdit.Nav_Points.length>0){
// this.modelEdit.Nav_Points.map(item=>{ // this.modelEdit.Nav_Points.map(item=>{
// delete item.Nav_Point // delete item.Nav_Point
// }) // })
// } // }
if (this.TaskID == null || this.TaskID == '') { if (this.TaskID == null || this.TaskID == '') {

View File

@ -2,7 +2,7 @@
<view class="todo-page"> <view class="todo-page">
<view class="background"></view> <view class="background"></view>
<view class="allview"> <view class="allview">
<view class="card" > <view class="card">
<u--form labelWidth="auto" :model="model" ref="wForm" class="demo-ruleForm"> <u--form labelWidth="auto" :model="model" ref="wForm" class="demo-ruleForm">
<view style="position: relative;"> <view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view> <view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
@ -12,27 +12,78 @@
<u-form-item required label="调查名称" prop="LOCATION" borderBottom> <u-form-item required label="调查名称" prop="LOCATION" borderBottom>
<u--input disabledColor="#ffffff" v-model="model.NAME" border="none" inputAlign="right" fontSize="14px" placeholder="请输入调查名称"></u--input> <u--input disabledColor="#ffffff" v-model="model.NAME" border="none" inputAlign="right" fontSize="14px" placeholder="请输入调查名称"></u--input>
</u-form-item> </u-form-item>
<u-form-item required label="截止时间" prop="ENDTIME" borderBottom @click="showCheckDate(1)"> <u-form-item required label="截止时间" prop="ENDTIME" borderBottom @click="showCheckDate(1)">
<u--input disabled disabledColor="#fff" v-model="model.END_TIME" placeholder="请选择时间" border="none" inputAlign="right" fontSize="14px"></u--input> <u--input disabled disabledColor="#fff" v-model="model.END_TIME" placeholder="请选择时间" border="none" inputAlign="right" fontSize="14px"></u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12"></u-icon> <u-icon style="margin-left: 4px;" name="arrow-down" size="12"></u-icon>
</u-form-item> </u-form-item>
<u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})" > <u-form-item required label="参与部门" @click="handleShowSheet({title: '参与部门', name: 'Nav_JoinDepartment'})">
<u-icon name="arrow-down" size="12" slot="right"></u-icon> <u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item> </u-form-item>
<view class="tag-view" v-if="model.Nav_JoinDepartment"> <view class="tag-view" v-if="model.Nav_JoinDepartment">
<uni-tag class="tag" v-for="(i, k) in model.Nav_JoinDepartment.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Department.NAME" type="primary" /> <uni-tag class="tag" v-for="(i, k) in model.Nav_JoinDepartment.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Department.NAME" type="primary" />
</view> </view>
<u-form-item required label="调查目的" @click="handleShowSheet({title: '调查目的', name: 'Nav_Points'})" > <u-form-item required label="调查目的" @click="handleShowSheet({title: '调查目的', name: 'Nav_Points'})">
<u-icon name="arrow-down" size="12" slot="right"></u-icon> <u-icon name="arrow-down" size="12" slot="right"></u-icon>
</u-form-item> </u-form-item>
<view class="tag-view" v-if="model.Nav_Points"> <view class="tag-view" v-if="model.Nav_Points">
<uni-tag class="tag" v-for="(i, k) in model.Nav_Points.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Point.NAME" type="primary" /> <uni-tag class="tag" v-for="(i, k) in model.Nav_Points.filter(i => !i.IS_DELETED)" :key="k" :inverted="true" :text="i.Nav_Point.NAME" type="primary" />
</view> </view>
<u-form-item label="含下级组织成员" v-if="model.STATUS == undefined||model.STATUS == '0'">
<u-switch v-model="model.IS_DOWN" @change="changeDown" slot="right"></u-switch>
</u-form-item>
</u--form> </u--form>
<u--form labelWidth="auto" :model="model" ref="wForm" class="sub-form">
<view style="position: relative;">
<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
</view>
<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;margin-top: 20px;">参与人员</view>
<uni-collapse :border="false" accordion>
<view v-for="(item, index) in model.Nav_Demands.filter(i => !i.IS_DELETED)" :key="index">
<uni-collapse-item title-border="none" :border="false">
<template v-slot:title>
<view class="uni-collapse-item__title-box">
<view class="uni-collapse-item__title-text">
{{index+1+'.'+(item.Nav_Department||{}).NAME+'-'+(item.Nav_User||{}).NAME}}
</view>
<view @click.stop>
<u-icon @click="handleDelRowBefore(item)" name="trash" color="#ff4d4f" size="21" style="margin-right: 10px;"></u-icon>
</view>
</view>
</template>
<view class="content" style="padding: 0px 0px 0px 10px;">
<u-form-item label="组织" prop="Product_Unit" @click="handleShowSheet({title: '组织', name: 'Nav_Department',itemData:item})" borderBottom>
<u--input v-model="(item.Nav_Department||{}).NAME" disabled disabledColor="#ffffff" placeholder="请选择组织" border="none" inputAlign="right" fontSize="14px">
</u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12">
</u-icon>
</u-form-item>
<u-form-item label="人员" prop="Product_Unit" @click="handleShowSheet({title: '人员', name: 'Nav_User',itemData:item})" borderBottom>
<u--input v-model="(item.Nav_User||{}).NAME" disabled disabledColor="#ffffff" placeholder="请选择人员" border="none" inputAlign="right" fontSize="14px">
</u--input>
<u-icon style="margin-left: 4px;" name="arrow-down" size="12">
</u-icon>
</u-form-item>
</view>
</uni-collapse-item>
</view>
</uni-collapse>
<view style="padding: 10px 16px;display: flex;flex-direction: row;">
<u-button type="primary" @click="handleNew" color="#3d4b70" :plain="true" style="margin-right: 5px;">新增</u-button>
<!-- <u-button type="primary" @click="handleNewCheckList" color="#3d4b70" style="margin-left: 5px;">检查清单</u-button> -->
</view>
</u--form>
</view> </view>
<view style="padding: 10px 16px;" class="bottom-button"> <view style="padding: 10px 16px;" class="bottom-button">
<u-button type="primary" @click="submit" color="#3d4b70" :loading="stepLoad">提交</u-button> <u-button type="primary" @click="submit" color="#3d4b70" :loading="stepLoad">提交</u-button>
</view> </view>
<query-selector :multiple="selectorInfo.isMultiple" :show="selectorInfo.showPopup" :title="selectorInfo.title" :lists="selectorInfo.dataLists" :defaultChecked="selectorInfo.defaultChecked" <query-selector :multiple="selectorInfo.isMultiple" :show="selectorInfo.showPopup" :title="selectorInfo.title" :lists="selectorInfo.dataLists" :defaultChecked="selectorInfo.defaultChecked"
@ -88,9 +139,10 @@
model: { model: {
Nav_JoinDepartment: [], Nav_JoinDepartment: [],
Nav_Points: [], Nav_Points: [],
NAME:'', NAME: '',
END_TIME:'', END_TIME: '',
Nav_Demands: []
}, },
peopleSelectOption: { peopleSelectOption: {
showSelector: false, showSelector: false,
@ -156,10 +208,14 @@
const json = initFilter(orgId, "", "") const json = initFilter(orgId, "", "")
extendRule(json, 'ID', 1, this.ID); extendRule(json, 'ID', 1, this.ID);
extendInclude(json, 'Nav_JoinDepartment.Nav_Department'); extendInclude(json, 'Nav_JoinDepartment.Nav_Department');
extendInclude(json, 'Nav_Points.Nav_Point');
extendInclude(json, 'Nav_LaunchDepartment');
extendInclude(json, 'Nav_LaunchUser');
extendInclude(json, 'Nav_JoinDepartment'); extendInclude(json, 'Nav_JoinDepartment');
extendInclude(json, 'Nav_Points'); extendInclude(json, 'Nav_Points');
extendInclude(json, 'Nav_Points.Nav_Point'); extendInclude(json, 'Nav_Demands');
extendInclude(json, 'Nav_LaunchUser'); extendInclude(json, 'Nav_Demands.Nav_Department');
extendInclude(json, 'Nav_Demands.Nav_User');
extendIgnoreDataRule(json) extendIgnoreDataRule(json)
// extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_Question'); // extendInclude(json, 'Nav_Details.Nav_DetailContents.Nav_Question');
@ -186,6 +242,20 @@
} }
}, },
changeDown(e) {
this.getOperationList()
},
handleDelRowBefore(item) {
item.IS_DELETED = true
let indexNotDel = 1
this.model.Nav_Demands.forEach((e, i) => {
if (!e.IS_DELETED) {
e.ROW_NO = indexNotDel
indexNotDel++
}
})
this.$forceUpdate()
},
async handleShowSheet(p) { async handleShowSheet(p) {
const orgId = uni.getStorageSync('orgId') const orgId = uni.getStorageSync('orgId')
@ -205,18 +275,22 @@
json.Start = (p.pageIndex - 1) * json.Limit; json.Start = (p.pageIndex - 1) * json.Limit;
} }
json.Sort = 'NAME' json.Sort = 'NAME'
if (p.name == 'Nav_JoinDepartment') { if (p.name == 'Nav_JoinDepartment' || p.name == 'Nav_Department') {
if (p.name == 'Nav_JoinDepartment') {
this.selectorInfo.isMultiple = true this.selectorInfo.isMultiple = true
extendRule(json, 'ENABLE_STATUS', 1, '0')
json.Sort = 'ID'
json.SelectField = ["ID", "NAME", "NAME"]
}
extendRule(json, 'ENABLE_STATUS', 1, '0')
dataSelect = await getRequestOrderPage(json, "/FM/Department/OrderPaged").then(res => { dataSelect = await getRequestOrderPage(json, "/FM/Department/OrderPaged").then(res => {
this.selectorInfo.totalCount = res.TotalCount this.selectorInfo.totalCount = res.TotalCount
if (res != undefined && res.Data.length > 0) { if (res != undefined && res.Data.length > 0) {
for (let i = 0; i < res.Data.length; i++) { for (let i = 0; i < res.Data.length; i++) {
res.Data[i].NAME = res.Data[i].NAME res.Data[i].NAME = res.Data[i].NAME
res.Data[i].name = res.Data[i].NAME
} }
} else { } else {
uni.showToast({ uni.showToast({
@ -226,23 +300,26 @@
} }
return res.Data return res.Data
}) })
if (this.model.Nav_JoinDepartment && this.model.Nav_JoinDepartment.length > 0 && this.model.Nav_JoinDepartment[0] if (p.name == 'Nav_JoinDepartment') {
.Nav_Department != null) { if (this.model.Nav_JoinDepartment && this.model.Nav_JoinDepartment.length > 0 && this.model.Nav_JoinDepartment[0]
// this.selectorInfo.defaultChecked = [] .Nav_Department != null) {
this.model.Nav_JoinDepartment.forEach(e => { // this.selectorInfo.defaultChecked = []
defaultChecked.push(e.Nav_Department) this.model.Nav_JoinDepartment.forEach(e => {
}) defaultChecked.push(e.Nav_Department)
} else { })
defaultChecked = null } else {
defaultChecked = null
}
} }
} else if (p.name == 'Nav_Points') { } else if (p.name == 'Nav_Points') {
this.selectorInfo.isMultiple = true this.selectorInfo.isMultiple = true
json.Sort = "ID" json.Sort = "ID"
extendRule(json, 'TYPE', 1, '2') extendRule(json, 'TYPE', 1, '2')
dataSelect = await getRequestOrderPage(json, "/SE/TestEnumPoint/OrderPaged").then(res => { dataSelect = await getRequestOrderPage(json, "/SE/TestEnumPoint/OrderPaged").then(res => {
this.selectorInfo.totalCount = res.TotalCount this.selectorInfo.totalCount = res.TotalCount
if (res != undefined && res.Data.length > 0) { if (res != undefined && res.Data.length > 0) {
@ -266,6 +343,25 @@
} else { } else {
defaultChecked = null defaultChecked = null
} }
}else if (p.name == 'Nav_User') {
if (p.itemData.DEPARTMENT_ID) {
extendRule(json, 'DEPARTMENT_ID', 1, p.itemData.DEPARTMENT_ID)
}
json.OrgRule = []
dataSelect = await getRequestOrderPage(json, "/FM/FMUser/OrderPagedUseful").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
}
} else {
uni.showToast({
title: '暂无信息',
icon: 'none'
})
}
return res.Data
})
} }
if (defaultChecked == null) if (defaultChecked == null)
defaultChecked = [] defaultChecked = []
@ -316,6 +412,7 @@
}) })
} }
this.model.Nav_JoinDepartment = listArea this.model.Nav_JoinDepartment = listArea
this.getOperationList()
// this.model.RiskAreaNAME = areaShow // this.model.RiskAreaNAME = areaShow
} else if (this.selectorInfo.name == 'Nav_Points') { } else if (this.selectorInfo.name == 'Nav_Points') {
let listArea = [] let listArea = []
@ -333,7 +430,13 @@
}) })
} }
this.model.Nav_Points = listArea this.model.Nav_Points = listArea
} } else if (this.selectorInfo.name == 'Nav_Department') {
this.selectorInfo.itemData.Nav_Department = e
this.selectorInfo.itemData.DEPARTMENT_ID = e.ID
} else if (this.selectorInfo.name == 'Nav_User') {
this.selectorInfo.itemData.Nav_User = e
this.selectorInfo.itemData.USER_ID = e.ID
}
}, },
@ -354,9 +457,45 @@
} }
this.dateTimePickerInfo.showCheckDate = false this.dateTimePickerInfo.showCheckDate = false
},
handleNew() {
this.model.Nav_Demands.push({
Nav_Department: {
NAME: ''
},
Nav_User: {
NAME: ''
},
USER_ID: '',
DEPARTMENT_ID: ''
})
},
getOperationList() {
let keyWord = ''
if (this.model.Nav_JoinDepartment != null && this.model.Nav_JoinDepartment.length > 0) {
this.model.Nav_JoinDepartment.forEach(e => {
if (e.IS_DELETED == null || e.IS_DELETED == false)
keyWord += e.DEPARTMENT_ID + '|'
})
}
if (keyWord.length > 0) {
const orgId = uni.getStorageSync('orgId')
const json = initFilter(orgId, keyWord, null, null, null, (this.model.IS_DOWN == null ? 'false' : this.model.IS_DOWN), this.model.ID)
extendRule(json, 'id', 1, this.model.ID);
getRequestOrderPage(json, "/SE/SETrainSurvey/GetListDemand").then(res => {
this.model.Nav_Demands = res.Data
})
}
}, },
submit() { submit() {
this.modelEdit = JSON.parse(JSON.stringify(this.model)) this.modelEdit = JSON.parse(JSON.stringify(this.model))
if (this.modelEdit.Nav_Demands && this.modelEdit.Nav_Demands.length > 0) {
this.modelEdit.Nav_Demands.map(item => {
delete item.Nav_Department
delete item.Nav_User
})
}
// if(this.modelEdit.Nav_JoinDepartment&&this.modelEdit.Nav_JoinDepartment.length>0){ // if(this.modelEdit.Nav_JoinDepartment&&this.modelEdit.Nav_JoinDepartment.length>0){
// this.modelEdit.Nav_JoinDepartment.map(item=>{ // this.modelEdit.Nav_JoinDepartment.map(item=>{
// delete item.Nav_Department // delete item.Nav_Department
@ -367,7 +506,7 @@
// delete item.Nav_Point // delete item.Nav_Point
// }) // })
// } // }
if (this.TaskID == null || this.TaskID == '') { if (this.TaskID == null || this.TaskID == '') {

View File

@ -150,7 +150,7 @@
</view> </view>
<view class="performance"> <view class="performance">
<view> <view>
<view class="standard-content"> <view class="standard-content" v-if="standardScore != ''">
<view class="standard-wrap"> <view class="standard-wrap">
<view class="standard-left"> <view class="standard-left">
<view>标准化得分</view> <view>标准化得分</view>
@ -185,8 +185,8 @@
</view> </view>
</view> </view>
<view class="line-chart"> <!-- <view class="line-chart"> -->
<view class="line-chart-bottom">
<view class="line-chart-title"> <view class="line-chart-title">
<i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i> <i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i>
工作票完成数 工作票完成数
@ -196,7 +196,7 @@
</view> </view>
</view> </view>
<view class="line-chart"> <!-- <view class="line-chart">
<view class="line-chart-title"> <view class="line-chart-title">
<i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i> <i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i>
安全检查次数统计 安全检查次数统计
@ -204,9 +204,8 @@
<view class="charts-view"> <view class="charts-view">
<qiun-data-charts type="column" :opts="safeOpts" :chartData="safeChartData" /> <qiun-data-charts type="column" :opts="safeOpts" :chartData="safeChartData" />
</view> </view>
</view> -->
</view> <!-- <view class="line-chart-bottom">
<view class="line-chart-bottom">
<view class="line-chart-title"> <view class="line-chart-title">
<i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i> <i class="iconfont icon-zhuzhuangtu" style="font-size: 16px;margin-right: 5px;"></i>
月度隐患整改情况 月度隐患整改情况
@ -214,16 +213,14 @@
<view class="charts-view"> <view class="charts-view">
<qiun-data-charts type="column" :opts="dangerOpts" :chartData="dangerChartData" /> <qiun-data-charts type="column" :opts="dangerOpts" :chartData="dangerChartData" />
</view> </view>
</view> -->
</view>
</view> </view>
</view> </view>
</view> </view>
<u-picker :show="modalShow" :columns="columns" @confirm="confirm" @change="changeHandler" @cancel="cancel"></u-picker> <u-picker :show="modalShow" :columns="columns" @confirm="confirm" @change="changeHandler"
@cancel="cancel"></u-picker>
</view> </view>
</template> </template>
@ -513,7 +510,7 @@
m = 12 + (curMonth - 5) m = 12 + (curMonth - 5)
} }
d = curDate.getDate() d = curDate.getDate()
const startTime = uni.$u.timeFormat(new Date(y, m, d), 'yyyy-mm-dd') const startTime = uni.$u.timeFormat(new Date(y, m, d), 'yyyy-mm-dd')
const endTime = uni.$u.timeFormat(new Date(), 'yyyy-mm-dd') const endTime = uni.$u.timeFormat(new Date(), 'yyyy-mm-dd')
let json = initFilter(orgId, User.NAME, "", "", "", startTime, endTime); let json = initFilter(orgId, User.NAME, "", "", "", startTime, endTime);
@ -540,7 +537,7 @@
this.getRiskLevel() this.getRiskLevel()
this.getClassActive() this.getClassActive()
this.getWorkTicket() this.getWorkTicket()
this.getDangerTotal() // this.getDangerTotal()
}, },
methods: { methods: {
@ -591,8 +588,11 @@
const orgId = uni.getStorageSync('orgId') const orgId = uni.getStorageSync('orgId')
let json = initFilter(orgId, this.MineCurrentType); let json = initFilter(orgId, this.MineCurrentType);
const res = await getStandardScore(json) const res = await getStandardScore(json)
if (res.IsSuccessful) { if (res.IsSuccessful && res.Data && res.Data.RESULT_TOTAL && res.Data.STAND_TOTAL != 0) {
debugger
this.standardScore = (Number(res.Data.RESULT_TOTAL / res.Data.STAND_TOTAL) * 100).toFixed(2); this.standardScore = (Number(res.Data.RESULT_TOTAL / res.Data.STAND_TOTAL) * 100).toFixed(2);
} else {
this.standardScore = ''
} }
}, },
@ -738,101 +738,101 @@
}, 500) }, 500)
} }
}, },
async getDangerTotal() { // async getDangerTotal() {
const orgId = uni.getStorageSync('orgId') // const orgId = uni.getStorageSync('orgId')
let json = initFilter( // let json = initFilter(
orgId, // orgId,
this.MineCurrentType, // this.MineCurrentType,
"NUM", // "NUM",
); // );
const res = await getDangerTotal(json) // const res = await getDangerTotal(json)
if (res.IsSuccessful) { // if (res.IsSuccessful) {
let xData = []; // let xData = [];
let data1 = []; // let data1 = [];
let data2 = []; // let data2 = [];
let data3 = []; // let data3 = [];
let seriesName = []; // let seriesName = [];
if (res.Data.ListSafeCheckYearMonth) { // if (res.Data.ListSafeCheckYearMonth) {
let ListSafeCheckYearMonth = res.Data.ListSafeCheckYearMonth.slice(-6) // let ListSafeCheckYearMonth = res.Data.ListSafeCheckYearMonth.slice(-6)
ListSafeCheckYearMonth.forEach((item) => { // ListSafeCheckYearMonth.forEach((item) => {
xData.push(item.MONTH + '月') // xData.push(item.MONTH + '')
seriesName = item.listSOURCENAME // seriesName = item.listSOURCENAME
data1.push(item.listListCount); // data1.push(item.listListCount);
}); // });
for (var i = 0; i < ListSafeCheckYearMonth[0].listListCount.length; i++) { // for (var i = 0; i < ListSafeCheckYearMonth[0].listListCount.length; i++) {
for (var j = 0; j < ListSafeCheckYearMonth.length; j++) { // for (var j = 0; j < ListSafeCheckYearMonth.length; j++) {
data2.push(data1[j][i]); // data2.push(data1[j][i]);
} // }
} // }
for (var i = 0; i < data2.length; i += ListSafeCheckYearMonth.length) { // for (var i = 0; i < data2.length; i += ListSafeCheckYearMonth.length) {
data3.push(data2.slice(i, i + ListSafeCheckYearMonth.length)) // data3.push(data2.slice(i, i + ListSafeCheckYearMonth.length))
} // }
setTimeout(() => { // setTimeout(() => {
let safeCheckConfig = { // let safeCheckConfig = {
categories: xData, // categories: xData,
series: [{ // series: [{
name: seriesName[0], // name: seriesName[0],
data: data3[0], // data: data3[0],
}, { // }, {
name: seriesName[1], // name: seriesName[1],
data: data3[1], // data: data3[1],
}, { // }, {
name: seriesName[2], // name: seriesName[2],
data: data3[2], // data: data3[2],
}, { // }, {
name: seriesName[3], // name: seriesName[3],
data: data3[3], // data: data3[3],
}], // }],
}; // };
this.safeChartData = JSON.parse(JSON.stringify(safeCheckConfig)); // this.safeChartData = JSON.parse(JSON.stringify(safeCheckConfig));
}, 500); // }, 500);
} // }
let xName = []; // let xName = [];
let yName = []; // let yName = [];
let legendName = []; // let legendName = [];
res.Data.ListC.forEach((item) => { // res.Data.ListC.forEach((item) => {
let name = item.NAME.split(","); // let name = item.NAME.split(",");
xName.push(name); // xName.push(name);
legendName.push(item.SOURCENAME); // legendName.push(item.SOURCENAME);
let valu = item.Val.split(","); // let valu = item.Val.split(",");
yName.push(valu); // yName.push(valu);
}); // });
let month = xName[0].map((item) => { // let month = xName[0].map((item) => {
return item.replace("月", ""); // return item.replace("", "");
}); // });
setTimeout(() => { // setTimeout(() => {
let monthDangerConfig = { // let monthDangerConfig = {
categories: xName[0], // categories: xName[0],
series: [{ // series: [{
name: legendName[0], // name: legendName[0],
// index: 1, // // index: 1,
type: "column", // type: "column",
data: yName[0] // data: yName[0]
}, // },
{ // {
name: legendName[1], // name: legendName[1],
// index: 1, // // index: 1,
type: "column", // type: "column",
data: yName[1] // data: yName[1]
}, // },
{ // {
name: legendName[2], // name: legendName[2],
// index: 1, // // index: 1,
type: "column", // type: "column",
data: yName[2] // data: yName[2]
}, // },
], // ],
}; // };
this.dangerChartData = JSON.parse(JSON.stringify(monthDangerConfig)); // this.dangerChartData = JSON.parse(JSON.stringify(monthDangerConfig));
}, 500) // }, 500)
} // }
} // }
}, },
computed: { computed: {
allFinishRate() { allFinishRate() {