学校是否显示

master
lion 6 days ago
parent 5737ea3bfb
commit 9a7b8edf89

@ -20,6 +20,20 @@
@click="isShowAdd = true" @click="isShowAdd = true"
>新增</el-button >新增</el-button
> >
<template v-if="isHasAuth('edit')">
<el-button
size="small"
type="primary"
plain
@click="batchSetIsShow(1)"
>批量设为显示</el-button>
<el-button
size="small"
type="warning"
plain
@click="batchSetIsShow(0)"
>批量设为不显示</el-button>
</template>
<template v-if="isHasAuth('search')"> <template v-if="isHasAuth('search')">
<el-input style="width: 120px;" v-model="select['filter[1][value]']" placeholder="学校名称.." size="small"></el-input> <el-input style="width: 120px;" v-model="select['filter[1][value]']" placeholder="学校名称.." size="small"></el-input>
<el-select <el-select
@ -42,6 +56,16 @@
<el-option v-for="item in area" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in area" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-input style="width: 120px;" v-model="select['filter[2][value]']" placeholder="学校星级.." size="small"></el-input> <el-input style="width: 120px;" v-model="select['filter[2][value]']" placeholder="学校星级.." size="small"></el-input>
<el-select
style="width: 110px;"
v-model="select['is_show']"
clearable
placeholder="是否显示"
size="small"
>
<el-option label="是" :value="1"></el-option>
<el-option label="否" :value="0"></el-option>
</el-select>
<el-button <el-button
icon="el-icon-search" icon="el-icon-search"
@ -221,6 +245,29 @@
}" }"
/> />
<vxe-column
align="center"
field="is_show"
width="120"
title="是否显示"
:edit-render="{}"
>
<template #default="{ row }">
<span>{{ row.is_show === 0 || row.is_show === '0' ? '否' : '是' }}</span>
</template>
<template #edit="{ row }">
<el-select
v-model="row.is_show"
size="mini"
placeholder="请选择"
style="width: 100%"
>
<el-option label="是" :value="1" />
<el-option label="否" :value="0" />
</el-select>
</template>
</vxe-column>
<vxe-column <vxe-column
align="center" align="center"
field="type" field="type"
@ -471,6 +518,7 @@ export default {
'filter[3][op]': 'eq', 'filter[3][op]': 'eq',
'filter[3][value]': '', 'filter[3][value]': '',
'type': [], 'type': [],
is_show: '',
}, },
total: 0, total: 0,
allAlign: null, allAlign: null,
@ -488,7 +536,8 @@ export default {
build_year: "", build_year: "",
introduce: "", introduce: "",
teacher: "", teacher: "",
from: 1 from: 1,
is_show: 1,
}, },
validRules: { validRules: {
name: [ name: [
@ -569,6 +618,8 @@ export default {
export_fields['nature_text'] = tableColumns.find(col => col.field === key)?.title || key export_fields['nature_text'] = tableColumns.find(col => col.field === key)?.title || key
}else if(key=='type'){ }else if(key=='type'){
export_fields['type_text'] = tableColumns.find(col => col.field === key)?.title || key export_fields['type_text'] = tableColumns.find(col => col.field === key)?.title || key
}else if(key=='is_show'){
export_fields['is_show_text'] = tableColumns.find(col => col.field === key)?.title || key
}else if(key=='is_area_3'||key=='id'){ }else if(key=='is_area_3'||key=='id'){
}else{ }else{
@ -706,6 +757,46 @@ export default {
this.$refs["table"].setEditRow(row); this.$refs["table"].setEditRow(row);
} }
}, },
async batchSetIsShow(isShow) {
const $table = this.$refs["table"];
if (!$table) {
return;
}
const records = $table.getCheckboxRecords();
if (!records.length) {
this.$message.warning("请先勾选学校");
return;
}
const text = isShow === 1 ? "显示" : "不显示";
try {
await this.$confirm(
`确定将已选 ${records.length} 所学校批量设为「${text}」吗?`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
);
} catch {
return;
}
this.loading = true;
try {
await Promise.all(
records.map((row) => save({ id: row.id, is_show: isShow }, false))
);
this.$message.success("设置成功");
$table.clearCheckboxRow();
await this.getList();
} catch (err) {
console.error(err);
this.$message.error("设置失败,请重试");
await this.getList();
} finally {
this.loading = false;
}
},
cancelRowEvent(row) { cancelRowEvent(row) {
if (this.$refs["table"]) { if (this.$refs["table"]) {
this.$refs["table"].clearEdit().then(() => { this.$refs["table"].clearEdit().then(() => {
@ -722,7 +813,13 @@ export default {
this.loading = true; this.loading = true;
try { try {
const res = await index(this.select, false); const res = await index(this.select, false);
this.tableData = res.data; this.tableData = (res.data || []).map((row) => ({
...row,
is_show:
row.is_show === 0 || row.is_show === '0' || row.is_show === false
? 0
: 1,
}));
this.total = res.total; this.total = res.total;
this.loading = false; this.loading = false;
} catch (err) { } catch (err) {

@ -117,6 +117,17 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否显示" prop="is_show">
<el-select
v-model="form['is_show']"
placeholder="请选择"
style="width: 100%"
>
<el-option label="是" :value="1"></el-option>
<el-option label="否" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学校介绍" prop="introduce" class="span2"> <el-form-item label="学校介绍" prop="introduce" class="span2">
<my-tinymce <my-tinymce
:key="key" :key="key"
@ -202,6 +213,8 @@ export default {
introduce: "", introduce: "",
teacher: "", teacher: "",
is_show: 1,
}, },
rules: { rules: {
name: [ name: [
@ -291,6 +304,8 @@ export default {
introduce: "", introduce: "",
teacher: "", teacher: "",
is_show: 1,
}; };
this.$refs["elForm"].resetFields(); this.$refs["elForm"].resetFields();
}, },

@ -66,6 +66,10 @@
{{ form["build_year"] }} {{ form["build_year"] }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="是否显示">
{{ form["is_show"] === 0 || form["is_show"] === "0" ? "否" : "是" }}
</el-descriptions-item>
<el-descriptions-item label="学校介绍" span="2"> <el-descriptions-item label="学校介绍" span="2">
{{ form["introduce"] }} {{ form["introduce"] }}
</el-descriptions-item> </el-descriptions-item>
@ -120,6 +124,8 @@ export default {
introduce: "", introduce: "",
teacher: "", teacher: "",
is_show: 1,
}, },
}; };
}, },

Loading…
Cancel
Save