|
|
@@ -1,218 +1,228 @@ |
|
|
|
<template> |
|
|
|
<view class="page"> |
|
|
|
<view v-if="ready"> |
|
|
|
<l-input |
|
|
|
@input="setValue('JournalSend.JTitle', $event)" |
|
|
|
:value="getValue('JournalSend.JTitle')" |
|
|
|
:disabled="!edit" |
|
|
|
title="日志主题" |
|
|
|
/> |
|
|
|
<l-select |
|
|
|
@input="setValue('JournalSend.JTypeId', $event)" |
|
|
|
:value="getValue('JournalSend.JTypeId')" |
|
|
|
:disabled="!edit" |
|
|
|
:range="dataSource.JournalSend.JTypeId" |
|
|
|
title="日志类型" |
|
|
|
/> |
|
|
|
<l-organize-picker |
|
|
|
@input="setValue('JournalSend.JReceiveId', $event)" |
|
|
|
:value="getValue('JournalSend.JReceiveId')" |
|
|
|
:readonly="!edit" |
|
|
|
type="user" |
|
|
|
title="接收人" |
|
|
|
/> |
|
|
|
<l-textarea |
|
|
|
@input="setValue('JournalSend.JContent', $event)" |
|
|
|
:value="getValue('JournalSend.JContent')" |
|
|
|
:readonly="!edit" |
|
|
|
title="日志内容" |
|
|
|
/> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view v-if="ready && edit" 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="!edit && mode !== 'create'" @click="action('edit')" size="lg" line="orange" class="block margin-top" block> |
|
|
|
<template> |
|
|
|
<view class="page"> |
|
|
|
<view v-if="ready"> |
|
|
|
<l-input @input="setValue('JournalSend.JTitle', $event)" :value="getValue('JournalSend.JTitle')" |
|
|
|
:disabled="!edit" title="日志主题" required /> |
|
|
|
<l-select @input="setValue('JournalSend.JTypeId', $event)" :value="getValue('JournalSend.JTypeId')" |
|
|
|
:disabled="!edit" :range="dataSource.JournalSend.JTypeId" title="日志类型" required /> |
|
|
|
<l-organize-picker @input="setValue('JournalSend.JReceiveId', $event)" |
|
|
|
:value="getValue('JournalSend.JReceiveId')" :readonly="!edit" type="user" title="接收人" required /> |
|
|
|
<l-textarea @input="setValue('JournalSend.JContent', $event)" :value="getValue('JournalSend.JContent')" |
|
|
|
:readonly="!edit" title="日志内容" required /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view v-if="ready && edit" 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="!edit && mode !== 'create'" @click="action('edit')" 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 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> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
/* |
|
|
|
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) |
|
|
|
* Copyright (c) 2013-2020 上海力软信息技术有限公司 |
|
|
|
* 创建人:超级管理员 |
|
|
|
* 日 期:2020-10-16 15:39 |
|
|
|
* 描 述:工作日志 |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 |
|
|
|
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: |
|
|
|
* { "path": "pages/EducationalAdministration/JournalSend/single", "style": { "navigationBarTitleText": "表单详情页" } } |
|
|
|
* |
|
|
|
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) |
|
|
|
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) |
|
|
|
*/ |
|
|
|
|
|
|
|
import get from 'lodash/get' |
|
|
|
import set from 'lodash/set' |
|
|
|
import moment from 'moment' |
|
|
|
import customPageMixins from '@/common/custompage.js' |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [customPageMixins], |
|
|
|
|
|
|
|
data() { |
|
|
|
return { |
|
|
|
// 页面相关参数 |
|
|
|
id: null, |
|
|
|
mode: null, |
|
|
|
edit: null, |
|
|
|
ready: false, |
|
|
|
|
|
|
|
// 表单数据 |
|
|
|
current: {}, |
|
|
|
origin: {}, |
|
|
|
|
|
|
|
// 表单项数据结构 |
|
|
|
scheme: { |
|
|
|
JournalSend: { |
|
|
|
JTitle: { type: 'text', title: '日志主题' }, |
|
|
|
JTypeId: { type: 'select', title: '日志类型', dataSource: '0' }, |
|
|
|
JReceiveId: { type: 'organize', title: '接收人', dataType: 'user' }, |
|
|
|
JContent: { type: 'textarea', title: '日志内容' }, |
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 数据源 |
|
|
|
dataSource: { |
|
|
|
JournalSend: { |
|
|
|
JTypeId: [], |
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
async onLoad({ type, id }) { |
|
|
|
await this.init(type, id) |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
// 页面初始化 |
|
|
|
async init(type, id) { |
|
|
|
this.LOADING('加载数据中...') |
|
|
|
|
|
|
|
this.id = id |
|
|
|
this.mode = type |
|
|
|
this.edit = ['create', 'edit'].includes(this.mode) |
|
|
|
|
|
|
|
// 拉取表单数据,同时拉取所有来自数据源的选单数据 |
|
|
|
await Promise.all([ |
|
|
|
|
|
|
|
|
|
|
|
() => {} |
|
|
|
]) |
|
|
|
await this.fetchForm() |
|
|
|
|
|
|
|
this.ready = true |
|
|
|
this.HIDE_LOADING() |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载表单数据 |
|
|
|
async fetchForm() { |
|
|
|
if (this.mode === 'create') { |
|
|
|
this.origin = await this.getDefaultForm() |
|
|
|
} else { |
|
|
|
const result = await this.HTTP_GET('learun/adms/EducationalAdministration/Journal/form', this.id) |
|
|
|
this.origin = await this.formatFormData(result) |
|
|
|
} |
|
|
|
this.current = this.COPY(this.origin) |
|
|
|
}, |
|
|
|
|
|
|
|
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 |
|
|
|
async action(type) { |
|
|
|
switch (type) { |
|
|
|
case 'edit': |
|
|
|
this.edit = true |
|
|
|
break |
|
|
|
|
|
|
|
case 'reset': |
|
|
|
// this.current = this.COPY(this.origin) |
|
|
|
// this.edit = false |
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
break |
|
|
|
|
|
|
|
case 'save': |
|
|
|
const verifyResult = this.verifyForm() |
|
|
|
if (verifyResult.length > 0) { |
|
|
|
this.CONFIRM('表单验证失败', verifyResult.join('\n')) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.LOADING('正在提交...') |
|
|
|
const postData = await this.getPostData(this.id) |
|
|
|
|
|
|
|
this.HTTP_POST('learun/adms/EducationalAdministration/Journal/save', postData, '表单提交保存失败').then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.TOAST('提交保存成功') |
|
|
|
}) |
|
|
|
break |
|
|
|
|
|
|
|
case 'delete': |
|
|
|
if (!(await this.CONFIRM('删除项目', '确定要删除本项吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.LOADING('提交删除中...') |
|
|
|
this.HTTP_POST('learun/adms/EducationalAdministration/Journal/delete', this.id, '删除失败').then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.this.TOAST('删除成功', 'success') |
|
|
|
}) |
|
|
|
break |
|
|
|
|
|
|
|
default: break |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取表单值 |
|
|
|
getValue(path) { |
|
|
|
return get(this.current, path) |
|
|
|
}, |
|
|
|
|
|
|
|
// 设置表单值 |
|
|
|
setValue(path, val) { |
|
|
|
set(this.current, path, val) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
/* |
|
|
|
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) |
|
|
|
* Copyright (c) 2013-2020 上海力软信息技术有限公司 |
|
|
|
* 创建人:超级管理员 |
|
|
|
* 日 期:2020-10-16 15:39 |
|
|
|
* 描 述:工作日志 |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 |
|
|
|
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: |
|
|
|
* { "path": "pages/EducationalAdministration/JournalSend/single", "style": { "navigationBarTitleText": "表单详情页" } } |
|
|
|
* |
|
|
|
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) |
|
|
|
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) |
|
|
|
*/ |
|
|
|
|
|
|
|
import get from 'lodash/get' |
|
|
|
import set from 'lodash/set' |
|
|
|
import moment from 'moment' |
|
|
|
import customPageMixins from '@/common/custompage.js' |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [customPageMixins], |
|
|
|
|
|
|
|
data() { |
|
|
|
return { |
|
|
|
// 页面相关参数 |
|
|
|
id: null, |
|
|
|
mode: null, |
|
|
|
edit: null, |
|
|
|
ready: false, |
|
|
|
|
|
|
|
// 表单数据 |
|
|
|
current: {}, |
|
|
|
origin: {}, |
|
|
|
|
|
|
|
// 表单项数据结构 |
|
|
|
scheme: { |
|
|
|
JournalSend: { |
|
|
|
JTitle: { |
|
|
|
type: 'text', |
|
|
|
title: '日志主题', |
|
|
|
verify: "NotNull" |
|
|
|
}, |
|
|
|
JTypeId: { |
|
|
|
type: 'select', |
|
|
|
title: '日志类型', |
|
|
|
dataSource: '0', |
|
|
|
verify: "NotNull" |
|
|
|
}, |
|
|
|
JReceiveId: { |
|
|
|
type: 'organize', |
|
|
|
title: '接收人', |
|
|
|
dataType: 'user', |
|
|
|
verify: "NotNull" |
|
|
|
}, |
|
|
|
JContent: { |
|
|
|
type: 'textarea', |
|
|
|
title: '日志内容', |
|
|
|
verify: "NotNull" |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 数据源 |
|
|
|
dataSource: { |
|
|
|
JournalSend: { |
|
|
|
JTypeId: Object.values(this.GET_GLOBAL('dataDictionary').JournalType).map(t => ({ |
|
|
|
value: t.value, |
|
|
|
text: t.text |
|
|
|
})), |
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
async onLoad({ |
|
|
|
type, |
|
|
|
id |
|
|
|
}) { |
|
|
|
await this.init(type, id) |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
// 页面初始化 |
|
|
|
async init(type, id) { |
|
|
|
this.LOADING('加载数据中...') |
|
|
|
|
|
|
|
this.id = id |
|
|
|
this.mode = type |
|
|
|
this.edit = ['create', 'edit'].includes(this.mode) |
|
|
|
|
|
|
|
// 拉取表单数据,同时拉取所有来自数据源的选单数据 |
|
|
|
await Promise.all([ |
|
|
|
|
|
|
|
|
|
|
|
() => {} |
|
|
|
]) |
|
|
|
await this.fetchForm() |
|
|
|
|
|
|
|
this.ready = true |
|
|
|
this.HIDE_LOADING() |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载表单数据 |
|
|
|
async fetchForm() { |
|
|
|
if (this.mode === 'create') { |
|
|
|
this.origin = await this.getDefaultForm() |
|
|
|
} else { |
|
|
|
const result = await this.HTTP_GET('learun/adms/EducationalAdministration/Journal/form', this.id) |
|
|
|
this.origin = await this.formatFormData(result) |
|
|
|
} |
|
|
|
this.current = this.COPY(this.origin) |
|
|
|
}, |
|
|
|
|
|
|
|
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 |
|
|
|
async action(type) { |
|
|
|
switch (type) { |
|
|
|
case 'edit': |
|
|
|
this.edit = true |
|
|
|
break |
|
|
|
|
|
|
|
case 'reset': |
|
|
|
// this.current = this.COPY(this.origin) |
|
|
|
// this.edit = false |
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
break |
|
|
|
|
|
|
|
case 'save': |
|
|
|
const verifyResult = this.verifyForm() |
|
|
|
if (verifyResult.length > 0) { |
|
|
|
this.CONFIRM('表单验证失败', verifyResult.join('\n')) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.LOADING('正在提交...') |
|
|
|
const postData = await this.getPostData(this.id) |
|
|
|
|
|
|
|
this.HTTP_POST('learun/adms/EducationalAdministration/Journal/save', postData, '表单提交保存失败') |
|
|
|
.then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.TOAST('提交保存成功') |
|
|
|
}) |
|
|
|
break |
|
|
|
|
|
|
|
case 'delete': |
|
|
|
if (!(await this.CONFIRM('删除项目', '确定要删除本项吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.LOADING('提交删除中...') |
|
|
|
this.HTTP_POST('learun/adms/EducationalAdministration/Journal/delete', this.id, '删除失败').then( |
|
|
|
success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.this.TOAST('删除成功', 'success') |
|
|
|
}) |
|
|
|
break |
|
|
|
|
|
|
|
default: |
|
|
|
break |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取表单值 |
|
|
|
getValue(path) { |
|
|
|
return get(this.current, path) |
|
|
|
}, |
|
|
|
|
|
|
|
// 设置表单值 |
|
|
|
setValue(path, val) { |
|
|
|
set(this.current, path, val) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |