2023-12-07 08:17:08 +08:00
< template >
< a -spin :spinning ="confirmLoading" >
< a -form ref = "formRef" class = "antd-modal-form" :labelCol ="labelCol" :wrapperCol ="wrapperCol" >
< a -row >
< a -col :span ="24" >
< a -form -item label = "教师姓名" v-bind ="validateInfos.teacherName" >
< a -input v -model :value ="formData.teacherName" placeholder = "请输入教师姓名" :disabled ="disabled" @change ="handleTeacherNameChange" > < / a -input >
< / a - f o r m - i t e m >
< / a - c o l >
2023-12-21 21:47:19 +08:00
< a -col :span ="24" >
< a -form -item label = "微信openid" v-bind ="validateInfos.openid" >
< a -input v -model :value ="formData.openid" placeholder = "请输入微信openid" :disabled ="disabled" > < / a - i n p u t >
< / a - f o r m - i t e m >
< / a - c o l >
2023-12-07 08:17:08 +08:00
< a -col :span ="24" >
< a -form -item label = "学期学年" v-bind ="validateInfos.xqxn" >
< j -dict -select -tag ref = "xqDictTag" placeholder = "请选择学年学期" v -model :value ="formData.xqxn" :disabled ="disabled" dictCode = "kc_xqxn_history,title,title,true order by start_time desc" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :span ="24" >
2023-12-21 21:47:19 +08:00
< a -form -item label = "推送内容" v-bind ="validateInfos.ytkcs" >
< a -input v -model :value ="formData.ytkcs" placeholder = "请输入推送内容, 最大20个字" :disabled ="disabled" > < / a - i n p u t >
2023-12-07 08:17:08 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
2023-12-21 21:47:19 +08:00
<!-- < a -col :span ="24" >
2023-12-07 08:17:08 +08:00
< a -form -item label = "实际听课次数" v-bind ="validateInfos.sjtkcs" >
< a -input v -model :value ="formData.sjtkcs" placeholder = "请输入实际听课次数" :disabled ="disabled" > < / a - i n p u t >
< / a - f o r m - i t e m >
2023-12-21 21:47:19 +08:00
< / a - c o l > - - >
2023-12-07 08:17:08 +08:00
< a -col :span ="24" v-show ="formData.remark" >
< a -form -item label = "备注" v-bind ="validateInfos.remark" >
< a -textarea v -model :value ="formData.remark" placeholder = "请输入实际听课次数" :disabled ="disabled" style = "height: 80px;" > < / a - t e x t a r e a >
< / a - f o r m - i t e m >
< / a - c o l >
< / a - r o w >
< / a - f o r m >
< / a - s p i n >
< / template >
< script lang = "ts" setup >
import { ref , reactive , defineExpose , nextTick , defineProps , computed , onMounted } from 'vue' ;
import { defHttp } from '/@/utils/http/axios' ;
import { useMessage } from '/@/hooks/web/useMessage' ;
import { getValueType } from '/@/utils' ;
import { saveOrUpdate } from '../KcWechatSendLog.api' ;
import { Form } from 'ant-design-vue' ;
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue' ;
const props = defineProps ( {
formDisabled : { type : Boolean , default : false } ,
formData : { type : Object , default : ( ) => { } } ,
formBpm : { type : Boolean , default : true }
} ) ;
const formRef = ref ( ) ;
const useForm = Form . useForm ;
const emit = defineEmits ( [ 'register' , 'ok' ] ) ;
const formData = reactive < Record < string , any > > ( {
id : '' ,
teacherName : '' ,
xqxn : '' ,
ytkcs : '' ,
2023-12-21 21:47:19 +08:00
// sjtkcs: '',
2023-12-07 08:17:08 +08:00
openid : '' ,
remark : '' ,
} ) ;
const { createMessage } = useMessage ( ) ;
const labelCol = ref < any > ( { xs : { span : 24 } , sm : { span : 5 } } ) ;
const wrapperCol = ref < any > ( { xs : { span : 24 } , sm : { span : 16 } } ) ;
const confirmLoading = ref < boolean > ( false ) ;
//表单验证
const validatorRules = {
teacherName : [ { required : true , message : '请输入教师姓名!' } , ] ,
xqxn : [ { required : true , message : '请选择学期学年!' } , ] ,
ytkcs : [ { required : true , message : '请输入应听课次数!' } , ] ,
2023-12-21 21:47:19 +08:00
// sjtkcs: [{ required: true, message: '请输入实际听课次数!'},],
2023-12-07 08:17:08 +08:00
} ;
const { resetFields , validate , validateInfos } = useForm ( formData , validatorRules , { immediate : true } ) ;
// 表单禁用
const disabled = computed ( ( ) => {
if ( props . formBpm === true ) {
if ( props . formData . disabled === false ) {
return false ;
} else {
return true ;
}
}
return props . formDisabled ;
} ) ;
/ * *
* 新增
* /
function add ( ) {
edit ( { } ) ;
}
/ * *
* 编辑
* /
function edit ( record ) {
nextTick ( ( ) => {
resetFields ( ) ;
//赋值
Object . assign ( formData , record ) ;
} ) ;
}
const queryParam = ref < any > ( { } ) ;
const getopenid = ( queryParam ) => defHttp . get ( { url : '/KcBdgxbcopy/kcBdgxbcopy/getOpenIdByName' , params : queryParam } ) ;
function handleTeacherNameChange ( ) {
var teacherName = formData . teacherName ;
console . log ( ` 🚀 ~ file: KcWechatSendLogForm.vue:95 ~ handleTeacherNameChange ~ teacherName: ` , teacherName )
queryParam . value . name = teacherName
getopenid ( queryParam . value ) . then ( res => {
console . log ( ` 🚀 ~ file: KcWechatSendLogForm.vue:106 ~ jclist ~ res: ` , res )
formData . openid = res . openid
console . log ( ` 🚀 ~ file: KcWechatSendLogForm.vue:110 ~ jclist ~ formData: ` , formData )
} )
}
/ * *
* 提交数据
* /
async function submitForm ( ) {
// 触发表单验证
await validate ( ) ;
confirmLoading . value = true ;
const isUpdate = ref < boolean > ( false ) ;
//时间格式化
let model = formData ;
if ( model . id ) {
isUpdate . value = true ;
}
//循环数据
for ( let data in model ) {
//如果该数据是数组并且是字符串类型
if ( model [ data ] instanceof Array ) {
let valueType = getValueType ( formRef . value . getProps , data ) ;
//如果是字符串类型的需要变成以逗号分割的字符串
if ( valueType === 'string' ) {
model [ data ] = model [ data ] . join ( ',' ) ;
}
}
}
await saveOrUpdate ( model , isUpdate . value )
. then ( ( res ) => {
if ( res . success ) {
createMessage . success ( res . message ) ;
emit ( 'ok' ) ;
} else {
createMessage . warning ( res . message ) ;
}
} )
. finally ( ( ) => {
confirmLoading . value = false ;
} ) ;
}
defineExpose ( {
add ,
edit ,
submitForm ,
} ) ;
< / script >
< style lang = "less" scoped >
. antd - modal - form {
min - height : 500 px ! important ;
overflow - y : auto ;
padding : 24 px 24 px 24 px 24 px ;
}
< / style >