Kaynağa Gözat

fiex:搜索栏教育类型依据修改更新

Tang 3 yıl önce
ebeveyn
işleme
f398fce03f

+ 305 - 278
src/components/searchBoxNew.vue

@@ -57,276 +57,280 @@
         筛选:
       </div>
       <el-form :inline="true" :model="formData" class="tsxnz demo-form-inline">
-        <template v-for="(item, index) in formList">
-          <el-form-item :key="index" :label="item.label" v-if="ifCs(item)">
-            <!-- 教育类型 -->
-            <el-select
-              v-if="item.scope === 'educationType'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-              @change="changeEducationType"
-            >
-              <el-option
-                v-for="(items, indexs) in educationType"
-                :key="indexs"
-                :label="items.educationName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 业务层次 -->
-            <el-select
-              v-else-if="item.scope === 'businessLevel'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-              @change="changeBusinessLevel"
-            >
-              <el-option
-                v-for="(items, indexs) in newBusinessLevel"
-                :key="indexs"
-                :label="items.projectName + '-' + items.businessName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 院校 -->
-            <el-select
-              v-else-if="item.scope === 'schoolList'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in newSchoolList"
-                :key="indexs"
-                :label="items.schoolName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 专业-根据教育类型筛选 -->
-            <el-select
-              v-else-if="item.scope === 'Professional'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in newProfessional"
-                :key="indexs"
-                :label="items.categoryName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 专业 -->
-            <el-select
-              v-else-if="item.scope === 'ProfessionalList'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in Professional"
-                :key="indexs"
-                :label="items.categoryName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 科目 -->
-            <el-select
-              v-else-if="item.scope === 'sujectType'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in newSujectType"
-                :key="indexs"
-                :label="items.subjectName"
-                :value="items.id"
-              ></el-option>
-            </el-select>
-            <!-- 题目类型 -->
-            <el-select
-              v-else-if="item.scope === 'selectBank'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in optionsBank"
-                :key="indexs"
-                :label="items.label"
-                :value="items.value"
-              ></el-option>
-            </el-select>
-            <!-- 试卷类型 -->
-            <el-select
-              v-else-if="item.scope === 'paperType'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in paperType"
-                :key="indexs"
-                :label="items.label"
-                :value="items.value"
-              ></el-option>
-            </el-select>
-            <!-- 考试标题 -->
-            <el-select
-              v-else-if="item.scope === 'examList'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in examList"
-                :key="indexs"
-                :label="items.applyName"
-                :value="items.applyId"
-              ></el-option>
-            </el-select>
-            <!-- 前培标题 -->
-            <el-select
-              v-else-if="item.scope === 'beforeList'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in beforeList"
-                :key="indexs"
-                :label="items.beforeName"
-                :value="items.beforeId"
-              ></el-option>
-            </el-select>
-            <!-- 自定义select -->
-            <el-select
-              :clearable="item.noClear === false ? false : true"
-              v-else-if="item.scope === 'select'"
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
+        <el-form-item
+          v-for="(item, index) in formListComput(formList)"
+          :key="index"
+          :label="item.label"
+        >
+          <!-- 教育类型 -->
+          <el-select
+            v-if="item.scope === 'educationType'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+            @change="changeEducationType"
+          >
+            <el-option
+              v-for="(items, indexs) in educationType"
+              :key="indexs"
+              :label="items.educationName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+          <!-- 业务层次 -->
+          <el-select
+            v-else-if="item.scope === 'businessLevel'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+            @change="changeBusinessLevel"
+          >
+            <el-option
+              v-for="(items, indexs) in newBusinessLevel"
+              :key="indexs"
+              :label="items.projectName + '-' + items.businessName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+          <!-- 院校 -->
+          <el-select
+            v-else-if="item.scope === 'schoolList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in newSchoolList"
+              :key="indexs"
+              :label="items.schoolName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+
+          <!-- 专业-根据教育类型筛选 -->
+          <el-select
+            v-else-if="item.scope === 'Professional'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in newProfessional"
+              :key="indexs"
+              :label="items.categoryName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+
+          <!-- 专业 -->
+          <el-select
+            v-else-if="item.scope === 'ProfessionalList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in Professional"
+              :key="indexs"
+              :label="items.categoryName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+          <!-- 科目 -->
+          <el-select
+            v-else-if="item.scope === 'sujectType'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in newSujectType"
+              :key="indexs"
+              :label="items.subjectName"
+              :value="items.id"
+            ></el-option>
+          </el-select>
+          <!-- 题目类型 -->
+          <el-select
+            v-else-if="item.scope === 'selectBank'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in optionsBank"
+              :key="indexs"
+              :label="items.label"
+              :value="items.value"
+            ></el-option>
+          </el-select>
+          <!-- 试卷类型 -->
+          <el-select
+            v-else-if="item.scope === 'paperType'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in paperType"
+              :key="indexs"
+              :label="items.label"
+              :value="items.value"
+            ></el-option>
+          </el-select>
+          <!-- 考试标题 -->
+          <el-select
+            v-else-if="item.scope === 'examList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in examList"
+              :key="indexs"
+              :label="items.applyName"
+              :value="items.applyId"
+            ></el-option>
+          </el-select>
+          <!-- 前培标题 -->
+          <el-select
+            v-else-if="item.scope === 'beforeList'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in beforeList"
+              :key="indexs"
+              :label="items.beforeName"
+              :value="items.beforeId"
+            ></el-option>
+          </el-select>
+          <!-- 自定义select -->
+          <el-select
+            :clearable="item.noClear === false ? false : true"
+            v-else-if="item.scope === 'select'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in item.options"
+              :key="indexs"
+              :label="items.label"
+              :value="items.value"
+              :disabled="items.disable"
+            ></el-option>
+          </el-select>
+          <div v-else-if="item.scope === 'numList'">
+            <el-input-number
+              :controls="false"
+              v-model="formData[item.prop1]"
+              controls-position="right"
+              :min="0"
+              :max="100"
               :size="size"
