flat: 暂存

This commit is contained in:
Apcallover
2024-04-25 17:01:14 +08:00
parent 90258f3179
commit c3cd8d69b0
5 changed files with 329 additions and 225 deletions

View File

@@ -10,11 +10,11 @@
v-model="loginForm.username"
:auto-complete="off"
placeholder="请输入您的账号">
<i slot="prefix" class="icon-yonghu" />
<i slot="prefix" class="icon-yonghu"/>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input size="small" style="margin-top: 20px; margin-bottom:10px;"
<el-input size="small" style="margin-top: 20px; margin-bottom:10px;"
type="password"
@keyup.enter.native="handleLogin"
v-model="loginForm.password"
@@ -23,26 +23,27 @@
<i slot="prefix" class="icon-mima"/>
</el-input>
</el-form-item>
<el-form-item v-if="this.website.captchaMode" prop="code">
<el-input size="small" style="margin-top: 20px; margin-bottom:10px;"
@keyup.enter.native="handleLogin"
v-model="loginForm.code"
auto-complete="off"
placeholder="请输入图形验证码"
class="code-input">
<i slot="prefix" class="icon-yanzhengma"/>
</el-input>
<div class="login-code" >
<img :src="loginForm.image" class="login-code-img" @click="refreshCode" />
</div>
</el-form-item>
<!-- <el-form-item v-if="this.website.captchaMode" prop="code">-->
<!-- <el-input size="small" style="margin-top: 20px; margin-bottom:10px;"-->
<!-- @keyup.enter.native="handleLogin"-->
<!-- v-model="loginForm.code"-->
<!-- auto-complete="off"-->
<!-- placeholder="请输入图形验证码"-->
<!-- class="code-input">-->
<!-- <i slot="prefix" class="icon-yanzhengma"/>-->
<!-- </el-input>-->
<!-- <div class="login-code" >-->
<!-- <img :src="loginForm.image" class="login-code-img" @click="refreshCode" />-->
<!-- </div>-->
<!-- </el-form-item>-->
<div>
<el-button
size="small"
type="primary"
@click.native.prevent="handleLogin"
class="login-submit"
>{{$t('login.submit')}}</el-button>
>{{ $t('login.submit') }}
</el-button>
</div>
</el-form>
</div>
@@ -50,14 +51,18 @@
</template>
<script>
import { mapGetters } from "vuex";
import {mapGetters} from "vuex";
import topLang from "@/page/index/top/top-lang";
// import { info } from "@/api/system/tenant";
import { getCaptcha } from "@/api/user";
import {getCaptcha} from "@/api/user";
if (/(\/login\?)(.*)/ig.test(location.href)) {
const obj = {}
const query = location.href.split('?')[1].replace(/\?/, '').split('&')
query.forEach((item) => { const a = item.split('='); obj[a[0]] = a[1]})
query.forEach((item) => {
const a = item.split('=');
obj[a[0]] = a[1]
})
window.sessionStorage.setItem('query_session', JSON.stringify(obj))
} else {
window.sessionStorage.removeItem('query_session')
@@ -68,7 +73,7 @@ export default {
components: {
topLang,
},
data () {
data() {
return {
loginForm: {
//租户ID
@@ -86,15 +91,15 @@ export default {
//预加载白色背景
image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
//工作站loginTpye值为2
loginType:'Type-T'
loginType: 'Type-T'
},
loginRules: {
username: [
{ required: true, message: "请输入用户名", trigger: "blur" }
{required: true, message: "请输入用户名", trigger: "blur"}
],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{ min: 1, message: "密码长度最少为6位", trigger: "blur" }
{required: true, message: "请输入密码", trigger: "blur"},
{min: 1, message: "密码长度最少为6位", trigger: "blur"}
]
},
passwordType: "password",
@@ -103,15 +108,13 @@ export default {
ticket: ''
};
},
watch: {
},
created () {
watch: {},
created() {
// this.getTenant();
const { ticket } = JSON.parse(window.sessionStorage.getItem('query_session') || "{}")
const {ticket} = JSON.parse(window.sessionStorage.getItem('query_session') || "{}")
window.sessionStorage.removeItem('query_session')
console.log(ticket)
if(ticket) {
if (ticket) {
this.proLoading = true
this.ticket = ticket
this.handleLogin()
@@ -120,30 +123,30 @@ export default {
this.refreshCode();
}
},
mounted () {
mounted() {
},
computed: {
...mapGetters(["website", "tagWel"])
},
props: [],
methods: {
handelGoReg(){
this.$router.push({ path: "/reg" });
handelGoReg() {
this.$router.push({path: "/reg"});
},
refreshCode () {
refreshCode() {
getCaptcha().then(res => {
const data = res.data;
this.loginForm.key = data.key;
this.loginForm.image = data.image;
})
},
showPassword () {
showPassword() {
this.passwordType === ""
? (this.passwordType = "password")
: (this.passwordType = "");
},
handleLogin () {
if(this.proLoading) {
handleLogin() {
if (this.proLoading) {
let params = {
...this.loginForm,
username: "admin",
@@ -166,16 +169,16 @@ export default {
spinner: "el-icon-loading"
});
let obj = this.loginForm
if(params) {
if (params) {
obj = params
}
this.$store.dispatch("LoginByUsername", obj).then(() => {
this.$store.dispatch('jlHelpShow', false)
this.$router.push({ path: this.tagWel.value });
this.$router.push({path: this.tagWel.value});
loading.close();
this.proLoading = false
}).catch(() => {
if(obj.ticket) {
if (obj.ticket) {
return window.location.href = process.env.VUE_APP_LOGIN_ERROR
}
this.proLoading = false
@@ -201,7 +204,8 @@ export default {
<style lang="scss">
@import "@/styles/login.scss";
.proLoading-box{
.proLoading-box {
position: fixed;
left: 0;
top: 0;

View File

@@ -0,0 +1,38 @@
<template>
<div>
<basic-container>
12312
</basic-container>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
></avue-crud>
</basic-container>
</div>
</template>
<script>
export default {
name: 'supplyDemand',
data() {
return {
loading: false,
data: [],
form: {},
}
},
computed: {
option() {
return {}
}
}
}
</script>
<style>
</style>

View File

@@ -1,17 +1,20 @@
<template>
<div>
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="obj" @row-del="rowDel"
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
@on-load="onLoad">
<!--自定义按钮-->
<template slot="menuLeft">
<save-button type="warning" plain icon="el-icon-plus" size="small" @click="rowCopy('', 'add')"
v-show="vaildData(permission.tenant_mission_add, false)">发布任务</save-button>
v-show="vaildData(permission.tenant_mission_add, false)">发布任务
</save-button>
<el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"
v-show="vaildData(permission.tenant_mission_add, false)">批量导入</el-button>
v-show="vaildData(permission.tenant_mission_add, false)">批量导入
</el-button>
</template>
<template slot="wage"slot-scope="{ row }">
<div>{{row.wage}}{{wageUnitCategoryStateEnum[row.wageUnitCategory]}}</div>
<template slot="wage" slot-scope="{ row }">
<div>{{ row.wage }}{{ wageUnitCategoryStateEnum[row.wageUnitCategory] }}</div>
</template>
<!--/自定义按钮-->
<!--自定义列-->
@@ -55,12 +58,16 @@
<!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> -->
<el-button type="text" size="mini" @click="employ(row, 1)">录用登记</el-button>
<el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)"
v-show="vaildData(permission.tenant_mission_view, false)">查看</el-button>
v-show="vaildData(permission.tenant_mission_view, false)">查看
</el-button>
<!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> -->
<el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_edit, false)">编辑</el-button>
<el-button v-if="row.reviewState !== 8" icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row)"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_cancel, false)">取消</el-button>
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_edit, false)">编辑
</el-button>
<el-button v-if="row.reviewState !== 8" icon="el-icon-delete" :size="size" :type="type"
@click="$refs.crud.rowDel(row)"
:disabled="row.signUpCount !== 0" v-show="vaildData(permission.tenant_mission_cancel, false)">取消
</el-button>
</div>
</avue-crud>
<!--发布 复制 编辑dialog-->
@@ -81,8 +88,9 @@
<!--/查看dialog-->
<!--批量导入-->
<el-dialog title="导入" append-to-body :visible.sync="excelBox" :close-on-click-modal="false" width="555px">
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" :upload-before="beforeAvatarUpload"
:upload-error="uploadError">
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"
:upload-before="beforeAvatarUpload"
:upload-error="uploadError">
<template slot="excelTemplate">
<el-button type="primary" @click="handleTemplate()" :loading="templateLoading">
点击下载
@@ -96,8 +104,8 @@
</template>
<script>
import { upload } from "@/api/tenant/mission";
import { getList, cancel, detail } from "@/api/tenant/mission";
import {upload} from "@/api/tenant/mission";
import {getList, cancel, detail} from "@/api/tenant/mission";
import CopyMission from "../Dialog/CopyMission";
import Employ from "../Dialog/Employ";
import employmentNum from "../Dialog/EmployNumber";
@@ -106,13 +114,14 @@ import Contrast from "../Dialog/Contrast"
import SkillSelect from "../Dialog/Skill";
import missionView from "./missionView.vue";
import SelectMap from "@/components/map/selectLocation";
import { isExcel } from "@/util/validate";
import { excelAccept } from "@/common/accept";
import { mapGetters } from "vuex";
import { dateFormat } from "@/util/date";
import { getTemplate } from "@/api/resource/template";
import {isExcel} from "@/util/validate";
import {excelAccept} from "@/common/accept";
import {mapGetters} from "vuex";
import {dateFormat} from "@/util/date";
import {getTemplate} from "@/api/resource/template";
import saveButton from "./saveButton";
import {dataSourcesEnum, educationState, missionState, recruitStatus, wageUnitCategoryState} from "@/common/dic";
const wageUnitCategoryStateEnum = {}
wageUnitCategoryState.map((item) => {
wageUnitCategoryStateEnum[item.value] = item.label
@@ -143,7 +152,7 @@ export default {
return {
wageUnitCategoryStateEnum,
excelBox: false,
excelForm: { isCovered: 1 },
excelForm: {isCovered: 1},
excelOption: {
submitBtn: false,
emptyBtn: false,
@@ -190,7 +199,8 @@ export default {
missionNo: '',
};
},
created() { },
created() {
},
watch: {},
computed: {
...mapGetters(["permission"]),
@@ -228,7 +238,7 @@ export default {
width: 120,
},
{
label: "任务名称",
label: "岗位名称",
prop: "missionTitle",
display: false,
fixed: true,
@@ -260,14 +270,14 @@ export default {
prop: "ageDesc",
search: false,
display: false,
},{
}, {
label: "学历要求",
prop: "education",
type: "select",
dicData: educationState,
search: false,
display: false,
},{
}, {
label: "经验要求",
prop: "experienceDesc",
search: false,
@@ -406,8 +416,8 @@ export default {
const h = this.$createElement;
this.$confirm(
h("div", null, [
h("p", { style: "font-size: 16px" }, "您确定要取消此任务吗? "),
h("p", { style: "color: red" }, "一旦取消则任务失效"),
h("p", {style: "font-size: 16px"}, "您确定要取消此任务吗? "),
h("p", {style: "color: red"}, "一旦取消则任务失效"),
]),
{
type: "warning",
@@ -499,13 +509,13 @@ export default {
const arr = [];
const data = res.data.data;
data.error &&
data.error.errorList.forEach((item) => {
arr.push(`${item.name} ${item.remarks}`);
});
data.error.errorList.forEach((item) => {
arr.push(`${item.name} ${item.remarks}`);
});
data.auth &&
data.auth.authList.forEach((item) => {
arr.push(`${item.name} ${item.remarks}`);
});
data.auth.authList.forEach((item) => {
arr.push(`${item.name} ${item.remarks}`);
});
this.$refs.ied.show(arr);
}
this.refreshChange();

View File

@@ -3,10 +3,64 @@
<!--搜索栏-->
<el-form size="small" label-position="right" :inline="true" style="padding-left: 10px;padding-right: 10px;">
<el-row :span="24">
<el-form-item label="任务名称:">
<el-input v-model="search.missionTitle" placeholder="任务名称" clearable></el-input>
<!-- <el-form-item label="任务名称:">-->
<!-- <el-input v-model="search.missionTitle" placeholder="任务名称" clearable></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="机构名称:">
<el-input
v-model="search.companyName"
placeholder="机构名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="任务编码:">
<el-input
v-model="search.missionNo"
placeholder="任务编码"
clearable
></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input
v-model="search.address"
placeholder="北京-北京市-崇文区"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工岗位名称:">
<el-input
v-model="search.missionTitle"
placeholder="零工岗位名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="零工工种:">
<el-input
v-model="search.worktypeNames"
placeholder="零工工种"
clearable
></el-input>
</el-form-item>
<el-form-item label="审核状态:">
<el-select v-model="search.reviewState">
<el-option
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历:">
<el-select v-model="search.education">
<el-option
v-for="(item, index) in educationState"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="任务状态:">
<el-select v-model="search.status" placeholder="任务状态" style="width:100%">
<el-option
@@ -57,164 +111,162 @@
</template>
<script>
import WaitingMission from './Table/WaitingMission'
import OngoingMission from './Table/OngoingMission'
import FinishedMission from './Table/FinishedMission'
import ExpiredMission from './Table/ExpiredMission'
import { companyMissionState } from '@/common/dic'
import WaitingMission from './Table/WaitingMission'
import OngoingMission from './Table/OngoingMission'
import FinishedMission from './Table/FinishedMission'
import ExpiredMission from './Table/ExpiredMission'
import {companyMissionState, educationState, recruitStatus} from '@/common/dic'
export default {
comments: {
},
name: "tenant_mission",
data() {
return {
missionTypes: companyMissionState,
timeValue: "",
endDateRange: "",//报名截止日期筛选
beginTimeValue:"",//开始时间筛选
successTimeValue:"",//完成时间筛选
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
search: {
status: 1
},
timeScreenTerm:[{
value: 2,
label: '任务开始日期',
},
{
value: 3,
label: '任务结束日期',
}, {
value: 1,
label: '报名截止日期',
}],
export default {
comments: {},
name: "tenant_mission",
data() {
return {
recruitStatus,
educationState,
missionTypes: companyMissionState,
timeValue: "",
endDateRange: "",//报名截止日期筛选
beginTimeValue: "",//开始时间筛选
successTimeValue: "",//完成时间筛选
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
search: {
status: 1
},
timeScreenTerm: [{
value: 2,
label: '任务开始日期',
},
{
value: 3,
label: '任务结束日期',
}, {
value: 1,
label: '报名截止日期',
}],
}
},
components: {
WaitingMission,
OngoingMission,
FinishedMission,
ExpiredMission
},
computed: {},
watch: {},
methods: {
handleSearch() {
if (this.search.status === 1) {
this.$refs.waiting.onLoad(this.page, this.search);
} else if (this.search.status === 2) {
this.$refs.onging.onLoad(this.page, this.search);
} else if (this.search.status === 3) {
this.$refs.finished.onLoad(this.page, this.search);
} else if (this.search.status === 4) {
this.$refs.expired.onLoad(this.page, this.search);
}
},
components: {
WaitingMission,
OngoingMission,
FinishedMission,
ExpiredMission
date() {
this.dateChange(this.timeValue)
},
computed: {
},
watch: {
},
methods: {
handleSearch() {
if (this.search.status === 1) {
this.$refs.waiting.onLoad(this.page, this.search);
} else if (this.search.status === 2) {
this.$refs.onging.onLoad(this.page, this.search);
} else if (this.search.status === 3) {
this.$refs.finished.onLoad(this.page, this.search);
} else if (this.search.status === 4) {
this.$refs.expired.onLoad(this.page, this.search);
}
},
date () {
this.dateChange(this.timeValue)
},
dateChange(val) {
// if (val) {
// this.search.stime = val[0] + " 00:00:00";
// this.search.etime = val[1] + " 23:59:59";
// } else {
// this.search.stime = '';
// this.search.etime = '';
// }
switch (this.search.state) {
case 1:
return this.endDateChange(val)
case 2:
return this.beginDateChange(val);
case 3:
return this.successDateChange(val);
}
dateChange(val) {
// if (val) {
// this.search.stime = val[0] + " 00:00:00";
// this.search.etime = val[1] + " 23:59:59";
// } else {
// this.search.stime = '';
// this.search.etime = '';
// }
switch (this.search.state) {
case 1:
return this.endDateChange(val)
case 2:
return this.beginDateChange(val);
case 3:
return this.successDateChange(val);
}
},
handleClear() {
let curStatus = this.search.status;
this.search = {
status: curStatus,
missionNo: '',
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime : '',
stimeEndTime : '',
etimeBeninTime:'',
etimeEndTime:'',
},
handleClear() {
let curStatus = this.search.status;
this.search = {
status: curStatus,
missionNo: '',
missionTitle: '',
stime: '',
etime: '',
etimePubBeginTime: '',
etimePubEndTime: '',
stimeBeginTime: '',
stimeEndTime: '',
etimeBeninTime: '',
etimeEndTime: '',
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue="";
this.successTimeValue="";
this.handleSearch()
},
// 开始时间
beginDateChange(val) {
if (val) {
this.clearDateTime()
this.search.stimeBeginTime = val[0] + " 00:00:00";
this.search.stimeEndTime = val[1] + " 23:59:59";
} else {
this.search.stimeBeginTime = '';
this.search.stimeEndTime = '';
}
},
// 完成时间
successDateChange(val){
if (val) {
this.clearDateTime()
this.search.etimeBeninTime = val[0] + " 00:00:00";
this.search.etimeEndTime = val[1] + " 23:59:59";
} else {
this.search.etimeBeninTime = '';
this.search.etimeEndTime = '';
}
},
// 报名截止时间
endDateChange(val){
if (val) {
this.clearDateTime()
this.search.etimePubBeginTime = val[0] + " 00:00:00";
this.search.etimePubEndTime = val[1] + " 23:59:59";
} else {
this.search.etimePubBeginTime = '';
this.search.etimePubEndTime = '';
}
},
// 清楚多余时间参数
clearDateTime(){
this.search.etimePubBeginTime = '';
this.search.etimePubEndTime = '';
this.search.etimeBeninTime = '';
this.search.etimeEndTime = '';
}
this.timeValue = '';
this.endDateRange = '';
this.beginTimeValue = "";
this.successTimeValue = "";
this.handleSearch()
},
// 开始时间
beginDateChange(val) {
if (val) {
this.clearDateTime()
this.search.stimeBeginTime = val[0] + " 00:00:00";
this.search.stimeEndTime = val[1] + " 23:59:59";
} else {
this.search.stimeBeginTime = '';
this.search.stimeEndTime = '';
}
},
// 完成时间
successDateChange(val) {
if (val) {
this.clearDateTime()
this.search.etimeBeninTime = val[0] + " 00:00:00";
this.search.etimeEndTime = val[1] + " 23:59:59";
} else {
this.search.etimeBeninTime = '';
this.search.etimeEndTime = '';
}
},
// 报名截止时间
endDateChange(val) {
if (val) {
this.clearDateTime()
this.search.etimePubBeginTime = val[0] + " 00:00:00";
this.search.etimePubEndTime = val[1] + " 23:59:59";
} else {
this.search.etimePubBeginTime = '';
this.search.etimePubEndTime = '';
}
},
// 清楚多余时间参数
clearDateTime() {
this.search.etimePubBeginTime = '';
this.search.etimePubEndTime = '';
this.search.etimeBeninTime = '';
this.search.etimeEndTime = '';
this.search.stimeBeginTime = '';
this.search.stimeEndTime = '';
}
};
}
};
</script>
<style scoped>
.el-form-item {
margin-bottom: 18px !important;
margin-right: 10px !important;
padding: 0 10px;
}
.el-form-item {
margin-bottom: 18px !important;
margin-right: 10px !important;
padding: 0 10px;
}
.searchBtn {
display: inline-block;
margin-bottom: 18px;
}
.searchBtn {
display: inline-block;
margin-bottom: 18px;
}
</style>