fixLog V2.4.7
yujialong 2 years ago
parent a8e2b253c6
commit 3c362751b8
  1. 392
      src/views/course/AddCurriculum.vue
  2. 1196
      src/views/order/AddOrder.vue
  3. 677
      src/views/shop/addProduct/index.vue
  4. 102
      src/views/shop/list/market/index.vue
  5. 154
      src/views/shop/list/product/index.vue

@ -2,20 +2,28 @@
<div> <div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover"
class="mgb20">
<div class="flex-between"> <div class="flex-between">
<div class="per_title" v-preventReClick @click="goback()"> <div class="per_title"
v-preventReClick
@click="goback()">
<i class="el-icon-arrow-left"></i> <i class="el-icon-arrow-left"></i>
<span class="per_back">返回</span> <span class="per_back">返回</span>
<span class="per_school" v-text="form.cid ? '编辑课程' : '新建课程'"></span> <span class="per_school"
v-text="form.cid ? '编辑课程' : '新建课程'"></span>
</div> </div>
<el-button type="primary" round class="mag" v-preventReClick <el-button type="primary"
round
class="mag"
v-preventReClick
@click="saveAdd">确定 @click="saveAdd">确定
</el-button> </el-button>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" class="mgb20 "> <el-card shadow="hover"
class="mgb20 ">
<div class="flex-center mgb20"> <div class="flex-center mgb20">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>课程信息</span> <span>课程信息</span>
@ -23,66 +31,111 @@
<div class="border-b-dashed"></div> <div class="border-b-dashed"></div>
<div> <div>
<el-form :model="form" :rules="rules" ref="form" label-width="100px"> <el-form :model="form"
<el-col :span="6" :offset="5"> :rules="rules"
<el-form-item label="课程名称" prop="curriculumName"> ref="form"
<el-input placeholder="请输入课程名称" v-model.trim="form.curriculumName"></el-input> label-width="100px">
<el-col :span="6"
:offset="5">
<el-form-item label="课程名称"
prop="curriculumName">
<el-input placeholder="请输入课程名称"
v-model.trim="form.curriculumName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="学科类别" prop="categoryId"> <el-form-item label="学科类别"
<el-select v-model="form.categoryId" clearable placeholder="请选择学科类别" prop="categoryId">
@change="getProfessionalClass()" @clear="clearsubjectType()"> <el-select v-model="form.categoryId"
<el-option v-for="(item,index) in subjectList" :key="index" clearable
:label="item.disciplineName" :value="item.disciplineId"></el-option> placeholder="请选择学科类别"
@change="getProfessionalClass()"
@clear="clearsubjectType()">
<el-option v-for="(item,index) in subjectList"
:key="index"
:label="item.disciplineName"
:value="item.disciplineId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="专业" prop="professionalId"> <el-form-item label="专业"
<el-select v-model="form.professionalId" clearable placeholder="请选择专业" prop="professionalId">
<el-select v-model="form.professionalId"
clearable
placeholder="请选择专业"
:disabled="form.professionalCategoryId ? false : true"> :disabled="form.professionalCategoryId ? false : true">
<el-option v-for="(item,index) in ProfessionalList" :key="index" <el-option v-for="(item,index) in ProfessionalList"
:key="index"
:label="item.professionalName" :label="item.professionalName"
:value="item.professionalId"></el-option> :value="item.professionalId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="供应厂商" prop="supplier"> <el-form-item label="供应厂商"
<el-select v-model="form.supplier" clearable placeholder="请选择供应厂商" multiple> prop="supplier">
<el-option v-for="(item, i) in suppliers" :key="i" :label="item.supplierName" :value="item.supplierId"></el-option> <el-select v-model="form.supplier"
clearable
placeholder="请选择供应厂商"
multiple>
<el-option v-for="(item, i) in suppliers"
:key="i"
:label="item.supplierName"
:value="item.supplierId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" :offset="2"> <el-col :span="6"
:offset="2">
<el-form-item label="课程类别"> <el-form-item label="课程类别">
<el-select v-model="form.curriculumType" clearable placeholder="请选择课程类型"> <el-select v-model="form.curriculumType"
<el-option label="理论课程" :value="0"></el-option> clearable
<el-option label="实训课程" :value="1"></el-option> placeholder="请选择课程类型">
<el-option label="理论课程"
:value="0"></el-option>
<el-option label="实训课程"
:value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="专业类" prop="professionalCategoryId"> <el-form-item label="专业类"
<el-select v-model="form.professionalCategoryId" clearable placeholder="请选择专业类" prop="professionalCategoryId">
:disabled="form.categoryId ? false : true" @change="getProfessional()" <el-select v-model="form.professionalCategoryId"
clearable
placeholder="请选择专业类"
:disabled="form.categoryId ? false : true"
@change="getProfessional()"
@clear="clearProfessionalClass()"> @clear="clearProfessionalClass()">
<el-option v-for="(item,index) in ProfessionalClassList" :key="index" <el-option v-for="(item,index) in ProfessionalClassList"
:key="index"
:label="item.professionalClassName" :label="item.professionalClassName"
:value="item.professionalClassId"></el-option> :value="item.professionalClassId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="预计课时" prop="expectedCourse"> <el-form-item label="预计课时"
<el-select v-model="form.expectedCourse" clearable placeholder="请选择预计课时"> prop="expectedCourse">
<el-option label="32课时" value="32课时"></el-option> <el-select v-model="form.expectedCourse"
<el-option label="64课时" value="64课时"></el-option> clearable
placeholder="请选择预计课时">
<el-option label="32课时"
value="32课时"></el-option>
<el-option label="64课时"
value="64课时"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="14" :offset="5"> <el-col :span="14"
<el-form-item label="课程简介" prop="briefIntroduction"> :offset="5">
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入课程简介" <el-form-item label="课程简介"
prop="briefIntroduction">
<el-input type="textarea"
:autosize="{ minRows: 4 }"
placeholder="请输入课程简介"
v-model.trim="form.briefIntroduction"></el-input> v-model.trim="form.briefIntroduction"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="教学目标" prop="teachingObjectives"> <el-form-item label="教学目标"
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入教学目标" prop="teachingObjectives">
<el-input type="textarea"
:autosize="{ minRows: 4 }"
placeholder="请输入教学目标"
v-model.trim="form.teachingObjectives"></el-input> v-model.trim="form.teachingObjectives"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -91,7 +144,8 @@
</el-card> </el-card>
<!-- 练习配置 --> <!-- 练习配置 -->
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover"
class="mgb20">
<div class="mgb20 flex-between"> <div class="mgb20 flex-between">
<div class="flex-center "> <div class="flex-center ">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
@ -99,41 +153,64 @@
</div> </div>
<div> <div>
<el-button @click="handleBatchDelete(0)">批量移除</el-button> <el-button @click="handleBatchDelete(0)">批量移除</el-button>
<el-button @click="handleConfig(0)" icon="el-icon-plus" circle></el-button> <el-button @click="handleConfig(0)"
icon="el-icon-plus"
circle></el-button>
</div> </div>
</div> </div>
<div class="border-b-dashed"></div> <div class="border-b-dashed"></div>
<div> <div>
<el-table :data="practiceData" class="table" stripe header-align="center" max-height="400" <el-table :data="practiceData"
class="table"
stripe
header-align="center"
max-height="400"
@selection-change="handleSelectionPractice"> @selection-change="handleSelectionPractice">
<el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column type="selection"
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> width="55"
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> <el-table-column type="index"
<el-table-column prop="applicationName" label="系统名称" align="center"> width="100"
label="序号"
align="center"></el-table-column>
<el-table-column prop="projectName"
label="项目名称"
align="center"></el-table-column>
<el-table-column prop="remark"
label="备注名称"
align="center"></el-table-column>
<el-table-column prop="applicationName"
label="系统名称"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} {{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="排序" align="center" width="100"> <el-table-column label="排序"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model.trim="scope.row.sort" <el-input v-model.trim="scope.row.sort"
@input="practiceSortChange(scope.row, scope.$index)"></el-input> @input="practiceSortChange(scope.row, scope.$index)"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="展示控制" align="center" width="100"> <el-table-column label="展示控制"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isShow"
v-model="scope.row.isShow"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
:disabled="scope.row.disabled"> :disabled="scope.row.disabled">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="scope.row.disabled" @click.native.prevent="handleDelete(scope.$index, practiceData)">移除 <el-button :disabled="scope.row.disabled"
@click.native.prevent="handleDelete(scope.$index, practiceData)">移除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -142,7 +219,8 @@
</el-card> </el-card>
<!-- 考核配置 --> <!-- 考核配置 -->
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover"
class="mgb20">
<div class="mgb20 flex-between"> <div class="mgb20 flex-between">
<div class="flex-center "> <div class="flex-center ">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
@ -150,42 +228,65 @@
</div> </div>
<div> <div>
<el-button @click="handleBatchDelete(1)">批量移除</el-button> <el-button @click="handleBatchDelete(1)">批量移除</el-button>
<el-button @click="handleConfig(1)" icon="el-icon-plus" circle></el-button> <el-button @click="handleConfig(1)"
icon="el-icon-plus"
circle></el-button>
</div> </div>
</div> </div>
<div class="border-b-dashed"></div> <div class="border-b-dashed"></div>
<!-- 实训配置 --> <!-- 实训配置 -->
<div> <div>
<el-table :data="assessmentData" class="table" stripe header-align="center" max-height="400" <el-table :data="assessmentData"
class="table"
stripe
header-align="center"
max-height="400"
@selection-change="handleSelectionAssessment"> @selection-change="handleSelectionAssessment">
<el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column type="selection"
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> width="55"
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> <el-table-column type="index"
<el-table-column prop="applicationName" label="系统名称" align="center"> width="100"
label="序号"
align="center"></el-table-column>
<el-table-column prop="projectName"
label="项目名称"
align="center"></el-table-column>
<el-table-column prop="remark"
label="备注名称"
align="center"></el-table-column>
<el-table-column prop="applicationName"
label="系统名称"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} {{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="排序" align="center" width="100"> <el-table-column label="排序"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model.trim="scope.row.sort" <el-input v-model.trim="scope.row.sort"
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> @input="assessmentSortChange(scope.row, scope.$index)"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="展示控制" align="center" width="100"> <el-table-column label="展示控制"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isShow"
v-model="scope.row.isShow"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
:disabled="scope.row.disabled"> :disabled="scope.row.disabled">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="scope.row.disabled" @click.native.prevent="handleDelete(scope.$index, assessmentData)">移除</el-button> <el-button :disabled="scope.row.disabled"
@click.native.prevent="handleDelete(scope.$index, assessmentData)">移除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -193,7 +294,8 @@
</el-card> </el-card>
<!-- 竞赛配置 --> <!-- 竞赛配置 -->
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover"
class="mgb20">
<div class="mgb20 flex-between"> <div class="mgb20 flex-between">
<div class="flex-center "> <div class="flex-center ">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
@ -201,41 +303,62 @@
</div> </div>
<div> <div>
<el-button @click="handleBatchDelete(2)">批量移除</el-button> <el-button @click="handleBatchDelete(2)">批量移除</el-button>
<el-button @click="handleConfig(2)" icon="el-icon-plus" circle></el-button> <el-button @click="handleConfig(2)"
icon="el-icon-plus"
circle></el-button>
</div> </div>
</div> </div>
<div class="border-b-dashed"></div> <div class="border-b-dashed"></div>
<!-- 实训配置 --> <!-- 实训配置 -->
<div> <div>
<el-table :data="matches" class="table" stripe header-align="center" max-height="400" <el-table :data="matches"
class="table"
stripe
header-align="center"
max-height="400"
@selection-change="handleSelectionMatch"> @selection-change="handleSelectionMatch">
<el-table-column type="selection" width="55" align="center"></el-table-column> <el-table-column type="selection"
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> width="55"
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="applicationName" label="系统名称" align="center"> <el-table-column type="index"
width="100"
label="序号"
align="center"></el-table-column>
<el-table-column prop="projectName"
label="项目名称"
align="center"></el-table-column>
<el-table-column prop="applicationName"
label="系统名称"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} {{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="排序" align="center" width="100"> <el-table-column label="排序"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model.trim="scope.row.sort" <el-input v-model.trim="scope.row.sort"
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> @input="assessmentSortChange(scope.row, scope.$index)"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="展示控制" align="center" width="100"> <el-table-column label="展示控制"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isShow"
v-model="scope.row.isShow"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
:disabled="scope.row.disabled"> :disabled="scope.row.disabled">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作"
align="center"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="scope.row.disabled" @click.native.prevent="handleDelete(scope.$index, matches)">移除</el-button> <el-button :disabled="scope.row.disabled"
@click.native.prevent="handleDelete(scope.$index, matches)">移除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -246,19 +369,29 @@
</el-row> </el-row>
<!-- 配置弹窗 --> <!-- 配置弹窗 -->
<el-dialog :visible.sync="configVisible" width="1200px" center custom-class="config-dia"> <el-dialog :visible.sync="configVisible"
width="1200px"
center
custom-class="config-dia">
<div class="config-wrap"> <div class="config-wrap">
<div class="item system"> <div class="item system">
<div class="title-wrap flex-center"> <div class="title-wrap flex-center">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>系统列表</span> <span>系统列表</span>
</div> </div>
<el-input placeholder="请输入系统名称" prefix-icon="el-icon-search" v-model.trim="systemKeyword" clearable></el-input> <el-input placeholder="请输入系统名称"
prefix-icon="el-icon-search"
v-model.trim="systemKeyword"
clearable></el-input>
<ul class="systems"> <ul class="systems">
<li v-for="(item, i) in systems" :key="i" :title="item.systemName"> <li v-for="(item, i) in systems"
<el-checkbox v-model="item.check" @change="val => systemChange(val, item)"></el-checkbox> :key="i"
<div :class="['name', {active: curSystem == item.systemId}]" @click="getProject(item)"> :title="item.systemName">
<el-checkbox v-model="item.check"
@change="val => systemChange(val, item)"></el-checkbox>
<div :class="['name', {active: curSystem == item.systemId}]"
@click="getProject(item)">
<span>{{ item.systemName }}</span> <span>{{ item.systemName }}</span>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
</div> </div>
@ -271,12 +404,22 @@
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>项目列表</span> <span>项目列表</span>
</div> </div>
<el-input placeholder="请输入项目名称" prefix-icon="el-icon-search" v-model.trim="projectKeyword" clearable></el-input> <el-input placeholder="请输入项目名称"
prefix-icon="el-icon-search"
v-model.trim="projectKeyword"
clearable></el-input>
<ul class="systems"> <ul class="systems">
<el-checkbox v-if="projects.length" v-model="checkAll" label="全选" @change="val => checkAllChange(val, projects[0].systemId)"></el-checkbox> <el-checkbox v-if="projects.length"
<li v-for="(item, i) in projects" :key="i" :title="item.projectName"> v-model="checkAll"
<el-checkbox v-model="item.check" :label="item.remark ? item.remark + '(' + item.projectName + ')' : item.projectName" @change="val => projectChange(val, item)"></el-checkbox> label="全选"
@change="val => checkAllChange(val, projects[0].systemId)"></el-checkbox>
<li v-for="(item, i) in projects"
:key="i"
:title="item.projectName">
<el-checkbox v-model="item.check"
:label="item.remark ? item.remark + '(' + item.projectName + ')' : item.projectName"
@change="val => projectChange(val, item)"></el-checkbox>
</li> </li>
</ul> </ul>
</div> </div>
@ -286,33 +429,58 @@
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>已选择项目{{ checkeds.length }}</span> <span>已选择项目{{ checkeds.length }}</span>
</div> </div>
<el-input style="width: 200px;margin-bottom: 20px;" placeholder="请输入项目名称" prefix-icon="el-icon-search" v-model.trim="checkedKeyword" clearable></el-input> <el-input style="width: 200px;margin-bottom: 20px;"
<el-table :data="checkeds" class="table" stripe header-align="center" max-height="470"> placeholder="请输入项目名称"
<el-table-column type="index" width="55" label="序号" align="center"></el-table-column> prefix-icon="el-icon-search"
<el-table-column prop="applicationName" label="系统名称" align="center"> v-model.trim="checkedKeyword"
clearable></el-input>
<el-table :data="checkeds"
class="table"
stripe
header-align="center"
max-height="470">
<el-table-column type="index"
width="55"
label="序号"
align="center"></el-table-column>
<el-table-column prop="applicationName"
label="系统名称"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} {{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectName" width="80" label="系统类型" align="center"> <el-table-column prop="projectName"
width="80"
label="系统类型"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.type ? '流程类' : '编程类' }} {{ scope.row.type ? '流程类' : '编程类' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> <el-table-column prop="remark"
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> label="备注名称"
<el-table-column label="操作" align="center" width="55"> align="center"></el-table-column>
<el-table-column prop="projectName"
label="项目名称"
align="center"></el-table-column>
<el-table-column label="操作"
align="center"
width="55">
<template slot-scope="scope"> <template slot-scope="scope">
<i :class="['el-icon-delete rm', {disabled: scope.row.disabled}]" @click="delProject(scope.$index, scope.row)"></i> <i :class="['el-icon-delete rm', {disabled: scope.row.disabled}]"
@click="delProject(scope.$index, scope.row)"></i>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer"
class="dialog-footer">
<el-button @click="configVisible = false"> </el-button> <el-button @click="configVisible = false"> </el-button>
<el-button type="primary" @click="handleConfirm"> </el-button> <el-button type="primary"
@click="handleConfirm"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -330,15 +498,15 @@ export default {
cid: this.$route.query.cid, cid: this.$route.query.cid,
curriculumName: "", curriculumName: "",
courseType: "", courseType: "",
categoryId: "", categoryId: 1,
professionalCategoryId: "", professionalCategoryId: 1,
professionalId: "", professionalId: 1,
expectedCourse: "", expectedCourse: "",
briefIntroduction: "", briefIntroduction: "",
teachingObjectives: "", teachingObjectives: "",
systemIdByAssessment: [], systemIdByAssessment: [],
systemIdByPractice: [], systemIdByPractice: [],
supplier: '', supplier: []
}, },
rules: { rules: {
curriculumName: [ curriculumName: [
@ -350,6 +518,9 @@ export default {
professionalId: [ professionalId: [
{ required: true, message: "请选择专业", trigger: "change" } { required: true, message: "请选择专业", trigger: "change" }
], ],
supplier: [
{ required: true, message: "请选择供应厂商", trigger: "change" }
],
expectedCourse: [ expectedCourse: [
{ required: true, message: "请选择预计课时", trigger: "change" } { required: true, message: "请选择预计课时", trigger: "change" }
], ],
@ -522,13 +693,14 @@ export default {
}, },
getSubject () { // getSubject () { //
this.$get(this.api.courseDiscipline).then(res => { this.$get(this.api.courseDiscipline).then(res => {
this.subjectList = res.list; this.subjectList = res.list
this.form.categoryId === 1 && this.getProfessionalClass()
}).catch(err => { }).catch(err => {
}); });
}, },
clearsubjectType () { // clearsubjectType () { //
this.form.professionalCategoryId = "", this.form.professionalCategoryId = this.form.categoryId === 1 ? 1 : ''
this.form.professionalId = ""; this.form.professionalId = this.form.categoryId === 1 ? 1 : ''
}, },
getProfessionalClass () { // getProfessionalClass () { //
this.clearsubjectType(); this.clearsubjectType();
@ -540,11 +712,12 @@ export default {
}; };
this.$get(this.api.courseProfessionalClass, data).then(res => { this.$get(this.api.courseProfessionalClass, data).then(res => {
this.ProfessionalClassList = res.list; this.ProfessionalClassList = res.list;
this.form.professionalCategoryId === 1 && this.getProfessional()
}).catch(err => { }).catch(err => {
}); });
}, },
clearProfessionalClass () { // clearProfessionalClass () { //
this.form.professionalId = ""; this.form.professionalId = this.form.professionalCategoryId === 1 ? 1 : ''
}, },
getProfessional () { // getProfessional () { //
this.clearProfessionalClass(); this.clearProfessionalClass();
@ -923,7 +1096,7 @@ $avatar-width: 104px;
overflow: hidden; overflow: hidden;
&:hover { &:hover {
border-color: #409EFF; border-color: #409eff;
} }
.uploader-default { .uploader-default {
@ -1018,8 +1191,9 @@ $avatar-width: 104px;
align-items: center; align-items: center;
margin-left: 5px; margin-left: 5px;
cursor: pointer; cursor: pointer;
&.active, &:hover { &.active,
color: #9076FF; &:hover {
color: #9076ff;
} }
span { span {
max-width: 200px; max-width: 200px;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -2,68 +2,110 @@
<!-- 营销推广管理 --> <!-- 营销推广管理 -->
<div style="padding-top: 24px"> <div style="padding-top: 24px">
<div style="margin-bottom: 10px;text-align: right;"> <div style="margin-bottom: 10px;text-align: right;">
<el-button v-auth="'/shop:营销推广管理:新增'" type="primary" round @click="add">新增</el-button> <el-button v-auth="'/shop:营销推广管理:新增'"
type="primary"
round
@click="add">新增</el-button>
</div> </div>
<el-table :data="list" class="table" ref="table" stripe header-align="center" row-key="id"> <el-table :data="list"
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> class="table"
<el-table-column prop="courseName" label="图片" min-width="150" align="center"> ref="table"
stripe
header-align="center"
row-key="id">
<el-table-column type="index"
width="100"
label="序号"
align="center"></el-table-column>
<el-table-column prop="courseName"
label="图片"
min-width="150"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<img width="100" :src="scope.row.banner" alt=""> <img width="100"
:src="scope.row.banner"
alt="">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="title" label="标题" min-width="150" align="center"></el-table-column> <el-table-column prop="title"
<el-table-column prop="url" label="链接" min-width="150" align="center"></el-table-column> label="标题"
<el-table-column label="操作" align="center" width="250"> min-width="150"
align="center"></el-table-column>
<el-table-column prop="url"
label="链接"
min-width="150"
align="center"></el-table-column>
<el-table-column label="操作"
align="center"
width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isOpen"
v-model="scope.row.isOpen"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
@change="switchOff($event, scope.row)" @change="switchOff($event, scope.row)"
v-auth="'/shop:营销推广管理:禁用'"> v-auth="'/shop:营销推广管理:禁用'">
</el-switch> </el-switch>
<el-button style="margin-left: 10px;" v-auth="'/shop:营销推广管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button> <el-button style="margin-left: 10px;"
<el-button v-auth="'/shop:营销推广管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> v-auth="'/shop:营销推广管理:编辑'"
type="text"
@click="edit(scope.row)">编辑</el-button>
<el-button v-auth="'/shop:营销推广管理:删除'"
type="text"
@click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog :title="(form.id ? '编辑' : '新增') + 'banner'"
<el-dialog :title="(form.id ? '编辑' : '新增') + 'banner'" :visible.sync="bannerVisible" width="500px" class="dialog" :close-on-click-modal="false"> :visible.sync="bannerVisible"
<el-form ref="form" label-width="60px"> width="500px"
class="dialog"
:close-on-click-modal="false">
<el-form ref="form"
label-width="60px">
<el-form-item label="图片"> <el-form-item label="图片">
<el-upload <el-upload class="avatar-uploader"
class="avatar-uploader"
accept=".jpg,.png,.jpeg,.gif" accept=".jpg,.png,.jpeg,.gif"
:on-change="changeFile" :on-change="changeFile"
:show-file-list="false" :show-file-list="false"
:action="this.api.fileupload" :action="this.api.fileupload"
:auto-upload="false" :auto-upload="false">
> <img v-if="form.banner"
<img v-if="form.banner" :src="form.banner" class="avatar"> :src="form.banner"
<div class="uploader-default" v-else> class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
<p>上传图片</p> <p>上传图片</p>
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="标题"> <el-form-item label="标题">
<el-input v-model="form.title" placeholder="请输入标题" maxlength="100"></el-input> <el-input v-model="form.title"
placeholder="请输入标题"
maxlength="100"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="链接"> <el-form-item label="链接">
<el-input v-model="form.url" placeholder="请输入链接" maxlength="100"></el-input> <el-input v-model="form.url"
placeholder="请输入链接"
maxlength="100"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer"
class="dialog-footer">
<el-button @click="bannerVisible = false">取消</el-button> <el-button @click="bannerVisible = false">取消</el-button>
<el-button type="primary" @click="submitBanner">确定</el-button> <el-button type="primary"
@click="submitBanner">确定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 剪裁组件弹窗 --> <!-- 剪裁组件弹窗 -->
<el-dialog title="图片裁剪" append-to-body :visible.sync="cropperModel" width="1100px" :close-on-click-modal="false"> <el-dialog title="图片裁剪"
<Cropper append-to-body
ref="cropper" :visible.sync="cropperModel"
width="1100px"
:close-on-click-modal="false">
<Cropper ref="cropper"
:img-file.sync="file" :img-file.sync="file"
:is-upload="isUpload" :is-upload="isUpload"
:fixed="true" :fixed="true"
@ -94,7 +136,7 @@ export default {
}, },
cropperModel: false, cropperModel: false,
isUpload: false, isUpload: false,
fixedNumber: [5.7, 1], fixedNumber: [5.48, 1],
file: '' file: ''
}; };
}, },
@ -253,7 +295,7 @@ $avatar-width: 104px;
overflow: hidden; overflow: hidden;
&:hover { &:hover {
border-color: #409EFF; border-color: #409eff;
} }
.uploader-default { .uploader-default {

@ -2,80 +2,146 @@
<!-- 产品管理 --> <!-- 产品管理 -->
<div style="padding-top: 24px"> <div style="padding-top: 24px">
<div class="tool"> <div class="tool">
<ul class="filter" style="align-items: flex-start"> <ul class="filter"
style="align-items: flex-start">
<li> <li>
<label>学科类</label> <label>学科类</label>
<el-select v-model="form.categoryId" clearable <el-select v-model="form.categoryId"
@change="getProfessionalClass()" @clear="clearClass()"> clearable
<el-option v-for="(item,index) in subjectList" :key="index" @change="getProfessionalClass()"
@clear="clearClass()">
<el-option v-for="(item,index) in subjectList"
:key="index"
:label="item.disciplineName" :label="item.disciplineName"
:value="item.disciplineId"></el-option> :value="item.disciplineId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>专业类</label> <label>专业类</label>
<el-select v-model="form.professionalCategoryId" clearable <el-select v-model="form.professionalCategoryId"
clearable
:disabled="form.categoryId ? false : true" :disabled="form.categoryId ? false : true"
@change="getProfessional" @clear="clearProfess()"> @change="getProfessional"
<el-option v-for="(item,index) in professionalClassList" :key="index" @clear="clearProfess()">
<el-option v-for="(item,index) in professionalClassList"
:key="index"
:label="item.professionalClassName" :label="item.professionalClassName"
:value="item.professionalClassId"></el-option> :value="item.professionalClassId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>专业</label> <label>专业</label>
<el-select v-model="form.professionalId" clearable <el-select v-model="form.professionalId"
clearable
:disabled="form.professionalCategoryId ? false : true" :disabled="form.professionalCategoryId ? false : true"
@change="initData"> @change="initData">
<el-option v-for="(item,index) in professionalList" :key="index" <el-option v-for="(item,index) in professionalList"
:key="index"
:label="item.professionalName" :label="item.professionalName"
:value="item.professionalId"></el-option> :value="item.professionalId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>产品分类</label> <label>产品分类</label>
<el-select v-model="form.productClassification" clearable placeholder="请选择产品分类" @change="initData"> <el-select v-model="form.productClassification"
<el-option v-for="(item, i) in productCategoryList" :key="i" :label="item.classificationName" :value="item.classificationId"></el-option> clearable
placeholder="请选择产品分类"
@change="initData">
<el-option v-for="(item, i) in productCategoryList"
:key="i"
:label="item.classificationName"
:value="item.classificationId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input placeholder="请输入" suffix-icon="el-icon-search" v-model="form.productName" clearable size="small"></el-input> <el-input placeholder="请输入"
suffix-icon="el-icon-search"
v-model="form.productName"
clearable
size="small"></el-input>
</li> </li>
</ul> </ul>
<div> <div>
<el-button v-auth="'/shop:产品管理:新增'" type="primary" round @click="addCourse">新增</el-button> <el-button v-auth="'/shop:产品管理:新增'"
type="primary"
round
@click="addCourse">新增</el-button>
</div> </div>
</div> </div>
<el-table :data="list" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id" @sort-change="sortChange"> <el-table :data="list"
<el-table-column type="selection" width="80" align="center" :reserve-selection="true"></el-table-column> class="table"
<el-table-column type="index" width="100" label="序号" align="center"> ref="table"
stripe
header-align="center"
@selection-change="handleSelectionChange"
row-key="id"
@sort-change="sortChange">
<el-table-column type="selection"
width="80"
align="center"
:reserve-selection="true"></el-table-column>
<el-table-column type="index"
width="100"
label="序号"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + (page - 1) * pageSize + 1 }} {{ scope.$index + (page - 1) * pageSize + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="productName" label="产品名称" min-width="150" align="center"></el-table-column> <el-table-column prop="productName"
<el-table-column prop="supplierName" label="厂商" min-width="150" align="center"></el-table-column> label="产品名称"
<el-table-column prop="classificationName" label="产品分类" min-width="150" align="center"></el-table-column> min-width="150"
<el-table-column prop="typeName" label="产品类型" min-width="150" align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="associatedProductName" label="关联产品" min-width="140" align="center"></el-table-column> <el-table-column prop="supplierName"
<el-table-column prop="courseName" label="状态" min-width="140" align="center"> label="厂商"
min-width="150"
align="center"></el-table-column>
<el-table-column prop="classificationName"
label="产品分类"
min-width="150"
align="center"></el-table-column>
<el-table-column prop="typeName"
label="产品类型"
min-width="150"
align="center"></el-table-column>
<el-table-column prop="associatedProductName"
label="关联产品"
min-width="140"
align="center"></el-table-column>
<el-table-column prop="courseName"
label="状态"
min-width="140"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.isShelves ? '下架' : '上架' }} {{ scope.row.isShelves ? '下架' : '上架' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="orderQuantity" label="订单量" min-width="150" align="center"></el-table-column> <el-table-column prop="orderQuantity"
<el-table-column prop="userName" label="最近编辑人" min-width="150" align="center"></el-table-column> label="订单量"
<el-table-column prop="selected" label="精选" min-width="150" align="center" sortable="custom"> min-width="150"
align="center"></el-table-column>
<el-table-column prop="userName"
label="最近编辑人"
min-width="150"
align="center"></el-table-column>
<el-table-column prop="selected"
label="精选"
min-width="150"
align="center"
sortable="custom">
<template slot-scope="scope"> <template slot-scope="scope">
<i v-auth="'/shop:产品管理:精选'" :class="['icon', scope.row.selected ? 'el-icon-check' : 'el-icon-close']" @click="selected(scope.row)"></i> <i v-auth="'/shop:产品管理:精选'"
:class="['icon', scope.row.selected ? 'el-icon-check' : 'el-icon-close']"
@click="selected(scope.row)"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="上架/下架" align="center" width="90"> <el-table-column label="上架/下架"
align="center"
width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isShelves"
v-model="scope.row.isShelves"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
@change="changeSwitch($event, scope.row)" @change="changeSwitch($event, scope.row)"
@ -83,18 +149,31 @@
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="120"> <el-table-column label="操作"
align="center"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="scope.row.isShelves"> <template v-if="scope.row.isShelves">
<el-button v-auth="'/shop:产品管理:编辑'" type="text" @click="edit(scope.row)">编辑</el-button> <el-button v-auth="'/shop:产品管理:编辑'"
<el-button v-auth="'/shop:产品管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> type="text"
@click="edit(scope.row)">编辑</el-button>
<el-button v-auth="'/shop:产品管理:删除'"
type="text"
@click="handleDelete(scope.row)">删除</el-button>
</template> </template>
<el-button v-else v-auth="'/shop:产品管理:查看'" type="text" @click="edit(scope.row, 1)">查看</el-button> <el-button v-else
v-auth="'/shop:产品管理:查看'"
type="text"
@click="edit(scope.row, 1)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> <el-pagination background
layout="total, prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
:current-page="page">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
@ -342,7 +421,12 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/ .tool { /deep/ .tool {
margin-bottom: 14px;
.filter { .filter {
flex-wrap: wrap;
li {
margin-bottom: 10px;
}
.el-input { .el-input {
min-width: 215px; min-width: 215px;
} }
@ -350,7 +434,7 @@ export default {
} }
.icon { .icon {
font-size: 16px; font-size: 16px;
color: #9076FF; color: #9076ff;
cursor: pointer; cursor: pointer;
} }
</style> </style>
Loading…
Cancel
Save