From 427ff00a7cc4e7b8b4212723757ad7684621c4d6 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Mon, 20 Feb 2023 17:28:11 +0800 Subject: [PATCH] 2023-2-20 --- src/utils/index.js | 42 +++ src/views/recruitment/component/init.vue | 75 ++--- src/views/recruitment/progress.vue | 13 +- src/views/recruitment/recruit.vue | 15 +- .../yearScore/component/addYearScore.vue | 78 ++++- .../component/addYearScoreDetail.vue | 283 ++++++++++++++++++ src/views/yearScore/component/imports.vue | 174 +++++++---- src/views/yearScore/yearScore.vue | 17 +- 8 files changed, 574 insertions(+), 123 deletions(-) create mode 100644 src/views/yearScore/component/addYearScoreDetail.vue diff --git a/src/utils/index.js b/src/utils/index.js index 4830c04..22cf982 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -115,3 +115,45 @@ export function param2Obj(url) { }) return obj } + +export function deepCopy(data) { + //string,number,bool,null,undefined,symbol + //object,array,date + if (data && typeof data === "object") { + //针对函数的拷贝 + if (typeof data === "function") { + let tempFunc = data.bind(null); + tempFunc.prototype = this.deepCopy(data.prototype); + return tempFunc; + } + + switch (Object.prototype.toString.call(data)) { + case "[object String]": + return data.toString(); + case "[object Number]": + return Number(data.toString()); + case "[object Boolean]": + return new Boolean(data.toString()); + case "[object Date]": + return new Date(data.getTime()); + case "[object Array]": + let arr = []; + for (let i = 0; i < data.length; i++) { + arr[i] = this.deepCopy(data[i]); + } + return arr; + + //js自带对象或用户自定义类实例 + case "[object Object]": + let obj = {}; + for (let key in data) { + //会遍历原型链上的属性方法,可以用hasOwnProperty来控制 (obj.hasOwnProperty(prop) + obj[key] = this.deepCopy(data[key]); + } + return obj; + } + } else { + //string,number,bool,null,undefined,symbol + return data; + } +} diff --git a/src/views/recruitment/component/init.vue b/src/views/recruitment/component/init.vue index 7b25f07..77378e6 100644 --- a/src/views/recruitment/component/init.vue +++ b/src/views/recruitment/component/init.vue @@ -56,7 +56,7 @@ export default { }, data() { return { - provincesList:[], + provincesList: [], table: [ { width: 60, @@ -82,13 +82,13 @@ export default { type="date" v-model={row.start_date} value-format="yyyy-MM-dd" - on={ - { - ['change']:e => { - this.selectChange(this.$refs['xyTable'].getSelection()) - } - } - } + on={{ + ["change"]: (e) => { + this.$refs["xyTable"].getSelection()?.forEach((item) => { + if (!item.start_date) item.start_date = e; + }); + }, + }} > ); }, @@ -106,13 +106,13 @@ export default { type="date" v-model={row.end_date} value-format="yyyy-MM-dd" - on={ - { - ['change']:e => { - this.selectChange(this.$refs['xyTable'].getSelection()) - } - } - } + on={{ + ["change"]: (e) => { + this.$refs["xyTable"].getSelection()?.forEach((item) => { + if (!item.end_date) item.end_date = e; + }); + }, + }} > ); }, @@ -129,28 +129,31 @@ export default { selectChange(selection) { this.form.detail = selection.map((item) => { return { - id: item.id, + province_id: item.id, start_date: item.start_date, end_date: item.end_date, }; }); }, - submit(){ - if(this.form.detail.length <= 0){ + submit() { + this.selectChange(this.$refs["xyTable"].getSelection()); + + if (this.form.detail.length <= 0) { this.$message({ - type:'warning', - message:"请选择需要初始化数据" - }) - return + type: "warning", + message: "请选择需要初始化数据", + }); + return; } - init(this.form).then(res => { + init(this.form).then((res) => { this.$message({ - type:'success', - message:"初始化成功" - }) - this.$emit("update:isShow",false) - }) - } + type: "success", + message: "初始化成功", + }); + this.$emit("update:isShow", false); + this.$emit("refresh"); + }); + }, }, computed: {}, watch: { @@ -160,14 +163,14 @@ export default { } }, provinces(newVal){ - this.provincesList = newVal.map(item => { + this.provincesList = newVal.map((item) => { return { - id:item.id, - name:item.name, - start_date:"", - end_date:"" - } - }) + id: item.id, + name: item.name, + start_date: "", + end_date: "", + }; + }); } }, }; diff --git a/src/views/recruitment/progress.vue b/src/views/recruitment/progress.vue index b8135b1..b20f680 100644 --- a/src/views/recruitment/progress.vue +++ b/src/views/recruitment/progress.vue @@ -63,10 +63,10 @@ - + @@ -99,16 +99,9 @@ export default { sortable: "custom", }, { - prop: "province_id", + prop: "province.name", label: "省份", width: 140, - formatter: (cell, data, val) => { - return ( - this.provinces.filter((item) => { - return val === item.id; - })[0]?.name || val - ); - }, }, { prop: "status_id", diff --git a/src/views/recruitment/recruit.vue b/src/views/recruitment/recruit.vue index 9f05633..dd1e9e0 100644 --- a/src/views/recruitment/recruit.vue +++ b/src/views/recruitment/recruit.vue @@ -21,6 +21,10 @@ v-model="select.year" > + + + + @@ -118,6 +118,8 @@ diff --git a/src/views/yearScore/component/addYearScoreDetail.vue b/src/views/yearScore/component/addYearScoreDetail.vue new file mode 100644 index 0000000..48688cd --- /dev/null +++ b/src/views/yearScore/component/addYearScoreDetail.vue @@ -0,0 +1,283 @@ + + + + + + + + + * + 招生类型 : + + + + + + + + + + + + * + 专业 : + + + + + + + + + + + + * + 最高分 : + + + + + + + + + + * + 最低分 : + + + + + + + + + 选课 : + + + {{ tag }} + + + + + 新增 + + + + + + 备注 : + + + + + + + + + + + + diff --git a/src/views/yearScore/component/imports.vue b/src/views/yearScore/component/imports.vue index 49d2a7b..e49483b 100644 --- a/src/views/yearScore/component/imports.vue +++ b/src/views/yearScore/component/imports.vue @@ -10,52 +10,90 @@ > 省份选择 - - + + - - 下载导入模板 + + 下载导入模板 + 新增 - 选取文件 - 开始上传 - 支持文件格式:EXCEL,扩展名为 XLSX、XLS + :auto-upload="false" + > + 选取文件 + 开始上传 + + 支持文件格式:EXCEL,扩展名为 XLSX、XLS + - - + - 取消 + 取消 确认 + + diff --git a/src/views/yearScore/yearScore.vue b/src/views/yearScore/yearScore.vue index 2a4bb29..1a26cbb 100644 --- a/src/views/yearScore/yearScore.vue +++ b/src/views/yearScore/yearScore.vue @@ -124,17 +124,11 @@ export default { plain={true} on={{ ["click"]: (e) => { - this.showImport(row, Number(val)); + this.showImport(row, Number(val.province_id)); }, }} > - {(() => { - return ( - this.provinces.filter((item) => { - return item.id == val; - })[0]?.name ?? val - ); - })()} + { val.province_name } ); })} @@ -160,8 +154,8 @@ export default { this.provinces = res.data; }, showImport(row, province_id = "") { - this.$refs["imports"].select.year = String(row.year); - this.$refs["imports"].select.province_id = province_id; + this.$refs["imports"].form.year = String(row.year); + this.$refs["imports"].form.province_id = province_id; this.isShowImport = true; }, }, @@ -172,4 +166,5 @@ export default { }; - +