cyl/dev
wangxia 4 years ago
parent 38ea611b06
commit 7e99af49d2

@ -0,0 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>伯才一手单-伯才旗下一手单平台</title><link href="static/css/chunk-0aa5b0ca.74f59567.css" rel="prefetch"><link href="static/css/chunk-0ea2ab00.8b1f06db.css" rel="prefetch"><link href="static/css/chunk-13cd245e.29775961.css" rel="prefetch"><link href="static/css/chunk-1d1d17e7.edec9d04.css" rel="prefetch"><link href="static/css/chunk-1d599a2a.3d71b249.css" rel="prefetch"><link href="static/css/chunk-29cca858.951c1bff.css" rel="prefetch"><link href="static/css/chunk-32c41a00.e8e31e06.css" rel="prefetch"><link href="static/css/chunk-36b0a845.56fd6900.css" rel="prefetch"><link href="static/css/chunk-40d15c02.c522181b.css" rel="prefetch"><link href="static/css/chunk-439db3e2.9b01ecf0.css" rel="prefetch"><link href="static/css/chunk-477bd078.b8e36482.css" rel="prefetch"><link href="static/css/chunk-54c3cd98.ca9a94de.css" rel="prefetch"><link href="static/css/chunk-5877e555.bc7b5c19.css" rel="prefetch"><link href="static/css/chunk-599d1dda.b72b246e.css" rel="prefetch"><link href="static/css/chunk-5aaf61e3.5273e98e.css" rel="prefetch"><link href="static/css/chunk-645c2901.ae0cbf6d.css" rel="prefetch"><link href="static/css/chunk-649a250c.659ed4be.css" rel="prefetch"><link href="static/css/chunk-69f0e2dc.897b1f1b.css" rel="prefetch"><link href="static/css/chunk-70c02cdb.4e0dc5f1.css" rel="prefetch"><link href="static/css/chunk-7459f4bd.026fbb69.css" rel="prefetch"><link href="static/css/chunk-76f782a4.01ba77f1.css" rel="prefetch"><link href="static/css/chunk-7d9f088a.46a7d4cd.css" rel="prefetch"><link href="static/css/chunk-8475193c.624c9a62.css" rel="prefetch"><link href="static/css/chunk-9e43482c.daa964b4.css" rel="prefetch"><link href="static/css/chunk-ae50421c.b8eb6814.css" rel="prefetch"><link href="static/css/chunk-e76babb0.9fd8b6bf.css" rel="prefetch"><link href="static/css/chunk-ef2dcf9c.81111d96.css" rel="prefetch"><link href="static/js/chunk-0328be37.9da08e84.js" rel="prefetch"><link href="static/js/chunk-0aa5b0ca.46ebc9c2.js" rel="prefetch"><link href="static/js/chunk-0ea2ab00.eec7ca43.js" rel="prefetch"><link href="static/js/chunk-13cd245e.1a48a31a.js" rel="prefetch"><link href="static/js/chunk-19006edb.cd1f6178.js" rel="prefetch"><link href="static/js/chunk-1d1d17e7.f9507a40.js" rel="prefetch"><link href="static/js/chunk-1d599a2a.8fdfb601.js" rel="prefetch"><link href="static/js/chunk-29cca858.22b26978.js" rel="prefetch"><link href="static/js/chunk-32c41a00.e60bb99a.js" rel="prefetch"><link href="static/js/chunk-36b0a845.aba8166b.js" rel="prefetch"><link href="static/js/chunk-40d15c02.efb7b26e.js" rel="prefetch"><link href="static/js/chunk-439db3e2.6052aa87.js" rel="prefetch"><link href="static/js/chunk-477bd078.54a1c288.js" rel="prefetch"><link href="static/js/chunk-54c3cd98.b9355da1.js" rel="prefetch"><link href="static/js/chunk-5877e555.6f5d9f9a.js" rel="prefetch"><link href="static/js/chunk-599d1dda.a4db6c22.js" rel="prefetch"><link href="static/js/chunk-5aaf61e3.8042ee48.js" rel="prefetch"><link href="static/js/chunk-645c2901.8d97d16b.js" rel="prefetch"><link href="static/js/chunk-649a250c.3ae7df3f.js" rel="prefetch"><link href="static/js/chunk-69f0e2dc.fb0a4d42.js" rel="prefetch"><link href="static/js/chunk-70c02cdb.fbd7778b.js" rel="prefetch"><link href="static/js/chunk-7459f4bd.db907cc2.js" rel="prefetch"><link href="static/js/chunk-76f782a4.86f1067f.js" rel="prefetch"><link href="static/js/chunk-7d9f088a.ae6cd877.js" rel="prefetch"><link href="static/js/chunk-8475193c.84ac0e1c.js" rel="prefetch"><link href="static/js/chunk-9e43482c.b2dacb9f.js" rel="prefetch"><link href="static/js/chunk-ae50421c.8ed5d167.js" rel="prefetch"><link href="static/js/chunk-e76babb0.264e470c.js" rel="prefetch"><link href="static/js/chunk-ef2dcf9c.59fc9ce7.js" rel="prefetch"><link href="static/css/app.879b91da.css" rel="preload" as="style"><link href="static/css/chunk-vendors.09af4a6b.css" rel="preload" as="style"><link href="static/js/app.959e96c2.js" rel="preload" as="script"><link href="static/js/chunk-vendors.955b40ed.js" rel="preload" as="script"><link href="static/css/chunk-vendors.09af4a6b.css" rel="stylesheet"><link href="static/css/app.879b91da.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but firstbill doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.955b40ed.js"></script><script src="static/js/app.959e96c2.js"></script></body></html>

591
package-lock.json generated

