|
|
<template>
|
|
|
<div>
|
|
|
<xy-dialog
|
|
|
ref="dialog"
|
|
|
:is-show.sync="isShow"
|
|
|
type="form"
|
|
|
:title="type === 'add' ? '新增统招进度' : '编辑统招进度'"
|
|
|
:form="form"
|
|
|
:rules="rules"
|
|
|
@submit="submit"
|
|
|
>
|
|
|
<template v-slot:year>
|
|
|
<div class="xy-table-item">
|
|
|
<div class="xy-table-item-label">
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
>*</span
|
|
|
>
|
|
|
年份 :
|
|
|
</div>
|
|
|
<div class="xy-table-item-content">
|
|
|
<el-date-picker
|
|
|
v-model="form.year"
|
|
|
type="year"
|
|
|
placeholder="请选择年份"
|
|
|
style="width: 300px"
|
|
|
value-format="yyyy"
|
|
|
></el-date-picker>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:province_id>
|
|
|
<div class="xy-table-item">
|
|
|
<div class="xy-table-item-label">
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
>*</span
|
|
|
>
|
|
|
省份 :
|
|
|
</div>
|
|
|
<div class="xy-table-item-content">
|
|
|
<el-select
|
|
|
v-model="form.province_id"
|
|
|
clearable
|
|
|
placeholder="请选择省份 "
|
|
|
style="width: 300px"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in province_ids"
|
|
|
:key="item.id"
|
|
|
:label="item.name"
|
|
|
:value="item.id"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:status_id>
|
|
|
<div class="xy-table-item">
|
|
|
<div class="xy-table-item-label">
|
|
|
<span style="color: red; font-weight: 600; padding-right: 4px"
|
|
|
>*</span
|
|
|
>
|
|
|
进度 :
|
|
|
</div>
|
|
|
<div class="xy-table-item-content">
|
|
|
<el-select
|
|
|
v-model="form.status_id"
|
|
|
clearable
|
|
|
placeholder="请选择进度 "
|
|
|
style="width: 300px"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in getConst('progressStatus', 'array')"
|
|
|
:key="item.id"
|
|
|
:label="item.value"
|
|
|
:value="item.id"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:start_date>
|
|
|
<div class="xy-table-item">
|
|
|
<div class="xy-table-item-label">开始时间 :</div>
|
|
|
<div class="xy-table-item-content">
|
|
|
<el-date-picker
|
|
|
v-model="form.start_date"
|
|
|
placeholder="请选择开始时间"
|
|
|
style="width: 300px"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
></el-date-picker>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:end_date>
|
|
|
<div class="xy-table-item">
|
|
|
<div class="xy-table-item-label">结束时间 :</div>
|
|
|
<div class="xy-table-item-content">
|
|
|
<el-date-picker
|
|
|
v-model="form.end_date"
|
|
|
placeholder="请选择结束时间"
|
|
|
style="width: 300px"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
></el-date-picker>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template v-slot:remark>
|
|
|
<div class="xy-table-item">
|
|
|
<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="请输入备注 "
|
|
|
style="width: 300px"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</xy-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { show, save } from "@/api/unifiedRecruitment/progress";
|
|
|
import { getConst } from "@/const";
|
|
|
export default {
|
|
|
props: {
|
|
|
province_ids: {
|
|
|
type: Array,
|
|
|
default: () => [],
|
|
|
},
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
isShow: false,
|
|
|
id: "",
|
|
|
type: "",
|
|
|
|
|
|
form: {
|
|
|
year: "",
|
|
|
province_id: "",
|
|
|
status_id: "",
|
|
|
start_date: "",
|
|
|
end_date: "",
|
|
|
remark: "",
|
|
|
},
|
|
|
rules: {
|
|
|
year: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请填写年份",
|
|
|
},
|
|
|
],
|
|
|
province_id: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请填写省份",
|
|
|
},
|
|
|
],
|
|
|
status_id: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请填写进度",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
getConst,
|
|
|
|
|
|
async getDetail() {
|
|
|
const res = await show({
|
|
|
id: this.id,
|
|
|
});
|
|
|
this.$integrateData(this.form, res);
|
|
|
},
|
|
|
|
|
|
submit() {
|
|
|
if (this.type === "add") {
|
|
|
if (this.form.hasOwnProperty("id")) {
|
|
|
delete this.form.id;
|
|
|
}
|
|
|
}
|
|
|
if (this.type === "editor") {
|
|
|
Object.defineProperty(this.form, "id", {
|
|
|
value: this.id,
|
|
|
enumerable: true,
|
|
|
configurable: true,
|
|
|
writable: true,
|
|
|
});
|
|
|
}
|
|
|
save(this.form).then((res) => {
|
|
|
this.$successMessage(this.type, "");
|
|
|
this.isShow = false;
|
|
|
this.$emit("refresh");
|
|
|
});
|
|
|
},
|
|
|
},
|
|
|
watch: {
|
|
|
isShow(val) {
|
|
|
if (val) {
|
|
|
if (this.type === "editor") {
|
|
|
this.getDetail();
|
|
|
}
|
|
|
} else {
|
|
|
this.id = "";
|
|
|
this.type = "";
|
|
|
this.$refs["dialog"].reset();
|
|
|
delete this.form.id;
|
|
|
}
|
|
|
},
|
|
|
"form.year"(val) {
|
|
|
this.form.year = "" + val;
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
::v-deep .el-input__inner {
|
|
|
text-align: left;
|
|
|
}
|
|
|
</style>
|