dbsd_kczx/src/views/site/renKeJiaoCheng/baseForm.vue

151 lines
4.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<a-spin :spinning="confirmLoading">
<a-card>
1.选择订阅类型
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row>
<a-col :span="24">
<!-- <a-form-item label="课前15分钟提醒"> -->
<a-checkbox-group v-model:value="formData.kqtx">
<a-checkbox value="1"/>
</a-checkbox-group>
课前15分钟提醒
<!-- <j-checkbox type="checkbox" v-model:value="formData.kqtx" dictCode="skzc" placeholder="请选择开课周次"/> -->
<!-- </a-form-item> -->
</a-col>
<a-col :span="24">
<!-- <a-form-item label="每天下午4点提醒明日课程"> -->
<a-checkbox-group v-model:value="formData.mrkctx">
<a-checkbox value="1"/>
</a-checkbox-group>
每天下午4点提醒明日课程
<!-- <j-checkbox type="checkbox" v-model:value="formData.mrkctx" dictCode="skzc" placeholder="请选择开课周次"/> -->
<!-- </a-form-item> -->
</a-col>
</a-row>
</a-form>
</a-card>
</a-spin>
</template>
<script lang="ts" setup>
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted, watch } from 'vue';
import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
// import JCheckbox from "/@/components/Form/src/jeecg/components/JCheckbox.vue";
import { getValueType } from '/@/utils';
import { Form } from 'ant-design-vue';
import { getUserId } from '/@/views/site/utils/index';
const formRef = ref();
const useForm = Form.useForm;
const emit = defineEmits(['register', 'ok']);
const formData = reactive<Record<string, any>>({
userid: '',
kqtx: '1',
mrkctx: '1',
});
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 = {
};
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
/**
* 新增
*/
function add() {
edit({});
}
/**
* 编辑
*/
function edit( record ) {
nextTick(() => {
resetFields();
//查询数据
let recordData = {};
let params = { userid: getUserId(), pageSize: 1 };//没有ID用list查吧
defHttp.get({ url: '/kcKechengtixingdingyue/kcKechengtixingdingyue/list', params }).then(res => {
recordData = ((res?.records) ?? [])[0]
// recordData = {} //DEBUG
Object.assign(formData, recordData);
})
//赋值
});
}
/**
* 提交数据
*/
async function submitForm() {
// 触发表单验证
await validate();
confirmLoading.value = true;
const isUpdate = ref<boolean>(false);
//时间格式化
// let model = Object.assign({},formData);
let model = formData;
if (model.userid) {
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(',');
}
}
}
model.kqtx = model.kqtx || 0;
model.mrkctx = model.mrkctx || 0;
let url = '';
if(isUpdate.value){
url = '/kcKechengtixingdingyue/kcKechengtixingdingyue/edit';
}else{
url = '/kcKechengtixingdingyue/kcKechengtixingdingyue/add';
//新增补充用户ID
model.userid = getUserId();
}
await defHttp.post({ url: url, params: model }, { isTransformResponse: false }).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: 500px !important;
overflow-y: auto;
padding: 24px 24px 24px 24px;
}
</style>