@ -23,6 +23,7 @@
"vuex": "^3.4.0"
},
"devDependencies": {
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
@ -30,6 +31,8 @@
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"compression-webpack-plugin": "^5.0.1",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2",
@ -845,7 +848,7 @@
},
"node_modules/@babel/plugin-syntax-dynamic-import": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
"dependencies": {
@ -1692,6 +1695,12 @@
"node": ">=6.9.0"
}
},
"node_modules/@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz",
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
"dev": true
},
"node_modules/@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@ -1807,6 +1816,86 @@
"node": ">= 8"
}
},
"node_modules/@npmcli/fs": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz",
"integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
"dev": true,
"dependencies": {
"@gar/promisify": "^1.0.1",
"semver": "^7.3.5"
}
},
"node_modules/@npmcli/fs/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@npmcli/fs/node_modules/semver": {
"version": "7.3.7",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@npmcli/fs/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@npmcli/move-file": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz",
"integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
"dev": true,
"dependencies": {
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@npmcli/move-file/node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@npmcli/move-file/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/@samverschueren/stream-to-observable": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz",
@ -3432,6 +3521,12 @@
"@babel/core": "^7.0.0-0"
}
},
"node_modules/babel-plugin-syntax-dynamic-import": {
"version": "6.18.0",
"resolved": "https://registry.npmmirror.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
"integrity": "sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==",
"dev": true
},
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
@ -4653,6 +4748,129 @@
"node": ">= 0.8.0"
}
},
"node_modules/compression-webpack-plugin": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.1.tgz",
"integrity": "sha512-Wcb99O4UkdDZiM+blEw6h+cUfJYCn2kgK0l3fjLOm72Stso9DVMieQpBD4PVpyI7DLL6+zNh0iJV3p4HDwTinQ==",
"dev": true,
"dependencies": {
"cacache": "^15.0.5",
"find-cache-dir": "^3.3.1",
"schema-utils": "^2.7.0",
"serialize-javascript": "^4.0.0",
"webpack-sources": "^1.4.3"
},
"engines": {
"node": ">= 10.13.0"
},
"peerDependencies": {
"webpack": "^4.0.0 || ^5.0.0"
}
},
"node_modules/compression-webpack-plugin/node_modules/cacache": {
"version": "15.3.0",
"resolved": "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz",
"integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
"dev": true,
"dependencies": {
"@npmcli/fs": "^1.0.0",
"@npmcli/move-file": "^1.0.1",
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"glob": "^7.1.4",
"infer-owner": "^1.0.4",
"lru-cache": "^6.0.0",
"minipass": "^3.1.1",
"minipass-collect": "^1.0.2",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.2",
"mkdirp": "^1.0.3",
"p-map": "^4.0.0",
"promise-inflight": "^1.0.1",
"rimraf": "^3.0.2",
"ssri": "^8.0.1",
"tar": "^6.0.2",
"unique-filename": "^1.1.1"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/compression-webpack-plugin/node_modules/chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/compression-webpack-plugin/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/compression-webpack-plugin/node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/compression-webpack-plugin/node_modules/p-map": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
"dependencies": {
"aggregate-error": "^3.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/compression-webpack-plugin/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/compression-webpack-plugin/node_modules/ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz",
"integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
"dev": true,
"dependencies": {
"minipass": "^3.1.1"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/compression-webpack-plugin/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/compression/node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@ -7320,6 +7538,18 @@
"node": ">=6 <7 || >=8"
}
},
"node_modules/fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/fs-write-stream-atomic": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@ -10484,12 +10714,67 @@
"node": ">=8"
}
},
"node_modules/minipass-collect": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz",
"integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/minipass-flush": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz",
"integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/minipass-pipeline": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
"integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/minipass/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
"dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/minizlib/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/mississippi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@ -14164,6 +14449,50 @@
"node": ">=6"
}
},
"node_modules/tar": {
"version": "6.1.11",
"resolved": "https://registry.npmmirror.com/tar/-/tar-6.1.11.tgz",
"integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
"dev": true,
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^3.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/tar/node_modules/chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/tar/node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"bin": {
"mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/tar/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
@ -16938,7 +17267,7 @@
},
"@babel/plugin-syntax-dynamic-import": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
"requires": {
@ -17523,6 +17852,12 @@
"to-fast-properties": "^2.0.0"
}
},
"@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz",
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
"dev": true
},
"@hapi/address": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@ -17617,6 +17952,69 @@
"fastq": "^1.6.0"
}
},
"@npmcli/fs": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz",
"integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
"dev": true,
"requires": {
"@gar/promisify": "^1.0.1",
"semver": "^7.3.5"
},
"dependencies": {
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
}
},
"semver": {
"version": "7.3.7",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
"@npmcli/move-file": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz",
"integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
"dev": true,
"requires": {
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2"
},
"dependencies": {
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
}
}
},
"@samverschueren/stream-to-observable": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz",
@ -18988,6 +19386,12 @@
"@babel/helper-define-polyfill-provider": "^0.3.1"
}
},
"babel-plugin-syntax-dynamic-import": {
"version": "6.18.0",
"resolved": "https://registry.npmmirror.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
"integrity": "sha512-MioUE+LfjCEz65Wf7Z/Rm4XCP5k2c+TbMd2Z2JKc7U9uwjBhAfNPE48KC4GTGKhppMeYVepwDBNO/nGY6NYHBA==",
"dev": true
},
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
@ -20061,6 +20465,101 @@
}
}
},
"compression-webpack-plugin": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.1.tgz",
"integrity": "sha512-Wcb99O4UkdDZiM+blEw6h+cUfJYCn2kgK0l3fjLOm72Stso9DVMieQpBD4PVpyI7DLL6+zNh0iJV3p4HDwTinQ==",
"dev": true,
"requires": {
"cacache": "^15.0.5",
"find-cache-dir": "^3.3.1",
"schema-utils": "^2.7.0",
"serialize-javascript": "^4.0.0",
"webpack-sources": "^1.4.3"
},
"dependencies": {
"cacache": {
"version": "15.3.0",
"resolved": "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz",
"integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
"dev": true,
"requires": {
"@npmcli/fs": "^1.0.0",
"@npmcli/move-file": "^1.0.1",
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"glob": "^7.1.4",
"infer-owner": "^1.0.4",
"lru-cache": "^6.0.0",
"minipass": "^3.1.1",
"minipass-collect": "^1.0.2",
"minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.2",
"mkdirp": "^1.0.3",
"p-map": "^4.0.0",
"promise-inflight": "^1.0.1",
"rimraf": "^3.0.2",
"ssri": "^8.0.1",
"tar": "^6.0.2",
"unique-filename": "^1.1.1"
}
},
"chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
}
},
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"p-map": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
}
},
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz",
"integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
"dev": true,
"requires": {
"minipass": "^3.1.1"
}
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -22251,6 +22750,15 @@
"universalify": "^0.1.0"
}
},
"fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
}
},
"fs-write-stream-atomic": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@ -24797,6 +25305,51 @@
}
}
},
"minipass-collect": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz",
"integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
}
},
"minipass-flush": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz",
"integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
}
},
"minipass-pipeline": {
"version": "1.2.4",
"resolved": "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
"integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
}
},
"minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
"requires": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
},
"dependencies": {
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
"mississippi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@ -27953,6 +28506,40 @@
"integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
"dev": true
},
"tar": {
"version": "6.1.11",
"resolved": "https://registry.npmmirror.com/tar/-/tar-6.1.11.tgz",
"integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
"dev": true,
"requires": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^3.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
"dependencies": {
"chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true
},
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
"terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",

@ -23,6 +23,7 @@
"vuex": "^3.4.0"
},
"devDependencies": {
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
@ -30,6 +31,9 @@
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"babel-plugin-import": "^1.13.5",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"compression-webpack-plugin": "^5.0.1",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2",

@ -145,3 +145,28 @@ export function gettownsManCountApi(data) {
params: data,
});
}
// 成员管理:获取成员列表
export function getMemberListApi(data) {
return request({
url: "/yishoudan/user/getAgencyCorpUsers",
method: "post",
params: data,
});
}
// 成员管理:删除成员
export function deleteMemberApi(data) {
return request({
url: "/yishoudan/user/delAgencyCorpUser",
method: "post",
params: data,
});
}
// 成员管理:添加成员
export function addMemberApi(data) {
return request({
url: "/yishoudan/user/addAgencyUser",
method: "post",
params: data,
});
}

