合并冲突

This commit is contained in:
Apcallover
2024-02-25 17:04:36 +08:00
3 changed files with 226 additions and 67 deletions

View File

@@ -104,3 +104,13 @@ export const transferDept =
export const upload = () => { export const upload = () => {
return `/api/jobslink-api/serve/group/import?isCovered=1` return `/api/jobslink-api/serve/group/import?isCovered=1`
} }
/*转移分组*/
export const getServeListTalents =
(params) => {
return request({
url: '/api/jobslink-api/serve/listTalents',
method: 'get',
params: params
})
}

View File

@@ -51,15 +51,15 @@
<!--搜索栏--> <!--搜索栏-->
<el-form size="small" label-position="right" :inline="true" style="padding-left: 10px; padding-right: 10px"> <el-form size="small" label-position="right" :inline="true" style="padding-left: 10px; padding-right: 10px">
<el-row :span="24"> <el-row :span="24">
<el-form-item label="名:"> <el-form-item label="服务名:">
<el-input v-model="query.name" placeholder="名" clearable></el-input> <el-input v-model="query.name" placeholder="服务名" clearable></el-input>
</el-form-item>
<el-form-item label="工种:">
<el-select v-model="query.worktypes" placeholder="工种" style="width: 100%" filterable clearable>
<el-option v-for="(item, key, index) in worktypeData" :key="index" :label="item.name"
:value="item.name"></el-option>
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="工种:">-->
<!-- <el-select v-model="query.worktypes" placeholder="工种" style="width: 100%" filterable clearable>-->
<!-- <el-option v-for="(item, key, index) in worktypeData" :key="index" :label="item.name"-->
<!-- :value="item.name"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<div class="searchBtn"> <div class="searchBtn">
<el-button type="primary" size="small" icon="el-icon-search" @click="searchChange1"> </el-button> <el-button type="primary" size="small" icon="el-icon-search" @click="searchChange1"> </el-button>
@@ -87,7 +87,7 @@
</div> </div>
</template> </template>
<!--/自定义列--> <!--/自定义列-->
<template slot="worktypesForm"> <template slot="serveLabelsForm">
<tag-select v-model="selectedWorkTypes" :prop="{ label: 'name', value: 'name' }" :data="worktypeData"> <tag-select v-model="selectedWorkTypes" :prop="{ label: 'name', value: 'name' }" :data="worktypeData">
</tag-select> </tag-select>
</template> </template>
@@ -107,8 +107,45 @@
</template> </template>
<!--/自定义按钮--> <!--/自定义按钮-->
<template slot-scope="{row,index}" slot="menu">
<el-button type="text"
icon="el-icon-document"
size="small"
@click="showKeyAudience(row)"
>重点人群详情</el-button>
</template>
<!--/父子表-->
</avue-crud> </avue-crud>
<!-- / 重点人群详情 -->
<el-dialog title="重点人群详情" :visible.sync="visibleAudience" :close-on-click-modal="false" append-to-body width="70%">
<avue-crud
:data="infoData"
:option="infoOption"
:page.sync="infoPage"
@size-change="infoSizeChange"
@current-change="infoCurrentChange"
>
<template slot-scope="{row,index}" slot="menu">
<el-button type="text"
icon="el-icon-document"
size="small"
@click=""
>查看服务</el-button>
<el-button type="text"
icon="el-icon-document"
size="small"
@click=""
>查看政策</el-button>
<el-button type="text"
icon="el-icon-document"
size="small"
@click=""
>查看日志</el-button>
</template>
</avue-crud>
</el-dialog>
<!--批量导入--> <!--批量导入-->
<el-dialog title="导入" append-to-body :visible.sync="excelBox" :close-on-click-modal="false" width="555px"> <el-dialog title="导入" append-to-body :visible.sync="excelBox" :close-on-click-modal="false" width="555px">
<avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"
@@ -145,6 +182,7 @@ import {
getDept, getDept,
removeDept, removeDept,
upload, upload,
getServeListTalents
} from "@/api/tenant/serve"; } from "@/api/tenant/serve";
import { getWorkTypes } from "@/api/tenant/common"; import { getWorkTypes } from "@/api/tenant/common";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
@@ -155,7 +193,11 @@ import { check18IdCardNo, isvalidatemobile, isExcel } from "@/util/validate";
import { getTemplate } from "@/api/resource/template"; import { getTemplate } from "@/api/resource/template";
import ied from "@/views/util/import-error-dialog"; import ied from "@/views/util/import-error-dialog";
import { excelAccept } from "@/common/accept"; import { excelAccept } from "@/common/accept";
const page = {
pageSize: 10,
currentPage: 1,
total: 0,
}
export default { export default {
filters: { filters: {
ellipsis(value) { ellipsis(value) {
@@ -184,11 +226,7 @@ export default {
personTotal: 0, personTotal: 0,
treeData: [], treeData: [],
tenantId: "", tenantId: "",
page: { page: Object.assign({} ,page),
pageSize: 10,
currentPage: 1,
total: 0,
},
tempWorkType: [], tempWorkType: [],
worktypeDic: {}, worktypeDic: {},
arr: [],////// arr: [],//////
@@ -221,6 +259,10 @@ export default {
}, },
excelBox: false, excelBox: false,
data: [], data: [],
visibleAudience: false,
selectInfo: null,
infoData: [],
infoPage: Object.assign({} ,page),
obj: {}, obj: {},
excelForm: { isCovered: 1 }, excelForm: { isCovered: 1 },
}; };
@@ -297,7 +339,7 @@ export default {
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ {
label: "名", label: "服务名",
prop: "name", prop: "name",
// search: true, // search: true,
span: 24, span: 24,
@@ -311,29 +353,29 @@ export default {
], ],
slot: true slot: true
}, },
{ // {
label: "身份证", // label: "身份证",
prop: "idNumber", // prop: "idNumber",
hide: true, // hide: true,
span: 24, // span: 24,
rules: [ // rules: [
{ required: true, message: "请输入身份证号", trigger: "blur" }, // { required: true, message: "请输入身份证号", trigger: "blur" },
{ trigger: "blur", validator: IdCardNo }, // { trigger: "blur", validator: IdCardNo },
], // ],
}, // },
{ // {
label: "手机号", // label: "手机号",
prop: "telphone", // prop: "telphone",
span: 24, // span: 24,
hide: true, // hide: true,
rules: [ // rules: [
{ // {
required: true, // required: true,
validator: validateTel, // validator: validateTel,
trigger: "blur", // trigger: "blur",
}, // },
], // ],
}, // },
{ {
label: "用户类型", label: "用户类型",
prop: "userId", prop: "userId",
@@ -352,6 +394,18 @@ export default {
hide: true, hide: true,
// search: true // search: true
}, },
{
label: "标签",
prop: "serveLabels",
rules: [
{
required: true,
message: "请选择标签",
trigger: ["blur"],
},
],
formslot: true,
},
{ {
label: "分组", label: "分组",
prop: "groupId", prop: "groupId",
@@ -372,20 +426,20 @@ export default {
], ],
placeholder: "请选择 分组", placeholder: "请选择 分组",
}, },
{ // {
label: "工种", // label: "工种",
prop: "worktypes", // prop: "worktypes",
rules: [ // rules: [
{ // {
required: true, // required: true,
message: "请选择工种", // message: "请选择工种",
trigger: ["blur"], // trigger: ["blur"],
}, // },
], // ],
slot: true, // slot: true,
formslot: true, // formslot: true,
span: 24, // span: 24,
}, // },
// { // {
// label: "简历", // label: "简历",
// prop: "resume", // prop: "resume",
@@ -405,13 +459,58 @@ export default {
], ],
}; };
}, },
infoOption() {
return {
editBtn: false,
delBtn: false,
addBtn: false,
refreshBtn: false,
height: '100',
column: [
{
label: "社区街道名称",
prop: "companyName",
},
{
label: "姓名",
prop: "name",
},
{
label: "身份证",
prop: "idNumber",
},
{
label: "手机号",
prop: "telphone",
},
{
label: "用户类型",
prop: "userId",
},
{
label: "分组",
prop: "groupId",
},
{
label: "标签",
prop: "labelsBase",
},
{
label: "备注",
prop: "remarks",
},
]
}
},
selectedWorkTypes: { selectedWorkTypes: {
get() { get() {
if (!this.obj.worktypes) { if (!this.obj.serveLabels) {
return []; return [];
} }
const result = []; const result = [];
const wt = this.obj.worktypes.split(","); const wt = this.obj.serveLabels.split(",");
wt.forEach((item) => { wt.forEach((item) => {
result.push({ name: item }); result.push({ name: item });
}); });
@@ -422,7 +521,7 @@ export default {
val.forEach((item) => { val.forEach((item) => {
arr.push(item.name); arr.push(item.name);
}); });
this.obj.worktypes = arr.join(","); this.obj.serveLabels = arr.join(",");
}, },
}, },
worktypeData() { worktypeData() {
@@ -452,10 +551,57 @@ export default {
this.getWorkTypes(); this.getWorkTypes();
}, },
methods: { methods: {
showKeyAudience(row) {
this.selectInfo = row
this.getKeyAudience({
id: row.id
})
},
getKeyAudience(params) {
const _this = this
return getServeListTalents(params).then((res) => {
if(res.data.code === 200) {
const {records, current, size, total} = res.data.data
_this.infoData = records
_this.visibleAudience = true
_this.infoPage = {
pageSize: size,
currentPage: current,
total: total,
}
}
})
},
infoSizeChange(pageSize) {
const {currentPage, total} = this.infoPage
this.getKeyAudience({
pageSize: pageSize,
currentPage: currentPage,
total: total,
id: this.selectInfo.id
})
},
infoCurrentChange(currentPage) {
const { pageSize, total} = this.infoPage
this.getKeyAudience({
pageSize: pageSize,
currentPage: currentPage,
total: total,
id: this.selectInfo.id
})
},
infoRefreshChange() {
const { currentPage, pageSize, total} = this.infoPage
this.getKeyAudience({
pageSize: pageSize,
currentPage: currentPage,
total: total,
id: this.selectInfo.id
})
},
getWorkTypes() { getWorkTypes() {
getWorkTypes().then((res) => { getWorkTypes(1).then((res) => {
for (let i = 0; i < res.data.data.length; i++) { for (let i = 0; i < res.data.data.length; i++) {
const element = res.data.data[i]; const element = res.data.data[i];
this.worktypeDic[element.name] = 1; this.worktypeDic[element.name] = 1;
@@ -600,7 +746,8 @@ export default {
detail(this.obj.id).then( detail(this.obj.id).then(
(res) => { (res) => {
this.obj = res.data.data; this.obj = res.data.data;
this.tempWorkType = this.obj.worktypes.split(","); // this.tempWorkType = this.obj.worktypes.split(",");
this.tempWorkType = []
done(); done();
}, },
(error) => { (error) => {
@@ -619,9 +766,10 @@ export default {
add({ add({
groupId: row.groupId, groupId: row.groupId,
name: row.name, name: row.name,
idNumber: row.idNumber, serveLabels: row.serveLabels,
telphone: row.telphone, // idNumber: row.idNumber,
worktypes: row.worktypes, // telphone: row.telphone,
// worktypes: row.worktypes,
remarks: row.remarks, remarks: row.remarks,
}).then( }).then(
() => { () => {
@@ -644,9 +792,10 @@ export default {
id: row.id, id: row.id,
groupId: row.groupId, groupId: row.groupId,
name: row.name, name: row.name,
idNumber: row.idNumber, serveLabels: row.serveLabels,
telphone: row.telphone, // idNumber: row.idNumber,
worktypes: row.worktypes, // telphone: row.telphone,
// worktypes: row.worktypes,
remarks: row.remarks, remarks: row.remarks,
}).then( }).then(
() => { () => {

View File

@@ -23,9 +23,9 @@ module.exports = {
port: 1888, port: 1888,
proxy: { proxy: {
"/api": { "/api": {
target: 'http://192.168.3.108:8000', // 本地服务接口地址 // target: 'http://192.168.3.104:8000', // 本地服务接口地址
// target: "http://39.98.184.58:8000", // 阿里云后台地址 // target: "http://39.98.184.58:8000", // 阿里云后台地址
// target: "http://192.168.3.111:8000", // 本地 target: "http://192.168.3.111:8000", // 本地
ws: true, ws: true,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {