Procházet zdrojové kódy

信息化办公设备管理

长阳分支中职
yxq před 1 měsícem
rodič
revize
48dba5903e
4 změnil soubory, kde provedl 97 přidání a 222 odebrání
  1. +44
    -96
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OfficeEquipment/list.vue
  2. +49
    -122
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OfficeEquipment/single.vue
  3. +3
    -3
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/SafetyCheck/list.vue
  4. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/SafetyCheck/single.vue

+ 44
- 96
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OfficeEquipment/list.vue Zobrazit soubor

@@ -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


+ 49
- 122
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/OfficeEquipment/single.vue Zobrazit soubor

@@ -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')
})


+ 3
- 3
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/SafetyCheck/list.vue Zobrazit soubor

@@ -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"/>


+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/SafetyCheck/single.vue Zobrazit soubor

@@ -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 />


Načítá se…
Zrušit
Uložit