-            >
-              <el-option
-                v-for="(items, indexs) in item.options"
-                :key="indexs"
-                :label="items.label"
-                :value="items.value"
-                :disabled="items.disable"
-              ></el-option>
-            </el-select>
-            <div v-else-if="item.scope === 'numList'">
-              <el-input-number
-                :controls="false"
-                v-model="formData[item.prop1]"
-                controls-position="right"
-                :min="0"
-                :max="100"
-                :size="size"
-                @change="
-                  handleChanges(formData[item.prop1], formData[item.prop2])
-                "
-              ></el-input-number
-              >~
-              <el-input-number
-                :controls="false"
-                v-model="formData[item.prop2]"
-                controls-position="right"
-                :min="0"
-                :max="100"
-                :size="size"
-                @change="
-                  handleChanges(formData[item.prop1], formData[item.prop2])
-                "
-              ></el-input-number>
-            </div>
+              @change="
+                handleChanges(formData[item.prop1], formData[item.prop2])
+              "
+            ></el-input-number
+            >~
             <el-input-number
-              v-else-if="item.scope === 'inputNumber'"
-              v-model="formData[item.prop]"
+              :controls="false"
+              v-model="formData[item.prop2]"
               controls-position="right"
               :min="0"
               :max="100"
               :size="size"
+              @change="
+                handleChanges(formData[item.prop1], formData[item.prop2])
+              "
             ></el-input-number>
-            <el-cascader
-              v-else-if="item.scope === 'cascader'"
-              v-model="formData[item.prop]"
-              :options="item.options"
-              :size="size"
-              :props="{
-                label: item.props.label,
-                value: item.props.value,
-                checkStrictly: true,
-                emitPath: false,
-              }"
-            ></el-cascader>
-            <el-cascader
-              v-else-if="item.scope === 'cascaderDZ'"
-              v-model="formData[item.prop]"
-              :options="item.options"
-              :size="size"
-              :props="{
-                label: item.props.label,
-                value: item.props.value,
-                checkStrictly: true,
-                emitPath: false,
-              }"
-              clearable
-            ></el-cascader>
+          </div>
+          <el-input-number
+            v-else-if="item.scope === 'inputNumber'"
+            v-model="formData[item.prop]"
+            controls-position="right"
+            :min="0"
+            :max="100"
+            :size="size"
+          ></el-input-number>
+          <el-cascader
+            v-else-if="item.scope === 'cascader'"
+            v-model="formData[item.prop]"
+            :options="item.options"
+            :size="size"
+            :props="{
+              label: item.props.label,
+              value: item.props.value,
+              checkStrictly: true,
+              emitPath: false,
+            }"
+          ></el-cascader>
+          <el-cascader
+            v-else-if="item.scope === 'cascaderDZ'"
+            v-model="formData[item.prop]"
+            :options="item.options"
+            :size="size"
+            :props="{
+              label: item.props.label,
+              value: item.props.value,
+              checkStrictly: true,
+              emitPath: false,
+            }"
+            clearable
+          ></el-cascader>
+          <el-date-picker
+            v-else-if="item.scope === 'datePicker'"
+            v-model="formData[item.prop]"
+            type="datetimerange"
+            :picker-options="pickerOptions"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            align="right"
+            :size="size"
+            value-format="timestamp"
+          >
+          </el-date-picker>
+          <el-date-picker
+            v-else-if="item.scope === 'datePickerA'"
+            v-model="formData[item.prop]"
+            type="datetime"
+            :size="size"
+            placeholder="选择日期时间"
+            value-format="timestamp"
+          >
+          </el-date-picker>
+          <div v-else-if="item.scope === 'moreDataPicker'">
             <el-date-picker
-              v-else-if="item.scope === 'datePicker'"
-              v-model="formData[item.prop]"
-              type="datetimerange"
-              :picker-options="pickerOptions"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              align="right"
-              :size="size"
+              v-model="formData[item.prop1]"
+              type="date"
               value-format="timestamp"
+              :size="size"
+              :placeholder="item.placeholder1"
+              @change="change1(item.prop1, item.prop2)"
             >
             </el-date-picker>
             <el-date-picker
