Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2fabc9000 | ||
|
|
45fcff178b | ||
|
|
e13fae93ef | ||
|
|
6f99dd70f9 | ||
|
|
a5d7b03002 | ||
|
|
a6bdf2e5cf | ||
|
|
4be04917c0 | ||
|
|
eb96014379 | ||
|
|
c9167aac36 | ||
|
|
cbf8b81775 | ||
|
|
128a85a994 | ||
|
|
4fdcbd3f38 | ||
|
|
6653360f0b | ||
|
|
195ceb284d | ||
|
|
36a0f6634f | ||
|
|
e970733bd0 | ||
|
|
255c80eaab | ||
|
|
9da9263693 | ||
|
|
42534ac881 | ||
|
|
5e0154261c | ||
|
|
7a35c32284 | ||
|
|
02359f2877 | ||
|
|
22b9e68e17 | ||
| bb9f8080cc | |||
|
|
7d5049f64a | ||
|
|
915189d8af | ||
|
|
516ce1c9ee | ||
|
|
31d259b313 | ||
|
|
5f4363ce89 | ||
|
|
26dca7884c | ||
|
|
48af499b2f | ||
|
|
1628473959 | ||
|
|
c839003715 |
@@ -1,3 +1,5 @@
|
||||
VUE_APP_SITE='default'
|
||||
VUE_APP_LOGIN_ERROR = http://10.160.7.216:9920/casserver/login
|
||||
VUE_APP_REPLACE_STR = {"{oss_file_url}": "http://10.165.0.173:8000", "https://dy12333.org.cn/api/jobslink-api/front/file": "http://10.165.0.173:8000/jobslink-api/front/file"}
|
||||
VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.173/manage/login&stService=http%3A%2F%2F10.165.0.173%2Fmanage%2Flogin
|
||||
VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
VUE_APP_SITE='hengshui'
|
||||
@@ -1,3 +1,5 @@
|
||||
VUE_APP_SITE='default'
|
||||
VUE_APP_LOGIN_ERROR = http://10.160.7.216:9920/casserver/login
|
||||
VUE_APP_REPLACE_STR = {"{oss_file_url}": "http://10.165.0.173:8000", "https://dy12333.org.cn/api/jobslink-api/front/file": "http://10.165.0.173:8000/jobslink-api/front/file"}
|
||||
VUE_APP_REPLACE_STR = {"{oss_file_url}": "http://10.165.0.173:8000", "https://dy12333.org.cn/api/jobslink-api/front/file": "http://10.165.0.77:8000/jobslink-api/front/file"}
|
||||
VUE_APP_LOGIN_NEXT = http://10.160.7.216:9920/casserver/login?service=http://10.165.0.54:8300/manage/login&stService=http%3A%2F%2F10.165.0.54%3A8300%2Fmanage%2Flogin
|
||||
VUE_APP_SUPPER_MAP = http://10.165.0.44:1205/proxy/rest/maps/c02c6f51f3ab4190bffd5e3e54cf5ac4/111013e9067749488d44841208771768
|
||||
|
||||
@@ -9,9 +9,10 @@ module.exports = {
|
||||
],
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
"no-unused-vars": ["error", {"vars": "local", "args": "none"}]
|
||||
},
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2464
package-lock.json
generated
2464
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -4,9 +4,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"serve-hengshui": "vue-cli-service serve --mode hengshui",
|
||||
"build": "vue-cli-service build",
|
||||
"build-hengshui": "vue-cli-service build --mode hengshui",
|
||||
"lint": "vue-cli-service lint",
|
||||
"analyz": "npm_config_report=true npm run build",
|
||||
"test:unit": "vue-cli-service test:unit",
|
||||
@@ -14,6 +12,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@smallwei/avue": "2.6.10",
|
||||
"@supermap/iclient-ol": "^11.1.1",
|
||||
"avue-plugin-ueditor": "^0.0.10",
|
||||
"axios": "^0.18.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
@@ -40,6 +39,7 @@
|
||||
"xlsx": "^0.16.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@supermap/babel-plugin-import": "0.0.1",
|
||||
"@vue/cli-plugin-babel": "^3.1.1",
|
||||
"@vue/cli-plugin-eslint": "^3.1.5",
|
||||
"@vue/cli-service": "^3.1.4",
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/element-ui/2.12.0/theme-chalk/index.css">
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/animate/3.5.2/animate.css">
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/1.0.0/index.css">
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>resource/font/font_567566_pwc3oottzol.css"></link>
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>resource/font/font_1066523_6bvkeuqao36.css"></link>
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>resource/font/font_1939523_a2ybsew93wu.css"></link>
|
||||
<link rel="icon" href="">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title>德阳市智慧就业服务平台</title>
|
||||
<style>
|
||||
html,
|
||||
@@ -51,7 +51,7 @@
|
||||
padding: 1em 0;
|
||||
}
|
||||
|
||||
.avue-home__footer>a {
|
||||
.avue-home__footer > a {
|
||||
font-size: 12px;
|
||||
color: #ABABAB;
|
||||
text-decoration: none;
|
||||
@@ -77,38 +77,38 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>
|
||||
请启用浏览器的 JavaScript 然后继续。
|
||||
</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="avue-home">
|
||||
<div class="avue-home__main">
|
||||
<!-- <img class="avue-home__loading" src="/manage/svg/loading-spin.svg" alt="loading"> -->
|
||||
<div class="avue-home__title">
|
||||
正在加载,请耐心等待...
|
||||
</div>
|
||||
</div>
|
||||
<div class="avue-home__footer">
|
||||
<noscript>
|
||||
<strong>
|
||||
请启用浏览器的 JavaScript 然后继续。
|
||||
</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="avue-home">
|
||||
<div class="avue-home__main">
|
||||
<!-- <img class="avue-home__loading" src="/manage/svg/loading-spin.svg" alt="loading"> -->
|
||||
<div class="avue-home__title">
|
||||
正在加载,请耐心等待...
|
||||
</div>
|
||||
</div>
|
||||
<div class="avue-home__footer">
|
||||
</div>
|
||||
</div>
|
||||
<script src="<%= BASE_URL %>cdn/tinymce5.6.2/tinymce.min.js"></script>
|
||||
<!-- built files will be auto injected -->
|
||||
<script src="<%= BASE_URL %>util/aes.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vue/2.6.10/vue.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vuex/3.1.1/vuex.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vue-router/3.0.1/vue-router.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/axios/1.0.0/axios.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/element-ui/2.12.0/index.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
|
||||
<script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
|
||||
</div>
|
||||
<script src="<%= BASE_URL %>cdn/tinymce5.6.2/tinymce.min.js"></script>
|
||||
<!-- built files will be auto injected -->
|
||||
<script src="<%= BASE_URL %>util/aes.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vue/2.6.10/vue.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vuex/3.1.1/vuex.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/vue-router/3.0.1/vue-router.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/axios/1.0.0/axios.min.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/element-ui/2.12.0/index.js" charset="utf-8"></script>
|
||||
<script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
|
||||
<script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
|
||||
<!-- <script src="//map.qq.com/api/js?v=2.exp&key=FW3BZ-6JTK6-GCUS5-MZCRR-3GPR5-HJFEI"></script>-->
|
||||
<!-- <script src="//3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js"></script>-->
|
||||
|
||||
<script defer src="//map.qq.com/api/js?v=2.exp&key=FW3BZ-6JTK6-GCUS5-MZCRR-3GPR5-HJFEI"></script>
|
||||
<script defer src="<%= BASE_URL %>resource/geolocation.min.js"></script>
|
||||
<!--<script defer src="//map.qq.com/api/js?v=2.exp&key=FW3BZ-6JTK6-GCUS5-MZCRR-3GPR5-HJFEI"></script>-->
|
||||
<!--<script defer src="<%= BASE_URL %>resource/geolocation.min.js"></script>-->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
10
src/api/tenant/personnelserve.js
Normal file
10
src/api/tenant/personnelserve.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from "@/router/axios";
|
||||
|
||||
/*获取人才列表*/
|
||||
export const getList = (current, size, params, groupId) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/list",
|
||||
method: "get",
|
||||
params: {...params, current, size, groupId}
|
||||
});
|
||||
};
|
||||
@@ -5,7 +5,7 @@ export const getList = (current, size, params, groupId) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/list",
|
||||
method: "get",
|
||||
params: { ...params, current, size, groupId }
|
||||
params: {...params, current, size, groupId}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -14,7 +14,7 @@ export const getUserList = (current, size, params, groupId) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/user/list",
|
||||
method: "get",
|
||||
params: { ...params, current, size, groupId }
|
||||
params: {...params, current, size, groupId}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -41,7 +41,7 @@ export const remove = ids => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/remove",
|
||||
method: "post",
|
||||
params: { ids }
|
||||
params: {ids}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -50,7 +50,7 @@ export const detail = id => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/detail",
|
||||
method: "get",
|
||||
params: { id }
|
||||
params: {id}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -104,7 +104,7 @@ export const removeDept = ids => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/group/remove",
|
||||
method: "post",
|
||||
params: { ids }
|
||||
params: {ids}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -113,7 +113,7 @@ export const transferDept = (groupIds, ids) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/serve/updateAllGroup",
|
||||
method: "post",
|
||||
params: { groupIds, ids }
|
||||
params: {groupIds, ids}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -205,11 +205,12 @@ export const getSearchAll = params =>
|
||||
method: "get",
|
||||
params: params
|
||||
});
|
||||
export const getSearchAllByUserId = params =>
|
||||
export const getSearchAllByUserId = (params, body) =>
|
||||
request({
|
||||
url: "/api/jobslink-api/serve/pushSearchList",
|
||||
method: "get",
|
||||
params: params
|
||||
method: "post",
|
||||
data: body,
|
||||
params: params,
|
||||
});
|
||||
|
||||
export const pushPolicyUserServe = params =>
|
||||
@@ -233,9 +234,39 @@ export const getListAllTalents = params =>
|
||||
params
|
||||
});
|
||||
|
||||
export const getListUserAllTalents = params =>
|
||||
request({
|
||||
url: "/api/jobslink-api/serve/user/listAllTalents",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
export const getListUserAllTalents = params =>
|
||||
request({
|
||||
url: "/api/jobslink-api/serve/user/listAllTalents",
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
|
||||
export const addServeLog = data =>
|
||||
request({
|
||||
url: "/api/jobslink-api/tenant/mainserveuserlog/save",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
|
||||
export const updateServeLog = data =>
|
||||
request({
|
||||
url: "/api/jobslink-api/tenant/mainserveuserlog/update",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
|
||||
export const removeServeLog = data =>
|
||||
request({
|
||||
url: "/api/jobslink-api/tenant/mainserveuserlog/remove",
|
||||
method: "post",
|
||||
params: data
|
||||
});
|
||||
|
||||
/*服务日志*/
|
||||
export const getMainServeUserLog = params => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/tenant/mainserveuserlog/listUserLog",
|
||||
method: "get",
|
||||
params: params
|
||||
});
|
||||
};
|
||||
|
||||
@@ -112,3 +112,12 @@ export const getDeptMyTree = (params) => {
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export const getDeptAllTree = (params) => {
|
||||
return request({
|
||||
url: '/api/jobslink-api/system/dept/all-tree',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -40,12 +40,15 @@ export default {
|
||||
county: {
|
||||
get() {
|
||||
if (this.value) {
|
||||
return this.value.split(this.splicer);
|
||||
console.log('enum', this.area)
|
||||
console.log('getvalue', this.value.split(this.splicer))
|
||||
return this.value.split(this.splicer).map((item) => item.replace(/\s+/g, ""));
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
},
|
||||
set(val) {
|
||||
console.log('setvalue', val, val.join(this.splicer))
|
||||
this.$emit("input", val.join(this.splicer));
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
<template>
|
||||
<el-cascader
|
||||
:options="area.data"
|
||||
:show-all-levels="showAllLevels"
|
||||
v-model="model"
|
||||
:filterable="filterable"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
:clearable="clearable"
|
||||
></el-cascader>
|
||||
<div>
|
||||
<el-cascader
|
||||
:options="area.data"
|
||||
:show-all-levels="showAllLevels"
|
||||
v-model="model"
|
||||
:filterable="filterable"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
:clearable="clearable"
|
||||
v-if="type !== 'view'"
|
||||
></el-cascader>
|
||||
<div v-else>
|
||||
{{ model2 }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from "vuex";
|
||||
import {mapGetters} from "vuex";
|
||||
|
||||
function getProv(code) {
|
||||
return code.substring(0, 2) + "0000";
|
||||
}
|
||||
|
||||
function getCity(code) {
|
||||
return code.substring(0, 4) + "00";
|
||||
}
|
||||
@@ -25,9 +32,12 @@ export default {
|
||||
value: String,
|
||||
filterable: Boolean,
|
||||
placeholder: String,
|
||||
showAllLevels: { type: Boolean, default: true },
|
||||
showAllLevels: {type: Boolean, default: true},
|
||||
disabled: Boolean,
|
||||
clearable: Boolean,
|
||||
type: {
|
||||
default: 'custom',
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -41,14 +51,14 @@ export default {
|
||||
computed: {
|
||||
...mapGetters(["area"]),
|
||||
prov() {
|
||||
if (this.county) {
|
||||
if (this.county && this.county != -1) {
|
||||
return getProv(this.county);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
city() {
|
||||
if (this.county) {
|
||||
if (this.county && this.county != -1) {
|
||||
return getCity(this.county);
|
||||
} else {
|
||||
return "";
|
||||
@@ -60,6 +70,7 @@ export default {
|
||||
},
|
||||
set(val) {
|
||||
this.$emit("input", val);
|
||||
return val;
|
||||
},
|
||||
},
|
||||
model: {
|
||||
@@ -71,12 +82,20 @@ export default {
|
||||
}
|
||||
},
|
||||
get() {
|
||||
if (this.county) {
|
||||
if (this.county && this.county != -1) {
|
||||
return [this.prov, this.city, this.county];
|
||||
}
|
||||
return null;
|
||||
},
|
||||
},
|
||||
model2: {
|
||||
get() {
|
||||
if (this.county && this.county != -1) {
|
||||
return `${this.area.dic[this.prov].label}-${this.area.dic[this.city].label}-${this.area.dic[this.county].label}`
|
||||
}
|
||||
return null;
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
448
src/components/map/selectLocation2.vue
Normal file
448
src/components/map/selectLocation2.vue
Normal file
@@ -0,0 +1,448 @@
|
||||
<template>
|
||||
<div class="app-content">
|
||||
<el-input
|
||||
v-if="showInput"
|
||||
:placeholder="placeholder"
|
||||
clearable
|
||||
v-model="addressLocation"
|
||||
@input="inputAddress"
|
||||
></el-input>
|
||||
<div class="app-map" id="map" style="width: 100%;height: 300px;"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import 'ol/ol.css';
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import SourceVector from 'ol/source/Vector';
|
||||
import LayerVector from 'ol/layer/Vector';
|
||||
import * as control from 'ol/control';
|
||||
import {
|
||||
toLonLat
|
||||
} from 'ol/proj';
|
||||
import Overlay from 'ol/Overlay';
|
||||
import {
|
||||
toStringHDMS
|
||||
} from 'ol/coordinate';
|
||||
import {
|
||||
Select
|
||||
} from 'ol/interaction'
|
||||
import {
|
||||
GeoJSON
|
||||
} from 'ol/format';
|
||||
import {
|
||||
Style,
|
||||
Circle,
|
||||
Fill,
|
||||
Stroke,
|
||||
Icon,
|
||||
Text
|
||||
} from 'ol/style';
|
||||
import Feature from 'ol/Feature';
|
||||
import {
|
||||
Point,
|
||||
Polygon
|
||||
} from 'ol/geom';
|
||||
import {
|
||||
Logo,
|
||||
TileSuperMapRest,
|
||||
FeatureService,
|
||||
GetFeaturesByGeometryParameters
|
||||
} from '@supermap/iclient-ol';
|
||||
|
||||
const geoJSONParser = new GeoJSON();
|
||||
export default {
|
||||
name: "uMapView",
|
||||
props: {
|
||||
placeholder: String,
|
||||
latitude: {
|
||||
required: false,
|
||||
default: 31.126855,
|
||||
},
|
||||
longitude: {
|
||||
required: false,
|
||||
default: 104.397894,
|
||||
},
|
||||
zoom: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 10,
|
||||
},
|
||||
maxZoom: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 20,
|
||||
},
|
||||
minZoom: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 0,
|
||||
},
|
||||
ScaleZoom: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
MapUrl: { // 瓦片地图URL
|
||||
type: String,
|
||||
required: false,
|
||||
default: process.env.VUE_APP_SUPPER_MAP,
|
||||
},
|
||||
flagTip: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
open: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isCanEdit: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
address: {
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
type: {
|
||||
required: false,
|
||||
default: 'custom',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showInput() {
|
||||
if (this.type === 'view' || this.type === 'select') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 实例化对象
|
||||
map: null,
|
||||
addPointsSource: null,
|
||||
vectorSource: null,
|
||||
vectorSourceIcon: null,
|
||||
vectorLayerIcon: null,
|
||||
selectInteraction: null,
|
||||
helpTooltipElement: null,
|
||||
helpTooltip: null,
|
||||
isclearPoint: null,
|
||||
overlay: null,
|
||||
// 控制参数
|
||||
isShowToolTip: false,
|
||||
addressLocation: ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.initMap()
|
||||
if (this.address) {
|
||||
this.addressLocation = this.address
|
||||
}
|
||||
if (this.flagTip) {
|
||||
this.createHelpTooltip()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
geolocation() {
|
||||
this.longitude = 104.397894;
|
||||
this.latitude = 31.126855;
|
||||
},
|
||||
initMap() {
|
||||
this.map = new Map({
|
||||
target: 'map',
|
||||
controls: control.defaults({
|
||||
attribution: false,
|
||||
zoom: this.ScaleZoom,
|
||||
}),
|
||||
layers: [
|
||||
new TileLayer({ // 使用瓦片
|
||||
source: new TileSuperMapRest({
|
||||
url: this.MapUrl,
|
||||
wrapX: true,
|
||||
}),
|
||||
projection: 'EPSG:4326',
|
||||
}),
|
||||
],
|
||||
view: new View({
|
||||
center: [this.longitude, this.latitude],
|
||||
maxZoom: this.maxZoom,
|
||||
minZoom: this.minZoom,
|
||||
zoom: this.zoom,
|
||||
projection: 'EPSG:4326',
|
||||
})
|
||||
});
|
||||
//添加查询结果图层
|
||||
this.vectorSource = new SourceVector({
|
||||
wrapX: false
|
||||
});
|
||||
const resultLayer = new LayerVector({
|
||||
source: this.vectorSource,
|
||||
});
|
||||
|
||||
//添加点图层
|
||||
this.addPointsSource = new SourceVector({
|
||||
wrapX: false
|
||||
});
|
||||
const addPointsLayer = new LayerVector({
|
||||
source: this.addPointsSource,
|
||||
});
|
||||
this.map.addLayer(addPointsLayer);
|
||||
this.map.addLayer(resultLayer);
|
||||
this.map.on('pointermove', (e) => {
|
||||
if (this.isShowToolTip) {
|
||||
this.helpTooltip.setPosition(undefined);
|
||||
this.helpTooltipElement.classList.add('hidden');
|
||||
}
|
||||
this.$emit('regionchange', e.pixel)
|
||||
});
|
||||
this.ceateMarker([this.longitude, this.latitude])
|
||||
if (this.type !== 'view') {
|
||||
this.map.on('singleclick', (e) => {
|
||||
this.$emit('addAddress', {
|
||||
address: this.addressLocation,
|
||||
lng: e.coordinate[0],
|
||||
lat: e.coordinate[1]
|
||||
})
|
||||
this.ceateMarker(e.coordinate)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// if (this.open) {
|
||||
// this.addFeature([{
|
||||
// id: 1,
|
||||
// latitude: this.latitude,
|
||||
// longitude: this.longitude,
|
||||
// iconPath: mypoint,
|
||||
// title: '我的位置',
|
||||
// width: 20,
|
||||
// height: 20
|
||||
// }])
|
||||
// }
|
||||
|
||||
},
|
||||
addMarker(point) {
|
||||
console.log('point', point)
|
||||
// this.ceateMarker([104.404419, 31.133980])
|
||||
},
|
||||
addFeature(covers) {
|
||||
const features = covers.map((item) => ({
|
||||
type: 'Feature',
|
||||
geometry: {
|
||||
type: 'Point',
|
||||
coordinates: [item.longitude, item.latitude],
|
||||
},
|
||||
properties: {
|
||||
iconPath: item.iconPath,
|
||||
text: item.title,
|
||||
value: JSON.stringify(item),
|
||||
scale: item.id === 1 ? [0.15, 0.15] : [0.1, 0.1]
|
||||
}
|
||||
}))
|
||||
|
||||
this.careateFeature(features)
|
||||
|
||||
},
|
||||
ceateMarker(point) {
|
||||
// 创建一个坐标点
|
||||
const pointed = new Point(point); // 这里的[0, 0]应该替换为您的经度和纬度
|
||||
|
||||
// 创建一个特征
|
||||
const pointFeature = new Feature({
|
||||
geometry: pointed,
|
||||
name: 'My Point'
|
||||
});
|
||||
|
||||
pointFeature.setStyle(new Style({
|
||||
image: new Circle({
|
||||
fill: new Fill({
|
||||
color: [255, 0, 0, 0.5]
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: 'red',
|
||||
width: 2
|
||||
}),
|
||||
radius: 8
|
||||
})
|
||||
}));
|
||||
|
||||
pointFeature.setProperties({
|
||||
POP: 1,
|
||||
CAPITAL: 'test'
|
||||
});
|
||||
this.addPointsSource.clear()
|
||||
// 将特征添加到矢量图层
|
||||
this.addPointsSource.addFeature(pointFeature);
|
||||
// 确保更新地图视图以显示新的标点
|
||||
this.map.getView().fit(this.addPointsSource.getExtent());
|
||||
// // 或者移动视图
|
||||
// _this.map.getView().animate({
|
||||
// duration: 850,
|
||||
// zoom: 5,
|
||||
// center: point,
|
||||
// });
|
||||
|
||||
},
|
||||
careateFeature(result) {
|
||||
if (this.vectorSourceIcon) {
|
||||
this.vectorSourceIcon.clear()
|
||||
const geojsonObject = {
|
||||
type: 'FeatureCollection',
|
||||
features: result,
|
||||
};
|
||||
this.vectorSourceIcon.addFeatures(geoJSONParser.readFeatures(geojsonObject))
|
||||
this.vectorSourceIcon.changed()
|
||||
return
|
||||
}
|
||||
const geojsonObject = {
|
||||
type: 'FeatureCollection',
|
||||
features: result,
|
||||
};
|
||||
// 创建一个图层作为点位
|
||||
this.vectorSourceIcon = new SourceVector({
|
||||
features: geoJSONParser.readFeatures(geojsonObject)
|
||||
});
|
||||
this.vectorLayerIcon = new LayerVector({
|
||||
source: this.vectorSourceIcon,
|
||||
style: feature => {
|
||||
return new Style({
|
||||
image: new Icon({
|
||||
anchor: [0.5, 0.9],
|
||||
scale: feature.get('scale'),
|
||||
src: feature.get('iconPath'),
|
||||
}),
|
||||
text: new Text({
|
||||
text: feature.get('text'),
|
||||
fill: new Fill({
|
||||
color: '#000'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: '#fff',
|
||||
width: 3
|
||||
}),
|
||||
font: 'normal 12px Calibri, sans-serif',
|
||||
textAlign: 'center', // 文本对齐
|
||||
offsetX: 0,
|
||||
offsetY: 15,
|
||||
rotation: 0, // 文本旋转
|
||||
}),
|
||||
});
|
||||
}
|
||||
});
|
||||
this.map.addLayer(this.vectorLayerIcon);
|
||||
this.selectInteraction = new Select({
|
||||
layers: [this.vectorLayerIcon]
|
||||
});
|
||||
this.selectInteraction.on('select', (event) => {
|
||||
const selectedFeatures = event.selected;
|
||||
if (selectedFeatures.length) {
|
||||
const select = selectedFeatures[0].values_
|
||||
this.$emit('markertap', JSON.parse(select.value))
|
||||
// tooltip
|
||||
if (this.flagTip) {
|
||||
const coordinate = selectedFeatures[0].values_.geometry.flatCoordinates;
|
||||
this.helpTooltipElement.innerHTML = select.text;
|
||||
console.log(this.helpTooltip)
|
||||
this.helpTooltip.setPosition(coordinate);
|
||||
this.helpTooltipElement.classList.remove('hidden');
|
||||
this.map.addOverlay(this.helpTooltip);
|
||||
this.isShowToolTip = true
|
||||
}
|
||||
}
|
||||
});
|
||||
this.map.addInteraction(this.selectInteraction);
|
||||
},
|
||||
createHelpTooltip() {
|
||||
this.helpTooltipElement
|
||||
if (this.helpTooltipElement) {
|
||||
this.helpTooltipElement.parentNode.removeChild(this.helpTooltipElement);
|
||||
}
|
||||
this.helpTooltipElement = document.createElement('div');
|
||||
this.helpTooltipElement.className = 'tooltip hidden';
|
||||
this.helpTooltip = new Overlay({
|
||||
element: this.helpTooltipElement,
|
||||
offset: [-30, 20],
|
||||
positioning: 'center-left'
|
||||
});
|
||||
},
|
||||
inputAddress(val) {
|
||||
if (this.type !== 'view') {
|
||||
this.$emit('input', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.app-content {
|
||||
width: 100%;
|
||||
height: fit-content;
|
||||
}
|
||||
|
||||
.editPane {
|
||||
position: absolute;
|
||||
right: 65px;
|
||||
top: 8px;
|
||||
text-align: center;
|
||||
background: #FFF;
|
||||
z-index: 1000;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.ol-popup {
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
-webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
|
||||
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #cccccc;
|
||||
bottom: 12px;
|
||||
left: -50px;
|
||||
min-width: 120px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ol-popup:after,
|
||||
.ol-popup:before {
|
||||
top: 100%;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.ol-popup:after {
|
||||
border-top-color: white;
|
||||
border-width: 10px;
|
||||
left: 48px;
|
||||
margin-left: -10px;
|
||||
}
|
||||
|
||||
.ol-popup:before {
|
||||
border-top-color: #cccccc;
|
||||
border-width: 11px;
|
||||
left: 48px;
|
||||
margin-left: -11px;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
position: relative;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 4px;
|
||||
color: white;
|
||||
padding: 4px 8px;
|
||||
opacity: 0.7;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
@@ -6,19 +6,21 @@
|
||||
:before-close="handleClose"
|
||||
append-to-body>
|
||||
<span>{{ subTitle }}</span>
|
||||
<div class="input_box">
|
||||
<el-input type="textarea" v-model="input" placeholder="请输入内容"></el-input>
|
||||
</div>
|
||||
<div class="kuajie">
|
||||
<div class="kuajie_span" v-for="(item, index) in tips" :key="index" @click="input += item">{{ index + 1 }}:{{
|
||||
item
|
||||
}}
|
||||
<div v-if="status === 1">
|
||||
<div class="input_box">
|
||||
<el-input type="textarea" v-model="input" placeholder="请输入内容"></el-input>
|
||||
</div>
|
||||
<div class="kuajie">
|
||||
<div class="kuajie_span" v-for="(item, index) in tips" :key="index" @click="input += item">{{ index + 1 }}:{{
|
||||
item
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="warning" @click="handleCancel">驳回</el-button>
|
||||
<el-button type="primary" @click="handleConfirm">确 定</el-button>
|
||||
<el-button :type="btnTypes[status]" @click="handleCancel">驳 回</el-button>
|
||||
<el-button type="primary" @click="handleConfirm">通 过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@@ -33,11 +35,18 @@ const classEnum = {
|
||||
largeXX: '146px',
|
||||
largeXXL: '186px',
|
||||
}
|
||||
const btnTypes = {
|
||||
0: 'warning',
|
||||
1: 'danger'
|
||||
}
|
||||
export default {
|
||||
name: "promptDialog",
|
||||
data() {
|
||||
return {
|
||||
btnTypes,
|
||||
input: '',
|
||||
status: 0,
|
||||
btnType: ''
|
||||
}
|
||||
},
|
||||
props: {
|
||||
@@ -63,6 +72,7 @@ export default {
|
||||
visible(val) {
|
||||
if (val) {
|
||||
this.input = ''
|
||||
this.status = 0
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -72,7 +82,11 @@ export default {
|
||||
this.$emit('onClose')
|
||||
},
|
||||
handleCancel() {
|
||||
this.$emit('onCancel', this.input)
|
||||
if (this.status) {
|
||||
this.$emit('onCancel', this.input)
|
||||
} else {
|
||||
this.status = 1
|
||||
}
|
||||
},
|
||||
handleConfirm() {
|
||||
this.$emit('onConfirm', this.input)
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-tooltip v-if="content.length > length" class="item" effect="dark" placement="top-start">
|
||||
<div slot="content">
|
||||
<div v-for="(item, index) in clipStr(content)" :key="index"><div>{{item}}</div></div>
|
||||
<div>
|
||||
<el-tooltip v-if="content.length > length" class="item" effect="dark" placement="top-start">
|
||||
<div slot="content">
|
||||
<div v-for="(item, index) in clipStr(content)" :key="index">
|
||||
<div>{{ item }}</div>
|
||||
</div>
|
||||
<span>{{ content.length > length ? `${content.substring(0, this.length)}...` : content}}</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{content}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<span>{{ content.length > length ? `${content.substring(0, this.length)}...` : content }}</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ content }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "textTooltip",
|
||||
props: {
|
||||
length: { default: 50, required: false },
|
||||
content: { default: '', required: true },
|
||||
empty: { default: '', required: false },
|
||||
tipWidth: { default: 40, required: false },
|
||||
length: {default: 50, required: false},
|
||||
content: {default: '', required: true},
|
||||
empty: {default: '', required: false},
|
||||
tipWidth: {default: 40, required: false},
|
||||
},
|
||||
watch: {
|
||||
content(val) {
|
||||
@@ -27,9 +29,10 @@ export default {
|
||||
methods: {
|
||||
clipStr(str) {
|
||||
const clip = []
|
||||
if(str && str.length > this.tipWidth) {
|
||||
for (let i = 0; i < Math.ceil(str.length / this.tipWidth); i++) {
|
||||
clip.push(str.slice(i * this.tipWidth,i * this.tipWidth + this.tipWidth))
|
||||
const tipWidth = Number(this.tipWidth)
|
||||
if (str && str.length > tipWidth) {
|
||||
for (let i = 0; i < Math.ceil(str.length / tipWidth); i++) {
|
||||
clip.push(str.slice(i * tipWidth, (i * tipWidth) + tipWidth))
|
||||
}
|
||||
return clip
|
||||
}
|
||||
@@ -40,7 +43,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.toolTipImg{
|
||||
.toolTipImg {
|
||||
margin-bottom: -5px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import './styles/common.scss';
|
||||
import './util/directive';
|
||||
import '@smallwei/avue/lib/index.css';
|
||||
import 'element-ui/lib/theme-chalk/display.css';
|
||||
import './util/backTime'
|
||||
|
||||
import * as urls from '@/config/env';
|
||||
import {iconfontUrl, iconfontVersion} from '@/config/env';
|
||||
@@ -22,7 +23,7 @@ import cityLabelCascader from './components/city-cascader/label'
|
||||
import goBack from './components/go-back/main'
|
||||
import tagSelect from './components/tag-select/main'
|
||||
import tooltip from './components/tooltip/index'
|
||||
|
||||
import superMapView from './components/map/selectLocation2';
|
||||
import i18n from './lang' // Internationalization
|
||||
import axios from './router/axios';
|
||||
import router from './router/router';
|
||||
@@ -43,6 +44,7 @@ Vue.component('jl-city-cascader', cityCascader);
|
||||
Vue.component('jl-cityLabel-cascader', cityLabelCascader);
|
||||
Vue.component('tag-select', tagSelect)
|
||||
Vue.component('tool-tip', tooltip)
|
||||
Vue.component('super-map-view', superMapView)
|
||||
// 加载相关url地址
|
||||
Object.keys(urls).forEach(key => {
|
||||
Vue.prototype[key] = urls[key];
|
||||
|
||||
@@ -24,19 +24,11 @@
|
||||
let config;
|
||||
if (process.env.VUE_APP_SITE === "default") {
|
||||
config = {
|
||||
phone: "185-0020-6848(8:30-17:30 周一到周五)",
|
||||
email: "tousu@jilianjituan.com",
|
||||
address: "通州区和平西路486号",
|
||||
gongzhonghao: "/manage/img/cmanage/wx/gzh/default.jpeg",
|
||||
xiaochengxu: "/manage/img/cmanage/wx/xcx/default.jpeg",
|
||||
};
|
||||
} else if (process.env.VUE_APP_SITE === "hengshui") {
|
||||
config = {
|
||||
phone: "0318-8888810(8:30-17:30 周一到周五)",
|
||||
email: "tousu@jilianjituan.com",
|
||||
address: "衡水市桃城区人民西路818号易得电子广场5层",
|
||||
phone: "",
|
||||
email: "",
|
||||
address: "",
|
||||
gongzhonghao: "",
|
||||
xiaochengxu: "/manage/img/cmanage/wx/xcx/hengshui.jpg",
|
||||
xiaochengxu: "",
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -54,14 +54,6 @@ if (process.env.VUE_APP_SITE === "default") {
|
||||
zixun: "德阳市智慧就业服务平台资讯",
|
||||
guanyu: "关于德阳市智慧就业服务平台",
|
||||
};
|
||||
} else if (process.env.VUE_APP_SITE === "hengshui") {
|
||||
config = {
|
||||
logo: "/manage/img/cmanage/logo/hengshui.svg",
|
||||
wxTitle: "小程序",
|
||||
wxImg: "/manage/img/cmanage/wx/xcx/hengshui.jpg",
|
||||
zixun: "平台资讯",
|
||||
guanyu: "关于平台",
|
||||
};
|
||||
}
|
||||
|
||||
export default {
|
||||
|
||||
@@ -56,6 +56,10 @@ import topLang from "@/page/index/top/top-lang";
|
||||
// import { info } from "@/api/system/tenant";
|
||||
import {getCaptcha} from "@/api/user";
|
||||
|
||||
console.log('是否跳转', /(^http)(s?):\/\/([a-z0-9].+)\/manage(\/)?$/i.test(location.href), location.href)
|
||||
if (/(^http)(s?):\/\/([a-z0-9].+)\/manage(\/)?$/i.test(location.href)) {
|
||||
window.location.href = process.env.VUE_APP_LOGIN_NEXT
|
||||
}
|
||||
if (/(\/login\?)(.*)/ig.test(location.href)) {
|
||||
const obj = {}
|
||||
const query = location.href.split('?')[1].replace(/\?/, '').split('&')
|
||||
|
||||
@@ -60,8 +60,12 @@ axios.interceptors.response.use(
|
||||
//如果在白名单里则自行catch逻辑处理
|
||||
if (statusWhiteList.includes(status)) return Promise.reject(res);
|
||||
//如果是401则跳转到登录页面
|
||||
if (status === 401)
|
||||
store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
|
||||
if (status === 401) {
|
||||
store.dispatch('FedLogOut').then(() => {
|
||||
window.location.href = process.env.VUE_APP_LOGIN_NEXT
|
||||
});
|
||||
// store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
|
||||
}
|
||||
// 如果请求为500统一处理
|
||||
const err = new Error(message)
|
||||
err.response = res
|
||||
|
||||
@@ -29,16 +29,29 @@ function format(data) {
|
||||
} else {
|
||||
dic[item.areaId] = node;
|
||||
}
|
||||
node.valueId = node.value
|
||||
node.value = item.areaName
|
||||
const nodeR = {
|
||||
label: item.areaName,
|
||||
value: item.areaName,
|
||||
quickQuery: item.quickQuery,
|
||||
simpleSpelling: item.simpleSpelling,
|
||||
parentId: item.parentId,
|
||||
valueId: item.areaId,
|
||||
};
|
||||
if (labelChild.hasOwnProperty(item.parentId)) {
|
||||
if (!labelChild[item.parentId].children) {
|
||||
labelChild[item.parentId].children = [];
|
||||
}
|
||||
labelChild[item.parentId].children.push(node);
|
||||
labelChild[item.parentId].children.push(nodeR);
|
||||
} else {
|
||||
labelChild[item.parentId] = {children: [node]};
|
||||
labelChild[item.parentId] = {children: [nodeR]};
|
||||
}
|
||||
if (labelChild.hasOwnProperty(item.areaId)) {
|
||||
labelChild[item.areaId].label = item.areaName;
|
||||
labelChild[item.areaId].value = item.areaName;
|
||||
} else {
|
||||
labelChild[item.areaId] = nodeR;
|
||||
}
|
||||
|
||||
});
|
||||
return {data: result, dic, labelData: labelResult};
|
||||
}
|
||||
|
||||
30
src/util/backTime.js
Normal file
30
src/util/backTime.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const MAX_IDLE_TIME = 30 * 60 * 1000;
|
||||
let lastActionTime = new Date();
|
||||
import store from "@/store";
|
||||
import router from "@/router/router";
|
||||
|
||||
function updateLastActionTime() {
|
||||
lastActionTime = new Date();
|
||||
}
|
||||
|
||||
// 定义一个计时器
|
||||
let timeoutId = setTimeout(() => {
|
||||
console.log('用户已经很长时间没有操作了!');
|
||||
backLogOut()
|
||||
}, MAX_IDLE_TIME);
|
||||
|
||||
// 监听页面上任何一个元素的点击事件
|
||||
document.addEventListener('click', () => {
|
||||
updateLastActionTime();
|
||||
clearTimeout(timeoutId);
|
||||
timeoutId = setTimeout(() => {
|
||||
console.log('用户已经很长时间没有操作了!');
|
||||
backLogOut()
|
||||
}, MAX_IDLE_TIME);
|
||||
});
|
||||
|
||||
function backLogOut() {
|
||||
store.dispatch("LogOut").then(() => {
|
||||
router.push({path: "/login"});
|
||||
});
|
||||
}
|
||||
@@ -365,10 +365,7 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 环境区分
|
||||
// jlOrHs: 1 企嘉云 2 衡水
|
||||
// jlOrHs === 1 ? type 根绝所选划分 1(wx/h5):2(主站)
|
||||
// jlOrHs === 2 ? type 根绝所选划分 3(wx/h5):4(主站)
|
||||
|
||||
envType() {
|
||||
var jlOrHs = (this.wxStatus === 'default' || this.wxStatus === 'fangzhen') ? 1 : 2;
|
||||
var type = 1;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<basic-container>
|
||||
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
|
||||
:permission="permissionList" :before-open="beforeOpen" :before-close="beforeClose" :page.sync="page"
|
||||
@row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset"
|
||||
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
|
||||
@refresh-change="refreshChange" @on-load="onLoad" :upload-before="uploadBefore">
|
||||
:permission="permissionList" :before-open="beforeOpen" :before-close="beforeClose" :page.sync="page"
|
||||
@row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset"
|
||||
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
|
||||
@refresh-change="refreshChange" @on-load="onLoad" :upload-before="uploadBefore">
|
||||
<template slot="menuLeft">
|
||||
<!-- <el-button v-if="vaildData(permission.manage_compan_companyList_addUser, false)" size="small"-->
|
||||
<!-- @click.stop="handleAddUser" type="primary" :disabled="selectionList.length === 0">关联账号</el-button>-->
|
||||
<!-- <el-button v-if="vaildData(permission.manage_compan_companyList_addUser, false)" size="small"-->
|
||||
<!-- @click.stop="handleAddUser" type="primary" :disabled="selectionList.length === 0">关联账号</el-button>-->
|
||||
<!-- <el-button v-if="vaildData(permission.manage_compan_companyList_config, false)" size="small"
|
||||
@click.stop="handleConfig" type="primary" :disabled="selectionList.length === 0">服务设置</el-button> -->
|
||||
<!-- <el-button v-if="vaildData(permission.manage_compan_companyList_check, false)" size="small"
|
||||
@@ -16,17 +16,35 @@
|
||||
<template slot="cityIdForm" slot-scope="{ disabled }">
|
||||
<jl-city-cascader :disabled="disabled" v-model="form.cityId"></jl-city-cascader>
|
||||
</template>
|
||||
<template slot="cityId" slot-scope="{ row }">
|
||||
<jl-city-cascader :type="'view'" :disabled="true" v-model="row.cityId"></jl-city-cascader>
|
||||
</template>
|
||||
<template slot="lonForm" slot-scope="{ row }">
|
||||
<super-map-view
|
||||
:isCanEdit="false"
|
||||
@addAddress="changeAddress"
|
||||
:longitude="row.lon <= 0 ? 104.397894 : row.lon"
|
||||
:latitude="row.lat <= 0 ? 31.126855 : row.lat"
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
:type="'select'"
|
||||
></super-map-view>
|
||||
</template>
|
||||
<template slot="companyAddressForm" slot-scope="{ disabled }">
|
||||
<select-map
|
||||
ref="selectMap"
|
||||
@addAddress="addAddress"
|
||||
@addressDel = "addressDel"
|
||||
:isCanEdit="!disabled"
|
||||
:lng="obj.lon"
|
||||
:lat="obj.lat"
|
||||
:address="form.companyAddress"
|
||||
:type="type"
|
||||
></select-map>
|
||||
<!-- <select-map-->
|
||||
<!-- ref="selectMap"-->
|
||||
<!-- @addAddress="addAddress"-->
|
||||
<!-- @addressDel="addressDel"-->
|
||||
<!-- :isCanEdit="!disabled"-->
|
||||
<!-- :lng="obj.lon"-->
|
||||
<!-- :lat="obj.lat"-->
|
||||
<!-- :address="form.companyAddress"-->
|
||||
<!-- :type="type"-->
|
||||
<!-- ></select-map>-->
|
||||
</template>
|
||||
<template slot="authUrlIdImgForm">
|
||||
<el-image style="width: 100px; height: 100px" :src="form.authUrlId" :preview-src-list="[form.authUrlId]">
|
||||
@@ -34,20 +52,20 @@
|
||||
</template>
|
||||
<template slot="identityUrl4IdImgForm">
|
||||
<el-image style="width: 100px; height: 100px" :src="form.identityUrl4Id"
|
||||
:preview-src-list="[form.identityUrl4Id]"></el-image>
|
||||
:preview-src-list="[form.identityUrl4Id]"></el-image>
|
||||
</template>
|
||||
<template slot="identityUrl5IdImgForm">
|
||||
<el-image style="width: 100px; height: 100px" :src="form.identityUrl5Id"
|
||||
:preview-src-list="[form.identityUrl5Id]"></el-image>
|
||||
:preview-src-list="[form.identityUrl5Id]"></el-image>
|
||||
</template>
|
||||
|
||||
<template slot="signSrcUrlForm">
|
||||
<el-image style="width: 100px; height: 100px" :src="form.signSrcUrl"
|
||||
:preview-src-list="[form.signSrcUrl]"></el-image>
|
||||
:preview-src-list="[form.signSrcUrl]"></el-image>
|
||||
</template>
|
||||
<template slot="letterOfAttorneyUrlForm">
|
||||
<el-image style="width: 100px; height: 100px" :src="form.letterOfAttorneyUrl"
|
||||
:preview-src-list="[form.letterOfAttorneyUrl]"></el-image>
|
||||
:preview-src-list="[form.letterOfAttorneyUrl]"></el-image>
|
||||
</template>
|
||||
<template slot="motoleyUrlImgForm">
|
||||
<div v-if="imgList.length > 0">
|
||||
@@ -62,18 +80,19 @@
|
||||
<company-record :data="row"></company-record>
|
||||
</template>
|
||||
<template slot="motoleyUrlForm">
|
||||
<el-upload class="companyList-upload" list-type="picture-card" :auto-upload="true" :file-list="imgList" :limit="5"
|
||||
:action="mutiPutFile" :on-preview="handlePictureCardPreview" :on-exceed="handleImgLimit"
|
||||
:on-success="handleImgSuccess" :on-remove="handleImgRemove" :before-remove="beforeRemove"
|
||||
:before-upload="beforeAvatarUpload">
|
||||
<el-upload class="companyList-upload" list-type="picture-card" :auto-upload="true" :file-list="imgList"
|
||||
:limit="5"
|
||||
:action="mutiPutFile" :on-preview="handlePictureCardPreview" :on-exceed="handleImgLimit"
|
||||
:on-success="handleImgSuccess" :on-remove="handleImgRemove" :before-remove="beforeRemove"
|
||||
:before-upload="beforeAvatarUpload">
|
||||
<i slot="default" class="el-icon-plus avue-upload__icon"></i>
|
||||
</el-upload>
|
||||
</template>
|
||||
<!--服务费-->
|
||||
<template slot="serveCost" slot-scope="{ row }">
|
||||
<span v-if="row.serveCost != -1 && row.serveCost">{{
|
||||
moneyFormat(row.serveCost)
|
||||
}}</span>
|
||||
moneyFormat(row.serveCost)
|
||||
}}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
|
||||
@@ -95,12 +114,13 @@
|
||||
</template> -->
|
||||
|
||||
|
||||
|
||||
<!--保证金状态搜索栏trialOn-->
|
||||
<template slot="trialOnSearch">
|
||||
<el-select v-model="query.trialOn" placeholder="保证金" @change="selectTrailTyepChange">
|
||||
<el-option v-for="(item, index) in bondList" :key="index" :label="item.label" :value="item.value">{{ item.label
|
||||
}}</el-option>
|
||||
<el-option v-for="(item, index) in bondList" :key="index" :label="item.label" :value="item.value">{{
|
||||
item.label
|
||||
}}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</avue-crud>
|
||||
@@ -119,18 +139,18 @@ import {
|
||||
stop,
|
||||
start,
|
||||
} from "@/api/manage/company";
|
||||
import { getStationDic } from "@/api/manage/station";
|
||||
import { getTradeDic } from "@/api/manage/trade";
|
||||
import { mapGetters } from "vuex";
|
||||
import {getStationDic} from "@/api/manage/station";
|
||||
import {getTradeDic} from "@/api/manage/trade";
|
||||
import {mapGetters} from "vuex";
|
||||
import addAccount from "./addAccount";
|
||||
import companyConfig from "./companyConfig";
|
||||
import companyCheck from "./companyCheck";
|
||||
import { putFile } from "@/api/resource/oss";
|
||||
import { check18IdCardNo } from "@/util/validate";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import {putFile} from "@/api/resource/oss";
|
||||
import {check18IdCardNo} from "@/util/validate";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import companyRecord from "./companyRecord";
|
||||
import { companyStatus } from "@/const/company";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {companyStatus} from "@/const/company";
|
||||
|
||||
const accept = [
|
||||
"image/png",
|
||||
"image/jpeg",
|
||||
@@ -140,7 +160,7 @@ const accept = [
|
||||
];
|
||||
|
||||
function getPath(path) {
|
||||
if(path) {
|
||||
if (path) {
|
||||
const arr = path.split(",");
|
||||
return arr[arr.length - 1];
|
||||
}
|
||||
@@ -148,7 +168,7 @@ function getPath(path) {
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { addAccount, companyConfig, companyCheck, companyRecord, SelectMap },
|
||||
components: {addAccount, companyConfig, companyCheck, companyRecord},
|
||||
name: "manage_compan_companyList",
|
||||
data() {
|
||||
const validateTradeId = (rule, value, callback) => {
|
||||
@@ -159,6 +179,7 @@ export default {
|
||||
}
|
||||
}
|
||||
return {
|
||||
type: "",
|
||||
insureTypeList: [//商保下拉框
|
||||
{
|
||||
label: "停用",
|
||||
@@ -196,6 +217,7 @@ export default {
|
||||
},
|
||||
obj: {},
|
||||
data: [],
|
||||
selectJW: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -234,7 +256,7 @@ export default {
|
||||
indexLabel: "序号",
|
||||
selection: true,
|
||||
viewBtn: true,
|
||||
addBtn: true,
|
||||
addBtn: false,
|
||||
editBtn: true,
|
||||
addBtnText: "社区街道登记",
|
||||
addTitle: "新增机构名称",
|
||||
@@ -254,17 +276,15 @@ export default {
|
||||
display: false,
|
||||
},
|
||||
{
|
||||
type: "tree",
|
||||
label: "联系人姓名",
|
||||
display: false,
|
||||
prop: "masterName",
|
||||
},
|
||||
{
|
||||
label: "创建日期",
|
||||
prop: "createTime",
|
||||
type: "datetime",
|
||||
format: "yyyy-MM-dd",
|
||||
label: "地区",
|
||||
display: false,
|
||||
prop: "cityId",
|
||||
slot: true,
|
||||
},
|
||||
],
|
||||
group: [
|
||||
@@ -309,6 +329,7 @@ export default {
|
||||
span: 20,
|
||||
display: true,
|
||||
prop: "cityId",
|
||||
slot: true,
|
||||
formslot: true,
|
||||
rules: [
|
||||
{
|
||||
@@ -332,6 +353,14 @@ export default {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "所在位置",
|
||||
prop: "lon",
|
||||
hide: true,
|
||||
span: 20,
|
||||
display: true,
|
||||
formslot: true,
|
||||
},
|
||||
],
|
||||
}
|
||||
],
|
||||
@@ -346,7 +375,7 @@ export default {
|
||||
this.obj.lon = form.lng;
|
||||
this.form.companyAddress = form.address + (form.title || "");
|
||||
},
|
||||
addressDel(){
|
||||
addressDel() {
|
||||
this.form.companyAddress = this.obj.address = "";
|
||||
},
|
||||
// uploadBefore(file, done, loading) {
|
||||
@@ -431,14 +460,22 @@ export default {
|
||||
}
|
||||
);
|
||||
},
|
||||
changeAddress(val) {
|
||||
this.selectJW = val
|
||||
},
|
||||
rowUpdate(row, index, done, loading) {
|
||||
row.authUrlId = getPath(row.authUrlId);
|
||||
row.identityUrl4Id = getPath(row.identityUrl4Id);
|
||||
row.identityUrl5Id = getPath(row.identityUrl5Id);
|
||||
const copyRow = {...row}
|
||||
if(this.obj.address) {
|
||||
if (this.obj.address) {
|
||||
copyRow.companyAddress = this.obj.address
|
||||
}
|
||||
if (this.selectJW) {
|
||||
const {lng, lat} = this.selectJW
|
||||
copyRow.lon = lng
|
||||
copyRow.lat = lat
|
||||
}
|
||||
update(copyRow).then(
|
||||
() => {
|
||||
this.onLoad(this.page);
|
||||
@@ -458,7 +495,7 @@ export default {
|
||||
rowStop(id) {
|
||||
let h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("p", { style: "color: #F56C6C" }, "一旦终止合作社区街道将无法操作系统"),
|
||||
h("p", {style: "color: #F56C6C"}, "一旦终止合作社区街道将无法操作系统"),
|
||||
"您确定要终止与此公司的合作吗?",
|
||||
{
|
||||
confirmButtonText: "确定",
|
||||
@@ -481,12 +518,13 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
rowStart(id) {
|
||||
let h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("p", { style: "color: #F56C6C" }, "一旦恢复合作社区街道所有账号均可使用"),
|
||||
h("p", {style: "color: #F56C6C"}, "一旦恢复合作社区街道所有账号均可使用"),
|
||||
"您确定要恢复与此公司的合作吗?",
|
||||
{
|
||||
confirmButtonText: "确定",
|
||||
@@ -509,7 +547,8 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
searchReset() {
|
||||
this.query = {};
|
||||
@@ -533,6 +572,7 @@ export default {
|
||||
if (["add", "edit"].includes(type)) {
|
||||
this.imgList = [];
|
||||
this.initData();
|
||||
this.selectJW = null
|
||||
done();
|
||||
}
|
||||
if (["edit", "view"].includes(type)) {
|
||||
@@ -544,7 +584,7 @@ export default {
|
||||
if (this.form.motoleyUrl) {
|
||||
var strList = this.form.motoleyUrl.split(',');
|
||||
for (var i in strList) {
|
||||
this.imgList.push({ url: strList[i] })
|
||||
this.imgList.push({url: strList[i]})
|
||||
}
|
||||
}
|
||||
if (this.form.tradeId == 1) {
|
||||
@@ -588,7 +628,7 @@ export default {
|
||||
},
|
||||
handleImgSuccess(res) {
|
||||
if (res.code == 200) {
|
||||
this.imgList.push({ url: res.data.link });
|
||||
this.imgList.push({url: res.data.link});
|
||||
|
||||
var str = "";
|
||||
for (var i = 0; i < this.imgList.length; i++) {
|
||||
@@ -598,8 +638,7 @@ export default {
|
||||
str = str.substr(0, str.length - 1);
|
||||
}
|
||||
this.form.motoleyUrl = str;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
this.$message.error('上传失败');
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<basic-container>
|
||||
<jl-go-back></jl-go-back>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<avue-form :option="formOption" v-model="form" @submit="handleSubmit" ref="form">
|
||||
<template slot="policyFileUrl">
|
||||
<basic-container>
|
||||
<jl-go-back></jl-go-back>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<avue-form :option="formOption" v-model="form" @submit="handleSubmit" ref="form">
|
||||
<template slot="policyFileUrl">
|
||||
<div class="policyFileUrlWrapper">
|
||||
<div class="uploadWrapperAb">
|
||||
<el-upload
|
||||
@@ -13,270 +13,271 @@
|
||||
:show-file-list="false"
|
||||
:http-request="allUpload"
|
||||
:multiple="false"
|
||||
><el-button size="small" type="primary">点击上传</el-button></el-upload>
|
||||
>
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<avue-input disabled v-model="policyFileUrl" placeholder="点击上传文件"></avue-input>
|
||||
</div>
|
||||
</template>
|
||||
</avue-form>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<Tinymce v-model="form.note" ref="tinymce" style="height: 100%;"></Tinymce>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</basic-container>
|
||||
</template>
|
||||
<script>
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
import { quillEditor } from "vue-quill-editor";
|
||||
|
||||
|
||||
import { addNews, getNewsDetail, editNews } from "@/api/manage/news"
|
||||
import { putFile } from "@/api/resource/oss";
|
||||
import Tinymce from "@/components/Tinymce";
|
||||
import {getClassifyDic} from '@/api/help/article/classify'
|
||||
|
||||
const toolbarItems = [
|
||||
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
|
||||
["blockquote", "code-block"], // 引用 代码块
|
||||
[{ header: 1 }, { header: 2 }], // 1、2 级标题
|
||||
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表
|
||||
[{ script: "sub" }, { script: "super" }], // 上标/下标
|
||||
[{ indent: "-1" }, { indent: "+1" }], // 缩进
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
[{ size: ["small", false, "large", "huge"] }], // 字体大小
|
||||
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
|
||||
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
|
||||
[{ font: [] }], // 字体种类
|
||||
[{ align: [] }], // 对齐方式
|
||||
["clean"], // 清除文本格式
|
||||
["image"], // 链接、图片、视频
|
||||
]
|
||||
export default {
|
||||
components: { quillEditor, Tinymce},
|
||||
props: {
|
||||
id: Number,
|
||||
type: String
|
||||
},
|
||||
mounted() {
|
||||
this.onload()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
policyFileUrl: '',
|
||||
putFile,
|
||||
imageUrl: '',
|
||||
ruleForm: {
|
||||
content: null,
|
||||
},
|
||||
form: {
|
||||
note: ''
|
||||
},
|
||||
description:'',
|
||||
formOption: {
|
||||
// labelWidth:120,
|
||||
column: [
|
||||
{
|
||||
"label": "服务时间",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "createTime",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务时间"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务发起人",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "fromName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务发起人"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务对象",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "toName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务对象"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务主题",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveTheme",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务主题"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务内容",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveContent",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务内容"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "备注1",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "bak1",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入备注1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "政策文件地址",
|
||||
prop: "policyFileUrl",
|
||||
span: 24,
|
||||
labelWidth: 120,
|
||||
hide: true,
|
||||
slot: true,
|
||||
formslot: true,
|
||||
showWordLimit: true,
|
||||
</avue-form>
|
||||
|
||||
},
|
||||
]
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<Tinymce v-model="form.note" ref="tinymce" style="height: 100%;"></Tinymce>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</basic-container>
|
||||
</template>
|
||||
<script>
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
import {quillEditor} from "vue-quill-editor";
|
||||
|
||||
|
||||
import {addNews, getNewsDetail, editNews} from "@/api/manage/news"
|
||||
import {putFile} from "@/api/resource/oss";
|
||||
import Tinymce from "@/components/Tinymce";
|
||||
import {getClassifyDic} from '@/api/help/article/classify'
|
||||
|
||||
const toolbarItems = [
|
||||
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
|
||||
["blockquote", "code-block"], // 引用 代码块
|
||||
[{header: 1}, {header: 2}], // 1、2 级标题
|
||||
[{list: "ordered"}, {list: "bullet"}], // 有序、无序列表
|
||||
[{script: "sub"}, {script: "super"}], // 上标/下标
|
||||
[{indent: "-1"}, {indent: "+1"}], // 缩进
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
[{size: ["small", false, "large", "huge"]}], // 字体大小
|
||||
[{header: [1, 2, 3, 4, 5, 6, false]}], // 标题
|
||||
[{color: []}, {background: []}], // 字体颜色、字体背景颜色
|
||||
[{font: []}], // 字体种类
|
||||
[{align: []}], // 对齐方式
|
||||
["clean"], // 清除文本格式
|
||||
["image"], // 链接、图片、视频
|
||||
]
|
||||
export default {
|
||||
components: {quillEditor, Tinymce},
|
||||
props: {
|
||||
id: Number,
|
||||
type: String
|
||||
},
|
||||
mounted() {
|
||||
this.onload()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
policyFileUrl: '',
|
||||
putFile,
|
||||
imageUrl: '',
|
||||
ruleForm: {
|
||||
content: null,
|
||||
},
|
||||
form: {
|
||||
note: ''
|
||||
},
|
||||
description: '',
|
||||
formOption: {
|
||||
// labelWidth:120,
|
||||
column: [
|
||||
{
|
||||
"label": "服务时间",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "createTime",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务时间"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务发起人",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "fromName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务发起人"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务对象",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "toName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务对象"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务主题",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveTheme",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务主题"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务内容",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveContent",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务内容"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "备注1",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "bak1",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入备注1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "政策文件地址",
|
||||
prop: "policyFileUrl",
|
||||
span: 24,
|
||||
labelWidth: 120,
|
||||
hide: true,
|
||||
slot: true,
|
||||
formslot: true,
|
||||
showWordLimit: true,
|
||||
|
||||
},
|
||||
editorOption: {
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: toolbarItems,
|
||||
handlers: {
|
||||
'image': function (value) {
|
||||
if (value) {
|
||||
document.querySelector('.avatar-uploader input').click()
|
||||
} else {
|
||||
this.quill.format('image', false);
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
editorOption: {
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: toolbarItems,
|
||||
handlers: {
|
||||
'image': function (value) {
|
||||
if (value) {
|
||||
document.querySelector('.avatar-uploader input').click()
|
||||
} else {
|
||||
this.quill.format('image', false);
|
||||
}
|
||||
},//工具菜单栏配置
|
||||
},
|
||||
placeholder: "请在这里编写文章内容", //提示
|
||||
readyOnly: false, //是否只读
|
||||
theme: "snow", //主题 snow/bubble
|
||||
syntax: true, //语法检测
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 值发生变化
|
||||
onEditorChange(editor) {
|
||||
this.content = editor.html;
|
||||
}
|
||||
}
|
||||
},//工具菜单栏配置
|
||||
},
|
||||
handleSubmit(form, done) {
|
||||
// this.form['note'] = this.$refs.tinymce.getContent()
|
||||
|
||||
if(this.form.note.length>64*512){
|
||||
this.$message.error('文章内容不能超过64KB!');
|
||||
done()
|
||||
}
|
||||
else{
|
||||
if (this.type == 'add') {
|
||||
addNews(
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('添加成功');
|
||||
this.$router.go(-1);
|
||||
})
|
||||
}
|
||||
else if (this.type == 'edit') {
|
||||
editNews(
|
||||
this.id,
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('修改成功');
|
||||
done()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
/*上传图片*/
|
||||
handleAvatarSuccess(res) {
|
||||
let quill = this.$refs.QuillEditor.quill
|
||||
let length = quill.getSelection().index;//获取光标所在位置
|
||||
quill.insertEmbed(length, 'image', res.data.link)
|
||||
quill.setSelection(length + 1)//光标后移一位
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
|
||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||
if (!isJPG) {
|
||||
this.$message.error('上传图片格式不正确');
|
||||
}
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传图片大小不能超过 2MB!');
|
||||
}
|
||||
return isJPG && isLt2M;
|
||||
},
|
||||
onload() {
|
||||
if (this.id && this.type == 'edit') {
|
||||
getNewsDetail(this.id).then(res => {
|
||||
this.form = res.data.data;
|
||||
this.description=this.form.description;
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
placeholder: "请在这里编写文章内容", //提示
|
||||
readyOnly: false, //是否只读
|
||||
theme: "snow", //主题 snow/bubble
|
||||
syntax: true, //语法检测
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.avatar-uploader {
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ql-editor {
|
||||
height: 400px;
|
||||
}
|
||||
.policyFileUrlWrapper {
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 值发生变化
|
||||
onEditorChange(editor) {
|
||||
this.content = editor.html;
|
||||
},
|
||||
handleSubmit(form, done) {
|
||||
// this.form['note'] = this.$refs.tinymce.getContent()
|
||||
|
||||
if (this.form.note.length > 64 * 512) {
|
||||
this.$message.error('文章内容不能超过64KB!');
|
||||
done()
|
||||
} else {
|
||||
if (this.type == 'add') {
|
||||
addNews(
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('添加成功');
|
||||
this.$router.go(-1);
|
||||
})
|
||||
} else if (this.type == 'edit') {
|
||||
editNews(
|
||||
this.id,
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('修改成功');
|
||||
done()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
/*上传图片*/
|
||||
handleAvatarSuccess(res) {
|
||||
let quill = this.$refs.QuillEditor.quill
|
||||
let length = quill.getSelection().index;//获取光标所在位置
|
||||
quill.insertEmbed(length, 'image', res.data.link)
|
||||
quill.setSelection(length + 1)//光标后移一位
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
|
||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||
if (!isJPG) {
|
||||
this.$message.error('上传图片格式不正确');
|
||||
}
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传图片大小不能超过 2MB!');
|
||||
}
|
||||
return isJPG && isLt2M;
|
||||
},
|
||||
onload() {
|
||||
if (this.id && this.type == 'edit') {
|
||||
getNewsDetail(this.id).then(res => {
|
||||
this.form = res.data.data;
|
||||
this.description = this.form.description;
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.avatar-uploader {
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ql-editor {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.policyFileUrlWrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -286,5 +287,4 @@
|
||||
z-index: 99;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
</style>
|
||||
|
||||
@@ -71,9 +71,6 @@
|
||||
|
||||
<script>
|
||||
import {
|
||||
getListAllByLabels,
|
||||
getListGroupByLabels,
|
||||
getServeAllPolicyList,
|
||||
getListByids,
|
||||
getSearchAll,
|
||||
getSearchAllByUserId,
|
||||
@@ -117,6 +114,19 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: '姓别',
|
||||
prop: 'aac004',
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入性别",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '身份证',
|
||||
prop: 'idNumber',
|
||||
@@ -124,12 +134,41 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: '手机号',
|
||||
prop: 'telphone',
|
||||
}, {
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
}, {
|
||||
label: "民族",
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入民族",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口性质",
|
||||
prop: "aac009",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入户口性质",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
@@ -137,6 +176,19 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入文化程度",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '个人标签',
|
||||
prop: 'labelsBase',
|
||||
@@ -383,11 +435,12 @@ export default {
|
||||
},
|
||||
async getRightSearchByUserId() {
|
||||
const {currentPage, size} = this.rightPages
|
||||
const ids = this.leftUserSelections.map(item => item.userId).join(',');
|
||||
const idNumbers = this.leftUserSelections.map(item => item.idNumber).join(',');
|
||||
const createTime = Date.now() + 3000
|
||||
this.rightLoading = true
|
||||
let params = {
|
||||
ids, current: currentPage,
|
||||
idNumbers,
|
||||
current: currentPage,
|
||||
size,
|
||||
}
|
||||
let resData = await getSearchAllByUserId(params)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -51,6 +51,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
slot: true,
|
||||
|
||||
@@ -140,7 +140,7 @@ import {
|
||||
detail,
|
||||
getDept,
|
||||
removeDept,
|
||||
upload, getDeptMyTree,
|
||||
upload, getDeptMyTree, getDeptAllTree,
|
||||
} from "@/api/tenant/talents";
|
||||
import {getWorkTypes, getLabelList} from "@/api/tenant/common";
|
||||
import {mapGetters} from "vuex";
|
||||
@@ -196,6 +196,7 @@ export default {
|
||||
obj: {},
|
||||
depTree: [],
|
||||
excelForm: {isCovered: 1},
|
||||
AllTree: [],
|
||||
};
|
||||
},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip},
|
||||
@@ -271,6 +272,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
span: 24,
|
||||
@@ -300,7 +302,7 @@ export default {
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
@@ -340,10 +342,10 @@ export default {
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictValue",
|
||||
},
|
||||
// props: {
|
||||
// label: "dictValue",
|
||||
// value: "dictValue",
|
||||
// },
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
@@ -364,7 +366,7 @@ export default {
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
@@ -391,7 +393,7 @@ export default {
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
@@ -402,6 +404,22 @@ export default {
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入求职意愿", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "期望薪资",
|
||||
prop: "wage",
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入期望薪资", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
// {
|
||||
// label: "经办时间",
|
||||
// prop: "aae036",
|
||||
@@ -473,6 +491,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
slot: true,
|
||||
@@ -578,11 +597,10 @@ export default {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
// let resData = await getDeptMyTree(params)
|
||||
let resData = await getDeptAllTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
console.log(this.depTree)
|
||||
|
||||
}
|
||||
},
|
||||
getWorkTypes() {
|
||||
|
||||
@@ -17,25 +17,25 @@
|
||||
@on-load="onLoad"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
|
||||
</template>
|
||||
<template slot="durationContract" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}—{{format(row.etime)}}</span>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{ moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{ row.belongYear }}-{{ row.belongMonth }}</span>
|
||||
</template>
|
||||
<template slot="durationContract" slot-scope="{row}">
|
||||
<span>{{ format(row.stime) }}—{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="excelBox = true" size="small" type="primary"
|
||||
@@ -45,110 +45,112 @@
|
||||
<!--自定义操作栏-->
|
||||
<div slot="menu" slot-scope="{row}">
|
||||
<el-button type="text" size="mini" @click.stop="calibration(row)"
|
||||
>查看</el-button
|
||||
>查看
|
||||
</el-button
|
||||
>
|
||||
<el-button type="text" size="mini" @click="downloadContract(row)"
|
||||
>下载</el-button
|
||||
>
|
||||
>下载
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
<template slot="menuLeft">
|
||||
<el-button type="primary" size="mini" @click="mutiDown"
|
||||
>批量下载</el-button
|
||||
>
|
||||
>批量下载
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</avue-crud>
|
||||
<!-- 查看详情dialog -->
|
||||
<!-- <check ref="check" v-show="false"></check> -->
|
||||
<!-- <check ref="check" v-show="false"></check> -->
|
||||
<!-- /查看详情dialog -->
|
||||
<el-dialog
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{form.companyName}}</p>
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{ form.companyName }}</p>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
() => {
|
||||
uploading = true;
|
||||
}
|
||||
"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- /查看合同dialog -->
|
||||
<el-dialog
|
||||
title="查看合同"
|
||||
:visible.sync="viewLetterDialog"
|
||||
width="50%"
|
||||
:modal="false"
|
||||
class="view-letter-dialog"
|
||||
>
|
||||
<el-form :model="viewLetterForm" :rules="rules">
|
||||
<el-form-item label="" prop="authUrlId" >
|
||||
<div v-loading="uploading">
|
||||
<img style="width: 100%;"
|
||||
<!-- /查看合同dialog -->
|
||||
<el-dialog
|
||||
title="查看合同"
|
||||
:visible.sync="viewLetterDialog"
|
||||
width="50%"
|
||||
:modal="false"
|
||||
class="view-letter-dialog"
|
||||
>
|
||||
<el-form :model="viewLetterForm" :rules="rules">
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<div v-loading="uploading">
|
||||
<img style="width: 100%;"
|
||||
:src="'data:image/png;base64,'+viewLetterForm.imgStr"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="" >
|
||||
<el-button type="primary" @click="handelDownloadLetter">
|
||||
下载合同
|
||||
</el-button>
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="">
|
||||
<el-button type="primary" @click="handelDownloadLetter">
|
||||
下载合同
|
||||
</el-button>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {excelImportOrder} from "@/api/manage/agentpay";//api
|
||||
import {tenantList,downLetter,mutiDownPdf} from "@/api/manage/econtract";//api
|
||||
import {signSealImg,downloadEsignature,signSeal,signSeals} from "@/api/manage/esignature";//api
|
||||
import {tenantList, downLetter, mutiDownPdf} from "@/api/manage/econtract";//api
|
||||
import {signSealImg, downloadEsignature, signSeal, signSeals} from "@/api/manage/esignature";//api
|
||||
//import Check from "../Dialog/IncomeTaxCheck";//查看详情
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import httpRequest from "./httpRequest";
|
||||
|
||||
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SelectMap,
|
||||
saveButton,
|
||||
// Check
|
||||
},
|
||||
@@ -162,45 +164,45 @@ export default {
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let taxReal=(rule, value, callback)=>{
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
|
||||
let taxReal = (rule, value, callback) => {
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
||||
let reg1 = new RegExp("/[a-z]/i;");
|
||||
if(reg.test(value)){
|
||||
if (reg.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else{
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else {
|
||||
this.btnClickFlag = true;
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
downLetterId:'',//下载合同id
|
||||
viewLetterDialog:false,
|
||||
calibrationDialog:false,
|
||||
downLetterId: '',//下载合同id
|
||||
viewLetterDialog: false,
|
||||
calibrationDialog: false,
|
||||
excelBox: false,
|
||||
excelForm: {},
|
||||
imageUrl: "/img/scimg.png",
|
||||
imgFile:'',
|
||||
btnClickFlag:false,
|
||||
imgFile: '',
|
||||
btnClickFlag: false,
|
||||
formLabelWidth: '120px',
|
||||
form:{
|
||||
num:30,
|
||||
form: {
|
||||
num: 30,
|
||||
},
|
||||
viewLetterForm:{imgStr:''},
|
||||
viewLetterForm: {imgStr: ''},
|
||||
rules: {
|
||||
taxReal: [
|
||||
{ validator: taxReal , trigger: ['blur', 'change'] },
|
||||
],
|
||||
taxReal: [
|
||||
{validator: taxReal, trigger: ['blur', 'change']},
|
||||
],
|
||||
},
|
||||
formSubmit:{
|
||||
id:111,
|
||||
taxReal:111,
|
||||
formSubmit: {
|
||||
id: 111,
|
||||
taxReal: 111,
|
||||
},
|
||||
ceNum:0,
|
||||
taxReal:0,
|
||||
ceNum: 0,
|
||||
taxReal: 0,
|
||||
// status: 1,
|
||||
selectionList: [],
|
||||
viewDrawer: false,
|
||||
@@ -218,13 +220,13 @@ export default {
|
||||
},
|
||||
data: [],
|
||||
obj: {},
|
||||
missionNo:'',
|
||||
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
missionNo: '',
|
||||
leibie: 'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
watch: {
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
// ids () {
|
||||
@@ -241,7 +243,7 @@ export default {
|
||||
});
|
||||
return ids;
|
||||
},
|
||||
wageRealTotal () {
|
||||
wageRealTotal() {
|
||||
let wageRealTotal = 0;
|
||||
this.selectionList.forEach(ele => {
|
||||
wageRealTotal += ele.wageReal;
|
||||
@@ -288,23 +290,23 @@ export default {
|
||||
searchShow: false,
|
||||
border: true,
|
||||
index: true,
|
||||
esignatureId:'',
|
||||
esignatureId: '',
|
||||
imageUrl: "/img/license.png",
|
||||
indexLabel: "序号",
|
||||
selection: true,
|
||||
selection: true,
|
||||
dialogType: "drawer",
|
||||
dialogWidth: "60%",
|
||||
delBtnText: "取消",
|
||||
dialogClickModal: false,
|
||||
column: [
|
||||
{
|
||||
width:"180px",
|
||||
width: "180px",
|
||||
label: "合同编号",
|
||||
prop: "contractNo",
|
||||
display: false,
|
||||
},
|
||||
{
|
||||
width:"180px",
|
||||
width: "180px",
|
||||
label: "岗位编号",
|
||||
prop: "servicesNo",
|
||||
display: false,
|
||||
@@ -322,22 +324,22 @@ export default {
|
||||
{
|
||||
label: "员工签署日期",
|
||||
prop: "createTime",
|
||||
type:"date",
|
||||
format:"yyyy-MM-dd",
|
||||
type: "date",
|
||||
format: "yyyy-MM-dd",
|
||||
display: false,
|
||||
},
|
||||
{
|
||||
label: "企业签署日期",
|
||||
prop: "submitTime",
|
||||
type:"date",
|
||||
format:"yyyy-MM-dd",
|
||||
type: "date",
|
||||
format: "yyyy-MM-dd",
|
||||
display: false,
|
||||
},
|
||||
{
|
||||
width:"180px",
|
||||
width: "180px",
|
||||
label: "合同有效期",
|
||||
prop: "durationContract",
|
||||
slot:"true",
|
||||
slot: "true",
|
||||
display: false,
|
||||
}
|
||||
],
|
||||
@@ -346,16 +348,16 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
//批量签发
|
||||
batchIssue(){
|
||||
batchIssue() {
|
||||
let fd = new FormData();
|
||||
fd.append('ids',this.ids.join(","));
|
||||
fd.append('ids', this.ids.join(","));
|
||||
signSeals(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
});
|
||||
},
|
||||
/**上传图片**/
|
||||
handleAvatarSuccess(res, file) {
|
||||
@@ -367,23 +369,23 @@ export default {
|
||||
const isJPG = accept.includes(file.type);
|
||||
this.imgFile = file;
|
||||
let fd = new FormData();
|
||||
fd.append('file',file);
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('file', file);
|
||||
fd.append('id', this.form.id);
|
||||
if (!isJPG) {
|
||||
this.$message.error("图片格式不正确!");
|
||||
}
|
||||
signSealImg(fd)
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
});
|
||||
return isJPG;
|
||||
},
|
||||
/**上传图片*/
|
||||
httpRequest,
|
||||
moneyFormat,
|
||||
//下载建行客户端工资发放模板
|
||||
//下载建行客户端工资发放模板
|
||||
uploadAfter(res, done) {
|
||||
this.onLoad(this.page, this.params);
|
||||
done();
|
||||
@@ -405,24 +407,24 @@ export default {
|
||||
// }
|
||||
// },
|
||||
//单挑数据发起校准确定按钮
|
||||
drawbackClick(){
|
||||
drawbackClick() {
|
||||
let fd = new FormData();
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('id', this.form.id);
|
||||
signSeal(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
},
|
||||
taxRealChaneg(){
|
||||
taxRealChaneg() {
|
||||
this.form.taxReal = this.taxReal;
|
||||
this.formSubmit.taxReal = this.taxReal*100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
|
||||
this.formSubmit.taxReal = this.taxReal * 100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal;
|
||||
},
|
||||
selectionChange (list) {
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
},
|
||||
format(date) {
|
||||
@@ -431,10 +433,10 @@ export default {
|
||||
}
|
||||
},
|
||||
//下载合同
|
||||
downloadContract(row){
|
||||
downloadContract(row) {
|
||||
window.open(downLetter(row.id))
|
||||
},
|
||||
calibration(row){
|
||||
calibration(row) {
|
||||
window.open(row.contractSecondUrl)
|
||||
},
|
||||
//查看详情
|
||||
@@ -442,7 +444,7 @@ export default {
|
||||
// this.$refs.check.openDialog(row);
|
||||
// },
|
||||
//下载申请表
|
||||
downloadEsignature(row){
|
||||
downloadEsignature(row) {
|
||||
window.open(downloadEsignature(row.id))
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
@@ -456,7 +458,7 @@ export default {
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
/*下载合同*/
|
||||
handelDownloadLetter(){
|
||||
handelDownloadLetter() {
|
||||
window.open(downLetter(this.downLetterId));
|
||||
},
|
||||
/*加载数据*/
|
||||
@@ -478,20 +480,19 @@ export default {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
mutiDown(){
|
||||
mutiDown() {
|
||||
// //mutiDownPdf(this.ids.join(','))
|
||||
// mutiDownPdf(this.ids.join(',')).then(res=>{
|
||||
// window.open(res)
|
||||
// // console.log(res.data,'muti down')
|
||||
// })
|
||||
if(this.selectionList.length==0){
|
||||
if (this.selectionList.length == 0) {
|
||||
this.$message.error('至少选择一条数据')
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
window.open(mutiDownPdf(this.ids.join(',')));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
@@ -501,10 +502,12 @@ export default {
|
||||
height: 160px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.el-col,
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
@@ -514,27 +517,34 @@ export default {
|
||||
.slotForm {
|
||||
font-size: 12px;
|
||||
}
|
||||
.calibrationForm .el-form{
|
||||
|
||||
.calibrationForm .el-form {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner {
|
||||
padding: 0 !important;
|
||||
height:30px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.excelBox .el-dialog__body{
|
||||
padding: 0 10px!important;
|
||||
|
||||
.excelBox .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.excelBox .el-form-item__content{
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
|
||||
.excelBox .el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
}
|
||||
.excelBox .el-dialog{
|
||||
width:360px !important;
|
||||
|
||||
.excelBox .el-dialog {
|
||||
width: 360px !important;
|
||||
}
|
||||
|
||||
/* .contentIndex-table .avue-crud{
|
||||
margin-top: -40px;
|
||||
} */
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
v-model="query.time"
|
||||
></YearRange>
|
||||
</el-form-item>
|
||||
<div class="searchBtn">
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@@ -55,7 +55,7 @@
|
||||
>清 空
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<avue-crud
|
||||
@@ -120,6 +120,8 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
option() {
|
||||
const type = this.query.type
|
||||
const labelName = type === 0 ? '岗位名称' : type === 1 ? '行业名称' : '时间'
|
||||
return {
|
||||
height: "auto",
|
||||
tip: false,
|
||||
@@ -141,15 +143,15 @@ export default {
|
||||
align: 'center',
|
||||
column: [
|
||||
{
|
||||
label: "名称",
|
||||
label: labelName,
|
||||
prop: "name",
|
||||
},
|
||||
{
|
||||
label: "零工人数",
|
||||
label: "申请人数",
|
||||
prop: "workerCount",
|
||||
},
|
||||
{
|
||||
label: "零工岗位人数",
|
||||
label: "需求人数",
|
||||
prop: "workCount",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -170,8 +170,6 @@ export default {
|
||||
},
|
||||
/*
|
||||
* wxStatus
|
||||
* default 企嘉云
|
||||
* hengshui 衡水
|
||||
* */
|
||||
wxSubmit () {
|
||||
if(this.submitList.length === 0) return
|
||||
|
||||
@@ -185,7 +185,6 @@ export default {
|
||||
},
|
||||
/* 表格按钮 */
|
||||
add () {
|
||||
// default 企嘉云 hegnshui 衡水
|
||||
this.viewDrawerAdd = true
|
||||
},
|
||||
closeAdd () {
|
||||
|
||||
@@ -17,26 +17,27 @@
|
||||
@on-load="onLoad"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<template slot="menuLeft">
|
||||
<el-button @click="batchIssue" size="small" :disabled="ids.length === 0" type="primary"
|
||||
>批量重新签发</el-button>
|
||||
<template slot="menuLeft">
|
||||
<el-button @click="batchIssue" size="small" :disabled="ids.length === 0" type="primary"
|
||||
>批量重新签发
|
||||
</el-button>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{ moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{ row.belongYear }}-{{ row.belongMonth }}</span>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="excelBox = true" size="small" type="primary"
|
||||
@@ -49,7 +50,8 @@
|
||||
>下载申请表</el-button
|
||||
> -->
|
||||
<el-button type="text" size="mini" @click.stop="calibration(row)"
|
||||
>重新签发</el-button
|
||||
>重新签发
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</avue-crud>
|
||||
@@ -57,65 +59,64 @@
|
||||
<check ref="check" v-show="false"></check>
|
||||
<!-- /查看详情dialog -->
|
||||
<el-dialog
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{form.companyName}}</p>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{ form.companyName }}</p>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
() => {
|
||||
uploading = true;
|
||||
}
|
||||
"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {excelImportOrder} from "@/api/manage/agentpay";//api
|
||||
import {esignatureStatus,signSealImg,downloadEsignature,signSeal,signSeals} from "@/api/manage/esignature";//api
|
||||
import {esignatureStatus, signSealImg, downloadEsignature, signSeal, signSeals} from "@/api/manage/esignature";//api
|
||||
import Check from "../Dialog/IncomeTaxCheck";//查看详情
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import httpRequest from "../httpRequest";
|
||||
|
||||
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SelectMap,
|
||||
saveButton,
|
||||
Check
|
||||
},
|
||||
@@ -129,42 +130,42 @@ export default {
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let taxReal=(rule, value, callback)=>{
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
|
||||
let taxReal = (rule, value, callback) => {
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
||||
let reg1 = new RegExp("/[a-z]/i;");
|
||||
if(reg.test(value)){
|
||||
if (reg.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else{
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else {
|
||||
this.btnClickFlag = true;
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
calibrationDialog:false,
|
||||
calibrationDialog: false,
|
||||
excelBox: false,
|
||||
excelForm: {},
|
||||
imageUrl: "/img/scimg.png",
|
||||
imgFile:'',
|
||||
btnClickFlag:false,
|
||||
imgFile: '',
|
||||
btnClickFlag: false,
|
||||
formLabelWidth: '120px',
|
||||
form:{
|
||||
num:30,
|
||||
form: {
|
||||
num: 30,
|
||||
},
|
||||
rules: {
|
||||
taxReal: [
|
||||
{ validator: taxReal , trigger: ['blur', 'change'] },
|
||||
],
|
||||
taxReal: [
|
||||
{validator: taxReal, trigger: ['blur', 'change']},
|
||||
],
|
||||
},
|
||||
formSubmit:{
|
||||
id:111,
|
||||
taxReal:111,
|
||||
formSubmit: {
|
||||
id: 111,
|
||||
taxReal: 111,
|
||||
},
|
||||
ceNum:0,
|
||||
taxReal:0,
|
||||
ceNum: 0,
|
||||
taxReal: 0,
|
||||
status: 1,
|
||||
selectionList: [],
|
||||
viewDrawer: false,
|
||||
@@ -182,13 +183,13 @@ export default {
|
||||
},
|
||||
data: [],
|
||||
obj: {},
|
||||
missionNo:'',
|
||||
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
missionNo: '',
|
||||
leibie: 'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
watch: {
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
// ids () {
|
||||
@@ -205,7 +206,7 @@ export default {
|
||||
});
|
||||
return ids;
|
||||
},
|
||||
wageRealTotal () {
|
||||
wageRealTotal() {
|
||||
let wageRealTotal = 0;
|
||||
this.selectionList.forEach(ele => {
|
||||
wageRealTotal += ele.wageReal;
|
||||
@@ -252,7 +253,7 @@ export default {
|
||||
searchShow: false,
|
||||
border: true,
|
||||
index: true,
|
||||
esignatureId:'',
|
||||
esignatureId: '',
|
||||
imageUrl: "/img/license.png",
|
||||
indexLabel: "序号",
|
||||
selection: true,
|
||||
@@ -286,16 +287,16 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
//批量签发
|
||||
batchIssue(){
|
||||
batchIssue() {
|
||||
let fd = new FormData();
|
||||
fd.append('ids',this.ids.join(","));
|
||||
fd.append('ids', this.ids.join(","));
|
||||
signSeals(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
},
|
||||
/**上传图片**/
|
||||
handleAvatarSuccess(res, file) {
|
||||
@@ -307,23 +308,23 @@ export default {
|
||||
const isJPG = accept.includes(file.type);
|
||||
this.imgFile = file;
|
||||
let fd = new FormData();
|
||||
fd.append('file',file);
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('file', file);
|
||||
fd.append('id', this.form.id);
|
||||
if (!isJPG) {
|
||||
this.$message.error("图片格式不正确!");
|
||||
}
|
||||
signSealImg(fd)
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
return isJPG;
|
||||
},
|
||||
/**上传图片*/
|
||||
httpRequest,
|
||||
moneyFormat,
|
||||
//下载建行客户端工资发放模板
|
||||
//下载建行客户端工资发放模板
|
||||
uploadAfter(res, done) {
|
||||
this.onLoad(this.page, this.params);
|
||||
done();
|
||||
@@ -345,24 +346,24 @@ export default {
|
||||
// }
|
||||
// },
|
||||
//单挑数据发起校准确定按钮
|
||||
drawbackClick(){
|
||||
drawbackClick() {
|
||||
let fd = new FormData();
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('id', this.form.id);
|
||||
signSeal(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
},
|
||||
taxRealChaneg(){
|
||||
taxRealChaneg() {
|
||||
this.form.taxReal = this.taxReal;
|
||||
this.formSubmit.taxReal = this.taxReal*100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
|
||||
this.formSubmit.taxReal = this.taxReal * 100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal;
|
||||
},
|
||||
selectionChange (list) {
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
},
|
||||
format(date) {
|
||||
@@ -371,12 +372,12 @@ export default {
|
||||
}
|
||||
},
|
||||
//发起校准
|
||||
calibration(row){
|
||||
calibration(row) {
|
||||
this.form = row;
|
||||
this.calibrationDialog = true;
|
||||
},
|
||||
//下载申请表
|
||||
downloadEsignature(row){
|
||||
downloadEsignature(row) {
|
||||
window.open(downloadEsignature(row.id))
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
@@ -407,7 +408,7 @@ export default {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -416,10 +417,12 @@ export default {
|
||||
height: 160px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.el-col,
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
@@ -429,25 +432,31 @@ export default {
|
||||
.slotForm {
|
||||
font-size: 12px;
|
||||
}
|
||||
.calibrationForm .el-form{
|
||||
|
||||
.calibrationForm .el-form {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner {
|
||||
padding: 0 !important;
|
||||
height:30px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.excelBox .el-dialog__body{
|
||||
padding: 0 10px!important;
|
||||
|
||||
.excelBox .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.excelBox .el-form-item__content{
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
|
||||
.excelBox .el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
}
|
||||
.excelBox .el-dialog{
|
||||
width:360px !important;
|
||||
|
||||
.excelBox .el-dialog {
|
||||
width: 360px !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -17,26 +17,27 @@
|
||||
@on-load="onLoad"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{ moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{ row.belongYear }}-{{ row.belongMonth }}</span>
|
||||
</template>
|
||||
<!--自定义操作栏-->
|
||||
<div slot="menu" slot-scope="{row}">
|
||||
<el-button type="text" size="mini" @click.stop="checkClick(row)"
|
||||
>查看</el-button
|
||||
>查看
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</avue-crud>
|
||||
@@ -44,46 +45,45 @@
|
||||
<check ref="check" v-show="false"></check>
|
||||
<!-- /查看详情dialog -->
|
||||
<el-dialog
|
||||
title="查看"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox checkForm">
|
||||
<el-form :model="form" :rules="rules">
|
||||
<el-form-item label="公章:" prop="authUrlId" >
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="'data:image/png;base64,'+form.imgStr"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
</div>
|
||||
</el-dialog>
|
||||
title="查看"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox checkForm">
|
||||
<el-form :model="form" :rules="rules">
|
||||
<el-form-item label="公章:" prop="authUrlId">
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="'data:image/png;base64,'+form.imgStr"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {excelImportOrder} from "@/api/manage/agentpay";//api
|
||||
import {esignatureStatus,signSealImg,signSeal,detailsImg} from "@/api/manage/esignature";//api
|
||||
import {esignatureStatus, signSealImg, signSeal, detailsImg} from "@/api/manage/esignature";//api
|
||||
import Check from "../Dialog/IncomeTaxCheck";//查看详情
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import httpRequest from "../httpRequest";
|
||||
|
||||
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SelectMap,
|
||||
saveButton,
|
||||
Check
|
||||
},
|
||||
@@ -97,42 +97,42 @@ export default {
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let taxReal=(rule, value, callback)=>{
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
|
||||
let taxReal = (rule, value, callback) => {
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
||||
let reg1 = new RegExp("/[a-z]/i;");
|
||||
if(reg.test(value)){
|
||||
if (reg.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else{
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else {
|
||||
this.btnClickFlag = true;
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
calibrationDialog:false,
|
||||
calibrationDialog: false,
|
||||
excelBox: false,
|
||||
excelForm: {},
|
||||
imageUrl: "/img/scimg.png",
|
||||
imgFile:'',
|
||||
btnClickFlag:false,
|
||||
imgFile: '',
|
||||
btnClickFlag: false,
|
||||
formLabelWidth: '120px',
|
||||
form:{
|
||||
num:30,
|
||||
form: {
|
||||
num: 30,
|
||||
},
|
||||
rules: {
|
||||
taxReal: [
|
||||
{ validator: taxReal , trigger: ['blur', 'change'] },
|
||||
],
|
||||
taxReal: [
|
||||
{validator: taxReal, trigger: ['blur', 'change']},
|
||||
],
|
||||
},
|
||||
formSubmit:{
|
||||
id:111,
|
||||
taxReal:111,
|
||||
formSubmit: {
|
||||
id: 111,
|
||||
taxReal: 111,
|
||||
},
|
||||
ceNum:0,
|
||||
taxReal:0,
|
||||
ceNum: 0,
|
||||
taxReal: 0,
|
||||
status: 1,
|
||||
selectionList: [],
|
||||
viewDrawer: false,
|
||||
@@ -150,23 +150,23 @@ export default {
|
||||
},
|
||||
data: [],
|
||||
obj: {},
|
||||
missionNo:'',
|
||||
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
missionNo: '',
|
||||
leibie: 'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
watch: {
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
ids () {
|
||||
ids() {
|
||||
let ids = [];
|
||||
this.selectionList.forEach(ele => {
|
||||
ids.push(ele.id);
|
||||
});
|
||||
return ids.join(",");
|
||||
},
|
||||
wageRealTotal () {
|
||||
wageRealTotal() {
|
||||
let wageRealTotal = 0;
|
||||
this.selectionList.forEach(ele => {
|
||||
wageRealTotal += ele.wageReal;
|
||||
@@ -213,7 +213,7 @@ export default {
|
||||
searchShow: false,
|
||||
border: true,
|
||||
index: true,
|
||||
esignatureId:'',
|
||||
esignatureId: '',
|
||||
imageUrl: "/img/license.png",
|
||||
dialogType: "drawer",
|
||||
dialogWidth: "60%",
|
||||
@@ -284,23 +284,23 @@ export default {
|
||||
const isJPG = accept.includes(file.type);
|
||||
this.imgFile = file;
|
||||
let fd = new FormData();
|
||||
fd.append('file',file);
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('file', file);
|
||||
fd.append('id', this.form.id);
|
||||
if (!isJPG) {
|
||||
this.$message.error("图片格式不正确!");
|
||||
}
|
||||
signSealImg(fd)
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
return isJPG;
|
||||
},
|
||||
/**上传图片*/
|
||||
httpRequest,
|
||||
moneyFormat,
|
||||
//下载建行客户端工资发放模板
|
||||
//下载建行客户端工资发放模板
|
||||
uploadAfter(res, done) {
|
||||
this.onLoad(this.page, this.params);
|
||||
done();
|
||||
@@ -314,23 +314,23 @@ export default {
|
||||
}
|
||||
},
|
||||
//单挑数据发起校准确定按钮
|
||||
drawbackClick(){
|
||||
drawbackClick() {
|
||||
let fd = new FormData();
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('id', this.form.id);
|
||||
signSeal(fd)
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
},
|
||||
taxRealChaneg(){
|
||||
taxRealChaneg() {
|
||||
this.form.taxReal = this.taxReal;
|
||||
this.formSubmit.taxReal = this.taxReal*100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
|
||||
this.formSubmit.taxReal = this.taxReal * 100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal;
|
||||
},
|
||||
selectionChange (list) {
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
},
|
||||
format(date) {
|
||||
@@ -338,16 +338,16 @@ export default {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
checkClick (row){
|
||||
checkClick(row) {
|
||||
this.form = row;
|
||||
detailsImg(row.id).then((res) => {
|
||||
this.form.imgStr = res.data.data;
|
||||
this.calibrationDialog = true;
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage;
|
||||
@@ -377,7 +377,7 @@ export default {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -386,14 +386,17 @@ export default {
|
||||
font-size: 18px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.companyInfo-upload-image {
|
||||
height: 160px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.el-col,
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
@@ -403,24 +406,30 @@ export default {
|
||||
.slotForm {
|
||||
font-size: 12px;
|
||||
}
|
||||
.calibrationForm .el-form{
|
||||
|
||||
.calibrationForm .el-form {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner {
|
||||
padding: 0 !important;
|
||||
height:30px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.excelBox .el-dialog__body{
|
||||
padding: 0 10px!important;
|
||||
|
||||
.excelBox .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.excelBox .el-form-item__content{
|
||||
margin-left: 0 !important;
|
||||
|
||||
.excelBox .el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.excelBox .el-dialog{
|
||||
width:360px !important;
|
||||
|
||||
.excelBox .el-dialog {
|
||||
width: 360px !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -17,22 +17,22 @@
|
||||
@on-load="onLoad"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{ moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{ row.belongYear }}-{{ row.belongMonth }}</span>
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="excelBox = true" size="small" type="primary"
|
||||
@@ -42,10 +42,12 @@
|
||||
<!--自定义操作栏-->
|
||||
<div slot="menu" slot-scope="{row}">
|
||||
<el-button type="text" size="mini" @click="downloadEsignature(row)"
|
||||
>下载申请表</el-button
|
||||
>下载申请表
|
||||
</el-button
|
||||
>
|
||||
<el-button type="text" size="mini" @click.stop="calibration(row)"
|
||||
>签发</el-button
|
||||
>签发
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</avue-crud>
|
||||
@@ -53,65 +55,64 @@
|
||||
<check ref="check" v-show="false"></check>
|
||||
<!-- /查看详情dialog -->
|
||||
<el-dialog
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
title="上传"
|
||||
:visible.sync="calibrationDialog"
|
||||
width="300px"
|
||||
:modal="false"
|
||||
class="calibrationForm excelBox">
|
||||
<el-form :model="form" :rules="rules">
|
||||
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{form.companyName}}</p>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
<el-form-item label="" :label-width="0">
|
||||
<p>{{ form.companyName }}</p>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="authUrlId">
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:on-progress="
|
||||
() => {
|
||||
uploading = true;
|
||||
}
|
||||
"
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
:on-success="handleAvatarSuccess"
|
||||
:before-upload="beforeAvatarUpload"
|
||||
:http-request="httpRequest"
|
||||
>
|
||||
<div v-loading="uploading">
|
||||
<img
|
||||
class="companyInfo-upload-image"
|
||||
:src="form.authUrlId || imageUrl"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="companyInfo-upload-tip" slot="tip">
|
||||
请上传营业执照
|
||||
</div> -->
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="calibrationDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="drawbackClick">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {excelImportOrder} from "@/api/manage/agentpay";//api
|
||||
import {esignatureStatus,signSealImg,downloadEsignature,signSeal} from "@/api/manage/esignature";//api
|
||||
import {esignatureStatus, signSealImg, downloadEsignature, signSeal} from "@/api/manage/esignature";//api
|
||||
import Check from "../Dialog/IncomeTaxCheck";//查看详情
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import httpRequest from "../httpRequest";
|
||||
|
||||
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SelectMap,
|
||||
saveButton,
|
||||
Check
|
||||
},
|
||||
@@ -125,42 +126,42 @@ export default {
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let taxReal=(rule, value, callback)=>{
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
|
||||
let taxReal = (rule, value, callback) => {
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
||||
let reg1 = new RegExp("/[a-z]/i;");
|
||||
if(reg.test(value)){
|
||||
if (reg.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else{
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else {
|
||||
this.btnClickFlag = true;
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
calibrationDialog:false,
|
||||
calibrationDialog: false,
|
||||
excelBox: false,
|
||||
excelForm: {},
|
||||
imageUrl: "/img/scimg.png",
|
||||
imgFile:'',
|
||||
btnClickFlag:false,
|
||||
imgFile: '',
|
||||
btnClickFlag: false,
|
||||
formLabelWidth: '120px',
|
||||
form:{
|
||||
num:30,
|
||||
form: {
|
||||
num: 30,
|
||||
},
|
||||
rules: {
|
||||
taxReal: [
|
||||
{ validator: taxReal , trigger: ['blur', 'change'] },
|
||||
],
|
||||
taxReal: [
|
||||
{validator: taxReal, trigger: ['blur', 'change']},
|
||||
],
|
||||
},
|
||||
formSubmit:{
|
||||
id:111,
|
||||
taxReal:111,
|
||||
formSubmit: {
|
||||
id: 111,
|
||||
taxReal: 111,
|
||||
},
|
||||
ceNum:0,
|
||||
taxReal:0,
|
||||
ceNum: 0,
|
||||
taxReal: 0,
|
||||
status: 1,
|
||||
selectionList: [],
|
||||
viewDrawer: false,
|
||||
@@ -178,23 +179,23 @@ export default {
|
||||
},
|
||||
data: [],
|
||||
obj: {},
|
||||
missionNo:'',
|
||||
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
missionNo: '',
|
||||
leibie: 'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
watch: {
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
ids () {
|
||||
ids() {
|
||||
let ids = [];
|
||||
this.selectionList.forEach(ele => {
|
||||
ids.push(ele.id);
|
||||
});
|
||||
return ids.join(",");
|
||||
},
|
||||
wageRealTotal () {
|
||||
wageRealTotal() {
|
||||
let wageRealTotal = 0;
|
||||
this.selectionList.forEach(ele => {
|
||||
wageRealTotal += ele.wageReal;
|
||||
@@ -241,7 +242,7 @@ export default {
|
||||
searchShow: false,
|
||||
border: true,
|
||||
index: true,
|
||||
esignatureId:'',
|
||||
esignatureId: '',
|
||||
imageUrl: "/img/license.png",
|
||||
indexLabel: "序号",
|
||||
// selection: true,
|
||||
@@ -277,24 +278,24 @@ export default {
|
||||
const isJPG = accept.includes(file.type);
|
||||
this.imgFile = file;
|
||||
let fd = new FormData();
|
||||
fd.append('file',file);
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('file', file);
|
||||
fd.append('id', this.form.id);
|
||||
if (!isJPG) {
|
||||
this.$message.error("图片格式不正确!");
|
||||
}
|
||||
signSealImg(fd)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
return isJPG;
|
||||
},
|
||||
/**上传图片*/
|
||||
httpRequest,
|
||||
moneyFormat,
|
||||
//下载建行客户端工资发放模板
|
||||
//下载建行客户端工资发放模板
|
||||
uploadAfter(res, done) {
|
||||
this.onLoad(this.page, this.params);
|
||||
done();
|
||||
@@ -316,24 +317,24 @@ export default {
|
||||
// }
|
||||
// },
|
||||
//单挑数据发起校准确定按钮
|
||||
drawbackClick(){
|
||||
drawbackClick() {
|
||||
let fd = new FormData();
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('id', this.form.id);
|
||||
signSeal(fd)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
},
|
||||
taxRealChaneg(){
|
||||
taxRealChaneg() {
|
||||
this.form.taxReal = this.taxReal;
|
||||
this.formSubmit.taxReal = this.taxReal*100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
|
||||
this.formSubmit.taxReal = this.taxReal * 100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal;
|
||||
},
|
||||
selectionChange (list) {
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
},
|
||||
format(date) {
|
||||
@@ -342,10 +343,10 @@ export default {
|
||||
}
|
||||
},
|
||||
//发起校准
|
||||
calibration(row){
|
||||
this.imageUrl="/img/scimg.png";
|
||||
calibration(row) {
|
||||
this.imageUrl = "/img/scimg.png";
|
||||
this.form = row;
|
||||
console.log(this.form,'form')
|
||||
console.log(this.form, 'form')
|
||||
// this.ceNum = row.taxTotal - row.taxReal
|
||||
// this.taxReal = 0;
|
||||
|
||||
@@ -356,7 +357,7 @@ export default {
|
||||
// this.$refs.check.openDialog(row);
|
||||
// },
|
||||
//下载申请表
|
||||
downloadEsignature(row){
|
||||
downloadEsignature(row) {
|
||||
console.log(row);
|
||||
window.open(downloadEsignature(row.id))
|
||||
},
|
||||
@@ -389,7 +390,7 @@ export default {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -398,10 +399,12 @@ export default {
|
||||
height: 160px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.el-col,
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
@@ -411,25 +414,31 @@ export default {
|
||||
.slotForm {
|
||||
font-size: 12px;
|
||||
}
|
||||
.calibrationForm .el-form{
|
||||
|
||||
.calibrationForm .el-form {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner {
|
||||
padding: 0 !important;
|
||||
height:30px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.excelBox .el-dialog__body{
|
||||
padding: 0 10px!important;
|
||||
|
||||
.excelBox .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.excelBox .el-form-item__content{
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
|
||||
.excelBox .el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
}
|
||||
.excelBox .el-dialog{
|
||||
width:360px !important;
|
||||
|
||||
.excelBox .el-dialog {
|
||||
width: 360px !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -17,22 +17,22 @@
|
||||
@on-load="onLoad"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
|
||||
</template>
|
||||
<!-- 应发工资 -->
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.wage) }}</span>
|
||||
</template>
|
||||
<!-- 个税 wageReal-->
|
||||
<template slot="tax" slot-scope="{ row }">
|
||||
<span>{{ moneyFormat(row.taxTotal) }}</span>
|
||||
</template>
|
||||
<!-- 实发工资-->
|
||||
<template slot="wageReal" slot-scope="{row }">
|
||||
<span>{{ moneyFormat(row.wageReal) }}</span>
|
||||
</template>
|
||||
<!-- 归属月 -->
|
||||
<template slot="belongMonth" slot-scope="{row }">
|
||||
<span>{{ row.belongYear }}-{{ row.belongMonth }}</span>
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="excelBox = true" size="small" type="primary"
|
||||
@@ -45,7 +45,8 @@
|
||||
>下载申请表</el-button
|
||||
> -->
|
||||
<el-button type="text" size="mini" @click.stop="calibration(row)"
|
||||
>查看</el-button
|
||||
>查看
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</avue-crud>
|
||||
@@ -53,38 +54,45 @@
|
||||
<check ref="check" v-show="false"></check>
|
||||
<!-- /查看详情dialog -->
|
||||
<el-dialog
|
||||
title=""
|
||||
:visible.sync="dialogVisible"
|
||||
width="35%"
|
||||
:modal=false
|
||||
:before-close="handleClose">
|
||||
<div>
|
||||
<img class="" :src="'data:image/png;base64,'+imgStr" width="100%"/>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
title=""
|
||||
:visible.sync="dialogVisible"
|
||||
width="35%"
|
||||
:modal=false
|
||||
:before-close="handleClose">
|
||||
<div>
|
||||
<img class="" :src="'data:image/png;base64,'+imgStr" width="100%"/>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="downLoadContract">下载合同</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {excelImportOrder} from "@/api/manage/agentpay";//apitenantList
|
||||
import {managerList,signSealImg,downloadEsignature,signSeal,signSeals,viewContractImg,contractDownload} from "@/api/manage/esignature";//api
|
||||
import {
|
||||
managerList,
|
||||
signSealImg,
|
||||
downloadEsignature,
|
||||
signSeal,
|
||||
signSeals,
|
||||
viewContractImg,
|
||||
contractDownload
|
||||
} from "@/api/manage/esignature";//api
|
||||
import Check from "../Dialog/IncomeTaxCheck";//查看详情
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { moneyFormat } from "@/util/money";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import httpRequest from "../httpRequest";
|
||||
|
||||
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SelectMap,
|
||||
saveButton,
|
||||
Check
|
||||
},
|
||||
@@ -98,45 +106,45 @@ export default {
|
||||
},
|
||||
},
|
||||
data() {
|
||||
let taxReal=(rule, value, callback)=>{
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
|
||||
let taxReal = (rule, value, callback) => {
|
||||
let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
|
||||
let reg1 = new RegExp("/[a-z]/i;");
|
||||
if(reg.test(value)){
|
||||
if (reg.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
}else{
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else if (reg1.test(value)) {
|
||||
this.btnClickFlag = false;
|
||||
callback(new Error('只能输入数字!'))
|
||||
} else {
|
||||
this.btnClickFlag = true;
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
calibrationDialog:false,
|
||||
contractId:'',
|
||||
calibrationDialog: false,
|
||||
contractId: '',
|
||||
excelBox: false,
|
||||
dialogVisible: false,
|
||||
imgStr:'',
|
||||
imgStr: '',
|
||||
excelForm: {},
|
||||
imageUrl: "/img/scimg.png",
|
||||
imgFile:'',
|
||||
btnClickFlag:false,
|
||||
imgFile: '',
|
||||
btnClickFlag: false,
|
||||
formLabelWidth: '120px',
|
||||
form:{
|
||||
num:30,
|
||||
form: {
|
||||
num: 30,
|
||||
},
|
||||
rules: {
|
||||
taxReal: [
|
||||
{ validator: taxReal , trigger: ['blur', 'change'] },
|
||||
],
|
||||
taxReal: [
|
||||
{validator: taxReal, trigger: ['blur', 'change']},
|
||||
],
|
||||
},
|
||||
formSubmit:{
|
||||
id:111,
|
||||
taxReal:111,
|
||||
formSubmit: {
|
||||
id: 111,
|
||||
taxReal: 111,
|
||||
},
|
||||
ceNum:0,
|
||||
taxReal:0,
|
||||
ceNum: 0,
|
||||
taxReal: 0,
|
||||
// status: 1,
|
||||
selectionList: [],
|
||||
viewDrawer: false,
|
||||
@@ -154,13 +162,13 @@ export default {
|
||||
},
|
||||
data: [],
|
||||
obj: {},
|
||||
missionNo:'',
|
||||
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
missionNo: '',
|
||||
leibie: 'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败,pause 暂不发放;)
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
watch: {
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
ids() {
|
||||
@@ -170,7 +178,7 @@ export default {
|
||||
});
|
||||
return ids;
|
||||
},
|
||||
wageRealTotal () {
|
||||
wageRealTotal() {
|
||||
let wageRealTotal = 0;
|
||||
this.selectionList.forEach(ele => {
|
||||
wageRealTotal += ele.wageReal;
|
||||
@@ -217,7 +225,7 @@ export default {
|
||||
searchShow: false,
|
||||
border: true,
|
||||
index: true,
|
||||
esignatureId:'',
|
||||
esignatureId: '',
|
||||
imageUrl: "/img/license.png",
|
||||
indexLabel: "序号",
|
||||
// selection: true,
|
||||
@@ -266,24 +274,25 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
//批量签发
|
||||
batchIssue(){
|
||||
batchIssue() {
|
||||
let fd = new FormData();
|
||||
fd.append('ids',this.ids.join(","));
|
||||
fd.append('ids', this.ids.join(","));
|
||||
signSeals(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(()=> {
|
||||
done();
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
this.$confirm('确认关闭?')
|
||||
.then(() => {
|
||||
done();
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
/**上传图片**/
|
||||
handleAvatarSuccess(res, file) {
|
||||
this.imageUrl = URL.createObjectURL(file.raw);
|
||||
@@ -294,23 +303,23 @@ export default {
|
||||
const isJPG = accept.includes(file.type);
|
||||
this.imgFile = file;
|
||||
let fd = new FormData();
|
||||
fd.append('file',file);
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('file', file);
|
||||
fd.append('id', this.form.id);
|
||||
if (!isJPG) {
|
||||
this.$message.error("图片格式不正确!");
|
||||
}
|
||||
signSealImg(fd)
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.then(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
return isJPG;
|
||||
},
|
||||
/**上传图片*/
|
||||
httpRequest,
|
||||
moneyFormat,
|
||||
//下载建行客户端工资发放模板
|
||||
//下载建行客户端工资发放模板
|
||||
uploadAfter(res, done) {
|
||||
this.onLoad(this.page, this.params);
|
||||
done();
|
||||
@@ -324,24 +333,24 @@ export default {
|
||||
}
|
||||
},
|
||||
//单挑数据发起校准确定按钮
|
||||
drawbackClick(){
|
||||
drawbackClick() {
|
||||
let fd = new FormData();
|
||||
fd.append('id',this.form.id);
|
||||
fd.append('id', this.form.id);
|
||||
signSeal(fd)
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
.then(() => {
|
||||
this.onLoad(this.page, this.params);
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
this.calibrationDialog = false;
|
||||
},
|
||||
taxRealChaneg(){
|
||||
taxRealChaneg() {
|
||||
this.form.taxReal = this.taxReal;
|
||||
this.formSubmit.taxReal = this.taxReal*100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
|
||||
this.formSubmit.taxReal = this.taxReal * 100;
|
||||
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal;
|
||||
},
|
||||
selectionChange (list) {
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
},
|
||||
format(date) {
|
||||
@@ -350,24 +359,24 @@ export default {
|
||||
}
|
||||
},
|
||||
//查看
|
||||
calibration(row){
|
||||
calibration(row) {
|
||||
this.form = row;
|
||||
this.contractId = row.id;
|
||||
viewContractImg(row.id).then((res) => {
|
||||
this.imgStr = res.data.data;
|
||||
this.dialogVisible = true;
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
.catch(() => {
|
||||
|
||||
});
|
||||
//contractDetailsImg()
|
||||
},
|
||||
//下载合同
|
||||
downLoadContract(){
|
||||
downLoadContract() {
|
||||
window.open(contractDownload(this.contractId))
|
||||
},
|
||||
//下载申请表
|
||||
downloadEsignature(row){
|
||||
downloadEsignature(row) {
|
||||
window.open(downloadEsignature(row.id))
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
@@ -398,7 +407,7 @@ export default {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -407,10 +416,12 @@ export default {
|
||||
height: 160px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.el-col,
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.map {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
@@ -420,25 +431,31 @@ export default {
|
||||
.slotForm {
|
||||
font-size: 12px;
|
||||
}
|
||||
.calibrationForm .el-form{
|
||||
|
||||
.calibrationForm .el-form {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
|
||||
|
||||
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner {
|
||||
padding: 0 !important;
|
||||
height:30px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
.excelBox .el-dialog__body{
|
||||
padding: 0 10px!important;
|
||||
|
||||
.excelBox .el-dialog__body {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.excelBox .el-form-item__content{
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
|
||||
.excelBox .el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
text-align: center;
|
||||
}
|
||||
.excelBox .el-dialog{
|
||||
width:360px !important;
|
||||
|
||||
.excelBox .el-dialog {
|
||||
width: 360px !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
<template>
|
||||
<basic-container>
|
||||
<avue-crud
|
||||
ref="crud"
|
||||
:table-loading="loading"
|
||||
@date-change="dateChange"
|
||||
@current-change="currentChange"
|
||||
@size-change="sizeChange"
|
||||
@on-load="onLoad"
|
||||
:option="option"
|
||||
:data="inviteCodeList"
|
||||
:page.sync="page"
|
||||
@row-del="rowDel"
|
||||
@search-change="searchChange"
|
||||
@refresh-change="refreshChange"
|
||||
@search-reset="searchReset"
|
||||
@selection-change="selectionChange"
|
||||
ref="crud"
|
||||
:table-loading="loading"
|
||||
@date-change="dateChange"
|
||||
@current-change="currentChange"
|
||||
@size-change="sizeChange"
|
||||
@on-load="onLoad"
|
||||
:option="option"
|
||||
:data="inviteCodeList"
|
||||
:page.sync="page"
|
||||
@row-del="rowDel"
|
||||
@search-change="searchChange"
|
||||
@refresh-change="refreshChange"
|
||||
@search-reset="searchReset"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<template slot="menuLeft">
|
||||
<el-button
|
||||
size="small"
|
||||
@click.stop="distributionCodeDialog = true; isEdit = false; inviteCodeForm = {}"
|
||||
type="primary"
|
||||
v-show="vaildData(permission.manage_station_inviteCode_edituser, false)"
|
||||
size="small"
|
||||
@click.stop="distributionCodeDialog = true; isEdit = false; inviteCodeForm = {}"
|
||||
type="primary"
|
||||
v-show="vaildData(permission.manage_station_inviteCode_edituser, false)"
|
||||
>绑定用户
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
@click.stop="handleCheck"
|
||||
type="primary"
|
||||
size="small"
|
||||
@click.stop="handleCheck"
|
||||
type="primary"
|
||||
>审核用户
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -37,21 +37,21 @@
|
||||
</template>
|
||||
<template slot="isEnabled" slot-scope="{ row }">
|
||||
<el-switch
|
||||
:value="row.isEnabled"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
@change="changeEnabled(row)">
|
||||
:value="row.isEnabled"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
@change="changeEnabled(row)">
|
||||
</el-switch>
|
||||
</template>
|
||||
|
||||
</avue-crud>
|
||||
<el-drawer
|
||||
title="绑定用户"
|
||||
:visible.sync="distributionCodeDialog"
|
||||
append-to-body
|
||||
width="40%"
|
||||
title="绑定用户"
|
||||
:visible.sync="distributionCodeDialog"
|
||||
append-to-body
|
||||
width="40%"
|
||||
>
|
||||
<div class="drawer_content">
|
||||
<el-form :model="inviteCodeForm" :rules="inviteCodeRules" filterable ref="inviteCode" label-width="100px"
|
||||
@@ -60,10 +60,10 @@
|
||||
<el-select v-model="inviteCodeForm.inviteCompanyId" :disabled="isEdit" filterable placeholder="请选择"
|
||||
style="width: 260px">
|
||||
<el-option
|
||||
v-for="item in enterpriseList"
|
||||
:key="item.id"
|
||||
:label="item.comname"
|
||||
:value="item.id">
|
||||
v-for="item in enterpriseList"
|
||||
:key="item.id"
|
||||
:label="item.comname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -87,6 +87,20 @@
|
||||
</span>
|
||||
</div>
|
||||
</el-drawer>
|
||||
<PromptDialog
|
||||
:visible="dialogFlag"
|
||||
title="审核"
|
||||
sub-title="请核对用工单位信息后再进行审核通过, 一旦驳回无法进行后续操作"
|
||||
:tips="[
|
||||
'该用户未达期望,建议重筛;',
|
||||
'不符合条件,请再评估;',
|
||||
'经审核,该用户资质不符,建议重评;',
|
||||
'用工单位资质不符;',
|
||||
]"
|
||||
@onClose="dialogFlag = false"
|
||||
@onCancel="diaLogCancel"
|
||||
@onConfirm="diaLogConfirm"
|
||||
></PromptDialog>
|
||||
</basic-container>
|
||||
</template>
|
||||
<script>
|
||||
@@ -104,6 +118,7 @@ import {Message} from "element-ui";
|
||||
import lodash from "lodash";
|
||||
import {recruitStatus} from "@/common/dic";
|
||||
import {Auditing} from "@/api/manage/mission";
|
||||
import PromptDialog from "@/components/promptDialog/index.vue";
|
||||
|
||||
const inviteCodeRules = {
|
||||
stationId: [
|
||||
@@ -206,16 +221,19 @@ const page = {
|
||||
total: 0,
|
||||
}
|
||||
const message = lodash.throttle(
|
||||
function (options) {
|
||||
Message(options);
|
||||
},
|
||||
3000,
|
||||
{trailing: false}
|
||||
function (options) {
|
||||
Message(options);
|
||||
},
|
||||
3000,
|
||||
{trailing: false}
|
||||
);
|
||||
export default {
|
||||
name: "manage_station_inviteCode",
|
||||
components: {PromptDialog},
|
||||
data() {
|
||||
return {
|
||||
dialogFlag: false,
|
||||
selectIdList: [],
|
||||
distributionCodeDialog: false,
|
||||
inviteCodeRules: Object.assign({}, inviteCodeRules),
|
||||
enterpriseList: [], // 用工单位列表
|
||||
@@ -236,6 +254,22 @@ export default {
|
||||
...mapGetters(["permission"]),
|
||||
},
|
||||
methods: {
|
||||
diaLogCancel(value) {
|
||||
if (!value) {
|
||||
return this.$message({
|
||||
type: "info",
|
||||
message: "请输入驳回原因!",
|
||||
});
|
||||
}
|
||||
this.handelFetchAuditing(this.selectIdList, 9, value, "成功驳回, 操作成功!").then(() => {
|
||||
this.dialogFlag = false
|
||||
})
|
||||
},
|
||||
diaLogConfirm(value) {
|
||||
this.handelFetchAuditing(this.selectIdList, 1, value).then(() => {
|
||||
this.dialogFlag = false
|
||||
})
|
||||
},
|
||||
handleCheck() {
|
||||
let self = this
|
||||
if (this.selectionList.length < 1) {
|
||||
@@ -248,34 +282,36 @@ export default {
|
||||
let idList = this.selectionList.map((v) => v.id)
|
||||
|
||||
let h = this.$createElement;
|
||||
this.$prompt(
|
||||
h("p", {style: "color: #F56C6C"}, "一旦驳回无法进行后续操作"),
|
||||
"请核对用工单位信息后再进行审核通过",
|
||||
{
|
||||
distinguishCancelAndClose: true,
|
||||
confirmButtonText: "通 过",
|
||||
cancelButtonText: "驳 回",
|
||||
type: "warning",
|
||||
center: true,
|
||||
inputType: "textarea",
|
||||
inputPlaceholder: "备注驳回原因",
|
||||
beforeClose: function (action, instance, done) {
|
||||
if (action === 'cancel') {
|
||||
if (!instance.inputValue) {
|
||||
return this.$message({
|
||||
type: "info",
|
||||
message: "请输入驳回原因!",
|
||||
});
|
||||
}
|
||||
self.handelFetchAuditing(idList, 9, instance.inputValue, "成功驳回, 操作成功!").then(() => done())
|
||||
} else if (action === 'confirm') {
|
||||
self.handelFetchAuditing(idList, 1, instance.inputValue).then(() => done())
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
this.dialogFlag = true
|
||||
this.selectIdList = idList
|
||||
// this.$prompt(
|
||||
// h("p", {style: "color: #F56C6C"}, "一旦驳回无法进行后续操作"),
|
||||
// "请核对用工单位信息后再进行审核通过",
|
||||
// {
|
||||
// distinguishCancelAndClose: true,
|
||||
// confirmButtonText: "通 过",
|
||||
// cancelButtonText: "驳 回",
|
||||
// type: "warning",
|
||||
// center: true,
|
||||
// inputType: "textarea",
|
||||
// inputPlaceholder: "备注驳回原因",
|
||||
// beforeClose: function (action, instance, done) {
|
||||
// if (action === 'cancel') {
|
||||
// if (!instance.inputValue) {
|
||||
// return this.$message({
|
||||
// type: "info",
|
||||
// message: "请输入驳回原因!",
|
||||
// });
|
||||
// }
|
||||
// self.handelFetchAuditing(idList, 9, instance.inputValue, "成功驳回, 操作成功!").then(() => done())
|
||||
// } else if (action === 'confirm') {
|
||||
// self.handelFetchAuditing(idList, 1, instance.inputValue).then(() => done())
|
||||
// } else {
|
||||
// done()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// )
|
||||
},
|
||||
handelFetchAuditing(idList, reviewState, msg, message) {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -312,30 +348,30 @@ export default {
|
||||
rowDel(row) {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", {style: "font-size: 16px"}, "您确定要删除此消息吗? "),
|
||||
h("p", {style: "color: red"}, "一旦删除则无法找回"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
showClose: false,
|
||||
showCancelButton: true,
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
}
|
||||
h("div", null, [
|
||||
h("p", {style: "font-size: 16px"}, "您确定要删除此消息吗? "),
|
||||
h("p", {style: "color: red"}, "一旦删除则无法找回"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
showClose: false,
|
||||
showCancelButton: true,
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
return getInvitationStatusUpdate({id: row.id, isDeleted: 1});
|
||||
})
|
||||
.then(() => {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
this.refreshChange();
|
||||
})
|
||||
.catch(() => {
|
||||
.then(() => {
|
||||
return getInvitationStatusUpdate({id: row.id, isDeleted: 1});
|
||||
})
|
||||
.then(() => {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
this.refreshChange();
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
selectionChange(list) {
|
||||
this.selectionList = list;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
v-model="query.time"
|
||||
></YearRange>
|
||||
</el-form-item>
|
||||
<div class="searchBtn">
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@@ -55,7 +55,7 @@
|
||||
>清 空
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<avue-crud
|
||||
@@ -120,6 +120,8 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
option() {
|
||||
const type = this.query.type
|
||||
const labelName = type === 0 ? '岗位名称' : type === 1 ? '行业名称' : '时间'
|
||||
return {
|
||||
height: "auto",
|
||||
tip: false,
|
||||
@@ -141,15 +143,15 @@ export default {
|
||||
align: 'center',
|
||||
column: [
|
||||
{
|
||||
label: "名称",
|
||||
label: labelName,
|
||||
prop: "name",
|
||||
},
|
||||
{
|
||||
label: "零工人数",
|
||||
label: "申请人数",
|
||||
prop: "workerCount",
|
||||
},
|
||||
{
|
||||
label: "零工岗位人数",
|
||||
label: "需求人数",
|
||||
prop: "workCount",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<basic-container>
|
||||
<jl-go-back></jl-go-back>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<avue-form :option="formOption" v-model="form" @submit="handleSubmit" ref="form">
|
||||
<template slot="policyFileUrl">
|
||||
<basic-container>
|
||||
<jl-go-back></jl-go-back>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<avue-form :option="formOption" v-model="form" @submit="handleSubmit" ref="form">
|
||||
<template slot="policyFileUrl">
|
||||
<div class="policyFileUrlWrapper">
|
||||
<div class="uploadWrapperAb">
|
||||
<el-upload
|
||||
@@ -13,270 +13,271 @@
|
||||
:show-file-list="false"
|
||||
:http-request="allUpload"
|
||||
:multiple="false"
|
||||
><el-button size="small" type="primary">点击上传</el-button></el-upload>
|
||||
>
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<avue-input disabled v-model="policyFileUrl" placeholder="点击上传文件"></avue-input>
|
||||
</div>
|
||||
</template>
|
||||
</avue-form>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<Tinymce v-model="form.note" ref="tinymce" style="height: 100%;"></Tinymce>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</basic-container>
|
||||
</template>
|
||||
<script>
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
import { quillEditor } from "vue-quill-editor";
|
||||
|
||||
|
||||
import { addNews, getNewsDetail, editNews } from "@/api/manage/news"
|
||||
import { putFile } from "@/api/resource/oss";
|
||||
import Tinymce from "@/components/Tinymce";
|
||||
import {getClassifyDic} from '@/api/help/article/classify'
|
||||
|
||||
const toolbarItems = [
|
||||
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
|
||||
["blockquote", "code-block"], // 引用 代码块
|
||||
[{ header: 1 }, { header: 2 }], // 1、2 级标题
|
||||
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表
|
||||
[{ script: "sub" }, { script: "super" }], // 上标/下标
|
||||
[{ indent: "-1" }, { indent: "+1" }], // 缩进
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
[{ size: ["small", false, "large", "huge"] }], // 字体大小
|
||||
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
|
||||
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
|
||||
[{ font: [] }], // 字体种类
|
||||
[{ align: [] }], // 对齐方式
|
||||
["clean"], // 清除文本格式
|
||||
["image"], // 链接、图片、视频
|
||||
]
|
||||
export default {
|
||||
components: { quillEditor, Tinymce},
|
||||
props: {
|
||||
id: Number,
|
||||
type: String
|
||||
},
|
||||
mounted() {
|
||||
this.onload()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
policyFileUrl: '',
|
||||
putFile,
|
||||
imageUrl: '',
|
||||
ruleForm: {
|
||||
content: null,
|
||||
},
|
||||
form: {
|
||||
note: ''
|
||||
},
|
||||
description:'',
|
||||
formOption: {
|
||||
// labelWidth:120,
|
||||
column: [
|
||||
{
|
||||
"label": "服务时间",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "createTime",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务时间"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务发起人",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "fromName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务发起人"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务对象",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "toName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务对象"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务主题",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveTheme",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务主题"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务内容",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveContent",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务内容"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "备注1",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "bak1",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入备注1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "政策文件地址",
|
||||
prop: "policyFileUrl",
|
||||
span: 24,
|
||||
labelWidth: 120,
|
||||
hide: true,
|
||||
slot: true,
|
||||
formslot: true,
|
||||
showWordLimit: true,
|
||||
</avue-form>
|
||||
|
||||
},
|
||||
]
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<Tinymce v-model="form.note" ref="tinymce" style="height: 100%;"></Tinymce>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</basic-container>
|
||||
</template>
|
||||
<script>
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
import {quillEditor} from "vue-quill-editor";
|
||||
|
||||
|
||||
import {addNews, getNewsDetail, editNews} from "@/api/manage/news"
|
||||
import {putFile} from "@/api/resource/oss";
|
||||
import Tinymce from "@/components/Tinymce";
|
||||
import {getClassifyDic} from '@/api/help/article/classify'
|
||||
|
||||
const toolbarItems = [
|
||||
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
|
||||
["blockquote", "code-block"], // 引用 代码块
|
||||
[{header: 1}, {header: 2}], // 1、2 级标题
|
||||
[{list: "ordered"}, {list: "bullet"}], // 有序、无序列表
|
||||
[{script: "sub"}, {script: "super"}], // 上标/下标
|
||||
[{indent: "-1"}, {indent: "+1"}], // 缩进
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
[{size: ["small", false, "large", "huge"]}], // 字体大小
|
||||
[{header: [1, 2, 3, 4, 5, 6, false]}], // 标题
|
||||
[{color: []}, {background: []}], // 字体颜色、字体背景颜色
|
||||
[{font: []}], // 字体种类
|
||||
[{align: []}], // 对齐方式
|
||||
["clean"], // 清除文本格式
|
||||
["image"], // 链接、图片、视频
|
||||
]
|
||||
export default {
|
||||
components: {quillEditor, Tinymce},
|
||||
props: {
|
||||
id: Number,
|
||||
type: String
|
||||
},
|
||||
mounted() {
|
||||
this.onload()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
policyFileUrl: '',
|
||||
putFile,
|
||||
imageUrl: '',
|
||||
ruleForm: {
|
||||
content: null,
|
||||
},
|
||||
form: {
|
||||
note: ''
|
||||
},
|
||||
description: '',
|
||||
formOption: {
|
||||
// labelWidth:120,
|
||||
column: [
|
||||
{
|
||||
"label": "服务时间",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "createTime",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务时间"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务发起人",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "fromName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务发起人"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务对象",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "toName",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务对象"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务主题",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveTheme",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务主题"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "服务内容",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "serveContent",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入服务内容"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "备注1",
|
||||
"span": 24,
|
||||
labelWidth: 100,
|
||||
"prop": "bak1",
|
||||
"rules": [
|
||||
{
|
||||
"required": true,
|
||||
"message": "请输入备注1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "政策文件地址",
|
||||
prop: "policyFileUrl",
|
||||
span: 24,
|
||||
labelWidth: 120,
|
||||
hide: true,
|
||||
slot: true,
|
||||
formslot: true,
|
||||
showWordLimit: true,
|
||||
|
||||
},
|
||||
editorOption: {
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: toolbarItems,
|
||||
handlers: {
|
||||
'image': function (value) {
|
||||
if (value) {
|
||||
document.querySelector('.avatar-uploader input').click()
|
||||
} else {
|
||||
this.quill.format('image', false);
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
editorOption: {
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: toolbarItems,
|
||||
handlers: {
|
||||
'image': function (value) {
|
||||
if (value) {
|
||||
document.querySelector('.avatar-uploader input').click()
|
||||
} else {
|
||||
this.quill.format('image', false);
|
||||
}
|
||||
},//工具菜单栏配置
|
||||
},
|
||||
placeholder: "请在这里编写文章内容", //提示
|
||||
readyOnly: false, //是否只读
|
||||
theme: "snow", //主题 snow/bubble
|
||||
syntax: true, //语法检测
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 值发生变化
|
||||
onEditorChange(editor) {
|
||||
this.content = editor.html;
|
||||
}
|
||||
}
|
||||
},//工具菜单栏配置
|
||||
},
|
||||
handleSubmit(form, done) {
|
||||
// this.form['note'] = this.$refs.tinymce.getContent()
|
||||
|
||||
if(this.form.note.length>64*512){
|
||||
this.$message.error('文章内容不能超过64KB!');
|
||||
done()
|
||||
}
|
||||
else{
|
||||
if (this.type == 'add') {
|
||||
addNews(
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('添加成功');
|
||||
this.$router.go(-1);
|
||||
})
|
||||
}
|
||||
else if (this.type == 'edit') {
|
||||
editNews(
|
||||
this.id,
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('修改成功');
|
||||
done()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
/*上传图片*/
|
||||
handleAvatarSuccess(res) {
|
||||
let quill = this.$refs.QuillEditor.quill
|
||||
let length = quill.getSelection().index;//获取光标所在位置
|
||||
quill.insertEmbed(length, 'image', res.data.link)
|
||||
quill.setSelection(length + 1)//光标后移一位
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
|
||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||
if (!isJPG) {
|
||||
this.$message.error('上传图片格式不正确');
|
||||
}
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传图片大小不能超过 2MB!');
|
||||
}
|
||||
return isJPG && isLt2M;
|
||||
},
|
||||
onload() {
|
||||
if (this.id && this.type == 'edit') {
|
||||
getNewsDetail(this.id).then(res => {
|
||||
this.form = res.data.data;
|
||||
this.description=this.form.description;
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
placeholder: "请在这里编写文章内容", //提示
|
||||
readyOnly: false, //是否只读
|
||||
theme: "snow", //主题 snow/bubble
|
||||
syntax: true, //语法检测
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.avatar-uploader {
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ql-editor {
|
||||
height: 400px;
|
||||
}
|
||||
.policyFileUrlWrapper {
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 值发生变化
|
||||
onEditorChange(editor) {
|
||||
this.content = editor.html;
|
||||
},
|
||||
handleSubmit(form, done) {
|
||||
// this.form['note'] = this.$refs.tinymce.getContent()
|
||||
|
||||
if (this.form.note.length > 64 * 512) {
|
||||
this.$message.error('文章内容不能超过64KB!');
|
||||
done()
|
||||
} else {
|
||||
if (this.type == 'add') {
|
||||
addNews(
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('添加成功');
|
||||
this.$router.go(-1);
|
||||
})
|
||||
} else if (this.type == 'edit') {
|
||||
editNews(
|
||||
this.id,
|
||||
this.form.articleTitle,
|
||||
this.form.headPic,
|
||||
this.form.articleSrc,
|
||||
this.form.articleSrcUrl,
|
||||
this.form.author,
|
||||
this.form.description,
|
||||
this.form.note,
|
||||
this.form.type
|
||||
).then(() => {
|
||||
this.$message.success('修改成功');
|
||||
done()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
/*上传图片*/
|
||||
handleAvatarSuccess(res) {
|
||||
let quill = this.$refs.QuillEditor.quill
|
||||
let length = quill.getSelection().index;//获取光标所在位置
|
||||
quill.insertEmbed(length, 'image', res.data.link)
|
||||
quill.setSelection(length + 1)//光标后移一位
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isJPG = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"].indexOf(file.type) != -1;
|
||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||
if (!isJPG) {
|
||||
this.$message.error('上传图片格式不正确');
|
||||
}
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传图片大小不能超过 2MB!');
|
||||
}
|
||||
return isJPG && isLt2M;
|
||||
},
|
||||
onload() {
|
||||
if (this.id && this.type == 'edit') {
|
||||
getNewsDetail(this.id).then(res => {
|
||||
this.form = res.data.data;
|
||||
this.description = this.form.description;
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.avatar-uploader {
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ql-editor {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.policyFileUrlWrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -286,5 +287,4 @@
|
||||
z-index: 99;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
</style>
|
||||
|
||||
@@ -56,6 +56,9 @@
|
||||
<template slot="jobDescription" slot-scope="{row}">
|
||||
<TextTooltip :content="row.jobDescription" length="40"></TextTooltip>
|
||||
</template>
|
||||
<template slot="address" slot-scope="{row}">
|
||||
<TextTooltip :content="row.address" length="40"></TextTooltip>
|
||||
</template>
|
||||
</avue-crud>
|
||||
<CustomLoading :visible="rightLoading" size="largeXXL" loading-text="智能分析匹配中"></CustomLoading>
|
||||
</div>
|
||||
@@ -71,9 +74,6 @@
|
||||
|
||||
<script>
|
||||
import {
|
||||
getListAllByLabels,
|
||||
getListGroupByLabels,
|
||||
getServeAllPolicyList,
|
||||
getListByids,
|
||||
getSearchAll,
|
||||
getSearchAllByUserId,
|
||||
@@ -117,6 +117,19 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: '姓别',
|
||||
prop: 'aac004',
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入性别",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '身份证',
|
||||
prop: 'idNumber',
|
||||
@@ -124,12 +137,41 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: '手机号',
|
||||
prop: 'telphone',
|
||||
}, {
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
}, {
|
||||
label: "民族",
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入民族",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口性质",
|
||||
prop: "aac009",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入户口性质",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
@@ -137,6 +179,19 @@ let leftUserOptions = {
|
||||
}, {
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入文化程度",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
}, {
|
||||
label: '个人标签',
|
||||
prop: 'labelsBase',
|
||||
@@ -165,6 +220,10 @@ let rightPostOptions = {
|
||||
}, {
|
||||
label: '用工单位',
|
||||
prop: 'companyName',
|
||||
}, {
|
||||
label: '详细地址',
|
||||
prop: 'address',
|
||||
slot: true,
|
||||
}, {
|
||||
label: '岗位描述',
|
||||
prop: 'jobDescription',
|
||||
@@ -383,14 +442,20 @@ export default {
|
||||
},
|
||||
async getRightSearchByUserId() {
|
||||
const {currentPage, size} = this.rightPages
|
||||
const ids = this.leftUserSelections.map(item => item.userId).join(',');
|
||||
const idNumbers = this.leftUserSelections.map(item => item.idNumber).join(',');
|
||||
const willingJobs = this.leftUserSelections.map(item => item.willingJob);
|
||||
const createTime = Date.now() + 3000
|
||||
this.rightLoading = true
|
||||
let params = {
|
||||
ids, current: currentPage,
|
||||
idNumbers,
|
||||
current: currentPage,
|
||||
size,
|
||||
}
|
||||
let resData = await getSearchAllByUserId(params)
|
||||
let paramsBody = {
|
||||
willingJobs: willingJobs
|
||||
}
|
||||
console.log(params, paramsBody)
|
||||
let resData = await getSearchAllByUserId(params, paramsBody)
|
||||
if (resData.data.code === 200) {
|
||||
const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
setTimeout(() => {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -51,6 +51,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
slot: true,
|
||||
|
||||
@@ -271,6 +271,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
span: 24,
|
||||
@@ -371,6 +372,14 @@ export default {
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入求职意愿", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
|
||||
@@ -51,6 +51,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
slot: true,
|
||||
|
||||
@@ -104,6 +104,14 @@
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
<template slot-scope="{row}" slot="menu">
|
||||
<el-button type="text"
|
||||
icon="el-icon-document"
|
||||
size="small"
|
||||
@click="serveLog(row)"
|
||||
>查看日志
|
||||
</el-button>
|
||||
</template>
|
||||
</avue-crud>
|
||||
|
||||
<!--批量导入-->
|
||||
@@ -118,6 +126,36 @@
|
||||
</template>
|
||||
</avue-form>
|
||||
</el-dialog>
|
||||
<!-- log-->
|
||||
<el-drawer
|
||||
title="服务日志"
|
||||
size="80%"
|
||||
:append-to-body="true"
|
||||
:before-close="handleCloseLog"
|
||||
:visible.sync="innerDrawerLog">
|
||||
<!-- <div>
|
||||
<span>姓名:</span>
|
||||
<span>身份证号:</span>
|
||||
</div> -->
|
||||
<avue-crud
|
||||
:data="logDataSource"
|
||||
:option="logOption"
|
||||
:page.sync="logPage"
|
||||
@row-save="saveLog"
|
||||
@row-update="saveUpdateLog"
|
||||
@row-del="removeLog"
|
||||
@size-change="logSizeChange"
|
||||
@current-change="logCurrentChange"
|
||||
>
|
||||
<!-- <template slot="menuLeft">
|
||||
<el-button @click="addNewLog" icon="el-icon-plus" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot="menu" slot-scope="{row}">
|
||||
<el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">修改</el-button>
|
||||
<el-button type="text" @click="editLogInfo(row.id)" icon="el-icon-edit" size="mini">查看附件</el-button>
|
||||
</template> -->
|
||||
</avue-crud>
|
||||
</el-drawer>
|
||||
<!--/批量导入-->
|
||||
<!--新建 编辑分组dialog-->
|
||||
<add-groups ref="addGroups" @refresh="refresh" :treeData="treeData"></add-groups>
|
||||
@@ -154,7 +192,13 @@ import ied from "@/views/util/import-error-dialog";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import TextTooltip from '@/components/text-tooltip'
|
||||
import {exportList} from "@/api/workstation/post";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
|
||||
let page = {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
}
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
@@ -184,11 +228,11 @@ export default {
|
||||
personTotal: 0,
|
||||
treeData: [],
|
||||
tenantId: "",
|
||||
page: {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
},
|
||||
page: Object.assign({}, page),
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
innerDrawerLog: false,
|
||||
selectUserServeLog: null,
|
||||
tempWorkType: [],
|
||||
worktypeDic: {},
|
||||
arr: [],//////
|
||||
@@ -203,7 +247,7 @@ export default {
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
...mapGetters(["permission", "userInfo"]),
|
||||
permissionList() {
|
||||
return {
|
||||
addBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_add, false),
|
||||
@@ -273,6 +317,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
span: 24,
|
||||
@@ -496,6 +541,7 @@ export default {
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
slot: true,
|
||||
@@ -567,6 +613,45 @@ export default {
|
||||
}
|
||||
return rel;
|
||||
},
|
||||
logOption() {
|
||||
return {
|
||||
editBtn: true,
|
||||
delBtn: true,
|
||||
addBtn: true,
|
||||
viewBtn: true,
|
||||
border: true,
|
||||
index: true,
|
||||
indexLabel: "序号",
|
||||
refreshBtn: false,
|
||||
dialogType: "drawer",
|
||||
addBtnText: "新增日志",
|
||||
height: '100',
|
||||
column: [{
|
||||
label: '服务时间',
|
||||
prop: 'createTime',
|
||||
type: 'date',
|
||||
format: "yyyy-MM-dd",
|
||||
valueFormat: "yyyy-MM-dd HH:mm:ss",
|
||||
}, {
|
||||
label: '服务发起人',
|
||||
prop: 'fromName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务对象',
|
||||
prop: 'toName',
|
||||
display: false,
|
||||
}, {
|
||||
label: '服务主题',
|
||||
prop: 'serveTheme'
|
||||
}, {
|
||||
label: '服务内容',
|
||||
prop: 'serveContent'
|
||||
}, {
|
||||
label: '备注说明',
|
||||
prop: 'bak1'
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initDept();
|
||||
@@ -1029,6 +1114,95 @@ export default {
|
||||
this.selectionList = [];
|
||||
this.$refs.crud.toggleSelection();
|
||||
},
|
||||
async saveLog(row, index, done, loading) {
|
||||
let params = {
|
||||
...row,
|
||||
serveId: this.selectUserServeLog.serveId,
|
||||
serveUserId: this.selectUserServeLog.serveUserId,
|
||||
talentsId: this.selectUserServeLog.id,
|
||||
idNumber: this.selectUserServeLog.idNumber,
|
||||
toName: this.selectUserServeLog.name,
|
||||
fromName: this.userInfo.real_name
|
||||
}
|
||||
console.log(params)
|
||||
let resData = await addServeLog(params)
|
||||
done()
|
||||
if (resData.data.code === 200) {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "添加成功!",
|
||||
});
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
}
|
||||
},
|
||||
async saveUpdateLog(row, index, done, loading) {
|
||||
let params = {
|
||||
id: row.id,
|
||||
createTime: row.createTime,
|
||||
fromName: row.fromName,
|
||||
toName: row.toName,
|
||||
serveTheme: row.serveTheme,
|
||||
serveContent: row.serveContent,
|
||||
bak1: row.bak1,
|
||||
}
|
||||
let resData = await updateServeLog(params)
|
||||
done()
|
||||
if (resData.data.code === 200) {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "修改成功!",
|
||||
});
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
}
|
||||
},
|
||||
removeLog(row, index, done, loading) {
|
||||
this.$confirm("确定将选择数据删除?", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
return removeServeLog({ids: row.id});
|
||||
})
|
||||
.then(() => {
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
});
|
||||
},
|
||||
handleCloseLog() {
|
||||
this.innerDrawerLog = false
|
||||
},
|
||||
logSizeChange(pageSize) {
|
||||
this.logPage.pageSize = pageSize;
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
},
|
||||
logCurrentChange(currentPage) {
|
||||
this.logPage.currentPage = currentPage;
|
||||
this.serveLog(this.selectUserServeLog)
|
||||
},
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
getMainServeUserLog({
|
||||
idNumber: row.id,
|
||||
current: this.logPage.currentPage,
|
||||
size: this.logPage.pageSize
|
||||
}).then(res => {
|
||||
let _this = this;
|
||||
const {records, current, size, total} = res.data.data
|
||||
console.log(records, total)
|
||||
_this.logDataSource = records
|
||||
_this.innerDrawerLog = true
|
||||
_this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
})
|
||||
},
|
||||
/*加载人才列表 */
|
||||
onLoad(page, params = {}) {
|
||||
const paramsd = {
|
||||
|
||||
138
src/views/tenant/main/talents/personnelserve/index.vue
Normal file
138
src/views/tenant/main/talents/personnelserve/index.vue
Normal file
@@ -0,0 +1,138 @@
|
||||
<template>
|
||||
<el-row>
|
||||
<basic-container>
|
||||
<avue-crud
|
||||
:option="option"
|
||||
:table-loading="loading"
|
||||
:data="dataSource"
|
||||
:page.sync="page"
|
||||
ref="crud"
|
||||
v-model="crudValues"
|
||||
:permission="permissionList"
|
||||
@search-change="searchChange"
|
||||
@search-reset="searchReset"
|
||||
@current-change="currentChange"
|
||||
@size-change="sizeChange"
|
||||
class="customPage"
|
||||
>
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from "vuex";
|
||||
import {getList} from "@/api/tenant/personnelserve";
|
||||
|
||||
const page = {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
}
|
||||
const baseOptions = {
|
||||
size: 'medium',
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
editBtn: false,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
refreshBtn: false,
|
||||
menu: true,
|
||||
tip: false,
|
||||
selection: false,
|
||||
align: 'center',
|
||||
searchMenuSpan: 6,
|
||||
searchLabelWidth: 60,
|
||||
}
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
crudValues: {},
|
||||
page: Object.assign({}, page)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
permissionList() {
|
||||
return {
|
||||
addBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_add, false),
|
||||
viewBtn: true,
|
||||
delBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_del, false),
|
||||
editBtn: this.vaildData(this.permission.tenant_main_talents_latent_index_edit, false),
|
||||
};
|
||||
},
|
||||
option() {
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "name",
|
||||
search: true,
|
||||
searchSpan: 6,
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
search: true,
|
||||
searchSpan: 6,
|
||||
},
|
||||
{
|
||||
label: "手机号",
|
||||
prop: "phone",
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
searchChange(params, done) {
|
||||
this.query = params;
|
||||
this.page.currentPage = 1;
|
||||
this.onLoad(this.page, params);
|
||||
done();
|
||||
},
|
||||
searchReset() {
|
||||
this.query = {};
|
||||
this.onLoad(this.page);
|
||||
},
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage;
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
sizeChange(pageSize) {
|
||||
this.page.pageSize = pageSize;
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
onLoad(page, params = {}) {
|
||||
const {releaseTimeRange} = params;
|
||||
let values = {
|
||||
...params,
|
||||
};
|
||||
this.loading = true;
|
||||
getList(
|
||||
page.currentPage,
|
||||
page.pageSize,
|
||||
Object.assign(values, this.query)
|
||||
).then((res) => {
|
||||
const {total, records, page} = res.data.data
|
||||
this.page.total = total;
|
||||
// this.page.currentPage = page
|
||||
this.dataSource = records;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
</style>
|
||||
@@ -38,17 +38,34 @@
|
||||
</template>
|
||||
|
||||
<template slot-scope="{ disabled }" slot="address">
|
||||
<select-map
|
||||
<!-- <select-map-->
|
||||
<!-- ref="selectMap"-->
|
||||
<!-- @addAddress="addAddress"-->
|
||||
<!-- @addressDel="addressDel"-->
|
||||
<!-- @input="inputAddress"-->
|
||||
<!-- :isCanEdit="!disabled"-->
|
||||
<!-- :lng="obj.lon"-->
|
||||
<!-- :lat="obj.lat"-->
|
||||
<!-- :address="obj.address"-->
|
||||
<!-- :type="type"-->
|
||||
<!-- ></select-map>-->
|
||||
<super-map-view
|
||||
ref="selectMap"
|
||||
@addAddress="addAddress"
|
||||
@addressDel="addressDel"
|
||||
@input="inputAddress"
|
||||
:isCanEdit="!disabled"
|
||||
:lng="obj.lon"
|
||||
:lat="obj.lat"
|
||||
:longitude="obj.lon"
|
||||
:latitude="obj.lat"
|
||||
:address="obj.address"
|
||||
:type="type"
|
||||
></select-map>
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
></super-map-view>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="wage">
|
||||
<el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select" @blur="wageBlur">
|
||||
@@ -113,7 +130,6 @@
|
||||
import {add, detail, update, tradeListAdd, workListAdd, getMounthDays, getDictionary} from "@/api/tenant/mission";
|
||||
import {getTrade, getWork, getWorkTypes} from "@/api/tenant/common";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {mapGetters} from "vuex";
|
||||
import {
|
||||
@@ -121,6 +137,7 @@ import {
|
||||
wageOptionsWithNoMonth,
|
||||
educationState,
|
||||
} from "@/common/dic";
|
||||
import {dateFormat} from "@/util/date";
|
||||
|
||||
const validateTel = (rule, value, callback) => {
|
||||
if (isvalidatemobile(value)[0]) {
|
||||
@@ -160,6 +177,8 @@ export default {
|
||||
tradeId: null,
|
||||
tradeNames: null,
|
||||
userNature: "灵活用工",
|
||||
lat: 31.126855,
|
||||
lon: 104.397894
|
||||
},
|
||||
loading: false,
|
||||
drawer: false,
|
||||
@@ -176,7 +195,6 @@ export default {
|
||||
},
|
||||
components: {
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
},
|
||||
created() {
|
||||
this.$store.dispatch("InitArea");
|
||||
@@ -337,8 +355,9 @@ export default {
|
||||
valueFormat: "yyyy-MM-dd 00:00:00",
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
const oneDay = 1000 * 60 * 60 * 24
|
||||
return !(
|
||||
time.getTime() > Date.now() &&
|
||||
time.getTime() + oneDay > Date.now() &&
|
||||
(!self.endTime ||
|
||||
(time.getTime() < self.endTime &&
|
||||
time.getTime() > self.endTime - 2678400000)) &&
|
||||
@@ -626,7 +645,7 @@ export default {
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/dictionary?code=company_nature",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictkey",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
@@ -926,7 +945,8 @@ export default {
|
||||
education: 7,
|
||||
experienceDesc: "不限经验",
|
||||
userNature: "灵活用工",
|
||||
|
||||
lat: 31.126855,
|
||||
lon: 104.397894
|
||||
};
|
||||
},
|
||||
/*地图*/
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="obj" @row-del="rowDel"
|
||||
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
|
||||
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
|
||||
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
|
||||
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
|
||||
@on-load="onLoad">
|
||||
<!--自定义列-->
|
||||
<template slot="missionTitle" slot-scope="{ row }">
|
||||
<el-tooltip effect="dark" :content="row.missionTitle" placement="top">
|
||||
@@ -44,15 +45,18 @@
|
||||
v-show="vaildData(permission.tenant_mission_view,false)"
|
||||
>查看</el-button>-->
|
||||
<el-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)">复制</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_add, false)">复制
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row)"
|
||||
v-show="vaildData(permission.tenant_mission_delete, false)">删除</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_delete, false)">删除
|
||||
</el-button>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
<!--自定义按钮-->
|
||||
<template slot="menuLeft">
|
||||
<el-button type="warning" plain icon="el-icon-plus" size="small" @click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)">发布任务</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_add, false)">发布任务
|
||||
</el-button>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
</avue-crud>
|
||||
@@ -64,13 +68,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getExpiredList, remove, detail } from "@/api/tenant/mission";
|
||||
import {getExpiredList, remove, detail} from "@/api/tenant/mission";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
@@ -135,11 +138,11 @@ export default {
|
||||
components: {
|
||||
CopyMission,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
},
|
||||
created() { },
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option() {
|
||||
@@ -240,8 +243,8 @@ export default {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", { style: "font-size: 16px" }, "您确定要删除此任务吗? "),
|
||||
h("p", { style: "color: red" }, "一旦删除则无法找回"),
|
||||
h("p", {style: "font-size: 16px"}, "您确定要删除此任务吗? "),
|
||||
h("p", {style: "color: red"}, "一旦删除则无法找回"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
|
||||
@@ -25,17 +25,17 @@
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<template slot="takeOnCount" slot-scope="{ row }">
|
||||
<div style="color: #409eff;cursor: pointer;" @click="employmentNum(row)">
|
||||
<div style="color: #409eff;cursor: pointer;" @click="employmentNum(row)">
|
||||
<b>{{ row.takeOnCount }}人</b>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 开始日期 -->
|
||||
<template slot="stime" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}</span>
|
||||
<span>{{ format(row.stime) }}</span>
|
||||
</template>
|
||||
<!-- 完成日期 -->
|
||||
<template slot="etime" slot-scope="{row}">
|
||||
<span>{{format(row.etime)}}</span>
|
||||
<span>{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<template slot="toPayEnd" slot-scope="{ row }">
|
||||
<div v-if="row.toPayEnd < 0" style="color: #f56c6c">
|
||||
@@ -70,7 +70,8 @@
|
||||
size="small"
|
||||
@click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>发布任务</save-button>
|
||||
>发布任务
|
||||
</save-button>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
<!--自定义操作栏-->
|
||||
@@ -80,7 +81,8 @@
|
||||
:type="type"
|
||||
@click="appraise(row)"
|
||||
v-show="vaildData(permission.tenant_mission_appraise,false)"
|
||||
>评价</el-button>
|
||||
>评价
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
icon="el-icon-view"
|
||||
:size="size"
|
||||
@@ -94,7 +96,8 @@
|
||||
:type="type"
|
||||
@click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>复制</el-button>
|
||||
>复制
|
||||
</el-button>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
</avue-crud>
|
||||
@@ -115,21 +118,20 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getList, detail, getWagePerson } from "@/api/tenant/mission";
|
||||
import {getList, detail, getWagePerson} from "@/api/tenant/mission";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import Appraise from "../Dialog/Appraise";
|
||||
import Employ from "../Dialog/Employ";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import employmentNum from "../Dialog/EmployNumber";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis (value) {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
if (value.length > 15) {
|
||||
return value.slice(0, 14) + "...";
|
||||
@@ -137,7 +139,7 @@ export default {
|
||||
return value;
|
||||
},
|
||||
},
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
viewDrawer: false,
|
||||
view: {},
|
||||
@@ -160,15 +162,15 @@ export default {
|
||||
Appraise,
|
||||
Employ,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
employmentNum
|
||||
},
|
||||
created () { },
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option () {
|
||||
option() {
|
||||
return {
|
||||
height: "auto",
|
||||
calcHeight: 40,
|
||||
@@ -307,46 +309,46 @@ export default {
|
||||
},
|
||||
watch: {},
|
||||
methods: {
|
||||
format (date) {
|
||||
format(date) {
|
||||
if (date) {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
// 录用人数
|
||||
employmentNum(row){
|
||||
employmentNum(row) {
|
||||
this.$refs.employmentNumber.openDialog(row, 2);//查看已录用人员
|
||||
},
|
||||
/*查看*/
|
||||
rowView (row) {
|
||||
rowView(row) {
|
||||
detail(row.missionNo).then((res) => {
|
||||
this.viewDrawer = true;
|
||||
this.view = res;
|
||||
});
|
||||
},
|
||||
/*打开录用人员*/
|
||||
employ (row, state) {
|
||||
employ(row, state) {
|
||||
this.$refs.employ.openDialog(row, state);
|
||||
},
|
||||
/*打开复制*/
|
||||
rowCopy (row, type) {
|
||||
rowCopy(row, type) {
|
||||
this.$refs.copy.onLoad(row, type);
|
||||
},
|
||||
/*打开评价*/
|
||||
appraise (row) {
|
||||
appraise(row) {
|
||||
this.$refs.appraise.openDialog(row);
|
||||
},
|
||||
currentChange (currentPage) {
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage;
|
||||
},
|
||||
sizeChange (pageSize) {
|
||||
sizeChange(pageSize) {
|
||||
this.page.pageSize = pageSize;
|
||||
},
|
||||
/*刷新本页 带搜索参数*/
|
||||
refreshChange () {
|
||||
refreshChange() {
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
/*加载数据*/
|
||||
onLoad (page, params = {}) {
|
||||
onLoad(page, params = {}) {
|
||||
this.loading = true;
|
||||
getList(
|
||||
page.currentPage,
|
||||
@@ -368,7 +370,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/*返回首页*/
|
||||
backIndex () {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
},
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
</template>
|
||||
<!-- 开始日期 -->
|
||||
<template slot="stime" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}</span>
|
||||
<span>{{ format(row.stime) }}</span>
|
||||
</template>
|
||||
<!-- 完成日期 -->
|
||||
<template slot="etime" slot-scope="{row}">
|
||||
<span>{{format(row.etime)}}</span>
|
||||
<span>{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<template slot="takeOnCount" slot-scope="{ row }">
|
||||
<div style="color: #409eff; cursor: pointer;" @click="employmentNum(row)">
|
||||
@@ -59,7 +59,8 @@
|
||||
size="small"
|
||||
@click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>发布任务</save-button
|
||||
>发布任务
|
||||
</save-button
|
||||
>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
@@ -70,7 +71,8 @@
|
||||
:type="type"
|
||||
@click="rowComplete(row)"
|
||||
v-show="vaildData(permission.tenant_mission_finish, false)"
|
||||
>完成任务</save-button
|
||||
>完成任务
|
||||
</save-button
|
||||
>
|
||||
<el-button
|
||||
icon="el-icon-view"
|
||||
@@ -78,7 +80,8 @@
|
||||
:type="type"
|
||||
@click="rowView(row)"
|
||||
v-show="vaildData(permission.tenant_mission_view, false)"
|
||||
>查看</el-button
|
||||
>查看
|
||||
</el-button
|
||||
>
|
||||
<save-button
|
||||
icon="el-icon-check"
|
||||
@@ -86,7 +89,8 @@
|
||||
:type="type"
|
||||
@click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>复制</save-button
|
||||
>复制
|
||||
</save-button
|
||||
>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
@@ -97,7 +101,7 @@
|
||||
<!--录用人员dialog-->
|
||||
<Employ ref="employ" :status="status" v-show="false"></Employ>
|
||||
<!-- 录用人数 -->
|
||||
<employment-num
|
||||
<employment-num
|
||||
ref="employmentNum"
|
||||
:status="1"
|
||||
v-show="false"
|
||||
@@ -110,21 +114,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getList, complete, detail } from "@/api/tenant/mission";
|
||||
import {getList, complete, detail} from "@/api/tenant/mission";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import Employ from "../Dialog/Employ";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import employmentNum from "../Dialog/EmployNumber";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
comments: {
|
||||
|
||||
},
|
||||
comments: {},
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
@@ -156,12 +157,12 @@ export default {
|
||||
CopyMission,
|
||||
SkillSelect,
|
||||
Employ,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
employmentNum
|
||||
},
|
||||
created() {},
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option() {
|
||||
@@ -300,7 +301,7 @@ export default {
|
||||
}
|
||||
},
|
||||
// 录用人数
|
||||
employmentNum(row){
|
||||
employmentNum(row) {
|
||||
this.$refs.employmentNum.openDialog(row, 2);//查看已录用人员
|
||||
},
|
||||
/*查看*/
|
||||
@@ -323,7 +324,7 @@ export default {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", { style: "font-size: 16px" }, "您确定此任务已经完成吗? "),
|
||||
h("p", {style: "font-size: 16px"}, "您确定此任务已经完成吗? "),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
|
||||
@@ -113,7 +113,6 @@ import Recommend from "../Dialog/Recommend";
|
||||
import Contrast from "../Dialog/Contrast"
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {isExcel} from "@/util/validate";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import {mapGetters} from "vuex";
|
||||
@@ -132,7 +131,6 @@ export default {
|
||||
Employ,
|
||||
Recommend,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
Contrast,
|
||||
|
||||
@@ -56,6 +56,14 @@
|
||||
placeholder="请选择 工作地址"
|
||||
></jl-cityLabel-cascader>
|
||||
</template>
|
||||
<template slot="cityIdFrom" slot-scope="{ disabled }">
|
||||
<jl-cityLabel-cascader
|
||||
:disabled="disabled"
|
||||
filterable
|
||||
v-model="obj.cityId"
|
||||
placeholder="请选择 工作地址"
|
||||
></jl-cityLabel-cascader>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="wage">
|
||||
<el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select">
|
||||
<el-select v-model="obj.wageUnitCategory" slot="append" placeholder="请选择" @change="getMaxAndMin">
|
||||
@@ -76,17 +84,34 @@
|
||||
</template>
|
||||
|
||||
<template slot-scope="{ disabled }" slot="address">
|
||||
<select-map
|
||||
<!-- <select-map-->
|
||||
<!-- ref="selectMap"-->
|
||||
<!-- @addAddress="addAddress"-->
|
||||
<!-- @addressDel="addressDel"-->
|
||||
<!-- @input="inputAddress"-->
|
||||
<!-- :isCanEdit="!disabled"-->
|
||||
<!-- :lng="obj.lon"-->
|
||||
<!-- :lat="obj.lat"-->
|
||||
<!-- :address="obj.address"-->
|
||||
<!-- :type="type"-->
|
||||
<!-- ></select-map>-->
|
||||
<super-map-view
|
||||
ref="selectMap"
|
||||
@addAddress="addAddress"
|
||||
@addressDel="addressDel"
|
||||
@input="inputAddress"
|
||||
:isCanEdit="!disabled"
|
||||
:lng="obj.lon"
|
||||
:lat="obj.lat"
|
||||
:longitude="obj.lon"
|
||||
:latitude="obj.lat"
|
||||
:address="obj.address"
|
||||
:type="type"
|
||||
></select-map>
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
></super-map-view>
|
||||
</template>
|
||||
<!-- 行业类型 -->
|
||||
<!-- <template slot="tradeId">
|
||||
@@ -151,7 +176,6 @@
|
||||
import {add, detail, update, tradeListAdd, getMounthDays, getDictionary} from "@/api/tenant/postzp";
|
||||
import {getTrade, getWork, getSkillList, getWorkTypes} from "@/api/tenant/common";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {mapGetters} from "vuex";
|
||||
import {
|
||||
@@ -200,6 +224,8 @@ export default {
|
||||
tradeId: null,
|
||||
tradeNames: null,
|
||||
userNature: "灵活用工",
|
||||
lat: 31.126855,
|
||||
lon: 104.397894
|
||||
},
|
||||
loading: false,
|
||||
drawer: false,
|
||||
@@ -217,7 +243,6 @@ export default {
|
||||
},
|
||||
components: {
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
},
|
||||
created() {
|
||||
this.$store.dispatch("InitArea");
|
||||
@@ -449,8 +474,9 @@ export default {
|
||||
valueFormat: "yyyy-MM-dd 00:00:00",
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
const oneDay = 1000 * 60 * 60 * 24
|
||||
return !(
|
||||
time.getTime() > Date.now() &&
|
||||
time.getTime() + oneDay > Date.now() &&
|
||||
(!self.endTime ||
|
||||
(time.getTime() < self.endTime &&
|
||||
time.getTime() > self.endTime - 2678400000)) &&
|
||||
@@ -748,7 +774,7 @@ export default {
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/dictionary?code=company_nature",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictkey",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
@@ -793,7 +819,7 @@ export default {
|
||||
},
|
||||
{
|
||||
min: 1,
|
||||
max: 5,
|
||||
max: 8,
|
||||
message: "长度在 1 到 5 个字",
|
||||
trigger: "blur",
|
||||
},
|
||||
@@ -1059,7 +1085,8 @@ export default {
|
||||
education: 7,
|
||||
experienceDesc: "不限经验",
|
||||
userNature: "灵活用工",
|
||||
|
||||
lat: 31.126855,
|
||||
lon: 104.397894
|
||||
};
|
||||
},
|
||||
/*地图*/
|
||||
@@ -1152,7 +1179,7 @@ export default {
|
||||
callName: row.callName,
|
||||
callTel: row.callTel,
|
||||
callNumber: row.callNumber,
|
||||
cityId: row.cityId,
|
||||
cityId: row.cityId.replace(/\s+/g, ""),
|
||||
address: row.address,
|
||||
lat: row.lat,
|
||||
lon: row.lon,
|
||||
@@ -1189,6 +1216,7 @@ export default {
|
||||
tradeNames: row.tradeNames,
|
||||
worktypeIds: row.worktypeIds,
|
||||
worktypeNames: row.worktypeNames,
|
||||
jobCompanyScale: row.jobCompanyScale,
|
||||
skillIds: row.workSkills[1],
|
||||
skillNames: row.skillNames,
|
||||
jobDescription: row.jobDescription,
|
||||
@@ -1201,7 +1229,7 @@ export default {
|
||||
callName: row.callName,
|
||||
callTel: row.callTel,
|
||||
callNumber: row.callNumber,
|
||||
cityId: row.cityId,
|
||||
cityId: row.cityId.replace(/\s+/g, ""),
|
||||
address: row.address,
|
||||
lat: row.lat,
|
||||
lon: row.lon,
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
</template>
|
||||
<!-- 开始日期 -->
|
||||
<template slot="stime" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}</span>
|
||||
<span>{{ format(row.stime) }}</span>
|
||||
</template>
|
||||
<!-- 完成日期 -->
|
||||
<template slot="etime" slot-scope="{row}">
|
||||
<span>{{format(row.etime)}}</span>
|
||||
<span>{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<template slot="signUpCount" slot-scope="{ row }">
|
||||
<div style="color: #409eff">
|
||||
@@ -62,14 +62,16 @@
|
||||
:type="type"
|
||||
@click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>复制</el-button>
|
||||
>复制
|
||||
</el-button>
|
||||
<el-button
|
||||
icon="el-icon-delete"
|
||||
:size="size"
|
||||
:type="type"
|
||||
@click="$refs.crud.rowDel(row)"
|
||||
v-show="vaildData(permission.tenant_mission_delete, false)"
|
||||
>删除</el-button>
|
||||
>删除
|
||||
</el-button>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
<!--自定义按钮-->
|
||||
@@ -81,7 +83,8 @@
|
||||
size="small"
|
||||
@click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>发布岗位</el-button>
|
||||
>发布岗位
|
||||
</el-button>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
</avue-crud>
|
||||
@@ -93,19 +96,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getExpiredList, remove, detail } from "@/api/tenant/postzp";
|
||||
import {getExpiredList, remove, detail} from "@/api/tenant/postzp";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
comments: {},
|
||||
filters: {
|
||||
ellipsis (value) {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
if (value.length > 15) {
|
||||
return value.slice(0, 14) + "...";
|
||||
@@ -113,7 +115,7 @@ export default {
|
||||
return value;
|
||||
},
|
||||
},
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
viewDrawer: false,
|
||||
view: {},
|
||||
@@ -164,14 +166,14 @@ export default {
|
||||
components: {
|
||||
CopyMission,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
},
|
||||
created () { },
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option () {
|
||||
option() {
|
||||
return {
|
||||
height: "auto",
|
||||
calcHeight: 40,
|
||||
@@ -210,14 +212,14 @@ export default {
|
||||
prop: "stime",
|
||||
display: false,
|
||||
width: 130,
|
||||
slot:true
|
||||
slot: true
|
||||
},
|
||||
{
|
||||
label: "完成时间",
|
||||
prop: "etime",
|
||||
display: false,
|
||||
width: 130,
|
||||
slot:true
|
||||
slot: true
|
||||
},
|
||||
// {
|
||||
// label: "岗位时间",
|
||||
@@ -248,32 +250,32 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
format (date) {
|
||||
format(date) {
|
||||
if (date) {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
/*查看*/
|
||||
rowView (row) {
|
||||
rowView(row) {
|
||||
detail(row.missionNo).then((res) => {
|
||||
this.viewDrawer = true;
|
||||
this.view = res;
|
||||
});
|
||||
},
|
||||
/*打开新建 复制*/
|
||||
rowCopy (row, type) {
|
||||
rowCopy(row, type) {
|
||||
this.$refs.copy.onLoad(row, type);
|
||||
this.$nextTick(()=>{
|
||||
this.$nextTick(() => {
|
||||
this.$refs.copy.resetFields();//等弹窗里的form表单的dom渲染完在执行this.$refs.staffForm.resetFields(),去除验证
|
||||
})
|
||||
},
|
||||
/*删除岗位*/
|
||||
rowDel (row) {
|
||||
rowDel(row) {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", { style: "font-size: 16px" }, "您确定要删除此岗位吗? "),
|
||||
h("p", { style: "color: red" }, "一旦删除则无法找回"),
|
||||
h("p", {style: "font-size: 16px"}, "您确定要删除此岗位吗? "),
|
||||
h("p", {style: "color: red"}, "一旦删除则无法找回"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
@@ -321,18 +323,18 @@ export default {
|
||||
// });
|
||||
});
|
||||
},
|
||||
currentChange (currentPage) {
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage;
|
||||
},
|
||||
sizeChange (pageSize) {
|
||||
sizeChange(pageSize) {
|
||||
this.page.pageSize = pageSize;
|
||||
},
|
||||
/*刷新本页 带搜索参数*/
|
||||
refreshChange () {
|
||||
refreshChange() {
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
/*加载数据*/
|
||||
onLoad (page, params = {}) {
|
||||
onLoad(page, params = {}) {
|
||||
this.loading = true;
|
||||
getExpiredList(
|
||||
page.currentPage,
|
||||
@@ -346,7 +348,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/*返回首页*/
|
||||
backIndex () {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
},
|
||||
|
||||
@@ -25,17 +25,17 @@
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<template slot="takeOnCount" slot-scope="{ row }">
|
||||
<div style="color: #409eff;cursor: pointer;" @click="employmentNum(row)">
|
||||
<div style="color: #409eff;cursor: pointer;" @click="employmentNum(row)">
|
||||
<b>{{ row.takeOnCount }}人</b>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 开始日期 -->
|
||||
<template slot="stime" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}</span>
|
||||
<span>{{ format(row.stime) }}</span>
|
||||
</template>
|
||||
<!-- 完成日期 -->
|
||||
<template slot="etime" slot-scope="{row}">
|
||||
<span>{{format(row.etime)}}</span>
|
||||
<span>{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<template slot="toPayEnd" slot-scope="{ row }">
|
||||
<div v-if="row.toPayEnd < 0" style="color: #f56c6c">
|
||||
@@ -70,7 +70,8 @@
|
||||
size="small"
|
||||
@click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>发布岗位</save-button>
|
||||
>发布岗位
|
||||
</save-button>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
<!--自定义操作栏-->
|
||||
@@ -80,7 +81,8 @@
|
||||
:type="type"
|
||||
@click="appraise(row)"
|
||||
v-show="vaildData(permission.tenant_mission_appraise,false)"
|
||||
>评价</el-button>
|
||||
>评价
|
||||
</el-button>
|
||||
<!-- <el-button
|
||||
icon="el-icon-view"
|
||||
:size="size"
|
||||
@@ -94,7 +96,8 @@
|
||||
:type="type"
|
||||
@click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>复制</el-button>
|
||||
>复制
|
||||
</el-button>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
</avue-crud>
|
||||
@@ -115,21 +118,20 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getList, detail, getWagePerson } from "@/api/tenant/postzp";
|
||||
import {getList, detail, getWagePerson} from "@/api/tenant/postzp";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import Appraise from "../Dialog/Appraise";
|
||||
import Employ from "../Dialog/Employ";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import employmentNum from "../Dialog/EmployNumber";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis (value) {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
if (value.length > 15) {
|
||||
return value.slice(0, 14) + "...";
|
||||
@@ -137,7 +139,7 @@ export default {
|
||||
return value;
|
||||
},
|
||||
},
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
viewDrawer: false,
|
||||
view: {},
|
||||
@@ -160,15 +162,15 @@ export default {
|
||||
Appraise,
|
||||
Employ,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
employmentNum
|
||||
},
|
||||
created () { },
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option () {
|
||||
option() {
|
||||
return {
|
||||
height: "auto",
|
||||
calcHeight: 40,
|
||||
@@ -215,14 +217,14 @@ export default {
|
||||
prop: "stime",
|
||||
display: false,
|
||||
width: 130,
|
||||
slot:true
|
||||
slot: true
|
||||
},
|
||||
{
|
||||
label: "完成日期",
|
||||
prop: "etime",
|
||||
display: false,
|
||||
width: 130,
|
||||
slot:true
|
||||
slot: true
|
||||
},
|
||||
{
|
||||
label: "录用人数",
|
||||
@@ -259,46 +261,46 @@ export default {
|
||||
},
|
||||
watch: {},
|
||||
methods: {
|
||||
format (date) {
|
||||
format(date) {
|
||||
if (date) {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
// 录用人数
|
||||
employmentNum(row){
|
||||
employmentNum(row) {
|
||||
this.$refs.employmentNumber.openDialog(row, 2);//查看已录用人员
|
||||
},
|
||||
/*查看*/
|
||||
rowView (row) {
|
||||
rowView(row) {
|
||||
detail(row.id).then((res) => {
|
||||
this.viewDrawer = true;
|
||||
this.view = res;
|
||||
});
|
||||
},
|
||||
/*打开录用人员*/
|
||||
employ (row, state) {
|
||||
employ(row, state) {
|
||||
this.$refs.employ.openDialog(row, state);
|
||||
},
|
||||
/*打开复制*/
|
||||
rowCopy (row, type) {
|
||||
rowCopy(row, type) {
|
||||
this.$refs.copy.onLoad(row, type);
|
||||
},
|
||||
/*打开评价*/
|
||||
appraise (row) {
|
||||
appraise(row) {
|
||||
this.$refs.appraise.openDialog(row);
|
||||
},
|
||||
currentChange (currentPage) {
|
||||
currentChange(currentPage) {
|
||||
this.page.currentPage = currentPage;
|
||||
},
|
||||
sizeChange (pageSize) {
|
||||
sizeChange(pageSize) {
|
||||
this.page.pageSize = pageSize;
|
||||
},
|
||||
/*刷新本页 带搜索参数*/
|
||||
refreshChange () {
|
||||
refreshChange() {
|
||||
this.onLoad(this.page, this.query);
|
||||
},
|
||||
/*加载数据*/
|
||||
onLoad (page, params = {}) {
|
||||
onLoad(page, params = {}) {
|
||||
this.loading = true;
|
||||
getList(
|
||||
page.currentPage,
|
||||
@@ -320,7 +322,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/*返回首页*/
|
||||
backIndex () {
|
||||
backIndex() {
|
||||
this.$emit("refresh");
|
||||
},
|
||||
},
|
||||
@@ -331,4 +333,4 @@ export default {
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
</template>
|
||||
<!-- 开始日期 -->
|
||||
<template slot="stime" slot-scope="{row}">
|
||||
<span>{{format(row.stime)}}</span>
|
||||
<span>{{ format(row.stime) }}</span>
|
||||
</template>
|
||||
<!-- 完成日期 -->
|
||||
<template slot="etime" slot-scope="{row}">
|
||||
<span>{{format(row.etime)}}</span>
|
||||
<span>{{ format(row.etime) }}</span>
|
||||
</template>
|
||||
<template slot="takeOnCount" slot-scope="{ row }">
|
||||
<div style="color: #409eff; cursor: pointer;" @click="employmentNum(row)">
|
||||
@@ -59,7 +59,8 @@
|
||||
size="small"
|
||||
@click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>发布岗位</save-button
|
||||
>发布岗位
|
||||
</save-button
|
||||
>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
@@ -70,7 +71,8 @@
|
||||
:type="type"
|
||||
@click="rowComplete(row)"
|
||||
v-show="vaildData(permission.tenant_mission_finish, false)"
|
||||
>完成岗位</save-button
|
||||
>完成岗位
|
||||
</save-button
|
||||
>
|
||||
<el-button
|
||||
icon="el-icon-view"
|
||||
@@ -78,7 +80,8 @@
|
||||
:type="type"
|
||||
@click="rowView(row)"
|
||||
v-show="vaildData(permission.tenant_mission_view, false)"
|
||||
>查看</el-button
|
||||
>查看
|
||||
</el-button
|
||||
>
|
||||
<save-button
|
||||
icon="el-icon-check"
|
||||
@@ -86,7 +89,8 @@
|
||||
:type="type"
|
||||
@click="rowCopy(row, 'copy')"
|
||||
v-show="vaildData(permission.tenant_mission_add, false)"
|
||||
>复制</save-button
|
||||
>复制
|
||||
</save-button
|
||||
>
|
||||
</div>
|
||||
<!--/自定义操作栏-->
|
||||
@@ -97,7 +101,7 @@
|
||||
<!--录用人员dialog-->
|
||||
<Employ ref="employ" :status="status" v-show="false"></Employ>
|
||||
<!-- 录用人数 -->
|
||||
<employment-num
|
||||
<employment-num
|
||||
ref="employmentNum"
|
||||
:status="1"
|
||||
v-show="false"
|
||||
@@ -110,21 +114,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getList, complete, detail } from "@/api/tenant/postzp";
|
||||
import {getList, complete, detail} from "@/api/tenant/postzp";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import Employ from "../Dialog/Employ";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import employmentNum from "../Dialog/EmployNumber";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import saveButton from "./saveButton";
|
||||
|
||||
export default {
|
||||
comments: {
|
||||
|
||||
},
|
||||
comments: {},
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
@@ -156,12 +157,12 @@ export default {
|
||||
CopyMission,
|
||||
SkillSelect,
|
||||
Employ,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
employmentNum
|
||||
},
|
||||
created() {},
|
||||
created() {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
option() {
|
||||
@@ -244,7 +245,7 @@ export default {
|
||||
}
|
||||
},
|
||||
// 录用人数
|
||||
employmentNum(row){
|
||||
employmentNum(row) {
|
||||
this.$refs.employmentNum.openDialog(row, 2);//查看已录用人员
|
||||
},
|
||||
/*查看*/
|
||||
@@ -267,7 +268,7 @@ export default {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", { style: "font-size: 16px" }, "您确定此岗位已经完成吗? "),
|
||||
h("p", {style: "font-size: 16px"}, "您确定此岗位已经完成吗? "),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
@@ -351,4 +352,4 @@ export default {
|
||||
.el-form-item {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
<template>
|
||||
<div>
|
||||
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="obj" @row-del="rowDel"
|
||||
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
|
||||
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
|
||||
@row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen" :page.sync="page"
|
||||
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
|
||||
@on-load="onLoad">
|
||||
<!--自定义按钮-->
|
||||
<template slot="menuLeft">
|
||||
<save-button type="warning" plain icon="el-icon-plus" size="small" @click="rowCopy('', 'add')"
|
||||
v-show="vaildData(permission.tenant_works_add, false)">发布岗位</save-button>
|
||||
<el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"
|
||||
v-show="vaildData(permission.tenant_works_add, false)">批量导入</el-button>
|
||||
v-show="vaildData(permission.tenant_works_add, false)">发布岗位
|
||||
</save-button>
|
||||
<el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"
|
||||
v-show="vaildData(permission.tenant_works_add, false)">批量导入
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot="wage"slot-scope="{ row }">
|
||||
<div>{{row.wage}}{{wageUnitCategoryStateEnum[row.wageUnitCategory]}}</div>
|
||||
<template slot="wage" slot-scope="{ row }">
|
||||
<div>{{ row.wage }}{{ wageUnitCategoryStateEnum[row.wageUnitCategory] }}</div>
|
||||
</template>
|
||||
<!--/自定义按钮-->
|
||||
<!--自定义列-->
|
||||
@@ -58,12 +61,15 @@
|
||||
<!-- <el-button type="text" size="mini" @click="recommend(row)">重点人群推送</el-button> -->
|
||||
<el-button type="text" size="mini" @click="employ(row, 1)">申请录用</el-button>
|
||||
<el-button icon="el-icon-view" :size="size" :type="type" @click.stop="rowView(row)"
|
||||
v-show="vaildData(permission.tenant_mission_view, false)">查看</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_view, false)">查看
|
||||
</el-button>
|
||||
<!-- <save-button icon="el-icon-check" :size="size" :type="type" @click="rowCopy(row, 'copy')">复制</save-button> -->
|
||||
<el-button icon="el-icon-edit" :size="size" :type="type" @click="rowCopy(row, 'edit')" :disabled="false"
|
||||
v-show="vaildData(permission.tenant_mission_edit, false)">编辑</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_edit, false)">编辑
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row)" :disabled="false"
|
||||
v-show="vaildData(permission.tenant_mission_cancel, false)" v-if="row.reviewState !== 8">取消</el-button>
|
||||
v-show="vaildData(permission.tenant_mission_cancel, false)" v-if="row.reviewState !== 8">取消
|
||||
</el-button>
|
||||
<!-- <el-button type="text" size="mini" @click="contrast(row)"
|
||||
>比对人才库</el-button> -->
|
||||
</div>
|
||||
@@ -87,8 +93,9 @@
|
||||
|
||||
<!--批量导入-->
|
||||
<el-dialog title="导入" append-to-body :visible.sync="excelBox" :close-on-click-modal="false" width="555px">
|
||||
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" :upload-before="beforeAvatarUpload"
|
||||
:upload-error="uploadError">
|
||||
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"
|
||||
:upload-before="beforeAvatarUpload"
|
||||
:upload-error="uploadError">
|
||||
<template slot="excelTemplate">
|
||||
<el-button type="primary" @click="handleTemplate()" :loading="templateLoading">
|
||||
点击下载
|
||||
@@ -102,7 +109,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getList, cancel, detail ,upload} from "@/api/tenant/postzp";
|
||||
import {getList, cancel, detail, upload} from "@/api/tenant/postzp";
|
||||
import CopyMission from "../Dialog/CopyMission";
|
||||
import Employ from "../Dialog/Employ";
|
||||
import employmentNum from "../Dialog/EmployNumber";
|
||||
@@ -110,14 +117,14 @@ import Recommend from "../Dialog/Recommend";
|
||||
import Contrast from "../Dialog/Contrast"
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import missionView from "./missionView.vue";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { isExcel } from "@/util/validate";
|
||||
import { excelAccept } from "@/common/accept";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import { getTemplate } from "@/api/resource/template";
|
||||
import {isExcel} from "@/util/validate";
|
||||
import {excelAccept} from "@/common/accept";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {getTemplate} from "@/api/resource/template";
|
||||
import saveButton from "./saveButton";
|
||||
import {dataSourcesEnum, educationState, missionState, recruitStatus, wageUnitCategoryState} from "@/common/dic";
|
||||
|
||||
const wageUnitCategoryStateEnum = {}
|
||||
wageUnitCategoryState.map((item) => {
|
||||
wageUnitCategoryStateEnum[item.value] = item.label
|
||||
@@ -128,7 +135,6 @@ export default {
|
||||
Employ,
|
||||
Recommend,
|
||||
SkillSelect,
|
||||
SelectMap,
|
||||
missionView,
|
||||
saveButton,
|
||||
Contrast,
|
||||
@@ -147,7 +153,7 @@ export default {
|
||||
return {
|
||||
wageUnitCategoryStateEnum,
|
||||
excelBox: false,
|
||||
excelForm: { isCovered: 1 },
|
||||
excelForm: {isCovered: 1},
|
||||
excelOption: {
|
||||
submitBtn: false,
|
||||
emptyBtn: false,
|
||||
@@ -194,7 +200,8 @@ export default {
|
||||
missionNo: '',
|
||||
};
|
||||
},
|
||||
created() { },
|
||||
created() {
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["permission"]),
|
||||
@@ -263,14 +270,14 @@ export default {
|
||||
prop: "ageDesc",
|
||||
search: false,
|
||||
display: false,
|
||||
},{
|
||||
}, {
|
||||
label: "学历要求",
|
||||
prop: "education",
|
||||
type: "select",
|
||||
dicData: educationState,
|
||||
search: false,
|
||||
display: false,
|
||||
},{
|
||||
}, {
|
||||
label: "经验要求",
|
||||
prop: "experienceDesc",
|
||||
search: false,
|
||||
@@ -409,8 +416,8 @@ export default {
|
||||
const h = this.$createElement;
|
||||
this.$confirm(
|
||||
h("div", null, [
|
||||
h("p", { style: "font-size: 16px" }, "您确定要取消此岗位吗? "),
|
||||
h("p", { style: "color: red" }, "一旦取消则岗位失效"),
|
||||
h("p", {style: "font-size: 16px"}, "您确定要取消此岗位吗? "),
|
||||
h("p", {style: "color: red"}, "一旦取消则岗位失效"),
|
||||
]),
|
||||
{
|
||||
type: "warning",
|
||||
@@ -504,13 +511,13 @@ export default {
|
||||
const arr = [];
|
||||
const data = res.data.data;
|
||||
data.error &&
|
||||
data.error.errorList.forEach((item) => {
|
||||
arr.push(`${item.name} ${item.remarks}`);
|
||||
});
|
||||
data.error.errorList.forEach((item) => {
|
||||
arr.push(`${item.name} ${item.remarks}`);
|
||||
});
|
||||
data.auth &&
|
||||
data.auth.authList.forEach((item) => {
|
||||
arr.push(`${item.name} ${item.remarks}`);
|
||||
});
|
||||
data.auth.authList.forEach((item) => {
|
||||
arr.push(`${item.name} ${item.remarks}`);
|
||||
});
|
||||
this.$refs.ied.show(arr);
|
||||
}
|
||||
this.refreshChange();
|
||||
|
||||
@@ -181,7 +181,19 @@
|
||||
model.address
|
||||
}}
|
||||
</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
<!-- <select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>-->
|
||||
<super-map-view
|
||||
:isCanEdit="false"
|
||||
:longitude="model.lon"
|
||||
:latitude="model.lat"
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
:type="'view'"
|
||||
></super-map-view>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -215,7 +227,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {
|
||||
@@ -234,7 +245,6 @@ function getDic(arr) {
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {SelectMap},
|
||||
props: {model: Object},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -11,24 +11,28 @@
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位名称:">{{
|
||||
model.jobName
|
||||
}}</el-form-item>
|
||||
model.jobName
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位编码:">{{
|
||||
model.missionNo
|
||||
}}</el-form-item>
|
||||
model.missionNo
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="报名截止:">{{
|
||||
format(model.etimePub)
|
||||
}}</el-form-item>
|
||||
format(model.etimePub)
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位时间:">{{ format(model.stime) }} 至
|
||||
{{ format(model.etime) }}</el-form-item>
|
||||
{{ format(model.etime) }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -44,15 +48,18 @@
|
||||
<el-form-item label="招聘人数:">{{ model.peopleNum }}人</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="参考工资:">{{ model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item>
|
||||
<el-form-item label="参考工资:">{{
|
||||
model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="行业类型:">{{
|
||||
model.tradeNames
|
||||
}}</el-form-item>
|
||||
model.tradeNames
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item>
|
||||
@@ -64,8 +71,9 @@
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="岗位描述:">{{
|
||||
model.jobDescription
|
||||
}}</el-form-item>
|
||||
model.jobDescription
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -82,21 +90,24 @@
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="年龄要求:">{{
|
||||
model.ageDesc
|
||||
}}</el-form-item>
|
||||
model.ageDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col span="16">
|
||||
<el-form-item label="学历要求:">{{
|
||||
education[model.education]
|
||||
}}</el-form-item>
|
||||
education[model.education]
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="经验要求:">{{
|
||||
model.experienceDesc
|
||||
}}</el-form-item>
|
||||
model.experienceDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -110,42 +121,49 @@
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="用工单位:">{{
|
||||
model.jobCompanyName
|
||||
}}</el-form-item>
|
||||
model.jobCompanyName
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="单位信用代码:">{{
|
||||
model.jobCompanyScale
|
||||
}}</el-form-item>
|
||||
model.jobCompanyScale
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="单位性质:">{{
|
||||
model.jobCompanyNature
|
||||
}}</el-form-item>
|
||||
model.jobCompanyNature
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="所属行业:">{{
|
||||
model.jobCompanyIndustry
|
||||
}}</el-form-item>
|
||||
model.jobCompanyIndustry
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="单位介绍:">{{
|
||||
model.jobCompanyDescription
|
||||
}}</el-form-item>
|
||||
model.jobCompanyDescription
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联 系 人:">{{
|
||||
model.callName
|
||||
}}</el-form-item>
|
||||
model.callName
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联系方式:">{{
|
||||
model.callTel
|
||||
}}</el-form-item>
|
||||
model.callTel
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item>
|
||||
@@ -156,17 +174,32 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label
|
||||
}}
|
||||
{{ city[2] && city[2].label }}</el-form-item>
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{
|
||||
city[1] && city[1].label
|
||||
}}
|
||||
{{ city[2] && city[2].label }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="详细地址:">{{
|
||||
model.address
|
||||
}}</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
model.address
|
||||
}}
|
||||
</el-form-item>
|
||||
<!-- <select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>-->
|
||||
<super-map-view
|
||||
:isCanEdit="false"
|
||||
:longitude="model.lon"
|
||||
:latitude="model.lat"
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
:type="'view'"
|
||||
></super-map-view>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -181,14 +214,16 @@
|
||||
<el-col span="24">
|
||||
<el-form-item label="审核状态:">{{
|
||||
recruit[model.reviewState]
|
||||
}}</el-form-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="审核备注:">{{
|
||||
model.reviewMsg || '无'
|
||||
}}</el-form-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -198,9 +233,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {
|
||||
wageUnitCategoryState,
|
||||
educationState,
|
||||
@@ -216,8 +250,7 @@ function getDic(arr) {
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { SelectMap },
|
||||
props: { model: Object },
|
||||
props: {model: Object},
|
||||
data() {
|
||||
return {
|
||||
activeNames: ["1", "2", "3", "4", "5"],
|
||||
@@ -227,7 +260,8 @@ export default {
|
||||
recruit: getDic(recruitStatus),
|
||||
};
|
||||
},
|
||||
mounted() { },
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getSkill(skillStr) {
|
||||
return skillStr.split(",");
|
||||
@@ -248,7 +282,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mission-view .el-tag+.el-tag {
|
||||
.mission-view .el-tag + .el-tag {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
@@ -188,7 +188,19 @@
|
||||
model.address
|
||||
}}
|
||||
</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
<!-- <select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>-->
|
||||
<super-map-view
|
||||
:isCanEdit="false"
|
||||
:longitude="model.lon"
|
||||
:latitude="model.lat"
|
||||
:open="true"
|
||||
:zoom="10"
|
||||
:min-zoom="10"
|
||||
:max-zoom="20"
|
||||
:flag-tip="false"
|
||||
placeholder="请输入详细地址"
|
||||
:type="'view'"
|
||||
></super-map-view>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -198,7 +210,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {
|
||||
@@ -216,7 +227,6 @@ function getDic(arr) {
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {SelectMap},
|
||||
props: {model: Object},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
|
||||
<!-- 合作企业概况 -->
|
||||
<div class="bgWhite survey" style="height: calc(100vh - 120px);">
|
||||
<i style="position: absolute;right: 10px;top: 10px;color:#fff;" class="el-icon-full-screen" @click="changeFullScreen"></i>
|
||||
<i style="position: absolute;right: 10px;top: 10px;color:#fff;" class="el-icon-full-screen"
|
||||
@click="changeFullScreen"></i>
|
||||
<iframe
|
||||
name="iframeMap"
|
||||
id="iframeMapViewComponent"
|
||||
@@ -22,11 +23,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getMapData } from '@/api/desk/notice'
|
||||
import {getMapData} from '@/api/desk/notice'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
getPageUrl: "http://10.165.0.173/largescreen/",
|
||||
// getPageUrl: "http://10.165.0.173/largescreen/",
|
||||
getPageUrl: "http://10.165.0.54:8300/largescreen/",
|
||||
fullScreenFlag: false,
|
||||
fullScreenFlagKey: 0,
|
||||
};
|
||||
@@ -44,35 +47,35 @@ export default {
|
||||
// this.showFullScreen = true
|
||||
// },
|
||||
changeFullScreen() {
|
||||
// this.fullScreenFlagKey +=1
|
||||
if (!this.fullScreenFlag) {
|
||||
const element = document.getElementsByClassName('avue-header')[0];
|
||||
element.setAttribute('style', 'display: none');
|
||||
const nav = document.getElementsByClassName('avue-tags')[0]
|
||||
nav.setAttribute('style', 'display: none');
|
||||
const tags = document.getElementsByClassName('avue-left')[0]
|
||||
tags.setAttribute('style', 'display: none');
|
||||
const el = document.getElementsByClassName('avue-main')[0]
|
||||
el.setAttribute('style', 'left: 0;height: 100vh;width:100vw;padding-bottom:0;');
|
||||
const screen = document.getElementsByClassName('survey')[0]
|
||||
screen.setAttribute('style', 'height: 100vh;width:100vw;margin-right:0;');
|
||||
const large = document.getElementById('large-screen');
|
||||
large.setAttribute('style', 'padding:0 !important;')
|
||||
this.fullScreenFlag = !this.fullScreenFlag
|
||||
} else {
|
||||
const element = document.getElementsByClassName('avue-header')[0];
|
||||
element.setAttribute('style', 'display: block');
|
||||
const nav = document.getElementsByClassName('avue-tags')[0]
|
||||
nav.setAttribute('style', 'display: block');
|
||||
const tags = document.getElementsByClassName('avue-left')[0]
|
||||
tags.setAttribute('style', 'display: block');
|
||||
const el = document.getElementsByClassName('avue-main')[0]
|
||||
el.setAttribute('style', 'left: 240px;height:100vh;');
|
||||
const screen = document.getElementsByClassName('survey')[0]
|
||||
screen.setAttribute('style', 'height: 100vh;');
|
||||
this.fullScreenFlag = !this.fullScreenFlag
|
||||
}
|
||||
},
|
||||
// this.fullScreenFlagKey +=1
|
||||
if (!this.fullScreenFlag) {
|
||||
const element = document.getElementsByClassName('avue-header')[0];
|
||||
element.setAttribute('style', 'display: none');
|
||||
const nav = document.getElementsByClassName('avue-tags')[0]
|
||||
nav.setAttribute('style', 'display: none');
|
||||
const tags = document.getElementsByClassName('avue-left')[0]
|
||||
tags.setAttribute('style', 'display: none');
|
||||
const el = document.getElementsByClassName('avue-main')[0]
|
||||
el.setAttribute('style', 'left: 0;height: 100vh;width:100vw;padding-bottom:0;');
|
||||
const screen = document.getElementsByClassName('survey')[0]
|
||||
screen.setAttribute('style', 'height: 100vh;width:100vw;margin-right:0;');
|
||||
const large = document.getElementById('large-screen');
|
||||
large.setAttribute('style', 'padding:0 !important;')
|
||||
this.fullScreenFlag = !this.fullScreenFlag
|
||||
} else {
|
||||
const element = document.getElementsByClassName('avue-header')[0];
|
||||
element.setAttribute('style', 'display: block');
|
||||
const nav = document.getElementsByClassName('avue-tags')[0]
|
||||
nav.setAttribute('style', 'display: block');
|
||||
const tags = document.getElementsByClassName('avue-left')[0]
|
||||
tags.setAttribute('style', 'display: block');
|
||||
const el = document.getElementsByClassName('avue-main')[0]
|
||||
el.setAttribute('style', 'left: 240px;height:100vh;');
|
||||
const screen = document.getElementsByClassName('survey')[0]
|
||||
screen.setAttribute('style', 'height: 100vh;');
|
||||
this.fullScreenFlag = !this.fullScreenFlag
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -81,10 +84,12 @@ export default {
|
||||
p {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* 底色 */
|
||||
.bgWhite {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* 标题 */
|
||||
.title {
|
||||
font-weight: bold;
|
||||
@@ -93,35 +98,43 @@ p {
|
||||
color: #333333;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.benchWarp {
|
||||
/* padding: 0 20px !important; */
|
||||
/* margin-top: 4px; */
|
||||
}
|
||||
|
||||
.benchTop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
/* margin-bottom: 15px; */
|
||||
}
|
||||
|
||||
.survey,
|
||||
.pending {
|
||||
flex: 1;
|
||||
/* padding: 10px; */
|
||||
/* border-radius: 4px; */
|
||||
}
|
||||
|
||||
.survey {
|
||||
/* margin-right: 10px; */
|
||||
}
|
||||
|
||||
.pending {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
padding: 0 30px;
|
||||
}
|
||||
|
||||
.content .box {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.content .box .surveyTitle,
|
||||
.pendingTitle {
|
||||
height: 25px;
|
||||
@@ -131,6 +144,7 @@ p {
|
||||
line-height: 25px;
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
.content .box .surveyNum,
|
||||
.pendingNum {
|
||||
height: 42px;
|
||||
@@ -152,6 +166,7 @@ p {
|
||||
border: 1px solid #3f9eff;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.content .box .goJob {
|
||||
width: 80px;
|
||||
height: 20px;
|
||||
@@ -165,15 +180,18 @@ p {
|
||||
.benchBottom {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.invitationCode {
|
||||
width: calc(100% - 550px);
|
||||
padding: 18px 30px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tips {
|
||||
width: 250px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.customerService {
|
||||
width: 414px;
|
||||
background: #ffffff;
|
||||
@@ -181,11 +199,13 @@ p {
|
||||
margin-bottom: 20px;
|
||||
padding: 18px 30px;
|
||||
}
|
||||
|
||||
.customerService .customerContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.customerService .customerContent .img {
|
||||
width: 115px;
|
||||
height: 115px;
|
||||
@@ -195,22 +215,26 @@ p {
|
||||
background: url("/manage/img/kefu.jpg") no-repeat;
|
||||
background-size: 115px 115px;
|
||||
}
|
||||
|
||||
.customerService .customerContent .font {
|
||||
height: 30px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.tip {
|
||||
padding: 18px 30px;
|
||||
width: 414px;
|
||||
background: #ffffff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tip .tipTop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.tip .tipTop .more {
|
||||
cursor: pointer;
|
||||
height: 22px;
|
||||
@@ -219,14 +243,17 @@ p {
|
||||
color: #3f9eff;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.tipListBox {
|
||||
height: 276px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.tipListBox div {
|
||||
display: flex;
|
||||
margin: 11px 0;
|
||||
}
|
||||
|
||||
.tipListBox p {
|
||||
width: 400px;
|
||||
height: 30px;
|
||||
@@ -238,6 +265,7 @@ p {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tipListBox span {
|
||||
color: #3f9eff;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ module.exports = {
|
||||
lintOnSave: true,
|
||||
productionSourceMap: false,
|
||||
chainWebpack: config => {
|
||||
config.plugins.delete('case-sensitive-paths')
|
||||
//忽略的打包文件
|
||||
config.externals({
|
||||
vue: "Vue",
|
||||
|
||||
Reference in New Issue
Block a user