有时百感交集,却又百口莫辩,那些很远的事仿佛就在昨天 <!--编辑公共组件代码-->

Do you remember

公共组件中的公共模块

 

 

<template>
  <!-- 新建优惠券页面 element-->
  <div class="newRoleManagement">
    <!-- 操作记录 -->
    <el-row style="margin-bottom:0;margin-top:24px">
      <el-col :span="24">
        <div class="grid-content bg-purple-dark">
          <div class="roleManagement_top">
            {{ newRoleManagementVal.action }}
          </div>
          <div class="roleManagement_top" style="border-bottom:none">
            <span class="spanSize">
              <i
                class="el-icon-tickets"
                style="font-size:20px;color:#688EF7;margin-right:6px"
              ></i>
              <i>空</i>
            </span>
            <span class="rightSpanSize">
              <i>空</i>
            </span>
          </div>
          <!-- 两个按钮 -->
          <div class="btnDiv">
            <el-button
              type="primary"
              class="btnReturn btnA"
              @click="handleClickBtnReturn()"
              >{{ newRoleManagementVal.returnBtn }}</el-button
            >
            <el-button
              type="primary"
              :plain="true"
              class="btnSubmit btnA"
              @click="submitForm()"
              >{{ newRoleManagementVal.submitBtn }}</el-button
            >
          </div>
        </div>
      </el-col>
    </el-row>
  </div>
</template>

<script>
import "element-ui/lib/theme-chalk/index.css";
import "iview/dist/styles/iview.css";
export default {
  components: {},
  props: {},
  data() {
    return {
      // 绑定的标头
      newRoleManagementVal: {
        sizeCon: "为必填项",
        returnBtn: "返回",
        submitBtn: "提交",
        action: "操作记录"
      }
    };
  },
  watch: {},
  computed: {},
  methods: {
    // 提交事件
    submitForm() {
      this.$emit("abcSubmit");
    },
    handleClickBtnReturn() {
      this.$emit("abcReturn");
    }
  },
  created() {},
  mounted() {}
};
</script>
<style lang="scss" type="text/css" scoped>
@import "../../../style/syllabusLeagueClass_css/action_css/actionModule.scss";
</style>

 

公共组件

 

 

<template>
  <div class="bigDiv">
    <!-- 训练营课时的新建与编辑 -->
    <el-row>
      <el-col :span="24">
        <div class="grid-content bg-purple-dark">
          <el-form
            :model="ruleForm"
            :rules="rules"
            ref="ruleForm"
            label-width="100px"
            class="demo-ruleForm"
          >
            <el-row
              v-for="(item, index) in ruleForm.formInlineList"
              :key="index"
            >
              <el-col :span="24">
                <div class="top">{{ item.titleTitle }}</div>
                <div style="padding-left:35px">
                  <el-form-item
                    :label="item.labelVal"
                    :prop="'formInlineList.' + index + '.coachSrearchShopValue'"
                    :rules="item.rules.coachSrearchShopValue"
                  >
                    <el-input
                      v-model="item.coachSrearchShopValue"
                      style="width:524px;"
                      :placeholder="item.placerHolder"
                      suffix-icon="el-icon-search"
                      @input="dimSearch()"
                    >
                    </el-input>
                  </el-form-item>
                  <!-- 所属門店對應的三個P標籤 -->
                  <div class="corresponding">
                    <p style="margin-bottom:16px">
                      {{ item.pCodeName }}<i>{{ item.pCode }}</i>
                    </p>
                    <p style="margin-bottom:16px">
                      {{ item.pNameName }}<i>{{ item.pName }}</i>
                    </p>
                    <p>
                      {{ item.pAaddressName }}<i>{{ item.pAaddress }}</i>
                    </p>
                  </div>
                </div>
                <div style="width:100%;height:24px;background:#e9eef3"></div>
              </el-col>
            </el-row>
            <!-- 循环结束 -->
            <el-row>
              <el-col :span="24">
                <div class="top">{{ ruleForm.titleTitle }}</div>
                <div style="padding-left:35px">
                  <el-form-item :label="ruleForm.labelVal" prop="value1">
                    <div class="block">
                      <el-date-picker
                        v-model="ruleForm.value1"
                        type="date"
                        placeholder="选择开课日期"
                        format="yyyy - MM - dd "
                        value-format="yyyy-MM-dd"
                        style="width:524px;"
                      >
                      </el-date-picker>
                    </div>
                  </el-form-item>
                  <el-form-item>
                    <span slot="label">
                      <b style="color:#fff">*</b>&nbsp;{{
                        ruleForm.labelValTwo
                      }}
                    </span>
                    <el-input
                      v-model="ruleForm.value2"
                      style="width:524px;"
                      :placeholder="ruleForm.placerHolder"
                    >
                    </el-input>
                  </el-form-item>
                </div>
              </el-col>
            </el-row>
          </el-form>
        </div>
      </el-col>
    </el-row>
    <!-- 底部操作记录 -->
    <footerDiv
      @abcReturn="say()"
      @abcSubmit="abcSubmit('ruleForm')"
    ></footerDiv>
  </div>
</template>