@ -121,43 +121,18 @@
<div class="maincontent w">
<div class="maincontentleft">
<div class="subset">
<a-skeleton
avatar
:loading="skeletonshow"
v-if="skeletonshow"
:paragraph="{ rows: 4 }"
/>
<a-skeleton avatar :loading="skeletonshow" v-if="skeletonshow" :paragraph="{ rows: 4 }" />
<div class="subsetleft" v-else>
<div class="imgbox">
<a-carousel
arrows
:autoplay="true"
effect="fade"
:dots="true"
ref="scrollimg"
v-if="storeImage.length !== 0"
>
<div
slot="prevArrow"
class="custom-slick-arrow"
style="left: 5px; z-index: 99"
>
<a-carousel arrows :autoplay="true" effect="fade" :dots="true" ref="scrollimg" v-if="storeImage.length !== 0">
<div slot="prevArrow" class="custom-slick-arrow" style="left: 5px; z-index: 99">
<a-icon type="left-circle" />
</div>
<div
slot="nextArrow"
class="custom-slick-arrow"
style="right: 5px; z-index: 99"
>
<div slot="nextArrow" class="custom-slick-arrow" style="right: 5px; z-index: 99">
<a-icon type="right-circle" />
</div>
<img
v-for="(item, index) in storeImage"
:key="index"
:src="item"
alt=""
/>
<img v-for="(item, index) in storeImage" :key="index" :src="item" alt="" />
</a-carousel>
<img v-else src="../../../static/img/nopicture.png" alt="" />
</div>
@ -170,52 +145,20 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<a-tag
:color="labelColor[index % labelColor.length]"
v-for="(item, index) in jobDetail.jobRequestLabelNames"
:key="index"
>{{ item }}</a-tag
>
<a-tag :color="labelColor[index % labelColor.length]" v-for="(item, index) in jobDetail.jobRequestLabelNames" :key="index">{{ item }}</a-tag>
</div>
<div
style="height: 27px"
v-if="!jobDetail.jobRequestLabelNames"
class="jobtag"
>
<div style="height: 27px" v-if="!jobDetail.jobRequestLabelNames" class="jobtag">
<a-tag :color="labelColor[1]">暂无要求</a-tag>
</div>
<div class="jobtag1">
<!-- <span>返费</span> -->
<a-tag
v-for="(item, index) in jobDetail.jobSpecialLabelNames"
:key="index"
>{{ item }}</a-tag
>
<a-tag v-for="(item, index) in jobDetail.jobSpecialLabelNames" :key="index">{{ item }}</a-tag>
</div>
<div
style="height: 27px"
v-if="!jobDetail.jobSpecialLabelNames"
class="jobtag"
>
<div style="height: 27px" v-if="!jobDetail.jobSpecialLabelNames" class="jobtag">
<a-tag style="backgroundcolor: #f5f5f5">暂无特色</a-tag>
</div>
<div
style="
display: flex;
align-items: center;
height: 26px;
margin-top: 16px;
"
>
<div
class="jobpricehour"
v-html="
getSalaryClassifyValue(
jobDetail.salaryClassify,
jobDetail.salaryClassifyValue
)
"
>
<div style="display: flex; align-items: center; height: 26px; margin-top: 16px">
<div class="jobpricehour" v-html="getSalaryClassifyValue(jobDetail.salaryClassify, jobDetail.salaryClassifyValue)">
<!-- <template v-if="jobDetail.hourlyPay"
><span>{{ jobDetail.hourlyPay }}</span
>/小时</template
@ -262,9 +205,7 @@
<a-button type="primary" class="jobDesp">职位详单</a-button>
</a-popover> -->
<button class="dropdown bottombox1" @click="torecord()">
报名
</button>
<button class="dropdown bottombox1" @click="torecord()"></button>
</div>
</div>
</div>
@ -275,30 +216,14 @@
<div class="jobinformationbox">
<h1>
<div class="infotitle">
<span
@click="tabchange = 1"
:class="tabchange === 1 ? 'active' : ''"
>基本信息</span
>
<span
@click="tabchange = 0"
:class="tabchange !== 1 ? 'active' : ''"
>财务结算</span
>
<span @click="tabchange = 1" :class="tabchange === 1 ? 'active' : ''">基本信息</span>
<span @click="tabchange = 0" :class="tabchange !== 1 ? 'active' : ''">财务结算</span>
</div>
<div class="copy" @click="xiangdanVisible = true">通告</div>
<a-modal
v-model="xiangdanVisible"
title="通告"
class="xiangdan"
:footer="null"
@ok="handleOk"
>
<a-modal v-model="xiangdanVisible" title="通告" class="xiangdan" :footer="null" @ok="handleOk">
<!-- <template slot="content" class="jobDesp_content"> -->
<div class="copy" @click="copyText($event)"></div>
<span v-if="jobDetail.jobDesp" class="copyInfo">{{
jobDetail.jobDesp
}}</span
<span v-if="jobDetail.jobDesp" class="copyInfo">{{ jobDetail.jobDesp }}</span
><span v-else></span>
<!-- </template> -->
</a-modal>
@ -314,12 +239,7 @@
<div class="baseInfoContent" v-if="tabchange === 1">
<div class="pay" id="pay">
<div class="mb12 mt20">薪资待遇</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc boubleLevel"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc boubleLevel">
<!-- <a-descriptions-item class="test1">
<span slot="label" class="fw500">工价</span>
<span>{{ jobDetail.calculationUnit }}</span>
@ -342,9 +262,7 @@
</a-descriptions-item>
<a-descriptions-item>
<span slot="label" class="fw500">补充说明</span>
<span style="white-space: break-spaces">{{
jobDetail.salaryDesp || "-"
}}</span>
<span style="white-space: break-spaces">{{ jobDetail.salaryDesp || "-" }}</span>
</a-descriptions-item>
<!-- <a-descriptions-item style="padding: 0">
<span slot="label">薪资说明</span>
@ -382,24 +300,15 @@
<!-- 岗位要求 -->
<div class="required" id="required">
<div class="mb12 mt20">面试要求</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">性别年龄</span>
<span>
<span class="man" v-if="jobDetail.minAgeMan"
> {{ jobDetail.minAgeMan }}
<span v-if="jobDetail.maxAgeMan">{{
"- " + jobDetail.maxAgeMan
}}</span
> {{ jobDetail.minAgeMan }} <span v-if="jobDetail.maxAgeMan">{{ "- " + jobDetail.maxAgeMan }}</span
> </span
><span class="woman" v-if="jobDetail.minAgeWoman">
{{ jobDetail.minAgeWoman }}
<span> {{ "- " + jobDetail.maxAgeWoman }}</span
{{ jobDetail.minAgeWoman }} <span> {{ "- " + jobDetail.maxAgeWoman }}</span
></span
>
</span>
@ -435,12 +344,7 @@
<!-- 基本信息 -->
<div class=" " id="contentspecial">
<div class="mb12 mt20">岗位说明</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">工作内容</span>
<span>{{ jobDetail.workContent || "-" }}</span>
@ -471,9 +375,7 @@
</a-descriptions-item> -->
<a-descriptions-item>
<span slot="label" class="fw500">补充说明</span>
<span style="white-space: break-spaces">{{
jobDetail.otherDesp || "-"
}}</span>
<span style="white-space: break-spaces">{{ jobDetail.otherDesp || "-" }}</span>
</a-descriptions-item>
</a-descriptions>
</div>
@ -485,8 +387,7 @@
<div>吃饭</div>
<ul>
<li>
<span>吃饭</span
><span>{{ jobDetail.workingLunch || "-" }}</span>
<span>吃饭</span><span>{{ jobDetail.workingLunch || "-" }}</span>
</li>
<!-- <li>
<span>餐补</span
@ -504,10 +405,7 @@
<span>民族窗口</span><span>{{ jobDetail.muslim }}</span>
</li> -->
<li>
<span>补充说明</span
><span style="white-space: break-spaces">{{
jobDetail.workingLunchDesp || "-"
}}</span>
<span>补充说明</span><span style="white-space: break-spaces">{{ jobDetail.workingLunchDesp || "-" }}</span>
</li>
</ul>
</li>
@ -515,12 +413,10 @@
<div>住宿</div>
<ul>
<li>
<span>住宿</span
><span>{{ jobDetail.dormitory || "-" }}</span>
<span>住宿</span><span>{{ jobDetail.dormitory || "-" }}</span>
</li>
<li>
<span>宿舍设施</span
><span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
<span>宿舍设施</span><span>{{ jobDetail.dormitoryFacilities || "-" }}</span>
</li>
<!-- <li>
<span>宿舍距离</span
@ -541,17 +437,13 @@
><span>{{ jobDetail.dormitoryFacilities }}</span>
</li> -->
<li>
<span>水电费</span
><span>{{ jobDetail.waterAndElec || "-" }}</span>
<span>水电费</span><span>{{ jobDetail.waterAndElec || "-" }}</span>
</li>
<!-- <li>
<span>班车</span><span>{{ jobDetail.regularBus }}</span>
</li> -->
<li>
<span>补充说明</span
><span style="white-space: break-spaces">{{
jobDetail.dormitoryDesp || "-"
}}</span>
<span>补充说明</span><span style="white-space: break-spaces">{{ jobDetail.dormitoryDesp || "-" }}</span>
</li>
</ul>
</li>
@ -621,13 +513,7 @@
{{ jobDetail.agencyStatement || "-" }}
</div>
</div>
<a-descriptions
bordered
size="small"
:column="1"
class="leftDesc mt20"
style="width: 900px"
>
<a-descriptions bordered size="small" :column="1" class="leftDesc mt20" style="width: 900px">
<a-descriptions-item class="test1">
<span slot="label" class="fw500">代理利润</span>
<span>{{ jobDetail.agencyProfit || "-" }}</span>
@ -702,10 +588,7 @@
</template>
<script>
import { getJobDetailApi } from "../../api/job";
import {
disposeJobListData,
getSalaryClassifyValue,
} from "../../utils/commonUtil";
import { disposeJobListData, getSalaryClassifyValue } from "../../utils/commonUtil";
import recommend from "../../components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import GDMap from "../map.vue";
@ -740,16 +623,7 @@ export default {
skeletonshow: true,
tabchange: 1,
nationlist,
labelColor: [
"pink",
"blue",
"purple",
"orange",
"green",
"cyan",
"red",
"purple",
],
labelColor: ["pink", "blue", "purple", "orange", "green", "cyan", "red", "purple"],
form: {
//
name: "",
@ -814,9 +688,7 @@ export default {
this.positionInfo.containerName = "mapContainer";
this.positionInfo.name = this.positionInfo.aliasName;
this.skeletonshow = false;
this.jobDetail.district = disposeJobListData(
data.data.store
).district;
this.jobDetail.district = disposeJobListData(data.data.store).district;
let newdata = {
id: data.data.storeJob.id,
aliasName: data.data.store.aliasName,
@ -1628,12 +1500,7 @@ export default {
font-size: 16px;
color: #333;
}
.boubleLevel
> .ant-descriptions-view
> table
> tbody
> .ant-descriptions-row:last-child
> .ant-descriptions-item-content {
.boubleLevel > .ant-descriptions-view > table > tbody > .ant-descriptions-row:last-child > .ant-descriptions-item-content {
// padding: 0 !important;
.noborder {
.ant-descriptions-view {

@ -23,35 +23,13 @@
>
</a-modal> -->
<!-- 城市的弹出框 -->
<a-modal
class="cityModal"
transitionName=""
v-model="visible"
width="680px"
@cancel="cityModalClose"
title="请选择城市"
:footer="null"
>
<div class="inputBox">
<a-input
placeholder="请输入城市名称"
allow-clear
width="300px"
v-model="cityValue"
@keyup.enter="searchCity"
@input="resetCityList"
></a-input
><a-button @click="searchCity"></a-button>
</div>
<a-modal class="cityModal" transitionName="" v-model="visible" width="680px" @cancel="cityModalClose" title="请选择城市" :footer="null">
<div class="inputBox"><a-input placeholder="请输入城市名称" allow-clear width="300px" v-model="cityValue" @keyup.enter="searchCity" @input="resetCityList"></a-input><a-button @click="searchCity"></a-button></div>
<ul class="firstList">
<li @click="[(currentCityList = hotCityList), (activeInd = -1)]">
<div :class="activeInd == -1 ? 'active' : ''">热门地区</div>
</li>
<li
v-for="(item, index) in hasJobCityList.firstList"
:key="index"
@click="[changeCurrentCity(index), (activeInd = index)]"
>
<li v-for="(item, index) in hasJobCityList.firstList" :key="index" @click="[changeCurrentCity(index), (activeInd = index)]">
<div :class="activeInd == index ? 'active' : ''">
<span v-for="i in item" :key="i">{{ i }}</span>
</div>
@ -206,39 +184,11 @@
</div>
</li>
</ul> -->
<div
class="searchBox"
@blur="hidedownHotStore"
@focus="showHotStore"
tabindex="0"
outline="0"
hidefocus="true"
>
<a-input
placeholder="搜索职位、企业名称、年龄要求"
@keyup.enter="onSearch"
@input="resetsearch"
@blur="hidedownHotStore"
@focus="showHotStore"
tabindex="0"
v-model="searchValue"
class="searchinput"
style=""
allow-clear
>
<div
slot="prefix"
@focus.stop=""
tabindex="0"
@click.stop="visible = true"
>
<div class="searchBox" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" outline="0" hidefocus="true">
<a-input placeholder="搜索职位、企业名称、年龄要求" @keyup.enter="onSearch" @input="resetsearch" @blur="hidedownHotStore" @focus="showHotStore" tabindex="0" v-model="searchValue" class="searchinput" style="" allow-clear>
<div slot="prefix" @focus.stop="" tabindex="0" @click.stop="visible = true">
<span>{{ currentCity }}</span
><i class="iconfont icon-sousuoxiala"></i
><i
class="iconfont icon-guanbishixin"
v-show="currentCity != '全国'"
@click.stop="resetCity"
></i>
><i class="iconfont icon-sousuoxiala"></i><i class="iconfont icon-guanbishixin" v-show="currentCity != '全国'" @click.stop="resetCity"></i>
</div>
<button slot="suffix" @click="onSearch" style="">搜索</button>
</a-input>
@ -252,11 +202,7 @@
<div class="hotStore">
<!-- <span>热门企业</span> -->
<ul>
<li
v-for="(item, index) in hotStoreList"
:key="index"
@click="getHotStoreList(item)"
>
<li v-for="(item, index) in hotStoreList" :key="index" @click="getHotStoreList(item)">
{{ item.storeName }}
</li>
<!-- <li @click="resetResult" style="color: #aaa">重置</li> -->
@ -289,39 +235,20 @@
</a-breadcrumb> -->
<!-- 主体部分 -->
<div class="w" id="maincontent">
<div class="maincontentleft">
<div class="maincontentleft" style="padding-top: 50px">
<div class="tabBar" @click="changeTab($event)">
<div class="tabSubset" :class="{ active: signType == '' }" data-type="0">全部</div>
<div class="tabSubset" :class="{ active: signType == 1 }" data-type="1">自营</div>
<div class="tabSubset" :class="{ active: signType == 2 }" data-type="2">三方</div>
</div>
<div class="filter" :class="[filterStatus == 0 ? '' : 'nobd']" style="">
<div
class="filter-title"
:style="{ top: filterStatus == 0 ? '-32px' : '-21px' }"
>
<div class="filter-title" :style="{ top: filterStatus == 0 ? '-32px' : '-21px' }">
<span
><span>所有筛选<i class="iconfont icon-youjiantou"></i></span>
<span class="filter-show">
<span
@click="delFilter($event, 'price')"
v-show="filterObj.price"
>{{ filterObj.price
}}<i
class="iconfont icon-guanbi2"
v-show="filterObj.price"
></i
></span>
<span
@click="delFilter($event, 'gender')"
v-show="filterObj.gender"
>{{ filterObj.gender
}}<i
class="iconfont icon-guanbi2"
v-show="filterObj.gender"
></i
></span>
<span
@click="delFilter($event, 'special', item)"
v-for="(item, index) in filterObj.specialactive"
:key="index"
>{{ item.name }}<i class="iconfont icon-guanbi2"></i
></span>
<span @click="delFilter($event, 'price')" v-show="filterObj.price">{{ filterObj.price }}<i class="iconfont icon-guanbi2" v-show="filterObj.price"></i></span>
<span @click="delFilter($event, 'gender')" v-show="filterObj.gender">{{ filterObj.gender }}<i class="iconfont icon-guanbi2" v-show="filterObj.gender"></i></span>
<span @click="delFilter($event, 'special', item)" v-for="(item, index) in filterObj.specialactive" :key="index">{{ item.name }}<i class="iconfont icon-guanbi2"></i></span>
<i v-show="showDotted" style="line-height: 24px">...</i>
</span>
</span>
@ -330,8 +257,7 @@
}}<i
class="iconfont icon-sousuoxiala"
:style="{
transform:
filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
transform: filterStatus == 0 ? 'rotate(180deg) scale(.6)' : '',
}"
></i
></span>
@ -405,12 +331,7 @@
<dl>
<dt>性别</dt>
<dd @click="searchGender">
<span
:style="{ color: filterObj.gender == '男' ? '#ff4400' : '' }"
></span
><span
:style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }"
></span
<span :style="{ color: filterObj.gender == '男' ? '#ff4400' : '' }"></span><span :style="{ color: filterObj.gender == '女' ? '#ff4400' : '' }"></span
><span
:style="{
color: filterObj.gender == '男女不限' ? '#ff4400' : '',
@ -426,8 +347,7 @@
v-for="(item, index) in tagArray1"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -441,8 +361,7 @@
v-for="(item, index) in tagArray3"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -456,8 +375,7 @@
v-for="(item, index) in tagArray0"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -471,8 +389,7 @@
v-for="(item, index) in tagArray4"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -486,8 +403,7 @@
v-for="(item, index) in tagArray2"
:key="index"
:class="{
'special-active':
filterObj.specialactive.indexOf(item) > -1,
'special-active': filterObj.specialactive.indexOf(item) > -1,
}"
@click.stop="specialclick(index, item)"
>{{ item.name }}</span
@ -510,13 +426,7 @@
<div v-if="!isspinning">
<div class="subset" v-for="(item, index) in jobMainList" :key="index">
<router-link
target="_blank"
:to="
'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum
"
rel="opener"
>
<router-link target="_blank" :to="'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum" rel="opener">
<div class="subsetleft" @click="totop">
<div class="imgbox">
<img v-if="item.logo.length !== 0" :src="item.logo" />
@ -537,34 +447,18 @@
</div>
<div class="jobtag">
<!-- <span>返费</span> -->
<span
v-for="(item1, index) in item.jobSpecialLabelNames"
:key="index"
>{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"
>暂无特色</span
>
<i class="iconfont icon-ziying" v-if="item.signType == 1" style=""></i>
<span v-for="(item1, index) in item.jobSpecialLabelNames" :key="index">{{ item1 }}</span
><span v-if="item.jobSpecialLabelNames.length == 0"></span>
</div>
<div class="jobpricemonth">
<!-- :style="{ opacity: item.minMonthlyPay ? '1' : '0' }" -->
<span>{{
item.minMonthlyPay ? item.minMonthlyPay : ""
}}</span
>-<span>{{
item.maxMonthlyPay ? item.maxMonthlyPay : ""
}}</span
<span>{{ item.minMonthlyPay ? item.minMonthlyPay : "" }}</span
>-<span>{{ item.maxMonthlyPay ? item.maxMonthlyPay : "" }}</span
>/
</div>
<div
class="jobpricehour"
v-html="
getSalaryClassifyValue(
item.salaryClassify,
item.salaryClassifyValue
)
"
>
<div class="jobpricehour" v-html="getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue)">
<!-- <template v-if="item.hourlyPay"
><span>{{ item.hourlyPay }}</span
>/小时</template
@ -580,10 +474,7 @@
<div class="subsetright">
<div class="topContainer">
<div class="updateTime" style="display: none">
<span
>更新时间{{ item.updateTime || "--" }} (
{{ item.diffTime || "--" }} )
</span>
<span>更新时间{{ item.updateTime || "--" }} ( {{ item.diffTime || "--" }} ) </span>
</div>
<div class="topbox">
<div>服务费</div>
@ -597,22 +488,7 @@
<span v-if="item.jobDesp" :class="'copyInfo' + index">{{ item.jobDesp }}</span
><span v-else></span>
</template> -->
<router-link
target="_blank"
:to="
'/detail?' +
'id=' +
item.id +
'&' +
'page=' +
formvalue.pageNum
"
rel="opener"
>
<button type="primary" class="jobDesp">
更多
</button></router-link
>
<router-link target="_blank" :to="'/detail?' + 'id=' + item.id + '&' + 'page=' + formvalue.pageNum" rel="opener"> <button type="primary" class="jobDesp">更多</button></router-link>
<!-- </a-popover> -->
<button @click="torecord(item)"></button>
@ -622,21 +498,8 @@
</div>
</div>
<div class="pagecontainer">
<a-pagination
:current="+formvalue.pageNum"
:default-current="1"
:defaultPageSize="8"
:total="formvalue.total"
@change="pageChange"
/>
<div class="ant-pagination-options-quick-jumper">
跳至<input
ref="pageinput"
type="text"
@keyup.enter="inputpageChange"
@blur="inputpageChange"
/>
</div>
<a-pagination :current="+formvalue.pageNum" :default-current="1" :defaultPageSize="8" :total="formvalue.total" @change="pageChange" />
<div class="ant-pagination-options-quick-jumper">跳至<input ref="pageinput" type="text" @keyup.enter="inputpageChange" @blur="inputpageChange" /></div>
</div>
</div>
<div class="maincontentright">
@ -684,11 +547,7 @@ import {
getHotStoreApi,
// getCityApi,
} from "../../api/job";
import {
moneyToFixed,
getSalaryClassifyValue,
isNotEmptyCheck,
} from "../../utils/commonUtil";
import { moneyToFixed, getSalaryClassifyValue, isNotEmptyCheck } from "../../utils/commonUtil";
import recommend from "@/components/FirstJob/components/recommend.vue";
import { nationlist } from "../../utils/datalist";
import Clipboard from "clipboard";
@ -751,6 +610,7 @@ export default {
apply: "", // id
filterStatus: 0, //
filterHeight: "", //
signType: 0, // (0,1,2)
tagArray0: [],
tagArray1: [],
tagArray2: [],
@ -988,10 +848,7 @@ export default {
console.log(typeof this.searchValue.trim());
if (this.searchValue.trim() !== "") {
this.formvalue.pageNum = 1;
if (
typeof +this.searchValue.trim() == "number" &&
!isNaN(+this.searchValue.trim())
) {
if (typeof +this.searchValue.trim() == "number" && !isNaN(+this.searchValue.trim())) {
this.formvalue.ageStr = this.searchValue.trim();
} else {
this.formvalue.aliasName = this.searchValue.trim();
@ -1023,16 +880,8 @@ export default {
} else if (e.target.nodeName == "BUTTON") {
console.log(this.minMonthlyPay);
console.log(this.maxMonthlyPay);
if (
this.minMonthlyPay.length != 0 &&
this.maxMonthlyPay.length != 0 &&
typeof +this.minMonthlyPay == "number" &&
typeof +this.maxMonthlyPay == "number" &&
!isNaN(+this.minMonthlyPay) &&
!isNaN(+this.maxMonthlyPay)
) {
this.formvalue.monthlyPayStr =
this.minMonthlyPay + "-" + this.maxMonthlyPay;
if (this.minMonthlyPay.length != 0 && this.maxMonthlyPay.length != 0 && typeof +this.minMonthlyPay == "number" && typeof +this.maxMonthlyPay == "number" && !isNaN(+this.minMonthlyPay) && !isNaN(+this.maxMonthlyPay)) {
this.formvalue.monthlyPayStr = this.minMonthlyPay + "-" + this.maxMonthlyPay;
this.filterObj.price = this.formvalue.monthlyPayStr;
this.getJobList();
}
@ -1073,12 +922,7 @@ export default {
//
getJobSpecial() {
if (isNotEmptyCheck(localStorage.getItem("SPECIALLIST"))) {
if (
new Date(
new Date().getTime() -
JSON.parse(localStorage.getItem("SPECIALLIST")).timestamp
).getHours() > 2
) {
if (new Date(new Date().getTime() - JSON.parse(localStorage.getItem("SPECIALLIST")).timestamp).getHours() > 2) {
this.getJobSpecialList().then((res) => {
this.specialList = res;
this.specialList.forEach((item) => {
@ -1093,11 +937,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1108,9 +948,7 @@ export default {
});
});
} else {
this.specialList = JSON.parse(
localStorage.getItem("SPECIALLIST")
).data;
this.specialList = JSON.parse(localStorage.getItem("SPECIALLIST")).data;
this.specialList.forEach((item) => {
if (item.typeClassify == "0") {
this.tagArray0.push(item);
@ -1123,11 +961,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1152,11 +986,7 @@ export default {
} else if (item.typeClassify == "4") {
this.tagArray4.push(item);
}
if (
item.name == "大龄工" ||
item.name == "暑假工" ||
item.name == "长白班"
) {
if (item.name == "大龄工" || item.name == "暑假工" || item.name == "长白班") {
this.specialHotTag.push(item);
}
});
@ -1168,6 +998,17 @@ export default {
});
}
},
//
changeTab(e) {
console.log(e.target.dataset.type);
if (e.target.dataset.type != 0) {
this.formvalue.signType = this.signType = e.target.dataset.type;
} else {
this.formvalue.signType = this.signType = "";
}
this.formvalue.pageNum = 1
this.getJobList();
},
async getJobSpecialList() {
const { data } = await getJobSpecialApi();
console.log(data);
@ -1321,10 +1162,7 @@ export default {
this.filterObj.gender = "";
this.formvalue.sex = "";
} else {
this.filterObj.specialactive.splice(
this.filterObj.specialactive.indexOf(items),
1
);
this.filterObj.specialactive.splice(this.filterObj.specialactive.indexOf(items), 1);
this.specialvalue.splice(this.specialvalue.indexOf(items.id), 1);
this.formvalue.jobSpecialLabelIds = this.specialvalue;
@ -2249,6 +2087,29 @@ export default {
width: 944px;
margin-right: 16px;
text-align: left;
position: relative;
.tabBar {
position: absolute;
display: flex;
justify-content: start;
align-items: center;
width: 100%;
top: -40px;
text-align: center;
line-height: 40px;
border-bottom: 2px solid #f40;
z-index: 999;
font-size: 16px;
.tabSubset {
width: 96px;
height: 40px;
cursor: pointer;
&.active {
background-color: #f40;
color: #fff;
}
}
}
.filter {
position: relative;
width: 100%;
@ -2571,13 +2432,21 @@ export default {
line-height: 20px;
}
.jobtag {
display: flex;
margin-top: 10px;
align-items: center;
text-align: left;
// span:first-child {
// color: #ff4400;
// background: rgba(254, 97, 0, 0.1);
// }
i {
margin-right: 8px;
color: #f40;
font-size: 20px;
}
span {
height: 20px;
margin-right: 8px;
line-height: 1;
font-size: 14px;
@ -2768,13 +2637,15 @@ export default {
}
.maincontentright {
width: 240px;
position: relative;
top: -40px;
> div {
margin-bottom: 16px;
border: 1px solid #ededed;
}
.dateinfo {
text-align: center;
overflow: hidden;
// overflow: hidden;
// border-radius: 4px;
border: none;
position: relative;
@ -2784,13 +2655,15 @@ export default {
position: relative;
margin-top: 0;
margin-bottom: 0;
padding-top: 10px;
// padding-top: 10px;
height: 40px;
line-height: 40px;
font-size: 16px;
font-weight: 600;
border-bottom: none;
color: #fff;
background-color: #ff4400;
z-index: 10;
&::after {
left: 0;
// display: none;

@ -24,10 +24,6 @@
id="toAboutBill"
style="height: 84px; width: 1200px; position: absolute; bottom: 0"
></div>
<!-- <div class="bottominfo">
Copyright © 2015 - 2022 Matripe. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index">京ICP备16043923号-9</a>
</div> -->
</div>
<div class="navigationBar" ref="navigationBar" id="navigationBar">
<!-- <ul>
@ -52,10 +48,10 @@
伯才一手单隶属郑州伯才科技有限公司是一个专门服务同业合作伙伴的综合平台一个专门服务代理的平台平台为合作伙伴提供交付全流程的产品和服务是伯才供应链产品矩阵中的旗舰产品平台通过直签联合派遣和战略合作等方式严选上线项目深度介入服务的每一个环节为合作伙伴的顺利交付保驾护航
</p>
<p>
郑州伯才科技有限公司是一家人力资源服务行业数字化平台企业前身为北京矩阵动力科技有限公司项目于2015年5月在郑州启动并于2016年5月在北京正式注册开始公司化运作旗下有人海北京企业管理有限公司江西人海企业管理有限公司等多家企业服务业务公司
郑州伯才科技有限公司的前身为北京矩阵动力科技有限公司项目于2015年5月在郑州启动并于2016年5月在北京正式注册公司开始商业化运作伯才科技旗下有郑州伯才人力资源服务有限公司江西人海企业管理有限公司等多家企业服务业务公司
</p>
<p>
郑州伯才科技有限公司2021年启用全新业务品牌伯才新品牌新里程品牌升级但初心不变伯才团队以崭新的面貌继续全心全意服务老乡成就伙伴
公司2021年启用全新品牌伯才新品牌新里程品牌升级但初心不变伯才团队以崭新的面貌继续全心全意服务老乡成就伙伴
</p>
</div>
</div>
@ -93,7 +89,7 @@
<p>覆盖华东华南华中华北西南西北6大区域</p>
</div>
<div class="right">
<img src="../../../static/img/map.svg" alt="" />
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/map.svg" alt="" />
</div>
</div>
</div>
@ -104,7 +100,7 @@
<div class="content">
<div class="left">
<p>总部地址河南省郑州市郑东新区升龙广场2号楼A座</p>
<p>接待地址河南省郑州市航空港区相州街29-60</p>
<!-- <p>接待地址河南省郑州市航空港区相州街29-60</p> -->
<p>联系电话0371-6611 3723</p>
</div>
<div class="right">
@ -139,7 +135,7 @@
</li>
</ul> -->
<div>
Copyright © 2015 - 2022 Matripe. All Rights Reserved. <i></i>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>
@ -392,7 +388,7 @@ export default {
padding-top: 100px;
// padding-bottom: 96px;
height: 740px;
background: url("../../../static/img/cooperativeBrandBg.png") no-repeat 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/cooperativeBrandBg.png") no-repeat 100%;
.content {
ul {
li {
@ -448,7 +444,7 @@ export default {
justify-content: center;
padding: unset;
height: 445px;
background: url("../../../static/img/relationUsBg.png") no-repeat 100% 100%;
background: url("http://matripe.oss-cn-beijing.aliyuncs.com/yishoudan/relationUsBg.png") no-repeat 100% 100%;
// padding-bottom: 126px;
.content {

@ -19,23 +19,19 @@
<div class="contentbody">
<div class="searchbox">
<div class="searchinput">
<a-input
placeholder="请输入老乡姓名/身份证号"
@keyup.enter="onSearch"
@input="resetsearch"
v-model="pagination.keys"
<a-input placeholder="请输入老乡姓名/身份证号" @keyup.enter="onSearch" @input="resetsearch" v-model="pagination.keys"
><i slot="prefix" class="iconfont icon-sousuo"></i>
<button slot="suffix" @click="onSearch"></button>
</a-input>
</div>
<div class="pagechange">
<button><i class="iconfont icon-fangda"></i> 添加成员</button>
<button @click="showDetail('add')"><i class="iconfont icon-fangda"></i> 添加成员</button>
<!-- <button @click="changepage(1)"></button> -->
</div>
</div>
<a-table
:columns="columns"
:data-source="data"
:data-source="memberList"
:pagination="false"
@change="onChange"
:loading="{
@ -46,73 +42,89 @@
:locale="tablenodata"
:rowKey="(record) => record.index"
>
<a slot="name" slot-scope="text">{{ text }}</a>
<div
slot="setting"
class="setting"
slot-scope="text"
style="color: #f40"
>
<a @click="visible = true">详情</a>
<a>删除</a>
<a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a>
<span slot="userName" slot-scope="text, record"
>{{ text }} <span>{{ record.tel }}</span>
</span>
<div slot="setting" class="setting" slot-scope="text, record" style="color: #f40">
<a @click="showDetail('detail', record)">详情</a>
<a @click="deleteMemeber(record)"></a>
</div>
</a-table>
<div class="pagecontainer">
<a-pagination
:current="+pagination.pageNum"
:default-current="1"
:defaultPageSize="8"
:total="pagination.total"
@change="onChange"
/>
<a-pagination :current="+pagination.pageNum" :default-current="1" :defaultPageSize="8" :total="pagination.total" @change="onChange" />
<div class="ant-pagination-options-quick-jumper">
<span>{{ pagination.total }}</span>跳至<input
ref="pageinput"
type="text"
@keyup.enter="inputpageChange"
@blur="inputpageChange"
/>
<span>{{ pagination.total }}</span>跳至<input ref="pageinput" type="text" @keyup.enter="inputpageChange" @blur="inputpageChange" />
</div>
</div>
</div>
<a-modal
v-model="visible"
:footer="false"
width="640px"
class="detailWindow"
title="成员详情"
>
<a-modal :title="modalTitle" v-model="visible" id="demo" @cancel='modalCancel' width="640px" destroyOnClose class="detailWindow">
<template slot="footer" v-if="modalTitle == '新建成员'">
<button style="background-color: #fff; border-color: #d9d9d9" @click="modalCancel"></button>
<button style="background-color: #f40; color: #fff; border: none; margin-left: 16px; margin-right: 16px" @click="handleSubmit"></button>
</template>
<template slot="footer" v-else>
<span></span>
</template>
<template v-if="modalTitle == '成员详情'">
<a-row>
<a-col :span="4">姓名</a-col>
<a-col :span="20">12312312</a-col>
<a-col :span="18">{{ currentMember.userName }}</a-col>
</a-row>
<a-row>
<a-col :span="4">手机号</a-col>
<a-col :span="20">12312312</a-col>
<a-col :span="18">{{ currentMember.tel }}</a-col>
</a-row>
<a-row>
<!-- <a-row>
<a-col :span="4">登录密码</a-col>
<a-col :span="20">12312312</a-col>
</a-row>
<a-col :span="20">{{ currentMember.userName }}</a-col>
</a-row> -->
<a-row>
<a-col :span="4">角色</a-col>
<a-col :span="20">12312312</a-col>
<a-col :span="18">{{ currentMember.role }}</a-col>
</a-row>
<a-row>
<a-col :span="4">权限</a-col>
<a-col :span="20">12312312</a-col>
<a-col :span="18">{{ currentMember.permission }}</a-col>
</a-row>
</template>
<template v-else>
<a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 16 }">
<a-form-item label="姓名">
<a-input v-decorator="['userName', { rules: [{ required: true, message: '' }] }]" />
</a-form-item>
<a-form-item label="手机号">
<a-input
v-decorator="[
'tel',
{
rules: [
{ required: true, message: '请输入手机号' },
{ type: 'regexp', validator: validateServiceName, message: '请输入正确的手机号' },
],
validateTrigger: 'submit',
},
]"
:max-length="11"
/>
</a-form-item>
<a-form-item label="角色">
<a-radio-group v-decorator="['agencyRole', { rules: [{ required: true, message: '' }] }]" :options="options" @change="groupChange" />
</a-form-item>
<a-row>
<a-col :span="4">权限</a-col>
<a-col :span="16">{{ permissionName }}</a-col>
</a-row>
</a-form>
</template>
</a-modal>
</div>
</template>
<script>
import { userTownsmanApi, gettownsManCountApi } from "../../api/userinfo";
import {
formatDateYMD,
getUserApplyOrderStatusById,
} from "../../utils/commonUtil";
import { getMemberListApi, deleteMemberApi, addMemberApi } from "../../api/userinfo";
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole } from "../../utils/commonUtil";
export default {
//
@ -129,15 +141,14 @@ export default {
emptyText: () => (
<div>
<div>
<img
src="https://user-images.githubusercontent.com/507615/54591670-ac0a0180-4a65-11e9-846c-e55ffce0fe7b.png"
style="width:105px;height:90px;marginTop:20px"
/>
<img src="https://user-images.githubusercontent.com/507615/54591670-ac0a0180-4a65-11e9-846c-e55ffce0fe7b.png" style="width:105px;height:90px;marginTop:20px" />
</div>
<div style="marginBottom:20px">暂无数据</div>
</div>
),
},
form: this.$form.createForm(this),
pagination: {
pageNum: 1,
pageSize: 8,
@ -154,8 +165,17 @@ export default {
num2: 0,
num3: 0,
},
data: [],
memberList: [],
visible: false,
currentMember: {},
modalTitle: "新建成员",
options: [
// { label: "", value: "1" },
{ label: "管理员", value: "2" },
{ label: "成员", value: "3" },
],
permissionName: "查看职位,报名,查看报名,查看老乡,修改密码,修改手机号",
permission: "job:list,apply:add,apply:list,apply:user,user:pwd,user:tel",
};
},
//
@ -177,20 +197,20 @@ export default {
title: "姓名",
dataIndex: "userName",
key: "userName",
scopedSlots: { customRender: "userName" },
ellipsis: true,
width: 200,
},
{
title: "角色",
dataIndex: "age",
key: "age",
ellipsis: true,
dataIndex: "role",
key: "role",
width: 100,
},
{
title: "权限",
dataIndex: "nation",
key: "nation",
dataIndex: "permission",
key: "permission",
ellipsis: true,
},
{
@ -216,14 +236,15 @@ export default {
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
this.getTownsman();
// this.getMemberList();
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
this.gettownsManCount();
this.getMemberList();
window.modalCancel = this.modalCancel;
},
//
methods: {
@ -233,7 +254,7 @@ export default {
console.log(e2);
if (typeof e == "number") {
this.pagination.pageNum = e;
this.getTownsman();
this.getMemberList();
}
},
inputpageChange(e) {
@ -249,29 +270,34 @@ export default {
this.pagination.pageNum = 1;
}
// this.getJobList();
this.getTownsman();
this.getMemberList();
console.log(e);
},
async getTownsman() {
async getMemberList() {
// let jobinfo = {...this.pagination , searchTag:1}
try {
this.isspinning = true;
console.log(this.pagination);
const { data } = await userTownsmanApi(this.pagination);
const { data } = await getMemberListApi(this.pagination);
console.log(data);
if (data.status === 200) {
// console.log();
this.data = data.data.recordList;
this.data.forEach((item, index) => {
// console.log(item);
item.userApplyOrder = getUserApplyOrderStatusById(
item.userApplyOrderStatus
);
item.updateTime = formatDateYMD(item.updateTime);
item.index = index + 1;
this.memberList = data.data.recordList;
this.memberList.forEach((item) => {
console.log(item);
item.role = getAgencyRoleTypeById(item.agencyRole);
item.permission = getAgencyPermissionNameById(item.agencyPermissions);
});
console.log(data);
console.log(true);
// this.data.forEach((item, index) => {
// // console.log(item);
// item.userApplyOrder = getUserApplyOrderStatusById(
// item.userApplyOrderStatus
// );
// item.updateTime = formatDateYMD(item.updateTime);
// item.index = index + 1;
// });
// console.log(data);
// console.log(true);
this.pagination.total = data.data.recordCount;
}
} catch (error) {
@ -279,18 +305,6 @@ export default {
}
this.isspinning = false;
},
async gettownsManCount() {
try {
const { data } = await gettownsManCountApi(this.pagination);
console.log(data);
if (data.status == 200) {
console.log("yes");
this.statusNum = data.data;
}
} catch (error) {
console.log(error);
}
},
getPopupContainer(el, dialogContext) {
console.log(el);
console.log(dialogContext);
@ -309,38 +323,110 @@ export default {
// status: this.pagination.status,
// keys: null,
// };
this.gettownsManCount();
this.getTownsman();
},
resetsearch(e) {
console.log(e);
if (e.target.value.length === 0) {
this.pagination.keys = "";
this.gettownsManCount();
this.getTownsman();
this.getMemberList();
}
},
onSearch() {
if (this.pagination.keys != null && this.pagination.keys.length != 0) {
this.getTownsman();
this.gettownsManCount();
this.getMemberList();
}
},
// changepage(num) {
// console.log(Math.ceil(this.pagination.total / this.pagination.pageSize));
// if ((this.pagination.pageNum === 1 && num === -1) || (this.pagination.pageNum === Math.ceil(this.pagination.total / this.pagination.pageSize) && num === 1)) {
// if (num === -1) {
// this.$message.warning("");
// } else {
// this.$message.warning("");
// }
// return;
// } else {
// this.pagination.pageNum += num;
showDetail(type, e) {
console.log(e);
let that = this;
if (type == "detail") {
this.currentMember = e;
this.modalTitle = "成员详情";
this.visible = true;
} else {
this.modalTitle = "新建成员";
this.visible = true;
this.$nextTick(() => {
console.log(123);
that.form.setFieldsValue({
agencyRole: "1",
});
});
}
},
deleteMemeber(e) {
this.$confirm({
title: "确定删除",
content: "是否确定删除该成员",
onOk: async () => {
console.log("ok");
let data = await deleteMemberApi({ id: e.id });
console.log(data);
if (data.status == 200) {
this.getMemberList();
}
},
onCancel: () => {
console.log("cancel");
},
});
},
modalCancel() {
// console.log(this);
this.visible = false;
this.permission = getAgencyPermissionsByRole(1);
this.permissionName = getAgencyPermissionNameById(this.permission);
},
handleSubmit() {
console.log("issubmit");
this.form.validateFields(async (err) => {
console.log(err);
if (err == null) {
console.log(this.form.getFieldsValue());
try {
let { data } = await addMemberApi({ ...this.form.getFieldsValue(), agencyPermissions: this.permission });
console.log(data);
if (data.status == 200) {
this.$message.success("新建成功");
this.visible = false;
this.permission = getAgencyPermissionsByRole(1);
this.permissionName = getAgencyPermissionNameById(this.permission);
this.getMemberList();
}
} catch (error) {
console.log(error);
}
}
});
},
groupChange(e) {
console.log(e);
this.form.setFieldsValue({
agencyRole: e.target.value,
});
this.permission;
if (this.form.getFieldValue("agencyRole") == 1) {
this.permission = getAgencyPermissionsByRole(1);
} else {
this.permission = getAgencyPermissionsByRole(2);
}
console.log(this.permission);
this.permissionName = getAgencyPermissionNameById(this.permission);
},
validateServiceName(rule, value, callback) {
console.log(rule);
console.log(value);
console.log(callback);
let reg = /^1[3|4|5|7|8][0-9]{9}$/;
// if(value.length == 11){
if (!reg.test(value)) {
callback(new Error());
} else {
callback();
}
// }
// this.getTownsman();
// },
},
},
};
</script>
@ -582,13 +668,35 @@ export default {
.ant-modal-body {
padding-left: 100px;
min-height: 318px;
.ant-form-item {
margin-bottom: 12px;
// .ant-form-item-control-wrapper{
// margin-bottom: 16px;
// }
}
.ant-form-item-control {
line-height: 32px;
}
.ant-row {
line-height: 30px;
.ant-col:first-child {
text-align: right;
}
}
}
.ant-modal-footer {
padding: 0;
button {
outline: none;
width: 60px;
height: 32px;
font-size: 14px;
border: 1px solid #fff;
border-radius: 5px;
margin: 10px 0;
}
}
}
}
</style>

@ -14,11 +14,13 @@ const routes = [
path: "/main",
name: "Main",
component: () => import("../components/main/index.vue"),
// component: resolve => require(['../components/main/index.vue'],resolve)
},
{
path: "/list",
name: "JobList",
component: () => import("../components/FirstJob/joblist.vue"),
// component: resolve => require(['../components/FirstJob/joblist.vue'],resolve)
},
{
path: "/list1",
@ -30,14 +32,14 @@ const routes = [
name: "Detail",
component: () => import("../components/FirstJob/detail.vue"),
},
{
path: "/serviceoutlets",
name: "serviceoutlets",
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import("../components/ServiceOutlets/index.vue"),
},
// {
// path: "/serviceoutlets",
// name: "serviceoutlets",
// // route level code-splitting
// // this generates a separate chunk (about.[hash].js) for this route
// // which is lazy-loaded when the route is visited.
// component: () => import("../components/ServiceOutlets/index.vue"),
// },
{
path: "/aboutus",
name: "aboutus",
@ -99,11 +101,14 @@ const routes = [
name: "mybill",
component: () =>
import("../components/userinfo/usercenter/components/mybill.vue"),
// component: resolve => require(['../components/userinfo/usercenter/components/mybill.vue'],resolve)
},
{
path: "memberInfo",
name: "memberinfo",
component: () => import("../components/memberInfo/memberInfo.vue"),
// component: resolve => require(['../components/memberInfo/memberInfo.vue'],resolve)
},
{
path: "accountsetting",

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/font_3135652_tzuybmnhq2.css";
@import "http://at.alicdn.com/t/c/font_3135652_malbnqa0h0e.css";
// 初始化页面样式
body,
h1,

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/font_3135652_tzuybmnhq2.css";
@import "http://at.alicdn.com/t/c/font_3135652_malbnqa0h0e.css";
body,
h1,
h2,

@ -1689,3 +1689,76 @@ export function getAgeFromBirthday(bir) {
infoObj.age = returnAge;
return infoObj; //返回周岁年龄
}
/**
* 代理成员角色类型
*/
export function agencyRoleTypeArray() {
let workTypeArray = [
{ id: 1, name: '创建人', value: "1", text: "创建人", checked: false },
{ id: 2, name: '管理员', value: "2", text: "管理员", checked: false },
{ id: 3, name: '成员', value: "3", text: "成员", checked: false },
];
return workTypeArray;
}
/**
* 根据代理成员角色ID获取名称
*/
export function getAgencyRoleTypeById(id) {
let str = "";
let array = agencyRoleTypeArray();
array.forEach(item => {
if (item.id == id) {
str = item.name;
}
});
return str;
}
/**
* 代理成员权限
*/
export function agencyPermissionArray() {
//查看职位、报名、查看报名、查看老乡、修改密码、修改手机号、新增成员、修改成员信息、删除成员
let workTypeArray = [
{ id: 1, name: '查看职位', value: "job:list", text: "查看职位", checked: false },
{ id: 2, name: '报名', value: "apply:add", text: "报名", checked: false },
{ id: 3, name: '查看报名', value: "apply:list", text: "查看报名", checked: false },
{ id: 4, name: '查看老乡', value: "apply:user", text: "查看老乡", checked: false },
{ id: 5, name: '修改密码', value: "user:pwd", text: "修改密码", checked: false },
{ id: 6, name: '修改手机号', value: "user:tel", text: "修改手机号", checked: false },
{ id: 7, name: '新增成员', value: "user:add", text: "新增成员", checked: false },
{ id: 8, name: '修改成员信息', value: "user:update", text: "修改成员信息", checked: false },
{ id: 9, name: '删除成员', value: "user:del", text: "删除成员", checked: false },
];
return workTypeArray;
}
/**
* 根据代理权限ID获取名称
*/
export function getAgencyPermissionNameById(permissionStr) {
let str = "";
let array = agencyPermissionArray();
let names = [];
let permissions = permissionStr.split(",");
array.forEach(item => {
if (permissions.indexOf(item.value) >= 0) {
names.push(item.name);
}
});
return names.join("");
}
/**
* 根据代理角色获取权限
*/
export function getAgencyPermissionsByRole(role) {
if(role == 1) {
return "job:list,apply:add,apply:list,apply:user,user:pwd,user:tel,user:add,user:update,user:del";
} else {
return "job:list,apply:add,apply:list,apply:user,user:pwd,user:tel";
}
}

@ -13,8 +13,8 @@ console.log(baseURL);
axios.defaults.withCredentials = true; //添加这行代码
// console.log(axios);
const service = axios.create({
baseURL: "/api_prod", // url = base url + request url
// baseURL: baseURL, // baseURL: "/api", // url = base url + request url
// baseURL: "/api_prod", // url = base url + request url
baseURL: baseURL, // baseURL: "/api", // url = base url + request url
withCredentials: true, // send cookies when cross-domain requests
timeout: 10000, // request timeout
crossDomain: true,

@ -211,7 +211,7 @@
</li>
</ul> -->
<div>
Copyright © 2015 - 2022 Matripe. All Rights Reserved. <i></i>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>

@ -167,7 +167,7 @@
</li>
</ul> -->
<div>
Copyright © 2015 - 2022 Matripe. All Rights Reserved. <i></i>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>京ICP备16043923号-9</a
>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 870 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

@ -1,7 +1,9 @@
"use strict";
const path = require("path");
const defaultSettings = require("./src/settings.js");
// const webpack = require("webpack");
// const CompressionPlugin = require("compression-webpack-plugin");
// const zlib = require("zlib");
function resolve(dir) {
return path.join(__dirname, dir);
}
@ -79,6 +81,11 @@ module.exports = {
},
// before: require('./mock/mock-server.js')
},
chainWebpack: (config) => {
config.plugins.delete("fork-ts-checker"), // 禁用fork-ts-checker
config.plugins.delete("prefetch");
},
configureWebpack: {
// provide the app's title in webpack's name field, so that
// it can be accessed in index.html to inject the correct title.
@ -87,6 +94,52 @@ module.exports = {
resolve: {
alias: {
"@": resolve("src"),
'@ant-design/icons/lib/dist.$': resolve('src/icons.js')
},
},
// plugins: [
// new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
// // 下面两项配置才是 compression-webpack-plugin 压缩配置
// // 压缩成 .gz 文件
// new CompressionPlugin({
// filename: '[path][base].gz',
// algorithm: 'gzip',
// test: /\.js$|\.css$|\.html$/,
// threshold: 10240,
// minRatio: 0.8
// }),
// // 压缩成 .br 文件,如果 zlib 报错无法解决,可以注释这段使用代码,一般本地没问题,需要注意线上服务器会可能发生找不到 zlib 的情况。
// new CompressionPlugin({
// filename: '[path][base].br',
// algorithm: 'brotliCompress',
// test: /\.(js|css|html|svg)$/,
// compressionOptions: {
// params: {
// [zlib.constants.BROTLI_PARAM_QUALITY]: 11
// }
// },
// threshold: 10240,
// minRatio: 0.8
// })
// ],
// },
optimization: {
runtimeChunk: "single",
splitChunks: {
chunks: "all",
maxInitialRequests: Infinity,
minSize: 20000,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name(module) {
// get the name. E.g. node_modules/packageName/not/this/part.js
// or node_modules/packageName
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
// npm package names are URL-safe, but some servers don't like @ symbols
return `npm.${packageName.replace("@", "")}`;
},
},
},
},
},
@ -162,4 +215,5 @@ module.exports = {
// }
// )
// }
},
};

17143
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save