|
@@ -1,47 +1,67 @@ |
|
|
<template> |
|
|
<template> |
|
|
<view class="page"> |
|
|
<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" 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> |
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
|
<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> |
|
|
|
|
|
|
|
|
</l-button> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</template> |
|
|
</template> |
|
@@ -74,57 +94,37 @@ export default { |
|
|
mixins: [customPageMixins], |
|
|
mixins: [customPageMixins], |
|
|
|
|
|
|
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
aa:"", |
|
|
|
|
|
bbb:[], |
|
|
// 页面相关参数 |
|
|
// 页面相关参数 |
|
|
id: null, |
|
|
id: null, |
|
|
mode: null, |
|
|
mode: null, |
|
|
edit: null, |
|
|
edit: null, |
|
|
ready: false, |
|
|
ready: false, |
|
|
|
|
|
|
|
|
// 表单数据 |
|
|
|
|
|
current: {}, |
|
|
|
|
|
origin: {}, |
|
|
|
|
|
|
|
|
|
|
|
// 表单项数据结构 |
|
|
|
|
|
scheme: { |
|
|
|
|
|
JournalSend: { |
|
|
|
|
|
JTitle: { type: 'text' }, |
|
|
|
|
|
JTypeId: { type: 'select' }, |
|
|
|
|
|
JReceiveId: { type: 'organize'}, |
|
|
|
|
|
JContent: { type: 'textarea' }, |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 数据源 |
|
|
|
|
|
dataSource: { |
|
|
|
|
|
JournalSend: { |
|
|
|
|
|
JTypeId: [], |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
async onLoad({ type, id }) { |
|
|
|
|
|
await this.init(type, id) |
|
|
|
|
|
|
|
|
ready: false, |
|
|
|
|
|
formData:{ |
|
|
|
|
|
Eval_Questions:[] |
|
|
|
|
|
}, |
|
|
|
|
|
submitParams:null, |
|
|
|
|
|
uTexts:{}, |
|
|
|
|
|
checkBoxs:{}, |
|
|
|
|
|
validate:{}, |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
async onLoad({ id,EmpNo,LessonNo }) { |
|
|
|
|
|
this.submitParams = {EmpNo,LessonNo} |
|
|
|
|
|
await this.init(id) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
checkBoxGroupChange(id,value){ |
|
|
|
|
|
this.checkBoxs[id] = value |
|
|
|
|
|
}, |
|
|
// 页面初始化 |
|
|
// 页面初始化 |
|
|
async init(type, id) { |
|
|
|
|
|
this.LOADING('加载数据中...') |
|
|
|
|
|
|
|
|
|
|
|
this.id = id |
|
|
|
|
|
this.mode = type |
|
|
|
|
|
this.edit = ['create', 'edit'].includes(this.mode) |
|
|
|
|
|
|
|
|
|
|
|
// 拉取表单数据,同时拉取所有来自数据源的选单数据 |
|
|
|
|
|
await Promise.all([ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
() => {} |
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
async init( id ) { |
|
|
|
|
|
this.LOADING('加载数据中...') |
|
|
|
|
|
this.id = id |
|
|
await this.fetchForm() |
|
|
await this.fetchForm() |
|
|
|
|
|
|
|
|
this.ready = true |
|
|
this.ready = true |
|
@@ -132,15 +132,18 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 加载表单数据 |
|
|
// 加载表单数据 |
|
|
async fetchForm() { |
|
|
|
|
|
if (this.mode === 'create') { |
|
|
|
|
|
this.origin = await this.getDefaultForm() |
|
|
|
|
|
} else { |
|
|
|
|
|
const result = await this.HTTP_GET('learun/adms/eval/paper', {VID:this.id}) |
|
|
|
|
|
this.origin = await this.formatFormData(result) |
|
|
|
|
|
console.log(result,"result") |
|
|
|
|
|
} |
|
|
|
|
|
this.current = this.COPY(this.origin) |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 |
|
|
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 |
|
@@ -156,29 +159,78 @@ export default { |
|
|
break |
|
|
break |
|
|
|
|
|
|
|
|
case 'save': |
|
|
case 'save': |
|
|
const verifyResult = this.verifyForm() |
|
|
|
|
|
if (verifyResult.length > 0) { |
|
|
|
|
|
this.CONFIRM('表单验证失败', verifyResult.join('\n')) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) { |
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交本页表单内容吗?', true))) { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.LOADING('正在提交...') |
|
|
|
|
|
const postData = await this.getPostData(this.id) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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/EducationalAdministration/Journal/save', postData, '表单提交保存失败').then(success => { |
|
|
this.HTTP_POST('learun/adms/EducationalAdministration/Journal/save', postData, '表单提交保存失败').then(success => { |
|
|
this.HIDE_LOADING() |
|
|
this.HIDE_LOADING() |
|
|
if (!success) { |
|
|
if (!success) { |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.EMIT('EducationalAdministrationJournalSend-list-change') |
|
|
|
|
|
this.NAV_BACK() |
|
|
|
|
|
this.TOAST('提交保存成功') |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
this.NAV_BACK() |
|
|
|
|
|
this.TOAST('提交保存成功') |
|
|
|
|
|
}) |
|
|
break |
|
|
break |
|
|
|
|
|
|
|
|
case 'delete': |
|
|
case 'delete': |
|
@@ -214,4 +266,25 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
|
|
|
|
|
|
</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> |