master
lion 4 months ago
parent c425fad347
commit 878efdb752

@ -19,6 +19,12 @@
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.is_chart" placeholder="课程是否统计" clearable style="width: 150px;">
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button type="primary" size="small" @click="resetSelect"></el-button>
@ -162,6 +168,7 @@
name: '',
dateRange: '',
type: "",
is_chart: '',
page: 1,
page_size: 10,
},
@ -291,29 +298,41 @@
this.select.name = ''
this.select.type = ''
this.select.dateRange = ''
this.select.is_chart = ''
this.select.page=1
this.getList()
},
async getList() {
const filter = [{
key: 'name',
op: 'like',
value: this.select.name
}, {
key: 'type',
op: 'eq',
value: this.select.type
}, {
key: 'start_date',
op: 'range',
value: this.select.dateRange?this.select.dateRange.join(","):''
}]
// is_chart
if (this.select.is_chart !== '') {
filter.push({
key: 'is_chart',
op: 'eq',
value: this.select.is_chart
})
}
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['typeDetail'],
sort_name:'start_date',
sort_type:'DESC',
filter: [{
key: 'name',
op: 'like',
value: this.select.name
}, {
key: 'type',
op: 'eq',
value: this.select.type
}, {
key: 'start_date',
op: 'range',
value: this.select.dateRange?this.select.dateRange.join(","):''
}]
filter: filter
})
this.list = res.data
this.total = res.total