<script>
import "element-ui/lib/theme-chalk/index.css";
import "iview/dist/styles/iview.css";
import footerDiv from "./action_syllabus_training/index.vue";
import { trainingcamplessonscheduleList } from "../../api/syllabusTrainingCamp/index.js";
export default {
  components: {
    footerDiv
  },
  watch: {},
  props: {},
  data() {
    // 正则判断用于校验输入框的值是否与数据库匹配
    var checkAge = (rule, value, callback) => {
      if (!value) {
        return callback(new Error("请输入训练营名称"));
      }
      setTimeout(() => {
        // 判断输入框与返回数据是否一致,不一致清空对应显示
        if (value != this.dimValue_value) {
          callback(new Error("训练营名称不存在"));
          this.emptyVal();
        } else {
          callback();
        }
      }, 300);
    };
    return {
      ruleForm: {
        titleTitle: "课程相关",
        value1: "",
        value2: "",
        labelVal: "开课日期:",
        labelValTwo: "课时安排:",
        placerHolder: "请输入课时安排,如“每周一、三、五 19:00-20:00”",
        formInlineList: [
          {
            index: 1,
            coachSrearchShopValue: "",
            pCode: "",
            pName: "",
            pAaddress: "",
            rules: {
              coachSrearchShopValue: [
                { required: true, validator: checkAge, trigger: "blur" }
              ]
            },
            placerHolder: "搜索选择训练营",
            pCodeName: "场馆编号:",
            pNameName: "场馆名称:",
            pAaddressName: "场馆地址:",
            titleTitle: "训练营课程",
            labelVal: "训练营名称:"
          }
        ]
      },
      rules: {
        value1: [{ required: true, message: "请选择开课日期", trigger: "blur" }]
      },
      dimSearchVal: [], //获取所有数据
      dimValue_value: "" //获取训练营名称用于判断
    };
  },
  computed: {},
  methods: {
    say() {
      this.$emit("abcReturn");
    },
    // 提交事件
    abcSubmit(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          this.$emit("abcSubmit", this.ruleForm);
          this.$messageOK("success", "提交成功");
        } else {
          this.$messageOK("error", "提交失败,请输入完整");
        }
      });
    },
    // 模糊搜索 coachSrearchShopValue 如果有就显示如果没有就清空
    dimSearch() {
      this.dim();
    },
    dim() {
      let val = this.ruleForm.formInlineList[0].coachSrearchShopValue;
      let _val = this.ruleForm.formInlineList[0];
      let req = {
        trainingCampLessonName: val
      };
      trainingcamplessonscheduleList(req).then(res => {
        this.dimSearchVal = res.data.data.rows;
        if (res.data.code == "200") {
          this.dimSearchVal.map(item => {
            this.dimValue_value = item.trainingCampLesson.name; //获取训练营名称 用户判断
            let _item = item.trainingCampLesson.gymnasium;
            // 判断输入框是否与返回一致 一致就对应显示不一致就清空
            if (val == item.trainingCampLesson.name) {
              _val.pCode = _item.code;
              _val.pName = _item.name;
              _val.pAaddress = _item.address;
            } else {
              val = "";
              this.emptyVal();
            }
          });
        } else {
          return false;
        }
      });
    },
    // 用于搜索不成功后清空的函数
    emptyVal() {
      let empty_val = this.ruleForm.formInlineList[0];
      // 底部对应的三个P标签
      empty_val.pCode = "";
      empty_val.pName = "";
      empty_val.pAaddress = "";
    }
  },
  created() {},
  mounted() {}
};
</script>
<style lang="scss" type="text/css" scoped>
@import "../../style/syllabusTrainingCamp_css/syllabusTrainingCamp.scss";
</style>

父组件( 使用公共组件的组件 )

 

<template>
  <div class="wrapper">
    <editSyllabusTrainingCamp
      @abcReturn="say()"
      @abcSubmit="abcSubmit"
    ></editSyllabusTrainingCamp>
  </div>
</template>

<script>
import editSyllabusTrainingCamp from "../syllabusTrainingCamp_CommonAddEdit/index.vue";
import { trainingcamplessonscheduleEdit } from "../../api/syllabusTrainingCamp/index.js";
export default {
  components: {
    editSyllabusTrainingCamp
  },
  props: {},
  data() {
    return {};
  },
  watch: {},
  computed: {},
  methods: {
    // 自定义事件返回上一级
    say() {
      this.$alertMsgBox(
        "是否确认退出新建",
        "系统提示",
        "此项为返回上一级",
        "el-icon-warning",
        "red"
      )
        .then(() => {
          this.$router.go(-1);
          this.$messageOK("success", "已退出");
        })
        .catch(() => {
          this.$messageOK("info", "已取消");
        });
    },
    // 编辑接口
    abcSubmit(newVval) {
      const req = {
        id: this.$route.query.id,
        openLessonDate: newVval.value1
      };
      trainingcamplessonscheduleEdit(req).then(res => {
        if (res.data.code == "200") {
          this.$router.go(-1);
        } else {
          return false;
        }
      });
    }
  },
  created() {},
  mounted() {}
};
</script>
<style lang="scss" type="text/css" scoped></style>

 

posted @ 2019-10-31 19:43  写手在作画  阅读(253)  评论(0编辑  收藏  举报