From 6a9cacae3afa01b0d39e07934184abd550d2265c Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Thu, 16 Feb 2023 17:42:15 +0800 Subject: [PATCH] 2023-2-16 --- src/api/unifiedRecruitment/recruit.js | 7 +- src/api/unifiedRecruitment/templateItem.js | 38 ++ src/components/XyTable/index.vue | 110 +++--- src/const/index.js | 10 + src/store/modules/permission.js | 17 +- src/views/manage/province.vue | 2 +- src/views/manage/specialize.vue | 2 +- .../component/addProgress.vue | 0 .../component/addRecruit.vue | 69 ++-- .../component/addTemplate.vue | 5 +- .../recruitment/component/addTemplateItem.vue | 127 +++++++ .../component/importRecruitInfo.vue | 224 +++++++++++ .../component/init.vue | 24 +- .../component/setting.vue | 114 ++++-- .../progress.vue | 0 .../recruit.vue | 69 +++- .../template.vue | 15 +- .../component/importRecruitInfo.vue | 99 ----- .../yearScore/component/addYearScore.vue | 353 ++++++++++-------- src/views/yearScore/component/imports.vue | 46 ++- src/views/yearScore/yearScore.vue | 2 +- 21 files changed, 932 insertions(+), 401 deletions(-) create mode 100644 src/api/unifiedRecruitment/templateItem.js rename src/views/{unifiedRecruitment => recruitment}/component/addProgress.vue (100%) rename src/views/{unifiedRecruitment => recruitment}/component/addRecruit.vue (83%) rename src/views/{unifiedRecruitment => recruitment}/component/addTemplate.vue (97%) create mode 100644 src/views/recruitment/component/addTemplateItem.vue create mode 100644 src/views/recruitment/component/importRecruitInfo.vue rename src/views/{unifiedRecruitment => recruitment}/component/init.vue (85%) rename src/views/{unifiedRecruitment => recruitment}/component/setting.vue (72%) rename src/views/{unifiedRecruitment => recruitment}/progress.vue (100%) rename src/views/{unifiedRecruitment => recruitment}/recruit.vue (75%) rename src/views/{unifiedRecruitment => recruitment}/template.vue (91%) delete mode 100644 src/views/unifiedRecruitment/component/importRecruitInfo.vue diff --git a/src/api/unifiedRecruitment/recruit.js b/src/api/unifiedRecruitment/recruit.js index 53ed26b..898742f 100644 --- a/src/api/unifiedRecruitment/recruit.js +++ b/src/api/unifiedRecruitment/recruit.js @@ -44,8 +44,11 @@ export function imports(data,isLoading = true){ return request({ url:"/api/admin/recruit/import", method:"post", - data, - isLoading + data:qs.stringify(data), + isLoading, + headers:{ + 'Content-Type':'application/x-www-form-urlencoded' + } }) } diff --git a/src/api/unifiedRecruitment/templateItem.js b/src/api/unifiedRecruitment/templateItem.js new file mode 100644 index 0000000..a2a14c6 --- /dev/null +++ b/src/api/unifiedRecruitment/templateItem.js @@ -0,0 +1,38 @@ +import request from "@/utils/request"; + +export function index(params,isLoading = true){ + return request({ + url:"/api/admin/template_item/index", + method:"get", + isLoading, + params + }) +} + +export function show(params,isLoading = true){ + return request({ + url:"/api/admin/template_item/show", + method:"get", + isLoading, + params + }) +} + +export function save(data,isLoading = true){ + return request({ + url:"/api/admin/template_item/save", + method:"post", + data, + isLoading + }) +} + +export function destroy(params,isLoading = true){ + return request({ + url:"/api/admin/template_item/destroy", + method:"get", + params, + isLoading + }) +} + diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue index b2da2e6..4414df0 100644 --- a/src/components/XyTable/index.vue +++ b/src/components/XyTable/index.vue @@ -207,58 +207,60 @@ export default { if (isRefresh) { this.selectOpt.page = 1; } - switch (typeof this.action) { - case "string": - this.loading = true; - axios({ - baseURL: process.env.VUE_APP_BASE_API, - url: this.action, - headers: { - Authorization: "Bearer " + getToken(), - }, - params: - this.reqOpt.method && this.reqOpt.method === "get" - ? this.selectOpt - : "", - data: - this.reqOpt.method && this.reqOpt.method === "post" - ? this.selectOpt - : "", - ...this.reqOpt, - }) - .then((res) => { - this.listData = this.getByStrkey(res.data, this.resProp); - this.totalData = res.data.total; - setTimeout(() => { - this.loading = false; - }, 300); + setTimeout(() => { + switch (typeof this.action) { + case "string": + this.loading = true; + axios({ + baseURL: process.env.VUE_APP_BASE_API, + url: this.action, + headers: { + Authorization: "Bearer " + getToken(), + }, + params: + this.reqOpt.method && this.reqOpt.method === "get" + ? this.selectOpt + : "", + data: + this.reqOpt.method && this.reqOpt.method === "post" + ? this.selectOpt + : "", + ...this.reqOpt, }) - .catch((err) => { - console.error(err); - this.loading = false; - }); - break; - case "function": - this.loading = true; - this.action({ - ...this.selectOpt, - ...this.reqOpt, - },false) - .then((res) => { - this.listData = this.getByStrkey(res, this.resProp); - this.totalData = res.total; - setTimeout(() => { + .then((res) => { + this.listData = this.getByStrkey(res.data, this.resProp); + this.totalData = res.data.total; + setTimeout(() => { + this.loading = false; + }, 300); + }) + .catch((err) => { + console.error(err); this.loading = false; - }, 300); - }) - .catch((err) => { - console.error(err); - this.loading = false; - }); - break; - default: - return; - } + }); + break; + case "function": + this.loading = true; + this.action({ + ...this.selectOpt, + ...this.reqOpt, + },false) + .then((res) => { + this.listData = this.getByStrkey(res, this.resProp); + this.totalData = res.total; + setTimeout(() => { + this.loading = false; + }, 300); + }) + .catch((err) => { + console.error(err); + this.loading = false; + }); + break; + default: + return; + } + }) }, getByStrkey(obj, str) { if (!str) return obj; @@ -362,6 +364,9 @@ export default { sort() { this.$refs.table.sort(); }, + getSelection(){ + return this.$refs.table?.store?.states?.selection ?? [] + }, //table通讯事件 delete(row, type) { @@ -431,7 +436,8 @@ export default { type: "success", message: "删除成功", }); - this.getTableData(); + if(this.action)this.getTableData(); + this.$emit('destroyed') }); } }, @@ -801,7 +807,7 @@ export default { {$scopedSlots.btns ? $scopedSlots.btns() : this.isCreateAuthBtns()} ) : ( - + )} { // path为#,左边栏根目录无视图,##下级根目录无视图,$不显示在左边栏视图,^左边栏根目录有视图 export function generaMenu(routes, data) { data.forEach(item => { - let params; + let params = {}; if(item.path?.includes('?')){ let flag = item.path.split('?') item.path = flag[0] - params = flag[1] + if(flag[1]){ + let list = flag[1].split('&') + list.forEach(item => { + let kv = item.split('=') + Object.defineProperty(params,kv[0],{ + value:kv[1], + writable:true, + enumerable:true, + configurable:false + }) + }) + } } if (item.url === "/") { @@ -141,7 +152,7 @@ export function generaMenu(routes, data) { id: item.id, roles: ['admin'], auths:item.has_auth_node_tags, - + params, icon: item.icon } } diff --git a/src/views/manage/province.vue b/src/views/manage/province.vue index 33df4af..9e78c51 100644 --- a/src/views/manage/province.vue +++ b/src/views/manage/province.vue @@ -34,7 +34,7 @@ diff --git a/src/views/manage/specialize.vue b/src/views/manage/specialize.vue index 39a2f11..a2ff5f5 100644 --- a/src/views/manage/specialize.vue +++ b/src/views/manage/specialize.vue @@ -39,7 +39,7 @@ diff --git a/src/views/unifiedRecruitment/component/addProgress.vue b/src/views/recruitment/component/addProgress.vue similarity index 100% rename from src/views/unifiedRecruitment/component/addProgress.vue rename to src/views/recruitment/component/addProgress.vue diff --git a/src/views/unifiedRecruitment/component/addRecruit.vue b/src/views/recruitment/component/addRecruit.vue similarity index 83% rename from src/views/unifiedRecruitment/component/addRecruit.vue rename to src/views/recruitment/component/addRecruit.vue index 20049dd..e75c2d8 100644 --- a/src/views/unifiedRecruitment/component/addRecruit.vue +++ b/src/views/recruitment/component/addRecruit.vue @@ -9,37 +9,49 @@ export default { title={this.type === "add" ? "新增统招生" : "编辑统招生"} width="54" value={this.isShow} - loading={true} on={{ ["on-visible-change"]: (e) => this.$emit("update:isShow", e), - ["on-ok"]: (e) => { - this.$refs['oriElForm'].validate().then(res => { - if (res){ - let fileds = [] - for(let key in this.form){ - let temp = {} - temp[key] = this.form[key] - fileds.push(temp) - } - this.$refs['elForm'].validate().then(res => { - Object.defineProperty(this.originalForm,'fileds',{ - enumerable:true, - writable:true, - configurable:false, - value:fileds - }) + }} + scopedSlots={{ + footer: () => { + return ( +
+ + +
+ ); }, }} > @@ -212,6 +224,7 @@ export default { idcard: "", candidate_no: "", allow_no: "", + template_id: "", }, originalRules: { year: [{ required: true, message: "请选择年份", trigger: "blur" }], diff --git a/src/views/unifiedRecruitment/component/addTemplate.vue b/src/views/recruitment/component/addTemplate.vue similarity index 97% rename from src/views/unifiedRecruitment/component/addTemplate.vue rename to src/views/recruitment/component/addTemplate.vue index 2006ef6..9df4ec1 100644 --- a/src/views/unifiedRecruitment/component/addTemplate.vue +++ b/src/views/recruitment/component/addTemplate.vue @@ -60,7 +60,8 @@ export default { form: { year: "", remark: "", - is_open:0 + is_open:0, + type:this.$route.meta.params.type }, rules: { year: [ @@ -75,7 +76,7 @@ export default { methods: { async getDetail() { const res = await show({ - id: this.id, + id: this.id },true); this.$integrateData(this.form, res); }, diff --git a/src/views/recruitment/component/addTemplateItem.vue b/src/views/recruitment/component/addTemplateItem.vue new file mode 100644 index 0000000..e4cd813 --- /dev/null +++ b/src/views/recruitment/component/addTemplateItem.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/recruitment/component/importRecruitInfo.vue b/src/views/recruitment/component/importRecruitInfo.vue new file mode 100644 index 0000000..271a60b --- /dev/null +++ b/src/views/recruitment/component/importRecruitInfo.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/src/views/unifiedRecruitment/component/init.vue b/src/views/recruitment/component/init.vue similarity index 85% rename from src/views/unifiedRecruitment/component/init.vue rename to src/views/recruitment/component/init.vue index a35a043..7b25f07 100644 --- a/src/views/unifiedRecruitment/component/init.vue +++ b/src/views/recruitment/component/init.vue @@ -4,8 +4,6 @@ title="初始化" width="60" :value.sync="isShow" - :loading="true" - @on-ok="submit" @on-visible-change="(e) => $emit('update:isShow', e)" >
@@ -33,6 +31,11 @@
+ + @@ -79,6 +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()) + } + } + } > ); }, @@ -96,6 +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()) + } + } + } > ); }, @@ -110,7 +127,6 @@ export default { }, methods: { selectChange(selection) { - console.log(selection) this.form.detail = selection.map((item) => { return { id: item.id, @@ -120,8 +136,6 @@ export default { }); }, submit(){ - console.log(this.form) - return if(this.form.detail.length <= 0){ this.$message({ type:'warning', diff --git a/src/views/unifiedRecruitment/component/setting.vue b/src/views/recruitment/component/setting.vue similarity index 72% rename from src/views/unifiedRecruitment/component/setting.vue rename to src/views/recruitment/component/setting.vue index a489d57..85833f9 100644 --- a/src/views/unifiedRecruitment/component/setting.vue +++ b/src/views/recruitment/component/setting.vue @@ -7,13 +7,48 @@ @on-ok="submit" @on-visible-change="(e) => $emit('update:isShow', e)" > -
- - +
+ + + - 添加 + 添加
添加 @@ -27,14 +62,25 @@ + +
diff --git a/src/views/unifiedRecruitment/template.vue b/src/views/recruitment/template.vue similarity index 91% rename from src/views/unifiedRecruitment/template.vue rename to src/views/recruitment/template.vue index dec9608..c1b7def 100644 --- a/src/views/unifiedRecruitment/template.vue +++ b/src/views/recruitment/template.vue @@ -4,7 +4,7 @@
@@ -79,6 +79,7 @@ diff --git a/src/views/unifiedRecruitment/component/importRecruitInfo.vue b/src/views/unifiedRecruitment/component/importRecruitInfo.vue deleted file mode 100644 index 6a895a3..0000000 --- a/src/views/unifiedRecruitment/component/importRecruitInfo.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/src/views/yearScore/component/addYearScore.vue b/src/views/yearScore/component/addYearScore.vue index b6f97ad..fada82a 100644 --- a/src/views/yearScore/component/addYearScore.vue +++ b/src/views/yearScore/component/addYearScore.vue @@ -1,48 +1,80 @@