<template>
  <div class="dialog" v-if="dialogForm">
    <div class="head_box">
      <span class="title">保安培训教学大纲{{ title }}</span>
      <div>
        <el-button size="small" v-if="openType != 'detail'" @click="save" type="primary"  :loading="loading">保存</el-button>
        <el-button size="small" @click="close">关闭</el-button>
      </div>
    </div>
    <div class="cntinfo">
      <FormMessage ref="FormRef" v-model="listQuery" :disabled="openType == 'detail'" :rules="rules" :formList="formList">
      </FormMessage>
    </div>
  </div>
</template>

<script setup>
import { qcckPost , qcckGet} from "@/api/qcckApi.js";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { ref, reactive,defineEmits,getCurrentInstance } from 'vue';
const emit = defineEmits(["refresh"]);
const props = defineProps({
  dic: {
    type: Object,
    default: () => {}
  }
})
const { proxy } = getCurrentInstance();
const dialogForm = ref(false);
const title = ref('');
const FormRef = ref();
const loading = ref(false);
const listQuery = ref({});
const openType = ref("")

const rules = reactive({
  pxlx: [{ required: true, message: "请输入视频标题", trigger: "blur" }],
});
const formList = reactive([
  [
    { label: "培训类型", prop: "pxlx", type: "select", options: props.dic.D_PXDG_PXLX },
    { label: "教学项目", prop: "jxxm", type: "input" },
  ],
  [
    { label: "教学内容", prop: "dgnr", type: "input" },
    { label: "教学目标", prop: "jxmb", type: "input" },
  ],
  [
    { label: "学时安排", prop: "gksc", type: "input" },
  ],
  [
    { label: "上传附件", prop: "fj", type: "upload", isAll: true, showBtn: true, isImg: false },
  ],
])


// 初始化数据
const init = (type, id,) => {
  dialogForm.value = true;
   openType.value = type;
  title.value = type == "add" ? "新增" : "编辑";
  if(id) getDateById(id)
};

function getDateById (id) {
  qcckPost({},`/mosty-base/baxx/jxda/getInfo/${id}`).then((res) => {
    res.fj = res.fj ? JSON.parse(res.fj):[]
    listQuery.value = res || {};
  })
}

const save = () => {
  FormRef.value.submit((val)=>{
    loading.value = true;
    let url = title.value == '新增' ? `/bagl/mosty-base/baxx/jxda/add` : `/bagl/mosty-base/baxx/jxda/edit`;
    let params = { ...val }
    params.fj = params.fj ? JSON.stringify(params.fj):''

    qcckPost(params, url).then(() => {
      loading.value = false;
      proxy.$message.success("保存成功");
      emit("refresh");
      close();
    }).catch(() => {
      loading.value = false;
    })
  });
}
const close = () => {
  dialogForm.value = false;
  listQuery.value.fj = []
  FormRef.value.reset()
};;

defineExpose({init})
</script>

<style lang="scss" scoped>
@import "@/assets/css/layout.scss";
.mapBox{
  width: calc(100% - 24rem);
  height:500px;
  overflow: hidden;
  margin: 0 12rem;
}
</style>
