master
xy 3 years ago
parent 6a9cacae3a
commit 8333165f02

@ -30,14 +30,14 @@
</template> </template>
<template v-slot:remark> <template v-slot:remark>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label">录取查询说明 </div> <div class="xy-table-item-label">备注 </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input <el-input
type="textarea" type="textarea"
:autosize="{ minRows: 2 }" :autosize="{ minRows: 2 }"
v-model="form.remark" v-model="form.remark"
clearable clearable
placeholder="请输入录取查询说明 " placeholder="请输入备注 "
style="width: 300px" style="width: 300px"
/> />
</div> </div>

@ -14,18 +14,18 @@
justify-content: space-between; justify-content: space-between;
" "
> >
<el-tabs style="flex: 1" v-model="activeName"> <el-tabs type="card" style="flex: 1" v-model="activeName" @tab-click="tabClick">
<el-tab-pane <el-tab-pane
v-for="item in templateItems" v-for="item in templateItems"
:key="item.index" :key="item.id"
:name="item.name" :name="String(item.id)"
> >
<template v-slot:label> <template v-slot:label>
<span style="padding: 0 8px" <span style="padding: 0 8px"
>{{ item.name >{{ item.name
}}<i }}<i
class="el-icon-setting" class="el-icon-setting"
style="padding-left: 8px;cursor: alias" style="padding-left: 8px; cursor: pointer"
@click=" @click="
($refs['addTemplateItem'].id = item.id), ($refs['addTemplateItem'].id = item.id),
($refs['addTemplateItem'].type = 'editor'), ($refs['addTemplateItem'].type = 'editor'),
@ -93,10 +93,11 @@ export default {
visiblePopover: false, visiblePopover: false,
popIndex: "", popIndex: "",
id: "", id: "",
activeName: "", activeName: "1",
select: {}, select: {},
form: {}, form: {},
templateItems: [], templateItems: [],
templateTypeId: "",
list: [], list: [],
originalList: [ originalList: [
{ {
@ -220,7 +221,10 @@ export default {
}} }}
on={{ on={{
["click"]: (e) => { ["click"]: (e) => {
save(row).then((res) => { save({
template_item_id:Number(this.activeName),
...row
}).then((res) => {
this.$message({ this.$message({
type: "success", type: "success",
message: "列添加成功", message: "列添加成功",
@ -295,6 +299,10 @@ export default {
}; };
}, },
methods: { methods: {
tabClick(){
this.getDetail()
},
async getTemplateItem() { async getTemplateItem() {
const res = await templateItemIndex({ const res = await templateItemIndex({
page: 1, page: 1,
@ -302,14 +310,15 @@ export default {
template_id: this.id, template_id: this.id,
}); });
this.templateItems = res.data; this.templateItems = res.data;
this.activeName = this.templateItems[0]?.name; this.activeName = String(this.templateItems[0]?.id);
}, },
async getDetail() { async getDetail() {
const res = await show({ const res = await index({
id: this.id, template_id: this.id,
template_item_id:Number(this.activeName)
}); });
this.list = [...this.originalList, ...res.fileds]; this.list = [...this.originalList, ...res.data];
}, },
add() { add() {

@ -238,7 +238,7 @@ export default {
downTemplate(command) { downTemplate(command) {
exports({ exports({
year: this.select.year, year: this.select.year,
template_id: this.select.template_id, template_item_id: command,
}); });
}, },
}, },

@ -77,7 +77,8 @@
</template> </template>
<script> <script>
import { index, destroy, save } from "@/api/unifiedRecruitment/template"; import { index, destroy } from "@/api/unifiedRecruitment/template";
import { save } from "@/api/unifiedRecruitment/templateItem"
import { authMixin } from "@/mixin/authMixin"; import { authMixin } from "@/mixin/authMixin";
import { getConst } from "@/const"; import { getConst } from "@/const";
@ -112,23 +113,46 @@ export default {
}, },
{ {
label: "是否开放查询", label: "是否开放查询",
width: 190, minWidth: 300,
showOverflowTooltip:false,
customFn: (row) => { customFn: (row) => {
return ( return (
<el-switch <div class="template-item">
v-model={row.is_open} {
inactive-text="否" row.items.map(item => {
active-text="是" return (
inactive-value={0} <div style={
active-value={1} {
on={{ 'display':'flex',
["change"]: (e) => { 'justify-content':'center',
save(row).then((res) => { 'align-items':'center',
this.$refs["xyTable"].getTableData(); 'flex-direction':'column'
}); }
}, }>
}} <div>{ item.name }</div>
></el-switch> <el-switch
v-model={item.is_open}
inactive-text="否"
active-text="是"
inactive-value={0}
active-value={1}
on={{
["change"]: (e) => {
save(item).then(res => {
this.$message({
type:'success',
message:'切换成功'
})
this.$refs['xyTable'].getTableData()
})
},
}}
></el-switch>
</div>
)
})
}
</div>
); );
}, },
}, },
@ -152,4 +176,12 @@ export default {
}; };
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss">
.template-item{
display: flex;
&>div + div{
margin-left: 14px;
}
}
</style>

@ -37,20 +37,29 @@
省份 省份
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-select <xy-table
multiple ref="xyTable"
v-model="form.province_ids" style="width: 560px"
clearable :is-page="false"
placeholder="请选择省份" :list="province_lists"
style="width: 300px" :table-item="provinceTable"
> >
<el-option <template v-slot:btns></template>
v-for="item in province_lists" </xy-table>
:key="item.id" <!-- <el-select-->
:label="item.name" <!-- multiple-->
:value="item.id" <!-- v-model="form.province_ids"-->
></el-option> <!-- clearable-->
</el-select> <!-- placeholder="请选择省份"-->
<!-- style="width: 300px"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in province_lists"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- ></el-option>-->
<!-- </el-select>-->
</div> </div>
</div> </div>
</template> </template>
@ -123,7 +132,70 @@ export default {
type: "", type: "",
action: process.env.VUE_APP_UPLOAD_API, action: process.env.VUE_APP_UPLOAD_API,
fileList: [], fileList: [],
provinceTable: [
{
type: "selection",
width: 46,
},
{
prop: "name",
label: "省份",
width: 140,
},
{
label: "选课",
align:'left',
customFn: (row) => {
return (
<div>
{row.subject?.map((item, index) => {
return (
<el-tag key={index} closeable={true}>
{item}
</el-tag>
);
})}
{row.inputVisible ? (
<el-input
class="input-new-tag"
v-model={row.inputValue}
ref="saveTagInput"
size="small"
on={{
["blur"]: (e) => {
if(!row.subject){
row.subject = []
}
let inputValue = row.inputValue;
if (inputValue) {
row.subject?.push(inputValue);
}
row.inputVisible = false;
row.inputValue = "";
},
}}
></el-input>
) : (
<el-button
class="button-new-tag"
size="small"
on={{
["click"]: (e) => {
row.inputVisible = true;
this.$nextTick((_) => {
this.$refs['saveTagInput']?.$refs?.input?.focus()
});
},
}}
>
+ 新增
</el-button>
)}
</div>
);
},
},
],
form: { form: {
year: "", year: "",
province_ids: "", province_ids: "",
@ -137,12 +209,6 @@ export default {
message: "请填写年份", message: "请填写年份",
}, },
], ],
province_ids: [
{
required: true,
message: "请填写录取查询省份说明",
},
],
}, },
}; };
}, },
@ -151,8 +217,8 @@ export default {
successHandle(response, file, fileList) { successHandle(response, file, fileList) {
this.fileList = fileList; this.fileList = fileList;
}, },
removeHande(file,fileList){ removeHande(file, fileList) {
this.fileList = fileList this.fileList = fileList;
}, },
uploadBefore(file) { uploadBefore(file) {
console.log(file); console.log(file);
@ -169,22 +235,28 @@ export default {
let res = await show({ let res = await show({
id: this.id, id: this.id,
}); });
res.year = String(res?.year) res.year = String(res?.year);
res.province_ids = res?.province_ids?.map(item => Number(item)) res.province_ids = res?.province_ids?.map((item) => Number(item));
this.fileList = res.files.map(item => { this.fileList = res.files.map((item) => {
return { return {
name:item.original_name, name: item.original_name,
url:item.url, url: item.url,
response:item response: item,
} };
}) });
this.$integrateData(this.form, res); this.$integrateData(this.form, res);
}, },
submit() { submit() {
this.form.file_ids = this.fileList.map((item) => { if(this.$refs["xyTable"].getSelection().length > 0){
return item?.response?.id; this.form.province_ids = this.$refs["xyTable"].getSelection().map(item => {
}); return {
province_id:item.id,
province_name:item.name,
subjec:item.subject.toString()
}
})
}
if (this.type === "add") { if (this.type === "add") {
if (this.form.hasOwnProperty("id")) { if (this.form.hasOwnProperty("id")) {
@ -277,3 +349,20 @@ export default {
text-align: left; text-align: left;
} }
</style> </style>
<style>
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style>

@ -10,7 +10,7 @@
> >
<div class="label"> <div class="label">
<div class="label_title">省份选择</div> <div class="label_title">省份选择</div>
<el-select size="small" v-model="select.province_id" placeholder="请选择省份"> <el-select size="small" v-model="form.province_id" placeholder="请选择省份">
<el-option v-for="item in provinces" :key="item.id" :value="item.id" :label="item.name"></el-option> <el-option v-for="item in provinces" :key="item.id" :value="item.id" :label="item.name"></el-option>
</el-select> </el-select>
</div> </div>
@ -23,7 +23,6 @@
:headers="{ :headers="{
'Authorization':`Bearer ${getToken()}` 'Authorization':`Bearer ${getToken()}`
}" }"
:data="select"
:action="action" :action="action"
:file-list="fileList" :file-list="fileList"
:on-success="successHandle" :on-success="successHandle"

Loading…
Cancel
Save