flat: 8.30
This commit is contained in:
@@ -7,6 +7,14 @@ export const missionCount = (params) => {
|
||||
params,
|
||||
});
|
||||
};
|
||||
// 主动服务统计
|
||||
export const mainReportComprehensive = (params) => {
|
||||
return request({
|
||||
url: "/api/jobslink-api/report/mainReport/comprehensive",
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
};
|
||||
// 查看岗位统计
|
||||
export const roleCount = (params) => {
|
||||
return request({
|
||||
|
||||
14
src/api/tenant/LocalWarningDisposal.js
Normal file
14
src/api/tenant/LocalWarningDisposal.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import request from '@/router/axios';
|
||||
|
||||
export const getTenantTalentsWarn = (params) => request({
|
||||
url: '/api/jobslink-api/tenant/talents/warn',
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
|
||||
export const updateTenantTalentsWarn = (params) => request({
|
||||
url: '/api/jobslink-api/tenant/talents/warn',
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
|
||||
@@ -46,6 +46,15 @@ export const detail =
|
||||
})
|
||||
}
|
||||
|
||||
export const talentsDetail =
|
||||
({id, ...args} = {}) => {
|
||||
return request({
|
||||
url: '/api/jobslink-api/tenant/talents/' + id,
|
||||
method: 'get',
|
||||
params: {...args}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/*获取分组*/
|
||||
export const getDept =
|
||||
|
||||
@@ -66,18 +66,24 @@ export default {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 3000;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
padding: 50px;
|
||||
padding-top: 20px;
|
||||
border-radius: 2px;
|
||||
max-width: 600px;
|
||||
|
||||
.image_small {
|
||||
width: 56px;
|
||||
|
||||
@@ -12,11 +12,15 @@
|
||||
|
||||
<script>
|
||||
import {debounce} from '@/util/util';
|
||||
import {tiandituGeocoder} from '@/api/tenant/map'
|
||||
import {baseUrl} from "@/config/env";
|
||||
|
||||
const script = document.createElement('script')
|
||||
script.src = 'http://10.165.0.173/tianditu/api?v=4.0&tk=' + process.env.VUE_APP_TIANDITU_APIKEY
|
||||
let origin = ''
|
||||
if (window.location.origin.search('localhost') > 0) {
|
||||
origin = 'http://10.165.0.173'
|
||||
} else {
|
||||
origin = window.location.origin
|
||||
}
|
||||
script.src = origin + '/tianditu/api?v=4.0&tk=' + process.env.VUE_APP_TIANDITU_APIKEY
|
||||
script.onload = () => console.warn('-----------天地图加载完成-----------')
|
||||
document.head.appendChild(script)
|
||||
let Tmap = null;
|
||||
@@ -103,7 +107,7 @@ export default {
|
||||
address() {
|
||||
if (!this.isInput) return;
|
||||
console.log(2, this.type, this.address, this.longitude, this.latitude)
|
||||
if (this.address && this.longitude > 0 && this.latitude > 0) {
|
||||
if (this.longitude > 0 && this.latitude > 0) {
|
||||
this.addressLocation = this.address
|
||||
this.createTmap(this.longitude, this.latitude)
|
||||
} else {
|
||||
@@ -113,11 +117,11 @@ export default {
|
||||
},
|
||||
created() {
|
||||
console.log(1, this.type, this.address, this.longitude, this.latitude)
|
||||
this.baseUrl = window.location.origin.search('localhost') ? 'http://10.165.0.173/' : window.location.origin;
|
||||
T.Protocol.value = this.baseUrl
|
||||
this.baseUrl = origin;
|
||||
T.Protocol.value = this.baseUrl + '/'
|
||||
},
|
||||
mounted() {
|
||||
if (this.address && this.longitude > 0 && this.latitude > 0) {
|
||||
if (this.longitude > 0 && this.latitude > 0) {
|
||||
this.addressLocation = this.address
|
||||
this.createTmap(this.longitude, this.latitude)
|
||||
} else {
|
||||
@@ -130,18 +134,21 @@ export default {
|
||||
getlocation() {
|
||||
const _this = this
|
||||
// 31.12494749933168, 经度: 104.40371173671055
|
||||
if (navigator.geolocation) {
|
||||
navigator.geolocation.getCurrentPosition(function (position) {
|
||||
let latitude = position.coords.latitude;
|
||||
let longitude = position.coords.longitude;
|
||||
_this.createTmap(longitude, latitude)
|
||||
}, function (error) {
|
||||
_this.createTmap(104.40371173671055, 31.12494749933168)
|
||||
_this.$message.info('无法获取地理位置')
|
||||
});
|
||||
} else {
|
||||
_this.$message.info('浏览器不支持地理定位')
|
||||
}
|
||||
// 内网环境无法获取位置
|
||||
_this.createTmap(104.40371173671055, 31.12494749933168)
|
||||
// if (navigator.geolocation) {
|
||||
// navigator.geolocation.getCurrentPosition(function (position) {
|
||||
// let latitude = position.coords.latitude;
|
||||
// let longitude = position.coords.longitude;
|
||||
// _this.createTmap(longitude, latitude)
|
||||
// }, function (error) {
|
||||
//
|
||||
// // _this.$message.info('无法获取地理位置,请授权页面定位权限')
|
||||
// console.warn('无法获取地理位置,请授权页面定位权限' + error)
|
||||
// });
|
||||
// } else {
|
||||
// _this.$message.info('浏览器不支持地理定位')
|
||||
// }
|
||||
},
|
||||
searchValue: debounce(function (val) {
|
||||
if (!this.isInput) {
|
||||
@@ -178,22 +185,23 @@ export default {
|
||||
}
|
||||
}
|
||||
}).catch((err) => {
|
||||
_this.$message.info('无法获取地理位置')
|
||||
_this.$message.info('无法获取该位置地理坐标')
|
||||
})
|
||||
}, 1000),
|
||||
createTmap(lng, lat) {
|
||||
const _this = this
|
||||
this.$nextTick(() => {
|
||||
console.log(Tmap)
|
||||
if (!Tmap) {
|
||||
Tmap = new T.Map('mapDiv', {
|
||||
projection: 'EPSG:4326',
|
||||
minZoom: this.minZoom,
|
||||
maxZoom: this.maxZoom
|
||||
});
|
||||
Tmap.addEventListener('click', (e) => {
|
||||
_this.nextPoint(e.lnglat)
|
||||
});
|
||||
}
|
||||
Tmap.addEventListener('click', (e) => {
|
||||
_this.nextPoint(e.lnglat)
|
||||
});
|
||||
Tmap.centerAndZoom(new T.LngLat(lng, lat), 15);
|
||||
this.setIcon(lng, lat);
|
||||
})
|
||||
|
||||
@@ -2,21 +2,27 @@
|
||||
<el-dialog
|
||||
:title="title"
|
||||
:visible.sync="visible"
|
||||
width="40%"
|
||||
:width="dialogWidth"
|
||||
:before-close="handleClose"
|
||||
append-to-body>
|
||||
<span>{{ subTitle }}</span>
|
||||
<span v-if="typeof subTitle === 'string'">{{ subTitle }}</span>
|
||||
<div v-if="Array.isArray(subTitle)">
|
||||
<div class="sub_title" v-for="(item, index) in subTitle" :key="index">{{
|
||||
item
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<slot name="header"></slot>
|
||||
<div v-if="flagState === 1">
|
||||
<slot name="content"></slot>
|
||||
<div class="input_box">
|
||||
<el-input type="textarea" v-model="input" placeholder="请输入内容"></el-input>
|
||||
<el-input type="textarea" v-model="input" :placeholder="placeholder"></el-input>
|
||||
</div>
|
||||
<div class="kuajie">
|
||||
<div class="kuajie_span" v-for="(item, index) in tips" :key="index" @click="input += item">{{ index + 1 }}:{{
|
||||
<el-tag class="kuajie_span" v-for="(item, index) in tips" :key="index" @click="input += item">{{ index + 1 }}:{{
|
||||
item
|
||||
}}
|
||||
</div>
|
||||
</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
@@ -63,6 +69,10 @@ export default {
|
||||
type: String,
|
||||
required: false,
|
||||
},
|
||||
submitVail: {
|
||||
default: true,
|
||||
type: Boolean,
|
||||
},
|
||||
backText: {
|
||||
default: '驳 回',
|
||||
type: String,
|
||||
@@ -87,11 +97,21 @@ export default {
|
||||
required: false,
|
||||
},
|
||||
title: String,
|
||||
subTitle: String,
|
||||
subTitle: String | Array,
|
||||
tips: {
|
||||
default: [],
|
||||
type: Array,
|
||||
required: false,
|
||||
},
|
||||
pattern: Object,
|
||||
placeholder: {
|
||||
default: '请输入内容',
|
||||
type: String,
|
||||
required: false,
|
||||
},
|
||||
dialogWidth: {
|
||||
type: String,
|
||||
default: '40%'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -116,17 +136,45 @@ export default {
|
||||
},
|
||||
handleCancel() {
|
||||
if (!this.isInputInfo) {
|
||||
this.$emit('onCancel')
|
||||
this.vailValue().then(() => {
|
||||
this.$emit('onCancel', this.input)
|
||||
})
|
||||
// this.$emit('onCancel')
|
||||
return
|
||||
}
|
||||
if (this.status) {
|
||||
this.$emit('onCancel', this.input)
|
||||
this.vailValue().then(() => {
|
||||
this.$emit('onCancel', this.input)
|
||||
})
|
||||
// this.$emit('onCancel', this.input)
|
||||
} else {
|
||||
this.status = 1
|
||||
}
|
||||
},
|
||||
vailValue() {
|
||||
return new Promise((resolve) => {
|
||||
if (this.pattern) {
|
||||
if (this.pattern.check(this.input) || this.pattern.reg.test(this.input)) {
|
||||
resolve()
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: this.pattern.message
|
||||
});
|
||||
}
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
},
|
||||
handleConfirm() {
|
||||
this.$emit('onConfirm', this.input)
|
||||
if (this.submitVail) {
|
||||
this.vailValue().then(() => {
|
||||
this.$emit('onConfirm', this.input)
|
||||
})
|
||||
} else {
|
||||
this.$emit('onConfirm', this.input)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -139,14 +187,14 @@ export default {
|
||||
|
||||
.kuajie {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 30px;
|
||||
|
||||
.kuajie_span {
|
||||
padding: 5px 5px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
color: #666666;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -155,4 +203,10 @@ export default {
|
||||
color: blue;
|
||||
}
|
||||
}
|
||||
|
||||
.sub_title {
|
||||
color: #666666;
|
||||
font-size: 13px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
<div>{{ item }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<span>{{ content.length > length ? `${content.substring(0, this.length)}...` : content }}</span>
|
||||
<div>
|
||||
{{ content.length > length ? `${content.substring(0, this.length)}...` : content }}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ content }}</span>
|
||||
<div v-else>{{ content }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ import addAccount from "./addAccount";
|
||||
import companyConfig from "./companyConfig";
|
||||
import companyCheck from "./companyCheck";
|
||||
import {putFile} from "@/api/resource/oss";
|
||||
import {check18IdCardNo} from "@/util/validate";
|
||||
import {check18IdCardNo, isvalidatemobile} from "@/util/validate";
|
||||
import {moneyFormat} from "@/util/money";
|
||||
import companyRecord from "./companyRecord";
|
||||
import {companyStatus} from "@/const/company";
|
||||
@@ -246,6 +246,20 @@ export default {
|
||||
return ids;
|
||||
},
|
||||
option() {
|
||||
const validatePhone = (rule, value, callback) => {
|
||||
function checkPhoneNumber(s) {
|
||||
const mobilePattern = /^1[3-9]\d{9}$/;
|
||||
const landlinePattern = /^0\d{2,3}-?\d{7,8}$/;
|
||||
return mobilePattern.test(s) || landlinePattern.test(s);
|
||||
}
|
||||
|
||||
// if (isvalidatemobile(value)) {
|
||||
if (checkPhoneNumber(value)[0]) {
|
||||
callback(new Error(checkPhoneNumber(value)));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
height: "auto",
|
||||
tip: false,
|
||||
@@ -280,6 +294,11 @@ export default {
|
||||
display: false,
|
||||
prop: "masterName",
|
||||
},
|
||||
{
|
||||
label: "手机号",
|
||||
display: false,
|
||||
prop: "phone",
|
||||
},
|
||||
{
|
||||
label: "地区",
|
||||
display: false,
|
||||
@@ -323,14 +342,24 @@ export default {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "input",
|
||||
label: "手机号",
|
||||
span: 20,
|
||||
size: "small",
|
||||
prop: "phone",
|
||||
rules: [
|
||||
{required: true, trigger: "blur", validator: validatePhone},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "input",
|
||||
label: "所在地区",
|
||||
span: 20,
|
||||
display: true,
|
||||
prop: "cityId",
|
||||
slot: true,
|
||||
formslot: true,
|
||||
display: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
@@ -345,13 +374,6 @@ export default {
|
||||
display: true,
|
||||
size: "small",
|
||||
prop: "remarks",
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
whitespace: true,
|
||||
message: "请输入备注",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "所在位置",
|
||||
|
||||
@@ -18,8 +18,10 @@
|
||||
<script>
|
||||
import {reviewCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -48,6 +50,7 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.getList()
|
||||
},
|
||||
computed: {
|
||||
@@ -55,53 +58,81 @@ export default {
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
label: '认证用工单位数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '发布零工岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '待审核零工岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '审核通过零工岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '发布全职岗位数',
|
||||
prop: 'data5',
|
||||
},
|
||||
{
|
||||
label: '待审核全职岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '审核通过全职岗位数',
|
||||
prop: 'data7'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
searchSpan: 8,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
}]
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "deptId",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
search: true,
|
||||
span: 20,
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: false,
|
||||
},
|
||||
{
|
||||
label: '认证用工单位数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '发布零工岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '待审核零工岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '审核通过零工岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '发布全职岗位数',
|
||||
prop: 'data5',
|
||||
},
|
||||
{
|
||||
label: '待审核全职岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '审核通过全职岗位数',
|
||||
prop: 'data7'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 8,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
sizeChange(size) {
|
||||
this.infoPages.size = size
|
||||
this.getList()
|
||||
@@ -111,33 +142,36 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
console.log(123123, params)
|
||||
// console.log(this.search.date,)
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
// console.log(123123, params)
|
||||
let resData = await reviewCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {innovationServeCount , listAllServe} from '@/api/report/report'
|
||||
import {innovationServeCount, listAllServe} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import { deepClone } from "@/util/util";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {deepClone} from "@/util/util";
|
||||
|
||||
const columnEnum = {
|
||||
"data1": "服务总人数",
|
||||
"data2": "推送政策总人次",
|
||||
@@ -27,7 +28,7 @@ const columnEnum = {
|
||||
"data4": "跟踪服务总次数",
|
||||
"data5": "服务成功总次数"
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -60,7 +61,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getServeList().then((res) => {
|
||||
if(res.length) {
|
||||
if (res.length) {
|
||||
this.headTitle = res[0].name
|
||||
this.search.serveId = res[0].id
|
||||
this.searchServeId = res[0].id
|
||||
@@ -75,7 +76,7 @@ export default {
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: key,
|
||||
prop: key,
|
||||
display: false,
|
||||
}))
|
||||
}]
|
||||
@@ -86,16 +87,16 @@ export default {
|
||||
prop: 'serveId',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'select',
|
||||
type: 'select',
|
||||
searchSpan: 6,
|
||||
search:true,
|
||||
search: true,
|
||||
searchClearable: false,
|
||||
dicData: this.serveData,
|
||||
props: {
|
||||
label: 'name',
|
||||
value: 'id'
|
||||
}
|
||||
},{
|
||||
}, {
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: true,
|
||||
@@ -103,15 +104,17 @@ export default {
|
||||
},
|
||||
...serveHead,
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
searchSpan: 6,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
}]
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 6,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -131,14 +134,14 @@ export default {
|
||||
this.getList().then(() => done())
|
||||
},
|
||||
resetChange() {
|
||||
this.search = { serveId: this.searchServeId }
|
||||
let params = { size: 10, current: 1 }
|
||||
this.search = {serveId: this.searchServeId}
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getServeList() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let resData = await listAllServe({id: '1767902578403028993'})
|
||||
if(resData.data.code === 200) {
|
||||
if (resData.data.code === 200) {
|
||||
this.serveData = resData.data.data
|
||||
resolve(resData.data.data)
|
||||
} else {
|
||||
@@ -147,25 +150,25 @@ export default {
|
||||
})
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
const copySearch = deepClone(this.search)
|
||||
let resData = await innovationServeCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(records)
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {unemploymentInsuranceServiceCount , listAllServe} from '@/api/report/report'
|
||||
import {unemploymentInsuranceServiceCount, listAllServe} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import search from "@/page/index/search.vue";
|
||||
import {deepClone} from "@/util/util";
|
||||
|
||||
const columnEnum = {
|
||||
"data1": "服务总人数",
|
||||
"data2": "推送政策总人次",
|
||||
@@ -28,7 +29,7 @@ const columnEnum = {
|
||||
"data4": "跟踪服务总次数",
|
||||
"data5": "服务成功总次数"
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -61,7 +62,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getServeList().then((res) => {
|
||||
if(res.length) {
|
||||
if (res.length) {
|
||||
this.headTitle = res[0].name
|
||||
this.search.serveId = res[0].id
|
||||
this.searchServeId = res[0].id
|
||||
@@ -76,7 +77,7 @@ export default {
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: key,
|
||||
prop: key,
|
||||
display: false,
|
||||
}))
|
||||
}]
|
||||
@@ -96,7 +97,7 @@ export default {
|
||||
label: 'name',
|
||||
value: 'id'
|
||||
}
|
||||
},{
|
||||
}, {
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: true,
|
||||
@@ -108,10 +109,12 @@ export default {
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 6,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -132,14 +135,14 @@ export default {
|
||||
this.getList().then(() => done())
|
||||
},
|
||||
resetChange() {
|
||||
this.search = { serveId: this.searchServeId }
|
||||
let params = { size: 10, current: 1 }
|
||||
this.search = {serveId: this.searchServeId}
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getServeList() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let resData = await listAllServe({id: '1762444035302395906'})
|
||||
if(resData.data.code === 200) {
|
||||
if (resData.data.code === 200) {
|
||||
this.serveData = resData.data.data
|
||||
resolve(resData.data.data)
|
||||
} else {
|
||||
@@ -148,25 +151,25 @@ export default {
|
||||
})
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
const copySearch = deepClone(params)
|
||||
let resData = await unemploymentInsuranceServiceCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(records)
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listAllServe, vocationalServiceCount} from '@/api/report/report'
|
||||
import {listAllServe, vocationalServiceCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import search from "@/page/index/search.vue";
|
||||
import {deepClone} from "@/util/util";
|
||||
|
||||
const columnEnum = {
|
||||
"data1": "服务总人数",
|
||||
"data2": "推送政策总人次",
|
||||
@@ -28,7 +29,7 @@ const columnEnum = {
|
||||
"data4": "跟踪服务总次数",
|
||||
"data5": "服务成功总次数"
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -61,7 +62,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getServeList().then((res) => {
|
||||
if(res.length) {
|
||||
if (res.length) {
|
||||
this.headTitle = res[0].name
|
||||
this.search.serveId = res[0].id
|
||||
this.searchServeId = res[0].id
|
||||
@@ -76,7 +77,7 @@ export default {
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: key,
|
||||
prop: key,
|
||||
display: false,
|
||||
}))
|
||||
}]
|
||||
@@ -96,7 +97,7 @@ export default {
|
||||
label: 'name',
|
||||
value: 'id'
|
||||
}
|
||||
},{
|
||||
}, {
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: true,
|
||||
@@ -108,10 +109,12 @@ export default {
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 6,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -132,14 +135,14 @@ export default {
|
||||
this.getList().then(() => done())
|
||||
},
|
||||
resetChange() {
|
||||
this.search = { serveId: this.searchServeId }
|
||||
let params = { size: 10, current: 1 }
|
||||
this.search = {serveId: this.searchServeId}
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getServeList() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let resData = await listAllServe({id: '1762444534038695938'})
|
||||
if(resData.data.code === 200) {
|
||||
if (resData.data.code === 200) {
|
||||
this.serveData = resData.data.data
|
||||
resolve(resData.data.data)
|
||||
} else {
|
||||
@@ -148,25 +151,25 @@ export default {
|
||||
})
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
const copySearch = deepClone(params)
|
||||
let resData = await vocationalServiceCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(records)
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {vocationalTrainingServiceCount , listAllServe} from '@/api/report/report'
|
||||
import {vocationalTrainingServiceCount, listAllServe} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import search from "@/page/index/search.vue";
|
||||
import {deepClone} from "@/util/util";
|
||||
|
||||
const columnEnum = {
|
||||
"data1": "服务总人数",
|
||||
"data2": "推送政策总人次",
|
||||
@@ -28,7 +29,7 @@ const columnEnum = {
|
||||
"data4": "跟踪服务总次数",
|
||||
"data5": "服务成功总次数"
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -62,7 +63,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getServeList().then((res) => {
|
||||
if(res.length) {
|
||||
if (res.length) {
|
||||
this.headTitle = res[0].name
|
||||
this.search.serveId = res[0].id
|
||||
this.searchServeId = res[0].id
|
||||
@@ -77,7 +78,7 @@ export default {
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: key,
|
||||
prop: key,
|
||||
display: false,
|
||||
}))
|
||||
}]
|
||||
@@ -88,7 +89,7 @@ export default {
|
||||
prop: 'serveId',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'select',
|
||||
type: 'select',
|
||||
searchSpan: 6,
|
||||
search: true,
|
||||
searchClearable: false,
|
||||
@@ -97,7 +98,7 @@ export default {
|
||||
label: 'name',
|
||||
value: 'id'
|
||||
},
|
||||
},{
|
||||
}, {
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: true,
|
||||
@@ -109,10 +110,12 @@ export default {
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 6,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -133,14 +136,14 @@ export default {
|
||||
this.getList().then(() => done())
|
||||
},
|
||||
resetChange() {
|
||||
this.search = { serveId: this.searchServeId }
|
||||
let params = { size: 10, current: 1 }
|
||||
this.search = {serveId: this.searchServeId}
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getServeList() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let resData = await listAllServe({id: '1762444363573792769'})
|
||||
if(resData.data.code === 200) {
|
||||
if (resData.data.code === 200) {
|
||||
this.serveData = resData.data.data
|
||||
resolve(resData.data.data)
|
||||
} else {
|
||||
@@ -149,25 +152,25 @@ export default {
|
||||
})
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
const copySearch = deepClone(params)
|
||||
let resData = await vocationalTrainingServiceCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(records)
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
<script>
|
||||
import {policyCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
import {dateFormat} from "@/util/date";
|
||||
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -58,18 +59,20 @@ export default {
|
||||
prop: 'name2',
|
||||
search: true,
|
||||
searchSpan: 6,
|
||||
},{
|
||||
}, {
|
||||
label: '成功推送总次数',
|
||||
prop: 'data1',
|
||||
},{
|
||||
}, {
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 6,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -84,33 +87,35 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
console.log(123123, params)
|
||||
let resData = await policyCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
@@ -18,8 +18,10 @@
|
||||
<script>
|
||||
import {roleCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -49,55 +51,84 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getDept()
|
||||
},
|
||||
computed: {
|
||||
options() {
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search:true,
|
||||
},
|
||||
{
|
||||
label: '发布岗位总数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '招聘中岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '关闭岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '待审核岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '审核通过岗位数',
|
||||
prop: 'data5'
|
||||
},
|
||||
{
|
||||
label: '推送成功岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
searchSpan: 8,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
}]
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "deptId",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
search: true,
|
||||
span: 20,
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: false,
|
||||
},
|
||||
{
|
||||
label: '发布岗位总数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '招聘中岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '关闭岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '待审核岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '审核通过岗位数',
|
||||
prop: 'data5'
|
||||
},
|
||||
{
|
||||
label: '推送成功岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 8,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
sizeChange(size) {
|
||||
this.infoPages.size = size
|
||||
this.getList()
|
||||
@@ -107,33 +138,35 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
console.log(123123, params)
|
||||
let resData = await roleCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
185
src/views/report/proactiveServiceStatistics.vue
Normal file
185
src/views/report/proactiveServiceStatistics.vue
Normal file
@@ -0,0 +1,185 @@
|
||||
<template>
|
||||
<basic-container style="position: relative">
|
||||
<avue-crud
|
||||
:data="infoData"
|
||||
:option="options"
|
||||
:table-loading="visible"
|
||||
:search.sync="search"
|
||||
:page.sync="infoPages"
|
||||
@search-change="searchChange"
|
||||
@search-reset="resetChange"
|
||||
@size-change="sizeChange"
|
||||
@current-change="currentChange"
|
||||
>
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mainReportComprehensive} from '@/api/report/report'
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
editBtn: false,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
refreshBtn: false,
|
||||
menu: false,
|
||||
tip: false,
|
||||
searchMenuSpan: 6,
|
||||
selection: false,
|
||||
headerAlign: 'center',
|
||||
align: 'center',
|
||||
}
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
infoPages: Object.assign({}, pages),
|
||||
infoData: [],
|
||||
visible: false,
|
||||
search: {},
|
||||
depTree: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.getList()
|
||||
},
|
||||
computed: {
|
||||
options() {
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "deptId",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
search: true,
|
||||
span: 20,
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: false,
|
||||
},
|
||||
{
|
||||
label: '登录人次',
|
||||
prop: 'loginCount',
|
||||
},
|
||||
{
|
||||
label: '潜在重点人群核实数',
|
||||
prop: 'potentialCount',
|
||||
},
|
||||
{
|
||||
label: '岗位发布数',
|
||||
prop: 'postCount'
|
||||
},
|
||||
{
|
||||
label: '岗位推送数',
|
||||
prop: 'postServe'
|
||||
},
|
||||
{
|
||||
label: '政策推送',
|
||||
prop: 'policyServe'
|
||||
},
|
||||
{
|
||||
label: '服务日志录入数',
|
||||
prop: 'logCount'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchRange: true,
|
||||
search: true,
|
||||
searchLabelWidth: 60,
|
||||
searchSpan: 8,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
sizeChange(size) {
|
||||
this.infoPages.size = size
|
||||
this.getList()
|
||||
},
|
||||
currentChange(page) {
|
||||
this.infoPages.page = page
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
console.log(this.search)
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
console.log(123123, params)
|
||||
let resData = await mainReportComprehensive(params)
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
reject()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
|
||||
@@ -18,13 +18,14 @@
|
||||
<script>
|
||||
import {confirmCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {dateFormat} from "@/util/date";
|
||||
|
||||
const columnEnum = {
|
||||
'data1': '总数',
|
||||
'data2': '机构登记数',
|
||||
'data3': '大库识别数',
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -60,11 +61,11 @@ export default {
|
||||
options() {
|
||||
const tableHead = this.headColum.map((item, index) => ({
|
||||
label: item.gname,
|
||||
display:false,
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: `${index}_${item.gid}_${key}`,
|
||||
display:false,
|
||||
prop: `${index}_${item.gid}_${key}`,
|
||||
display: false,
|
||||
width: 100,
|
||||
}))
|
||||
}))
|
||||
@@ -74,11 +75,13 @@ export default {
|
||||
search: true,
|
||||
fixed: true,
|
||||
}
|
||||
if(this.infoPages.total !== 0) {headTitle.width = 200}
|
||||
if (this.infoPages.total !== 0) {
|
||||
headTitle.width = 200
|
||||
}
|
||||
return {
|
||||
...baseOptions,
|
||||
height: 200,
|
||||
width:200,
|
||||
width: 200,
|
||||
column: [
|
||||
headTitle,
|
||||
...tableHead,
|
||||
@@ -87,10 +90,12 @@ export default {
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 8,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -105,37 +110,39 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
let resData = await confirmCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { current, size ,total, records } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {current, size, total, records} = resData.data.data
|
||||
this.infoData = records.map((item) => ({
|
||||
...item,
|
||||
...this.decompose(item.list)
|
||||
}))
|
||||
const columnInfo = records.length ? records[0].list : []
|
||||
this.headColum = columnInfo
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
@@ -18,13 +18,14 @@
|
||||
<script>
|
||||
import {potentialCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {dateFormat} from "@/util/date";
|
||||
|
||||
const columnEnum = {
|
||||
'data1': '总数',
|
||||
'data2': '机构登记数',
|
||||
'data3': '大库识别数',
|
||||
}
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -61,11 +62,11 @@ export default {
|
||||
options() {
|
||||
const tableHead = this.headColum.map((item, index) => ({
|
||||
label: item.gname,
|
||||
display:false,
|
||||
display: false,
|
||||
children: Object.keys(columnEnum).map((key) => ({
|
||||
label: columnEnum[key],
|
||||
prop: `${index}_${item.gid}_${key}`,
|
||||
display:false,
|
||||
prop: `${index}_${item.gid}_${key}`,
|
||||
display: false,
|
||||
width: 100,
|
||||
}))
|
||||
}))
|
||||
@@ -75,24 +76,28 @@ export default {
|
||||
search: true,
|
||||
fixed: true,
|
||||
}
|
||||
if(this.infoPages.total !== 0) {headTitle.width = 200}
|
||||
if (this.infoPages.total !== 0) {
|
||||
headTitle.width = 200
|
||||
}
|
||||
return {
|
||||
...baseOptions,
|
||||
height: 200,
|
||||
width:200,
|
||||
width: 200,
|
||||
column: [
|
||||
headTitle,
|
||||
...tableHead,
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
searchSpan: 8,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
}]
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 8,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -106,37 +111,39 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
let resData = await potentialCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { current, size ,total, records } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {current, size, total, records} = resData.data.data
|
||||
this.infoData = records.map((item) => ({
|
||||
...item,
|
||||
...this.decompose(item.list)
|
||||
}))
|
||||
const columnInfo = records.length ? records[0].list : []
|
||||
this.headColum = columnInfo
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
@@ -18,8 +18,10 @@
|
||||
<script>
|
||||
import {missionCount} from '@/api/report/report'
|
||||
import CustomLoading from "@/components/Custom-Loading/index.vue";
|
||||
import { dateFormat } from "@/util/date";
|
||||
const pages = { total: 0, size: 10, currentPage: 1 }
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
|
||||
const pages = {total: 0, size: 10, currentPage: 1}
|
||||
const baseOptions = {
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
@@ -45,9 +47,11 @@ export default {
|
||||
infoData: [],
|
||||
visible: false,
|
||||
search: {},
|
||||
depTree: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.getList()
|
||||
},
|
||||
computed: {
|
||||
@@ -55,49 +59,77 @@ export default {
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search:true,
|
||||
},
|
||||
{
|
||||
label: '发布零工岗位数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '招聘中零工岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '关闭零工岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '待审核零工岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '审核通过零工岗位数',
|
||||
prop: 'data5'
|
||||
},
|
||||
{
|
||||
label: '推送成功零工岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type:'date',
|
||||
searchSpan: 8,
|
||||
searchRange:true,
|
||||
search:true,
|
||||
}]
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "deptId",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
search: true,
|
||||
span: 20,
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: '机构名称',
|
||||
prop: 'name',
|
||||
search: false,
|
||||
},
|
||||
{
|
||||
label: '发布零工岗位数',
|
||||
prop: 'data1',
|
||||
},
|
||||
{
|
||||
label: '招聘中零工岗位数',
|
||||
prop: 'data2',
|
||||
},
|
||||
{
|
||||
label: '关闭零工岗位数',
|
||||
prop: 'data3'
|
||||
},
|
||||
{
|
||||
label: '待审核零工岗位数',
|
||||
prop: 'data4'
|
||||
},
|
||||
{
|
||||
label: '审核通过零工岗位数',
|
||||
prop: 'data5'
|
||||
},
|
||||
{
|
||||
label: '推送成功零工岗位数',
|
||||
prop: 'data6'
|
||||
},
|
||||
{
|
||||
label: '日期',
|
||||
prop: 'date',
|
||||
hide: true,
|
||||
display: false,
|
||||
type: 'month',
|
||||
format: "yyyy-MM",
|
||||
valueFormat: "yyyy-MM",
|
||||
searchSpan: 8,
|
||||
searchRange: true,
|
||||
search: true,
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
sizeChange(size) {
|
||||
this.infoPages.size = size
|
||||
this.getList()
|
||||
@@ -107,33 +139,35 @@ export default {
|
||||
this.getList()
|
||||
},
|
||||
searchChange(values, done) {
|
||||
this.getList().then(() => {done()})
|
||||
this.getList().then(() => {
|
||||
done()
|
||||
})
|
||||
},
|
||||
resetChange() {
|
||||
this.search = {}
|
||||
let params = { size: 10, current: 1 }
|
||||
let params = {size: 10, current: 1}
|
||||
this.getList()
|
||||
},
|
||||
getList(values) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.visible = true
|
||||
let params = {
|
||||
size: this.infoPages.size,
|
||||
current: this.infoPages.currentPage,
|
||||
...this.search,
|
||||
}
|
||||
if( Array.isArray(this.search.date) && this.search.date.length ) {
|
||||
const [stime, etime] = this.search.date
|
||||
params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
delete params.date
|
||||
}
|
||||
// if (Array.isArray(this.search.date) && this.search.date.length) {
|
||||
// const [stime, etime] = this.search.date
|
||||
// params.stime = dateFormat(stime, "yyyy-MM-dd")
|
||||
// params.etime = dateFormat(etime, "yyyy-MM-dd")
|
||||
// delete params.date
|
||||
// }
|
||||
console.log(123123, params)
|
||||
let resData = await missionCount(params)
|
||||
if(resData.data.code === 200) {
|
||||
const { records, current, total, size } = resData.data.data
|
||||
if (resData.data.code === 200) {
|
||||
const {records, current, total, size} = resData.data.data
|
||||
this.infoData = records
|
||||
this.infoPages = { ...this.infoPages, currentPage: current, total, size}
|
||||
this.infoPages = {...this.infoPages, currentPage: current, total, size}
|
||||
this.visible = false;
|
||||
resolve(true)
|
||||
} else {
|
||||
|
||||
@@ -164,9 +164,11 @@ export default {
|
||||
this.rightDataList = []
|
||||
this.rightTabs = type
|
||||
this.rightDataSelections = []
|
||||
this.$message.success('智能分析匹配中');
|
||||
type === 0 && this.getRightListPolicy()
|
||||
type === 1 && this.getRightSearchByUserId()
|
||||
if (type === 1) {
|
||||
this.$message.success('智能分析匹配中');
|
||||
this.getRightSearchByUserId()
|
||||
}
|
||||
},
|
||||
upDateUser(user) {
|
||||
this.leftUserSelections = [user]
|
||||
@@ -278,16 +280,16 @@ export default {
|
||||
size,
|
||||
}
|
||||
// const createTime = Date.now() + 4000
|
||||
this.rightLoading = true
|
||||
// this.rightLoading = true
|
||||
let resData = await getListByids(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.setProgress().then(() => {
|
||||
setTimeout(() => {
|
||||
this.rightLoading = false
|
||||
this.rightPages = {total: resData.data.data.length, currentPage: 1}
|
||||
this.rightDataList = resData.data.data
|
||||
}, 200)
|
||||
})
|
||||
// this.setProgress().then(() => {
|
||||
// setTimeout(() => {
|
||||
// this.rightLoading = false
|
||||
this.rightPages = {total: resData.data.data.length, currentPage: 1}
|
||||
this.rightDataList = resData.data.data
|
||||
// }, 200)
|
||||
// })
|
||||
// const timed = createTime - Date.now() > 0 ? createTime - Date.now() : 0
|
||||
// setTimeout(() => {
|
||||
//
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
flex-shrink: 1;
|
||||
">
|
||||
{{ data.groupName || data.name }}
|
||||
{{ data.sumNum ? `(${data.sumNum}个)` : '' }}
|
||||
</span>
|
||||
<span v-show="data.children && data.id && data.id !== '0'" style="flex-basis: 20%">
|
||||
<el-button type="text" icon="el-icon-edit" size="mini"
|
||||
@@ -268,6 +267,7 @@ import workView from "../../works/Table/missionView.vue"
|
||||
import TextTooltip from "@/components/text-tooltip/index.vue";
|
||||
import {serviceType} from "@/common/dic";
|
||||
import PushService from './Dialog/pushService2.vue'
|
||||
import {getDeptMyTree} from "@/api/tenant/talents";
|
||||
|
||||
const page = {
|
||||
pageSize: 10,
|
||||
@@ -313,6 +313,7 @@ export default {
|
||||
list: []
|
||||
},
|
||||
phoneItem: null,
|
||||
depTree: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -353,6 +354,7 @@ export default {
|
||||
return rel;
|
||||
},
|
||||
option() {
|
||||
const unemployedCollegeStudents = this.selectInfo && this.selectInfo.name === '离校未就业大学生'
|
||||
return {
|
||||
dialogWidth: "50%",
|
||||
dialogType: "drawer",
|
||||
@@ -368,28 +370,56 @@ export default {
|
||||
searchMenuSpan: 6,
|
||||
height: '100',
|
||||
column: [
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "deptId",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
search: true,
|
||||
span: 20,
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "name",
|
||||
search: true,
|
||||
searchLabelWidth: 50,
|
||||
searchSpan: 7,
|
||||
search: false,
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
search: true,
|
||||
searchLabelWidth: 60,
|
||||
searchSpan: 7,
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
},
|
||||
// {
|
||||
// label: "手机号",
|
||||
// prop: "telphone",
|
||||
// },
|
||||
{
|
||||
label: '专业',
|
||||
prop: 'aac183Major'
|
||||
},
|
||||
{
|
||||
label: "毕业年份",
|
||||
width: 100,
|
||||
prop: "year",
|
||||
sortable: true,
|
||||
overHidden: true,
|
||||
align: "center",
|
||||
type: "year",
|
||||
format: "yyyy",
|
||||
valueFormat: "yyyy",
|
||||
op: "ge,le",
|
||||
searchType: "year",
|
||||
hide: true,
|
||||
searchLabelWidth: 80,
|
||||
searchSpan: 8,
|
||||
search: unemployedCollegeStudents,
|
||||
},
|
||||
{
|
||||
label: '文化程度',
|
||||
prop: 'aac011',
|
||||
@@ -404,14 +434,22 @@ export default {
|
||||
label: '户口所在地',
|
||||
prop: 'aac010'
|
||||
},
|
||||
// {
|
||||
// label: "用户类型",
|
||||
// prop: "userId",
|
||||
// },
|
||||
// {
|
||||
// label: "身份标签",
|
||||
// prop: "labelsBase",
|
||||
// },
|
||||
{
|
||||
label: "政策推送次数",
|
||||
prop: "servePolicyCount",
|
||||
searchType: 'number',
|
||||
search: unemployedCollegeStudents,
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
},
|
||||
{
|
||||
label: "岗位服务次数",
|
||||
prop: "serveCount",
|
||||
searchType: 'number',
|
||||
search: unemployedCollegeStudents,
|
||||
searchLabelWidth: 100,
|
||||
searchSpan: 8,
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -661,9 +699,19 @@ export default {
|
||||
this.getListAllPolicyTree()
|
||||
this.getLabelList()
|
||||
this.ListAllTalents()
|
||||
|
||||
this.getDept()
|
||||
},
|
||||
methods: {
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
|
||||
}
|
||||
},
|
||||
selectPushUserService(row) {
|
||||
this.selectPushService().then(() => {
|
||||
this.$nextTick(() => {
|
||||
@@ -839,16 +887,9 @@ export default {
|
||||
const {records, current, size, total} = res.data.data
|
||||
this.dataSource = records
|
||||
this.loading = false;
|
||||
console.log({
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
})
|
||||
this.page = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
this.page.size = size
|
||||
this.page.currentPage = current
|
||||
this.page.total = total
|
||||
// this.selectionClear();
|
||||
});
|
||||
},
|
||||
@@ -891,31 +932,25 @@ export default {
|
||||
const {records, current, size, total} = res.data.data
|
||||
this.innerDrawer1 = true
|
||||
this.workData = records
|
||||
this.workPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
this.workPage.size = size
|
||||
this.workPage.currentPage = current
|
||||
this.workPage.total = total
|
||||
})
|
||||
},
|
||||
// 匹配政策
|
||||
matchPolicy(row) {
|
||||
console.log('匹配政策')
|
||||
getMatchPolicy({id: row.id, serveId: this.selectInfo.id, serveUserId: row.serveUserId}).then(res => {
|
||||
let _this = this;
|
||||
const {records, current, size, total} = res.data.data
|
||||
_this.policyData = records
|
||||
_this.innerDrawer2 = true
|
||||
_this.policyPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
_this.policyPage.size = size
|
||||
_this.policyPage.currentPage = current
|
||||
_this.policyPage.total = total
|
||||
})
|
||||
},
|
||||
// 服务日志
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
getMatchServeList({
|
||||
id: row.id,
|
||||
@@ -928,11 +963,9 @@ export default {
|
||||
const {records, current, size, total} = res.data.data
|
||||
_this.logData = records
|
||||
_this.innerDrawer3 = true
|
||||
_this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
_this.logPage.size = size
|
||||
_this.logPage.currentPage = current
|
||||
_this.logPage.total = total
|
||||
})
|
||||
},
|
||||
async saveLog(row, index, done, loading) {
|
||||
|
||||
240
src/views/tenant/main/talents/LocalWarningDisposal/index.vue
Normal file
240
src/views/tenant/main/talents/LocalWarningDisposal/index.vue
Normal file
@@ -0,0 +1,240 @@
|
||||
<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"
|
||||
@row-update="rowUpdate"
|
||||
@size-change="sizeChange"
|
||||
class="customPage"
|
||||
:row-style="rowStyle"
|
||||
>
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from "vuex";
|
||||
import {getList} from "@/api/tenant/personnelserve";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {detail, getDept, getDeptMyTree, talentsDetail} from "@/api/tenant/talents";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
import {getTenantTalentsWarn, tenantTalentsWarn, updateTenantTalentsWarn} from "@/api/tenant/LocalWarningDisposal";
|
||||
|
||||
const page = {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
}
|
||||
const baseOptions = {
|
||||
size: 'medium',
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
editBtn: true,
|
||||
viewBtn: false,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
menuWidth: 130,
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
refreshBtn: false,
|
||||
menu: true,
|
||||
tip: false,
|
||||
selection: false,
|
||||
align: 'center',
|
||||
searchMenuSpan: 6,
|
||||
// dialogType: "drawer",
|
||||
searchLabelWidth: 60,
|
||||
}
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
if (value.length > 15) {
|
||||
return value.slice(0, 14) + "...";
|
||||
}
|
||||
return value;
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
crudValues: {},
|
||||
depTree: [],
|
||||
page: Object.assign({}, page),
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
loadingLog: false,
|
||||
innerDrawerLog: false,
|
||||
innerDrawerAddLog: false,
|
||||
logValues: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission", "userInfo"]),
|
||||
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() {
|
||||
const self = this;
|
||||
const IdCardNo = (rule, value, callback) => {
|
||||
// if (check18IdCardNo(value)) {
|
||||
callback();
|
||||
// } else {
|
||||
// callback(new Error("身份证格式不正确"));
|
||||
// }
|
||||
};
|
||||
const validateTel = (rule, value, callback) => {
|
||||
if (isvalidatemobile(value)[0]) {
|
||||
callback(new Error(isvalidatemobile(value)[1]));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "name",
|
||||
display: false
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
search: true,
|
||||
display: false
|
||||
},
|
||||
{
|
||||
label: '原属地名称',
|
||||
prop: 'nowOrg',
|
||||
display: false
|
||||
},
|
||||
{
|
||||
label: '现属地名称',
|
||||
prop: 'oldOrg',
|
||||
display: false
|
||||
},
|
||||
{
|
||||
label: '属地变更信息',
|
||||
prop: 'remark',
|
||||
display: false
|
||||
},
|
||||
{
|
||||
label: '状态',
|
||||
prop: 'status',
|
||||
type: 'radio',
|
||||
dicData: [
|
||||
{label: "未处理", value: '0'},
|
||||
{label: "确认", value: '1'},
|
||||
{label: "忽略", value: '2'}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.onLoad(this.page, this.query)
|
||||
},
|
||||
activated() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.crud.refreshTable()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
rowStyle(column) {
|
||||
if (column.row.status == "0") {
|
||||
this.option.editBtn = true;
|
||||
} else {
|
||||
this.option.editBtn = false;
|
||||
}
|
||||
},
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
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 paramsed = {
|
||||
current: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...this.query
|
||||
};
|
||||
this.loading = true;
|
||||
getTenantTalentsWarn(paramsed).then((res) => {
|
||||
const {total, size, current, records, page} = res.data.data
|
||||
this.dataSource = records;
|
||||
this.loading = false;
|
||||
this.page = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
});
|
||||
},
|
||||
rowUpdate(row, index, done) {
|
||||
updateTenantTalentsWarn({id: row.id, status: row.status}).then(
|
||||
() => {
|
||||
done();
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "操作成功!",
|
||||
});
|
||||
this.refresh();
|
||||
},
|
||||
(error) => {
|
||||
window.console.log(error);
|
||||
done();
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
</style>
|
||||
@@ -14,18 +14,18 @@
|
||||
:data="treeData" :props="props">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }" style="width: 80%">
|
||||
<!-- <el-tooltip class="item" effect="dark" :content="node.label" placement="top"> -->
|
||||
<TextTooltip :content="`${node.label}(${data.sumNum}人)`" length="13" tip-width="10"></TextTooltip>
|
||||
<TextTooltip :content="`${node.label}(${data.sumNum}人)`" length="18" tip-width="18"></TextTooltip>
|
||||
<!-- </el-tooltip> -->
|
||||
<span v-show="data.id && data.id !== '0'" style="flex-basis: 20%">
|
||||
<el-button type="text" icon="el-icon-edit" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_talents_certain_index_groupedit, false)"
|
||||
@click="() => updateGroups('edit', data)">
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" type="text" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_talents_certain_index_groupdelete, false)"
|
||||
@click="() => removeGroups(data)">
|
||||
</el-button>
|
||||
</span>
|
||||
<!-- <span v-show="data.id && data.id !== '0'" style="flex-basis: 20%">-->
|
||||
<!-- <el-button type="text" icon="el-icon-edit" size="mini"-->
|
||||
<!-- v-if="vaildData(permission.tenant_main_talents_certain_index_groupedit, false)"-->
|
||||
<!-- @click="() => updateGroups('edit', data)">-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button icon="el-icon-delete" type="text" size="mini"-->
|
||||
<!-- v-if="vaildData(permission.tenant_main_talents_certain_index_groupdelete, false)"-->
|
||||
<!-- @click="() => removeGroups(data)">-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </span>-->
|
||||
</span>
|
||||
</el-tree>
|
||||
<!-- v-show="vaildData(permission.tenant_wage_payroll_view, false)" -->
|
||||
@@ -74,9 +74,9 @@
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<template slot="menuLeft">
|
||||
<el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"
|
||||
v-show="vaildData(permission.tenant_main_talents_certain_index_add, false)">批量导入
|
||||
</el-button>
|
||||
<!-- <el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"-->
|
||||
<!-- v-show="vaildData(permission.tenant_main_talents_certain_index_add, false)">批量导入-->
|
||||
<!-- </el-button>-->
|
||||
<el-button type="warning" size="small" plain :disabled="!selectionList.length" icon="el-icon-sort"
|
||||
@click="handleTransfer"
|
||||
v-show="vaildData(permission.tenant_main_talents_certain_index_transfergroup, false)">转移推送
|
||||
@@ -371,9 +371,10 @@ export default {
|
||||
columnBtn: false,
|
||||
searchBtn: true,
|
||||
searchShow: true,
|
||||
viewBtn: true,
|
||||
viewBtn: false,
|
||||
searchMenuSpan: 6,
|
||||
editBtnText: '转 移',
|
||||
editTitle: '转 移',
|
||||
searchSpan: 8,
|
||||
menuWidth: 170,
|
||||
border: true,
|
||||
@@ -411,6 +412,7 @@ export default {
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
search: true,
|
||||
slot: true
|
||||
@@ -424,6 +426,7 @@ export default {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
editDisplay: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
@@ -444,11 +447,13 @@ export default {
|
||||
{trigger: "blur", validator: IdCardNo},
|
||||
],
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
label: "人员类型",
|
||||
prop: "suspected",
|
||||
editDisplay: false,
|
||||
search: true,
|
||||
editDisabled: true,
|
||||
type: 'select',
|
||||
@@ -462,6 +467,7 @@ export default {
|
||||
label: "手机号",
|
||||
prop: "telphone",
|
||||
span: 24,
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
hide: false,
|
||||
rules: [
|
||||
@@ -481,6 +487,7 @@ export default {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
rules: [
|
||||
{
|
||||
@@ -500,6 +507,7 @@ export default {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
rules: [
|
||||
{
|
||||
@@ -514,6 +522,7 @@ export default {
|
||||
label: "求职意愿",
|
||||
prop: "willingJob",
|
||||
span: 24,
|
||||
editDisplay: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入求职意愿", trigger: "blur"},
|
||||
],
|
||||
@@ -524,6 +533,7 @@ export default {
|
||||
// hide: true,
|
||||
span: 24,
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入口所在地", trigger: "blur"},
|
||||
],
|
||||
@@ -538,6 +548,7 @@ export default {
|
||||
value: "dictKey",
|
||||
},
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
@@ -551,6 +562,7 @@ export default {
|
||||
label: "经办时间",
|
||||
prop: "aae036",
|
||||
display: false,
|
||||
editDisplay: false,
|
||||
span: 24,
|
||||
rules: [
|
||||
{required: true, message: "请输入经办时间", trigger: "blur"},
|
||||
@@ -562,12 +574,12 @@ export default {
|
||||
prop: "groupId",
|
||||
type: "tree",
|
||||
span: 24,
|
||||
display: true,
|
||||
dicData: self.treeData,
|
||||
props: {
|
||||
label: "groupName",
|
||||
value: "id",
|
||||
},
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
rules: [
|
||||
{
|
||||
@@ -591,12 +603,14 @@ export default {
|
||||
editDisabled: true,
|
||||
slot: true,
|
||||
formslot: true,
|
||||
editDisplay: false,
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
editDisplay: false,
|
||||
slot: true,
|
||||
hide: true,
|
||||
span: 24,
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
<el-scrollbar style="height: 100%">
|
||||
<el-tree ref="tree" node-key="id" highlight-current :expand-on-click-node="false" @node-click="nodeClick"
|
||||
:data="treeData" :props="props">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }" style="width: 80%">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }">
|
||||
<!-- <el-tooltip class="item" effect="dark" :content="node.label" placement="top"> -->
|
||||
<TextTooltip :content="`${node.label}(${data.sumNum}人)`" length="10" tip-width="10"></TextTooltip>
|
||||
<TextTooltip :content="`${node.label}(${data.sumNum}人)`" length="16" tip-width="16"></TextTooltip>
|
||||
<!-- </el-tooltip> -->
|
||||
<span v-show="data.id && data.id !== '0'" style="flex-basis: 20%">
|
||||
<el-button type="text" icon="el-icon-edit" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_talents_latent_index_groupedit, false)"
|
||||
@click="() => updateGroups('edit', data)">
|
||||
</el-button>
|
||||
<el-button icon="el-icon-delete" type="text" size="mini"
|
||||
v-if="vaildData(permission.tenant_main_talents_latent_index_groupdelete, false)"
|
||||
@click="() => removeGroups(data)">
|
||||
</el-button>
|
||||
</span>
|
||||
<!-- <span v-show="data.id && data.id !== '0'" style="flex-basis: 20%">-->
|
||||
<!-- <el-button type="text" icon="el-icon-edit" size="mini"-->
|
||||
<!-- v-if="vaildData(permission.tenant_main_talents_latent_index_groupedit, false)"-->
|
||||
<!-- @click="() => updateGroups('edit', data)">-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button icon="el-icon-delete" type="text" size="mini"-->
|
||||
<!-- v-if="vaildData(permission.tenant_main_talents_latent_index_groupdelete, false)"-->
|
||||
<!-- @click="() => removeGroups(data)">-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </span>-->
|
||||
</span>
|
||||
</el-tree>
|
||||
<!-- v-show="vaildData(permission.tenant_wage_payroll_view, false)" -->
|
||||
@@ -51,7 +51,7 @@
|
||||
:permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate"
|
||||
@row-save="rowSave" @search-change="searchChange" @search-reset="searchReset"
|
||||
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
|
||||
@refresh-change="refreshChange" class="customPage">
|
||||
@refresh-change="refreshChange" class="customPage" :row-style="rowStyle">
|
||||
<!--自定义列-->
|
||||
<template slot="labelsBase" slot-scope="{ row }">
|
||||
<el-tooltip effect="dark" placement="top">
|
||||
@@ -72,11 +72,66 @@
|
||||
<tag-select v-model="selectedWorkTypes" :prop="{ label: 'name', value: 'name' }" :data="arr">
|
||||
</tag-select>
|
||||
</template>
|
||||
|
||||
<template slot-scope="{row}" slot="employInfoListForm">
|
||||
<div>
|
||||
<el-radio-group v-model="employInfoType" @input="employInfoInput">
|
||||
<el-radio-button :label="1">失业就业信息</el-radio-button>
|
||||
<el-radio-button :label="2">养老待遇信息</el-radio-button>
|
||||
<el-radio-button :label="3">人员死亡信息</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-table
|
||||
v-if="employInfoType === 1"
|
||||
:data="row.employInfoList"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="workCompany"
|
||||
label="工作单位">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
label="日期"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="title"
|
||||
label="内容"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remarks"
|
||||
label="备注">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div v-else-if="employInfoType === 2">
|
||||
<el-row style="margin-top: 10px">
|
||||
<el-col :span="8">养老保险: {{
|
||||
row.isPension ? '已领取' : ' 未领取'
|
||||
}}
|
||||
</el-col>
|
||||
<el-col :span="8">最大做账期: {{ splitDate(row.biggestDate) || '无' }}</el-col>
|
||||
<el-col :span="8">经办时间: {{
|
||||
row.operateDate && dateFormat(new Date(Number(row.operateDate))) || '无'
|
||||
}}
|
||||
</el-col>
|
||||
<el-col :span="8">开始年月: {{ splitDate(row.startDate) || '无' }}</el-col>
|
||||
<el-col :span="8">终止年月: {{ splitDate(row.endDate) || '无' }}</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-else-if="employInfoType === 3">
|
||||
<el-row style="margin-top: 10px">
|
||||
<el-col :span="8">是否死亡: {{ row.isDead ? '已死亡' : ' 未死亡' }}</el-col>
|
||||
<el-col :span="8">火化地址: {{ row.funeralAddress || '无' }}</el-col>
|
||||
<el-col :span="8">火化时间: {{ row.funeralDate || '无' }}</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!--自定义按钮-->
|
||||
<template slot="menuLeft">
|
||||
<el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"
|
||||
v-show="vaildData(permission.tenant_main_talents_latent_index_add, false)">批量导入
|
||||
</el-button>
|
||||
<!-- <el-button type="success" size="small" plain icon="el-icon-plus" @click="handleImport"-->
|
||||
<!-- v-show="vaildData(permission.tenant_main_talents_latent_index_add, false)">批量导入-->
|
||||
<!-- </el-button>-->
|
||||
<el-button type="warning" size="small" plain :disabled="!selectionList.length" icon="el-icon-sort"
|
||||
@click="handleTransfer"
|
||||
v-show="vaildData(permission.tenant_main_talents_latent_index_tansfergroup, false)">转移推送
|
||||
@@ -117,6 +172,7 @@
|
||||
>核实
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
</avue-crud>
|
||||
|
||||
<!--批量导入-->
|
||||
@@ -172,15 +228,30 @@
|
||||
|
||||
<PromptDialog
|
||||
:visible="dialogFlag"
|
||||
title="审核"
|
||||
title="核实"
|
||||
:back-btn-status="1"
|
||||
submit-text="确 定"
|
||||
sub-title="请核对人员信息后再进行审核通过,驳回该用户将从人群中删除,在人员服务日志中可见"
|
||||
:tips="[
|
||||
'人员信息描述不清晰或过于简单;',
|
||||
'人员信息存在违法违规行为;',
|
||||
'人员信息的薪资、福利等待遇不符合市场标准;',
|
||||
submit-text="符 合"
|
||||
:submit-vail="false"
|
||||
back-text="不符合"
|
||||
dialogWidth="60%"
|
||||
:isInputInfo="false"
|
||||
:placeholder="`请输入不符合潜在 ${selectGroupName} 的具体原因`"
|
||||
:sub-title="[
|
||||
`请核实人员相关信息,进行以下操作:`,
|
||||
`符合:表示为已初步判定该人员符合 ${selectGroupName} 相关条件,但仍需与该人员主动联系并进一步核实,最终以省就业3.0实际政策经办情况为准。`,
|
||||
`不符合:表示经核查后该人员不符合 ${selectGroupName} 相关条件,并将该人员从潜在的{就业困难}列表中剔除。`,
|
||||
'核实完成后会产生服务日志记录。'
|
||||
]"
|
||||
:tips="dialogTips"
|
||||
:pattern="{
|
||||
reg: /[\u4e00-\u9fff]{6,}/g,
|
||||
check: function checkChineseString(val) {
|
||||
const pattern = /[\u4e00-\u9fff]/g;
|
||||
const chineseChars = val.match(pattern);
|
||||
return chineseChars && chineseChars.length >= 6;
|
||||
},
|
||||
message: '请填写具体原因,且字数长度不得小于6个汉字'
|
||||
}"
|
||||
@onClose="dialogFlag = false; GroupValue = ''"
|
||||
@onCancel="diaLogCancel"
|
||||
@onConfirm="diaLogConfirm"
|
||||
@@ -231,6 +302,8 @@ import TextTooltip from '@/components/text-tooltip'
|
||||
import {exportList} from "@/api/workstation/post";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
import PromptDialog from "@/components/promptDialog/index.vue";
|
||||
import {setWith} from "lodash";
|
||||
import {dateFormat} from '@/util/date'
|
||||
|
||||
let page = {
|
||||
pageSize: 10,
|
||||
@@ -250,6 +323,7 @@ export default {
|
||||
name: "tenant_talents",
|
||||
data() {
|
||||
return {
|
||||
employInfoType: 1,
|
||||
dialogFlag: false,
|
||||
dialogInfo: null,
|
||||
downloadButton: false,
|
||||
@@ -284,7 +358,10 @@ export default {
|
||||
obj: {},
|
||||
excelForm: {isCovered: 1},
|
||||
selecTreeData: [],
|
||||
GroupValue: ''
|
||||
GroupValue: '',
|
||||
selectInfo: {},
|
||||
selectGroupName: '',
|
||||
dialogTips: []
|
||||
};
|
||||
},
|
||||
components: {addGroups, transferGroups, Resume, ied, TextTooltip, PromptDialog},
|
||||
@@ -333,9 +410,11 @@ export default {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
// 潜在就业困难人员
|
||||
// const unemployedCollegeStudents = this.selectInfo && this.selectInfo.groupName === '潜在就业困难人员'
|
||||
return {
|
||||
height: "auto",
|
||||
dialogWidth: "50%",
|
||||
dialogWidth: "60%",
|
||||
calcHeight: 180,
|
||||
align: "center",
|
||||
menuAlign: "center",
|
||||
@@ -344,6 +423,8 @@ export default {
|
||||
searchBtn: true,
|
||||
delBtn: false,
|
||||
searchShow: true,
|
||||
editBtnText: '移 交',
|
||||
editTitle: '移 交',
|
||||
viewBtn: true,
|
||||
menuWidth: 170,
|
||||
searchMenuSpan: 6,
|
||||
@@ -353,7 +434,7 @@ export default {
|
||||
selection: true,
|
||||
dialogType: "drawer",
|
||||
dialogClickModal: false,
|
||||
formLabelWidth: '180px',
|
||||
formLabelWidth: '220px',
|
||||
column: [
|
||||
{
|
||||
label: "所属机构",
|
||||
@@ -375,6 +456,7 @@ export default {
|
||||
prop: "name",
|
||||
// search: true,
|
||||
span: 24,
|
||||
viewDisplay: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
@@ -386,12 +468,15 @@ export default {
|
||||
slot: true,
|
||||
search: true,
|
||||
editDisabled: true,
|
||||
editDisplay: false
|
||||
},
|
||||
{
|
||||
label: "姓别",
|
||||
prop: "aac004",
|
||||
type: 'select',
|
||||
viewDisplay: false,
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
editDisplay: false,
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
@@ -405,10 +490,13 @@ export default {
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
// hide: true,
|
||||
span: 24,
|
||||
rules: [
|
||||
@@ -421,6 +509,8 @@ export default {
|
||||
{
|
||||
label: "手机号",
|
||||
prop: "telphone",
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
span: 24,
|
||||
hide: false,
|
||||
editDisabled: true,
|
||||
@@ -437,6 +527,8 @@ export default {
|
||||
prop: "aac005",
|
||||
type: 'select',
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
@@ -456,6 +548,8 @@ export default {
|
||||
prop: "aac009",
|
||||
type: 'select',
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC009",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
@@ -476,6 +570,8 @@ export default {
|
||||
// hide: true,
|
||||
span: 24,
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入口所在地", trigger: "blur"},
|
||||
],
|
||||
@@ -484,6 +580,8 @@ export default {
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
@@ -504,6 +602,7 @@ export default {
|
||||
prop: "isConfirm",
|
||||
type: 'select',
|
||||
display: false,
|
||||
viewDisplay: false,
|
||||
dicData: [
|
||||
{
|
||||
value: -1,
|
||||
@@ -523,8 +622,10 @@ export default {
|
||||
label: "经办时间",
|
||||
prop: "aae036",
|
||||
display: false,
|
||||
viewDisplay: false,
|
||||
span: 24,
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入经办时间", trigger: "blur"},
|
||||
],
|
||||
@@ -534,6 +635,8 @@ export default {
|
||||
prop: "userId",
|
||||
type: "select",
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
dicData: [
|
||||
{
|
||||
value: "0",
|
||||
@@ -553,8 +656,9 @@ export default {
|
||||
prop: "groupId",
|
||||
type: "tree",
|
||||
span: 24,
|
||||
display: true,
|
||||
viewDisplay: false,
|
||||
editDisabled: true,
|
||||
editDisplay: false,
|
||||
dicData: self.treeData,
|
||||
props: {
|
||||
label: "groupName",
|
||||
@@ -572,7 +676,9 @@ export default {
|
||||
{
|
||||
label: "标签名称",
|
||||
prop: "labelsBase",
|
||||
editDisplay: false,
|
||||
editDisabled: true,
|
||||
viewDisplay: false,
|
||||
rules: [
|
||||
{
|
||||
required: false,
|
||||
@@ -584,22 +690,29 @@ export default {
|
||||
formslot: true,
|
||||
span: 24,
|
||||
},
|
||||
// {
|
||||
// label: "简历",
|
||||
// prop: "resume",
|
||||
// slot: true,
|
||||
// display: false
|
||||
// },
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
slot: true,
|
||||
hide: true,
|
||||
span: 24,
|
||||
maxlength: 100,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
prop: 'employInfoList',
|
||||
formslot: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
viewDisplay: false,
|
||||
hide: true,
|
||||
span: 24,
|
||||
labelPosition: 'top', //标签位置
|
||||
}
|
||||
],
|
||||
};
|
||||
},
|
||||
@@ -758,19 +871,51 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.initDept();
|
||||
this.groupTypeDept()
|
||||
// this.getWorkTypes();
|
||||
this.getLabelList();
|
||||
this.getDept()
|
||||
},
|
||||
methods: {
|
||||
groupTypeDept() {
|
||||
getDept({groupType: 1}).then((res) => {
|
||||
this.selecTreeData = res.data.data.list;
|
||||
});
|
||||
splitDate(time) {
|
||||
if (!time) return
|
||||
return `${time.slice(0, 4)}年${time.slice(4, 6)}日`
|
||||
},
|
||||
dateFormat: dateFormat,
|
||||
rowStyle(column) {
|
||||
const groupId = column.row.groupId
|
||||
const groupInfo = this.treeData.find((item) => item.id === groupId)
|
||||
if (groupInfo.groupName === '潜在就业困难人员' || groupInfo.groupName === '潜在就业见习申请人员') {
|
||||
this.option.column[15].viewDisplay = true
|
||||
} else {
|
||||
this.option.column[15].viewDisplay = false
|
||||
}
|
||||
},
|
||||
checkUserInfo(row) {
|
||||
this.dialogInfo = row
|
||||
const groupInfo = this.treeData.find((item) => item.id === row.groupId)
|
||||
this.selectGroupName = groupInfo.groupName
|
||||
switch (groupInfo.groupName) {
|
||||
case '潜在就业困难人员':
|
||||
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
|
||||
break
|
||||
case '潜在登记失业人员':
|
||||
this.dialogTips = ['不满足断保3个月', '存在工商信息']
|
||||
break
|
||||
case '潜在失业保险金申领人员':
|
||||
this.dialogTips = ['已经进行就业登记', '享受养老保险待遇', '存在工商信息', '连续参保不满一年']
|
||||
break
|
||||
case '潜在就业困难人员中以个人身份参保人员':
|
||||
this.dialogTips = ['已经进行就业登记', '存在工商信息', '不是以个人身份参保']
|
||||
break
|
||||
case '潜在公益性岗位申请人员':
|
||||
this.dialogTips = ['人员已死亡', '已经进行就业登记', '享受养老保险待遇', '不满足男性大于等于50岁女性大于等于40岁', '不满足失业登记一年以上', '存在工商信息']
|
||||
break
|
||||
case '潜在就业见习申请人员':
|
||||
this.dialogTips = ['已就业登记', '不满足16-24岁']
|
||||
break
|
||||
default :
|
||||
this.dialogTips = []
|
||||
}
|
||||
this.dialogFlag = true
|
||||
},
|
||||
diaLogCancel(value) {
|
||||
@@ -782,7 +927,7 @@ export default {
|
||||
approvalStatus: 1,
|
||||
content: value,
|
||||
}
|
||||
this.$confirm("确定将选择数据驳回?", {
|
||||
this.$confirm("确定数据不符合?", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
@@ -885,6 +1030,7 @@ export default {
|
||||
initDept(groupId) {
|
||||
getDept({groupType: 0}).then((res) => {
|
||||
const data = res.data.data.list;
|
||||
this.selecTreeData = data;
|
||||
this.treeData = data;
|
||||
let treeDataOne = {
|
||||
companyId: "",
|
||||
@@ -988,6 +1134,7 @@ export default {
|
||||
/*点击分组加载相应人才列表*/
|
||||
nodeClick(data) {
|
||||
this.tenantId = data.id ? data.id : "";
|
||||
this.selectInfo = data
|
||||
this.page.currentPage = 1;
|
||||
this.onLoad(this.page, this.query);
|
||||
// if (this.tenantId !== data.id) {
|
||||
@@ -1016,6 +1163,7 @@ export default {
|
||||
setTimeout(() => {
|
||||
detail(this.obj.id).then(
|
||||
(res) => {
|
||||
console.log(res)
|
||||
this.obj = res.data.data;
|
||||
this.tempWorkType = this.obj.labelsBase.split(",");
|
||||
done();
|
||||
|
||||
506
src/views/tenant/main/talents/personFile/index.vue
Normal file
506
src/views/tenant/main/talents/personFile/index.vue
Normal file
@@ -0,0 +1,506 @@
|
||||
<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"
|
||||
:row-style="rowStyle"
|
||||
:before-open="beforeOpen"
|
||||
>
|
||||
<template slot-scope="{row}" slot="employInfoListForm">
|
||||
<div>
|
||||
<el-radio-group v-model="employInfoType" @input="employInfoInput">
|
||||
<el-radio-button :label="1">失业就业信息</el-radio-button>
|
||||
<el-radio-button :label="2">养老待遇信息</el-radio-button>
|
||||
<el-radio-button :label="3">人员死亡信息</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-table
|
||||
v-if="employInfoType === 1"
|
||||
:data="row.employInfoList"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="workCompany"
|
||||
label="工作单位">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="date"
|
||||
label="日期"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="title"
|
||||
label="内容"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remarks"
|
||||
label="备注">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div v-else-if="employInfoType === 2">
|
||||
<el-row style="margin-top: 10px">
|
||||
<el-col :span="8">养老保险: {{
|
||||
row.isPension ? '已领取' : ' 未领取'
|
||||
}}
|
||||
</el-col>
|
||||
<el-col :span="8">最大做账期: {{ splitDate(row.biggestDate) || '无' }}</el-col>
|
||||
<el-col :span="8">经办时间: {{
|
||||
row.operateDate && dateFormat(new Date(Number(row.operateDate))) || '无'
|
||||
}}
|
||||
</el-col>
|
||||
<el-col :span="8">开始年月: {{ splitDate(row.startDate) || '无' }}</el-col>
|
||||
<el-col :span="8">终止年月: {{ splitDate(row.endDate) || '无' }}</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div v-else-if="employInfoType === 3">
|
||||
<el-row style="margin-top: 10px">
|
||||
<el-col :span="8">是否死亡: {{ row.isDead ? '已死亡' : ' 未死亡' }}</el-col>
|
||||
<el-col :span="8">火化地址: {{ row.funeralAddress || '无' }}</el-col>
|
||||
<el-col :span="8">火化时间: {{ row.funeralDate || '无' }}</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- <template slot-scope="{row}" slot="menu">-->
|
||||
<!-- <div>-->
|
||||
<!-- <el-button type="text"-->
|
||||
<!-- icon="el-icon-document"-->
|
||||
<!-- size="small"-->
|
||||
<!-- @click="serveLog(row)"-->
|
||||
<!-- >查看-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </template>-->
|
||||
</avue-crud>
|
||||
</basic-container>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from "vuex";
|
||||
import {getList} from "@/api/tenant/personnelserve";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {detail, getDept, getDeptMyTree, talentsDetail} from "@/api/tenant/talents";
|
||||
import {addServeLog, getMainServeUserLog, removeServeLog, updateServeLog} from "@/api/tenant/serve";
|
||||
import {dateFormat} from "@/util/date";
|
||||
|
||||
const page = {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
}
|
||||
const baseOptions = {
|
||||
size: 'medium',
|
||||
dateBtn: false,
|
||||
addBtn: false,
|
||||
editBtn: false,
|
||||
viewBtn: true,
|
||||
delBtn: false,
|
||||
height: "auto",
|
||||
menuWidth: 130,
|
||||
reserveSelection: false,
|
||||
border: true,
|
||||
columnBtn: false,
|
||||
refreshBtn: false,
|
||||
menu: true,
|
||||
tip: false,
|
||||
selection: false,
|
||||
align: 'center',
|
||||
searchMenuSpan: 6,
|
||||
dialogType: "drawer",
|
||||
searchLabelWidth: 60,
|
||||
}
|
||||
export default {
|
||||
filters: {
|
||||
ellipsis(value) {
|
||||
if (!value) return "";
|
||||
if (value.length > 15) {
|
||||
return value.slice(0, 14) + "...";
|
||||
}
|
||||
return value;
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
employInfoType: 1,
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
crudValues: {},
|
||||
depTree: [],
|
||||
page: Object.assign({}, page),
|
||||
treeData: [],
|
||||
logPage: Object.assign({}, page),
|
||||
logDataSource: [],
|
||||
loadingLog: false,
|
||||
innerDrawerLog: false,
|
||||
innerDrawerAddLog: false,
|
||||
logValues: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["permission", "userInfo"]),
|
||||
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() {
|
||||
const self = this;
|
||||
const IdCardNo = (rule, value, callback) => {
|
||||
// if (check18IdCardNo(value)) {
|
||||
callback();
|
||||
// } else {
|
||||
// callback(new Error("身份证格式不正确"));
|
||||
// }
|
||||
};
|
||||
const validateTel = (rule, value, callback) => {
|
||||
if (isvalidatemobile(value)[0]) {
|
||||
callback(new Error(isvalidatemobile(value)[1]));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
...baseOptions,
|
||||
column: [
|
||||
{
|
||||
label: "所属机构",
|
||||
prop: "createDept",
|
||||
type: "tree",
|
||||
multiple: false,
|
||||
dicData: this.depTree,
|
||||
props: {
|
||||
label: "title",
|
||||
value: 'value'
|
||||
},
|
||||
checkStrictly: true,
|
||||
span: 24,
|
||||
search: true,
|
||||
display: false,
|
||||
searchLabelWidth: 80,
|
||||
change: this.deptChange
|
||||
},
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "name",
|
||||
// search: true,
|
||||
span: 24,
|
||||
display: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
whitespace: true,
|
||||
message: "请输入姓名",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
label: "姓别",
|
||||
prop: "aac004",
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC004",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
display: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入性别",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "身份证",
|
||||
prop: "idNumber",
|
||||
// hide: true,
|
||||
span: 24,
|
||||
display: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入身份证号", trigger: "blur"},
|
||||
{trigger: "blur", validator: IdCardNo},
|
||||
],
|
||||
search: true,
|
||||
},
|
||||
{
|
||||
label: "手机号",
|
||||
prop: "telphone",
|
||||
span: 24,
|
||||
display: false,
|
||||
hide: false,
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: validateTel,
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "民族",
|
||||
prop: "aac005",
|
||||
display: false,
|
||||
type: 'select',
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC005",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入民族",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "户口性质",
|
||||
display: false,
|
||||
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",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "户口所在地",
|
||||
prop: "aac010",
|
||||
// hide: true,
|
||||
span: 24,
|
||||
display: false,
|
||||
rules: [
|
||||
{required: true, message: "请输入口所在地", trigger: "blur"},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "文化程度",
|
||||
prop: "aac011",
|
||||
type: 'select',
|
||||
display: false,
|
||||
dicUrl: "/api/jobslink-api/system/dict-biz/tadict?code=AAC011",
|
||||
props: {
|
||||
label: "dictValue",
|
||||
value: "dictKey",
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入文化程度",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
span: 24,
|
||||
},
|
||||
{
|
||||
label: "备注",
|
||||
prop: "remarks",
|
||||
type: "textarea",
|
||||
slot: true,
|
||||
hide: true,
|
||||
display: false,
|
||||
span: 24,
|
||||
maxlength: 100,
|
||||
showWordLimit: true,
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
prop: 'employInfoList',
|
||||
formslot: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
viewDisplay: true,
|
||||
hide: true,
|
||||
span: 24,
|
||||
labelPosition: 'top', //标签位置
|
||||
}
|
||||
],
|
||||
}
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getDept()
|
||||
this.initDept()
|
||||
this.onLoad(this.page, this.query)
|
||||
},
|
||||
activated() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.crud.refreshTable()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
splitDate(time) {
|
||||
if (!time) return
|
||||
return `${time.slice(0, 4)}年${time.slice(4, 6)}日`
|
||||
},
|
||||
dateFormat: dateFormat,
|
||||
async getDept() {
|
||||
let params = {
|
||||
tenantId: '000000'
|
||||
}
|
||||
let resData = await getDeptMyTree(params)
|
||||
if (resData.data.code === 200) {
|
||||
this.depTree = resData.data.data
|
||||
}
|
||||
},
|
||||
initDept(groupId) {
|
||||
getDept({groupType: 0}).then((res) => {
|
||||
const data = res.data.data.list;
|
||||
this.treeData = data;
|
||||
let treeDataOne = {
|
||||
companyId: "",
|
||||
createTime: "",
|
||||
groupName: "全部",
|
||||
id: "",
|
||||
remarks: "",
|
||||
sort: '',
|
||||
sumNum: res.data.data.sum,
|
||||
type: '',
|
||||
};
|
||||
this.treeData.unshift(treeDataOne);
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
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);
|
||||
},
|
||||
logSizeChange(pageSize) {
|
||||
this.logPage.pageSize = pageSize;
|
||||
this.serveLog(this.selectUserServeLog);
|
||||
},
|
||||
logCurrentChange(currentPage) {
|
||||
this.logPage.currentPage = currentPage;
|
||||
this.serveLog(this.selectUserServeLog);
|
||||
},
|
||||
onLoad(page, params = {}) {
|
||||
const {releaseTimeRange} = params;
|
||||
let paramsed = {
|
||||
current: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...this.query
|
||||
};
|
||||
this.loading = true;
|
||||
getList(paramsed).then((res) => {
|
||||
const {total, size, current, records, page} = res.data.data
|
||||
this.dataSource = records;
|
||||
this.loading = false;
|
||||
this.page = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
});
|
||||
},
|
||||
serveLog(row) {
|
||||
console.log('服务日志', row)
|
||||
this.selectUserServeLog = row
|
||||
this.loadingLog = true
|
||||
getMainServeUserLog({
|
||||
idNumber: row.idNumber,
|
||||
current: this.logPage.currentPage,
|
||||
size: this.logPage.pageSize
|
||||
}).then(res => {
|
||||
this.loadingLog = false
|
||||
const {records, current, size, total} = res.data.data
|
||||
this.logDataSource = records
|
||||
this.innerDrawerLog = true
|
||||
this.logPage = {
|
||||
pageSize: size,
|
||||
currentPage: current,
|
||||
total: total,
|
||||
}
|
||||
})
|
||||
},
|
||||
beforeOpen(done, type) {
|
||||
if (["edit", "view", "add"].includes(type)) {
|
||||
if (type === "edit" || type === "view") {
|
||||
setTimeout(() => {
|
||||
talentsDetail({id: this.crudValues.idNumber}).then(
|
||||
(res) => {
|
||||
this.crudValues = res.data.data;
|
||||
done();
|
||||
},
|
||||
(error) => {
|
||||
window.console.log(error);
|
||||
}
|
||||
);
|
||||
}, 0);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
}
|
||||
},
|
||||
async handleSubmitLog(row, done) {
|
||||
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.innerDrawerAddLog = false
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
</style>
|
||||
@@ -215,6 +215,7 @@ const validateTel = (rule, value, callback) => {
|
||||
};
|
||||
|
||||
export default {
|
||||
name: 'work_copy_mission',
|
||||
data() {
|
||||
return {
|
||||
options23: [],
|
||||
|
||||
@@ -24,8 +24,8 @@ module.exports = {
|
||||
port: 1888,
|
||||
proxy: {
|
||||
"/api": {
|
||||
target: 'http://192.168.1.115:8000',
|
||||
// target: 'http://10.165.0.173:8000',
|
||||
// target: 'http://192.168.1.115:8000',
|
||||
target: 'http://10.165.0.173:8000',
|
||||
ws: true,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
|
||||
Reference in New Issue
Block a user