|
@@ -0,0 +1,788 @@
|
|
|
+<template>
|
|
|
+ <div id="">
|
|
|
+ <BaseDialog
|
|
|
+ width="1400px"
|
|
|
+ :isShow.sync="isShow"
|
|
|
+ title="新增"
|
|
|
+ @close="close"
|
|
|
+ @submit="submitForm"
|
|
|
+ @open="init"
|
|
|
+ >
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-form
|
|
|
+ label-position="right"
|
|
|
+ label-width="120px"
|
|
|
+ :model="listData"
|
|
|
+ :rules="rules"
|
|
|
+ ref="listData"
|
|
|
+ >
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="所属商品" prop="payer">
|
|
|
+ <span
|
|
|
+ style="margin-right: 20px"
|
|
|
+ v-if="listData.classGradeGoodsAddBos.length"
|
|
|
+ >{{ listData.goodsName }}</span
|
|
|
+ >
|
|
|
+ <el-button type="primary" size="small" @click="openGoodsBox">{{
|
|
|
+ listData.classGradeGoodsAddBos.length ? "更换商品" : "添加商品"
|
|
|
+ }}</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="班级名称" prop="className">
|
|
|
+ <el-input
|
|
|
+ style="width: 400px"
|
|
|
+ v-model="listData.className"
|
|
|
+ placeholder="请填写班级名称"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="学员上限" prop="studentUpper">
|
|
|
+ <el-input-number
|
|
|
+ :controls="false"
|
|
|
+ v-model="listData.studentUpper"
|
|
|
+ placeholder="请填写学员上限"
|
|
|
+ ></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="开放学习"
|
|
|
+ :prop="
|
|
|
+ listData.learningStatus == 3
|
|
|
+ ? 'learningTimeStart'
|
|
|
+ : 'learningStatus'
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <!-- <el-button
|
|
|
+ style="margin-right: 14px"
|
|
|
+ size="mini"
|
|
|
+ v-if="listData.learningStatus"
|
|
|
+ @click="listData.learningStatus = ''"
|
|
|
+ >清除选择</el-button
|
|
|
+ > -->
|
|
|
+ <el-radio-group
|
|
|
+ v-model="listData.learningStatus"
|
|
|
+ @change="changeLearning"
|
|
|
+ >
|
|
|
+ <el-radio :label="1">即刻</el-radio>
|
|
|
+ <el-radio :label="2">待定</el-radio>
|
|
|
+ <el-radio :label="3">日期</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-date-picker
|
|
|
+ v-if="listData.learningStatus === 3"
|
|
|
+ v-model="listData.learningTimeStart"
|
|
|
+ type="datetime"
|
|
|
+ value-format="timestamp"
|
|
|
+ placeholder="请选择开放学习时间"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="班级状态" prop="status">
|
|
|
+ <el-radio-group v-model="listData.status">
|
|
|
+ <el-radio :label="1">开启</el-radio>
|
|
|
+ <el-radio :label="0">关闭</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="官方班级号">
|
|
|
+ <el-button
|
|
|
+ style="margin-right: 14px"
|
|
|
+ size="mini"
|
|
|
+ v-if="listData.classStatus || listData.classStatus === 0"
|
|
|
+ @click="clearClassNumber"
|
|
|
+ >清除选择</el-button
|
|
|
+ >
|
|
|
+ <el-radio-group
|
|
|
+ v-model="listData.classStatus"
|
|
|
+ @change="changeClassStatus"
|
|
|
+ >
|
|
|
+ <el-radio :label="0">预报(未开班)</el-radio>
|
|
|
+ <el-radio :label="1">已开班</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label=""
|
|
|
+ prop="officialName"
|
|
|
+ v-if="listData.classStatus === 1"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ placeholder="输入班级号"
|
|
|
+ v-model="listData.officialName"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="班级有效期"
|
|
|
+ prop="timeList"
|
|
|
+ v-if="listData.classStatus"
|
|
|
+ >
|
|
|
+ <el-date-picker
|
|
|
+ style="width: 90%"
|
|
|
+ v-model="listData.timeList"
|
|
|
+ type="datetimerange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ value-format="timestamp"
|
|
|
+ @change="changeDataTimeStudy(listData.timeList)"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="考期" prop="examineId">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.examineId"
|
|
|
+ placeholder="请选择考期"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in courseExamine"
|
|
|
+ :key="index"
|
|
|
+ :label="item.examineName"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="报考地区" prop="areasId">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.areasId"
|
|
|
+ placeholder="请选择报考地区(省)"
|
|
|
+ @change="getNewCityList"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in areas"
|
|
|
+ :key="index"
|
|
|
+ :label="item.areaName"
|
|
|
+ :value="item.areaId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="报考地区(地市)"
|
|
|
+ :prop="listData.areasId ? 'cityId' : ''"
|
|
|
+ v-if="listData.areasId"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="listData.cityId"
|
|
|
+ placeholder="请选择报考地区(市)"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in newCityList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.areaName"
|
|
|
+ :value="item.areaId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="指派班主任">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.sysUserId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in teacherList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.nickName"
|
|
|
+ :value="item.userId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <div v-if="statusShow === 1">
|
|
|
+ <el-form-item label="官方信息推送" prop="interfacePushId">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.interfacePushId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in type1List"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="官方学时推送" prop="interfacePeriodId">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.interfacePeriodId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in type3List"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="官方账号标记(有接口+标记功能)">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.interfaceAccountId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="listData.noInterfaceAccountId ? true : false"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in type2List"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="官方账号标记(无接口+标记功能)">
|
|
|
+ <el-select
|
|
|
+ v-model="listData.noInterfaceAccountId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="listData.interfaceAccountId ? true : false"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in type4List"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="5"
|
|
|
+ v-model="listData.remark"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="dialogVisiblePZDown"
|
|
|
+ appendToBody
|
|
|
+ width="900px"
|
|
|
+ :show-close="false"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ >
|
|
|
+ <div slot="title" class="hearders">
|
|
|
+ <div class="leftTitle">添加商品</div>
|
|
|
+ <div class="rightBoxs">
|
|
|
+ <img src="@/assets/images/Close@2x.png" alt="" @click="closePZ" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <search-box-new
|
|
|
+ ref="searchBox"
|
|
|
+ :formData="formData"
|
|
|
+ :formList="formList"
|
|
|
+ @search="getGoodsList"
|
|
|
+ @init="init"
|
|
|
+ />
|
|
|
+ <el-table
|
|
|
+ ref="multipleTable"
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ :header-cell-style="{
|
|
|
+ 'background-color': '#eee',
|
|
|
+ padding: '8px',
|
|
|
+ color: '#333',
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <el-table-column label="" width="45" align="center">
|
|
|
+ <template scope="scope">
|
|
|
+ <el-radio
|
|
|
+ class="radioTables"
|
|
|
+ :label="scope.row.goodsId"
|
|
|
+ v-model="templateRadio"
|
|
|
+ @change.native="getTemplateRow(scope.$index, scope.row)"
|
|
|
+ >{{ "" }}</el-radio
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <template v-for="(item, index) in tableList">
|
|
|
+ <el-table-column
|
|
|
+ v-if="item.scope !== 'inputs'"
|
|
|
+ :width="item.width"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ align="center"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ header-align="center"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="item.scope === 'status'">
|
|
|
+ {{
|
|
|
+ scope.row[item.prop] === 1
|
|
|
+ ? "有效"
|
|
|
+ : scope.row[item.prop] === 0
|
|
|
+ ? "无效"
|
|
|
+ : "未知"
|
|
|
+ }}
|
|
|
+ </span>
|
|
|
+ <span v-else-if="item.scope === 'moreList'">
|
|
|
+ {{
|
|
|
+ scope.row[item.prop1] +
|
|
|
+ "-" +
|
|
|
+ scope.row[item.prop2] +
|
|
|
+ "-" +
|
|
|
+ scope.row[item.prop3]
|
|
|
+ }}
|
|
|
+ </span>
|
|
|
+ <span v-else-if="item.scope === 'goodsType'">{{
|
|
|
+ getGoodsTypes(scope.row[item.prop])
|
|
|
+ }}</span>
|
|
|
+ <span v-else>{{ scope.row[item.prop] }}</span></template
|
|
|
+ >
|
|
|
+ </el-table-column></template
|
|
|
+ >
|
|
|
+ </el-table>
|
|
|
+ <pagination
|
|
|
+ :total="total"
|
|
|
+ :pageSize="formData.pageSize"
|
|
|
+ :currentPage="formData.pageNum"
|
|
|
+ @handleSizeChange="handleSizeChange"
|
|
|
+ @handleCurrentChange="handleCurrentChange"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="closePZ">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitPZ">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ </BaseDialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import searchBoxNew from "@/components/searchBoxNew";
|
|
|
+import pagination from "@/components/pagination";
|
|
|
+import { mapGetters } from "vuex";
|
|
|
+export default {
|
|
|
+ components: { searchBoxNew, pagination },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ isShow: false,
|
|
|
+ total: 0,
|
|
|
+ formList: [
|
|
|
+ {
|
|
|
+ prop: "educationId",
|
|
|
+ placeholder: "教育类型",
|
|
|
+ scope: "educationType",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "businessId",
|
|
|
+ placeholder: "业务层次",
|
|
|
+ scope: "businessLevel",
|
|
|
+ edu: "educationId",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "goodsName",
|
|
|
+ placeholder: "请输入商品名称",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ formData: {
|
|
|
+ goodsType: 1,
|
|
|
+ status: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ pageNum: 1,
|
|
|
+ },
|
|
|
+ dialogVisiblePZDown: false,
|
|
|
+ listData: {
|
|
|
+ classStatus: "",
|
|
|
+ status: 1,
|
|
|
+ timeList: [],
|
|
|
+ learningStatus: 1,
|
|
|
+ learningTimeStart: "",
|
|
|
+ officialName: "",
|
|
|
+ cityId: "",
|
|
|
+ classGradeGoodsAddBos: [],
|
|
|
+ studentUpper: 1000000,
|
|
|
+ // officialLearningUrl: "",
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ className: [
|
|
|
+ { required: true, message: "请填写班级名称", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ officialLearningUrl: [
|
|
|
+ { required: true, message: "请输入学习的网址", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ officialName: [
|
|
|
+ { required: true, message: "请填写官方班级", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ studentUpper: [
|
|
|
+ { required: true, message: "请填写学员上限", trigger: "blur" },
|
|
|
+ {
|
|
|
+ validator(rule, value, callback) {
|
|
|
+ var reg = /^[1-9]\d*$/;
|
|
|
+ if (reg.test(value)) {
|
|
|
+ callback();
|
|
|
+ } else {
|
|
|
+ callback(new Error("请规范输入学员上限数量"));
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ status: [{ required: true, message: "请选择状态", trigger: "change" }],
|
|
|
+ timeList: [
|
|
|
+ {
|
|
|
+ type: "array",
|
|
|
+ required: true,
|
|
|
+ message: "请选择班级有效期",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ learningTimeStart: [
|
|
|
+ {
|
|
|
+ type: "date",
|
|
|
+ required: true,
|
|
|
+ message: "请选择开放学习时间",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ cityId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择报考地市",
|
|
|
+ trigger: ["blur", "change"],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ cityList: [],
|
|
|
+ newCityList: [],
|
|
|
+ tableData: [],
|
|
|
+ tableList: [
|
|
|
+ {
|
|
|
+ label: "商品编码",
|
|
|
+ prop: "code",
|
|
|
+ width: "130px",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "年份",
|
|
|
+ prop: "year",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "商品名称",
|
|
|
+ prop: "goodsName",
|
|
|
+ width: "280px",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "业务层级",
|
|
|
+ prop1: "educationName",
|
|
|
+ prop2: "projectName",
|
|
|
+ prop3: "businessName",
|
|
|
+ scope: "moreList",
|
|
|
+ width: "340px",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "商品类型",
|
|
|
+ prop: "goodsType",
|
|
|
+ scope: "goodsType",
|
|
|
+ width: "100px",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "有效状态",
|
|
|
+ prop: "status",
|
|
|
+ scope: "status",
|
|
|
+ width: "100px",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "商品标价",
|
|
|
+ prop: "standPrice",
|
|
|
+ width: "100px",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ templateRadio: "",
|
|
|
+ goodsName: "",
|
|
|
+ // 1官方推送 2官方学习账号开通 3官方学时推送
|
|
|
+ type1List: [],
|
|
|
+ type2List: [],
|
|
|
+ type3List: [],
|
|
|
+ type4List: [],
|
|
|
+ teacherList: [],
|
|
|
+ statusShow: 1, //0隐藏1显示
|
|
|
+ timeArrays: [], //限制班级有效期时间
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: { ...mapGetters(["courseExamine", "areas"]) },
|
|
|
+ methods: {
|
|
|
+ inits() {
|
|
|
+ this.isShow = true;
|
|
|
+ this.listData = {
|
|
|
+ classStatus: "",
|
|
|
+ status: 1,
|
|
|
+ timeList: [],
|
|
|
+ learningStatus: 1,
|
|
|
+ learningTimeStart: "",
|
|
|
+ officialName: "",
|
|
|
+ cityId: "",
|
|
|
+ classGradeGoodsAddBos: [],
|
|
|
+ studentUpper: 1000000,
|
|
|
+ };
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.$refs.listData.clearValidate()
|
|
|
+ })
|
|
|
+ this.getInfoCityDict();
|
|
|
+ this.getGoodsList();
|
|
|
+ this.getGFList();
|
|
|
+ },
|
|
|
+ clearClassNumber() {
|
|
|
+ this.listData.classStatus = "";
|
|
|
+ this.changeClassStatus();
|
|
|
+ },
|
|
|
+ changeDataTimeStudy(arr) {
|
|
|
+ if (arr) {
|
|
|
+ if (arr[0] === arr[1]) {
|
|
|
+ this.$message.warning("开始时间与结束时间不允许相同");
|
|
|
+ this.listData.timeList = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSizeChange(v) {
|
|
|
+ this.formData.pageSize = v;
|
|
|
+ this.formData.pageNum = 1;
|
|
|
+ this.getGoodsList();
|
|
|
+ },
|
|
|
+ handleCurrentChange(v) {
|
|
|
+ this.formData.pageNum = v;
|
|
|
+ this.getGoodsList();
|
|
|
+ },
|
|
|
+ //官方接口是否出现
|
|
|
+ getVoselect() {
|
|
|
+ this.$api.inquirelistInterfaceVoselect().then((res) => {
|
|
|
+ if (res.data === 1) {
|
|
|
+ // this.getVoselect();
|
|
|
+ }
|
|
|
+ this.statusShow = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取官方接口
|
|
|
+ getGFList() {
|
|
|
+ this.$api.inquirelistInterfaceVo().then((res) => {
|
|
|
+ res.rows.forEach((item) => {
|
|
|
+ if (item.type === 1) {
|
|
|
+ this.type1List.push(item);
|
|
|
+ }
|
|
|
+ if (item.type === 2) {
|
|
|
+ this.type2List.push(item);
|
|
|
+ }
|
|
|
+ if (item.type === 3) {
|
|
|
+ this.type3List.push(item);
|
|
|
+ }
|
|
|
+ if (item.type === 4) {
|
|
|
+ this.type4List.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.$api
|
|
|
+ .obtainUserList({ status: 1, roleName: "班主任" })
|
|
|
+ .then((res) => {
|
|
|
+ this.teacherList = res.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //动态获取商品类型
|
|
|
+ getGoodsTypes(int) {
|
|
|
+ var ast = "";
|
|
|
+ switch (int) {
|
|
|
+ case 1:
|
|
|
+ ast = "视频";
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ ast = "题库";
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ ast = "补考";
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ ast = "前培";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return ast;
|
|
|
+ },
|
|
|
+ //单选触发
|
|
|
+ getTemplateRow(index, row) {
|
|
|
+ this.templateRadio = row.goodsId;
|
|
|
+ this.goodsName = row.goodsName;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 确定选择商品列表
|
|
|
+ */
|
|
|
+ submitPZ() {
|
|
|
+ this.$api.obtainGoods(this.templateRadio).then((res) => {
|
|
|
+ this.timeArrays = [res.data.studyStartTime, res.data.studyEndTime];
|
|
|
+ this.listData.timeList = [];
|
|
|
+ });
|
|
|
+ this.listData.classGradeGoodsAddBos[0] = this.templateRadio;
|
|
|
+ this.listData.goodsName = this.goodsName;
|
|
|
+ this.dialogVisiblePZDown = false;
|
|
|
+ },
|
|
|
+ //获取商品列表
|
|
|
+ getGoodsList(int) {
|
|
|
+ this.loading = true;
|
|
|
+ if (int === 1) {
|
|
|
+ this.formData.pageNum = 1;
|
|
|
+ }
|
|
|
+ if (int === 2) {
|
|
|
+ this.formData = {
|
|
|
+ goodsType: 1,
|
|
|
+ status: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ pageNum: 1,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ this.$api
|
|
|
+ .inquireGoods(this.formData)
|
|
|
+ .then((res) => {
|
|
|
+ this.tableData = res.rows;
|
|
|
+ this.total = res.total;
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ this.getGoodsList(2);
|
|
|
+ },
|
|
|
+ //获取地市列表
|
|
|
+ getInfoCityDict() {
|
|
|
+ this.$api.inquireapplyCityList({ status: 1, areaType: 2 }).then((res) => {
|
|
|
+ this.cityList = res.rows;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取最新地市列表
|
|
|
+ getNewCityList(n) {
|
|
|
+ this.newCityList = this.cityList.filter((item) => {
|
|
|
+ return item.parentId == n;
|
|
|
+ });
|
|
|
+ this.listData.cityId = "";
|
|
|
+ },
|
|
|
+ //改变开放学习状态-清空选择框
|
|
|
+ changeLearning() {
|
|
|
+ this.listData.learningTimeStart = "";
|
|
|
+ },
|
|
|
+ //改变班级号状态-清空输入框
|
|
|
+ changeClassStatus() {
|
|
|
+ this.listData.officialName = "";
|
|
|
+ this.listData.timeList = [];
|
|
|
+ },
|
|
|
+ //返回
|
|
|
+ backPage() {
|
|
|
+ this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
|
|
|
+ this.$router.push({
|
|
|
+ path: "classList",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //表单验证
|
|
|
+ submitForm() {
|
|
|
+ this.$refs["listData"].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (!this.listData.classGradeGoodsAddBos.length) {
|
|
|
+ this.$message.error("请选择商品课程");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.submit(); //提交
|
|
|
+ } else {
|
|
|
+ console.log("error submit!!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //提交
|
|
|
+ submit() {
|
|
|
+ var data = JSON.parse(JSON.stringify(this.listData));
|
|
|
+ // if(!data.interfaceAccountId){
|
|
|
+ // delete data.officialLearningUrl
|
|
|
+ // }
|
|
|
+ if (data.timeList.length) {
|
|
|
+ data.classStartTime = this.listData.timeList[0] / 1000;
|
|
|
+ data.classEndTime = this.listData.timeList[1] / 1000;
|
|
|
+ }
|
|
|
+ if (!data.timeList) {
|
|
|
+ data.classStartTime = null;
|
|
|
+ data.classEndTime = null;
|
|
|
+ }
|
|
|
+ if (data.learningStatus === 3) {
|
|
|
+ data.learningTimeStart = this.listData.learningTimeStart / 1000;
|
|
|
+ }
|
|
|
+ this.$api.appGradegrade(data).then((res) => {
|
|
|
+ this.$message.success("添加成功");
|
|
|
+ this.$emit("backFunc")
|
|
|
+ this.isShow = false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //商品列表
|
|
|
+ openGoodsBox() {
|
|
|
+ if (this.listData.classGradeGoodsAddBos.length) {
|
|
|
+ this.templateRadio = this.listData.classGradeGoodsAddBos[0];
|
|
|
+ this.goodsName = this.listData.goodsName;
|
|
|
+ } else {
|
|
|
+ this.templateRadio = "";
|
|
|
+ this.goodsName = "";
|
|
|
+ }
|
|
|
+ this.dialogVisiblePZDown = true;
|
|
|
+ },
|
|
|
+ closePZ() {
|
|
|
+ this.dialogVisiblePZDown = false;
|
|
|
+ },
|
|
|
+ close() {},
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+/deep/.el-button {
|
|
|
+ border-radius: 8px;
|
|
|
+}
|
|
|
+/deep/.el-dialog {
|
|
|
+ border-radius: 8px;
|
|
|
+ .el-dialog__header {
|
|
|
+ padding: 0;
|
|
|
+ .hearders {
|
|
|
+ height: 40px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 0px 18px 0px 20px;
|
|
|
+ border-bottom: 1px solid #e2e2e2;
|
|
|
+ .leftTitle {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #2f4378;
|
|
|
+ }
|
|
|
+ .rightBoxs {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ img {
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ margin-left: 13px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-dialog__footer {
|
|
|
+ padding: 0;
|
|
|
+ .dialog-footer {
|
|
|
+ padding: 0px 40px;
|
|
|
+ height: 70px;
|
|
|
+ border-top: 1px solid #e2e2e2;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+/deep/.radioTables > .el-radio__label {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+</style>
|