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 >
2024-06-18 19:48:24 +08:00
< a -col :span ="24" >
2025-03-06 10:04:04 +08:00
< a -form -item label = "姓名" v-bind ="validateInfos.openid" >
< JSelectMultiple v -model :value ="formData.openid" placeholder = "请选择下拉多选" :dictCode ="`xxhbuser,xm,gh,zzzt=11`" > < / JSelectMultiple >
< / a - f o r m - i t e m >
< / a - c o l >
<!-- < a -col :span ="24" >
2024-06-18 19:48:24 +08:00
< a -form -item label = "工号" v-bind ="validateInfos.openid" >
< a -input v -model :value ="formData.openid" placeholder = "请输入工号" :disabled ="disabled" @change ="handleTeacherNameChange" > < / a -input >
2023-12-07 08:17:08 +08:00
< / a - f o r m - i t e m >
2024-06-18 19:48:24 +08:00
< / a - c o l >
2023-12-21 21:47:19 +08:00
< a -col :span ="24" >
2024-06-18 19:48:24 +08:00
< a -form -item label = "姓名" v-bind ="validateInfos.teacherName" >
< a -input v -model :value ="formData.teacherName" placeholder = "请输入姓名" :disabled ="disabled" > < / a - i n p u t >
2023-12-21 21:47:19 +08:00
< / a - f o r m - i t e m >
2025-03-06 10:04:04 +08:00
< / a - c o l > - - >
2024-04-17 08:38:20 +08:00
<!-- < a -col :span ="24" >
2023-12-07 08:17:08 +08:00
< 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 >
2024-04-17 08:38:20 +08:00
< / a - c o l > - - >
2023-12-07 08:17:08 +08:00
< a -col :span ="24" >
2023-12-21 21:47:19 +08:00
< a -form -item label = "推送内容" v-bind ="validateInfos.ytkcs" >
2025-03-06 10:04:04 +08:00
< a -textarea v -model :value ="formData.ytkcs" placeholder = "请输入推送内容" :disabled ="disabled" > < / a - t e x t a r e a >
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 > - - >
2024-04-17 08:38:20 +08:00
<!-- < a -col :span ="24" v-show ="formData.remark" >
2023-12-07 08:17:08 +08:00
< 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 >
2024-04-17 08:38:20 +08:00
< / a - c o l > - - >
2023-12-07 08:17:08 +08:00
< / 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' ;
2025-03-06 10:04:04 +08:00
import JSelectMultiple from '/@/components/Form/src/jeecg/components/JSelectMultiple.vue' ;
2023-12-07 08:17:08 +08:00
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 : '' ,
2024-05-09 15:26:32 +08:00
// teacherName: '',
2024-04-17 08:38:20 +08:00
// xqxn: '',
2023-12-07 08:17:08 +08:00
ytkcs : '' ,
2023-12-21 21:47:19 +08:00
// sjtkcs: '',
2023-12-07 08:17:08 +08:00
openid : '' ,
2024-04-17 08:38:20 +08:00
// remark: '',
2023-12-07 08:17:08 +08:00
} ) ;
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 = {
2024-05-09 15:26:32 +08:00
// teacherName: [{ required: true, message: '请输入教师姓名!'},],
2024-04-17 08:38:20 +08:00
openid : [ { required : true , message : '请输入微信openid!' } , ] ,
2024-05-09 15:26:32 +08:00
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 > ( { } ) ;
2024-06-18 19:48:24 +08:00
const getopenid = ( queryParam ) => defHttp . post ( { url : '/config/kcExportConfigTpkwcqkjzglx/getTeacherInfo' , params : queryParam } ) ;
2023-12-07 08:17:08 +08:00
function handleTeacherNameChange ( ) {
2024-06-18 19:48:24 +08:00
var gh = formData . openid ;
queryParam . value . gh = gh
2023-12-07 08:17:08 +08:00
getopenid ( queryParam . value ) . then ( res => {
2024-06-18 19:48:24 +08:00
console . log ( ` 🚀 ~ getopenid ~ res: ` , res )
formData . teacherName = res ? . xm
2023-12-07 08:17:08 +08:00
} )
}
/ * *
* 提交数据
* /
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 >