-              v-else-if="item.scope === 'datePickerA'"
-              v-model="formData[item.prop]"
-              type="datetime"
+              style="margin-left: 10px"
+              v-model="formData[item.prop2]"
+              type="date"
               :size="size"
-              placeholder="选择日期时间"
               value-format="timestamp"
+              :placeholder="item.placeholder2"
+              @change="change2(item.prop1, item.prop2)"
             >
             </el-date-picker>
-            <div v-else-if="item.scope === 'moreDataPicker'">
-              <el-date-picker
-                v-model="formData[item.prop1]"
-                type="date"
-                value-format="timestamp"
-                :size="size"
-                :placeholder="item.placeholder1"
-                @change="change1(item.prop1, item.prop2)"
-              >
-              </el-date-picker>
-              <el-date-picker
-                style="margin-left: 10px"
-                v-model="formData[item.prop2]"
-                type="date"
-                :size="size"
-                value-format="timestamp"
-                :placeholder="item.placeholder2"
-                @change="change2(item.prop1, item.prop2)"
-              >
-              </el-date-picker>
-            </div>
-            <el-input
-              v-else
-              clearable
-              v-model="formData[item.prop]"
-              :placeholder="item.placeholder"
-              :size="size"
-            ></el-input>
-          </el-form-item>
-        </template>
+          </div>
+          <el-input
+            v-else
+            clearable
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          ></el-input>
+        </el-form-item>
         <el-form-item>
           <el-button :size="size" type="primary" @click="search"
             >查询</el-button
@@ -344,6 +348,7 @@ export default {
   props: ["formList", "topType", "formData", "shType", "redIcon"], //参考文档 component.md
   data() {
     return {
+      tireStatus: "", //当前选择的教育类型tireStatus
       lists: [
         {
           label: "全部",
@@ -480,15 +485,51 @@ export default {
   },
   computed: {
     ...mapGetters(["educationType", "Professional", "examList", "beforeList"]),
+    formListComput: function () {
+      return function (item) {
+        var newOption = JSON.parse(JSON.stringify(item));
+        const arrsy = newOption.filter((items) => {
+          if (
+            items.scope === "businessLevel" ||
+            items.scope === "schoolList" ||
+            items.scope === "Professional" ||
+            items.scope === "sujectType"
+          ) {
+            if (!this.formData[items.edu]) {
+              console.log(1);
+            } else {
+              const indexType = this.educationType.findIndex((its) => {
+                return its.id === this.formData[items.edu];
+              });
+              if (
+                items.scope === "businessLevel" &&
+                this.educationType[indexType].tireStatus.indexOf("2") !== -1
+              ) {
+                return items;
+              }
+              if (
+                items.scope === "schoolList" &&
+                this.educationType[indexType].tireStatus.indexOf("3") !== -1
+              ) {
+                return items;
+              }
+              if (
+                items.scope === "Professional" &&
+                this.educationType[indexType].tireStatus.indexOf("4") !== -1
+              ) {
+                return items;
+              }
+            }
+          } else {
+            return items;
+          }
+        });
+        return arrsy;
+      };
+    },
   },
   created() {
     var self = this;
-    // document.onkeydown = function (e) {
-    //   var key = window.event.keyCode;
-    //   if (key === 13) {
-    //     self.search();
-    //   }
-    // };
   },
   methods: {
     change1(data1, data2) {
@@ -521,23 +562,6 @@ export default {
       this.formData.status = types;
       this.$emit("search", 3);
     },
-    // classSearch(status) {
-    //   this.formData.classType = status;
-    //   this.$emit("search", 3);
-    // },
-    ifCs(item) {
-      if (item.scope === "businessLevel" && !this.formData[item.edu]) {
-        return false;
-      } else if (item.scope === "schoolList" && !this.formData[item.edu]) {
-        return false;
-      } else if (item.scope === "Professional" && !this.formData[item.edu]) {
-        return false;
-      } else if (item.scope === "sujectType" && !this.formData[item.edu]) {
-        return false;
-      } else {
-        return true;
-      }
-    },
     //搜索
     search() {
       this.$emit("search", 1);
@@ -554,6 +578,10 @@ export default {
       }
     },
     changeEducationType(id) {
+      const indexs = this.educationType.findIndex((item) => {
+        return item.id === id;
+      });
+      this.tireStatus = this.educationType[indexs].tireStatus;
       if (this.formData.businessId) {
         this.formData.businessId = "";
       }
@@ -587,7 +615,6 @@ export default {
         .then((res) => {
           this.newSujectType = res.rows;
         });
-      console.log(this.newBusinessLevel, this.newSchoolList);
     },
     changeBusinessLevel(id) {},
   },

+ 1 - 1
src/views/education/classManageMent/classHoursReview/studyTimes.vue

@@ -1052,7 +1052,7 @@ export default {
             this.telPhone = data.telphone.value;
           }
           this.userData = res.rows[0];
-          console.log(this.userData,123)
+          console.log(this.userData, 123);
         });
     },
     search() {