diff --git a/components/CustomTabBar/CustomTabBar.vue b/components/CustomTabBar/CustomTabBar.vue
index a393352..5e21f93 100644
--- a/components/CustomTabBar/CustomTabBar.vue
+++ b/components/CustomTabBar/CustomTabBar.vue
@@ -4,14 +4,17 @@
class="tabbar-item"
v-for="(item, index) in tabbarList"
:key="index"
+ :class="{ 'center-item': item.centerItem }"
@click.stop="switchTab(item, index)"
@tap.stop="switchTab(item, index)"
>
-
+
+
+
{{ item.badge }}
@@ -59,22 +62,13 @@ const generateTabbarList = () => {
},
{
id: 2,
- text: '智能客服',
- path: '/pages/chat/chat',
- iconPath: '/static/tabbar/logo3.png',
- selectedIconPath: '/static/tabbar/logo3.png',
+ text: '',
+ path: '/packageA/pages/chat/chat',
+ iconPath: '/static/tabbar/robot2.png',
+ selectedIconPath: '/static/tabbar/robot2.png',
centerItem: true,
badge: readMsg.badges[2]?.count || 0,
},
- {
- id: 3,
- text: '消息',
- path: '/pages/msglog/msglog',
- iconPath: '/static/tabbar/chat4.png',
- selectedIconPath: '/static/tabbar/chat4ed.png',
- centerItem: false,
- badge: readMsg.badges[3]?.count || 0,
- },
{
id: 4,
text: '我的',
@@ -126,7 +120,8 @@ const generateTabbarList = () => {
// #endif
}
if (userType === 0) {
- baseItems.splice(2, 0, {
+ // 企业用户:将招聘会添加到第1个位置,AI图标保持在中间
+ baseItems.splice(1, 0, {
id: 5,
text: '招聘会',
path: '/pages/careerfair/careerfair',
@@ -135,6 +130,14 @@ const generateTabbarList = () => {
centerItem: false,
badge: 0,
});
+ // 调整AI图标的位置到中间(索引2)
+ const aiItem = baseItems.find(item => item.id === 2);
+ if (aiItem) {
+ // 移除AI图标
+ baseItems.splice(baseItems.indexOf(aiItem), 1);
+ // 将AI图标插入到中间位置
+ baseItems.splice(2, 0, aiItem);
+ }
}
return baseItems;
};
@@ -200,12 +203,12 @@ const switchTab = (item, index) => {
// 判断企业信息字段company是否为null或undefined
if (!currentUserInfo.company || currentUserInfo.company === null) {
// 企业信息为空,跳转到企业信息补全页面
- uni.navigateTo({
+ uni.redirectTo({
url: '/packageA/pages/complete-info/company-info',
});
} else {
// 企业信息完整,跳转到发布岗位页面
- uni.navigateTo({
+ uni.redirectTo({
url: '/packageA/pages/job/publishJob',
});
}
@@ -234,7 +237,7 @@ const switchTab = (item, index) => {
}
// 跳转到对应的页面
- uni.navigateTo({
+ uni.redirectTo({
url: targetPath,
});
@@ -243,26 +246,10 @@ const switchTab = (item, index) => {
}
}
- // 判断是否为 tabBar 页面
- const tabBarPages = [
- '/pages/index/index',
- '/pages/careerfair/careerfair',
- '/pages/chat/chat',
- '/pages/msglog/msglog',
- '/pages/mine/mine'
- ];
-
- if (tabBarPages.includes(item.path)) {
- // TabBar 页面使用 redirectTo 避免页面栈溢出
- uni.redirectTo({
- url: item.path,
- });
- } else {
- // 非 TabBar 页面使用 navigateTo
- uni.navigateTo({
- url: item.path,
- });
- }
+ // 所有页面都使用 redirectTo 避免页面栈溢出
+ uni.redirectTo({
+ url: item.path,
+ });
currentItem.value = item.id;
};
@@ -275,6 +262,34 @@ onMounted(() => {
diff --git a/components/tabbar/midell-box.vue b/components/tabbar/midell-box.vue
index d3e6e3a..fd18b2e 100644
--- a/components/tabbar/midell-box.vue
+++ b/components/tabbar/midell-box.vue
@@ -76,7 +76,7 @@ const generateTabbarList = () => {
{
id: 2,
text: 'AI+',
- path: '/pages/chat/chat',
+ path: '/packageA/pages/chat/chat',
iconPath: '../../static/tabbar/logo3.png',
selectedIconPath: '../../static/tabbar/logo3.png',
centerItem: true,
@@ -148,7 +148,7 @@ const changeItem = (item) => {
const tabBarPages = [
'/pages/index/index',
'/pages/careerfair/careerfair',
- '/pages/chat/chat',
+ '/packageA/pages/chat/chat',
'/pages/msglog/msglog',
'/pages/mine/mine'
];
diff --git a/components/wxAuthLogin/WxAuthLogin.vue b/components/wxAuthLogin/WxAuthLogin.vue
index a251881..754bea6 100644
--- a/components/wxAuthLogin/WxAuthLogin.vue
+++ b/components/wxAuthLogin/WxAuthLogin.vue
@@ -103,12 +103,19 @@
-
+
+
+
+ 我已阅读并同意
+
+ 《隐私协议》
+
+
@@ -128,6 +135,7 @@ const popup = ref(null);
const userType = ref(null); // 用户角色:1-求职者,0-企业
const orgType = ref(null); // 机构类型
const orgTypeOptions = ref([]); // 机构类型选项
+const agreedToAgreement = ref(false); // 是否同意用户协议
const emit = defineEmits(['success', 'cancel']);
// 获取机构类型字典
@@ -159,6 +167,10 @@ const open = () => {
popup.value?.open();
userType.value = null; // 重置角色选择
orgType.value = null; // 重置机构类型选择
+
+ // 检查是否已同意协议
+ const agreed = uni.getStorageSync('agreedToUserAgreement');
+ agreedToAgreement.value = !!agreed;
};
// 关闭弹窗
@@ -191,26 +203,25 @@ const validateRole = () => {
return false;
}
+ // 验证是否同意用户协议
+ if (!agreedToAgreement.value) {
+ $api.msg('请先阅读并同意隐私协议');
+ return false;
+ }
+
return true;
};
const getPhoneNumber = (e) => {
console.log('获取手机号:', e);
console.log('userType.value', userType.value)
- // 验证角色是否已选择
+ // 验证角色、机构类型和隐私协议
+ if (!validateRole()) {
+ return;
+ }
if (e.detail.errMsg === 'getPhoneNumber:ok') {
- if (userType.value === null) {
- $api.msg('请先选择您的角色');
- return true;
- }
-
- // 验证机构类型是否已选择(仅单位角色)
- if (userType.value === 0 && orgType.value === null) {
- $api.msg('请选择机构类型');
- return true;
- }
uni.login({
provider: 'weixin',
success: (loginRes) => {
@@ -363,6 +374,11 @@ const wxLogin = () => {
// 测试账号登录(仅开发环境)
const testLogin = () => {
+ // 验证角色、机构类型和隐私协议
+ if (!validateRole()) {
+ return;
+ }
+
uni.showLoading({ title: '登录中...' });
const params = {
@@ -409,18 +425,21 @@ const testLogin = () => {
});
};
+// 切换协议同意状态
+const toggleAgreement = () => {
+ agreedToAgreement.value = !agreedToAgreement.value;
+};
+
// 打开用户协议
const openAgreement = (type) => {
const urls = {
- user: '/pages/agreement/user',
- privacy: '/pages/agreement/privacy'
+ user: '/packageA/pages/agreement/user',
+ privacy: '/packageA/pages/agreement/privacy'
};
- if (urls[type]) {
- uni.navigateTo({
- url: urls[type]
- });
- }
+ uni.navigateTo({
+ url: urls[type]
+ });
};
// 暴露方法供父组件调用
@@ -596,10 +615,23 @@ defineExpose({
margin-left: 12rpx
.auth-agreement
- text-align: center
+ display: flex
+ align-items: center
+ justify-content: center
font-size: 24rpx
color: #999999
line-height: 1.6
+ flex-wrap: wrap
+ gap: 8rpx
+
+ .agreement-checkbox
+ display: flex
+ align-items: center
+ cursor: pointer
+
+ .agreement-text
+ margin-left: 8rpx
+ color: #666666
.link
color: #256BFA
diff --git a/package.json b/package.json
index afea3cf..3b8730e 100644
--- a/package.json
+++ b/package.json
@@ -4,5 +4,8 @@
"dayjs": "^1.11.19",
"mp-html": "^2.5.2",
"sm-crypto": "^0.3.13"
+ },
+ "devDependencies": {
+ "crypto-js": "^4.2.0"
}
}
diff --git a/packageA/pages/UnitDetails/UnitDetails.vue b/packageA/pages/UnitDetails/UnitDetails.vue
index 13e4745..e4db336 100644
--- a/packageA/pages/UnitDetails/UnitDetails.vue
+++ b/packageA/pages/UnitDetails/UnitDetails.vue
@@ -1,16 +1,11 @@
-
+
-
-
-
-
-
-
+
@@ -22,6 +17,10 @@
{{ getScaleLabel(companyInfo?.scale) }}
+
+
+
+
公司介绍
@@ -372,6 +371,37 @@
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(jobId)}`);
}
}
+
+ // 收藏和取消收藏企业
+ function toggleCollection() {
+ const companyId = companyInfo.value.id || companyInfo.value.companyId;
+ if (!companyId) {
+ $api.msg('获取公司信息失败,无法操作');
+ return;
+ }
+
+ const isCollection = companyInfo.value.isCollection;
+ const method = isCollection ? 'DELETE' : 'POST';
+ const apiUrl = `/app/company/collection/${companyId}`;
+
+ uni.showLoading({
+ title: '操作中'
+ });
+
+ $api.createRequest(apiUrl, {}, method).then((resData) => {
+ uni.hideLoading();
+ if (resData && resData.code === 200) {
+ companyInfo.value.isCollection = !isCollection;
+ $api.msg(isCollection ? '取消收藏成功' : '收藏成功');
+ } else {
+ $api.msg((resData && resData.msg) || (isCollection ? '取消收藏失败' : '收藏失败'));
+ }
+ }).catch((error) => {
+ uni.hideLoading();
+ console.error('API error when toggling collection:', error);
+ $api.msg('网络请求失败,请检查网络连接');
+ });
+ }
\ No newline at end of file
diff --git a/packageA/pages/agreement/user.vue b/packageA/pages/agreement/user.vue
new file mode 100644
index 0000000..7f5e211
--- /dev/null
+++ b/packageA/pages/agreement/user.vue
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 在您注册、登录、使用本小程序服务之前,请您务必审慎阅读、充分理解本协议各条款内容,特别是以加粗形式提示您注意的、关于免除或限制责任、争议解决及法律适用的条款。一旦您以任何方式访问、使用本小程序,即表示您已同意接受本协议及我们另行发布的《隐私政策》的全部内容约束。如您不同意本协议的任何内容,请立即停止使用本小程序。
+
+
+
+ 如果您未满18周岁,请在法定监护人的陪同下阅读和判断是否同意本协议,并特别注意未成年人使用条款。
+
+
+
+
+ 第一部分:用户服务协议
+
+
+ 一、 服务定义与变更
+
+
+ 1.1 服务内容:
+ 本小程序是喀什地区人社局为您提供的的平台服务。具体服务内容可能因版本更新而调整。
+
+
+
+ 1.2 服务变更与中断:
+ 为保障服务质量,我们有权随时对服务内容、功能、操作界面等进行调整、变更或中断,恕不另行单独通知。对于因服务调整、中断或终止对用户或任何第三方造成的损失,除法律明确规定外,不承担任何责任。
+
+
+
+
+ 二、 账号管理与安全
+
+
+ 2.1 账号注册:
+ 您需要通过微信授权登录来使用本小程序的核心功能。该授权将帮助我们获取您的微信头像、昵称、地区等基本信息。您知悉并同意,该授权行为即视为您已完成账号注册。
+
+
+
+ 2.2 账号安全:
+ 您的微信账号由您自行保管并承担安全责任。您应妥善保管与微信账号相关的一切信息,并对您账号下发生的一切活动(包括但不限于言论发表、信息发布、服务购买等)承担全部法律责任。如发现任何未经授权的账号使用行为,应立即通知我们。我们将对前述情况采取合理的行动,但除因我们的过错外,我们不承担由此导致的任何损失。
+
+
+
+
+ 三、 用户行为规范
+
+ 您承诺并保证在使用本小程序服务时遵守中华人民共和国法律法规、社会公德,并不得从事以下行为:
+
+
+ 3.1
+ 上传、发布、传播或分享任何反对宪法所确定的基本原则、危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统一、损害国家荣誉和利益、煽动民族仇恨、民族歧视、破坏民族团结、破坏国家宗教政策、宣扬邪教和封建迷信、淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪等法律、行政法规禁止的内容;
+
+
+
+ 3.2
+ 侵犯他人知识产权、商业秘密、肖像权、隐私权等合法权益;
+
+
+
+ 3.3
+ 发布任何虚假、骚扰性、侮辱性、诽谤性、恐吓性、庸俗淫秽或任何其他非法信息;
+
+
+
+ 3.4
+ 利用技术手段恶意爬取、干扰、破坏本小程序的正常运营,或增加服务器负载;
+
+
+
+ 3.5
+ 未经许可,从事任何形式的商业广告行为,或利用本小程序进行传销、金字塔骗局等非法营销活动;
+
+
+
+ 3.6
+ 其他任何违反法律规定或干扰本小程序正常运营的行为。
+
+
+ 若用户违反上述规定,我们有权单方面判断采取中断服务、限制功能、封禁账号等措施,并保留追究法律责任的权利。
+
+
+
+ 四、 知识产权声明
+
+
+ 4.1
+ 本公司独立拥有或与相关内容提供者共同拥有本小程序及相关软件、技术、代码、文档、页面设计、Logo、商标、信息内容等的知识产权。
+
+
+
+ 4.2
+ 未经本公司或相关权利人书面许可,任何单位和个人不得以任何方式(包括但不限于非法复制、传播、展示、修改、创建衍生作品等)使用上述知识产权,否则我们将依法追究其法律责任。
+
+
+
+
+ 五、 免责与责任限制
+
+
+ 5.1 "现状"提供:
+ 本小程序的服务按"现状"和"可得到"的状态提供。在法律允许的最大范围内,我们明确表示不提供任何明示或默示的担保,包括但不限于对服务的适用性、没有错误或疏漏、持续性、准确性、可靠性、适用于某一特定用途。
+
+
+
+ 5.2 不可抗力:
+ 对于因战争、动乱、自然灾害、政府行为、电信线路中断、黑客攻击、计算机病毒侵入或发作、第三方服务瑕疵等不可抗力因素导致的任何服务中断、数据丢失或信息泄露等问题,我们不承担责任。
+
+
+
+ 5.3 第三方链接与内容:
+ 本小程序内可能包含由第三方提供的服务或链接。该等第三方服务或链接由第三方独立运营和控制,我们不对其内容、隐私政策或行为承担任何责任。您使用任何第三方服务时,需受其自身的条款和政策的约束。
+
+
+
+
+ 六、 协议修改与终止
+
+
+ 6.1
+ 我们有权根据国家法律法规变化及运营需要,随时修改本协议的任何条款。更新后的协议将在本小程序上公布,并取代旧版本。如您继续使用服务,即视为接受更新后的协议。
+
+
+
+ 6.2
+ 您有权随时停止使用本小程序服务。若我们判断您严重违反本协议,我们有权单方面终止向您提供服务,并保留追偿损失的权利。
+
+
+
+
+ 七、 法律适用与争议解决
+
+
+ 7.1
+ 本协议的订立、效力、解释、履行及争议的解决,均适用中华人民共和国大陆地区法律。
+
+
+
+ 7.2
+ 因本协议引起的或与本协议有关的任何争议,双方应首先友好协商解决;协商不成的,您同意将争议提交至 【填写您公司所在地】 有管辖权的人民法院通过诉讼解决。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/chat/chat.vue b/packageA/pages/chat/chat.vue
similarity index 98%
rename from pages/chat/chat.vue
rename to packageA/pages/chat/chat.vue
index 1c42cab..56adf5c 100644
--- a/pages/chat/chat.vue
+++ b/packageA/pages/chat/chat.vue
@@ -60,8 +60,8 @@
- {{ config.appInfo.areaName }}岗位推荐
-
+
+
diff --git a/pages/chat/components/AudioWave.vue b/packageA/pages/chat/components/AudioWave.vue
similarity index 100%
rename from pages/chat/components/AudioWave.vue
rename to packageA/pages/chat/components/AudioWave.vue
diff --git a/pages/chat/components/WaveDisplay.vue b/packageA/pages/chat/components/WaveDisplay.vue
similarity index 100%
rename from pages/chat/components/WaveDisplay.vue
rename to packageA/pages/chat/components/WaveDisplay.vue
diff --git a/pages/chat/components/ai-paging.vue b/packageA/pages/chat/components/ai-paging.vue
similarity index 94%
rename from pages/chat/components/ai-paging.vue
rename to packageA/pages/chat/components/ai-paging.vue
index 24352c0..3ad0775 100644
--- a/pages/chat/components/ai-paging.vue
+++ b/packageA/pages/chat/components/ai-paging.vue
@@ -1,5 +1,23 @@
+
+
+
+ 政策查询
+
+
+ 岗位推荐
+
+
+
@@ -51,6 +69,7 @@
{
const scrollToBottom = throttle(function () {
nextTick(() => {
try {
+ let query;
// #ifdef MP-WEIXIN
- const query = uni.createSelectorQuery().in(instance);
+ query = uni.createSelectorQuery().in(instance);
// #endif
// #ifndef MP-WEIXIN
- const query = uni.createSelectorQuery();
+ query = uni.createSelectorQuery();
// #endif
query.select('.scrollView').boundingClientRect();
@@ -886,7 +907,42 @@ function getRandomJobQueries(queries, count = 2) {
return shuffled.slice(0, count); // 取前 count 条
}
-defineExpose({ scrollToBottom, closeGuess, closeFile, changeQueries, handleTouchCancel });
+// 切换tab
+function switchTab(tab) {
+ activeTab.value = tab;
+}
+
+// 检查消息是否应该显示在当前tab
+function shouldShowMessage(msg) {
+ if (msg.self) {
+ return true; // 用户自己的消息总是显示
+ }
+
+ if (activeTab.value === 'policy') {
+ // 政策查询tab:显示除了岗位卡片以外的所有内容
+ // 岗位卡片通常包含特定的标记,如```job-json或岗位推荐等关键词
+ const isJobCard = msg.displayText && (
+ msg.displayText.includes('```job-json') ||
+ msg.displayText.includes('岗位推荐') ||
+ msg.displayText.includes('推荐岗位') ||
+ msg.displayText.includes('岗位信息') ||
+ (msg.displayText.includes('```') && msg.displayText.includes('公司') && msg.displayText.includes('薪资'))
+ );
+ return !isJobCard;
+ } else {
+ // 岗位推荐tab:只显示岗位卡片内容
+ const isJobCard = msg.displayText && (
+ msg.displayText.includes('```job-json') ||
+ msg.displayText.includes('岗位推荐') ||
+ msg.displayText.includes('推荐岗位') ||
+ msg.displayText.includes('岗位信息') ||
+ (msg.displayText.includes('```') && msg.displayText.includes('公司') && msg.displayText.includes('薪资'))
+ );
+ return isJobCard;
+ }
+}
+
+defineExpose({ scrollToBottom, closeGuess, closeFile, changeQueries, handleTouchCancel, switchTab });
diff --git a/pages/chat/components/fileIcon.vue b/packageA/pages/chat/components/fileIcon.vue
similarity index 100%
rename from pages/chat/components/fileIcon.vue
rename to packageA/pages/chat/components/fileIcon.vue
diff --git a/pages/chat/components/fileText.vue b/packageA/pages/chat/components/fileText.vue
similarity index 100%
rename from pages/chat/components/fileText.vue
rename to packageA/pages/chat/components/fileText.vue
diff --git a/pages/chat/components/popupbadFeeback.vue b/packageA/pages/chat/components/popupbadFeeback.vue
similarity index 100%
rename from pages/chat/components/popupbadFeeback.vue
rename to packageA/pages/chat/components/popupbadFeeback.vue
diff --git a/packageA/pages/complete-info/company-info.vue b/packageA/pages/complete-info/company-info.vue
index f9a1dc2..5112c96 100644
--- a/packageA/pages/complete-info/company-info.vue
+++ b/packageA/pages/complete-info/company-info.vue
@@ -23,13 +23,16 @@
统一社会信用代码
-
+
+
+
+
@@ -600,6 +603,42 @@ const cancel = () => {
uni.navigateBack()
}
+// 根据社会信用代码查询企业信息
+const queryCompanyByCreditCode = async () => {
+ const creditCode = formData.socialCreditCode.trim()
+ if (!creditCode) {
+ $api.msg('请输入统一社会信用代码')
+ return
+ }
+
+ uni.showLoading({ title: '查询中...' })
+
+ try {
+ const response = await $api.createRequest('/app/company/queryCodeCompany', { code: creditCode }, 'get')
+ uni.hideLoading()
+
+ if (response.code === 200 && response.data) {
+ const companyData = response.data
+ // 回显企业信息到表单
+ if (companyData.name) formData.companyName = companyData.name
+ if (companyData.location) formData.registeredAddress = companyData.location
+ if (companyData.description) formData.companyIntro = companyData.description
+ if (companyData.nature) formData.nature = companyData.nature
+ if (companyData.registeredAddress) formData.registeredAddress = companyData.registeredAddress
+ if (companyData.legalPerson) formData.legalPersonName = companyData.legalPerson
+ // 其他字段根据接口返回的数据结构进行映射
+ updateCompletion()
+ $api.msg('企业信息查询成功')
+ } else {
+ $api.msg('未查询到企业信息')
+ }
+ } catch (error) {
+ uni.hideLoading()
+ $api.msg('查询失败,请重试')
+ console.error('查询企业信息失败:', error)
+ }
+}
+
// 确认提交
const confirm = () => {
// 验证必填字段
@@ -837,6 +876,25 @@ defineExpose({
font-size: 28rpx
line-height: 1.4
+ .input-with-button
+ flex: 1
+ display: flex
+ align-items: center
+ gap: 16rpx
+
+ .query-button
+ padding: 8rpx 16rpx
+ background: #256BFA
+ color: #fff
+ font-size: 20rpx
+ border-radius: 6rpx
+ border: none
+ min-width: 100rpx
+ text-align: center
+
+ &:active
+ background: #1a5cd9
+
.input-con
flex: 1
font-size: 28rpx
diff --git a/packageA/pages/exhibitors/exhibitors.vue b/packageA/pages/exhibitors/exhibitors.vue
index cedbc34..f8b2124 100644
--- a/packageA/pages/exhibitors/exhibitors.vue
+++ b/packageA/pages/exhibitors/exhibitors.vue
@@ -62,11 +62,12 @@
-
-
-
+
+
+
参会单位({{ companyList.length }})
-
+
+
@@ -100,8 +101,71 @@
-
-
+
+
+
+
+
+
+
+ {{ job.jobTitle }}
+
+ {{ job.minSalary }}-{{ job.maxSalary }}元
+
+
+
+
+ {{ job.industry }}
+ {{ job.scale }}
+
+
+
+
+
+
+ {{
+ getStatusText(job.jobFairPersonJob?.status).text
+ }}
+
+
+
+
+
+
+
+
+
+
+
@@ -285,7 +287,7 @@
+
+
diff --git a/packageB/priority/components/targetPersonnel.vue b/packageB/priority/components/targetPersonnel.vue
new file mode 100644
index 0000000..4e9ff75
--- /dev/null
+++ b/packageB/priority/components/targetPersonnel.vue
@@ -0,0 +1,473 @@
+
+
+
+
+
+
+ 任务:
+ {{props.taskName}}
+
+
+
+
+
+
+ 目标人员列表
+
+
+
+ 目标人数{{totalNum}}人
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+ 身份证号:
+
+
+
+ {{item.idCard}}
+
+
+
+
+
+
+ 联系电话:
+
+
+
+ {{item.phone}}
+
+
+
+
+
+
+ 住址:
+
+
+
+ {{item.address}}
+
+
+
+
+
+
+ 技能特长:
+
+
+
+ {{item.skills}}
+
+
+
+
+
+
+ 人员标签:
+
+
+
+
+ {{val}}
+
+
+
+
+
+
+
+ 数据来源:
+
+
+
+ {{item.datasource=== '1' ? '自动识别' : '手动添加'}}
+
+
+
+
+
+
+ 帮扶状态:
+
+
+
+ {{item.assistStatus}}
+
+
+
+
+
+
+ 就业状态:
+
+
+
+ {{item.employmentStatus}}
+
+
+
+
+
+
+ 失业时间:
+
+
+
+ {{item.unemploymentDate}}
+
+
+
+
+
+
+ 失业登记时间:
+
+
+
+ {{item.unemploymentRegisterDate}}
+
+
+
+
+
+
+ 毕业时间:
+
+
+
+ {{item.graduateDate}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/components/targetPersonnelChoice.vue b/packageB/priority/components/targetPersonnelChoice.vue
new file mode 100644
index 0000000..428f750
--- /dev/null
+++ b/packageB/priority/components/targetPersonnelChoice.vue
@@ -0,0 +1,545 @@
+
+
+
+
+
+
+
+ 筛选条件
+
+
+
+
+
+
+
+
+
+ 姓名:
+
+
+
+ 身份证号:
+
+
+
+ 人员标签:
+
+
+
+ 所属区域:
+
+
+
+
+
+
+
+
+ 目标人员列表
+
+
+
+ 目标人数{{totalNum}}人
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+ 身份证号:
+
+
+
+ {{item.idCard}}
+
+
+
+
+
+
+ 联系电话:
+
+
+
+ {{item.phone}}
+
+
+
+
+
+
+ 住址:
+
+
+
+ {{item.address}}
+
+
+
+
+
+
+ 技能特长:
+
+
+
+ {{item.skills}}
+
+
+
+
+
+
+ 人员标签:
+
+
+
+
+ {{val}}
+
+
+
+
+
+
+
+ 数据来源:
+
+
+
+ {{item.datasource=== '1' ? '自动识别' : '手动添加'}}
+
+
+
+
+
+
+ 帮扶状态:
+
+
+
+ {{item.assistStatus}}
+
+
+
+
+
+
+ 就业状态:
+
+
+
+ {{item.employmentStatus}}
+
+
+
+
+
+
+ 失业时间:
+
+
+
+ {{item.unemploymentDate}}
+
+
+
+
+
+
+ 失业登记时间:
+
+
+
+ {{item.unemploymentRegisterDate}}
+
+
+
+
+
+
+ 毕业时间:
+
+
+
+ {{item.graduateDate}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/components/taskCreated.vue b/packageB/priority/components/taskCreated.vue
new file mode 100644
index 0000000..e10b7b3
--- /dev/null
+++ b/packageB/priority/components/taskCreated.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+ 创建任务
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/components/taskDetail.vue b/packageB/priority/components/taskDetail.vue
new file mode 100644
index 0000000..e62d5c4
--- /dev/null
+++ b/packageB/priority/components/taskDetail.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+ 帮扶任务详情
+
+
+
+
+
+
+ 任务名称:
+
+
+ {{formData.taskName}}
+
+
+
+
+ 任务类型:
+
+
+
+ {{formData.taskType}}
+
+
+
+
+ 优先级:
+
+
+ {{formData.priority}}
+
+
+
+
+ 目标人数:
+
+
+ {{formData.taskAllocation.goalPersonCount}}人
+
+
+
+
+ 分配区域:
+
+
+ {{formData.taskAllocation.executeDeptName}}
+
+
+
+
+ 创建时间:
+
+
+ {{formData.createTime}}
+
+
+
+
+ 截止时间:
+
+
+ {{formData.taskAllocation.deadline}}
+
+
+
+
+ 分配状态:
+
+
+ {{formData.allocationStatus}}
+
+
+
+
+ 分配说明:
+
+
+ {{formData.taskAllocation.allocationNote?formData.taskAllocation.allocationNote:'暂无'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/helpFilter.vue b/packageB/priority/helpFilter.vue
index 654f8d0..480a906 100644
--- a/packageB/priority/helpFilter.vue
+++ b/packageB/priority/helpFilter.vue
@@ -241,7 +241,7 @@ onLoad(() => {
getDataList('refresh');
});
}else{
- navTo('/packageB/login2');
+ navTo('/packageB/login2?jump=/packageB/priority/helpFilter');
}
});
function getDictionary(){
diff --git a/packageB/priority/index.vue b/packageB/priority/index.vue
new file mode 100644
index 0000000..4ad09b3
--- /dev/null
+++ b/packageB/priority/index.vue
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+ 帮扶任务分配
+
+ 立即查看
+
+
+
+
+
+
+
+
+ 帮扶任务下发
+
+ 立即查看
+
+
+
+
+
+
+
+
+ 帮扶记录管理
+
+ 立即查看
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/recordsManagement.vue b/packageB/priority/recordsManagement.vue
new file mode 100644
index 0000000..a8a68b0
--- /dev/null
+++ b/packageB/priority/recordsManagement.vue
@@ -0,0 +1,526 @@
+
+
+
+
+
+ 筛选条件
+
+
+
+
+
+
+
+
+
+
+
+ 人员姓名:
+
+
+
+
+
+ 身份证号:
+
+
+
+
+
+ 帮扶类型:
+
+
+
+
+
+ 帮扶人员:
+
+
+
+
+
+ 所属区域:
+
+
+
+
+
+
+ 开始时间:
+
+
+
+
+
+ 结束时间:
+
+
+
+
+
+
+
+ 帮扶记录列表
+
+
+
+ 共{{totalNum}}条记录
+
+
+
+
+
+
+ {{item.name}}
+
+
+ {{getTaskTypeLabelByValue(item.task_type)}}
+
+
+
+
+
+
+ 联系电话:
+
+
+
+ {{item.phone}}
+
+
+
+
+
+
+ 身份证号:
+
+
+
+ {{item.id_card}}
+
+
+
+
+
+
+ 所属区域:
+
+
+
+ {{item.dept_name}}
+
+
+
+
+
+
+ 帮扶人员:
+
+
+
+ {{item.create_by_name}}
+
+
+
+
+
+
+ 帮扶单位:
+
+
+
+ {{item.create_by_dept_name}}
+
+
+
+
+
+
+ 帮扶日期:
+
+
+
+ {{item.follow_date}}
+
+
+
+
+
+
+ 下次联系:
+
+
+
+ {{item.next_contact_date}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/taskAssignment.vue b/packageB/priority/taskAssignment.vue
new file mode 100644
index 0000000..a4d74a3
--- /dev/null
+++ b/packageB/priority/taskAssignment.vue
@@ -0,0 +1,573 @@
+
+
+
+
+
+
+
+
+
+
+ 帮扶任务总数
+
+
+ {{ stats.taskCount }}
+
+
+
+
+
+
+
+ 待分配任务
+
+
+ {{ stats.pendingCount }}
+
+
+
+
+
+
+
+ 已分配任务
+
+
+ {{ stats.allocatedCount }}
+
+
+
+
+
+
+ 筛选条件
+
+
+
+
+
+
+
+
+
+
+ 任务名称:
+
+
+
+
+ 任务类型:
+
+
+
+
+ 优先级:
+
+
+
+
+ 创建时间:
+
+
+
+
+ 分配状态:
+
+
+
+
+ 执行区域:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 帮扶任务列表
+
+
+
+ 共{{totalNum}}条记录
+
+
+
+
+
+
+ {{item.taskName}}
+
+
+ 优先级:{{item.priority}}
+
+
+
+
+
+
+ 目标人数:
+
+
+
+ {{item.taskAllocation.goalPersonCount}}
+
+
+
+
+
+
+ 任务类型:
+
+
+
+ {{item.taskType}}
+
+
+
+
+
+
+ 分配状态:
+
+
+
+ {{item.taskAllocation.allocationStatus}}
+
+
+
+
+
+
+ 执行区域:
+
+
+
+ {{item.taskAllocation.executeDeptName}}
+
+
+
+
+
+
+ 创建时间:
+
+
+
+ {{item.createTime}}
+
+
+
+
+
+
+ 截止时间:
+
+
+
+ {{item.taskAllocation.deadline}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageB/priority/taskIssue.vue b/packageB/priority/taskIssue.vue
new file mode 100644
index 0000000..a8a68b0
--- /dev/null
+++ b/packageB/priority/taskIssue.vue
@@ -0,0 +1,526 @@
+
+
+
+
+
+ 筛选条件
+
+
+
+
+
+
+
+
+
+
+
+ 人员姓名:
+
+
+
+
+
+ 身份证号:
+
+
+
+
+
+ 帮扶类型:
+
+
+
+
+
+ 帮扶人员:
+
+
+
+
+
+ 所属区域:
+
+
+
+
+
+
+ 开始时间:
+
+
+
+
+
+ 结束时间:
+
+
+
+
+
+
+
+ 帮扶记录列表
+
+
+
+ 共{{totalNum}}条记录
+
+
+
+
+
+
+ {{item.name}}
+
+
+ {{getTaskTypeLabelByValue(item.task_type)}}
+
+
+
+
+
+
+ 联系电话:
+
+
+
+ {{item.phone}}
+
+
+
+
+
+
+ 身份证号:
+
+
+
+ {{item.id_card}}
+
+
+
+
+
+
+ 所属区域:
+
+
+
+ {{item.dept_name}}
+
+
+
+
+
+
+ 帮扶人员:
+
+
+
+ {{item.create_by_name}}
+
+
+
+
+
+
+ 帮扶单位:
+
+
+
+ {{item.create_by_dept_name}}
+
+
+
+
+
+
+ 帮扶日期:
+
+
+
+ {{item.follow_date}}
+
+
+
+
+
+
+ 下次联系:
+
+
+
+ {{item.next_contact_date}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packageRc/pages/jobList/jobList.vue b/packageRc/pages/jobList/jobList.vue
index 54c41ff..85a1319 100644
--- a/packageRc/pages/jobList/jobList.vue
+++ b/packageRc/pages/jobList/jobList.vue
@@ -878,7 +878,7 @@ function navToService(serviceType) {
// 'skill-evaluation': '/pages/service/skill-evaluation',
"question-bank": "/pages/service/question-bank",
"quality-assessment": "/pages/service/quality-assessment",
- "ai-interview": "/pages/chat/chat",
+ "ai-interview": "/packageA/pages/chat/chat",
"job-search": "/pages/search/search",
"career-planning": "/pages/service/career-planning",
"salary-query": "/pages/service/salary-query",
diff --git a/pages.json b/pages.json
index f4b495d..bdc2658 100644
--- a/pages.json
+++ b/pages.json
@@ -36,15 +36,6 @@
"navigationBarTitleText": "搜索职位"
}
},
- {
- "path": "pages/chat/chat",
- "style": {
- "navigationBarTitleText": "智能客服",
- "navigationBarBackgroundColor": "#4778EC",
- "navigationBarTextStyle": "white",
- "enablePullDownRefresh": false
- }
- },
{
"path": "pages/service/career-planning",
"style": {
@@ -319,6 +310,27 @@
"navigationBarTitleText": "取消投递",
"navigationBarBackgroundColor": "#FFFFFF"
}
+ },
+ {
+ "path": "pages/agreement/user",
+ "style": {
+ "navigationBarTitleText": "隐私协议"
+ }
+ },
+ {
+ "path": "pages/agreement/privacy",
+ "style": {
+ "navigationBarTitleText": "隐私政策"
+ }
+ },
+ {
+ "path": "pages/chat/chat",
+ "style": {
+ "navigationBarTitleText": "智能客服",
+ "navigationBarBackgroundColor": "#4778EC",
+ "navigationBarTextStyle": "white",
+ "enablePullDownRefresh": false
+ }
}
]
},
@@ -421,6 +433,36 @@
"navigationBarTitleText": "推荐"
}
},
+ {
+ "path": "priority/index",
+ "style": {
+ "navigationBarTitleText": "帮扶任务"
+ }
+ },
+ {
+ "path": "priority/taskAssignment",
+ "style": {
+ "navigationBarTitleText": "帮扶任务分配"
+ }
+ },
+ {
+ "path": "priority/taskIssue",
+ "style": {
+ "navigationBarTitleText": "帮扶任务下发"
+ }
+ },
+ {
+ "path": "priority/recordsManagement",
+ "style": {
+ "navigationBarTitleText": "帮扶记录管理"
+ }
+ },
+ {
+ "path": "priority/allocate",
+ "style": {
+ "navigationBarTitleText": "任务分配"
+ }
+ },
{
"path": "train/wrongAnswer/mistakeNotebook",
"style": {
diff --git a/pages/index/components/index-one.vue b/pages/index/components/index-one.vue
index cdd8b45..6b48454 100644
--- a/pages/index/components/index-one.vue
+++ b/pages/index/components/index-one.vue
@@ -161,6 +161,12 @@
帮扶
+
+
+
+
+ 帮扶任务
+
@@ -299,7 +305,7 @@
>
-
+
+
+
+
+
+
+
+
+ {{ Number(job.jobStatus) === 0 ? '已上架' : '已下架' }}
+
+
+
+
+
+
+
+
+
+ {{ Number(job.jobStatus) === 0 ? '已上架' : '已下架' }}
+
+
+