|
|
@@ -0,0 +1,292 @@ |
|
|
|
<template> |
|
|
|
<view class="page"> |
|
|
|
<view v-if="ready"> |
|
|
|
<view class="paper-title"> |
|
|
|
{{formData.VTitle}} |
|
|
|
<view class="paper-time"> |
|
|
|
{{formData.VStartTime}} |
|
|
|
- |
|
|
|
{{formData.VStopTime}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view v-for="(item,index) in formData.Eval_Questions" :key="item.QID"> |
|
|
|
<view class="questionTitle"> |
|
|
|
<text style="color: red;">{{item.QMust?"* ":""}}</text> |
|
|
|
{{item.QTitle}} |
|
|
|
</view> |
|
|
|
<!-- 单选 --> |
|
|
|
<l-select |
|
|
|
v-if="item.QType == 1" |
|
|
|
v-model="item.IID" |
|
|
|
@change="(e)=>{checkBoxGroupChange(item.QID,e)}" |
|
|
|
:range="item.Eval_QuestionItems" |
|
|
|
title="" |
|
|
|
placeholder="请选择" |
|
|
|
:disabled="false" |
|
|
|
textField="ITitle" |
|
|
|
valueField="IID" |
|
|
|
/> |
|
|
|
<!-- 多选 --> |
|
|
|
<view v-if="item.QType == 2"> |
|
|
|
<checkbox-group v-model="item.checked" @change="(e)=>{checkBoxGroupChange(item.QID,e.detail.value)}"> |
|
|
|
<view v-for="item1 in item.Eval_QuestionItems" :key="item1.IID"> |
|
|
|
<l-checkbox :title="item1.ITitle" v-model="item1.isChecked" :checkboxValue="item1.IID.toString()" /> |
|
|
|
<l-textarea |
|
|
|
simpleMode |
|
|
|
v-if="item1.QShowText&& |
|
|
|
checkBoxs[item.QID]&& |
|
|
|
checkBoxs[item.QID].includes(item1.IID)" |
|
|
|
v-model="uTexts[item1.IID]" |
|
|
|
style="margin-top: 6px;" |
|
|
|
placeholder="请输入" |
|
|
|
/> |
|
|
|
</view> |
|
|
|
</checkbox-group> |
|
|
|
</view> |
|
|
|
<!-- 填空 --> |
|
|
|
<l-textarea v-if="item.QType == 3" v-model="item.QContent" placeholder="请输入" /> |
|
|
|
<!-- 校验提示 --> |
|
|
|
<view v-if="validate[item.QID]" style="color: red;font-size: 12px;margin-bottom: 4px;padding-left: 12px;"> |
|
|
|
{{validate[item.QID]}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- <l-input v-model="text" disabled title="你说呢你说呢?"></l-input> |
|
|
|
<radio-group> |
|
|
|
<l-radio v-model="radioValue" title="单选框1" radioValue="1" /> |
|
|
|
<l-radio v-model="radioValue" title="单选框2" radioValue="2" /> |
|
|
|
</radio-group> --> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view v-if="ready" class="bg-white margin-tb padding" style="padding-top: 0; overflow: hidden;"> |
|
|
|
<l-button v-if="edit" @click="action('save')" size="lg" style="background-color: #0C86D8;color: #fff;" 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 { |
|
|
|
aa:"", |
|
|
|
bbb:[], |
|
|
|
// 页面相关参数 |
|
|
|
id: null, |
|
|
|
mode: null, |
|
|
|
edit: null, |
|
|
|
ready: false, |
|
|
|
ready: false, |
|
|
|
formData:{ |
|
|
|
Eval_Questions:[] |
|
|
|
}, |
|
|
|
submitParams:null, |
|
|
|
uTexts:{}, |
|
|
|
checkBoxs:{}, |
|
|
|
validate:{}, |
|
|
|
} |
|
|
|
}, |
|
|
|
async onLoad({ id,EmpNo,LessonNo }) { |
|
|
|
this.submitParams = {EmpNo,LessonNo} |
|
|
|
await this.init(id) |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
checkBoxGroupChange(id,value){ |
|
|
|
this.checkBoxs[id] = value |
|
|
|
}, |
|
|
|
// 页面初始化 |
|
|
|
async init( id ) { |
|
|
|
this.LOADING('加载数据中...') |
|
|
|
this.id = id |
|
|
|
await this.fetchForm() |
|
|
|
|
|
|
|
this.ready = true |
|
|
|
this.HIDE_LOADING() |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载表单数据 |
|
|
|
async fetchForm() { |
|
|
|
return this.HTTP_GET('learun/adms/eval/paper', {VID:this.id}, '加载数据时出错').then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
if(success){ |
|
|
|
this.edit = true |
|
|
|
} |
|
|
|
this.formData = success |
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 |
|
|
|
async action(type) { |
|
|
|
switch (type) { |
|
|
|
case 'edit': |
|
|
|
this.edit = true |
|
|
|
break |
|
|
|
|
|
|
|
case 'reset': |
|
|
|
this.current = this.COPY(this.origin) |
|
|
|
this.edit = false |
|
|
|
break |
|
|
|
|
|
|
|
case 'save': |
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
this.LOADING('正在提交...') |
|
|
|
let postarray = [] |
|
|
|
this.formData.Eval_Questions.map(item=>{ |
|
|
|
let validate = {} |
|
|
|
switch (item.QType){ |
|
|
|
case 1: |
|
|
|
if(item.QMust){ |
|
|
|
validate[item.QID] = this.checkBoxs[item.QID]?'':'此项必填!' |
|
|
|
} |
|
|
|
this.validate = {...this.validate,...validate} |
|
|
|
postarray.push({ |
|
|
|
QID:item.QID, |
|
|
|
IID:this.checkBoxs[item.QID]?this.checkBoxs[item.QID].toString():'', |
|
|
|
UText:item.UText||'', |
|
|
|
}) |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
if(item.QMust){ |
|
|
|
validate[item.QID] = (this.checkBoxs[item.QID]&&this.checkBoxs[item.QID].length)?'':"此项必填!" |
|
|
|
this.validate = {...this.validate,...validate} |
|
|
|
} |
|
|
|
if(this.checkBoxs[item.QID]&&this.checkBoxs[item.QID].length){ |
|
|
|
this.checkBoxs[item.QID].map(t=>{ |
|
|
|
postarray.push({ |
|
|
|
QID:item.QID, |
|
|
|
IID:t, |
|
|
|
UText:this.uTexts[t]||'', |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
if(item.QMust){ |
|
|
|
validate[item.QID] = item.QContent?'':"此项必填" |
|
|
|
this.validate = {...this.validate,...validate} |
|
|
|
} |
|
|
|
if(this.checkBoxs[item.QID]&&this.checkBoxs[item.QID].length){ |
|
|
|
this.checkBoxs[item.QID].map(t=>{ |
|
|
|
postarray.push({ |
|
|
|
QID:item.QID, |
|
|
|
IID:'', |
|
|
|
QContent:item.QContent||'', |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
let validataArr = Object.values(this.validate) |
|
|
|
if(validataArr.some(t=>t)){ |
|
|
|
this.TOAST("请完善表单信息!") |
|
|
|
return |
|
|
|
} |
|
|
|
const postData = { |
|
|
|
VID:this.formData.VID, |
|
|
|
...this.submitParams, |
|
|
|
postarray |
|
|
|
} |
|
|
|
console.log(postData) |
|
|
|
this.HTTP_POST('learun/adms/eval/savepaper', postData, '表单提交保存失败').then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (!success) { |
|
|
|
return |
|
|
|
} |
|
|
|
this.TOAST('提交保存成功') |
|
|
|
setTimeout(()=>{ |
|
|
|
this.NAV_BACK() |
|
|
|
},200) |
|
|
|
}) |
|
|
|
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> |
|
|
|
<style scoped lang="scss"> |
|
|
|
.paper-title{ |
|
|
|
font-size: 20px; |
|
|
|
color: #000; |
|
|
|
text-align: center; |
|
|
|
margin: 16px 0; |
|
|
|
} |
|
|
|
.paper-time{ |
|
|
|
color: #606266; |
|
|
|
font-size: 12px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
.questionTitle{ |
|
|
|
line-height: 18px; |
|
|
|
background-color: #fff; |
|
|
|
color: #000; |
|
|
|
margin-top: 8px; |
|
|
|
margin-bottom: 1px; |
|
|
|
padding: 16px 12px; |
|
|
|
} |
|
|
|
</style> |