master
xy 3 years ago
parent 6a9cacae3a
commit 8333165f02

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

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

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

@ -77,7 +77,8 @@
</template>
<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 { getConst } from "@/const";
@ -112,23 +113,46 @@ export default {
},
{
label: "是否开放查询",
width: 190,
minWidth: 300,
showOverflowTooltip:false,
customFn: (row) => {
return (
<el-switch
v-model={row.is_open}
inactive-text="否"
active-text="是"
inactive-value={0}
active-value={1}
on={{
["change"]: (e) => {
save(row).then((res) => {
this.$refs["xyTable"].getTableData();
});
},
}}
></el-switch>
<div class="template-item">
{
row.items.map(item => {
return (
<div style={
{
'display':'flex',
'justify-content':'center',
'align-items':'center',
'flex-direction':'column'
}
}>
<div>{ item.name }</div>
<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>
<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 class="xy-table-item-content">
<el-select
multiple
v-model="form.province_ids"
clearable
placeholder="请选择省份"
style="width: 300px"
<xy-table
ref="xyTable"
style="width: 560px"
:is-page="false"
:list="province_lists"
:table-item="provinceTable"
>
<el-option
v-for="item in province_lists"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
<template v-slot:btns></template>
</xy-table>
<!-- <el-select-->
<!-- multiple-->
<!-- v-model="form.province_ids"-->
<!-- clearable-->
<!-- 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>
</template>
@ -123,7 +132,70 @@ export default {
type: "",
action: process.env.VUE_APP_UPLOAD_API,
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: {
year: "",
province_ids: "",
@ -137,12 +209,6 @@ export default {
message: "请填写年份",
},
],
province_ids: [
{
required: true,
message: "请填写录取查询省份说明",
},
],
},
};
},
@ -151,8 +217,8 @@ export default {
successHandle(response, file, fileList) {
this.fileList = fileList;
},
removeHande(file,fileList){
this.fileList = fileList
removeHande(file, fileList) {
this.fileList = fileList;
},
uploadBefore(file) {
console.log(file);
@ -169,22 +235,28 @@ export default {
let res = await show({
id: this.id,
});
res.year = String(res?.year)
res.province_ids = res?.province_ids?.map(item => Number(item))
this.fileList = res.files.map(item => {
res.year = String(res?.year);
res.province_ids = res?.province_ids?.map((item) => Number(item));
this.fileList = res.files.map((item) => {
return {
name:item.original_name,
url:item.url,
response:item
}
})
name: item.original_name,
url: item.url,
response: item,
};
});
this.$integrateData(this.form, res);
},
submit() {
this.form.file_ids = this.fileList.map((item) => {
return item?.response?.id;
});
if(this.$refs["xyTable"].getSelection().length > 0){
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.form.hasOwnProperty("id")) {
@ -277,3 +349,20 @@ export default {
text-align: left;
}
</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_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-select>
</div>
@ -23,7 +23,6 @@
:headers="{
'Authorization':`Bearer ${getToken()}`
}"
:data="select"
:action="action"
:file-list="fileList"
:on-success="successHandle"

Loading…
Cancel
Save