提交 760da05b authored 作者: 刘旭's avatar 刘旭

同步代码

上级 ba4f9dff
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
"pinia-plugin-persistedstate": "^3.2.0", "pinia-plugin-persistedstate": "^3.2.0",
"sass": "^1.64.1", "sass": "^1.64.1",
"vue": "^3.3.4", "vue": "^3.3.4",
"vue-dompurify-html": "^4.1.4",
"vue-router": "4" "vue-router": "4"
}, },
"devDependencies": { "devDependencies": {
...@@ -43,7 +44,6 @@ ...@@ -43,7 +44,6 @@
"unplugin-vue-components": "^0.25.1", "unplugin-vue-components": "^0.25.1",
"vite": "^4.4.5", "vite": "^4.4.5",
"vite-plugin-eslint": "^1.8.1", "vite-plugin-eslint": "^1.8.1",
"vite-plugin-mock": "2.9.6",
"vite-plugin-vue-setup-extend": "^0.4.0", "vite-plugin-vue-setup-extend": "^0.4.0",
"vue-tsc": "^1.8.5" "vue-tsc": "^1.8.5"
} }
......
差异被折叠。
...@@ -17,7 +17,11 @@ ...@@ -17,7 +17,11 @@
<img src="../assets/img/logo.jpg" width="150" height="60" /> <img src="../assets/img/logo.jpg" width="150" height="60" />
<div class="menu-list"> <div class="menu-list">
<template v-for="item in menuList" :key="item.link"> <template v-for="item in menuList" :key="item.link">
<router-link :to="{ path: item.link }" @click="handleClick(item)"> <router-link
:to="{ path: item.link }"
style="text-decoration: none"
@click="handleClick(item)"
>
<el-link <el-link
class="item" class="item"
:underline="false" :underline="false"
......
...@@ -64,14 +64,6 @@ const editorConfig = { ...@@ -64,14 +64,6 @@ const editorConfig = {
console.log(`${file.name} 上传成功`, res, imgList.value) console.log(`${file.name} 上传成功`, res, imgList.value)
} }
} }
},
// 单个文件上传失败
onFailed(file: File, res: any) {
console.log(`${file.name} 上传失败`, res)
},
// 上传错误,或者触发 timeout 超时
onError(file: File, err: any, res: any) {
console.log(`${file.name} 上传出错`, err, res)
} }
}, },
uploadVideo: { uploadVideo: {
......
<template>
<div v-loading="loading" class="flx-center">
<div class="container">
<div class="breadcrumb">
<span class="current">当前位置:</span>
<el-breadcrumb :separator-icon="ArrowRight">
<el-breadcrumb-item :to="{ path: previousPage }">{{ previousName }}</el-breadcrumb-item>
<el-breadcrumb-item>{{ route.query?.FTITLE }}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<el-divider />
<div style="min-height: 400px">
<div v-dompurify-html="html"></div>
<!-- <el-empty description="暂无数据" /> -->
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { menuList } from '@/Layout/config'
import { ArrowRight } from '@element-plus/icons-vue'
import { getCommonDetail } from '@/services/api/common'
const router = useRouter()
const route = useRoute()
const previousPage = ref()
const previousName = ref()
const loading = ref(true)
const html = ref()
onMounted(async () => {
// 获取上个跳转的路由
previousPage.value = router.options.history.state.back as string
previousName.value = menuList.filter((item: any) => item.link === previousPage.value)[0]?.name
const { FormType, FID } = route.query
const res: any = await getCommonDetail({ FormType, FID })
if (res.code === 200) {
loading.value = false
html.value = res.data.FRICHTEXT_Tag
}
})
</script>
<style lang="scss" scoped>
.container {
width: 1316px;
background: #ffffff;
padding: 46px 36px 54px;
margin-top: 26px;
box-sizing: border-box;
.breadcrumb {
font-size: 12px;
font-weight: 400;
color: #666666;
display: flex;
align-items: center;
.current {
margin-right: 8px;
}
}
}
</style>
<template> <template>
<div class="content-container"> <div class="content-container">
<div v-for="(item, index) in list" :key="index" class="content-item"> <div v-for="(item, index) in list" :key="index" class="content-item" @click="change(item)">
<img :src="item.url" height="238" /> <img :src="baseURL + '/' + item?.FPICTURE" height="238" />
<div class="detail">{{ item.name }}</div> <div class="detail nowrap-ellipsis" :title="item.FTITLE">{{ item.FTITLE }}</div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { baseURL } from '@/services'
defineProps({ defineProps({
list: { list: {
type: Array, type: Array,
default: () => [] default: () => []
} as any } as any
}) })
const emits = defineEmits(['change'])
const change = (row: any) => {
// console.log(row)
emits('change', row)
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -36,9 +45,9 @@ defineProps({ ...@@ -36,9 +45,9 @@ defineProps({
border-radius: 12px 12px 0px 0px; border-radius: 12px 12px 0px 0px;
display: block; /* 将图片设置为块级元素 */ display: block; /* 将图片设置为块级元素 */
max-width: 100%; /* 保证图片在其父元素内部自适应大小 */ max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
height: auto; /* 保持图片的宽高比 */
} }
.detail { .detail {
width: calc(1316px / 3 - 16px);
height: 42px; height: 42px;
line-height: 42px; line-height: 42px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%); background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
...@@ -46,7 +55,8 @@ defineProps({ ...@@ -46,7 +55,8 @@ defineProps({
color: #ffffff; color: #ffffff;
font-size: 20px; font-size: 20px;
font-weight: 400; font-weight: 400;
color: #ffffff; padding: 0 20px;
box-sizing: border-box;
} }
} }
} }
......
...@@ -29,6 +29,10 @@ defineProps({ ...@@ -29,6 +29,10 @@ defineProps({
isMore: { isMore: {
type: Boolean, type: Boolean,
default: false default: false
},
minHeight: {
type: Number,
default: 200
} }
}) })
</script> </script>
...@@ -47,6 +51,7 @@ defineProps({ ...@@ -47,6 +51,7 @@ defineProps({
} }
.policy-content { .policy-content {
width: 100%; width: 100%;
min-height: 200px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: start; align-items: start;
...@@ -85,7 +90,7 @@ defineProps({ ...@@ -85,7 +90,7 @@ defineProps({
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
max-width: 554px; max-width: 470px;
} }
img { img {
margin-left: 4px; margin-left: 4px;
......
...@@ -3,6 +3,8 @@ import App from './App.vue' ...@@ -3,6 +3,8 @@ import App from './App.vue'
import router from './routers' import router from './routers'
import store from './stores' import store from './stores'
import VueDOMPurifyHTML from 'vue-dompurify-html'
import '@/styles/reset.scss' import '@/styles/reset.scss'
import '@/styles/common.scss' import '@/styles/common.scss'
...@@ -10,5 +12,6 @@ const app = createApp(App) ...@@ -10,5 +12,6 @@ const app = createApp(App)
app.use(router) app.use(router)
app.use(store) app.use(store)
app.use(VueDOMPurifyHTML)
app.mount('#app') app.mount('#app')
export default [
{
url: '/api2/getUsers',
method: 'get',
response: () => {
return {
code: 200,
message: 'ok',
data: {
'rows|10': [
{
id: '@guid',
name: '@cname',
'age|20-30': 23,
'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师']
}
]
}
}
}
}
]
const randomJobList = () => {
let list = [
{
id: '@guid',
key: '地标',
list: [
{ name: '全深圳', show: true },
{ name: '南山区', show: false },
{ name: '罗湖区', show: false },
{ name: '福田区', show: false },
{ name: '坪山区', show: false },
{ name: '盐田区', show: false },
{ name: '宝安区', show: false },
{ name: '龙岗区', show: false },
{ name: '龙华区', show: false },
{ name: '光明区', show: false },
{ name: '大鹏新区', show: false },
{ name: '深汕合作区', show: false }
],
isShow: false,
show: false
}
] as any
for (let index = 0; index < 6; index++) {
if (!index) {
list.push({
id: '@guid',
key: '@ctitle(3,4)',
'list|55': [{ name: '@ctitle', show: false }],
isShow: true,
show: false
})
} else {
list.push({
id: '@guid',
key: '@ctitle(3,4)',
'list|3-8': [{ name: '@ctitle', show: false }],
isShow: false,
show: false
})
}
}
return list
}
export default [
{
url: '/api2/jobList',
methods: 'get',
response: () => {
return {
code: 200,
message: 'ok',
data: randomJobList()
}
}
}
]
...@@ -86,24 +86,16 @@ const routes = [ ...@@ -86,24 +86,16 @@ const routes = [
{ {
path: '/counterpartAssistance', path: '/counterpartAssistance',
component: () => import('@/views/counterpartAssistance/index.vue') component: () => import('@/views/counterpartAssistance/index.vue')
},
{
path: '/commonDetail',
component: () => import('@/components/commonDetail.vue')
} }
] ]
}, },
{ {
path: '/RichTextEditor', path: '/RichTextEditor',
component: () => import('@/views/editor/index.vue') component: () => import('@/views/editor/index.vue')
},
{
path: '/home1',
component: () => import('@/views/home/index1.vue')
},
{
path: '/job',
component: () => import('@/views/job/index.vue')
},
{
path: '/details',
component: () => import('@/views/home/details.vue')
} }
//{ //{
//配置404页面 //配置404页面
...@@ -116,7 +108,11 @@ const routes = [ ...@@ -116,7 +108,11 @@ const routes = [
// 路由 // 路由
const router = createRouter({ const router = createRouter({
history: createWebHashHistory(), history: createWebHashHistory(),
routes routes,
scrollBehavior(to, from, savedPosition) {
// 滚动到顶部
return { top: 0 }
}
}) })
// 导出 // 导出
export default router export default router
import request from '@/services'
// /LQKJ.K3.NSJYBSystem.WebApi.WebApiService.PictureTextHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc
export const getCommon = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.PictureTextHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
export const getCommonList = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.PictureTextHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
export const getCommonDetail = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SelectDetails,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
...@@ -8,7 +8,7 @@ import request from '@/services' ...@@ -8,7 +8,7 @@ import request from '@/services'
*/ */
export const getRichText = (data: any) => { export const getRichText = (data: any) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.SelectRichText,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.SelectRichText,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data data
) )
} }
...@@ -21,7 +21,7 @@ export const getRichText = (data: any) => { ...@@ -21,7 +21,7 @@ export const getRichText = (data: any) => {
*/ */
export const uploadRichText = (data: any) => { export const uploadRichText = (data: any) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.UpRichText,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.UpRichText,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data, data,
{ IsError: true } { IsError: true }
) )
......
import request from '@/services'
export const getPositionList = (data: any) => {
return request.post('https://rms.junrunrenli.com/api/4Government/rpoPost/selectByParameter', data)
}
export const getFlexibleEmploym = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.FlexibleEmploymentHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
export const getFlexibleEmploymList = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeFlexibleEmployment,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
import request from '@/services' import request from '@/services'
export const getUsers = () => { export const getHome = () => {
return request.get('/api2/getUsers') return request.post(
} '/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeHomePage,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc'
)
export const getJobList = () => {
return request.get('/api2/jobList')
}
export const getPositionList = (data: any) => {
return request.post('/api/4Government/rpoPost/selectByParameter', data)
} }
...@@ -3,7 +3,7 @@ import request from '@/services' ...@@ -3,7 +3,7 @@ import request from '@/services'
// 获取验证码 // 获取验证码
export const getCode = (Phone: string) => { export const getCode = (Phone: string) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.Verification,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.Verification,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
{ Phone } { Phone }
) )
} }
...@@ -11,7 +11,7 @@ export const getCode = (Phone: string) => { ...@@ -11,7 +11,7 @@ export const getCode = (Phone: string) => {
// 登录注册 // 登录注册
export const loginSign = (data: any) => { export const loginSign = (data: any) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.LoginSign,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiEditService.LoginSign,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data data
) )
} }
...@@ -3,14 +3,14 @@ import request from '@/services' ...@@ -3,14 +3,14 @@ import request from '@/services'
// 查询 // 查询
export const getPolicy = (data: any) => { export const getPolicy = (data: any) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNoticeHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNoticeHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data data
) )
} }
export const getPolicyList = (data: any) => { export const getPolicyList = (data: any) => {
return request.post( return request.post(
'/K3Cloud/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data data
) )
} }
import request from '@/services'
// 查询
export const getSkillTraining = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeSkillTraininHome,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
export const getPolicyList = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
...@@ -41,7 +41,7 @@ let IsError = false ...@@ -41,7 +41,7 @@ let IsError = false
const config = { const config = {
// 默认地址 // 默认地址
baseURL: '', baseURL,
// 设置超时时间 // 设置超时时间
timeout: RequestEnums.TIMEOUT as number, timeout: RequestEnums.TIMEOUT as number,
// 跨域时候允许携带凭证 // 跨域时候允许携带凭证
......
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template> <template>
<div>为什么,我不理解</div> <div v-loading="loading" class="skill-container flx-center">
<div class="container">
<img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div>
</div>
</div>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts">
import { baseURL } from '@/services'
import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue'
<style scoped></style> const router = useRouter()
const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'K' })
const commonData: any = ref()
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'K', FTITLE: row.FTITLE } })
}
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template> <template>
<div class="skill-container flx-center"> <div v-loading="loading" class="skill-container flx-center">
<div class="container"> <div class="container">
<img :src="imgUrl1" height="560" /> <img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px"> <div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" /> <contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl' import { baseURL } from '@/services'
import Frame690 from '@/assets/img/Frame690(2).png' import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [ const router = useRouter()
{ url: Frame690, name: '失业登记(含户籍、异地务工人员)' },
{ url: Frame690, name: '就业困难人员和零就业家庭人员认定' }, const loading = ref(true)
{ url: Frame690, name: '就业困难人员灵活就业社保补贴申领' }, const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'F' })
{ url: Frame690, name: '用人单位招用就业困难人员申请补贴和奖励' }, const commonData: any = ref()
{ url: Frame690, name: '吸纳脱贫人口就业补贴' },
{ url: Frame690, name: '吸纳脱贫人口社保和岗位补贴' }, const handleChange = (row: any) => {
{ url: Frame690, name: '吸纳退役军人一次性就业补贴' } router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'F', FTITLE: row.FTITLE } })
] }
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{ <span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{
index + 1 index + 1
}}</span> }}</span>
<el-link>{{ item.detail }}</el-link> <el-link>{{ item.FTITLE }}</el-link>
<img v-show="index < 3" src="@/assets/img/icon-new.png" width="28" height="15" alt="" /> <img v-show="index < 3" src="@/assets/img/icon-new.png" width="28" height="15" alt="" />
</div> </div>
<div v-show="isMore" class="flexible-footer"> <div v-show="isMore" class="flexible-footer">
......
<template> <template>
<div class="flexible-container"> <div v-loading="loading" class="flexible-container">
<div class="container"> <div class="container">
<img :src="imgUrl" height="560" /> <img :src="baseURL + '/' + flexibleData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div class="flexible-list"> <div class="flexible-list">
<flexible <flexible
v-for="(item, index) in flexibleNameList" v-for="(item, index) in flexibleNameList"
:key="index" :key="index"
:title="item.name" :title="item.name"
:list="flexibleList" :list="flexibleData?.[item.field]"
is-more is-more
/> />
</div> </div>
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<el-tab-pane <el-tab-pane
v-for="(item, index) in tabsList" v-for="(item, index) in tabsList"
:key="index" :key="index"
v-loading="loading" v-loading="flexibleLoading"
:label="item.label" :label="item.label"
:name="item.name" :name="item.name"
class="hot-position-tab-pane" class="hot-position-tab-pane"
...@@ -76,8 +76,8 @@ ...@@ -76,8 +76,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl } from '@/assets/imgUrl' import { baseURL } from '@/services'
import { getPositionList } from '@/services/api/home' import { getPositionList, getFlexibleEmploym } from '@/services/api/flexibleEmploym'
import flexible from '@/views/flexibleEmploym/components/flexible.vue' import flexible from '@/views/flexibleEmploym/components/flexible.vue'
const tabsList = [ const tabsList = [
...@@ -100,11 +100,18 @@ const listQuery = reactive({ ...@@ -100,11 +100,18 @@ const listQuery = reactive({
}) })
const positionList = ref([] as any) const positionList = ref([] as any)
const loading = ref(false)
const activeName = ref(0) const activeName = ref(0)
const searchValue = ref('') const searchValue = ref('')
const loading = ref(true)
const flexibleLoading = ref(false)
const queryList = ref({ pageIndex: 1, pageSize: 10 })
const flexibleData: any = ref()
const flexibleNameList = [{ name: '公告' }, { name: '政策' }, { name: '新闻' }] const flexibleNameList = [
{ name: '公告', field: 'GgData' },
{ name: '政策', field: 'ZcData' },
{ name: '新闻', field: 'XwData' }
]
const flexibleList = [ const flexibleList = [
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }, { detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
...@@ -121,22 +128,32 @@ const flexibleList = [ ...@@ -121,22 +128,32 @@ const flexibleList = [
const handleChange = (name: number) => { const handleChange = (name: number) => {
listQuery.obj.postName = tabsList[name].label listQuery.obj.postName = tabsList[name].label
init() initPosition()
} }
const search = () => { const search = () => {
init() initPosition()
// console.log(searchValue.value) // console.log(searchValue.value)
} }
const initPosition = async () => {
flexibleLoading.value = true
const res: any = await getPositionList(listQuery)
if (res.code === 200) {
flexibleLoading.value = false
positionList.value = res.data.obj
}
}
const init = async () => { const init = async () => {
loading.value = true const res: any = await getFlexibleEmploym(queryList.value)
const res: any = await getPositionList(listQuery)
if (res.code === 200) { if (res.code === 200) {
console.log(res)
flexibleData.value = res.data
loading.value = false loading.value = false
positionList.value = res.data.obj initPosition()
} }
} }
init() init()
</script> </script>
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
border-radius: 12px 12px 0px 0px; border-radius: 12px 12px 0px 0px;
display: block; /* 将图片设置为块级元素 */ display: block; /* 将图片设置为块级元素 */
max-width: 100%; /* 保证图片在其父元素内部自适应大小 */ max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
height: auto; /* 保持图片的宽高比 */ // height: auto; /* 保持图片的宽高比 */
} }
.recruit-item-detail { .recruit-item-detail {
width: 318px; width: 318px;
...@@ -113,6 +113,7 @@ ...@@ -113,6 +113,7 @@
margin: -5px; margin: -5px;
margin-top: 24px; margin-top: 24px;
.scene-item { .scene-item {
cursor: pointer;
flex: 0 0 calc(16.666% - 10px); /* 让每个盒子占据六分之一的宽度,并且减去间距 */ flex: 0 0 calc(16.666% - 10px); /* 让每个盒子占据六分之一的宽度,并且减去间距 */
margin: 5px; /* 设置为盒子之间的间隔 */ margin: 5px; /* 设置为盒子之间的间隔 */
box-sizing: border-box; /* 让盒子的边框和填充算入盒子的总宽度 */ box-sizing: border-box; /* 让盒子的边框和填充算入盒子的总宽度 */
......
import Frame690 from '@/assets/img/Frame690.png'
import Frame691 from '@/assets/img/Frame690(1).png'
import Frame692 from '@/assets/img/Frame690(2).png'
import Frame693 from '@/assets/img/Frame690(3).png'
import Frame694 from '@/assets/img/Frame690(4).png'
import Frame695 from '@/assets/img/Frame690(5).png'
import Frame696 from '@/assets/img/Frame690(6).png'
import Frame697 from '@/assets/img/Frame690(7).png'
import gonggao from '@/assets/img/icon-gonggao.png'
import zhengnc from '@/assets/img/icon-zhengnc.png'
import xinwen from '@/assets/img/icon-xinwen.png'
import zhao from '@/assets/img/icon-zhao.png'
import chuang from '@/assets/img/icon-chuang.png'
import gao from '@/assets/img/icon-gao.png'
import gang from '@/assets/img/icon-gang.png'
import tui from '@/assets/img/icon-tui.png'
import jia from '@/assets/img/icon-jia.png'
import can from '@/assets/img/icon-can.png'
export const imgList = [
{ name: '粤海街道专题', url: Frame690 },
{ name: '南头街道专题', url: Frame691 },
{ name: '西丽街道专题', url: Frame692 },
{ name: '沙河街道专题', url: Frame693 },
{ name: '南山街道专题', url: Frame694 },
{ name: '蛇口街道专题', url: Frame695 },
{ name: '招商街道专题 ', url: Frame696 },
{ name: '桃源街道专题 ', url: Frame697 }
]
export const employmentList = [
{ name: '公告', url: gonggao },
{ name: '政策', url: zhengnc },
{ name: '新闻', url: xinwen },
{ name: '招聘', url: zhao }
]
export const sceneList = [
{ name: '创业人员', url: chuang, link: '/innovationEntrepreneurship' },
{ name: '高校学生', url: gao, link: '/collegeStudents' },
{ name: '港澳青年', url: gang, link: '/macaoYouthEmployment' },
{ name: '退役军人', url: tui, link: '/veterans' },
{ name: '家政', url: jia, link: '/housekeepingServices' },
{ name: '残疾人', url: can, link: '/disabilitiesEmployment' }
]
<template> <template>
<div class="home-container"> <div v-loading="loading" class="home-container">
<div style="position: relative; width: 100%"> <div style="position: relative; width: 100%">
<img src="@/assets/img/Banner.png" height="480" style="width: 100%" /> <img
:src="baseURL + '/' + homeData?.HbData?.[0].FPOSTERPICTURE"
height="480"
style="width: 100%"
/>
<div class="img-ct banner"> <div class="img-ct banner">
<div>深圳市南山区公共就业服务平台</div> <div>深圳市南山区公共就业服务平台</div>
<div> <div>
...@@ -13,16 +17,16 @@ ...@@ -13,16 +17,16 @@
<div class="home-tp flx-direction-column"> <div class="home-tp flx-direction-column">
<div class="n-title">公共就业服务政策</div> <div class="n-title">公共就业服务政策</div>
<div class="flx-justify-between policy-bottom"> <div class="flx-justify-between policy-bottom">
<policy title="南山就业政策公告" :list="policyList" /> <policy title="南山就业政策公告" :list="homeData?.GgData" />
<policy title="南山就业活动" :list="policyList" /> <policy title="南山就业活动" :list="homeData?.HdData" />
</div> </div>
</div> </div>
<div class="home-tp"> <div class="home-tp">
<div class="n-title">街道办招聘</div> <div class="n-title">街道办招聘</div>
<div class="recruit"> <div class="recruit">
<div v-for="(item, index) in imgList" :key="index" class="recruit-item"> <div v-for="(item, index) in homeData?.JdData" :key="index" class="recruit-item">
<img :src="item.url" width="318" height="130" /> <img :src="baseURL + '/' + item.FSTREETPICTURE" width="318" height="130" />
<div class="recruit-item-detail">{{ item.name }}</div> <div class="recruit-item-detail">{{ item.FNAME }}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -90,9 +94,11 @@ ...@@ -90,9 +94,11 @@
<div class="container" style="margin: 64px 60px"> <div class="container" style="margin: 64px 60px">
<div class="n-title" style="text-align: center">重点就业情景</div> <div class="n-title" style="text-align: center">重点就业情景</div>
<div class="scene"> <div class="scene">
<div v-for="(item, index) in sceneList" :key="index" class="scene-item"> <div v-for="(item, index) in sceneList" :key="index">
<img :src="item.url" width="24" height="24" style="margin-left: 4px" /> <router-link :to="{ path: item.link }" style="text-decoration: none" class="scene-item">
<div>{{ item.name }}</div> <img :src="item.url" width="24" height="24" style="margin-left: 4px" />
<div>{{ item.name }}</div>
</router-link>
</div> </div>
</div> </div>
</div> </div>
...@@ -100,60 +106,23 @@ ...@@ -100,60 +106,23 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { baseURL } from '@/services'
import { getHome } from '@/services/api/home'
import { employmentList, sceneList } from './index'
import policy from '../../components/policy.vue' import policy from '../../components/policy.vue'
import Frame690 from '@/assets/img/Frame690.png'
import Frame691 from '@/assets/img/Frame690(1).png'
import Frame692 from '@/assets/img/Frame690(2).png'
import Frame693 from '@/assets/img/Frame690(3).png'
import Frame694 from '@/assets/img/Frame690(4).png'
import Frame695 from '@/assets/img/Frame690(5).png'
import Frame696 from '@/assets/img/Frame690(6).png'
import Frame697 from '@/assets/img/Frame690(7).png'
import gonggao from '@/assets/img/icon-gonggao.png'
import zhengnc from '@/assets/img/icon-zhengnc.png'
import xinwen from '@/assets/img/icon-xinwen.png'
import zhao from '@/assets/img/icon-zhao.png'
import chuang from '@/assets/img/icon-chuang.png'
import gao from '@/assets/img/icon-gao.png'
import gang from '@/assets/img/icon-gang.png'
import tui from '@/assets/img/icon-tui.png'
import jia from '@/assets/img/icon-jia.png'
import can from '@/assets/img/icon-can.png'
const policyList = [ const loading = ref(true)
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }, const homeData = ref()
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }
]
const imgList = [ const init = async () => {
{ name: '粤海街道专题', url: Frame690 }, loading.value = false
{ name: '南头街道专题', url: Frame691 }, const res: any = await getHome()
{ name: '西丽街道专题', url: Frame692 }, if (res.code === 200) {
{ name: '沙河街道专题', url: Frame693 }, homeData.value = res.data
{ name: '南山街道专题', url: Frame694 }, }
{ name: '蛇口街道专题', url: Frame695 }, }
{ name: '招商街道专题 ', url: Frame696 },
{ name: '桃源街道专题 ', url: Frame697 }
]
const employmentList = [ init()
{ name: '公告', url: gonggao },
{ name: '政策', url: zhengnc },
{ name: '新闻', url: xinwen },
{ name: '招聘', url: zhao }
]
const sceneList = [
{ name: '创业人员', url: chuang },
{ name: '高校学生', url: gao },
{ name: '港澳青年', url: gang },
{ name: '退役军人', url: tui },
{ name: '家政', url: jia },
{ name: '残疾人', url: can }
]
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
<template> <template>
<div class="skill-container flx-center"> <div v-loading="loading" class="skill-container flx-center">
<div class="container"> <div class="container">
<img :src="imgUrl1" height="560" /> <img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px"> <div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" /> <contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl' import { baseURL } from '@/services'
import Frame690 from '@/assets/img/Frame690(2).png' import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [ const router = useRouter()
{ url: Frame690, name: '家政服务企业商业保险补贴' },
{ url: Frame690, name: '员工制家政服务企业备案' }, const loading = ref(true)
{ url: Frame690, name: '员工制家政服务企业社保补贴' }, const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'J' })
{ url: Frame690, name: '员工制家政服务企业吸纳就业补贴' } const commonData: any = ref()
]
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'J', FTITLE: row.FTITLE } })
}
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template> <template>
<div>人力资源服务</div> <div v-loading="loading" class="skill-container flx-center">
<div class="container">
<img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div>
</div>
</div>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts">
import { baseURL } from '@/services'
import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue'
<style scoped></style> const router = useRouter()
const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'L' })
const commonData: any = ref()
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'L', FTITLE: row.FTITLE } })
}
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template> <template>
<div class="skill-container flx-center"> <div v-loading="loading" class="skill-container flx-center">
<div class="container"> <div class="container">
<img :src="imgUrl1" height="560" /> <img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px"> <div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" /> <contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl' import { baseURL } from '@/services'
import Frame690 from '@/assets/img/Frame690(2).png' import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [ const router = useRouter()
{ url: Frame690, name: '自主创业人员身份核实' },
{ url: Frame690, name: '创业社保补贴' }, const loading = ref(true)
{ url: Frame690, name: '初创企业补贴 (一次性创业资助)' }, const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'G' })
{ url: Frame690, name: '创业场租补贴 (创业租金补贴)' }, const commonData: any = ref()
{ url: Frame690, name: '创业孵化补贴' }
] const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'G', FTITLE: row.FTITLE } })
}
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
<template>
<div class="job-container">
<search />
<el-card class="screen-group" shadow="never">
<div v-for="item in jobList" :key="item.id" class="screen-list">
<div class="screen-type">{{ item.key }}</div>
<div class="screen-item" :class="item.show ? 'isShow' : ''">
<el-button
v-for="(col, i) in item.list"
:key="i"
:type="col.show ? 'primary' : ''"
text
@click="change(item, i)"
>{{ col.name }}</el-button
>
</div>
<div v-show="item.isShow" class="stretch" @click="collapse(item)">
{{ item.show ? '收起' : '更多' }}
</div>
</div>
<div v-show="tagList.length">
<el-divider />
<div class="tag-list">
<div class="tag-left">
<div class="tag-type">已选条件:</div>
<div class="tag-item">
<el-tag
v-for="(item, index) in tagList"
:key="index"
closable
@close="close(index)"
>{{ item.key + ':' + item.name }}</el-tag
>
</div>
</div>
<el-button type="danger" round plain size="small" :icon="Delete" @click="clear"
>清空</el-button
>
</div>
</div>
</el-card>
<el-card shadow="never" style="width: 1316px; margin: 20px 0; border-radius: 8px">
<el-link type="primary" :underline="false">综合排序</el-link>
</el-card>
</div>
</template>
<script setup lang="ts">
import { Search, Delete } from '@element-plus/icons-vue'
import { getJobList } from '@/services/api/home'
import search from '@/components/search.vue'
const jobList = ref()
const tagList = ref([] as any)
const collapse = (item: any) => {
item.show = !item.show
}
const change = (row: any, i: number) => {
row.list.map((item: any, index: number) => {
if (index === i) {
const tag: any = tagList.value.filter((tag: any) => tag.id === row.id)
if (index) {
if (tag.length) {
tagList.value.map((tag: any) => {
if (tag.id == row.id) {
tag.name = item.name
}
})
} else {
tagList.value.push({ id: row.id, key: row.key, name: item.name, type: '' })
}
} else {
if (tag.length) {
let Index = 0
tagList.value.map((tag: any, tagIndex: number) => {
if (tag.id == row.id) {
Index = tagIndex
}
})
tagList.value.splice(Index, 1)
}
}
item.show = true
} else {
item.show = false
}
})
}
const clear = () => (tagList.value = [])
const close = (index: number) => {
tagList.value.splice(index, 1)
}
const init = async () => {
const res: any = await getJobList()
if (res.code === 200) {
res.data.map((item: any) => {
item.list[0].show = true
})
jobList.value = res.data
}
}
init()
</script>
<style lang="scss" scoped>
.job-container {
height: 100%;
display: flex;
flex-direction: row;
flex-direction: column;
align-items: center;
.screen-group {
width: 1316px;
border-radius: 8px;
.screen-list {
display: flex;
justify-content: flex-start;
align-items: flex-start;
margin-top: 18px;
.screen-type {
display: inline-block;
width: 80px;
font-size: 14px;
margin-top: 7px;
}
.screen-item {
flex: 1;
height: 28px;
overflow: hidden;
.el-button {
margin-left: 0px;
margin-right: 8px;
}
}
.isShow {
height: auto !important;
}
.stretch {
width: 60px;
height: 20px;
background-color: #ebe7e7;
text-align: center;
line-height: 20px;
cursor: pointer;
border-radius: 2px;
color: #888585;
margin-top: 7px;
font-size: 14px;
user-select: none; // 文字不可被选中
}
}
&:first-child {
margin-top: 0;
}
.tag-list {
display: flex;
align-items: center;
justify-content: space-between;
.tag-left {
display: flex;
align-items: center;
.tag-type {
display: inline-block;
font-size: 14px;
width: 80px;
}
.tag-item {
.el-tag {
margin-right: 8px;
}
}
}
}
}
}
</style>
<template> <template>
<div class="skill-container flx-center"> <div v-loading="loading" class="skill-container flx-center">
<div class="container"> <div class="container">
<img :src="imgUrl1" height="560" /> <img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px"> <div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" /> <contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl' import { baseURL } from '@/services'
import Frame690 from '@/assets/img/Frame690(2).png' import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [ const router = useRouter()
{ url: Frame690, name: '就业见习补贴' },
{ url: Frame690, name: '港澳台青年实习补助' }, const loading = ref(true)
{ url: Frame690, name: '大湾区青年就业计划生活补助' }, const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'E' })
{ url: Frame690, name: '求职创业补贴' }, const commonData: any = ref()
{ url: Frame690, name: '高校毕业生职业技能培训补贴' },
{ url: Frame690, name: '高校毕业生灵活就业社保补贴' }, const handleChange = (row: any) => {
{ url: Frame690, name: '小微企业社保补贴' }, router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'E', FTITLE: row.FTITLE } })
{ url: Frame690, name: '职业技能鉴定 (评价)补贴' }, }
{ url: Frame690, name: '市外职业院校学生来深顶岗实习补贴' }
] const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
<template> <template>
<div class="policy-container flx-center" v-loading="loading"> <div v-loading="loading" class="policy-container flx-center">
<div class="container"> <div class="container">
<img <img
:src="baseURL + '/' + policyData?.HbData?.[0].FPOSTERPICTURE" :src="baseURL + '/' + policyData?.HbData?.[0].FPOSTERPICTURE"
...@@ -24,18 +24,6 @@ import { baseURL } from '@/services' ...@@ -24,18 +24,6 @@ import { baseURL } from '@/services'
import { getPolicy } from '@/services/api/policy' import { getPolicy } from '@/services/api/policy'
import policy from '@/components/policy.vue' import policy from '@/components/policy.vue'
const policyList = [
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }
]
const searchValue = ref() const searchValue = ref()
const loading = ref(true) const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10 }) const queryList = ref({ pageIndex: 1, pageSize: 10 })
......
...@@ -34,9 +34,9 @@ ...@@ -34,9 +34,9 @@
display: none; display: none;
position: absolute; position: absolute;
top: 0; top: 0;
left: 444px; left: 443px;
z-index: 10; z-index: 10;
width: 904px; width: 873.5px;
height: 418px; height: 418px;
border-radius: 12px; border-radius: 12px;
box-sizing: border-box; box-sizing: border-box;
...@@ -53,14 +53,14 @@ ...@@ -53,14 +53,14 @@
} }
} }
.street-list { .street-list {
width: 872px; width: 873px;
height: 418px; height: 418px;
// margin-left: 16px; // margin-left: 16px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
img { img {
max-width: 100%; display: block; /* 将图片设置为块级元素 */
height: auto; max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
} }
} }
} }
......
<template> <template>
<div class="skill-container flx-center"> <div v-loading="loading" class="skill-container flx-center">
<div class="container"> <div class="container">
<img :src="imgUrl1" height="560" /> <img :src="baseURL + '/' + skillTrainData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div class="train-list"> <div class="train-list">
<div v-for="(item, index) in trainList" :key="index" class="train-item"> <div v-for="(item, index) in trainList" :key="index" class="train-item">
{{ item.name }} {{ item.name }}
</div> </div>
</div> </div>
<div style="margin-bottom: 360px"> <div style="margin-bottom: 360px">
<contentBlock :list="trainDetailList" /> <contentBlock :list="skillTrainData?.JcAqData" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl' import { baseURL } from '@/services'
import Frame690 from '@/assets/img/Frame690(2).png' import { getSkillTraining } from '@/services/api/skillTraining'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10 })
const skillTrainData: any = ref()
const trainList = [ const trainList = [
{ name: '基础安全培训' }, { name: '基础安全培训' },
{ name: '专业技能培训' }, { name: '专业技能培训' },
...@@ -27,13 +30,16 @@ const trainList = [ ...@@ -27,13 +30,16 @@ const trainList = [
{ name: '团队管理培训' } { name: '团队管理培训' }
] ]
const trainDetailList = [ const init = async () => {
{ url: Frame690, name: '技能培训' }, const res: any = await getSkillTraining(queryList.value)
{ url: Frame690, name: '技能培训' }, if (res.code === 200) {
{ url: Frame690, name: '技能培训' }, console.log(res)
{ url: Frame690, name: '技能培训' }, skillTrainData.value = res.data
{ url: Frame690, name: '技能培训' } loading.value = false
] }
}
init()
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template> <template>
<div>退役军人</div> <div v-loading="loading" class="skill-container flx-center">
<div class="container">
<img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="commonData?.GaQnData" @change="handleChange" />
</div>
</div>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
const route = useRoute() import { baseURL } from '@/services'
console.log(route) import { getCommon } from '@/services/api/common'
import contentBlock from '@/components/contentBlock.vue'
const router = useRouter()
const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10, FormType: 'I' })
const commonData: any = ref()
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'I', FTITLE: row.FTITLE } })
}
const init = async () => {
const res: any = await getCommon(queryList.value)
if (res.code === 200) {
commonData.value = res.data
loading.value = false
}
}
init()
</script> </script>
<style scoped></style> <style lang="scss" scoped>
@import './index.scss';
</style>
...@@ -15,8 +15,7 @@ ...@@ -15,8 +15,7 @@
"paths": { "paths": {
"@/*": ["src/*"] "@/*": ["src/*"]
}, },
"lib": ["esnext", "dom", "dom.iterable", "scripthost"], "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
"types": ["pinia-plugin-persist"]
}, },
"include": [ "include": [
"src/**/*.ts", "src/**/*.ts",
......
...@@ -7,15 +7,14 @@ export {} ...@@ -7,15 +7,14 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
CommonDetail: typeof import('./../src/components/commonDetail.vue')['default']
ContentBlock: typeof import('./../src/components/contentBlock.vue')['default'] ContentBlock: typeof import('./../src/components/contentBlock.vue')['default']
CustomSelect: typeof import('./../src/components/customSelect.vue')['default'] CustomSelect: typeof import('./../src/components/customSelect.vue')['default']
ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer'] ElContainer: typeof import('element-plus/es')['ElContainer']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
...@@ -30,7 +29,6 @@ declare module 'vue' { ...@@ -30,7 +29,6 @@ declare module 'vue' {
ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElHeader: typeof import('element-plus/es')['ElHeader'] ElHeader: typeof import('element-plus/es')['ElHeader']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElLink: typeof import('element-plus/es')['ElLink'] ElLink: typeof import('element-plus/es')['ElLink']
ElMain: typeof import('element-plus/es')['ElMain'] ElMain: typeof import('element-plus/es')['ElMain']
...@@ -39,12 +37,10 @@ declare module 'vue' { ...@@ -39,12 +37,10 @@ declare module 'vue' {
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElRate: typeof import('element-plus/es')['ElRate'] ElRate: typeof import('element-plus/es')['ElRate']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
IEpArrowRight: typeof import('~icons/ep/arrow-right')['default'] IEpArrowRight: typeof import('~icons/ep/arrow-right')['default']
IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default'] IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
IEpCaretTop: typeof import('~icons/ep/caret-top')['default'] IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
...@@ -54,13 +50,11 @@ declare module 'vue' { ...@@ -54,13 +50,11 @@ declare module 'vue' {
IEpOfficeBuilding: typeof import('~icons/ep/office-building')['default'] IEpOfficeBuilding: typeof import('~icons/ep/office-building')['default']
IEpSearch: typeof import('~icons/ep/search')['default'] IEpSearch: typeof import('~icons/ep/search')['default']
IEpView: typeof import('~icons/ep/view')['default'] IEpView: typeof import('~icons/ep/view')['default']
NSelect: typeof import('./../src/components/n-select.vue')['default']
Policy: typeof import('./../src/components/policy.vue')['default'] Policy: typeof import('./../src/components/policy.vue')['default']
RichTextEditor: typeof import('./../src/components/RichTextEditor.vue')['default'] RichTextEditor: typeof import('./../src/components/RichTextEditor.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView'] RouterView: typeof import('vue-router')['RouterView']
Search: typeof import('./../src/components/search.vue')['default'] Search: typeof import('./../src/components/search.vue')['default']
Select: typeof import('./../src/components/select.vue')['default']
VerificationCode: typeof import('./../src/components/verificationCode.vue')['default'] VerificationCode: typeof import('./../src/components/verificationCode.vue')['default']
} }
export interface ComponentCustomProperties { export interface ComponentCustomProperties {
......
...@@ -14,7 +14,6 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' ...@@ -14,7 +14,6 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// Vue3 setup 语法糖下定义组件名称 <script lang="ts" setup name="home"> // Vue3 setup 语法糖下定义组件名称 <script lang="ts" setup name="home">
import VueSetupExtend from 'vite-plugin-vue-setup-extend' import VueSetupExtend from 'vite-plugin-vue-setup-extend'
// 引入viteMockServe 配置mock // 引入viteMockServe 配置mock
import { viteMockServe } from 'vite-plugin-mock'
import eslintPlugin from 'vite-plugin-eslint' import eslintPlugin from 'vite-plugin-eslint'
export default defineConfig({ export default defineConfig({
...@@ -24,9 +23,6 @@ export default defineConfig({ ...@@ -24,9 +23,6 @@ export default defineConfig({
eslintPlugin({ eslintPlugin({
include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.ts', 'src/*.vue'] include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.ts', 'src/*.vue']
}), }),
viteMockServe({
mockPath: 'src/mock/'
}),
// 配置自动装载配置 // 配置自动装载配置
AutoImport({ AutoImport({
// 生成配置文件,如果是ts项目,通常我们会把声明文件放在根目录/types中,注意,这个文件夹需要先建好,否则可能导致等下无法往里生成auto-imports.d.ts文件 // 生成配置文件,如果是ts项目,通常我们会把声明文件放在根目录/types中,注意,这个文件夹需要先建好,否则可能导致等下无法往里生成auto-imports.d.ts文件
...@@ -78,15 +74,6 @@ export default defineConfig({ ...@@ -78,15 +74,6 @@ export default defineConfig({
host: '0.0.0.0', host: '0.0.0.0',
// 设置代理 // 设置代理
proxy: { proxy: {
'/api2': {
target: 'http://127.0.0.1:5173/',
changeOrigin: true,
rewrite: path => path.replace(/^\/api2/, '')
},
'/api': {
target: 'https://rms.junrunrenli.com',
changeOrigin: true
},
'/K3Cloud': { '/K3Cloud': {
target: 'http://192.168.1.168', target: 'http://192.168.1.168',
changeOrigin: true changeOrigin: true
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论