@ -0,0 +1,218 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content">
</div>
</lx-header>
</div>
</div>
<div v-if="tabsList.length > 0">
<el-tabs v-model="activeTab" @tab-click="handleTabClick">
<el-tab-pane
v-for="tab in tabsList"
:key="tab.key || tab.name"
:label="tab.name"
:name="tab.key || tab.name"
>
<div class="tab-content">
<keep-alive>
<component
v-if="componentCache[tab.key || tab.name]"
:is="componentCache[tab.key || tab.name]"
:key="tab.key || tab.name"
></component>
<div v-else-if="loadingComponents[tab.key || tab.name]" class="loading-container">
<span>加载中...</span>
</div>
<div v-else-if="errorComponents[tab.key || tab.name]" class="error-container">
<span>页面加载失败请检查配置的路径是否正确</span>
</div>
</keep-alive>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div v-else class="empty-container">
<span>暂无数据配置请先配置数据</span>
</div>
</div>
</template>
<script>
import { index } from "@/api/info/configs.js"
export default {
name: 'DataConfig',
data() {
return {
tabsList: [],
activeTab: '',
componentCache: {}, //
loadingComponents: {}, //
errorComponents: {} //
}
},
created() {
this.getTabsList()
},
methods: {
// JSON
fixJsonString(jsonString) {
if (!jsonString || typeof jsonString !== 'string') {
return jsonString
}
//
// ,key: {key: ,key: [key:
// ,"key": {"key": ,"key": ["key":
let fixed = jsonString
// 线
// : { , [ :
fixed = fixed.replace(/([{,\[])\s*([a-zA-Z_$][a-zA-Z0-9_$]*)\s*:/g, '$1"$2":')
return fixed
},
async getTabsList() {
try {
const res = await index({
page: 1,
page_size: 1,
filter: [{
key: 'key',
op: 'eq',
value: "dataConfig"
}]
})
if (res.data && Array.isArray(res.data) && res.data.length > 0) {
//
const firstItem = res.data[0]
console.log(firstItem)
// value JSON
if (firstItem.value) {
try {
// JSON
const fixedJsonString = this.fixJsonString(firstItem.value)
console.log('修复后的 JSON:', fixedJsonString)
const valueData = JSON.parse(fixedJsonString)
console.log(valueData)
if (Array.isArray(valueData)) {
this.tabsList = valueData
// tab
if (this.tabsList.length > 0) {
this.activeTab = this.tabsList[0].key || this.tabsList[0].name
// tab
this.loadComponent(this.tabsList[0])
}
}
} catch (e) {
console.error('解析配置值失败:', e)
console.error('原始值:', firstItem.value)
this.$message.error('解析配置数据失败: ' + e.message)
}
}
}
} catch (error) {
console.error('获取数据配置失败:', error)
this.$message.error('获取数据配置失败')
}
},
handleTabClick(tab) {
const tabData = this.tabsList.find(t => (t.key || t.name) === tab.name)
if (tabData) {
//
const tabKey = tabData.key || tabData.name
if (!this.componentCache[tabKey] && !this.loadingComponents[tabKey] && !this.errorComponents[tabKey]) {
this.loadComponent(tabData)
}
}
},
async loadComponent(tabData) {
const tabKey = tabData.key || tabData.name
//
if (this.componentCache[tabKey]) {
return
}
// path
if (!tabData.path) {
console.error('配置中缺少 path 字段:', tabData)
this.$set(this.errorComponents, tabKey, true)
return
}
//
this.$set(this.loadingComponents, tabKey, true)
this.$delete(this.errorComponents, tabKey)
try {
//
// path 'student/index' '@/views/student/index'
let componentPath = tabData.path
if (!componentPath.startsWith('@/') && !componentPath.startsWith('./') && !componentPath.startsWith('/')) {
componentPath = `@/views/${componentPath}`
}
if (!componentPath.endsWith('.vue')) {
componentPath = `${componentPath}.vue`
}
// 使 require
//
let component
try {
// 使 import
component = await import(/* webpackChunkName: "[request]" */ componentPath)
component = component.default || component
} catch (importError) {
// import 使 require webpack
try {
component = require(`@/views/${tabData.path}.vue`).default || require(`@/views/${tabData.path}.vue`)
} catch (requireError) {
throw new Error(`无法加载组件: ${componentPath}`)
}
}
//
this.$set(this.componentCache, tabKey, component)
} catch (error) {
console.error('加载组件失败:', error)
this.$message.error(`加载页面 "${tabData.name}" 失败,请检查路径是否正确: ${tabData.path}`)
this.$set(this.errorComponents, tabKey, true)
} finally {
this.$delete(this.loadingComponents, tabKey)
}
}
}
}
</script>
<style lang="scss" scoped>
.tab-content {
min-height: 400px;
padding: 20px 0;
padding-top:0;
}
::v-deep .tab-content .v-header .v-left-text{
display: none!important;
}
.loading-container,
.error-container,
.empty-container {
display: flex;
justify-content: center;
align-items: center;
min-height: 400px;
color: #909399;
}
.error-container {
color: #f56c6c;
}
</style>

@ -0,0 +1,183 @@
<template>
<div>
<xy-dialog ref="dialog" :width="60" :is-show.sync="isShow" :type="'form'"
:title="type === 'add' ? '新增数据菜单' : '编辑数据菜单'" :form="form" :rules='rules' @submit="submit">
<template v-slot:name>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>配置名称
</div>
<div class="xy-table-item-content">
<el-input v-model="form.name" :disabled="type === 'editor'" placeholder="请输入配置名称" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:key>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>英文标识
</div>
<div class="xy-table-item-content">
<el-input v-model="form.key" :disabled="type === 'editor'" placeholder="请输入英文标识" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:value>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>配置值
</div>
<div class="xy-table-item-content">
<div style="width: 100%;">
<div style="margin-bottom: 10px;">
<el-button type="primary" size="small" @click="addTableRow"></el-button>
</div>
<el-table :data="tableData" border style="width: 100%;">
<el-table-column prop="name" label="名称" width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.name" placeholder="请输入名称" size="small"></el-input>
</template>
</el-table-column>
<el-table-column prop="key" label="英文标识" width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.key" placeholder="请输入英文标识" size="small"></el-input>
</template>
</el-table-column>
<el-table-column prop="path" label="路径" min-width="300">
<template slot-scope="scope">
<el-input v-model="scope.row.path" placeholder="请输入路径" size="small"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="danger" size="mini" @click="removeTableRow(scope.$index)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import {
show,
save
} from "@/api/info/configs.js"
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id: '',
form: {
name: '',
key: '',
value: ''
},
tableData: [],
rules: {
name:[{
required:true,
message:'请输入配置名称'
}],
key:[{
required:true,
message:'请输入英文标识'
}]
}
}
},
created() {},
methods: {
addTableRow() {
this.tableData.push({
name: '',
key: '',
path: ''
})
},
removeTableRow(index) {
this.tableData.splice(index, 1)
},
submit() {
if (this.id) {
this.form.id = this.id
}
if (this.type == 'add') {
this.form.id = ''
}
// JSON
this.form.value = JSON.stringify(this.tableData)
save(this.form).then(res => {
this.$message({
type: 'success',
message: this.type === 'add' ? '新增成功' : '编辑成功'
})
this.isShow = false
this.$emit('refresh')
})
},
getDetail() {
show({
id: this.id
}).then(res => {
this.form = this.base.requestToForm(res,this.form)
// JSON
if (this.form.value) {
try {
this.tableData = JSON.parse(this.form.value)
if (!Array.isArray(this.tableData)) {
this.tableData = []
}
} catch (e) {
console.error('解析配置值失败:', e)
this.tableData = []
}
} else {
this.tableData = []
}
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
this.getDetail()
} else {
//
this.tableData = []
}
} else {
this.id = ''
this.form = {
name: '',
key: '',
value: ''
}
this.tableData = []
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .name,
::v-deep .key,
::v-deep .value {
flex-basis: 100%;
}
</style>

@ -0,0 +1,142 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content">
<el-button type="primary" size="small" @click="editInfo('add')"></el-button>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :isShowPage="false" :table-item="table_item">
<template v-slot:value>
<el-table-column align='left' label="配置值" min-width="600" header-align="center">
<template slot-scope="scope">
<el-table
:data="parseValueData(scope.row.value)"
border
size="mini"
style="width: 100%;"
:show-header="true"
>
<el-table-column prop="name" label="名称" align="center"></el-table-column>
<el-table-column prop="key" label="英文标识" align="center"></el-table-column>
<el-table-column prop="path" label="路径" align="center"></el-table-column>
</el-table>
</template>
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='center' fixed="right" label="操作" width="180" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editInfo('editor',scope.row.id)"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<add-info ref="addInfo" @refresh="getList()"></add-info>
</div>
</template>
<script>
import addInfo from './components/addInfo.vue';
import {
index,
destroy
} from "@/api/info/configs.js"
export default {
components: {
addInfo
},
data() {
return {
select: {
name: '',
page: 1,
page_size: 10,
},
list: [],
total: 0,
table_item: [{
prop: 'name',
label: '配置名称',
align: 'center',
width: 180
}, {
prop: 'key',
label: '英文标识',
align: 'center',
width: 180,
}, {
prop: 'value',
label: '配置值',
align: 'left',
}]
}
},
created() {
this.getList()
},
methods: {
parseValueData(value) {
if (!value) {
return []
}
try {
const data = JSON.parse(value)
return Array.isArray(data) ? data : []
} catch (e) {
console.error('解析配置值失败:', e)
return []
}
},
async getList() {
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
filter: [{
key: 'key',
op: 'eq',
value: "dataConfig"
}]
})
this.list = res.data
this.total = res.total
},
editInfo(type, id) {
if (id) {
this.$refs.addInfo.id = id
}
this.$refs.addInfo.type = type
this.$refs.addInfo.isShow = true
},
}
}
</script>
<style lang="scss" scoped>
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
}
</style>

@ -25,9 +25,6 @@
type="year" placeholder="查询年份" value-format="yyyy" format="yyyy">
</el-date-picker>
</div>
<div>
<el-input v-model="select.course_name" placeholder="请输入课程名称"></el-input>
</div>
<div>
<el-date-picker style="width:100%" @change="changeStartDate" v-model="select.courses_start_date" type="date"
placeholder="课程开始日期" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
@ -38,62 +35,47 @@
placeholder="课程结束日期" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
</el-date-picker>
</div>
<div>
<el-select filterable v-model="select.status" placeholder="请选择审核状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select filterable v-model="select.course_type" placeholder="请选择课程体系" clearable>
<el-option v-for="item in courseTypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
<div style="width:250px">
<el-date-picker
v-model="signDates"
type="daterange"
range-separator="至"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
start-placeholder="报名开始日期"
end-placeholder="报名结束日期"
:picker-options="signDatePickerOptions"
@change="changeSignDates"
style="width:100%"
></el-date-picker>
<div>
<el-input v-model="select.course_name" placeholder="请输入课程名称"></el-input>
</div>
<div>
<el-select filterable v-model="select.from" placeholder="请选择学员标签" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.from_tag" :key="index" :label="item.value" :value="item.value">
<el-select filterable v-model="select.status" placeholder="请选择审核状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select filterable style="width:100%" v-model="talentTagsType"
@change="(e)=>{changeSelectType(e,'talent_tags')}" multiple collapse-tags placeholder="请选择人才标签" clearable>
<el-option v-for="(item,index) in formSelect.talent_tags" :key="index" :label="item.value" :value="item.value">
<div v-if="!isIndex2Route">
<el-select filterable v-model="select.is_schoolmate" placeholder="请选择是否校友" clearable>
<el-option v-for="item in is_schoolmate_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div style="width:250px">
<el-date-picker v-model="birthdayDates" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
style="width:100%" @change="changeBirthdayDates" type="daterange" range-separator="至"
start-placeholder="出生日期" end-placeholder="出生日期">
</el-date-picker>
</div>
<div>
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
<el-select filterable style="width:100%" v-model="select.is_yh_invested" placeholder="请选择集团标签" clearable>
<el-option label="被投企业" :value="1">
</el-option>
</el-select>
</div>
<div>
<el-input v-model="select.school" placeholder="请输入最高毕业院校"></el-input>
<div style="width:250px">
<el-select filterable style="width:100%" v-model="companyType"
@change="(e)=>{changeSelectType(e,'company_type')}" multiple collapse-tags
placeholder="请选择企业资质" clearable>
<el-option v-for="(item,index) in formSelect.company_type_all" :key="index" :label="item"
:value="item">
</el-option>
</el-select>
</div>
<div>
<el-select filterable style="width:100%" v-model="educationType"
@change="(e)=>{changeSelectType(e,'education')}" multiple collapse-tags placeholder="请选择学历" clearable>
<el-option v-for="item in formSelect.education" :key="item.id" :label="item.value"
:value="item.value">
<el-select filterable style="width:100%" v-model="talentTagsType"
@change="(e)=>{changeSelectType(e,'talent_tags')}" multiple collapse-tags placeholder="请选择人才标签" clearable>
<el-option v-for="(item,index) in formSelect.talent_tags" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
@ -104,30 +86,9 @@
</el-option>
</el-select>
</div>
<div >
<el-select filterable v-model="select.is_vip" placeholder="请选择学员身份" clearable>
<el-option v-for="item in is_vip_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div v-if="!isIndex2Route">
<el-select filterable v-model="select.is_schoolmate" placeholder="请选择是否校友" clearable>
<el-option v-for="item in is_schoolmate_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-input v-model="select.company_position" placeholder="请输入职务"></el-input>
</div>
<div>
<el-select filterable v-model="select.company_has_share" placeholder="是否有股份" clearable>
<el-option v-for="item in shareList" :key="item.value" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select filterable v-model="select.company_need_fund" placeholder="是否需要融资" clearable>
<el-option v-for="item in yuanheList" :key="item.value" :label="item.value" :value="item.value">
<el-select filterable v-model="select.from" placeholder="请选择学员标签" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.from_tag" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
@ -137,13 +98,6 @@
<el-option label="否" :value="0"></el-option>
</el-select>
</div>
<div style="width:250px">
<el-date-picker v-model="companyDates" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
style="width:100%" @change="changeCompanyDates" type="daterange" range-separator="至"
start-placeholder="公司成立日期" end-placeholder="公司成立日期">
</el-date-picker>
</div>
<div style="width:200px">
<el-select filterable style="width:100%" v-model="companyArea"
multiple collapse-tags
@ -154,16 +108,6 @@
</el-option>
</el-select>
</div>
<div style="width:250px">
<el-select filterable style="width:100%" v-model="companyType"
@change="(e)=>{changeSelectType(e,'company_type')}" multiple collapse-tags
placeholder="请选择企业资质" clearable>
<el-option v-for="(item,index) in formSelect.company_type_all" :key="index" :label="item"
:value="item">
</el-option>
</el-select>
</div>
<div style="width:250px">
<el-select filterable style="width:100%" v-model="companyIndustry" multiple collapse-tags
@change="(e)=>{changeSelectType(e,'company_industry')}" placeholder="请选择所属领域" clearable>
@ -176,17 +120,86 @@
</el-select>
</div>
<div>
<el-select filterable style="width:100%" v-model="select.is_yh_invested" placeholder="请选择集团标签" clearable>
<el-option label="被投企业" :value="1">
<el-select filterable v-model="select.has_openid" placeholder="是否绑定小程序" clearable>
<el-option v-for="item in false_or_true" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select filterable v-model="select.has_openid" placeholder="是否绑定小程序" clearable>
<el-option v-for="item in false_or_true" :key="item.id" :label="item.value" :value="item.id">
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
</div>
<div>
<el-select filterable style="width:100%" v-model="educationType"
@change="(e)=>{changeSelectType(e,'education')}" multiple collapse-tags placeholder="请选择学历" clearable>
<el-option v-for="item in formSelect.education" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-input v-model="select.school" placeholder="请输入最高毕业院校"></el-input>
</div>
<div style="width:250px">
<el-date-picker v-model="birthdayDates" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
style="width:100%" @change="changeBirthdayDates" type="daterange" range-separator="至"
start-placeholder="出生日期" end-placeholder="出生日期">
</el-date-picker>
</div>
<div>
<el-input v-model="select.company_position" placeholder="请输入职务"></el-input>
</div>
<div>
<el-select filterable v-model="select.company_has_share" placeholder="是否有股份" clearable>
<el-option v-for="item in shareList" :key="item.value" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select filterable v-model="select.company_need_fund" placeholder="是否需要融资" clearable>
<el-option v-for="item in yuanheList" :key="item.value" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
<div >
<el-select filterable v-model="select.is_vip" placeholder="请选择学员身份" clearable>
<el-option v-for="item in is_vip_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div style="width:250px">
<el-date-picker
v-model="signDates"
type="daterange"
range-separator="至"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
start-placeholder="报名开始日期"
end-placeholder="报名结束日期"
:picker-options="signDatePickerOptions"
@change="changeSignDates"
style="width:100%"
></el-date-picker>
</div>
<div style="width:250px">
<el-date-picker v-model="companyDates" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
style="width:100%" @change="changeCompanyDates" type="daterange" range-separator="至"
start-placeholder="公司成立日期" end-placeholder="公司成立日期">
</el-date-picker>
</div>
<div>
<el-select v-model="select.is_chart" placeholder="课程是否统计" clearable style="width: 150px;">
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
</div>
</div>
</template>
@ -423,6 +436,7 @@
sign_start_date: '',
sign_end_date: '',
is_company_market: '',
is_chart: '',
page: 1,
page_size: 10,
},
@ -632,9 +646,9 @@
},
//
changeSignDates(e) {
if (e && e.length === 2) {
this.select.sign_start_date = e[0]
this.select.sign_end_date = e[1]
if (e && Array.isArray(e) && e.length === 2) {
this.select.sign_start_date = e[0] || ''
this.select.sign_end_date = e[1] || ''
} else {
this.select.sign_start_date = ''
this.select.sign_end_date = ''
@ -662,37 +676,38 @@
'/api/admin/users/study',
'get', {
export_fields: _export,
keyword: this.select.keyword,
name: this.select.name,
year:this.select.year?this.select.year:'',
mobile: this.select.mobile,
from: this.select.from,
talent_tags: this.select.talent_tags,
company_name: this.select.company_name,
school: this.select.school,
start_birthday: this.select.start_birthday,
end_birthday: this.select.end_birthday,
start_company_date: this.select.start_company_date,
end_company_date: this.select.end_company_date,
course_name: this.select.course_name,
company_has_share: this.select.company_has_share,
company_need_fund: this.select.company_need_fund,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
is_vip: this.select.is_vip,
is_yh_invested: this.select.is_yh_invested,
courses_start_date: this.select.courses_start_date,
courses_end_date: this.select.courses_end_date,
is_schoolmate: this.select.is_schoolmate,
is_black: this.select.is_black,
education: this.select.education,
type: this.select.type,
status: this.select.status,
course_type: this.select.course_type,
has_openid: this.select.has_openid,
is_company_market: this.select.is_company_market,
keyword: this.select.keyword || '',
name: this.select.name || '',
year: this.select.year || '',
mobile: this.select.mobile || '',
from: this.select.from || '',
talent_tags: this.select.talent_tags || '',
company_name: this.select.company_name || '',
school: this.select.school || '',
start_birthday: this.select.start_birthday || '',
end_birthday: this.select.end_birthday || '',
start_company_date: this.select.start_company_date || '',
end_company_date: this.select.end_company_date || '',
course_name: this.select.course_name || '',
company_has_share: this.select.company_has_share || '',
company_need_fund: this.select.company_need_fund || '',
company_position: this.select.company_position || '',
company_area: this.select.company_area || '',
company_type: this.select.company_type || '',
company_industry: this.select.company_industry || '',
is_vip: this.select.is_vip || '',
is_yh_invested: this.select.is_yh_invested || '',
courses_start_date: this.select.courses_start_date || '',
courses_end_date: this.select.courses_end_date || '',
is_schoolmate: this.select.is_schoolmate || '',
is_black: this.select.is_black || '',
education: this.select.education || '',
type: this.select.type || '',
status: this.select.status || '',
course_type: this.select.course_type || '',
has_openid: this.select.has_openid || '',
is_company_market: this.select.is_company_market || '',
is_chart: this.select.is_chart !== '' && this.select.is_chart !== null ? this.select.is_chart : '',
is_export: 1,
page: 1,
page_size: 99999
@ -768,6 +783,7 @@
this.select.sign_end_date = ''
this.signDates = []
this.select.is_company_market = ''
this.select.is_chart = ''
this.select.page = 1
this.getList()
},
@ -775,38 +791,39 @@
const res = await indexStudy({
page: this.select.page,
page_size: this.select.page_size,
keyword: this.select.keyword,
name: this.select.name,
year:this.select.year?this.select.year:'',
mobile: this.select.mobile,
company_name: this.select.company_name,
from:this.select.from,
talent_tags: this.select.talent_tags,
school: this.select.school,
start_birthday: this.select.start_birthday,
end_birthday: this.select.end_birthday,
start_company_date: this.select.start_company_date,
end_company_date: this.select.end_company_date,
course_name: this.select.course_name,
company_has_share: this.select.company_has_share,
company_need_fund: this.select.company_need_fund,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
is_yh_invested: this.select.is_yh_invested,
is_vip: this.select.is_vip,
courses_start_date: this.select.courses_start_date,
courses_end_date: this.select.courses_end_date,
is_schoolmate: this.select.is_schoolmate,
education: this.select.education,
type: this.select.type,
status: this.select.status,
has_openid:this.select.has_openid,
course_type: this.select.course_type,
sign_start_date: this.select.sign_start_date,
sign_end_date: this.select.sign_end_date,
is_company_market: this.select.is_company_market
keyword: this.select.keyword || '',
name: this.select.name || '',
year: this.select.year || '',
mobile: this.select.mobile || '',
company_name: this.select.company_name || '',
from: this.select.from || '',
talent_tags: this.select.talent_tags || '',
school: this.select.school || '',
start_birthday: this.select.start_birthday || '',
end_birthday: this.select.end_birthday || '',
start_company_date: this.select.start_company_date || '',
end_company_date: this.select.end_company_date || '',
course_name: this.select.course_name || '',
company_has_share: this.select.company_has_share || '',
company_need_fund: this.select.company_need_fund || '',
company_position: this.select.company_position || '',
company_area: this.select.company_area || '',
company_type: this.select.company_type || '',
company_industry: this.select.company_industry || '',
is_yh_invested: this.select.is_yh_invested || '',
is_vip: this.select.is_vip || '',
courses_start_date: this.select.courses_start_date || '',
courses_end_date: this.select.courses_end_date || '',
is_schoolmate: this.select.is_schoolmate || '',
education: this.select.education || '',
type: this.select.type || '',
status: this.select.status || '',
has_openid: this.select.has_openid || '',
course_type: this.select.course_type || '',
is_chart: this.select.is_chart !== '' && this.select.is_chart !== null ? this.select.is_chart : '',
sign_start_date: this.select.sign_start_date || '',
sign_end_date: this.select.sign_end_date || '',
is_company_market: this.select.is_company_market || ''
})
this.list = res.list.data
this.total = res.list.total
@ -818,18 +835,10 @@
this.searyear = this.select.year ? this.select.year : ''
},
changeDate(e) {
if (e) {
this.select.courses_end_date = e
} else {
this.select.courses_end_date = ''
}
this.select.courses_end_date = e || ''
},
changeStartDate(e) {
if (e) {
this.select.courses_start_date = e
} else {
this.select.courses_start_date = ''
}
this.select.courses_start_date = e || ''
},
//
selectionChange(e) {

Loading…
Cancel
Save