@@ -16,73 +16,45 @@ | |||
{{ displayListItem(item, 'Name') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">处室部门:</text> | |||
{{ displayListItem(item, 'Department') }} | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">处室部门:</text> | |||
{{ displayListItem(item, 'Department') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">设备编号:</text> | |||
{{ displayListItem(item, 'Code') }} | |||
<text class="customlist-item-field-title">设备编号:</text> | |||
{{ displayListItem(item, 'Code') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">设备名称:</text> | |||
{{ displayListItem(item, 'DeviceName') }} | |||
<text class="customlist-item-field-title">设备名称:</text> | |||
{{ displayListItem(item, 'DeviceName') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">配置描述:</text> | |||
{{ displayListItem(item, 'Description') }} | |||
<text class="customlist-item-field-title">配置描述:</text> | |||
{{ displayListItem(item, 'Description') }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">备注:</text> | |||
{{ displayListItem(item, 'Remark') }} | |||
<text class="customlist-item-field-title">备注:</text> | |||
{{ displayListItem(item, 'Remark') }} | |||
</view> | |||
<view class="customlist-banner-action"> | |||
<view v-if="item.Status == '0'" @click="action('submit', item.ID)" | |||
class="customlist-banner-action-btn line-red text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="top" /> | |||
提交 | |||
</view> | |||
<view v-if="item.Status == '0'" @click="action('delete', item.ID)" | |||
<view @click="action('delete', item.Id)" | |||
class="customlist-banner-action-btn line-red text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="delete" /> | |||
删除 | |||
</view> | |||
<view v-if="item.Status == '0'" @click="action('edit', item.ID)" | |||
<view @click="action('edit', item.Id)" | |||
class="customlist-banner-action-btn line-blue text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="edit" /> | |||
编辑 | |||
</view> | |||
<view v-if="item.Status == '1'" @click="action('check', item.ID)" | |||
class="customlist-banner-action-btn line-red text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="top" /> | |||
部门审查 | |||
</view> | |||
<view v-if="item.Status == '2'" @click="action('check', item.ID)" | |||
class="customlist-banner-action-btn line-red text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="top" /> | |||
分管领导 | |||
</view> | |||
<!-- <view v-if="item.Status == '3'" @click="action('check', item.ID)" | |||
class="customlist-banner-action-btn line-red text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="top" /> | |||
安全办 | |||
</view> --> | |||
<view @click="action('view', item.ID)" | |||
<view @click="action('view', item.Id)" | |||
class="customlist-banner-action-btn line-blue text-sm" | |||
style="border: currentColor 1px solid"> | |||
<l-icon type="search" /> | |||
@@ -103,12 +75,16 @@ | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter v-model="dateRange" @change="searchChange" title="按申请时间查询: " | |||
ref="datefilter" class="margin-bottom" /> | |||
<l-select @input="queryData.Name=$event" :value="queryData.Name" | |||
:range="dataSource.Name" title="姓名" required @change="searchChange" /> | |||
<l-select @input="queryData.Department=$event" :value="queryData.Department" | |||
:range="dataSource.Department" title="部门" required @change="searchChange" /> | |||
<l-input v-model="queryData.Code" @change="searchChange" title="设备编号" placeholder="请输入" /> | |||
<l-input v-model="queryData.DeviceName" @change="searchChange" title="设备名称" placeholder="请输入" /> | |||
<!-- 重置查询条件按钮 --> | |||
<!-- <view class="padding-tb"> | |||
<view class="padding-tb"> | |||
<l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button> | |||
</view> --> | |||
</view> | |||
</view> | |||
</scroll-view> | |||
@@ -176,31 +152,8 @@ | |||
// 数据源 | |||
dataSource: { | |||
Status: [{ | |||
text: '草稿', | |||
value: '0' | |||
}, { | |||
text: '部门审查', | |||
value: '1' | |||
}, { | |||
text: '分管领导', | |||
value: '2' | |||
}, { | |||
text: '安全办', | |||
value: '3' | |||
}], | |||
Name: Object.entries(this.GET_GLOBAL('user')).map(e => { | |||
return { | |||
value: e[0], | |||
text: e[1].name | |||
} | |||
}), | |||
Department: Object.entries(this.GET_GLOBAL('department')).map(e => { | |||
return { | |||
value: e[0], | |||
text: e[1].name | |||
} | |||
}) | |||
Name: [], | |||
Department: [] | |||
}, | |||
// 页面相关参数 | |||
@@ -220,16 +173,28 @@ | |||
await this.init() | |||
}, | |||
onUnload() { | |||
this.OFF('EducationalAdministration_SafetyCheck-list-change') | |||
this.OFF('EducationalAdministration_OfficeEquipment-list-change') | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
console.log(this.GET_GLOBAL('user')) | |||
this.ON('EducationalAdministration_SafetyCheck-list-change', this.reset) | |||
this.ON('EducationalAdministration_OfficeEquipment-list-change', this.reset) | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('teacheruserdata').then(result => { | |||
this.dataSource.Name = result.data.map(t => ({ | |||
text: t.f_realname, | |||
value: t.f_encode | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE('classdata').then(result => { | |||
this.dataSource.Department = result.data.map(t => ({ | |||
text: t.name, | |||
value: t.id | |||
})); | |||
}), | |||
() => {} | |||
]) | |||
await this.fetchList() | |||
@@ -251,7 +216,7 @@ | |||
rows: 10, | |||
page: this.page, | |||
sord: 'ASC', | |||
sidx:"", | |||
sidx: "", | |||
}, | |||
queryJson: JSON.stringify(this.searchData) | |||
}, | |||
@@ -319,33 +284,16 @@ | |||
this.NAV_TO('./single?type=create') | |||
return | |||
case 'check': | |||
this.NAV_TO(`./single?type=check&id=${id}`) | |||
return | |||
case 'edit': | |||
this.NAV_TO(`./single?type=edit&id=${id}`) | |||
return | |||
case 'submit': | |||
if (!(await this.CONFIRM('提交项目', '是否确认提交该项?', true))) { | |||
return | |||
} | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/SafetyCheck/submit', id, '提交失败').then( | |||
success => { | |||
if (!success) { | |||
return | |||
} | |||
this.TOAST('提交成功', 'success') | |||
this.refreshList() | |||
}) | |||
return | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) { | |||
return | |||
} | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/SafetyCheck/delete', id, '删除失败').then( | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/officeEquipment/delete', id, '删除失败').then( | |||
success => { | |||
if (!success) { | |||
return | |||
@@ -1,48 +1,25 @@ | |||
<template> | |||
<view class="page"> | |||
<view v-if="ready"> | |||
<l-organize-picker @input="setValue('SafetyCheck.Name', $event)" :value="getValue('SafetyCheck.Name')" | |||
:readonly="!edit" type="user" title="姓名" required readonly /> | |||
<l-organize-picker @input="setValue('SafetyCheck.Department', $event)" | |||
:value="getValue('SafetyCheck.Department')" type="department" :readonly="!edit" title="处室部门" required | |||
readonly /> | |||
<l-input @input="setValue('SafetyCheck.Area', $event)" :value="getValue('SafetyCheck.Area')" | |||
:disabled="!edit" title="责任区域" required /> | |||
<l-date-picker @input="setValue('SafetyCheck.CheckTime', $event)" | |||
:value="getValue('SafetyCheck.CheckTime')" :disabled="!edit" title="排查时间" required /> | |||
<l-textarea @input="setValue('SafetyCheck.Question', $event)" :value="getValue('SafetyCheck.Question')" | |||
:readonly="!edit" title="发现的隐患问题" required /> | |||
<l-textarea @input="setValue('SafetyCheck.idea', $event)" :value="getValue('SafetyCheck.idea')" | |||
:readonly="!edit" title="整改措施及建议等" /> | |||
<l-upload-file @input="setValue('SafetyCheck.Path', $event)" :value="getValue('SafetyCheck.Path')" | |||
tableName="SafetyCheck" fieldName="Path" title="附件" :number="9" :readonly="!edit" /> | |||
<l-textarea @input="setValue('SafetyCheck.Remark', $event)" :value="getValue('SafetyCheck.Remark')" | |||
<l-select @input="setValue('OfficeEquipment.Name', $event)" :value="getValue('OfficeEquipment.Name')" | |||
:range="dataSource.OfficeEquipment.Name" title="姓名" required disabled /> | |||
<l-select @input="setValue('OfficeEquipment.Department', $event)" | |||
:value="getValue('OfficeEquipment.Department')" :range="dataSource.OfficeEquipment.Department" | |||
title="部门" required disabled /> | |||
<l-input @input="setValue('OfficeEquipment.Code', $event)" :value="getValue('OfficeEquipment.Code')" | |||
:disabled="!edit" title="设备编号" required /> | |||
<l-input @input="setValue('OfficeEquipment.DeviceName', $event)" | |||
:value="getValue('OfficeEquipment.DeviceName')" :disabled="!edit" title="设备名称" required /> | |||
<l-input @input="setValue('OfficeEquipment.Description', $event)" | |||
:value="getValue('OfficeEquipment.Description')" :disabled="!edit" title="配置描述" required /> | |||
<l-textarea @input="setValue('OfficeEquipment.Remark', $event)" :value="getValue('OfficeEquipment.Remark')" | |||
:readonly="!edit" title="备注" /> | |||
<l-select v-if="mode == 'check'&&['1'].includes(String(Status))" | |||
@input="setValue('SafetyCheck.Status', $event)" :value="getValue('SafetyCheck.Status')" | |||
:range="dataSource.SafetyCheck.Status" title="继续上报" required /> | |||
<l-textarea v-if="Status&&Status!=0" @input="setValue('SafetyCheck.DepartmentRemark', $event)" | |||
:readonly="mode != 'check'||!['1'].includes(String(Status))" | |||
:value="getValue('SafetyCheck.DepartmentRemark')" title="审验提醒" /> | |||
<l-select v-if="mode == 'check'&&['2','3'].includes(String(Status))" | |||
@input="setValue('SafetyCheck.Status', $event)" :value="getValue('SafetyCheck.Status')" | |||
:range="dataSource.SafetyCheck.Status" title="继续上报" required /> | |||
</view> | |||
<view v-if="ready && current.SafetyCheck && mode!='view'" | |||
class="bg-white margin-tb padding" style="padding-top: 0; overflow: hidden;"> | |||
<view v-if="ready && current.OfficeEquipment && mode!='view'" class="bg-white margin-tb padding" | |||
style="padding-top: 0; overflow: hidden;"> | |||
<l-button v-if="edit" @click="action('save')" size="lg" color="green" class="block margin-top" block> | |||
提交保存 | |||
</l-button> | |||
<l-button v-if="mode == 'check'" @click="action('check')" size="lg" line="orange" class="block margin-top" | |||
block> | |||
审批 | |||
</l-button> | |||
<!-- <l-button v-if="edit && mode !== 'create'" @click="action('reset')" size="lg" line="red" class="block margin-top" block> | |||
取消编辑 | |||
</l-button> | |||
<l-button v-if="!edit && mode !== 'create'" @click="action('delete')" size="lg" line="red" class="block margin-top" block> | |||
删除 | |||
</l-button> --> | |||
</view> | |||
</view> | |||
</template> | |||
@@ -85,85 +62,35 @@ | |||
// 表单数据 | |||
current: {}, | |||
origin: {}, | |||
Status:'', | |||
// 表单项数据结构 | |||
scheme: { | |||
SafetyCheck: { | |||
OfficeEquipment: { | |||
Name: { | |||
type: 'text' | |||
type: 'select',title:'姓名',verify: "NotNull" | |||
}, | |||
Department: { | |||
type: 'text' | |||
}, | |||
Area: { | |||
type: 'text', | |||
verify: "NotNull", | |||
title: '责任区域' | |||
type: 'select',title:'部门',verify: "NotNull" | |||
}, | |||
CheckTime: { | |||
type: 'datetime', | |||
verify: "NotNull", | |||
title: '排查时间', | |||
dateformat:'0' | |||
Code: { | |||
type: 'text',title:'设备编号',verify: "NotNull" | |||
}, | |||
Question: { | |||
type: 'text', | |||
verify: "NotNull", | |||
title: '发现的隐患' | |||
DeviceName: { | |||
type: 'text',title:'设备名称',verify: "NotNull" | |||
}, | |||
idea: { | |||
type: 'text' | |||
}, | |||
Path: { | |||
type: 'upload' | |||
Description: { | |||
type: 'text',title:'配置描述',verify: "NotNull" | |||
}, | |||
Remark: { | |||
type: 'text' | |||
}, | |||
// CreateUser: { | |||
// type: 'text' | |||
// }, | |||
// CreateTime: { | |||
// type: 'text' | |||
// }, | |||
// ModifyUser: { | |||
// type: 'text' | |||
// }, | |||
// Modifytime: { | |||
// type: 'text' | |||
// }, | |||
Status: { | |||
type: 'select', | |||
}, | |||
DepartmentRemark: { | |||
type: 'text' | |||
}, | |||
type: 'text',title:'备注' | |||
} | |||
}, | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
SafetyCheck: { | |||
// Status: [{ | |||
// text: '草稿', | |||
// value: '0' | |||
// }, { | |||
// text: '部门审查', | |||
// value: '1' | |||
// }, { | |||
// text: '分管领导', | |||
// value: '2' | |||
// }, { | |||
// text: '安全办', | |||
// value: '3' | |||
// }], | |||
Status: [{ | |||
text: '继续上报', | |||
value: '1' | |||
}, { | |||
text: '退回', | |||
value: '0' | |||
}, ], | |||
OfficeEquipment: { | |||
Name: [], | |||
Department: [], | |||
}, | |||
} | |||
@@ -187,6 +114,18 @@ | |||
this.edit = ['create', 'edit'].includes(this.mode) | |||
// 拉取表单数据,同时拉取所有来自数据源的选单数据 | |||
await Promise.all([ | |||
this.FETCH_DATASOURCE('teacheruserdata').then(result => { | |||
this.dataSource.OfficeEquipment.Name = result.data.map(t => ({ | |||
text: t.f_realname, | |||
value: t.f_encode | |||
})); | |||
}), | |||
this.FETCH_DATASOURCE('classdata').then(result => { | |||
this.dataSource.OfficeEquipment.Department = result.data.map(t => ({ | |||
text: t.name, | |||
value: t.id | |||
})); | |||
}), | |||
() => {} | |||
]) | |||
await this.fetchForm() | |||
@@ -200,15 +139,12 @@ | |||
if (this.mode === 'create') { | |||
this.origin = await this.getDefaultForm() | |||
let userInfo = this.GET_GLOBAL('loginUser'); | |||
this.origin.SafetyCheck.Name = userInfo.userId | |||
this.origin.SafetyCheck.Department = userInfo.departmentId | |||
this.origin.OfficeEquipment.Name = userInfo.enCode | |||
this.origin.OfficeEquipment.Department = userInfo.departmentId | |||
} else { | |||
const result = await this.HTTP_GET('/Learun/adms/EducationalAdministration/SafetyCheck/form', this | |||
const result = await this.HTTP_GET('/Learun/adms/EducationalAdministration/officeEquipment/form', | |||
this | |||
.id) | |||
this.Status = result.SafetyCheck.Status | |||
if (this.mode === 'check') { | |||
result.SafetyCheck.Status = 1 | |||
} | |||
this.origin = await this.formatFormData(result) | |||
} | |||
this.current = this.COPY(this.origin) | |||
@@ -227,7 +163,6 @@ | |||
break | |||
case 'save': | |||
case 'check': | |||
const verifyResult = this.verifyForm() | |||
if (verifyResult.length > 0) { | |||
this.CONFIRM('表单验证失败', verifyResult.join('\n')) | |||
@@ -240,23 +175,14 @@ | |||
this.LOADING('正在提交...') | |||
const postData = await this.getPostData(this.id) | |||
if(type == 'check'){ | |||
let strEntity = JSON.parse(postData.strEntity) | |||
if(strEntity.Status == 1){ | |||
strEntity.Status = this.Status | |||
} | |||
postData.strEntity = JSON.stringify(strEntity) | |||
} | |||
// console.log(postData,JSON.parse(postData.strEntity)) | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/SafetyCheck/' + (type == 'save' ? | |||
'save' : 'department'), postData, '提交失败') | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/OfficeEquipment/save', postData, '提交失败') | |||
.then(success => { | |||
this.HIDE_LOADING() | |||
if (!success) { | |||
return | |||
} | |||
this.EMIT('EducationalAdministration_SafetyCheck-list-change') | |||
this.EMIT('EducationalAdministration_OfficeEquipment-list-change') | |||
this.NAV_BACK() | |||
this.TOAST('提交成功') | |||
}) | |||
@@ -268,14 +194,15 @@ | |||
} | |||
this.LOADING('提交删除中...') | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/SafetyCheck/delete', this.id, '删除失败') | |||
this.HTTP_POST('/Learun/adms/EducationalAdministration/OfficeEquipment/delete', this.id, | |||
'删除失败') | |||
.then(success => { | |||
this.HIDE_LOADING() | |||
if (!success) { | |||
return | |||
} | |||
this.EMIT('EducationalAdministration_SafetyCheck-list-change') | |||
this.EMIT('EducationalAdministration_OfficeEquipment-list-change') | |||
this.NAV_BACK() | |||
this.this.TOAST('删除成功', 'success') | |||
}) | |||
@@ -12,7 +12,7 @@ | |||
<view class="customlist-item" v-for="(item,index) of list" :key="item.Id"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">姓名:</text> | |||
<text class="customlist-item-field-title">网络格员:</text> | |||
{{ displayListItem(item, 'Name') }} | |||
</view> | |||
@@ -143,9 +143,9 @@ | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-customlist-sidepage-datefilter v-model="dateRange" @change="searchChange" title="按申请时间查询: " | |||
<l-customlist-sidepage-datefilter v-model="dateRange" @change="searchChange" title="按排查时间查询: " | |||
ref="datefilter" class="margin-bottom" /> | |||
<l-organize-picker @input="queryData.Name=$event" :value="queryData.Name" type="user" title="姓名" | |||
<l-organize-picker @input="queryData.Name=$event" :value="queryData.Name" type="user" title="网络格员" | |||
@change="searchChange" /> | |||
<l-organize-picker @input="queryData.Department=$event" :value="queryData.Department" | |||
type="department" title="处室部门" @change="searchChange"/> | |||
@@ -2,7 +2,7 @@ | |||
<view class="page"> | |||
<view v-if="ready"> | |||
<l-organize-picker @input="setValue('SafetyCheck.Name', $event)" :value="getValue('SafetyCheck.Name')" | |||
type="user" title="姓名" required readonly/> | |||
type="user" title="网络格员" required readonly/> | |||
<l-organize-picker @input="setValue('SafetyCheck.Department', $event)" | |||
:value="getValue('SafetyCheck.Department')" type="department" title="处室部门" required | |||
readonly /> | |||