反馈更改

master
lion 2 months ago
parent 2d1a8c3784
commit 75508c3a73

@ -13,7 +13,7 @@
</el-select>
</div>
<div>
<el-select filterable v-model="select.direction" placeholder="请选择课程方向" clearable style="width: 100%;">
<el-select filterable v-model="select.direction" placeholder="请选择或输入课程方向" clearable style="width: 100%;">
<el-option v-for="(item,index) in direction_options" :key="index" :label="item.value" :value="item.id">
</el-option>
</el-select>
@ -130,7 +130,7 @@
align: 'center',
width: 120,
},{
prop: 'direction_detail.value',
prop: 'direction',
label: '课程方向',
align: 'center',
width: 120,
@ -180,7 +180,7 @@
const res = await index({
page_size: this.select.page_size,
page: this.select.page,
show_relation: ['course','teacher','directionDetail'],
show_relation: ['course','teacher'],
filter: [{
key: 'file_ids',
op: 'notnull',

@ -57,8 +57,8 @@
<el-table-column prop="direction" label="课程方向" width="240" align="left">
<template slot-scope="scope">
<div class="cc-item" v-for="(item, index) in scope.row.course_contents" :key="index">
<el-tooltip :content="item.direction_detail ? item.direction_detail.value : ''" placement="top" :disabled="!item.direction_detail || item.direction_detail.value.length <= 20">
<span>{{ item.direction_detail ? item.direction_detail.value : '' }}</span>
<el-tooltip :content="item.direction ? item.direction : ''" placement="top" :disabled="!item.direction || item.direction.length <= 20">
<span>{{ item.direction ? item.direction : '' }}</span>
</el-tooltip>
</div>
</template>

@ -124,7 +124,7 @@
align="left"
></el-table-column>
<el-table-column
prop="direction_detail.value"
prop="direction"
label="课程方向"
min-width="150"
align="left"
@ -406,7 +406,7 @@ import editClass from "../components/editClass.vue";
const res = await index({
page: 1,
page_size: 999,
show_relation: ["teacher",'directionDetail'],
show_relation: ["teacher"],
sort_name: "date",
sort_type: "DESC",
filter: [

@ -51,6 +51,26 @@
</div>
</div>
</template>
<!-- <template v-slot:student_prefix v-if="active===0">
<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>
<div class="xy-table-item-content">
<el-input v-model="form.student_prefix" placeholder="" clearable style="width: 100%;"></el-input>
</div>
</template> -->
<template v-slot:student_prefix v-if="active===0">
<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.student_prefix" placeholder="例高研班第一期填入GY01" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:url v-if="active===0">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
@ -376,6 +396,7 @@
type: '',
name: '',
is_virtual: 0, //01
student_prefix:'',
url: '',
year: '',
dateRange: '',
@ -815,6 +836,7 @@
type: '',
name: '',
is_virtual: 0,
student_prefix:'',
url: '',
year: '',
dateRange: '',

@ -26,6 +26,20 @@
</div>
</div>
</template>
<template v-slot:open_mobile>
<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-select v-model="form.open_mobile" placeholder="请选择学员是否开放联系方式" style="width: 100%;">
<el-option v-for="item in [{id:0,value:'否'},{id:1,value:'是'}]" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:is_chart>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
@ -191,7 +205,7 @@
id: '',
form: {
name:'',
open_mobile:0,
status:1,
is_chart:0,
wait_tip:"",
@ -241,6 +255,7 @@
id: this.id
}).then(res => {
this.form = this.base.deepCopy(res)
this.form.open_mobile = res.open_mobile?res.open_mobile:0
this.form.status = res.status?res.status:0
this.form.is_chart = res.is_chart?res.is_chart:0
this.form.is_fee = res.is_fee?res.is_fee:(res.is_fee==0?0:'')
@ -265,6 +280,7 @@
this.form = {
name:'',
open_mobile:0,
status:1,
is_chart:0,
wait_tip:"",

@ -77,7 +77,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>课程方向
</div>
<div class="xy-table-item-content">
<el-select filterable v-model="form.direction" style="width:100%" placeholder="请选择课程方向" clearable>
<el-select multiple filterable allow-create v-model="form.direction" style="width:100%" placeholder="请选择或创建课程方向" clearable>
<el-option v-for="item in direction_options" :key="item.id" :label="item.value" :value="item.value">
</el-option>
</el-select>
@ -336,7 +336,9 @@
const finalFileIds = [...existingFileIds, ...newFileIds].filter(id =>
!this.removedFileIds.includes(id)
);
if(this.form.direction && this.form.direction.length > 0){
this.form.direction = this.form.direction.join(',')
}
const submitData = {
...this.form,
file_ids: finalFileIds
@ -382,7 +384,7 @@
this.form.files = res.files ? res.files : []
//
this.form.teacher_introduce = res.teacher ? res.teacher.introduce || '' : ''
this.form.direction = res.direction ? parseInt(res.direction) : ''
this.form.direction = res.direction ? res.direction.split(',') : []
// this.form.timeRange = [this.form.start_time ? this.form.start_time : '', this.form.end_time ? this.form
// .end_time : ''
// ]

@ -3,20 +3,53 @@
<div v-if="finalDetail" class="supply-detail">
<div class="section">
<div class="label">供需类型</div>
<div>{{ finalDetail.type === 1 ? '供应' : '需求' }}</div>
<div>{{ finalDetail.type === 1 ? '供应' : finalDetail.type === 2 ? '需求' : finalDetail.type === 3 ? '投融资' : '' }}</div>
</div>
<div class="section">
<div class="label">标题</div>
<div>{{ finalDetail.title || '-' }}</div>
</div>
<div class="section">
<!-- 非投融资时显示原有字段 -->
<div v-if="finalDetail.type !== 3" class="section">
<div class="label">详细描述</div>
<div>{{ finalDetail.content || '-' }}</div>
</div>
<div class="section">
<div v-if="finalDetail.type !== 3" class="section">
<div class="label">行业标签</div>
<div>{{ finalDetail.tag || '-' }}</div>
</div>
<!-- 投融资专属字段 -->
<template v-if="finalDetail.type === 3">
<div class="section">
<div class="label">资金类型</div>
<div>{{ finalDetail.fund_type || '-' }}</div>
</div>
<div class="section">
<div class="label">金额</div>
<div>{{ formatAmount(finalDetail.amount) }}</div>
</div>
<div class="section">
<div class="label">融资阶段</div>
<div>{{ finalDetail.fund_stage || '-' }}</div>
</div>
<div class="section">
<div class="label">期望资金属性</div>
<div>{{ finalDetail.expect_fund_attr || '-' }}</div>
</div>
<div class="section">
<div class="label">行业类型</div>
<div>{{ finalDetail.industry_type || '-' }}</div>
</div>
<div class="section">
<div class="label">主要产品</div>
<div>{{ finalDetail.product || '-' }}</div>
</div>
<div class="section">
<div class="label">简要描述</div>
<div>{{ finalDetail.desc || '-' }}</div>
</div>
</template>
<div class="section">
<div class="label">联系人</div>
<div>{{ finalDetail.contact_name || '-' }}</div>
@ -127,6 +160,11 @@ export default {
}
},
methods: {
formatAmount(val) {
const n = typeof val === 'number' ? val : parseFloat(val)
if (Number.isNaN(n)) return '-'
return n.toFixed(2)
},
async fetchDetail() {
if (!this.id) return

@ -5,15 +5,17 @@
<el-radio-group v-model="form.type">
<el-radio :label="1">供应</el-radio>
<el-radio :label="2">需求</el-radio>
<el-radio :label="3">投融资</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="标题">
<el-input v-model="form.title" maxlength="50" show-word-limit />
</el-form-item>
<el-form-item label="详细描述">
<!-- 非投融资时显示原有描述与行业标签 -->
<el-form-item v-if="form.type !== 3" label="详细描述">
<el-input v-model="form.content" type="textarea" :rows="4" maxlength="200" show-word-limit />
</el-form-item>
<el-form-item label="行业标签">
<el-form-item v-if="form.type !== 3" label="行业标签">
<el-input
v-model="tagInput"
placeholder="输入后回车键确认"
@ -35,6 +37,34 @@
</div>
</el-form-item>
<!-- 投融资专属字段 type === 3 时显示 -->
<template v-if="form.type === 3">
<el-form-item label="资金类型">
<el-select v-model="form.fund_type" placeholder="请选择资金类型" style="width: 240px;">
<el-option label="投资" value="投资" />
<el-option label="融资" value="融资" />
</el-select>
</el-form-item>
<el-form-item label="金额">
<el-input-number v-model="form.amount" :precision="2" :step="0.01" :min="0" style="width: 240px;" />
</el-form-item>
<el-form-item label="融资阶段">
<el-input v-model="form.fund_stage" maxlength="50" />
</el-form-item>
<el-form-item label="期望资金属性">
<el-input v-model="form.expect_fund_attr" maxlength="50" />
</el-form-item>
<el-form-item label="行业类型">
<el-input v-model="form.industry_type" maxlength="50" />
</el-form-item>
<el-form-item label="主要产品">
<el-input v-model="form.product" maxlength="50" />
</el-form-item>
<el-form-item label="简要描述">
<el-input v-model="form.desc" type="textarea" :rows="4" maxlength="200" show-word-limit />
</el-form-item>
</template>
<!-- 图片上传 -->
<el-form-item label="相关图片">
<el-upload
@ -167,6 +197,14 @@ export default {
type: 1,
title: '',
content: '',
//
fund_type: '',
amount: 0,
fund_stage: '',
expect_fund_attr: '',
industry_type: '',
product: '',
desc: '',
contactType: 'mobile',
mobile: '',
wechat: '',
@ -208,6 +246,13 @@ export default {
type: 1,
title: '',
content: '',
fund_type: '',
amount: 0,
fund_stage: '',
expect_fund_attr: '',
industry_type: '',
product: '',
desc: '',
contactType: 'mobile',
mobile: '',
wechat: '',
@ -226,6 +271,13 @@ export default {
type: val.type || 1,
title: val.title || '',
content: val.content || '',
fund_type: val.fund_type || '',
amount: typeof val.amount === 'number' ? val.amount : (parseFloat(val.amount) || 0),
fund_stage: val.fund_stage || '',
expect_fund_attr: val.expect_fund_attr || '',
industry_type: val.industry_type || '',
product: val.product || '',
desc: val.desc || '',
contactType: val.wechat ? 'wechat' : (val.email ? 'email' : 'mobile'),
mobile: val.mobile || '',
wechat: val.wechat || '',
@ -316,7 +368,7 @@ export default {
const data = {
id: this.form.id,
title: this.form.title,
content: this.form.content,
content: this.form.type === 3 ? '' : this.form.content,
tag: this.tagList.join(','),
wechat: this.form.wechat,
mobile: this.form.mobile,
@ -328,6 +380,26 @@ export default {
contact_name: this.form.contactName,
file_ids: this.imageList.map(item => item.response?.id || item.id).filter(Boolean)
}
//
if (this.form.type === 3) {
data.fund_type = this.form.fund_type
data.amount = this.form.amount
data.fund_stage = this.form.fund_stage
data.expect_fund_attr = this.form.expect_fund_attr
data.industry_type = this.form.industry_type
data.product = this.form.product
data.desc = this.form.desc
//
data.tag = ''
} else {
data.fund_type = ''
data.amount = 0
data.fund_stage = ''
data.expect_fund_attr = ''
data.industry_type = ''
data.product = ''
data.desc = ''
}
// file_ids
if (this.newUploadedFileIds && this.newUploadedFileIds.length) {
const fileIdSet = new Set(data.file_ids)

@ -51,10 +51,12 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>集团标签
</div>
<div class="xy-table-item-content">
<el-select v-model="form.company_tag" placeholder="请选择集团标签" clearable style="width: 100%;">
<el-input v-model="form.company_tag" placeholder="请输入集团标签" clearable style="width: 100%;"></el-input>
<!-- <el-select v-model="form.company_tag" placeholder="请选择集团标签" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.company_tag" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</el-select> -->
</div>
</div>
</template>

@ -138,6 +138,9 @@
</el-option> -->
</el-select>
</div>
<div>
<el-input v-model="select.company_tag" placeholder="请输入集团标签"></el-input>
</div>
<div>
<el-select 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">
@ -347,6 +350,7 @@
company_area: '',
company_type: '',
company_industry: '',
company_tag: '',
is_vip: '',
is_schoolmate: '',
courses_end_date: '',
@ -593,6 +597,7 @@
this.select.company_area = ''
this.select.company_type = ''
this.select.company_industry = ''
this.select.company_tag = ''
this.select.is_vip = ''
this.select.courses_end_date = ''
this.select.is_schoolmate = ''
@ -625,6 +630,7 @@
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
company_tag: this.select.company_tag,
is_vip: this.select.is_vip,
courses_end_date: this.select.courses_end_date,
is_schoolmate: this.select.is_schoolmate,

@ -53,6 +53,7 @@
<el-option label="全部" value=""></el-option>
<el-option label="供应" value="supply"></el-option>
<el-option label="需求" value="demand"></el-option>
<el-option label="投融资" value="finance"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -460,6 +461,7 @@ export default {
getTypeDisplayValue(type) {
if (type === 'demand' || type === 2) return '需求'
if (type === 'supply' || type === 1) return '供应'
if (type === 'finance' || type === 3) return '投融资'
return '未知'
},
@ -467,6 +469,7 @@ export default {
getTypeTagType(type) {
if (type === 'demand' || type === 2) return 'warning'
if (type === 'supply' || type === 1) return 'success'
if (type === 'finance' || type === 3) return 'warning'
return 'info'
},

@ -138,6 +138,9 @@
</el-option> -->
</el-select>
</div>
<div>
<el-input v-model="select.company_tag" placeholder="请输入集团标签"></el-input>
</div>
<div>
<el-select 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">
@ -316,6 +319,7 @@
company_area: '',
company_type: '',
company_industry: '',
company_tag: '',
is_vip: '',
is_schoolmate: 1,
courses_end_date: '',
@ -499,6 +503,7 @@
this.select.company_type = ''
this.select.company_industry = ''
this.select.is_vip = ''
this.select.company_tag = ''
this.select.courses_end_date = ''
this.select.is_schoolmate = 1
this.select.education = ''
@ -530,6 +535,7 @@
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
company_tag: this.select.company_tag,
is_vip: this.select.is_vip,
courses_end_date: this.select.courses_end_date,
is_schoolmate: this.select.is_schoolmate,

@ -16,12 +16,13 @@
</el-select>
</div>
<div>
<el-select v-model="select.company_tag" placeholder="请选择集团标签" clearable style="width: 100%;">
<el-option label="被投企业" value="被投企业">
</el-option>
<el-option v-for="(item,index) in formSelect.company_tag" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
<el-input v-model="select.company_tag" placeholder="请输入集团标签"></el-input>
<!-- <el-select v-model="select.company_tag" placeholder="请选择集团标签" clearable style="width: 100%;">
<el-option label="被投企业" value="被投企业">
</el-option>
<el-option v-for="(item,index) in formSelect.company_tag" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select> -->
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
@ -79,7 +80,7 @@
</template>
</el-table-column>
</template>
<template v-slot:tag>
<!-- <template v-slot:tag>
<el-table-column align='center' label="集团标签" width="120" header-align="center">
<template slot-scope="scope">
<div v-if="scope.row.is_yh_invested" style="margin:3px">
@ -91,7 +92,7 @@
</div>
</template>
</el-table-column>
</template>
</template> -->
<template v-slot:users>
<el-table-column align='center' label="学员信息" width="800" header-align="center">
<el-table-column label="学号" width="120" align="center">
@ -186,7 +187,7 @@
align: 'center',
width: 260
}, {
prop: 'tag',
prop: 'company_tag',
label: '集团标签',
align: 'center',
width: 160,

@ -31,6 +31,7 @@
<el-select v-model="filters.type" placeholder="全部类型" clearable>
<el-option label="供应" value="1"></el-option>
<el-option label="需求" value="2"></el-option>
<el-option label="投融资" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -63,7 +64,7 @@
<el-table-column label="类型" width="100">
<template slot-scope="scope">
<el-tag :type="getTypeTagType(scope.row.type)" size="small">
{{ scope.row.type === 1 ? '供应' : '需求' }}
{{ scope.row.type === 1 ? '供应' : scope.row.type === 2 ? '需求' : scope.row.type === 3 ? '投融资' : '' }}
</el-tag>
</template>
</el-table-column>
@ -244,7 +245,7 @@ export default {
return statusText[status] || '未知'
},
getTypeTagType(type) {
return type === 1 ? 'success' : 'primary'
return type === 1 ? 'success' : type === 2 ? 'primary' : type === 3 ? 'warning' : 'info'
},
async handleApprove(row) {
try {

Loading…
Cancel
Save