添加页面
This commit is contained in:
@@ -44,6 +44,13 @@ export function returnPerson(params) {
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
'url': `/personnel/personBaseInfo/returnPerson`,
|
'url': `/personnel/personBaseInfo/returnPerson`,
|
||||||
|
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function getStatistic(params) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
'url': `/pc/index/fwqkfx`,
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Date: 2025-10-16 15:15:47
|
* @Date: 2025-10-16 15:15:47
|
||||||
* @LastEditors: shirlwang
|
* @LastEditors: shirlwang
|
||||||
* @LastEditTime: 2025-11-04 16:34:54
|
* @LastEditTime: 2025-11-05 17:29:18
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
@@ -11,17 +11,17 @@
|
|||||||
<view class="kinggang">
|
<view class="kinggang">
|
||||||
<view>
|
<view>
|
||||||
<view class="num-title" style="color: #1A62CE">重点毕业生数</view>
|
<view class="num-title" style="color: #1A62CE">重点毕业生数</view>
|
||||||
<view>1120</view>
|
<view>{{infoData.allPersonCount}}</view>
|
||||||
</view>
|
</view>
|
||||||
<text style="color: #B5C1D1;">|</text>
|
<text style="color: #B5C1D1;">|</text>
|
||||||
<view>
|
<view>
|
||||||
<view class="num-title" style="color: #16ACB7">累计需求数</view>
|
<view class="num-title" style="color: #16ACB7">累计需求数</view>
|
||||||
<view>1120</view>
|
<view>{{infoData.demandNum}}</view>
|
||||||
</view>
|
</view>
|
||||||
<text style="color: #B5C1D1;">|</text>
|
<text style="color: #B5C1D1;">|</text>
|
||||||
<view>
|
<view>
|
||||||
<view class="num-title" style="color: #6A57D1">累计服务数</view>
|
<view class="num-title" style="color: #6A57D1">累计服务数</view>
|
||||||
<view>1120</view>
|
<view>{{infoData.fwNum}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="trace-line">
|
<view class="trace-line">
|
||||||
@@ -60,6 +60,7 @@
|
|||||||
<view style="color: #EF7325;">{{getDictLabel(item.currentStatus, qcjy_xqlc)}}</view>
|
<view style="color: #EF7325;">{{getDictLabel(item.currentStatus, qcjy_xqlc)}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="view-more-btn" @click="viewMore">查看更多内容</view>
|
||||||
<view class="titles">
|
<view class="titles">
|
||||||
<view class="title-item active"><view>待服务毕业生列表</view></view>
|
<view class="title-item active"><view>待服务毕业生列表</view></view>
|
||||||
<view>共 {{jobListcount}} 条信息</view>
|
<view>共 {{jobListcount}} 条信息</view>
|
||||||
@@ -92,6 +93,7 @@
|
|||||||
<view @click="tiao(item)">服务</view>
|
<view @click="tiao(item)">服务</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="view-more-btn" @click="goPersonalList">查看更多内容</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
|
|
||||||
@@ -149,11 +151,17 @@ function back() {
|
|||||||
uni.navigateBack({
|
uni.navigateBack({
|
||||||
delta: 1
|
delta: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
function viewMore() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/packageRc/pages/needs/needsList'
|
||||||
|
});
|
||||||
|
}
|
||||||
let qcjy_xqlx = ref([])
|
let qcjy_xqlx = ref([])
|
||||||
let qcjy_xqlc = ref([])
|
let qcjy_xqlc = ref([])
|
||||||
|
let infoData = ref({})
|
||||||
import {getDicts} from '@/apiRc/system/dict'
|
import {getDicts} from '@/apiRc/system/dict'
|
||||||
|
import {getStatistic} from '@/apiRc/personinfo/index'
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getlist();
|
getlist();
|
||||||
getlistyujing();
|
getlistyujing();
|
||||||
@@ -163,6 +171,9 @@ onMounted(() => {
|
|||||||
getDicts('qcjy_xqlc').then(res => {
|
getDicts('qcjy_xqlc').then(res => {
|
||||||
qcjy_xqlc.value = res.data
|
qcjy_xqlc.value = res.data
|
||||||
});
|
});
|
||||||
|
getStatistic().then(res => {
|
||||||
|
infoData.value = res.data
|
||||||
|
})
|
||||||
});
|
});
|
||||||
function getDictLabel(value, list) {
|
function getDictLabel(value, list) {
|
||||||
const item = list.find(item => item.dictValue === value);
|
const item = list.find(item => item.dictValue === value);
|
||||||
@@ -171,7 +182,7 @@ function getDictLabel(value, list) {
|
|||||||
async function getlist(){
|
async function getlist(){
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await personInfoList();
|
const res = await personInfoList({pageNum: 1, pageSize: 5})
|
||||||
console.log("res", res);
|
console.log("res", res);
|
||||||
jobList.value = res.rows || [];
|
jobList.value = res.rows || [];
|
||||||
jobListcount.value=res.total || 0
|
jobListcount.value=res.total || 0
|
||||||
@@ -183,7 +194,7 @@ async function getlist(){
|
|||||||
async function getlistyujing(){
|
async function getlistyujing(){
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await personAlertList();
|
const res = await personAlertList({pageNum: 1, pageSize: 5});
|
||||||
console.log("res", res);
|
console.log("res", res);
|
||||||
jobList1.value = res.rows || [];
|
jobList1.value = res.rows || [];
|
||||||
jobList1count.value=res.total || 0
|
jobList1count.value=res.total || 0
|
||||||
@@ -259,11 +270,6 @@ function cancelReturn() {
|
|||||||
returnReasonPopup.value.close()
|
returnReasonPopup.value.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function viewMore() {
|
|
||||||
// uni.navigateTo({
|
|
||||||
// url: '/pages/jobList/jobList'
|
|
||||||
// })
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
@@ -622,4 +628,16 @@ view{box-sizing: border-box;display: block;}
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.view-more-btn{
|
||||||
|
padding: 10rpx 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
color: #4C6EFB;
|
||||||
|
border: 1rpx solid #4C6EFB;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
width: fit-content;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,14 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="page">
|
<view class="page" style="background-image: url('../../../packageRc/static/pageBg.png');">
|
||||||
<view class="page-header">
|
|
||||||
<view class="title df_flex" style="text-align: left;padding:50rpx 32rpx;">
|
|
||||||
<u-icon name="arrow-left" color="#fff" size="38rpx" @tap="$tab.navigateBack()"></u-icon>
|
|
||||||
<text style="margin-left: 30rpx;" class="df_flex_1">需求列表</text>
|
|
||||||
<u-icon v-show="$store.getters.roles.includes('shequn')" @tap="$store.commit('SET_SHOWEXITPOPUP', true)" name="list" size="44rpx" color="#fff"></u-icon>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="input-outer-part"
|
<view class="input-outer-part"
|
||||||
style="padding-top: 12rpx;margin-top: 16rpx;padding-bottom: 0;max-height: unset;">
|
style="padding: 24rpx 32rpx 0;max-height: unset;">
|
||||||
<view class="search-line">
|
<view class="search-line">
|
||||||
<u-input placeholder="请输入群众姓名进行搜索" v-model="queryParams.searchValue" border="none" />
|
<u-input placeholder="请输入群众姓名进行搜索" v-model="queryParams.searchValue" border="none" />
|
||||||
<img src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/search.png" class="search-icon" @click="search()" />
|
<img src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/search.png" class="search-icon" @click="search()" />
|
||||||
@@ -22,9 +15,9 @@
|
|||||||
</view>
|
</view>
|
||||||
<scroll-view :scroll-y="true" style="height: calc(100vh - 422rpx);position: relative;z-index: 1;"
|
<scroll-view :scroll-y="true" style="height: calc(100vh - 422rpx);position: relative;z-index: 1;"
|
||||||
@scrolltolower="getBottomList">
|
@scrolltolower="getBottomList">
|
||||||
<u-swipe-action>
|
<uni-swipe-action>
|
||||||
<u-swipe-action-item @click="clickDelete(item)" v-for="(item, index) in tableData" :key="index"
|
<uni-swipe-action-item @click="clickDelete(item)" v-for="(item, index) in tableData" :key="index"
|
||||||
style="margin-bottom: 24rpx;border-radius: 16rpx;" :options="options1">
|
style="margin-bottom: 24rpx;border-radius: 16rpx;" :right-options="options1">
|
||||||
<view class="job-item">
|
<view class="job-item">
|
||||||
<view class="top-container" @click="goNeedsDetail(item)">
|
<view class="top-container" @click="goNeedsDetail(item)">
|
||||||
<view class="title-line">
|
<view class="title-line">
|
||||||
@@ -65,39 +58,39 @@
|
|||||||
<view class="item_btn df_flex df_align_center df_justify_center">
|
<view class="item_btn df_flex df_align_center df_justify_center">
|
||||||
<!-- 需求已处理完成的 展示服务追溯 -->
|
<!-- 需求已处理完成的 展示服务追溯 -->
|
||||||
<view v-if="item.currentStatus == 3" class="df_flex_1">
|
<view v-if="item.currentStatus == 3" class="df_flex_1">
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="服务追溯"
|
<view type="primary" :plain="true" color="#BF5818" text="服务追溯"
|
||||||
@click="serviceTraceButton(item)" :customStyle="{border: 'none'}"></u-button>
|
@click="serviceTraceButton(item)" :customStyle="{border: 'none'}">服务追溯</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 需求处于待处理、处理中 -->
|
<!-- 需求处于待处理、处理中 -->
|
||||||
<view v-else class="df_flex_1">
|
<view v-else class="df_flex_1">
|
||||||
<!-- 求职需求 -->
|
<!-- 求职需求 -->
|
||||||
<view v-if="queryParams.needsType == 1" class="df_flex">
|
<view v-if="queryParams.needsType == 1" class="df_flex">
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="推荐"
|
<view type="primary" :plain="true" color="#BF5818" text="推荐"
|
||||||
:customStyle="{border: 'none'}"
|
:customStyle="{border: 'none'}"
|
||||||
@click="requirementTraining(item, 1)"></u-button>
|
@click="requirementTraining(item, 1)">推荐</view>
|
||||||
<view class="line"></view>
|
<view class="line"></view>
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="办理"
|
<view type="primary" :plain="true" color="#BF5818" text="办理"
|
||||||
:customStyle="{border: 'none'}" @click="requirementHandling(item)"></u-button>
|
:customStyle="{border: 'none'}" @click="requirementHandling(item)">办理</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 培训需求 -->
|
<!-- 培训需求 -->
|
||||||
<view v-else-if="queryParams.needsType == 4" class="df_flex">
|
<view v-else-if="queryParams.needsType == 4" class="df_flex">
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="培训"
|
<view type="primary" :plain="true" color="#BF5818" text="培训"
|
||||||
:customStyle="{border: 'none'}"
|
:customStyle="{border: 'none'}"
|
||||||
@click="requirementTraining(item, 4)"></u-button>
|
@click="requirementTraining(item, 4)">培训</view>
|
||||||
<view class="line"></view>
|
<view class="line"></view>
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="办理"
|
<view type="primary" :plain="true" color="#BF5818" text="办理"
|
||||||
:customStyle="{border: 'none'}" @click="requirementHandling(item)"></u-button>
|
:customStyle="{border: 'none'}" @click="requirementHandling(item)">办理</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 其他需求 -->
|
<!-- 其他需求 -->
|
||||||
<view v-else>
|
<view v-else>
|
||||||
<u-button type="primary" :plain="true" color="#BF5818" text="办理"
|
<view type="primary" :plain="true" color="#BF5818" text="办理"
|
||||||
:customStyle="{border: 'none'}" @click="requirementHandling(item)"></u-button>
|
:customStyle="{border: 'none'}" @click="requirementHandling(item)">办理</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-swipe-action-item>
|
</uni-swipe-action-item>
|
||||||
</u-swipe-action>
|
</uni-swipe-action>
|
||||||
<view style="padding-bottom: 24rpx;">
|
<view style="padding-bottom: 24rpx;">
|
||||||
<img v-if="!total&&!loading" src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/empty.png"
|
<img v-if="!total&&!loading" src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/empty.png"
|
||||||
style="width: 100%;display: block;margin: 0 auto;" />
|
style="width: 100%;display: block;margin: 0 auto;" />
|
||||||
@@ -110,7 +103,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
<u-popup :show="openDeal" style="position: relative;z-index: 100;" closeOnClickOverlay @close="openDeal=false">
|
<uni-popup ref="openDeal" style="position: relative;z-index: 100;" background-color="#fff" type="bottom">
|
||||||
<u--form class="self-form" labelPosition="top" :model="formData" :rules="rules" ref="uForm"
|
<u--form class="self-form" labelPosition="top" :model="formData" :rules="rules" ref="uForm"
|
||||||
labelWidth="300">
|
labelWidth="300">
|
||||||
<u-form-item label="实际解决时间" prop="actualSolveDate" required>
|
<u-form-item label="实际解决时间" prop="actualSolveDate" required>
|
||||||
@@ -129,11 +122,11 @@
|
|||||||
</u-form-item>
|
</u-form-item>
|
||||||
</u--form>
|
</u--form>
|
||||||
<view class="button-area">
|
<view class="button-area">
|
||||||
<view class="btn" @click="openDeal = false">取消</view>
|
<view class="btn" @click="closeopenDeal">取消</view>
|
||||||
<view class="btn reset" @click="formData.actualSolveDate = '';formData.solveDesc = ''">重置</view>
|
<view class="btn reset" @click="formData.actualSolveDate = '';formData.solveDesc = ''">重置</view>
|
||||||
<view class="btn save" @click="finishJobRecommend">办结</view>
|
<view class="btn save" @click="finishJobRecommend">办结</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</uni-popup>
|
||||||
<view class="addNeeds" @click="goAddNeeds()">
|
<view class="addNeeds" @click="goAddNeeds()">
|
||||||
<img src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/addNeeds.png" />
|
<img src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/addNeeds.png" />
|
||||||
</view>
|
</view>
|
||||||
@@ -159,7 +152,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import PopupList from "packageRc/components/PopupLists.vue";
|
import PopupList from "/packageRc/components/PopupLists.vue";
|
||||||
import ImageUpload from '/packageRc/components/ImageUpload'
|
import ImageUpload from '/packageRc/components/ImageUpload'
|
||||||
import {
|
import {
|
||||||
requirementCompletion
|
requirementCompletion
|
||||||
@@ -234,13 +227,16 @@
|
|||||||
onLoad({
|
onLoad({
|
||||||
dictValue
|
dictValue
|
||||||
}) {
|
}) {
|
||||||
this.queryParams.needsType = dictValue
|
this.queryParams.needsType = dictValue || 1
|
||||||
this.getCheckData()
|
this.getCheckData()
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.search();
|
this.search();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
closeopenDeal() {
|
||||||
|
this.$refs.openDeal.close()
|
||||||
|
},
|
||||||
// 新增需求
|
// 新增需求
|
||||||
goAddNeeds() {
|
goAddNeeds() {
|
||||||
this.$tab.navigateTo(`/pages/needs/needDetail?activeType=${this.queryParams.needsType}&showTab=1`)
|
this.$tab.navigateTo(`/pages/needs/needDetail?activeType=${this.queryParams.needsType}&showTab=1`)
|
||||||
@@ -317,10 +313,10 @@
|
|||||||
},
|
},
|
||||||
async getCheckData() {
|
async getCheckData() {
|
||||||
let workExperienceYears
|
let workExperienceYears
|
||||||
await this.getDicts('qcjy_gznx').then(res => {
|
await this.$getDict('qcjy_gznx').then(res => {
|
||||||
workExperienceYears = res.data
|
workExperienceYears = res.data
|
||||||
})
|
})
|
||||||
await this.getDicts('qcjy_xqlc').then(res => {
|
await this.$getDict('qcjy_xqlc').then(res => {
|
||||||
this.currentStatusList = res.data;
|
this.currentStatusList = res.data;
|
||||||
console.log(res.data)
|
console.log(res.data)
|
||||||
})
|
})
|
||||||
@@ -448,7 +444,7 @@
|
|||||||
|
|
||||||
// 需求办结
|
// 需求办结
|
||||||
requirementHandling(item) {
|
requirementHandling(item) {
|
||||||
this.openDeal = true;
|
this.$refs.openDeal.open()
|
||||||
this.formData = {
|
this.formData = {
|
||||||
id: item.id,
|
id: item.id,
|
||||||
currentStatus: '3'
|
currentStatus: '3'
|
||||||
@@ -496,7 +492,8 @@
|
|||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
// 显示成功的提示信息
|
// 显示成功的提示信息
|
||||||
this.$u.toast(msg);
|
this.$u.toast(msg);
|
||||||
this.openDeal = false;
|
// this.openDeal = false;
|
||||||
|
this.$refs.openDeal.close()
|
||||||
this.search();
|
this.search();
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -550,9 +547,8 @@
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.page {
|
.page {
|
||||||
background-color: #EEF1F5 !important;
|
background-color: #f4f4f4 !important;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background-image: url('https://rc.jinan.gov.cn/qcwjyH5/static/images/top.png');
|
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 100% auto;
|
background-size: 100% auto;
|
||||||
}
|
}
|
||||||
@@ -778,4 +774,10 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.d_flex{
|
||||||
|
display: flex;
|
||||||
|
view{
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -69,7 +69,6 @@
|
|||||||
import {
|
import {
|
||||||
getPersonBase
|
getPersonBase
|
||||||
} from "@/apiRc/person";
|
} from "@/apiRc/person";
|
||||||
import PopupList from "../../components/PopupLists.vue";
|
|
||||||
import {
|
import {
|
||||||
listJobService,
|
listJobService,
|
||||||
delJobService
|
delJobService
|
||||||
@@ -96,7 +95,6 @@ import { listJobType } from "@/apiRc/jobType/index";
|
|||||||
} from '@/apiRc/needs/otherService'
|
} from '@/apiRc/needs/otherService'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
PopupList,
|
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
console.log('search',34224234)
|
console.log('search',34224234)
|
||||||
|
|||||||
@@ -276,11 +276,9 @@ import exitPopup from "../../components/exitPopup.vue";
|
|||||||
import {
|
import {
|
||||||
getDicts
|
getDicts
|
||||||
} from '@/apiRc/system/dict.js'
|
} from '@/apiRc/system/dict.js'
|
||||||
import PopupList from "../../components/PopupLists.vue";
|
|
||||||
export default {
|
export default {
|
||||||
name: "personnelList",
|
name: "personnelList",
|
||||||
components: {
|
components: {
|
||||||
PopupList,
|
|
||||||
exitPopup,
|
exitPopup,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -416,7 +416,7 @@
|
|||||||
} , {
|
} , {
|
||||||
"path": "pages/needs/needDetail",
|
"path": "pages/needs/needDetail",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "需求"
|
"navigationBarTitleText": "需求信息"
|
||||||
}
|
}
|
||||||
} , {
|
} , {
|
||||||
"path": "pages/daiban/bangfuList",
|
"path": "pages/daiban/bangfuList",
|
||||||
@@ -428,6 +428,11 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "需求上报"
|
"navigationBarTitleText": "需求上报"
|
||||||
}
|
}
|
||||||
|
} , {
|
||||||
|
"path": "pages/needs/needsList",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "需求"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user