Commit 16973291 authored by 郝聪敏's avatar 郝聪敏

添加prettier

parent 680dfdeb
...@@ -9,13 +9,16 @@ module.exports = { ...@@ -9,13 +9,16 @@ module.exports = {
extends: [ extends: [
'plugin:vue/essential', 'plugin:vue/essential',
'standard', 'standard',
'prettier',
], ],
plugins: [ plugins: [
'vue', 'vue',
'prettier',
], ],
rules: { rules: {
'prettier/prettier': 'error',
// 防止iview的标签报错 // 防止iview的标签报错
"vue/no-parsing-error": [2, { "x-invalid-end-tag": false }], 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }],
}, },
} }
...@@ -4166,6 +4166,23 @@ ...@@ -4166,6 +4166,23 @@
"eslint-restricted-globals": "^0.1.1" "eslint-restricted-globals": "^0.1.1"
} }
}, },
"eslint-config-prettier": {
"version": "6.7.0",
"resolved": "http://npmprivate.quantgroups.com/eslint-config-prettier/-/eslint-config-prettier-6.7.0.tgz",
"integrity": "sha512-FamQVKM3jjUVwhG4hEMnbtsq7xOIDm+SY5iBPfR8gKsJoAB2IQnNF+bk1+8Fy44Nq7PPJaLvkRxILYdJWoguKQ==",
"dev": true,
"requires": {
"get-stdin": "^6.0.0"
},
"dependencies": {
"get-stdin": {
"version": "6.0.0",
"resolved": "http://npmprivate.quantgroups.com/get-stdin/-/get-stdin-6.0.0.tgz",
"integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
"dev": true
}
}
},
"eslint-config-standard": { "eslint-config-standard": {
"version": "14.1.0", "version": "14.1.0",
"resolved": "http://npmprivate.quantgroups.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", "resolved": "http://npmprivate.quantgroups.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz",
...@@ -4390,6 +4407,15 @@ ...@@ -4390,6 +4407,15 @@
} }
} }
}, },
"eslint-plugin-prettier": {
"version": "3.1.2",
"resolved": "http://npmprivate.quantgroups.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
"integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-promise": { "eslint-plugin-promise": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "http://npmprivate.quantgroups.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", "resolved": "http://npmprivate.quantgroups.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
...@@ -4847,6 +4873,12 @@ ...@@ -4847,6 +4873,12 @@
"resolved": "http://npmprivate.quantgroups.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "resolved": "http://npmprivate.quantgroups.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
}, },
"fast-diff": {
"version": "1.2.0",
"resolved": "http://npmprivate.quantgroups.com/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
"dev": true
},
"fast-json-stable-stringify": { "fast-json-stable-stringify": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "http://npmprivate.quantgroups.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "resolved": "http://npmprivate.quantgroups.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
...@@ -10641,6 +10673,15 @@ ...@@ -10641,6 +10673,15 @@
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
"dev": true "dev": true
}, },
"prettier-linter-helpers": {
"version": "1.0.0",
"resolved": "http://npmprivate.quantgroups.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
"requires": {
"fast-diff": "^1.1.2"
}
},
"pretty-error": { "pretty-error": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "http://npmprivate.quantgroups.com/pretty-error/-/pretty-error-2.1.1.tgz", "resolved": "http://npmprivate.quantgroups.com/pretty-error/-/pretty-error-2.1.1.tgz",
......
<template> <template>
<div id="app" :class="appClass"> <div id="app" :class="appClass">
<router-view/> <router-view />
</div> </div>
</template> </template>
<script> <script>
window.onload = function () { window.onload = function() {
document.addEventListener('touchstart', function (event) { document.addEventListener("touchstart", function(event) {
if (event.touches.length > 1) { if (event.touches.length > 1) {
event.preventDefault() event.preventDefault();
} }
}) });
document.addEventListener('gesturestart', function (event) { document.addEventListener("gesturestart", function(event) {
event.preventDefault() event.preventDefault();
}) });
} };
export default { export default {
name: 'App', name: "App",
data () { data() {
return { return {
appClass: 'pc' appClass: "pc"
} };
}, },
created: function () { created: function() {
if (document.documentElement.clientWidth <= 640) { if (document.documentElement.clientWidth <= 640) {
this.appClass = 'mobile' this.appClass = "mobile";
} }
} }
} };
</script> </script>
<style> <style>
#app{ #app {
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
cursor:auto; cursor: auto;
text-align: left; text-align: left;
font-family: 'PingFangSC-Regular', 'Avenir', Helvetica, Arial, sans-serif; font-family: "PingFangSC-Regular", "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #2c3e50; color: #2c3e50;
...@@ -47,7 +47,6 @@ export default { ...@@ -47,7 +47,6 @@ export default {
-moz-user-select: text !important; /*火狐*/ -moz-user-select: text !important; /*火狐*/
-ms-user-select: text !important; /*IE10*/ -ms-user-select: text !important; /*IE10*/
user-select: text !important; user-select: text !important;
} }
.pc { .pc {
height: 100%; height: 100%;
...@@ -58,27 +57,24 @@ export default { ...@@ -58,27 +57,24 @@ export default {
min-width: unset; min-width: unset;
min-height: unset; min-height: unset;
} }
::-webkit-scrollbar ::-webkit-scrollbar {
{ width: 8px;
width: 8px; height: 8px;
height: 8px; background-color: #f5f5f5;
background-color: #F5F5F5;
} }
/*定义滚动条轨道 内阴影+圆角*/ /*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track ::-webkit-scrollbar-track {
{ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px;
border-radius: 10px; background-color: #eff4f6;
background-color: #Eff4f6;
} }
/*定义滑块 内阴影+圆角*/ /*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb ::-webkit-scrollbar-thumb {
{ border-radius: 10px;
border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #bdbdbd;
background-color: #BDBDBD;
} }
/* .ivu-btn-primary{ /* .ivu-btn-primary{
background: #0092FF!important background: #0092FF!important
......
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 获取个人信息 // 获取个人信息
export function getpersonMassage (params) { export function getpersonMassage(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/login/me`, params, { return axios.get(`${sapi}/api/login/me`, params, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 用户退出 // 用户退出
export function loginOUT () { export function loginOUT() {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/login/logout`, { return axios.get(`${sapi}/api/login/logout`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 通过某一来源查询简历信息 // 通过某一来源查询简历信息
export function adoptOneSeeResumeList (parmars) { export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, { return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 通过渠道机简历信息 // 通过渠道机简历信息
export function getChannelMassage () { export function getChannelMassage() {
return axios.get(`${sapi}/api/resume/getSourceList`, { return axios.get(`${sapi}/api/resume/getSourceList`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 判断是否为超级管理员 // 判断是否为超级管理员
export function judeAdmin () { export function judeAdmin() {
return axios.get(`${sapi}/api/user/isAdmin`, { return axios.get(`${sapi}/api/user/isAdmin`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 更改约面信息 // 更改约面信息
export function changeinterviewMassage (parmars) { export function changeinterviewMassage(parmars) {
return axios.post(`${sapi}/api/resumeInterview/update`, parmars, { return axios.post(`${sapi}/api/resumeInterview/update`, parmars, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 重启面试 // 重启面试
export function oppenInterview (tid, tstatus) { export function oppenInterview(tid, tstatus) {
console.log(tid, tstatus) console.log(tid, tstatus);
return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`, { return axios.post(`${sapi}/api/resumeFlow/reset/${tid}/${tstatus}`, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 终止面试 // 终止面试
export function SInterview (tid) { export function SInterview(tid) {
return axios.post(`${sapi}/api/resumeFlow/end/${tid}`, { return axios.post(`${sapi}/api/resumeFlow/end/${tid}`, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 面试管理查询 // 面试管理查询
export function SerchList (parmars, status) { export function SerchList(parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`, parmars, { return axios.post(`${sapi}/api/interview/findListByQueryVO`, parmars, {
headers: { headers: {
'Content-Type': 'application/json;', "Content-Type": "application/json;",
'X-Requested-With': 'XMLHttpRequest', "X-Requested-With": "XMLHttpRequest",
status status
} }
}) });
} }
// 查看简历详情页 // 查看简历详情页
export function seedetail (parmars) { export function seedetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 面试官查询 // 面试官查询
export function Serchinterviewor () { export function Serchinterviewor() {
return axios.get(`${sapi}/api/interview/findInterviewerList`) return axios.get(`${sapi}/api/interview/findInterviewerList`);
} }
// 邀约人查询 // 邀约人查询
export function SerchInvitationOwer () { export function SerchInvitationOwer() {
return axios.post(`${sapi}/api/interview/findInviterList`, { return axios.post(`${sapi}/api/interview/findInviterList`, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 新增约面信息 // 新增约面信息
export function NewAddInterview (parmars) { export function NewAddInterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, { return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 查询记录 // 查询记录
export function recodeLIST (parmars) { export function recodeLIST(parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 变更状态 // 变更状态
export function changestatus (tid, tstatus) { export function changestatus(tid, tstatus) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`, { return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${tid}/${tstatus}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 获取终止面试前的前一个状态 // 获取终止面试前的前一个状态
export function formstatus (parmars) { export function formstatus(parmars) {
return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/getPreReset/${parmars.resumeId}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 登录 // 登录
export function login (params) { export function login(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/login/doLogin`, params, { return axios.post(`${sapi}/api/login/doLogin`, params, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 修改密码 // 修改密码
export function updatePsd (params) { export function updatePsd(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/login/modifyPassword`, params, { return axios.post(`${sapi}/api/login/modifyPassword`, params, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 查询简历列表 // 查询简历列表
export function serchList (parmars) { export function serchList(parmars) {
return axios.post(`${sapi}/api/resume/findList`, parmars, { return axios.post(`${sapi}/api/resume/findList`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 下载简历(单条) // 下载简历(单条)
export function downloadone (parmars) { export function downloadone(parmars) {
parmars = qs.stringify(parmars) parmars = qs.stringify(parmars);
return axios.post(`${sapi}/api/resumeFile/download/formatted/one`, parmars, { return axios.post(`${sapi}/api/resumeFile/download/formatted/one`, parmars, {
headers: { headers: {
'Content-Type': 'application/x-www-form-urlencoded' "Content-Type": "application/x-www-form-urlencoded"
} }
}) });
} }
// 搜索 // 搜索
export function sousuoList (parmars, status) { export function sousuoList(parmars, status) {
return axios.post(`${sapi}/api/resume/findListByQueryVO`, parmars, { return axios.post(`${sapi}/api/resume/findListByQueryVO`, parmars, {
headers: { headers: {
'Content-Type': 'application/json', "Content-Type": "application/json",
status status
} }
}) });
} }
// 查看简历详情页 // 查看简历详情页
export function seedetail (parmars) { export function seedetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 简历pass // 简历pass
export function PASS (parmars) { export function PASS(parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', { return axios.post(
headers: { `${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,
'Content-Type': 'application/json' "",
{
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
// 待处理 // 待处理
export function TODORes (parmars) { export function TODORes(parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', { return axios.post(
headers: { `${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,
'Content-Type': 'application/json' "",
{
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
// 备选 // 备选
export function OPTION (parmars) { export function OPTION(parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, '', { return axios.post(
headers: { `${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,
'Content-Type': 'application/json' "",
{
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
// 删除简历 // 删除简历
export function deleteREsume (deleteallArr) { export function deleteREsume(deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), { return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 单条下载简历 // 单条下载简历
export function downloadOne (parmars) { export function downloadOne(parmars) {
return axios.get(`${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`, { return axios.get(
headers: { `${sapi}/api/resume/download/formatted/one?resumeId=${parmars.resumeId}`,
// 'Content-Type':'application/x-www-form-urlencoded' {
headers: {
// 'Content-Type':'application/x-www-form-urlencoded'
}
} }
}) );
} }
// 批量下载简历 // 批量下载简历
export function downloadALL () { export function downloadALL() {
return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`, { return axios.get(`${sapi}/api/resumeFile/download/formatted/compress`, {
headers: { headers: {
'Content-Type': 'application/x-www-form-urlencoded' "Content-Type": "application/x-www-form-urlencoded"
} }
}) });
} }
// 导出列表 // 导出列表
export function exportLIST (parmars) { export function exportLIST(parmars) {
return axios.get(`${sapi}/api/excel/output?optSource=${parmars.optSource}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`, return axios.get(
`${sapi}/api/excel/output?optSource=${parmars.optSource}&keywordString=${parmars.keywordString}&company=${parmars.company}&ownerSex=${parmars.ownerSex}&highestDegreeNum=${parmars.highestDegreeNum}&flowStatusList=${parmars.flowStatusList}&ownerWorkYears1=${parmars.ownerWorkYears1}&ownerWorkYears2=${parmars.ownerWorkYears2}`,
{ {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) }
);
} }
// 操作记录 // 操作记录
export function recodeLIST (parmars) { export function recodeLIST(parmars) {
return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, { return axios.post(`${sapi}/api/resumeFlow/history/${parmars.resumeId}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 通过某一来源查询简历信息 // 通过某一来源查询简历信息
export function adoptOneSeeResumeList (parmars) { export function adoptOneSeeResumeList(parmars) {
return axios.post(`${sapi}/api/resume/findListBySource`, parmars, { return axios.post(`${sapi}/api/resume/findListBySource`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 新增约面信息 // 新增约面信息
export function addinterview (parmars) { export function addinterview(parmars) {
return axios.post(`${sapi}/api/resumeInterview/add`, parmars, { return axios.post(`${sapi}/api/resumeInterview/add`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 修改流程状态 // 修改流程状态
export function updatastatus (parmars) { export function updatastatus(parmars) {
return axios.post(`${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`, { return axios.post(
headers: { `${sapi}/api/resumeFlow/uploadStatus/${parmars.id}/${parmars.status}`,
'Content-Type': 'application/json' {
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
// 获取邮件模板 // 获取邮件模板
export function getEmailMoo () { export function getEmailMoo() {
return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`, { return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 根据获取id邮件模板内容 // 根据获取id邮件模板内容
export function getEmailContent (parmars) { export function getEmailContent(parmars) {
return axios.post(`${sapi}/api/emailTemplate/loadTemplate`, parmars, { return axios.post(`${sapi}/api/emailTemplate/loadTemplate`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 上传图片 // 上传图片
export function uploadimage () { export function uploadimage() {
return axios.get(`${sapi}/api/ckeditor/uploadImage`, { return axios.get(`${sapi}/api/ckeditor/uploadImage`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 发送邮件 // 发送邮件
export function sendEmail (parmars) { export function sendEmail(parmars) {
return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`, parmars, { return axios.post(`${sapi}/api/sendMail/sendEmailTemplate`, parmars, {
headers: { headers: {
'Content-Type': 'multipart/form-data' "Content-Type": "multipart/form-data"
// 'Content-Disposition':'multipart/form-data' // 'Content-Disposition':'multipart/form-data'
// 'Content-Type':'application/json' // 'Content-Type':'application/json'
} }
}) });
} }
export function findCompanyEmailByKey (key) { // 公司通讯录 export function findCompanyEmailByKey(key) {
return axios.get(`${sapi}/api/companyEmail/findCompanyEmailByKey?key=${key}`) // 公司通讯录
return axios.get(`${sapi}/api/companyEmail/findCompanyEmailByKey?key=${key}`);
} }
// 转发邮箱通知 // 转发邮箱通知
export function forwardResume (params) { export function forwardResume(params) {
return axios.post(`${sapi}/api/resume/forwardResume`, params, { return axios.post(`${sapi}/api/resume/forwardResume`, params, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
export function getPdf (parmars) { export function getPdf(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`, {
responseType: 'arraybuffer', responseType: "arraybuffer",
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 是否展示原件的PDF // 是否展示原件的PDF
export function isShowPDF (parmars) { export function isShowPDF(parmars) {
return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/isShowOriPdf/${parmars.uid}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
export function getpdfUrl (parmars) { export function getpdfUrl(parmars) {
return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, { return axios.get(`${sapi}/api/resume/getResumePdfUrl/${parmars.uid}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 获取职位列表 // 获取职位列表
export function getlist (parmars) { export function getlist(parmars) {
return axios.get(`${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`, { return axios.get(
headers: { `${sapi}/api/resume/findPositionList?optSourceCode=${parmars.optSourceCode}`,
'Content-Type': 'application/json' {
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 账号列表查询 // 账号列表查询
export function queryaccountList (params) { export function queryaccountList(params) {
return axios.post(`${sapi}/api/user/findList`, params, { return axios.post(`${sapi}/api/user/findList`, params, {
headers: { headers: {
'Content-Type': 'application/json;' "Content-Type": "application/json;"
} }
}) });
} }
// 添加账户 // 添加账户
export function addAccount (params) { export function addAccount(params) {
return axios.post(`${sapi}/api/user/add`, params, { return axios.post(`${sapi}/api/user/add`, params, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 删除单条账户 // 删除单条账户
export function Delateaccount (parmars) { export function Delateaccount(parmars) {
return axios.get(`${sapi}/api/user/delete/${parmars.id}`, { return axios.get(`${sapi}/api/user/delete/${parmars.id}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 批量删除 // 批量删除
export function delateAllAccount (DelateARR) { export function delateAllAccount(DelateARR) {
return axios.post(`${sapi}//api/user/delete`, JSON.stringify(DelateARR), { return axios.post(`${sapi}//api/user/delete`, JSON.stringify(DelateARR), {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 恢复初始密码 // 恢复初始密码
export function recoveryPassword (parmars) { export function recoveryPassword(parmars) {
return axios.post(`${sapi}/api/user/initial/${parmars.id}`, { return axios.post(`${sapi}/api/user/initial/${parmars.id}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 查询邮箱列表 // 查询邮箱列表
export function queryemailList (parmars) { export function queryemailList(parmars) {
return axios.post(`${sapi}/api/email/list`, parmars, { return axios.post(`${sapi}/api/email/list`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 同步邮箱 // 同步邮箱
export function Synchronization (parmars) { export function Synchronization(parmars) {
return axios.post(`${sapi}/api/email/bindAndSync`, parmars, { return axios.post(`${sapi}/api/email/bindAndSync`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 解绑邮箱 // 解绑邮箱
export function jiebangEmail (id) { export function jiebangEmail(id) {
return axios.post(`${sapi}/api/email/unbind/${id}`, { return axios.post(`${sapi}/api/email/unbind/${id}`, {
headers: { headers: {
'Content-Type': 'application/x-www-form-urlencoded' "Content-Type": "application/x-www-form-urlencoded"
} }
}) });
} }
// 修改邮箱并重新绑定 // 修改邮箱并重新绑定
export function updateemailTWO (parmars) { export function updateemailTWO(parmars) {
return axios.post(`${sapi}/api/email/modify`, parmars, { return axios.post(`${sapi}/api/email/modify`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 批量解绑邮箱 // 批量解绑邮箱
export function UntyingAll (UntyingAllARR) { export function UntyingAll(UntyingAllARR) {
return axios.post(`${sapi}/api/email/unbind/batch`, JSON.stringify(UntyingAllARR), { return axios.post(
headers: { `${sapi}/api/email/unbind/batch`,
'Content-Type': 'application/json' JSON.stringify(UntyingAllARR),
{
headers: {
"Content-Type": "application/json"
}
} }
}) );
} }
// 获取二维码 // 获取二维码
export function getErcode () { export function getErcode() {
return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`, { return axios.get(`${sapi}/api/qrCode/getInterviewQrcode`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// //修改账户 // //修改账户
export function updateAccount (parmars) { export function updateAccount(parmars) {
return axios.post(`${sapi}/api/user/modify/${parmars.id}`, parmars, { return axios.post(`${sapi}/api/user/modify/${parmars.id}`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 提交应聘登记表 // 提交应聘登记表
export function submitMassage (params) { export function submitMassage(params) {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.post(`${sapi}/api/interview/arrive`, params, { return axios.post(`${sapi}/api/interview/arrive`, params, {
headers: { 'Content-Type': 'application/json' } headers: { "Content-Type": "application/json" }
}) });
} }
import axios from '../service/http.service' import axios from "../service/http.service";
import { import { sapi } from "../config";
sapi import qs from "qs";
} from '../config'
import qs from 'qs'
// 获取上传批次号 // 获取上传批次号
export function getuploadNumber () { export function getuploadNumber() {
// params=qs.stringify(params) // params=qs.stringify(params)
return axios.get(`${sapi}/api/resume/upload/batchNum`, { return axios.get(`${sapi}/api/resume/upload/batchNum`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 上传文件 // 上传文件
export function uploadfile (parmars) { export function uploadfile(parmars) {
return axios.post(`${sapi}/api/resume/upload`, parmars, { return axios.post(`${sapi}/api/resume/upload`, parmars, {
headers: { headers: {
// 'Content-Type':'multipart/form-data', // 'Content-Type':'multipart/form-data',
processData: false, processData: false,
contentType: false, contentType: false,
async: false async: false
} }
}) });
} }
// 查询上传列表记录 // 查询上传列表记录
export function serchList (parmars) { export function serchList(parmars) {
return axios.post(`${sapi}/api/resume/upload/history`, parmars, { return axios.post(`${sapi}/api/resume/upload/history`, parmars, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 查询简历详情 // 查询简历详情
export function serchRESUMEdetail (parmars) { export function serchRESUMEdetail(parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.uid}`, { return axios.get(`${sapi}/api/html/get/${parmars.uid}`, {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
// 查询简历详情 // 查询简历详情
export function deleteREsumeUPLOad (deleteallArr) { export function deleteREsumeUPLOad(deleteallArr) {
return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), { return axios.post(`${sapi}/api/resume/delete`, JSON.stringify(deleteallArr), {
headers: { headers: {
'Content-Type': 'application/json' "Content-Type": "application/json"
} }
}) });
} }
<template> <template>
<div> <div>
<textarea id="editor" rows="10" cols="80"></textarea> <textarea id="editor" rows="10" cols="80"></textarea>
</div> </div>
</template> </template>
<script type="text/ecmascript-6"> <script type="text/ecmascript-6">
import CKEDITOR from 'CKEDITOR' import CKEDITOR from 'CKEDITOR'
...@@ -71,6 +71,4 @@ export default { ...@@ -71,6 +71,4 @@ export default {
} }
</script> </script>
<style lang="less" rel="stylesheet/less" scoped> <style lang="less" rel="stylesheet/less" scoped></style>
</style>
<template> <template>
<div> <div>
<!-- bidirectional data binding(双向数据绑定) --> <!-- bidirectional data binding(双向数据绑定) -->
<Modal v-model='modal' :fullscreen='fullscreen'> <Modal v-model="modal" :fullscreen="fullscreen">
<Input v-model='value'></Input> <Input v-model="value"></Input>
<editor @getValue='getInfo' :uploadUrl='uploadUrl' :value='value' height='400px'></editor> <editor
<div slot='footer'> @getValue="getInfo"
<Button @click='getInfo'>获取内容</Button> :uploadUrl="uploadUrl"
:value="value"
</div> height="400px"
</Modal> ></editor>
<Form ref="formInline" :model="formInline" :rules="ruleInline" inline> <div slot="footer">
<FormItem prop="user"> <Button @click="getInfo">获取内容</Button>
<Input type="text" v-model="formInline.user" placeholder="Username"> </div>
<Icon type="ios-person-outline" slot="prepend"></Icon> </Modal>
</Input> <Form ref="formInline" :model="formInline" :rules="ruleInline" inline>
</FormItem> <FormItem prop="user">
<FormItem prop="password"> <Input type="text" v-model="formInline.user" placeholder="Username">
<Input type="password" v-model="formInline.password" placeholder="Password"> <Icon type="ios-person-outline" slot="prepend"></Icon>
<Icon type="ios-lock-outline" slot="prepend"></Icon> </Input>
</Input> </FormItem>
</FormItem> <FormItem prop="password">
<FormItem> <Input
<Button type="primary" @click="handleSubmit('formInline')">Signin</Button> type="password"
</FormItem> v-model="formInline.password"
placeholder="Password"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input>
</FormItem>
<FormItem>
<Button type="primary" @click="handleSubmit('formInline')"
>Signin</Button
>
</FormItem>
</Form> </Form>
</div> </div>
</template> </template>
<script> <script>
import editor from './ckeditor.vue' import editor from "./ckeditor.vue";
import { sapi } from '../config/index.js' import { sapi } from "../config/index.js";
import localStorage from '../service/localstorage.service.js' import localStorage from "../service/localstorage.service.js";
export default { export default {
data () { data() {
return { return {
modal: true, modal: true,
fullscreen: true, fullscreen: true,
content: '<h2>I am Example</h2>', content: "<h2>I am Example</h2>",
content1: '<h2>I am Example</h2>', content1: "<h2>I am Example</h2>",
uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get('token')}&&backUrl=/getimage`, uploadUrl: `${sapi}/api/ckeditor/uploadImage?token=${localStorage.get(
value: '22', "token"
)}&&backUrl=/getimage`,
value: "22",
editorOption: { editorOption: {
// some quill options // some quill options
}, },
formInline: { formInline: {
user: '', user: "",
password: '' password: ""
}, },
ruleInline: { ruleInline: {
user: [ user: [
{ {
required: false, required: false,
message: 'Please fill in the user name', message: "Please fill in the user name",
trigger: 'blur', trigger: "blur",
pattern: /^1[3456789]\d{9}$/, pattern: /^1[3456789]\d{9}$/,
validator: function (rule, value, call) { validator: function(rule, value, call) {
console.log(rule, value) console.log(rule, value);
return call(new Error()) return call(new Error());
} }
} }
], ],
password: [ password: [
{ required: true, message: 'Please fill in the password.', trigger: 'blur' }, {
{ type: 'string', min: 6, message: 'The password length cannot be less than 6 bits', trigger: 'blur' } required: true,
message: "Please fill in the password.",
trigger: "blur"
},
{
type: "string",
min: 6,
message: "The password length cannot be less than 6 bits",
trigger: "blur"
}
] ]
} }
} };
}, },
watch: {}, watch: {},
components: { components: {
...@@ -74,10 +95,10 @@ export default { ...@@ -74,10 +95,10 @@ export default {
// manually control the data synchronization // manually control the data synchronization
// 如果需要手动控制数据同步,父组件需要显式地处理changed事件 // 如果需要手动控制数据同步,父组件需要显式地处理changed事件
methods: { methods: {
getInfo (value) { getInfo(value) {
console.log(value) console.log(value);
}, },
handleSubmit (name) { handleSubmit(name) {
// this.$refs[name].validate((valid) => { // this.$refs[name].validate((valid) => {
// if (valid) { // if (valid) {
// this.$Message.success('Success!'); // this.$Message.success('Success!');
...@@ -85,15 +106,12 @@ export default { ...@@ -85,15 +106,12 @@ export default {
// this.$Message.error('Fail!'); // this.$Message.error('Fail!');
// } // }
// }) // })
this.$refs[name].validateField('user', (error) => { this.$refs[name].validateField("user", error => {
console.log('------', error) console.log("------", error);
}) });
} }
},
computed: {
}, },
mounted () { computed: {},
} mounted() {}
} };
</script> </script>
<template> <template>
<div></div> <div></div>
</template> </template>
<script> <script>
function GetQueryString(name) {
function GetQueryString (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i') var r = window.location.search.substr(1).match(reg); // 获取url中"?"符后的字符串并正则匹配
var r = window.location.search.substr(1).match(reg) // 获取url中"?"符后的字符串并正则匹配 var context = "";
var context = '' if (r != null) {
if (r != null) { context = r[2] } context = r[2];
reg = null }
r = null reg = null;
return context == null || context == '' || context == 'undefined' ? '' : decodeURIComponent(context) r = null;
return context == null || context == "" || context == "undefined"
? ""
: decodeURIComponent(context);
} }
export default { export default {
data () { data() {
return {} return {};
}, },
mounted () { mounted() {
console.log(777) console.log(777);
window.parent.CKEDITOR.tools.callFunction(GetQueryString('CKEditorFuncNum'), GetQueryString('ImageUrl'), GetQueryString('Message')) window.parent.CKEDITOR.tools.callFunction(
} GetQueryString("CKEditorFuncNum"),
} GetQueryString("ImageUrl"),
GetQueryString("Message")
);
}
};
</script> </script>
This diff is collapsed.
<template> <template>
<div class='loadingmark'> <div class="loadingmark">
<div class="loading-audio"> <div class="loading-audio">
<svg :width="width+'px'" :height="height+'px'" xmlns="http://www.w3.org/2000/svg" :viewBox="viewBox" preserveAspectRatio="xMidYMid"> <svg
:width="width + 'px'"
:height="height + 'px'"
xmlns="http://www.w3.org/2000/svg"
:viewBox="viewBox"
preserveAspectRatio="xMidYMid"
>
<g transform="translate(20 50)"> <g transform="translate(20 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.99275 0.99275)" class='circle'/> <circle
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.99275 0.99275)"
class="circle"
/>
</g> </g>
<g transform="translate(40 50)"> <g transform="translate(40 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.773605 0.773605)" class='circle1'/> <circle
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.773605 0.773605)"
class="circle1"
/>
</g> </g>
<g transform="translate(60 50)"> <g transform="translate(60 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.42525 0.42525)" class='circle2'/> <circle
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.42525 0.42525)"
class="circle2"
/>
</g> </g>
<g transform="translate(80 50)"> <g transform="translate(80 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.113418 0.113418)" class='circle3'/> <circle
cx="0"
cy="0"
r="7"
fill="#11a181"
transform="scale(0.113418 0.113418)"
class="circle3"
/>
</g> </g>
</svg> </svg>
</div> </div>
...@@ -21,7 +55,7 @@ ...@@ -21,7 +55,7 @@
</template> </template>
<script> <script>
export default { export default {
name: 'loading', name: "loading",
props: { props: {
width: { width: {
type: Number, type: Number,
...@@ -32,70 +66,94 @@ export default { ...@@ -32,70 +66,94 @@ export default {
default: 80 default: 80
} }
}, },
created () { created() {
this.viewBox = '0 0' + ' ' + (this.width + 10) + ' ' + this.height this.viewBox = "0 0" + " " + (this.width + 10) + " " + this.height;
}, },
data () { data() {
return { return {
viewBox: '' viewBox: ""
} };
} }
} };
</script> </script>
<style lang='less' scoped> <style lang="less" scoped>
.loadingmark{ .loadingmark {
position:absolute; position: absolute;
top:0px; top: 0px;
left:0px; left: 0px;
width:100%; width: 100%;
height:100%; height: 100%;
background-color: rgba(255,255,255,0.6); background-color: rgba(255, 255, 255, 0.6);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
z-index: 1600; z-index: 1600;
}
.loading-audio {
width: 100px;
background-repeat: no-repeat;
background-size: cover;
// background-image: url('data:image/svg+xml,<svg width="135" height="140" viewBox="0 0 135 140" xmlns="http://www.w3.org/2000/svg" fill="#2d8cf0"><rect y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="30" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="60" width="15" height="140" rx="6"><animate attributeName="height" begin="0s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="90" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="120" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect></svg>');
}
.circle {
animation: ani-demo-spin 1s linear infinite;
animation-delay: -0.375s;
}
@keyframes ani-demo-spin {
from {
transform: scale(0);
}
50% {
transform: scale(1);
}
to {
transform: scale(0);
} }
.loading-audio { }
width: 100px; .circle1 {
background-repeat: no-repeat; animation: ani-demo-spin1 1s linear infinite;
background-size: cover; animation-delay: -0.25s;
// background-image: url('data:image/svg+xml,<svg width="135" height="140" viewBox="0 0 135 140" xmlns="http://www.w3.org/2000/svg" fill="#2d8cf0"><rect y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="30" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="60" width="15" height="140" rx="6"><animate attributeName="height" begin="0s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="90" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="120" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect></svg>'); }
@keyframes ani-demo-spin1 {
from {
transform: scale(0);
} }
.circle{ 50% {
animation: ani-demo-spin 1s linear infinite; transform: scale(1);
animation-delay:-0.375s;
} }
@keyframes ani-demo-spin { to {
from { transform: scale(0);} transform: scale(0);
50% { transform: scale(1)}
to { transform: scale(0)}
} }
.circle1{ }
animation: ani-demo-spin1 1s linear infinite; .circle2 {
animation-delay:-0.25s; animation: ani-demo-spin2 1s linear infinite;
animation-delay: -0.125s;
}
@keyframes ani-demo-spin2 {
from {
transform: scale(0);
} }
@keyframes ani-demo-spin1 { 50% {
from { transform: scale(0);} transform: scale(1);
50% { transform: scale(1)}
to { transform: scale(0)}
} }
.circle2{ to {
animation: ani-demo-spin2 1s linear infinite; transform: scale(0);
animation-delay:-0.125s;
} }
@keyframes ani-demo-spin2 { }
from { transform: scale(0);} .circle3 {
50% { transform: scale(1)} animation: ani-demo-spin3 1s linear infinite;
to { transform: scale(0)} animation-delay: 0s;
}
@keyframes ani-demo-spin3 {
from {
transform: scale(0);
} }
.circle3{ 50% {
animation: ani-demo-spin3 1s linear infinite; transform: scale(1);
animation-delay:0s;
} }
@keyframes ani-demo-spin3 { to {
from { transform: scale(0);} transform: scale(0);
50% { transform: scale(1)}
to { transform: scale(0)}
} }
}
</style> </style>
const sapi = 'http://recruitapi-ai3.liangkebang.net' const sapi = "http://recruitapi-ai3.liangkebang.net";
export { export { sapi };
sapi
}
module.exports = process.env.NODE_ENV === 'production' ? require('./prod.config.js') : require('./env.config.js') module.exports =
process.env.NODE_ENV === "production"
? require("./prod.config.js")
: require("./env.config.js");
const sapi = '//api.stantoo.com' const sapi = "//api.stantoo.com";
export { export { sapi };
sapi
}
This diff is collapsed.
<template> <template>
<div class="login"> <div class="login">
<div class="login-content"> <div class="login-content">
<div class="loginContent-left"> <div class="loginContent-left">
<div class="logimg"> <div class="logimg">
<img src="http://xyqbui.lkbang.net/image/logo99.png"> <img src="http://xyqbui.lkbang.net/image/logo99.png" />
</div> </div>
</div> </div>
<div class="loginContent-right"> <div class="loginContent-right">
<div class="logo"> <div class="logo">
<img src="http://xyqbui.lkbang.net/image/log.jpg"> <img src="http://xyqbui.lkbang.net/image/log.jpg" />
<h3>登录</h3> <h3>登录</h3>
</div> </div>
<div class="login_content"> <div class="login_content">
<Form ref="formInline" :model="formInline" :rules="ruleInline" style="height:161px"> <Form
<FormItem prop="user" style="height:60px"> ref="formInline"
<Input type="text" v-model="formInline.user" placeholder="请输入企业邮箱账号" class="wordStyle" size="large"> :model="formInline"
<Icon type="ios-person-outline" slot="prepend" ></Icon> :rules="ruleInline"
</Input> style="height:161px"
</FormItem> >
<FormItem prop="password"> <FormItem prop="user" style="height:60px">
<Input type="password" v-model="formInline.password" placeholder="请输入密码" class="wordStyle" @keyup.enter.native='login' size="large"> <Input
<Icon type="ios-lock-outline" slot="prepend"></Icon> type="text"
</Input> v-model="formInline.user"
<span style="color:red;margin-top;5px" v-show="noteconTime==true">{{notecontent}}</span> placeholder="请输入企业邮箱账号"
</FormItem> class="wordStyle"
</Form> size="large"
<Button type="primary" class="loginBtu" @click.prevent="login">登录</Button> >
</div> <Icon type="ios-person-outline" slot="prepend"></Icon>
</Input>
</FormItem>
<FormItem prop="password">
<Input
type="password"
v-model="formInline.password"
placeholder="请输入密码"
class="wordStyle"
@keyup.enter.native="login"
size="large"
>
<Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input>
<span
style="color:red;margin-top;5px"
v-show="noteconTime == true"
>{{ notecontent }}</span
>
</FormItem>
</Form>
<Button type="primary" class="loginBtu" @click.prevent="login"
>登录</Button
>
</div>
<div class="copy"> <div class="copy">
<p>量化派为你提供全程服务</p> <p>量化派为你提供全程服务</p>
<p>量化派版权所有</p> <p>量化派版权所有</p>
</div> </div>
</div>
</div>
</div> </div>
</div>
</div>
</template> </template>
<script> <script>
import { login } from "../../api/login.server.js";
import { login } from '../../api/login.server.js' import localstorage from "../../service/localstorage.service.js";
import localstorage from '../../service/localstorage.service.js'
export default { export default {
data () { data() {
return { return {
channelarr: [], channelarr: [],
notecontent: '', notecontent: "",
noteconTime: false, noteconTime: false,
ISIDMIN: '', ISIDMIN: "",
formInline: { formInline: {
user: '', user: "",
password: '' password: ""
}, },
ruleInline: { ruleInline: {
user: [ user: [
{ required: true, pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, message: '请输入正确的邮箱账号', trigger: 'blur' } {
required: true,
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
message: "请输入正确的邮箱账号",
trigger: "blur"
}
], ],
password: [ password: [
{ required: true, message: '请输入正确的密码', trigger: 'blur' } { required: true, message: "请输入正确的密码", trigger: "blur" }
// { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' } // { type: 'string', min: 4, message: '请输入正确的密码', trigger: 'blur' }
] ]
} }
} };
}, },
methods: { methods: {
handleSubmit (name) { handleSubmit(name) {
this.$refs[name].validate((valid) => { this.$refs[name].validate(valid => {
if (valid) { if (valid) {
this.$Message.success('Success!') this.$Message.success("Success!");
} else { } else {
this.$Message.error('Fail!') this.$Message.error("Fail!");
} }
}) });
}, },
login () { login() {
const params = { const params = {
userCode: this.formInline.user, userCode: this.formInline.user,
password: this.formInline.password password: this.formInline.password
} };
if (this.formInline.user == '' || this.formInline.password == '') { if (this.formInline.user == "" || this.formInline.password == "") {
return return;
} }
login(params).then(res => { login(params).then(res => {
if (res.data.body.code == '100') { if (res.data.body.code == "100") {
this.$router.push({ name: 'update', params: { userCode: this.formInline.user } }) this.$router.push({
return name: "update",
params: { userCode: this.formInline.user }
});
return;
} }
if (res.data.success == true) { if (res.data.success == true) {
this.ISIDMIN = res.data.body this.ISIDMIN = res.data.body;
localstorage.set('token', res.data.body.token) localstorage.set("token", res.data.body.token);
this.$router.push({ name: 'allResume' }) this.$router.push({ name: "allResume" });
localstorage.set('isADMIN', JSON.stringify(this.ISIDMIN)) localstorage.set("isADMIN", JSON.stringify(this.ISIDMIN));
return return;
} }
if (res.data.success == false) { if (res.data.success == false) {
this.noteconTime = true this.noteconTime = true;
this.notecontent = res.data.body.message this.notecontent = res.data.body.message;
setTimeout(() => { setTimeout(() => {
this.noteconTime = false this.noteconTime = false;
}, 3000) }, 3000);
} }
}) });
} }
} }
} };
</script> </script>
<style scoped> <style scoped>
.login{ .login {
width:100%; width: 100%;
height:100%; height: 100%;
overflow: hidden; overflow: hidden;
} }
.login .login-content{ .login .login-content {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
} }
.loginContent-left { .loginContent-left {
float: left; float: left;
width: 70%; width: 70%;
height:100%; height: 100%;
} }
.logimg{ .logimg {
height: 100%; height: 100%;
width:100%; width: 100%;
} }
.logimg img{ .logimg img {
width:100%; width: 100%;
height: 100% height: 100%;
} }
.loginBtu{ .loginBtu {
width:90%; width: 90%;
height: 40px; height: 40px;
font-size: 18px font-size: 18px;
} }
.loginContent-right{ .loginContent-right {
float: left; float: left;
width: 30%; width: 30%;
height:100%; height: 100%;
border: 1px solid GhostWhite border: 1px solid GhostWhite;
} }
.logo{ .logo {
width:70%; width: 70%;
height:180px; height: 180px;
margin-top:160px; margin-top: 160px;
/* border: 1px solid black; */ /* border: 1px solid black; */
margin-left:15% margin-left: 15%;
} }
.logo img { .logo img {
width:50%; width: 50%;
height:50% ; height: 50%;
/* margin-left: 30px */ /* margin-left: 30px */
} }
.logo h3{ .logo h3 {
font-size: 30px; font-size: 30px;
color: black; color: black;
margin-top: 0px margin-top: 0px;
} }
.login_content{ .login_content {
height: 300px; height: 300px;
width: 70%; width: 70%;
/* border:1px solid black; */ /* border:1px solid black; */
margin-left:15%; margin-left: 15%;
margin-top: 0px margin-top: 0px;
} }
.copy{ .copy {
width: 100%; width: 100%;
height:100px; height: 100px;
margin-top: 80px; margin-top: 80px;
margin-left: 7% margin-left: 7%;
} }
.copy p{ .copy p {
font-size: 17px; font-size: 17px;
color: #999 color: #999;
} }
.wordStyle{ .wordStyle {
width: 90%; width: 90%;
line-height: 50px line-height: 50px;
/* margin-left: 30px */ /* margin-left: 30px */
} }
</style> </style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template> <template>
<div> <div>
<h3 style="color:#2d8cf0;font-size:18px;margin:14px 0 0 15px">二维码管理</h3> <h3 style="color:#2d8cf0;font-size:18px;margin:14px 0 0 15px">
<h5 style="margin:24px 0 0 15px;display:inline-block">前台扫描二维码</h5> 二维码管理
<div class="Qrcode"> </h3>
<img :src="url" style="width:100%;height:100%"> <h5 style="margin:24px 0 0 15px;display:inline-block">前台扫描二维码</h5>
</div> <div class="Qrcode">
<p class="xiazai" @click="downPic">下载</p> <img :src="url" style="width:100%;height:100%" />
<!-- <p style="margin-top:40px"><span>请点击&nbsp;</span> </div>
<p class="xiazai" @click="downPic">下载</p>
<!-- <p style="margin-top:40px"><span>请点击&nbsp;</span>
<a href="http://192.168.28.10:7086/acceptInterview?isResufe=false" <a href="http://192.168.28.10:7086/acceptInterview?isResufe=false"
style="text-decoration:none;width:100px;height:30px;background:#0092ff;color:white;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important">接受面试安排</a>&nbsp; style="text-decoration:none;width:100px;height:30px;background:#0092ff;color:white;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important">接受面试安排</a>&nbsp;
<a href="http://192.168.28.10:7086/acceptInterview?isResufe=true" <a href="http://192.168.28.10:7086/acceptInterview?isResufe=true"
style="text-decoration:none;width:100px;height:30px;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important;border:1px solid #0092ff;">拒绝面试安排</a>&nbsp; style="text-decoration:none;width:100px;height:30px;display:inline-block; text-align: center;line-height:30px;border-radius:5px!important;border:1px solid #0092ff;">拒绝面试安排</a>&nbsp;
<span>将您的反馈告知我们。</span> <span>将您的反馈告知我们。</span>
</p> --> </p> -->
</div> </div>
</template> </template>
<script> <script>
import { getErcode, downloadErcode } from '../../api/stystem.server.js' import { getErcode, downloadErcode } from "../../api/stystem.server.js";
import { import { sapi } from "../../config";
sapi
} from '../../config'
export default { export default {
data () { data() {
return { return {
url: '', url: "",
url2: '' url2: ""
} };
}, },
methods: { methods: {
// 取到二维码 // 取到二维码
getercode () { getercode() {
getErcode().then(res => { getErcode().then(res => {
if (res.data.success == true) { if (res.data.success == true) {
this.url = res.data.body this.url = res.data.body;
} }
}) });
}, },
downPic (img) { downPic(img) {
window.location.href = `${sapi}/api/qrCode/downQrCode` window.location.href = `${sapi}/api/qrCode/downQrCode`;
} }
}, },
mounted () { mounted() {
this.getercode() this.getercode();
} }
} };
</script> </script>
<style> <style>
.Qrcode{ .Qrcode {
height: 200px; height: 200px;
width: 200px; width: 200px;
border: 1px solid black; border: 1px solid black;
margin: 20px 0 0 15px margin: 20px 0 0 15px;
} }
.xiazai{ .xiazai {
height: 30px; height: 30px;
width: 100px; width: 100px;
background:#2d8cf0; background: #2d8cf0;
color: white; color: white;
line-height: 30px; line-height: 30px;
text-align: center; text-align: center;
border-radius: 5px ; border-radius: 5px;
position: absolute; position: absolute;
left: 230px; left: 230px;
top:270px top: 270px;
} }
</style> </style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js // https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js
import axios from './http.service.js' import axios from "./http.service.js";
function getError (action, option, xhr) { function getError(action, option, xhr) {
const msg = `fail to post ${action} ${xhr.status}'` const msg = `fail to post ${action} ${xhr.status}'`;
const err = new Error(msg) const err = new Error(msg);
err.status = xhr.status err.status = xhr.status;
err.method = 'post' err.method = "post";
err.url = action err.url = action;
return err return err;
} }
function getBody (xhr) { function getBody(xhr) {
const text = xhr.responseText || xhr.response const text = xhr.responseText || xhr.response;
if (!text) { if (!text) {
return text return text;
} }
try { try {
return JSON.parse(text) return JSON.parse(text);
} catch (e) { } catch (e) {
return text return text;
} }
} }
export function uploadFile (option) { export function uploadFile(option) {
const action = option.action const action = option.action;
const formData = new FormData() const formData = new FormData();
if (option.data) { if (option.data) {
option.data.map(item => { option.data.map(item => {
formData.append(option.appendFile, item.data) formData.append(option.appendFile, item.data);
}) });
} }
formData.append(option.appendName, option.batchNum) formData.append(option.appendName, option.batchNum);
axios.post(action, formData, { axios
onUploadProgress: function (progressEvent) { .post(action, formData, {
if (progressEvent.total > 0) { onUploadProgress: function(progressEvent) {
progressEvent.percent = (progressEvent.loaded / progressEvent.total * 100) if (progressEvent.total > 0) {
progressEvent.percent =
(progressEvent.loaded / progressEvent.total) * 100;
}
option.onProgress(progressEvent);
} }
option.onProgress(progressEvent) })
} .then(res => {
}).then((res) => { option.onSuccess(res.data);
option.onSuccess(res.data) })
}).catch((error) => { .catch(error => {
option.onError(error) option.onError(error);
}) });
} }
export default function upload (option) { export default function upload(option) {
if (typeof XMLHttpRequest === 'undefined') { if (typeof XMLHttpRequest === "undefined") {
return return;
} }
const xhr = new XMLHttpRequest() const xhr = new XMLHttpRequest();
const action = option.action const action = option.action;
if (xhr.upload) { if (xhr.upload) {
xhr.upload.onprogress = function progress (e) { xhr.upload.onprogress = function progress(e) {
if (e.total > 0) { if (e.total > 0) {
e.percent = (e.loaded / e.total * 100 - 10) e.percent = (e.loaded / e.total) * 100 - 10;
} }
option.onProgress(e) option.onProgress(e);
} };
} }
const formData = new FormData() const formData = new FormData();
if (option.data) { if (option.data) {
option.data.map(item => { option.data.map(item => {
formData.append(option.appendFile, item.data) formData.append(option.appendFile, item.data);
}) });
} }
formData.append(option.appendName, option.batchNum) formData.append(option.appendName, option.batchNum);
xhr.onerror = function error (e) { xhr.onerror = function error(e) {
option.onError(e) option.onError(e);
} };
xhr.onload = function onload () { xhr.onload = function onload() {
if (xhr.status < 200 || xhr.status >= 300) { if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(action, option, xhr), getBody(xhr)) return option.onError(getError(action, option, xhr), getBody(xhr));
} }
option.onSuccess(getBody(xhr)) option.onSuccess(getBody(xhr));
} };
xhr.open('post', action, true) xhr.open("post", action, true);
if ('withCredentials' in xhr) { if ("withCredentials" in xhr) {
xhr.withCredentials = true xhr.withCredentials = true;
} }
const headers = option.headers || {} const headers = option.headers || {};
if (headers['X-Requested-With'] !== null) { if (headers["X-Requested-With"] !== null) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest') xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
} }
for (const item in headers) { for (const item in headers) {
if (headers.hasOwnProperty(item) && headers[item] !== null) { if (headers.hasOwnProperty(item) && headers[item] !== null) {
xhr.setRequestHeader(item, headers[item]) xhr.setRequestHeader(item, headers[item]);
} }
} }
xhr.send(formData) xhr.send(formData);
} }
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
module.exports = require('es6-promise') module.exports = require("es6-promise");
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment