提交 e0f550f7c0801121d780d656ac5872566b642081

作者 juvenile
0 个父辈

init

要显示太多修改。

为保证性能只显示 17 of 17+ 个文件。

  1 +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
  2 + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
  3 + "version": "0.0",
  4 + "configurations": [{
  5 + "default" :
  6 + {
  7 + "launchtype" : "local"
  8 + },
  9 + "mp-alipay" :
  10 + {
  11 + "launchtype" : "local"
  12 + },
  13 + "type" : "uniCloud"
  14 + }
  15 + ]
  16 +}
  1 +<!--
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-01-29 16:40:40
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-10-20 16:35:42
  8 +-->
  9 +<template>
  10 + <view :style="vuex_theme">
  11 + <u-toast ref="uToast" />
  12 + </view>
  13 +</template>
  14 +
  15 +<script>
  16 +import { themeList } from "./common/theme.js";
  17 +
  18 +import { mapActions } from "vuex";
  19 +export default {
  20 + // 此处globalData为了演示其作用,不是uView框架的一部分
  21 + globalData: {
  22 + username: "",
  23 + },
  24 +
  25 + data() {
  26 + return {
  27 + themeList,
  28 + };
  29 + },
  30 +
  31 + onLaunch(e) {
  32 + let colorObj = this.themeList[this.vuex_appId].value;
  33 + let styles = "";
  34 + for (let i in colorObj) {
  35 + styles += colorObj[i].name + ":" + colorObj[i].value + ";";
  36 + }
  37 +
  38 + this.$u.vuex("vuex_theme", styles);
  39 + this.$u.vuex("vuex_baseImgUrl", this.themeList[this.vuex_appId].imagePath);
  40 + // console.log('vuex_theme----', this.vuex_theme)
  41 +
  42 + uni.setTabBarStyle({
  43 + selectedColor: "var(--primary-color)",
  44 + });
  45 +
  46 + // if (this.vuex_phone && this.vuex_token) {
  47 + // my.login({
  48 + // success: (res) => {
  49 + // this.$store.dispatch(`user/login1`, {
  50 + // type: "student",
  51 + // way: "wechat",
  52 + // jsCode: res.code,
  53 + // phone: this.vuex_phone,
  54 + // formType: "3",
  55 + // });
  56 + // },
  57 + // });
  58 + // }
  59 + if (e.query && e.query.id) {
  60 + return;
  61 + }
  62 +
  63 + try {
  64 + // 尝试获取本地是否存在lifeData变量,第一次启动APP时是不存在的
  65 + let lifeData = uni.getStorageSync("lifeData");
  66 + if (
  67 + !lifeData ||
  68 + JSON.stringify(lifeData) == "{}" ||
  69 + this.vuex_role == ""
  70 + ) {
  71 + uni.$u.route("/pages/common/select-role/select-role");
  72 + }
  73 + } catch (e) {
  74 + console.log(e);
  75 + }
  76 + },
  77 +
  78 + methods: {
  79 + setTabBar() {
  80 + let tabBar = tabBarList.find(
  81 + (item) => item.themeName == uni.getStorageSync("themeName")
  82 + );
  83 + uni.setTabBarItem({
  84 + index: 0,
  85 + selectedIconPath: tabBar.home,
  86 + });
  87 + uni.setTabBarItem({
  88 + index: 1,
  89 + selectedIconPath: tabBar.task,
  90 + });
  91 + uni.setTabBarItem({
  92 + index: 2,
  93 + selectedIconPath: tabBar.user,
  94 + });
  95 + },
  96 + },
  97 +};
  98 +</script>
  99 +
  100 +<style lang="scss">
  101 +@import "uview-ui/index.scss";
  102 +@import "common/demo.scss";
  103 +// @import '@/static/common/css/icon.css';
  104 +
  105 +/* #ifdef MP-WEIXIN */
  106 +wx-swiper .wx-swiper-dot {
  107 + width: 20rpx;
  108 + height: 10rpx;
  109 + border-radius: 5rpx;
  110 +}
  111 +
  112 +wx-swiper .wx-swiper-dot-active {
  113 + background-color: #000;
  114 + width: 30rpx;
  115 + height: 15rpx;
  116 + border-radius: 7.5rpx;
  117 +}
  118 +
  119 +::-webkit-scrollbar {
  120 + display: none;
  121 + width: 0 !important;
  122 + height: 0 !important;
  123 + -webkit-appearance: none;
  124 + background: transparent;
  125 +}
  126 +
  127 +/* #endif */
  128 +</style>
  1 +MIT License
  2 +
  3 +Copyright (c) 2020 www.uviewui.com
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in all
  13 +copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  21 +SOFTWARE.
  1 +<p align="center">
  2 + <img alt="logo" src="https://uviewui.com/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
  3 +</p>
  4 +<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView</h3>
  5 +<h3 align="center">多平台快速开发的UI框架</h3>
  6 +
  7 +[![star](https://gitee.com/xuqu/uView/badge/star.svg?theme=gvp)](https://gitee.com/xuqu/uView/stargazers)
  8 +[![fork](https://gitee.com/xuqu/uView/badge/fork.svg?theme=gvp)](https://gitee.com/xuqu/uView/members)
  9 +[![stars](https://img.shields.io/github/stars/YanxinNet/uView?style=flat-square&logo=GitHub)](https://github.com/YanxinNet/uView)
  10 +[![forks](https://img.shields.io/github/forks/YanxinNet/uView?style=flat-square&logo=GitHub)](https://github.com/YanxinNet/uView)
  11 +[![issues](https://img.shields.io/github/issues/YanxinNet/uView?style=flat-square&logo=GitHub)](https://github.com/YanxinNet/uView/issues)
  12 +[![Website](https://img.shields.io/badge/uView-up-blue?style=flat-square)](https://uviewui.com)
  13 +[![release](https://img.shields.io/github/v/release/YanxinNet/uView?style=flat-square)](https://gitee.com/xuqu/uView/releases)
  14 +[![license](https://img.shields.io/github/license/YanxinNet/uView?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License)
  15 +
  16 +## 说明
  17 +
  18 +uView UI,是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
  19 +
  20 +## [官方文档:https://www.uviewui.com](https://www.uviewui.com)
  21 +
  22 +### [点击加群交流反馈:863820668](https://jq.qq.com/?_wv=1027&k=uyZUkSlo)
  23 +
  24 +## 特性
  25 +
  26 +- 兼容安卓,iOS,微信小程序,H5,QQ小程序,百度小程序,支付宝小程序,头条小程序
  27 +- 60+精选组件,功能丰富,多端兼容,让您快速集成,开箱即用
  28 +- 众多贴心的JS利器,让您飞镖在手,召之即来,百步穿杨
  29 +- 众多的常用页面和布局,让您专注逻辑,事半功倍
  30 +- 详尽的文档支持,现代化的演示效果
  31 +- 按需引入,精简打包体积
  32 +
  33 +
  34 +## 预览
  35 +
  36 +您可以通过**微信**扫码,查看最佳的演示效果。
  37 +<br>
  38 +<br>
  39 +<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
  40 +
  41 +
  42 +## 友情链接
  43 +
  44 +#### **vue-admin-beautiful** —— [企业级、通用型中后台前端解决方案(基于vue/cli 4 最新版,同时支持电脑,手机,平板)](https://github.com/chuzhixin/vue-admin-beautiful)
  45 +
  46 +#### **vue-admin-beautiful** —— [在线演示](http://beautiful.panm.cn/vue-admin-beautiful/#/index)
  47 +
  48 +#### **pl-table** —— [ 完美解决 element 万级表格数据渲染卡顿问题](https://github.com/livelyPeng/pl-table)
  49 +
  50 +#### **luch-request** —— [基于 Promise 开发的 uni-app 跨平台、项目级别的请求库,它有更小的体积,易用的 api,方便简单的自定义能力](https://www.quanzhan.co/luch-request/)
  51 +<br>
  52 +
  53 +## 链接
  54 +
  55 +- [官方文档](https://uviewui.com/)
  56 +- [更新日志](https://uviewui.com/components/changelog.html)
  57 +- [升级指南](https://uviewui.com/components/changelog.html)
  58 +- [关于我们](https://uviewui.com/cooperation/about.html)
  59 +
  60 +## 交流反馈
  61 +
  62 +欢迎加入我们的QQ群交流反馈:[点此跳转](https://www.uviewui.com/components/addQQGroup.html)
  63 +
  64 +## 安装
  65 +
  66 +#### **下载地址** —— [https://ext.dcloud.net.cn/plugin?id=1593](https://ext.dcloud.net.cn/plugin?id=1593)
  67 +
  68 +## 快速上手
  69 +
  70 +1. `main.js`引入uView库
  71 +```js
  72 +// main.js
  73 +import uView from 'uview-ui';
  74 +Vue.use(uView);
  75 +```
  76 +
  77 +2. `App.vue`引入基础样式(注意style标签需声明scss属性支持)
  78 +```css
  79 +/* App.vue */
  80 +<style lang="scss">
  81 +/* 注意声明lang="scss"! */
  82 +@import "uview-ui/index.scss";
  83 +</style>
  84 +```
  85 +
  86 +3. `uni.scss`引入全局scss变量文件
  87 +```css
  88 +/* uni.scss */
  89 +@import "uview-ui/theme.scss";
  90 +```
  91 +
  92 +4. `pages.json`配置easycom规则(按需引入)
  93 +
  94 +```js
  95 +// pages.json
  96 +{
  97 + "easycom": {
  98 + // 下载安装的方式需要前面的"@/",npm安装的方式无需"@/"
  99 + // 下载安装方式
  100 + "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
  101 + // npm安装方式
  102 + // "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
  103 + },
  104 + // 此为本身已有的内容
  105 + "pages": [
  106 + // ......
  107 + ]
  108 +}
  109 +```
  110 +
  111 +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
  112 +
  113 +## 使用方法
  114 +配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。
  115 +
  116 +```html
  117 +<template>
  118 + <u-button>按钮</u-button>
  119 +</template>
  120 +```
  121 +
  122 +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
  123 +
  124 +
  125 +## 捐赠uView的研发
  126 +
  127 +uView文档和源码全部开源免费,如果您认为uView帮到了您的开发工作,您可以捐赠uView的研发工作,捐赠无门槛,哪怕是一杯可乐也好(相信这比打赏主播更有意义)。
  128 +
  129 +<img src="https://uviewui.com/common/wechat.png" width="220" >
  130 +<img style="margin-left: 100px;" src="https://uviewui.com/common/alipay.png" width="220" >
  131 +
  132 +## 版权信息
  133 +uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。
不能预览此文件类型
此 diff 太大无法显示。
  1 +// 把文字中间4个字符换成“*”号
  2 +export const replaceTextToStar = (params = '') => {
  3 +
  4 + let value = String(params)
  5 +
  6 + if (!value || !value.length || value.length <= 0) return '';
  7 +
  8 + let len = value.length;
  9 + let medianNumber = Math.floor(len / 2);
  10 +
  11 + console.log(medianNumber)
  12 +
  13 +
  14 +
  15 + return `${value.substr(0, medianNumber-2)}****${value.substr(medianNumber + 2, value.length)}`;
  16 +}
  17 +
  18 +
  19 +module.exports = {
  20 + replaceTextToStar,
  21 +}
  1 +/* #ifndef APP-NVUE */
  2 +view,
  3 +text {
  4 + box-sizing: border-box;
  5 +}
  6 +/* #endif */
  7 +
  8 +/* start--演示页面使用的统一样式--start */
  9 +.u-demo {
  10 + padding: 25px 20px;
  11 +}
  12 +
  13 +.u-demo-wrap {
  14 + border-width: 1px;
  15 + border-color: #ddd;
  16 + border-style: dashed;
  17 + background-color: rgb(250, 250, 250);
  18 + padding: 20px 10px;
  19 + border-radius: 3px;
  20 +}
  21 +
  22 +.u-demo-area {
  23 + text-align: center;
  24 +}
  25 +
  26 +.u-no-demo-here {
  27 + color: $u-tips-color;
  28 + font-size: 13px;
  29 +}
  30 +
  31 +.u-demo-result-line {
  32 + border-width: 1px;
  33 + border-color: #ddd;
  34 + border-style: dashed;
  35 + padding: 5px 20px;
  36 + margin-top: 30px;
  37 + border-radius: 5px;
  38 + background-color: rgb(240, 240, 240);
  39 + color: $u-content-color;
  40 + font-size: 16px;
  41 + /* #ifndef APP-NVUE */
  42 + word-break: break-word;
  43 + display: inline-block;
  44 + /* #endif */
  45 + text-align: left;
  46 +
  47 +}
  48 +
  49 +.u-demo-title,
  50 +.u-config-title {
  51 + text-align: center;
  52 + font-size: 16px;
  53 + font-weight: bold;
  54 + margin-bottom: 20px;
  55 +}
  56 +
  57 +.u-config-item {
  58 + margin-top: 25px;
  59 +}
  60 +
  61 +.u-config-title {
  62 + margin-top: 20px;
  63 + padding-bottom: 5px;
  64 +}
  65 +
  66 +.u-item-title {
  67 + position: relative;
  68 + font-size: 15px;
  69 + padding-left: 8px;
  70 + line-height: 1;
  71 + margin-bottom: 11px;
  72 +}
  73 +
  74 +.u-item-title:after {
  75 + position: absolute;
  76 + width: 4px;
  77 + top: -1px;
  78 + height: 16px;
  79 + /* #ifndef APP-NVUE */
  80 + content: '';
  81 + /* #endif */
  82 + left: 0;
  83 + border-radius: 10px;
  84 + background-color: $u-content-color;
  85 +}
  86 +/* end--演示页面使用的统一样式--end */
  1 +//
  2 +let ApIndexUrl = '/ap/index.php';
  3 +
  4 +// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:
  5 +const install = (Vue, vm) => {
  6 +
  7 + let getApIndexUrlApi = (params = {}) => vm.$u.get(ApIndexUrl, params).then(res => {
  8 + if (res.code >= 300 || res.code < 0) {
  9 + uni.$u.toast(res.msg);
  10 + } else {
  11 + return res.data
  12 + }
  13 + });
  14 +
  15 + let postApIndexUrlApi = (ctl, met, params = {}) => vm.$u.post(ApIndexUrl+'?ctl='+ctl+'&met='+met, params).then(res => {
  16 + // let postApIndexUrlApi = (params = {}) => vm.$u.post(ApIndexUrl, params).then(res => {
  17 + if (res.code >= 300 || res.code < 0) {
  18 + uni.$u.toast(res.msg);
  19 + } else {
  20 + return res.data
  21 + }
  22 + });
  23 +
  24 + // console.log('123123123123',vm.$u.api)
  25 + let api = {
  26 + getApIndexUrlApi,
  27 + postApIndexUrlApi
  28 + }
  29 + // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
  30 + vm.$u.api = {...vm.$u.api, ...api}
  31 +}
  32 +
  33 +export default {
  34 + install
  35 +}
  1 +// 如果没有通过拦截器配置域名的话,可以在这里写上完整的URL(加上域名部分)
  2 +let loginUrl = '/hro/uaa/v1/auth/tokens';
  3 +let settingGetUrl = '/basic/v1/setting/get';
  4 +let userUrl = '/user/v1/detail';
  5 +let smsCodeUrl = '/hro/sms/v1/sms_codes';
  6 +let delAccountUrl = '/hro/uaa/v1/accounts/users/op/cancel';
  7 +let cancelDelAccountUrl = '/user/v1/cancelAnnul';
  8 +let updateUserInfoUrl = '/user/v1/update';
  9 +let updateUserBaseInfoUrl = '/user/v1/basicInfo/update';
  10 +let schoolListUrl = '/basic/v1/schoolInfo/list';
  11 +let departmentListUrl = '/basic/v1/department/list';
  12 +let professionalListUrl = '/basic/v1/professional/list';
  13 +let schoolTermListUrl = '/basic/v1/term/list';
  14 +let classListUrl = '/basic/v1/classInfo/list';
  15 +let authenticationUrl = '/user/v1/student/approve';
  16 +let clockInUrl = '/internship/v1/attendance/save';
  17 +let evaluateUrl = '/internship/v1/formStudentReview/save';
  18 +let getEvaluateUrl = '/internship/v1/form/';
  19 +let gradesUrl = '/internship/v1/';
  20 +let recordListUrl = '/internship/v1/formLog/list';
  21 +let createRecordUrl = '/internship/v1/formLog/save';
  22 +let changeRecordUrl = '/internship/v1/formLog/';
  23 +let recordDetailUrl = '/internship/v1/formLog/detail/';
  24 +let recordComentListUrl = '/internship/v1/formLogReview/list';
  25 +let recordReplyUrl = '/internship/v1/formLogReview/save';
  26 +let internshipListUrl = '/internship/v1/';
  27 +let internshipDetailUrl = '/internship/v1/';
  28 +let internshipApplyUrl = '/internship/v1/entry/';
  29 +let planDetailUrl = '/internship/v1/plan/detail/';
  30 +let createAgreementUrl = '/internship/v1/treaty/save';
  31 +let getAgreementUrl = '/internship/v1/form/';
  32 +let updateAgreementUrl = '/internship/v1/treaty/';
  33 +let teacherjoblistUrl = '/internship/v1/platformJob/applet/listByStudent';
  34 +let ptxgUrl = '/internship/v1/platformJob/list'
  35 +let advSearchUrl = '/internship/v1/qiXinBao/advSearch';
  36 +let selfapplyUrl = '/internship/v1/entry/';
  37 +let createReportUrl = '/internship/v1/report/save';
  38 +let reportDetailUrl = '/internship/v1/report/detailByStudent/';
  39 +let reportListUrl = '/internship/v1/report/examineList/';
  40 +let sendEmileUrl = '/basic/v1/email/sendCode';
  41 +let jobDetailUrl = '/internship/v1/job/detail/';
  42 +let getShortUrl = '/internship/v1/report/getShortUrl/';
  43 +let leaveRecordUrl = '/internship/v1/leaveRecord/save';
  44 +let leaveRecordListUrl = '/internship/v1/leaveRecord/listForStudent';
  45 +let leaveRecordDetailUrl = '/internship/v1/leaveRecord/detail/';
  46 +let formChangeApplyUrl = '/internship/v1/formChangeApply/save';
  47 +let formChangeApplydetailUrl = '/internship/v1/formChangeApply/detail/';
  48 +let studentjoblistUrl = '/internship/v1/platformJob/applet/listByCompany';
  49 +let formChangeApplyRevokeUrl = '/internship/v1/formChangeApply/revoke/';
  50 +let newQuestionnaireUrl = '/internship/v1/questionnaire/newQuestionnaire';
  51 +let newQuestionnaireListUrl = '/internship/v1/questionnaire/questionnaireListByStudent';
  52 +let detailByStudentUrl = '/internship/v1/questionnaire/detailByStudent/';
  53 +let graduationStatisticsRosterUrl = '/internship/v1/graduationStatisticsRoster/save';
  54 +let questionnaireTemplateUrl = '/internship/v1/graduationStatisticsRoster/graduationSurvey/';
  55 +let myUserStaticsUrl = '/hro/recruit/v1/yxly/user/counts';
  56 +let positionCollectUrl = '/hro/recruit/v1/user/collects/:id/op/delete';
  57 +let positionRecordUrl = '/hro/recruit/v1/yxly/user/delivery-records';
  58 +let resumeUpdateUrl = '/hro/recruit/v1/yxly/user/resumes/update';
  59 +let resumeDetailUrl = '/hro/recruit/v1/yxly/user/resumes/detail';
  60 +let isJobCollectedUrl = '/hro/recruit/v1/yxly/user/collects/check/'
  61 +let jobRecommendUrl = '/hro/recruit/v1/yxly/user/positions/recommend';
  62 +let jobReccommendListUrl = '/hro/recruit/v1/yxly/user/candidates/recommends';
  63 +let applyJobUrl = '/hro/recruit/v1/yxly/user/delivery';
  64 +let getAuthUrl = '/user/v1/getAuthUrl';
  65 +let isJobAppliedUrl = '/hro/recruit/v1/yxly/user/delivery/check/';
  66 +let signstartUrl = '/internship/v1/treaty/sign/start';
  67 +let looksignstartUrl = '/internship/v1/treaty/sign/detailByStudent/';
  68 +let entryAttachmentsSavaUrl = '/internship/v1/entryAttachments/save';
  69 +let putentryAttachmentsSavaUrl = '/internship/v1/entryAttachments/';
  70 +let putinternshipTimeUrl = '/internship/v1/formApply/save';
  71 +let scoresaveUrl = '/internship/v1/score/save';
  72 +let scoredetailUrl = '/internship/v1/score/detail/';
  73 +let scoreappraisalUrl = '/internship/v1/score/appraisal';
  74 +let temporaryKeyUrl = '/basic/v1/oss/temporaryKey';
  75 +let listevaluationProductUrl = '/basic/v1/evaluationProduct/listByStudent'
  76 +let detailevaluationProductUrl = '/basic/v1/evaluationProduct/detailByStudent/'
  77 +let placeAnOrderUrl = '/basic/v1/order/save'
  78 +let orderlistByStudentUrl = '/basic/v1/order/listByStudent'
  79 +let orderdetailUrl = '/basic/v1/order/detail/'
  80 +let orderevaluateUrl = '/basic/v1/order/evaluate/'
  81 +let recruitLiveUrl = '/basic/v1/student/recruitLive/list'
  82 +let recruitmenttalkUrl = '/hro/recruit/v1/yxly/recruitment-talk/'
  83 +let recruitLiveApplyUrl = '/basic/v1/recruitLiveApply/save'
  84 +let appealsaveUrl = '/user/v1/appeal/save'
  85 +let appealsaveMsgUrl = '/user/v1/appeal/type'
  86 +let cancleappealUrl = '/user/v1/appeal/cancel/'
  87 +let msginfoUrl = '/basic/v1/student/msg/info'
  88 +let msglistUrl = '/basic/v1/student/msg/list'
  89 +let msgdetailUrl = '/basic/v1/student/msg/detail/'
  90 +let schoolCensusInfoUrl = '/user/v1/student/schoolCensusInfo'
  91 +let attendanceuploadUrl = '/internship/v1/attendance/upload/'
  92 +let monthAttendanceListUrl = '/internship/v1/student/attendance/monthAttendanceList'
  93 +let getCompanyStatusUrl = '/internship/v1/score/getCompanyStatus/'
  94 +let marketingConfigUrl = '/basic/v1/marketingConfig/get/'
  95 +
  96 +let ossinitUrl = '/basic/v1/oss/policy';
  97 +let getOssImgUrl = '/basic/v1/oss/signUrl';
  98 +
  99 +//B端接口
  100 +let hroTokenUrl = '/hro/uaa/v1/auth/tokens';
  101 +let tenantsListUrl = '/hro/uaa/v1/yxly/tenants';
  102 +let hroOssInitUrl = '/hro/filemeta/v1/inits';
  103 +let hroObjectRedirectUrl = '/hro/filemeta/v1/object-redirect';
  104 +let hroObjectRedirectUrl1 = '/hro/filemeta/v1/object-redirect?';
  105 +let tenantresumesUrl = '/hro/recruit/v1/yxly/tenant/resumes';
  106 +let tenantresumesUrllogin = '/hro/recruit/v1/yxly/tenant/resumes-with-login';
  107 +let tenantresumesDetailUrl = '/hro/recruit/v1/yxly/resumes/';
  108 +let bcreatcollectUrl = '/hro/recruit/v1/yxly/tenant/collects';
  109 +let isbcreatcollectUrl = '/hro/recruit/v1/yxly/tenant/collects/check/';
  110 +let cancelbcreatcollectUrl = '/hro/recruit/v1/yxly/tenant/collects/';
  111 +let resumebuypackageUrl = '/hro/recruit/v1/yxly/resume-buy-package';
  112 +let resumesdownloads = '/hro/recruit/v1/yxly/tenants/resumes/downloads';
  113 +let resumesdownloads1 = '/hro/recruit/v1/yxly/tenant/resume-buy-package';
  114 +let isresumesdownloads = '/hro/recruit/v1/yxly/tenants/resumes/check/';
  115 +let poscategorylist = '/hro/recruit/v1/common/position-category';
  116 +let positionslist = '/hro/recruit/v1/yxly/positions';
  117 +let positionslistlogin = '/hro/recruit/v1/yxly/positions-with-login';
  118 +let expectList = '/hro/recruit/v1/yxly/user/expect-job';
  119 +let positionsdetail = '/hro/recruit/v1/yxly/positions/';
  120 +let isbuyrec = '/hro/recruit/v1/yxly/tenant/package/check';
  121 +let recHis = '/hro/recruit/v1/yxly/tenant/resumes-package/buy-records';
  122 +let entrustPositions = '/hro/recruit/v1/yxly/tenant/entrust-positions';
  123 +let entrustPositions1 = '/hro/recruit/v1/yxly/tenant/entrust-positions-with-login';
  124 +let yxlyinfosUrl = '/hro/recruit/v1/yxly/infos';
  125 +let contactpositionUrl = '/hro/recruit/v1/yxly/tenant/contact-position';
  126 +let tenantentrustCheckUrl = '/hro/recruit/v1/yxly/tenant/entrust/check/';
  127 +let yxlybannersUrl = '/hro/recruit/v1/yxly/banners';
  128 +let activenoticeUrl = '/hro/recruit/v1/yxly/user/active-notice';
  129 +let createdeliveryUrl = '/hro/recruit/v1/yxly/user/resumes/create-delivery/';
  130 +let zhilianInfoUrl = '/hro/recruit/v1/yxly/user/positions/position/';
  131 +let tenantprofileUrl = '/hro/uaa/v1/yxly/tenants/tenant/';
  132 +
  133 +// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:
  134 +const install = (Vue, vm) => {
  135 +
  136 +
  137 + // 登录
  138 + let getLoginApi = (params = {}) => vm.$u.post(loginUrl, params).then(res => {
  139 + if (res.code >= 300) {
  140 + uni.$u.toast(res.msg);
  141 + } else {
  142 + return res
  143 + }
  144 + });
  145 +
  146 + // 隐藏认证
  147 + let settingGetApi = (params = {}) => vm.$u.get(settingGetUrl, params).then(res => {
  148 + if (res.code >= 300) {
  149 + uni.showToast({
  150 + title: res.msg,
  151 + icon: 'none',
  152 + duration: 2000
  153 + });
  154 + } else {
  155 + return res.data
  156 + }
  157 + });
  158 +
  159 + // 获取验证码
  160 + let getSmsCodeApi = (params = {}) => vm.$u.post(smsCodeUrl, params).then(res => {
  161 + // if (res.code >= 300) {
  162 + // uni.showToast({
  163 + // title: res.msg,
  164 + // icon: 'none',
  165 + // duration: 2000
  166 + // });
  167 + // } else {
  168 + // return res.data
  169 + // }
  170 + });
  171 +
  172 + // 注销账号
  173 + let delAccountApi = (params = {}) => vm.$u.put(delAccountUrl, params).then(res => {
  174 + if (res.code >= 300) {
  175 + uni.showToast({
  176 + title: res.msg,
  177 + icon: 'none',
  178 + duration: 2000
  179 + });
  180 + } else {
  181 + return res
  182 + }
  183 + });
  184 +
  185 + // 撤销注销账号
  186 + let cancelDelAccountApi = (params = {}) => vm.$u.put(cancelDelAccountUrl, params).then(res => {
  187 + if (res.code >= 300) {
  188 + uni.showToast({
  189 + title: res.msg,
  190 + icon: 'none',
  191 + duration: 2000
  192 + });
  193 + } else {
  194 + return res
  195 + }
  196 + });
  197 +
  198 + // 获取用户信息
  199 + let getUserApi = (params = {}) => vm.$u.get(userUrl, params).then(res => {
  200 + if (res.code >= 300) {
  201 + uni.showToast({
  202 + title: res.msg,
  203 + icon: 'none',
  204 + duration: 2000
  205 + });
  206 + } else {
  207 + return res.data
  208 + }
  209 +
  210 + });
  211 +
  212 + // update用户信息
  213 + let updateUserInfoApi = (params = {}) => vm.$u.put(updateUserInfoUrl, params).then(res => {
  214 + if (res.code >= 300) {
  215 + if (res.msg == '该手机号已注册') {
  216 + return res
  217 + } else {
  218 + uni.showToast({
  219 + title: res.msg,
  220 + icon: 'none',
  221 + duration: 2000
  222 + });
  223 + }
  224 + } else {
  225 + return res
  226 + }
  227 + });
  228 +
  229 + // update用户基本信息
  230 + let updateUserBaseInfoApi = (params = {}) => vm.$u.put(updateUserBaseInfoUrl, params).then(res => {
  231 + if (res.code >= 300) {
  232 + uni.showToast({
  233 + title: res.msg,
  234 + icon: 'none',
  235 + duration: 2000
  236 + });
  237 + } else {
  238 + return res
  239 + }
  240 + });
  241 +
  242 + // 获取学校列表
  243 + let getSchoolListApi = (params = {}) => vm.$u.get(schoolListUrl, {
  244 + pageNumber: 1,
  245 + pageSize: 50,
  246 + ...params,
  247 + }).then(res => {
  248 + if (res.code >= 300) {
  249 + uni.showToast({
  250 + title: res.msg,
  251 + icon: 'none',
  252 + duration: 2000
  253 + });
  254 + } else {
  255 + return res.data
  256 + }
  257 + });
  258 +
  259 + // 获取院系列表
  260 + let getDepartmentListApi = (params = {}) => vm.$u.get(departmentListUrl, {
  261 + pageNumber: 1,
  262 + pageSize: -1,
  263 + ...params,
  264 + }).then(res => {
  265 + if (res.code >= 300) {
  266 + uni.showToast({
  267 + title: res.msg,
  268 + icon: 'none',
  269 + duration: 2000
  270 + });
  271 + } else {
  272 + return res.data
  273 + }
  274 + });
  275 +
  276 + // 获取专业列表
  277 + let getProfessionalListApi = (params = {}) => vm.$u.get(professionalListUrl, {
  278 + pageNumber: 1,
  279 + pageSize: -1,
  280 + ...params,
  281 + }).then(res => {
  282 + if (res.code >= 300) {
  283 + uni.showToast({
  284 + title: res.msg,
  285 + icon: 'none',
  286 + duration: 2000
  287 + });
  288 + } else {
  289 + return res.data
  290 + }
  291 + });
  292 +
  293 + // 获取学期列表
  294 + let getSchoolTermListApi = (params = {}) => vm.$u.get(schoolTermListUrl, {
  295 + pageNumber: 1,
  296 + pageSize: -1,
  297 + ...params,
  298 + }).then(res => {
  299 + if (res.code >= 300) {
  300 + uni.showToast({
  301 + title: res.msg,
  302 + icon: 'none',
  303 + duration: 2000
  304 + });
  305 + } else {
  306 + return res.data
  307 + }
  308 + });
  309 +
  310 + // 获取班级列表
  311 + let getClassListApi = (params = {}) => vm.$u.get(classListUrl, {
  312 + pageNumber: 1,
  313 + pageSize: -1,
  314 + ...params,
  315 + }).then(res => {
  316 + if (res.code >= 300) {
  317 + uni.showToast({
  318 + title: res.msg,
  319 + icon: 'none',
  320 + duration: 2000
  321 + });
  322 + } else {
  323 + return res.data
  324 + }
  325 + });
  326 +
  327 + // 学籍认证
  328 + let postAuthenticationApi = (params = {}) => vm.$u.post(`${authenticationUrl}`, params).then(res => {
  329 + if (res.code >= 300) {
  330 + uni.$u.toast(res.msg);
  331 + } else {
  332 + return res
  333 + }
  334 + });
  335 +
  336 + // 打卡
  337 + let clockInApi = (params = {}) => vm.$u.post(clockInUrl, params).then(res => {
  338 + if (res.code >= 300) {
  339 + uni.showToast({
  340 + title: res.msg,
  341 + icon: 'none',
  342 + duration: 2000
  343 + });
  344 + } else {
  345 + return res
  346 + }
  347 + });
  348 +
  349 + // 实习评价
  350 + let evaluateApi = (params = {}) => vm.$u.post(evaluateUrl, params).then(res => {
  351 + if (res.code >= 300) {
  352 + uni.showToast({
  353 + title: res.msg,
  354 + icon: 'none',
  355 + duration: 2000
  356 + });
  357 + } else {
  358 + return res
  359 + }
  360 + });
  361 +
  362 + // 获取实习评价
  363 + let getEvaluateApi = (id) => vm.$u.get(getEvaluateUrl + id + `/formStudentReview`).then(res => {
  364 + if (res.code >= 300) {
  365 + uni.showToast({
  366 + title: res.msg,
  367 + icon: 'none',
  368 + duration: 2000
  369 + });
  370 + } else {
  371 + return res
  372 + }
  373 + });
  374 +
  375 + // 获取成绩查询
  376 + let getGradesApi = (id) => vm.$u.get(gradesUrl + id + `/score`).then(res => {
  377 + if (res.code >= 300) {
  378 + uni.showToast({
  379 + title: res.msg,
  380 + icon: 'none',
  381 + duration: 2000
  382 + });
  383 + } else {
  384 + return res
  385 + }
  386 + });
  387 +
  388 + //获取日志列表
  389 + let getRecordListApi = (params = {}) => vm.$u.get(recordListUrl, {
  390 + pageNumber: 0,
  391 + pageSize: 10,
  392 + ...params,
  393 + }).then(res => {
  394 + if (res.code >= 300) {
  395 + uni.showToast({
  396 + title: res.msg,
  397 + icon: 'none',
  398 + duration: 2000
  399 + });
  400 + } else {
  401 + return res.data
  402 + }
  403 + });
  404 +
  405 + // 获取日志详情
  406 + let getRecordDetailApi = (id) => vm.$u.get(recordDetailUrl + id).then(res => {
  407 + if (res.code >= 300) {
  408 + uni.showToast({
  409 + title: res.msg,
  410 + icon: 'none',
  411 + duration: 2000
  412 + });
  413 + } else {
  414 + return res
  415 + }
  416 + });
  417 +
  418 +
  419 + //全部-详情
  420 + let getInternshipDetailApi = (url, id) => vm.$u.get(internshipDetailUrl + url + id).then(res => {
  421 + if (res.code >= 300) {
  422 + uni.showToast({
  423 + title: res.msg,
  424 + icon: 'none',
  425 + duration: 2000
  426 + });
  427 + } else {
  428 + return res.data
  429 + }
  430 + });
  431 +
  432 +
  433 + let getInternshipJobsListlApi = (params = {}) => vm.$u.get('/internship/v1/student/form/jobList', {
  434 + pageNumber: 1,
  435 + pageSize: -1,
  436 + ...params,
  437 + }).then(res => {
  438 + if (res.code >= 300) {
  439 + uni.showToast({
  440 + title: res.msg,
  441 + icon: 'none',
  442 + duration: 2000
  443 + });
  444 + } else {
  445 + return res.data
  446 + }
  447 + });
  448 +
  449 + //获取日志回复列表
  450 + let getComentListApi = (params = {}) => vm.$u.get(recordComentListUrl, {
  451 + pageNumber: 0,
  452 + pageSize: 10,
  453 + ...params,
  454 + }).then(res => {
  455 + if (res.code >= 300) {
  456 + uni.showToast({
  457 + title: res.msg,
  458 + icon: 'none',
  459 + duration: 2000
  460 + });
  461 + } else {
  462 + return res.data
  463 + }
  464 + });
  465 +
  466 + //报名
  467 + let getInternshipApplyUrlApi = (id, change, params = {}) => vm.$u.put(internshipApplyUrl + id + change, params).then(res => {
  468 + if (res.code >= 300) {
  469 + uni.showToast({
  470 + title: res.msg,
  471 + icon: 'none',
  472 + duration: 2000
  473 + });
  474 + } else {
  475 + return res.data
  476 + }
  477 + });
  478 +
  479 + let putInternshipSupplementJobUrlApi = (id, params = {}) => vm.$u.put(`/internship/v1/entry/${id}/supplementJob`, params).then(res => {
  480 + if (res.code >= 300) {
  481 + uni.showToast({
  482 + title: res.msg,
  483 + icon: 'none',
  484 + duration: 2000
  485 + });
  486 + } else {
  487 + return res.data
  488 + }
  489 + });
  490 +
  491 + // 日志回复创建
  492 + let recordReplyApi = (params = {}) => vm.$u.post(recordReplyUrl, params).then(res => {
  493 + if (res.code >= 300) {
  494 + uni.showToast({
  495 + title: res.msg,
  496 + icon: 'none',
  497 + duration: 2000
  498 + });
  499 + } else {
  500 + return res.data
  501 + }
  502 + });
  503 +
  504 + //实习计划详情
  505 + let getPlanDetailApi = (id) => vm.$u.get(planDetailUrl + id).then(res => {
  506 + if (res.code >= 300) {
  507 + uni.showToast({
  508 + title: res.msg,
  509 + icon: 'none',
  510 + duration: 2000
  511 + });
  512 + } else {
  513 + return res.data
  514 + }
  515 + });
  516 +
  517 + // 日志创建
  518 + let createRecordApi = (params = {}) => vm.$u.post(createRecordUrl, params).then(res => {
  519 + if (res.code >= 300) {
  520 + uni.showToast({
  521 + title: res.msg,
  522 + icon: 'none',
  523 + duration: 2000
  524 + });
  525 + } else {
  526 + return res.data
  527 + }
  528 + });
  529 +
  530 + let changeRecordApi = (id, params = {}) => vm.$u.put(changeRecordUrl + id, params).then(res => {
  531 + if (res.code >= 300) {
  532 + uni.showToast({
  533 + title: res.msg,
  534 + icon: 'none',
  535 + duration: 2000
  536 + });
  537 + } else {
  538 + return res.data
  539 + }
  540 + });
  541 +
  542 + //实习单列表
  543 + let getInternshipListApi = (url, params = {}) => vm.$u.get(internshipListUrl + url, {
  544 + pageNumber: 0,
  545 + pageSize: 10,
  546 + ...params,
  547 + }).then(res => {
  548 + if (res.code >= 300) {
  549 + uni.$u.toast(res.msg);
  550 + } else {
  551 + return res.data
  552 + }
  553 + });
  554 +
  555 + //获取三方协议详情
  556 + let getAgreementApi = (id) => vm.$u.get(getAgreementUrl + id + '/treaty').then(res => {
  557 + if (res.code >= 300) {
  558 + uni.showToast({
  559 + title: res.msg,
  560 + icon: 'none',
  561 + duration: 2000
  562 + });
  563 + } else {
  564 + return res
  565 + }
  566 + });
  567 +
  568 + //创建三方协议
  569 + let createAgreementApi = (params = {}) => vm.$u.post(createAgreementUrl, params).then(res => {
  570 + if (res.code >= 300) {
  571 + uni.showToast({
  572 + title: res.msg,
  573 + icon: 'none',
  574 + duration: 2000
  575 + });
  576 + } else {
  577 + return res
  578 + }
  579 + });
  580 +
  581 + //教师推荐
  582 + let getTeacherjoblistApi = (params = {}) => vm.$u.get(teacherjoblistUrl, {
  583 + pageNumber: 1,
  584 + pageSize: 10,
  585 + ...params,
  586 + }).then(res => {
  587 + if (res.code >= 300) {
  588 + uni.showToast({
  589 + title: res.msg,
  590 + icon: 'none',
  591 + duration: 2000
  592 + });
  593 + } else {
  594 + return res.data
  595 + }
  596 + });
  597 +
  598 + //平台选岗
  599 + let getptxgUrlApi = (params = {}) => vm.$u.get(ptxgUrl, {
  600 + pageNumber: 1,
  601 + pageSize: 10,
  602 + ...params,
  603 + }).then(res => {
  604 + if (res.code >= 300) {
  605 + uni.showToast({
  606 + title: res.msg,
  607 + icon: 'none',
  608 + duration: 2000
  609 + });
  610 + } else {
  611 + return res.data
  612 + }
  613 + });
  614 +
  615 + // 修改三方协议
  616 + let updateAgreementApi = (id, params = {}) => vm.$u.put(updateAgreementUrl + id, params).then(res => {
  617 + if (res.code >= 300) {
  618 + uni.showToast({
  619 + title: res.msg,
  620 + icon: 'none',
  621 + duration: 2000
  622 + });
  623 + } else {
  624 + return res
  625 + }
  626 + });
  627 +
  628 + //OssInit初始化
  629 + let getOssInit = (params = {}) => vm.$u.get(ossinitUrl, params).then(res => {
  630 + if (res.code >= 300) {
  631 + uni.showToast({
  632 + title: res.msg,
  633 + icon: 'none',
  634 + duration: 2000
  635 + });
  636 + } else {
  637 + return res.data
  638 + }
  639 +
  640 + });
  641 +
  642 + //获取oss对应的图片地址
  643 + let getImgUrl = (params = {}) => vm.$u.get(getOssImgUrl, params).then(res => {
  644 + if (res.code >= 300) {
  645 + uni.showToast({
  646 + title: res.msg,
  647 + icon: 'none',
  648 + duration: 2000
  649 + });
  650 + } else {
  651 + return res.data
  652 + }
  653 +
  654 + });
  655 +
  656 + //启信宝 advSearchUrl
  657 + let getadvSearchAPI = (params = {}) => vm.$u.get(advSearchUrl, params).then(res => {
  658 + if (res.code >= 300) {
  659 + uni.showToast({
  660 + title: res.msg,
  661 + icon: 'none',
  662 + duration: 2000
  663 + });
  664 + } else {
  665 + return res.data
  666 + }
  667 +
  668 + });
  669 +
  670 + //自主报名
  671 + let selfapplyApi = (id, params = {}) => vm.$u.post(selfapplyUrl + id + '/selfApply', params).then(res => {
  672 + if (res.code >= 300) {
  673 + uni.showToast({
  674 + title: res.msg,
  675 + icon: 'none',
  676 + duration: 2000
  677 + });
  678 + } else {
  679 + return res.data
  680 + }
  681 + });
  682 +
  683 + //创建实习报告
  684 + let createReportApi = (params = {}) => vm.$u.post(createReportUrl, params).then(res => {
  685 + if (res.code >= 300) {
  686 + uni.showToast({
  687 + title: res.msg,
  688 + icon: 'none',
  689 + duration: 2000
  690 + });
  691 + } else {
  692 + return res
  693 + }
  694 + });
  695 +
  696 + //获取实习报告详情
  697 + let getReportDetailApi = (id) => vm.$u.get(reportDetailUrl + id).then(res => {
  698 + if (res.code >= 300) {
  699 + uni.showToast({
  700 + title: res.msg,
  701 + icon: 'none',
  702 + duration: 2000
  703 + });
  704 + } else {
  705 + return res
  706 + }
  707 + });
  708 +
  709 + //实习报告列表
  710 + let getReportListApi = (formId) => vm.$u.get(reportListUrl + formId, {
  711 + pageNumber: 0,
  712 + pageSize: 10,
  713 + }).then(res => {
  714 + if (res.code >= 300) {
  715 + uni.$u.toast(res.msg);
  716 + } else {
  717 + return res.data
  718 + }
  719 + });
  720 + //油箱 sendEmileUrl
  721 + let sendEmileAPI = (params = {}) => vm.$u.get(sendEmileUrl, params).then(res => {
  722 + if (res.code >= 300) {
  723 + uni.showToast({
  724 + title: res.msg,
  725 + icon: 'none',
  726 + duration: 2000
  727 + });
  728 + } else {
  729 + return res.data
  730 + }
  731 + });
  732 +
  733 + //岗位详情 jobDetailUrl
  734 + let jobDetailAPI = (id) => vm.$u.get(jobDetailUrl + id).then(res => {
  735 + if (res.code >= 300) {
  736 + uni.showToast({
  737 + title: res.msg,
  738 + icon: 'none',
  739 + duration: 2000
  740 + });
  741 + } else {
  742 + return res.data
  743 + }
  744 + });
  745 +
  746 + //实习报告 生成短连接
  747 + let getShortUrlAPI = (params = {}) => vm.$u.get(getShortUrl, params).then(res => {
  748 + if (res.code >= 300) {
  749 + uni.showToast({
  750 + title: res.msg,
  751 + icon: 'none',
  752 + duration: 2000
  753 + });
  754 + } else {
  755 + return res.data
  756 + }
  757 + });
  758 +
  759 + //请假申请
  760 + let leaveRecordUrlAPI = (params = {}) => vm.$u.post(leaveRecordUrl, params).then(res => {
  761 + if (res.code >= 300) {
  762 + uni.showToast({
  763 + title: res.msg,
  764 + icon: 'none',
  765 + duration: 1500
  766 + });
  767 + } else {
  768 + return res.data
  769 + }
  770 + });
  771 +
  772 + //请假申请列表
  773 + let leaveRecordListUrlAPI = (params = {}) => vm.$u.get(leaveRecordListUrl, params).then(res => {
  774 + if (res.code >= 300) {
  775 + uni.showToast({
  776 + title: res.msg,
  777 + icon: 'none',
  778 + duration: 1500
  779 + });
  780 + } else {
  781 + return res.data
  782 + }
  783 + });
  784 +
  785 + //请假申请列表
  786 + let leaveRecordDetailUrlAPI = (id) => vm.$u.get(leaveRecordDetailUrl + id).then(res => {
  787 + if (res.code >= 300) {
  788 + uni.showToast({
  789 + title: res.msg,
  790 + icon: 'none',
  791 + duration: 1500
  792 + });
  793 + } else {
  794 + return res.data
  795 + }
  796 + });
  797 +
  798 + //转岗
  799 + let formChangeApplyAPI = (params = {}) => vm.$u.post(formChangeApplyUrl, params).then(res => {
  800 + if (res.code >= 300) {
  801 + uni.showToast({
  802 + title: res.msg,
  803 + icon: 'none',
  804 + duration: 1500
  805 + });
  806 + } else {
  807 + return res.data
  808 + }
  809 + });
  810 +
  811 + let formChangeApplydetailUrlAPI = (id) => vm.$u.get(formChangeApplydetailUrl + id).then(res => {
  812 + if (res.code >= 300) {
  813 + uni.showToast({
  814 + title: res.msg,
  815 + icon: 'none',
  816 + duration: 1500
  817 + });
  818 + } else {
  819 + return res.data
  820 + }
  821 + });
  822 +
  823 + let getStudentjoblistApi = (params = {}) => vm.$u.get(studentjoblistUrl, {
  824 + pageNumber: 1,
  825 + pageSize: 10,
  826 + ...params,
  827 + }).then(res => {
  828 + if (res.code >= 300) {
  829 + uni.showToast({
  830 + title: res.msg,
  831 + icon: 'none',
  832 + duration: 2000
  833 + });
  834 + } else {
  835 + return res.data
  836 + }
  837 + });
  838 +
  839 + let formChangeApplyRevokeUrlAPI = (id) => vm.$u.delete(formChangeApplyRevokeUrl + id).then(res => {
  840 + if (res.code >= 300) {
  841 + uni.showToast({
  842 + title: res.msg,
  843 + icon: 'none',
  844 + duration: 1500
  845 + });
  846 + } else {
  847 + return res.data
  848 + }
  849 + });
  850 +
  851 + let newQuestionnaireUrlAPI = () => vm.$u.get(newQuestionnaireUrl).then(res => {
  852 + if (res.code >= 300) {
  853 + uni.showToast({
  854 + title: res.msg,
  855 + icon: 'none',
  856 + duration: 1500
  857 + });
  858 + } else {
  859 + return res.data
  860 + }
  861 + });
  862 +
  863 + let newQuestionnaireListUrlAPI = (params = {}) => vm.$u.get(newQuestionnaireListUrl, params).then(res => {
  864 + if (res.code >= 300) {
  865 + uni.showToast({
  866 + title: res.msg,
  867 + icon: 'none',
  868 + duration: 1500
  869 + });
  870 + } else {
  871 + return res.data
  872 + }
  873 + });
  874 +
  875 + let detailByStudentUrlAPI = (id) => vm.$u.get(detailByStudentUrl + id).then(res => {
  876 + if (res.code >= 300) {
  877 + uni.showToast({
  878 + title: res.msg,
  879 + icon: 'none',
  880 + duration: 1500
  881 + });
  882 + } else {
  883 + return res.data
  884 + }
  885 + });
  886 +
  887 + let graduationStatisticsRosterUrlAPI = (params = {}) => vm.$u.post(graduationStatisticsRosterUrl, params).then(res => {
  888 + if (res.code >= 300) {
  889 + uni.showToast({
  890 + title: res.msg,
  891 + icon: 'none',
  892 + duration: 1500
  893 + });
  894 + } else {
  895 + return res.data
  896 + }
  897 + });
  898 +
  899 + let questionnaireTemplateUrlAPI = (id) => vm.$u.get(questionnaireTemplateUrl + id).then(res => {
  900 + if (res.code >= 300) {
  901 + uni.showToast({
  902 + title: res.msg,
  903 + icon: 'none',
  904 + duration: 1500
  905 + });
  906 + } else {
  907 + return res.data
  908 + }
  909 + });
  910 +
  911 + let myUserStaticsAPI = (params = {}) => vm.$u.get(myUserStaticsUrl, params).then(res => {
  912 + if (res.code >= 300) {
  913 + uni.showToast({
  914 + title: res.msg,
  915 + icon: 'none',
  916 + duration: 2000
  917 + });
  918 + } else {
  919 + return res
  920 + }
  921 + });
  922 +
  923 + let getCollectListUrlAPI = (params = {}) => vm.$u.get(positionCollectUrl, {
  924 + offset: 0,
  925 + limit: 10,
  926 + ...params,
  927 + }).then(res => {
  928 + if (res.code >= 300) {
  929 + uni.showToast({
  930 + title: res.msg,
  931 + icon: 'none',
  932 + duration: 1500
  933 + });
  934 + } else {
  935 + return res
  936 + }
  937 + })
  938 +
  939 +
  940 + let getRecordListUrlAPI = (params = {}) => vm.$u.get(positionRecordUrl, {
  941 + offset: 0,
  942 + limit: 10,
  943 + ...params,
  944 + }).then(res => {
  945 + if (res.code >= 300) {
  946 + uni.showToast({
  947 + title: res.msg,
  948 + icon: 'none',
  949 + duration: 1500
  950 + });
  951 + } else {
  952 + return res
  953 + }
  954 + })
  955 +
  956 +
  957 + // 简历列表
  958 + let tenantresumesApi = (params = {}) => vm.$u.get(tenantresumesUrl, params).then(res => {
  959 + if (res.code >= 300) {
  960 + uni.$u.toast(res.message);
  961 + } else {
  962 + return res
  963 + }
  964 + });
  965 +
  966 + let tenantresumesUrlloginApi = (params = {}) => vm.$u.get(tenantresumesUrllogin, params).then(res => {
  967 + if (res.code >= 300) {
  968 + uni.$u.toast(res.message);
  969 + } else {
  970 + return res
  971 + }
  972 + });
  973 +
  974 + //修改用户身份类型
  975 + let editUserTypeApi = (params = {}) => vm.$u.put(`/user/v1/userIdentity/${params.phone}`, params).then(res => {
  976 + if (res.code >= 300) {
  977 + uni.showToast({
  978 + title: res.msg,
  979 + icon: 'none',
  980 + duration: 1500
  981 + });
  982 + } else {
  983 + return res.data
  984 + }
  985 + });
  986 +
  987 + //获取用户身份类型
  988 + let getUserTypeApi = (params = {}) => vm.$u.get(`/user/v1/userIdentity/detail/${params.phone}`, params).then(res => {
  989 + if (res.code >= 300) {
  990 + uni.showToast({
  991 + title: res.msg,
  992 + icon: 'none',
  993 + duration: 1500
  994 + });
  995 + } else {
  996 + return res.data
  997 + }
  998 + });
  999 +
  1000 + // 获取hroToken
  1001 + let getHroTokenApi = (params = {}) => vm.$u.post(hroTokenUrl, params).then(res => {
  1002 + if (res.code >= 300) {
  1003 + uni.$u.toast(res.message);
  1004 + } else {
  1005 + return res
  1006 + }
  1007 + });
  1008 +
  1009 + // 优学乐业获取手机号下所有的hr和hro机构
  1010 + let getTenantsListApi = (params = {}) => vm.$u.get(tenantsListUrl, params).then(res => {
  1011 + if (res.code >= 300) {
  1012 + uni.$u.toast(res.message);
  1013 + } else {
  1014 + return res
  1015 + }
  1016 + });
  1017 +
  1018 + // 优学乐业小程序注册企业
  1019 + let addTenantApi = (params = {}) => vm.$u.post(tenantsListUrl, params).then(res => {
  1020 + if (res.code >= 300) {
  1021 + uni.$u.toast(res.message);
  1022 + } else {
  1023 + return res
  1024 + }
  1025 + });
  1026 +
  1027 + // 已注册企业加入新员工
  1028 + let addTenantStaffApi = (params = {}) => vm.$u.post(`/hro/uaa/v1/yxly/tenant-admins`, params).then(res => {
  1029 + if (res.code >= 300) {
  1030 + uni.$u.toast(res.message);
  1031 + } else {
  1032 + return res
  1033 + }
  1034 + });
  1035 +
  1036 + // 优学乐业小程序编辑企业
  1037 + let editTenantApi = (params = {}) => vm.$u.put(`/hro/uaa/v1/yxly/tenants/tenant/${params.id}/re-create`, params).then(res => {
  1038 + if (res.code >= 300) {
  1039 + uni.$u.toast(res.message);
  1040 + } else {
  1041 + return res
  1042 + }
  1043 + });
  1044 +
  1045 +
  1046 +
  1047 + // 获取hro的ossinit
  1048 + let getHroOssInitApi = (params = {}) => vm.$u.post(hroOssInitUrl, params).then(res => {
  1049 + if (res.code >= 300) {
  1050 + uni.$u.toast(res.message);
  1051 + } else {
  1052 + return res
  1053 + }
  1054 + });
  1055 +
  1056 + // 获取上传到oss上的图片路径
  1057 + let getHroObjectRedirectApi = (params = {}) => vm.$u.get(hroObjectRedirectUrl, params).then(res => {
  1058 + if (res.code >= 300) {
  1059 + uni.$u.toast(res.message);
  1060 + } else {
  1061 + return res
  1062 + }
  1063 + });
  1064 +
  1065 + let getHroObjectRedirectApi1 = (params = {}) => vm.$u.get(hroObjectRedirectUrl1, params).then(res => {
  1066 + if (res.code >= 300) {
  1067 + uni.$u.toast(res.message);
  1068 + } else {
  1069 + return res
  1070 + }
  1071 + });
  1072 +
  1073 + // 获取机构详情
  1074 + let getTenantDetailApi = (params = {}) => vm.$u.get(`/hro/uaa/v1/yxly/tenants/tenant/${params.id}`, params).then(res => {
  1075 + if (res.code >= 300) {
  1076 + uni.$u.toast(res.message);
  1077 + } else {
  1078 + return res
  1079 + }
  1080 + });
  1081 +
  1082 + //企业查询
  1083 + let getCompanySearchApi = (params = {}) => vm.$u.get(`/hro/common/v1/tycheck/companys`, params).then(res => {
  1084 + if (res.code >= 300) {
  1085 + uni.$u.toast(res.message);
  1086 + } else {
  1087 + return res
  1088 + }
  1089 + });
  1090 +
  1091 + //检测机构是否存在
  1092 + let getCheckTenantApi = (params = {}) => vm.$u.post(`/hro/uaa/v1/yxly/tenants/check-exist`, params).then(res => {
  1093 + if (res.code >= 300) {
  1094 + uni.$u.toast(res.message);
  1095 + } else {
  1096 + return res
  1097 + }
  1098 + });
  1099 +
  1100 + let tenantresumesDetailApi = (params = {}) => vm.$u.get(`${tenantresumesDetailUrl}${params.id}`, params).then(res => {
  1101 + if (res.code >= 300) {
  1102 + uni.$u.toast(res.message);
  1103 + } else {
  1104 + return res
  1105 + }
  1106 + });
  1107 +
  1108 + // 在线简历更新
  1109 + let updateResumeApi = (params = {}) => vm.$u.put(resumeUpdateUrl, params).then(res => {
  1110 + if (res.code >= 300) {
  1111 + uni.$u.toast(res.message);
  1112 + } else {
  1113 + return res
  1114 + }
  1115 + });
  1116 +
  1117 + // 个人简历详情
  1118 + let getResumeDetailApi = (params = {}) => vm.$u.get(resumeDetailUrl, params).then(res => {
  1119 + if (res.code >= 300) {
  1120 + uni.$u.toast(res.message);
  1121 + } else {
  1122 + return res
  1123 + }
  1124 + });
  1125 +
  1126 + //收藏
  1127 + let bcreatcollectUrlApi = (params = {}) => vm.$u.post(bcreatcollectUrl, params).then(res => {
  1128 + if (res.code >= 300) {
  1129 + uni.$u.toast(res.message);
  1130 + } else {
  1131 + return res
  1132 + }
  1133 + });
  1134 +
  1135 + //是否收藏
  1136 + let isbcreatcollectUrlApi = (params = {}) => vm.$u.get(`${isbcreatcollectUrl}${params.id}`, {
  1137 + type: params.type
  1138 + }).then(res => {
  1139 + if (res.code >= 300) {
  1140 + uni.$u.toast(res.message);
  1141 + } else {
  1142 + return res
  1143 + }
  1144 + });
  1145 +
  1146 + //取消收藏
  1147 + let cancelbcreatcollectUrlApi = (params = {}) => vm.$u.delete(`${cancelbcreatcollectUrl}${params.id}?type=${params.type}`).then(res => {
  1148 + if (res.code >= 300) {
  1149 + uni.$u.toast(res.message);
  1150 + } else {
  1151 + return res
  1152 + }
  1153 + });
  1154 +
  1155 + //权益卡
  1156 + let resumebuypackageUrlApi = (params = {}) => vm.$u.get(resumebuypackageUrl, params).then(res => {
  1157 + if (res.code >= 300) {
  1158 + uni.$u.toast(res.message);
  1159 + } else {
  1160 + return res
  1161 + }
  1162 + });
  1163 +
  1164 + //下载简历
  1165 + let resumesdownloadsApi = (params = {}) => vm.$u.post(resumesdownloads, params).then(
  1166 + res => {
  1167 + if (res.code >= 300) {
  1168 + uni.$u.toast(res.message);
  1169 + } else {
  1170 + return res
  1171 + }
  1172 + });
  1173 +
  1174 + let resumesdownloadsApi1 = (params = {}) => vm.$u.post(resumesdownloads1, params).then(
  1175 + res => {
  1176 + if (res.code >= 300) {
  1177 + uni.$u.toast(res.message);
  1178 + } else {
  1179 + return res
  1180 + }
  1181 + });
  1182 +
  1183 + //是否下载
  1184 + let isresumesdownloadsApi = (params = {}) => vm.$u.get(`${isresumesdownloads}${params.id}`).then(res => {
  1185 + if (res.code >= 300) {
  1186 + uni.$u.toast(res.message);
  1187 + } else {
  1188 + return res
  1189 + }
  1190 + });
  1191 +
  1192 + //行业
  1193 + let poscategorylistApi = (params = {}) => vm.$u.get(poscategorylist, params).then(res => {
  1194 + if (res.code >= 300) {
  1195 + uni.$u.toast(res.message);
  1196 + } else {
  1197 + return res
  1198 + }
  1199 + });
  1200 +
  1201 + //期望职位列表
  1202 + let getExpectListApi = (params = {}) => vm.$u.get(expectList, params).then(res => {
  1203 + if (res.code >= 300) {
  1204 + uni.$u.toast(res.message);
  1205 + } else {
  1206 + return res
  1207 + }
  1208 + });
  1209 +
  1210 + //职位列表
  1211 + let positionslistApi = (params = {}) => vm.$u.get(positionslist, params).then(res => {
  1212 + if (res.code >= 300) {
  1213 + uni.$u.toast(res.message);
  1214 + } else {
  1215 + return res
  1216 + }
  1217 + });
  1218 +
  1219 + let positionslistloginApi = (params = {}) => vm.$u.get(positionslistlogin, params).then(res => {
  1220 + if (res.code >= 300) {
  1221 + uni.$u.toast(res.message);
  1222 + } else {
  1223 + return res
  1224 + }
  1225 + });
  1226 +
  1227 + //B端-我的-数据统计
  1228 + let getJobSeekersStatisticsApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/counts`, params).then(res => {
  1229 + if (res.code >= 300) {
  1230 + uni.$u.toast(res.message);
  1231 + } else {
  1232 + return res
  1233 + }
  1234 + });
  1235 +
  1236 + let recHisApi = (params = {}) => vm.$u.get(recHis, params).then(res => {
  1237 + if (res.code >= 300) {
  1238 + uni.$u.toast(res.message);
  1239 + } else {
  1240 + return res
  1241 + }
  1242 + });
  1243 +
  1244 + //C端 投递职位
  1245 + let applyJobUrlApi = (params = {}) => vm.$u.post(applyJobUrl, params).then(res => {
  1246 + if (res.code >= 300) {
  1247 + uni.$u.toast(res.message);
  1248 + } else {
  1249 + return res
  1250 + }
  1251 + });
  1252 +
  1253 +
  1254 + let entrustPositionsApi = (params = {}) => vm.$u.get(entrustPositions, params).then(res => {
  1255 + if (res.code >= 300) {
  1256 + uni.$u.toast(res.message);
  1257 + } else {
  1258 + return res
  1259 + }
  1260 + });
  1261 +
  1262 + let entrustPositionsApi1 = (params = {}) => vm.$u.get(entrustPositions1, params).then(res => {
  1263 + if (res.code >= 300) {
  1264 + uni.$u.toast(res.message);
  1265 + } else {
  1266 + return res
  1267 + }
  1268 + });
  1269 +
  1270 + //B端-我的接单列表
  1271 + let getMyOrderListApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/entrust`, params).then(res => {
  1272 + if (res.code >= 300) {
  1273 + uni.$u.toast(res.message);
  1274 + } else {
  1275 + return res
  1276 + }
  1277 + });
  1278 +
  1279 + //职位详情
  1280 + let positionsdetailApi = (params = {}) => vm.$u.get(positionsdetail + params.id).then(res => {
  1281 + if (res.code >= 300) {
  1282 + uni.$u.toast(res.message);
  1283 + } else {
  1284 + return res
  1285 + }
  1286 + });
  1287 +
  1288 +
  1289 + let isbuyrecApi = (params = {}) => vm.$u.get(isbuyrec, params).then(res => {
  1290 + if (res.code >= 300) {
  1291 + uni.$u.toast(res.message);
  1292 + } else {
  1293 + return res
  1294 + }
  1295 + });
  1296 +
  1297 + //C端 简历是否已投递
  1298 + let isJobAppliedApi = (id, params = {}) => vm.$u.get(`${isJobAppliedUrl}${id}`, params).then(res => {
  1299 + if (res.code >= 300) {
  1300 + uni.$u.toast(res.message);
  1301 + } else {
  1302 + return res
  1303 + }
  1304 + });
  1305 +
  1306 + //C端 是否收藏
  1307 + let isJobCollected = (params = {}) => vm.$u.get(`${isJobCollectedUrl}${params.id}?category=${params.category}`).then(res => {
  1308 + if (res.code >= 300) {
  1309 + uni.$u.toast(res.message);
  1310 + } else {
  1311 + return res
  1312 + }
  1313 + });
  1314 +
  1315 + //C端 收藏
  1316 + let goCollectUrlApi = (params = {}) => vm.$u.post(positionCollectUrl, params).then(res => {
  1317 + if (res.code >= 300) {
  1318 + uni.$u.toast(res.message);
  1319 + } else {
  1320 + return res
  1321 + }
  1322 + });
  1323 +
  1324 + //C端 取消收藏
  1325 + let cancelJobCollectUrlApi = (params = {}) => vm.$u.put(`/hro/recruit/v1/user/collects/${params.id}/op/delete`, params).then(res => {
  1326 + if (res.code >= 300) {
  1327 + uni.$u.toast(res.message);
  1328 + } else {
  1329 + return res
  1330 + }
  1331 + });
  1332 +
  1333 + //C端 职位推荐
  1334 + let jobRecommendUrlApi = (params = {}) => vm.$u.post(jobRecommendUrl, params).then(res => {
  1335 + console.log('res', res)
  1336 + if (res.code >= 300) {
  1337 + uni.$u.toast(res.message);
  1338 + } else {
  1339 + return res
  1340 + }
  1341 + });
  1342 +
  1343 + //C端 我的推荐列表
  1344 + let getRecommendListUrlAPI = (params = {}) => vm.$u.get(jobReccommendListUrl, {
  1345 + offset: 0,
  1346 + limit: 10,
  1347 + ...params,
  1348 + }).then(res => {
  1349 + if (res.code >= 300) {
  1350 + uni.showToast({
  1351 + title: res.msg,
  1352 + icon: 'none',
  1353 + duration: 1500
  1354 + });
  1355 + } else {
  1356 + return res
  1357 + }
  1358 + })
  1359 +
  1360 + //B端-我的接单列表
  1361 + let getPostionNameListApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/pos-category`, params).then(res => {
  1362 + if (res.code >= 300) {
  1363 + uni.$u.toast(res.message);
  1364 + } else {
  1365 + return res
  1366 + }
  1367 + });
  1368 +
  1369 + //B端-发布职位
  1370 + let publishPostionApi = (params = {}) => vm.$u.post(`/hro/recruit/v1/yxly/tenant/positions`, params).then(res => {
  1371 + if (res.code >= 300) {
  1372 + uni.$u.toast(res.message);
  1373 + } else {
  1374 + return res
  1375 + }
  1376 + });
  1377 +
  1378 + let getAuthUrlApi = (params = {}) => vm.$u.get(getAuthUrl, params).then(res => {
  1379 + if (res.code >= 300) {
  1380 + uni.$u.toast(res.message);
  1381 + } else {
  1382 + return res
  1383 + }
  1384 + });
  1385 +
  1386 + let yxlyinfosUrlApi = (params = {}) => vm.$u.get(yxlyinfosUrl, params).then(res => {
  1387 + if (res.code >= 300) {
  1388 + uni.$u.toast(res.message);
  1389 + } else {
  1390 + return res
  1391 + }
  1392 + });
  1393 +
  1394 + let contactpositionAPI = (params = {}) => vm.$u.post(contactpositionUrl, params).then(res => {
  1395 + if (res.code >= 300) {
  1396 + uni.$u.toast(res.message);
  1397 + } else {
  1398 + return res
  1399 + }
  1400 + });
  1401 +
  1402 + //B端-我的候选人
  1403 + let getMyJobSeekersListApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/candidates`, params).then(res => {
  1404 + if (res.code >= 300) {
  1405 + uni.$u.toast(res.message);
  1406 + } else {
  1407 + return res
  1408 + }
  1409 + });
  1410 +
  1411 + //B端-获取客户列表
  1412 + let getCustomersListAPI = (params = {}) => vm.$u.get(`/hro/crm/v1/simple/customers`, params).then(res => {
  1413 + if (res.code >= 300) {
  1414 + uni.$u.toast(res.message);
  1415 + } else {
  1416 + return res
  1417 + }
  1418 + });
  1419 +
  1420 + //B端-我发布的职位列表
  1421 + let getMyPositionslistAPI = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/positions`, params).then(res => {
  1422 + if (res.code >= 300) {
  1423 + uni.$u.toast(res.message);
  1424 + } else {
  1425 + return res
  1426 + }
  1427 + });
  1428 +
  1429 + //B端-我下载的简历列表
  1430 + let getMyResumelistAPI = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenants/resumes/downloads`, params).then(
  1431 + res => {
  1432 + if (res.code >= 300) {
  1433 + uni.$u.toast(res.message);
  1434 + } else {
  1435 + return res
  1436 + }
  1437 + });
  1438 +
  1439 + //B端-职位收藏列表
  1440 + let getPositionCollectionlistAPI = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/collects/positions`, params).then(res => {
  1441 + if (res.code >= 300) {
  1442 + uni.$u.toast(res.message);
  1443 + } else {
  1444 + return res
  1445 + }
  1446 + });
  1447 +
  1448 + //B端-简历收藏列表
  1449 + let getResumesCollectionlistAPI = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/collects/resumes`, params).then(res => {
  1450 + if (res.code >= 300) {
  1451 + uni.$u.toast(res.message);
  1452 + } else {
  1453 + return res
  1454 + }
  1455 + });
  1456 +
  1457 + //B端-服务合同列表
  1458 + let getContractlistAPI = (params = {}) => vm.$u.get(`/hro/servicecontract/v1/contracts`, params).then(res => {
  1459 + if (res.code >= 300) {
  1460 + uni.$u.toast(res.message);
  1461 + } else {
  1462 + return res
  1463 + }
  1464 + });
  1465 +
  1466 + //B端-关闭、开启职位
  1467 + let operationPositionAPI = (params = {}) => vm.$u.put(`/hro/recruit/v1/yxly/tenant/positions/${params.id}/action`, params).then(res => {
  1468 + if (res.code >= 300) {
  1469 + uni.$u.toast(res.message);
  1470 + } else {
  1471 + return res
  1472 + }
  1473 + });
  1474 +
  1475 + //B端-放弃订单
  1476 + let giveUpOrderAPI = (params = {}) => vm.$u.delete(`/hro/recruit/v1/yxly/tenant/entrust/abandon/${params.id}`, params).then(res => {
  1477 + if (res.code >= 300) {
  1478 + uni.$u.toast(res.message);
  1479 + } else {
  1480 + return res
  1481 + }
  1482 + });
  1483 +
  1484 + //B端-标记不合格,面试不合格,放弃入职
  1485 + let signUnqualifiedAPI = (params = {}) => vm.$u.put(`/hro/recruit/v1/yxly/tenant/candidates/${params.id}/op/abnormal-action`, params).then(res => {
  1486 + if (res.code >= 300) {
  1487 + uni.$u.toast(res.message);
  1488 + } else {
  1489 + return res
  1490 + }
  1491 + });
  1492 +
  1493 + //B端-邀请面试
  1494 + let inviteInterviewAPI = (params = {}) => vm.$u.post(`/hro/recruit/v1/yxly/tenant/candidates/${params.id}/op/interview`, params).then(res => {
  1495 + if (res.code >= 300) {
  1496 + uni.$u.toast(res.message);
  1497 + } else {
  1498 + return res
  1499 + }
  1500 + });
  1501 +
  1502 + //B端-面试通过
  1503 + let passInterviewAPI = (params = {}) => vm.$u.post(`/hro/recruit/v1/yxly/tenant/candidates/${params.id}/op/onboard`, params).then(res => {
  1504 + if (res.code >= 300) {
  1505 + uni.$u.toast(res.message);
  1506 + } else {
  1507 + return res
  1508 + }
  1509 + });
  1510 +
  1511 + let signstartUrlAPI = (params = {}) => vm.$u.post(signstartUrl, params).then(res => {
  1512 + if (res.code >= 300) {
  1513 + uni.showToast({
  1514 + title: res.msg,
  1515 + icon: 'none',
  1516 + duration: 1500
  1517 + });
  1518 + } else {
  1519 + return res.data
  1520 + }
  1521 + });
  1522 +
  1523 + let looksignstartUrlAPI = (id) => vm.$u.get(looksignstartUrl + id).then(res => {
  1524 + if (res.code >= 300) {
  1525 + uni.showToast({
  1526 + title: res.msg,
  1527 + icon: 'none',
  1528 + duration: 1500
  1529 + });
  1530 + } else {
  1531 + return res.data
  1532 + }
  1533 + });
  1534 +
  1535 + let tenantentrustCheckUrlAPI = (id) => vm.$u.get(tenantentrustCheckUrl + id).then(res => {
  1536 + if (res.code >= 300) {
  1537 + uni.showToast({
  1538 + title: res.msg,
  1539 + icon: 'none',
  1540 + duration: 1500
  1541 + });
  1542 + } else {
  1543 + return res
  1544 + }
  1545 + });
  1546 +
  1547 + //B端-确认入职
  1548 + let defineInductionAPI = (params = {}) => vm.$u.post(`/hro/recruit/v1/yxly/tenant/batch/candidates/op/confirm-onboard`, params).then(res => {
  1549 + console.log(res.code >= 300)
  1550 + if (res.code >= 300) {
  1551 + uni.$u.toast(res.message);
  1552 + } else {
  1553 + return res
  1554 + }
  1555 + })
  1556 +
  1557 + //B端-hr确认入职
  1558 + let hrDefineInductionAPI = (params = {}) => vm.$u.post(`/hro/recruit/v1/yxly/tenant/candidates/${params.id}/op/entry`, params).then(res => {
  1559 + if (res.code >= 300) {
  1560 + uni.$u.toast(res.message);
  1561 + } else {
  1562 + return res
  1563 + }
  1564 + })
  1565 +
  1566 + //B端-职位详情-联系过我的记录
  1567 + let getContactsPersonAPI = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/tenant/positions/${params.id}/contact-records`, params).then(res => {
  1568 + if (res.code >= 300) {
  1569 + uni.$u.toast(res.message);
  1570 + } else {
  1571 + return res
  1572 + }
  1573 + });
  1574 +
  1575 + let entryAttachmentsSavaUrlAPI = (params = {}) => vm.$u.post(entryAttachmentsSavaUrl, params).then(res => {
  1576 + if (res.code >= 300) {
  1577 + uni.showToast({
  1578 + title: res.msg,
  1579 + icon: 'none',
  1580 + duration: 1500
  1581 + });
  1582 + } else {
  1583 + return res.data
  1584 + }
  1585 + });
  1586 +
  1587 + let putentryAttachmentsSavaUrlAPI = (id, params = {}) => vm.$u.put(putentryAttachmentsSavaUrl + id, params).then(res => {
  1588 + if (res.code >= 300) {
  1589 + uni.showToast({
  1590 + title: res.msg,
  1591 + icon: 'none',
  1592 + duration: 1500
  1593 + });
  1594 + } else {
  1595 + return res.data
  1596 + }
  1597 + });
  1598 +
  1599 + let putinternshipTimeUrlAPI = (params = {}) => vm.$u.post(putinternshipTimeUrl, params).then(res => {
  1600 + if (res.code >= 300) {
  1601 + uni.showToast({
  1602 + title: res.msg,
  1603 + icon: 'none',
  1604 + duration: 1500
  1605 + });
  1606 + } else {
  1607 + return res.data
  1608 + }
  1609 + });
  1610 +
  1611 + let postscoresaveUrlAPI = (params = {}) => vm.$u.post(scoresaveUrl, params).then(res => {
  1612 + if (res.code >= 300) {
  1613 + uni.showToast({
  1614 + title: res.msg,
  1615 + icon: 'none',
  1616 + duration: 1500
  1617 + });
  1618 + } else {
  1619 + return res.data
  1620 + }
  1621 + });
  1622 +
  1623 + let getscoredetailUrl = (id) => vm.$u.get(scoredetailUrl + id).then(res => {
  1624 + if (res.code >= 300) {
  1625 + uni.showToast({
  1626 + title: res.msg,
  1627 + icon: 'none',
  1628 + duration: 1500
  1629 + });
  1630 + } else {
  1631 + return res.data
  1632 + }
  1633 + });
  1634 +
  1635 + let putscoreappraisalAPI = (params = {}) => vm.$u.put(scoreappraisalUrl, params).then(res => {
  1636 + if (res.code >= 300) {
  1637 + uni.showToast({
  1638 + title: res.msg,
  1639 + icon: 'none',
  1640 + duration: 1500
  1641 + });
  1642 + } else {
  1643 + return res.data
  1644 + }
  1645 + });
  1646 +
  1647 + let gettemporaryKeyUrl = (params = {}) => vm.$u.get(temporaryKeyUrl, params).then(res => {
  1648 + if (res.code >= 300) {
  1649 + uni.showToast({
  1650 + title: res.msg,
  1651 + icon: 'none',
  1652 + duration: 1500
  1653 + });
  1654 + } else {
  1655 + return res.data
  1656 + }
  1657 + });
  1658 +
  1659 + let getlistevaluationProductUrl = (params = {}) => vm.$u.get(listevaluationProductUrl, params).then(res => {
  1660 + if (res.code >= 300) {
  1661 + uni.showToast({
  1662 + title: res.msg,
  1663 + icon: 'none',
  1664 + duration: 1500
  1665 + });
  1666 + } else {
  1667 + return res.data
  1668 + }
  1669 + });
  1670 +
  1671 + let getdetailevaluationProductUrl = (id, params = {}) => vm.$u.get(detailevaluationProductUrl + id, params).then(res => {
  1672 + if (res.code >= 300) {
  1673 + uni.showToast({
  1674 + title: res.msg,
  1675 + icon: 'none',
  1676 + duration: 1500
  1677 + });
  1678 + } else {
  1679 + return res.data
  1680 + }
  1681 + });
  1682 +
  1683 + let postplaceAnOrderUrl = (params = {}) => vm.$u.post(placeAnOrderUrl, params).then(res => {
  1684 + if (res.code >= 300) {
  1685 + uni.showToast({
  1686 + title: res.msg,
  1687 + icon: 'none',
  1688 + duration: 1500
  1689 + });
  1690 + } else {
  1691 + return res.data
  1692 + }
  1693 + });
  1694 +
  1695 + let getorderlistByStudentUrl = (params = {}) => vm.$u.get(orderlistByStudentUrl, params).then(res => {
  1696 + if (res.code >= 300) {
  1697 + uni.showToast({
  1698 + title: res.msg,
  1699 + icon: 'none',
  1700 + duration: 1500
  1701 + });
  1702 + } else {
  1703 + return res.data
  1704 + }
  1705 + });
  1706 +
  1707 + let getorderdetailUrl = (id, params = {}) => vm.$u.get(orderdetailUrl + id, params).then(res => {
  1708 + if (res.code >= 300) {
  1709 + uni.showToast({
  1710 + title: res.msg,
  1711 + icon: 'none',
  1712 + duration: 1500
  1713 + });
  1714 + } else {
  1715 + return res.data
  1716 + }
  1717 + });
  1718 +
  1719 + let putorderevaluateUrl = (id, params = {}) => vm.$u.put(orderevaluateUrl + id, params).then(res => {
  1720 + if (res.code >= 300) {
  1721 + uni.showToast({
  1722 + title: res.msg,
  1723 + icon: 'none',
  1724 + duration: 1500
  1725 + });
  1726 + } else {
  1727 + return res.data
  1728 + }
  1729 + });
  1730 +
  1731 + let getyxlybannersUrl = (params = {}) => vm.$u.get(yxlybannersUrl, params).then(res => {
  1732 + if (res.code >= 300) {
  1733 + uni.showToast({
  1734 + title: res.msg,
  1735 + icon: 'none',
  1736 + duration: 1500
  1737 + });
  1738 + } else {
  1739 + return res
  1740 + }
  1741 + });
  1742 +
  1743 + let getactivenoticeUrl = (params = {}) => vm.$u.post(activenoticeUrl, params).then(res => {
  1744 + if (res&&res.code >= 300) {
  1745 + uni.showToast({
  1746 + title: res.msg,
  1747 + icon: 'none',
  1748 + duration: 1500
  1749 + });
  1750 + } else {
  1751 + return res
  1752 + }
  1753 + });
  1754 +
  1755 + let getcreatedeliveryUrl = (id, params = {}) => vm.$u.post(activenoticeUrl + id, params).then(res => {
  1756 + if (res.code >= 300) {
  1757 + uni.showToast({
  1758 + title: res.msg,
  1759 + icon: 'none',
  1760 + duration: 1500
  1761 + });
  1762 + } else {
  1763 + return res
  1764 + }
  1765 + });
  1766 +
  1767 + let recruitLiveUrlUrl = (params = {}) => vm.$u.get(recruitLiveUrl, params).then(res => {
  1768 + if (res.code >= 300) {
  1769 + uni.showToast({
  1770 + title: res.msg,
  1771 + icon: 'none',
  1772 + duration: 1500
  1773 + });
  1774 + } else {
  1775 + return res.data
  1776 + }
  1777 + });
  1778 +
  1779 + let getrecruitmenttalkUrl = (id, params = {}) => vm.$u.post(recruitmenttalkUrl + id + '/op/apply', params).then(res => {
  1780 + if (res.code >= 300) {
  1781 + uni.showToast({
  1782 + title: res.msg,
  1783 + icon: 'none',
  1784 + duration: 1500
  1785 + });
  1786 + } else {
  1787 + return res.data
  1788 + }
  1789 + });
  1790 +
  1791 + let getrecruitLiveApplyUrl = (params = {}) => vm.$u.post(recruitLiveApplyUrl, params).then(res => {
  1792 + if (res.code >= 300) {
  1793 + uni.showToast({
  1794 + title: res.msg,
  1795 + icon: 'none',
  1796 + duration: 1500
  1797 + });
  1798 + } else {
  1799 + return res.data
  1800 + }
  1801 + });
  1802 +
  1803 + let getappealsaveUrl = (params = {}) => vm.$u.post(appealsaveUrl, params).then(res => {
  1804 + if (res.code >= 300) {
  1805 + uni.showToast({
  1806 + title: res.msg,
  1807 + icon: 'none',
  1808 + duration: 1500
  1809 + });
  1810 + } else {
  1811 + return res.data
  1812 + }
  1813 + });
  1814 +
  1815 + let getappealsaveMsgUrl = (params = {}) => vm.$u.get(appealsaveMsgUrl, params).then(res => {
  1816 + if (res.code >= 300) {
  1817 + uni.showToast({
  1818 + title: res.msg,
  1819 + icon: 'none',
  1820 + duration: 1500
  1821 + });
  1822 + } else {
  1823 + return res.data
  1824 + }
  1825 + });
  1826 +
  1827 + let putcancleappealUrl = (id, params = {}) => vm.$u.put(cancleappealUrl + id, params).then(res => {
  1828 + if (res.code >= 300) {
  1829 + uni.showToast({
  1830 + title: res.msg,
  1831 + icon: 'none',
  1832 + duration: 1500
  1833 + });
  1834 + } else {
  1835 + return res.data
  1836 + }
  1837 + });
  1838 +
  1839 + let getZhilianUrl = (id, params = {}) => vm.$u.get(zhilianInfoUrl + id + '/zhilian-wx-page', params).then(res => {
  1840 + if (res.code >= 300) {
  1841 + uni.showToast({
  1842 + title: res.msg,
  1843 + icon: 'none',
  1844 + duration: 1500
  1845 + });
  1846 + } else {
  1847 + return res
  1848 + }
  1849 + });
  1850 +
  1851 + let getmsginfoUrl = (params = {}) => vm.$u.get(msginfoUrl, params).then(res => {
  1852 + if (res.code >= 300) {
  1853 + uni.showToast({
  1854 + title: res.msg,
  1855 + icon: 'none',
  1856 + duration: 1500
  1857 + });
  1858 + } else {
  1859 + return res.data
  1860 + }
  1861 + });
  1862 +
  1863 + let getmsglistUrl = (params = {}) => vm.$u.get(msglistUrl, params).then(res => {
  1864 + if (res.code >= 300) {
  1865 + uni.showToast({
  1866 + title: res.msg,
  1867 + icon: 'none',
  1868 + duration: 1500
  1869 + });
  1870 + } else {
  1871 + return res.data
  1872 + }
  1873 + });
  1874 +
  1875 + let getmsgdetailUrl = (id, params = {}) => vm.$u.get(msgdetailUrl + id, params).then(res => {
  1876 + if (res.code >= 300) {
  1877 + uni.showToast({
  1878 + title: res.msg,
  1879 + icon: 'none',
  1880 + duration: 1500
  1881 + });
  1882 + } else {
  1883 + return res
  1884 + }
  1885 + });
  1886 +
  1887 + let getschoolCensusInfoUrl = (params = {}) => vm.$u.get(schoolCensusInfoUrl, params).then(res => {
  1888 + if (res.code >= 300) {
  1889 + uni.showToast({
  1890 + title: res.msg,
  1891 + icon: 'none',
  1892 + duration: 1500
  1893 + });
  1894 + } else {
  1895 + return res.data
  1896 + }
  1897 + });
  1898 +
  1899 + let getattendanceuploadUrl = (id, params = {}) => vm.$u.put(attendanceuploadUrl + id, params).then(res => {
  1900 + if (res.code >= 300) {
  1901 + uni.showToast({
  1902 + title: res.msg,
  1903 + icon: 'none',
  1904 + duration: 1500
  1905 + });
  1906 + } else {
  1907 + return res.data
  1908 + }
  1909 + });
  1910 +
  1911 + let getmonthAttendanceListUrl = (params = {}) => vm.$u.get(monthAttendanceListUrl, params).then(res => {
  1912 + if (res.code >= 300) {
  1913 + uni.showToast({
  1914 + title: res.msg,
  1915 + icon: 'none',
  1916 + duration: 1500
  1917 + });
  1918 + } else {
  1919 + return res.data
  1920 + }
  1921 + });
  1922 +
  1923 + let getCompanyStatusUrlapi = (id, params = {}) => vm.$u.get(getCompanyStatusUrl + id, params).then(res => {
  1924 + if (res.code >= 300) {
  1925 + uni.showToast({
  1926 + title: res.msg,
  1927 + icon: 'none',
  1928 + duration: 1500
  1929 + });
  1930 + } else {
  1931 + return res.data
  1932 + }
  1933 + });
  1934 +
  1935 + let marketingConfigUrlapi = (p1, p2, params = {}) => vm.$u.get(marketingConfigUrl + `${p1}/${p2}`, params).then(res => {
  1936 + if (res.code >= 300) {
  1937 + uni.showToast({
  1938 + title: res.msg,
  1939 + icon: 'none',
  1940 + duration: 1500
  1941 + });
  1942 + } else {
  1943 + return res.data
  1944 + }
  1945 + });
  1946 +
  1947 + let gettenantprofileUrlAPI = (id, params = {}) => vm.$u.get(tenantprofileUrl + id + '/' + 'profile', params).then(res => {
  1948 + if (res.code >= 300) {
  1949 + uni.showToast({
  1950 + title: res.msg,
  1951 + icon: 'none',
  1952 + duration: 1500
  1953 + });
  1954 + } else {
  1955 + return res
  1956 + }
  1957 + });
  1958 +
  1959 + // 公司详情 在招职位
  1960 + let positionsOnlinelistApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/positions`, params).then(res => {
  1961 + if (res.code >= 300) {
  1962 + uni.showToast({
  1963 + title: res.msg,
  1964 + icon: 'none',
  1965 + duration: 1500
  1966 + });
  1967 + } else {
  1968 + return res
  1969 + }
  1970 + });
  1971 +
  1972 + // 公司详情 在招职位 筛选
  1973 + let positionsOnlineDropdownlistApi = (id, params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/user/tenants/tenant/${id}/online-position-dropdown`, params).then(res => {
  1974 + if (res.code >= 300) {
  1975 + uni.showToast({
  1976 + title: res.msg,
  1977 + icon: 'none',
  1978 + duration: 1500
  1979 + });
  1980 + } else {
  1981 + return res
  1982 + }
  1983 + });
  1984 +
  1985 + // 企业收藏列表
  1986 + let tenantCollectslistApi = (params = {}) => vm.$u.get(`/hro/recruit/v1/yxly/user/tenant-collects`, params).then(res => {
  1987 + if (res.code >= 300) {
  1988 + uni.showToast({
  1989 + title: res.msg,
  1990 + icon: 'none',
  1991 + duration: 1500
  1992 + });
  1993 + } else {
  1994 + return res
  1995 + }
  1996 + });
  1997 +
  1998 +
  1999 + // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
  2000 + vm.$u.api = {
  2001 + getLoginApi,
  2002 + settingGetApi,
  2003 + getSmsCodeApi,
  2004 + delAccountApi,
  2005 + cancelDelAccountApi,
  2006 + getUserApi,
  2007 + updateUserInfoApi,
  2008 + updateUserBaseInfoApi,
  2009 + getDepartmentListApi,
  2010 + getSchoolListApi,
  2011 + getProfessionalListApi,
  2012 + getSchoolTermListApi,
  2013 + getClassListApi,
  2014 + postAuthenticationApi,
  2015 + clockInApi,
  2016 + evaluateApi,
  2017 + getEvaluateApi,
  2018 + getGradesApi,
  2019 + getRecordListApi,
  2020 + createRecordApi,
  2021 + getRecordDetailApi,
  2022 + getComentListApi,
  2023 + recordReplyApi,
  2024 + getInternshipListApi,
  2025 + getInternshipDetailApi,
  2026 + getInternshipJobsListlApi,
  2027 + getInternshipApplyUrlApi,
  2028 + putInternshipSupplementJobUrlApi,
  2029 + getPlanDetailApi,
  2030 + getTeacherjoblistApi,
  2031 + getptxgUrlApi,
  2032 + getAgreementApi,
  2033 + createAgreementApi,
  2034 + updateAgreementApi,
  2035 + getOssInit,
  2036 + getImgUrl,
  2037 + getadvSearchAPI,
  2038 + selfapplyApi,
  2039 + createReportApi,
  2040 + getReportDetailApi,
  2041 + getReportListApi,
  2042 + sendEmileAPI,
  2043 + jobDetailAPI,
  2044 + getShortUrlAPI,
  2045 + leaveRecordUrlAPI,
  2046 + leaveRecordListUrlAPI,
  2047 + leaveRecordDetailUrlAPI,
  2048 + formChangeApplyAPI,
  2049 + formChangeApplydetailUrlAPI,
  2050 + getStudentjoblistApi,
  2051 + formChangeApplyRevokeUrlAPI,
  2052 + newQuestionnaireUrlAPI,
  2053 + newQuestionnaireListUrlAPI,
  2054 + detailByStudentUrlAPI,
  2055 + graduationStatisticsRosterUrlAPI,
  2056 + questionnaireTemplateUrlAPI,
  2057 + myUserStaticsAPI,
  2058 + getCollectListUrlAPI,
  2059 + getRecordListUrlAPI,
  2060 + tenantresumesApi,
  2061 + tenantresumesUrlloginApi,
  2062 + editUserTypeApi,
  2063 + getUserTypeApi,
  2064 + getHroTokenApi,
  2065 + getTenantsListApi,
  2066 + addTenantApi,
  2067 + addTenantStaffApi,
  2068 + editTenantApi,
  2069 + getHroOssInitApi,
  2070 + getHroObjectRedirectApi,
  2071 + getHroObjectRedirectApi1,
  2072 + getTenantDetailApi,
  2073 + getCompanySearchApi,
  2074 + getCheckTenantApi,
  2075 + tenantresumesDetailApi,
  2076 + bcreatcollectUrlApi,
  2077 + isbcreatcollectUrlApi,
  2078 + cancelbcreatcollectUrlApi,
  2079 + updateResumeApi,
  2080 + getResumeDetailApi,
  2081 + resumebuypackageUrlApi,
  2082 + resumesdownloadsApi,
  2083 + resumesdownloadsApi1,
  2084 + isresumesdownloadsApi,
  2085 + poscategorylistApi,
  2086 + positionslistApi,
  2087 + positionslistloginApi,
  2088 + getJobSeekersStatisticsApi,
  2089 + getExpectListApi,
  2090 + getMyOrderListApi,
  2091 + positionsdetailApi,
  2092 + isbuyrecApi,
  2093 + isJobCollected,
  2094 + cancelJobCollectUrlApi,
  2095 + goCollectUrlApi,
  2096 + jobRecommendUrlApi,
  2097 + getRecommendListUrlAPI,
  2098 + recHisApi,
  2099 + applyJobUrlApi,
  2100 + entrustPositionsApi,
  2101 + getPostionNameListApi,
  2102 + publishPostionApi,
  2103 + getAuthUrlApi,
  2104 + isJobAppliedApi,
  2105 + yxlyinfosUrlApi,
  2106 + contactpositionAPI,
  2107 + getMyJobSeekersListApi,
  2108 + getCustomersListAPI,
  2109 + getMyPositionslistAPI,
  2110 + getMyResumelistAPI,
  2111 + getPositionCollectionlistAPI,
  2112 + getResumesCollectionlistAPI,
  2113 + getContractlistAPI,
  2114 + operationPositionAPI,
  2115 + giveUpOrderAPI,
  2116 + signUnqualifiedAPI,
  2117 + inviteInterviewAPI,
  2118 + passInterviewAPI,
  2119 + defineInductionAPI,
  2120 + hrDefineInductionAPI,
  2121 + signstartUrlAPI,
  2122 + looksignstartUrlAPI,
  2123 + tenantentrustCheckUrlAPI,
  2124 + entrustPositionsApi1,
  2125 + getContactsPersonAPI,
  2126 + entryAttachmentsSavaUrlAPI,
  2127 + putentryAttachmentsSavaUrlAPI,
  2128 + putinternshipTimeUrlAPI,
  2129 + postscoresaveUrlAPI,
  2130 + getscoredetailUrl,
  2131 + putscoreappraisalAPI,
  2132 + gettemporaryKeyUrl,
  2133 + getlistevaluationProductUrl,
  2134 + getdetailevaluationProductUrl,
  2135 + postplaceAnOrderUrl,
  2136 + getorderlistByStudentUrl,
  2137 + getorderdetailUrl,
  2138 + putorderevaluateUrl,
  2139 + getyxlybannersUrl,
  2140 + getactivenoticeUrl,
  2141 + getcreatedeliveryUrl,
  2142 + recruitLiveUrlUrl,
  2143 + getrecruitmenttalkUrl,
  2144 + getrecruitLiveApplyUrl,
  2145 + getappealsaveUrl,
  2146 + getappealsaveMsgUrl,
  2147 + putcancleappealUrl,
  2148 + getZhilianUrl,
  2149 + getmsginfoUrl,
  2150 + getmsglistUrl,
  2151 + getmsgdetailUrl,
  2152 + getschoolCensusInfoUrl,
  2153 + changeRecordApi,
  2154 + getattendanceuploadUrl,
  2155 + getmonthAttendanceListUrl,
  2156 + getCompanyStatusUrlapi,
  2157 + marketingConfigUrlapi,
  2158 + gettenantprofileUrlAPI,
  2159 + positionsOnlinelistApi,
  2160 + positionsOnlineDropdownlistApi,
  2161 + tenantCollectslistApi,
  2162 + };
  2163 +}
  2164 +
  2165 +export default {
  2166 + install
  2167 +}
  1 +// 这里的vm,就是我们在vue文件里面的this,所以我们能在这里获取vuex的变量,比如存放在里面的token
  2 +// 同时,我们也可以在此使用getApp().globalData,如果你把token放在getApp().globalData的话,也是可以使用的
  3 +const install = (Vue, vm) => {
  4 + Vue.prototype.$u.http.setConfig({
  5 + // 测试环境
  6 + // baseUrl: "http://47.110.250.177:8000",
  7 + baseUrl: "https://zfb.workai.com.cn",
  8 + // 预生产环境 没有端口
  9 + // baseUrl: "http://47.110.246.34",
  10 + // baseUrl: "https://api-isxpre.workai.com.cn",
  11 + // 线上环境
  12 + // baseUrl: "https://api-isx.workai.com.cn",
  13 + // baseUrl: "https://api.workai.com.cn",
  14 + // OSSUrl: "https://oss.workai.com.cn",
  15 + // 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data
  16 + // 设置为true后,就需要在this.$u.http.interceptor.response进行多一次的判断,请打印查看具体值
  17 + loadingText: '努力加载中~',
  18 + loadingTime: 800,
  19 + originalData: true,
  20 + // 设置自定义头部content-type
  21 + // header: {
  22 + // 'content-type': 'xxx'
  23 + // 'Authorization': 'Basic c3R1ZGVudDpFMlFCY3ZvMTFoNHg3U3ZQdWczZWR5WWcydE5hdnY1NAo='
  24 + // }
  25 + });
  26 + // 请求拦截,配置Token等参数
  27 + Vue.prototype.$u.http.interceptor.request = (config) => {
  28 +
  29 + // 引用token
  30 + // 方式一,存放在vuex的token,假设使用了uView封装的vuex方式
  31 + // 见:https://uviewui.com/components/globalVariable.html
  32 + // config.header.token = vm.token;
  33 +
  34 + // 方式二,如果没有使用uView封装的vuex方法,那么需要使用$store.state获取
  35 +
  36 + // config.header.Authorization = vm.$store.state.vuex_token;
  37 +
  38 + // 方式三,如果token放在了globalData,通过getApp().globalData获取
  39 + // config.header.token = getApp().globalData.username;
  40 +
  41 + // 方式四,如果token放在了Storage本地存储中,拦截是每次请求都执行的
  42 + // 所以哪怕您重新登录修改了Storage,下一次的请求将会是最新值
  43 + // const token = uni.getStorageSync('token');
  44 + // config.header.token = token;
  45 + // config.header.Token = 'xxxxxx';
  46 +
  47 + // console.log('123123123',Vue.prototype.$u.http.config)
  48 +
  49 + // 可以对某个url进行特别处理,此url参数为this.$u.get(url)中的url值
  50 + if (config.url.indexOf(`/hro/`) != -1) {
  51 + let url = config.url;
  52 + let pathArr = url.split('/hro/');
  53 +
  54 + if (Vue.prototype.$u.http.config.baseUrl == 'https://zfb.workai.com.cn') {
  55 + config.url = 'https://zfb.workai.com.cn/' + pathArr[1];
  56 + } else {
  57 + config.url = 'https://api.workai.com.cn/' + pathArr[1];
  58 + }
  59 + config.header.Authorization = vm.$store.state.vuex_token;
  60 + } else {
  61 + config.header.Authorization = vm.$store.state.vuex_token;
  62 +
  63 + // if (config.url == '/auth/v1/login') config.header.Authorization = "Basic d29ya2FpOjEyMzQ1Ng==";
  64 + if ((config.url == '/auth/v1/login') || (config.url.indexOf(`/user/v1/wechat/code`) != -1)) {
  65 + config.header.Authorization = "Basic c3R1ZGVudDpFMlFCY3ZvMTFoNHg3U3ZQdWczZWR5WWcydE5hdnY1NAo=";
  66 + }
  67 +
  68 + if (config.url.indexOf(`/user/v1/userIdentity/`) != -1) {
  69 + config.header.Authorization = "Basic c3R1ZGVudDpFMlFCY3ZvMTFoNHg3U3ZQdWczZWR5WWcydE5hdnY1NAo=";
  70 + }
  71 + }
  72 +
  73 + config.header['Wx-App-Id'] = vm.$store.state.vuex_appId;
  74 +
  75 + // 最后需要将config进行return
  76 + return config;
  77 + // 如果return一个false值,则会取消本次请求
  78 + // if(config.url == '/user/rest') return false; // 取消某次请求
  79 +
  80 + }
  81 + // 响应拦截,判断状态码是否通过
  82 + Vue.prototype.$u.http.interceptor.response = (res) => {
  83 + if (res.statusCode == 200) {
  84 + // res为服务端返回值,可能有code,result等字段
  85 + // 这里对res.result进行返回,将会在this.$u.post(url).then(res => {})的then回调中的res的到
  86 + // 如果配置了originalData为true,请留意这里的返回值
  87 +
  88 + return res.data;
  89 + } else if (res.statusCode == 401) {
  90 + console.log('res--', res)
  91 + // 假设201为token失效,这里跳转登录
  92 + // vm.$u.toast('登录失效,请重新登录!');
  93 +
  94 + uni.$u.vuex('vuex_user', {});
  95 + uni.$u.vuex('vuex_tenant', {});
  96 + uni.$u.vuex('vuex_token', '');
  97 + uni.$u.vuex('vuex_userid', '');
  98 + // uni.setStorageSync('lifeData', {});
  99 +
  100 + return false;
  101 +
  102 + } else {
  103 + // 如果返回false,则会调用Promise的reject回调,
  104 + // 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中,res为服务端的返回值
  105 + return res.data;
  106 + }
  107 + }
  108 +}
  109 +
  110 +export default {
  111 + install
  112 +}
  1 +module.exports = {
  2 + list: [{
  3 + "letter": "A",
  4 + "data": [{
  5 + "name": "阿拉斯加",
  6 + "mobile": "13588889999",
  7 + "keyword": "阿拉斯加ABA13588889999"
  8 + },
  9 + {
  10 + "name": "阿克苏",
  11 + "mobile": "0551-4386721",
  12 + "keyword": "阿克苏AKESU0551-4386721"
  13 + },
  14 + {
  15 + "name": "阿拉善",
  16 + "mobile": "4008009100",
  17 + "keyword": "阿拉善ALASHAN4008009100"
  18 + },
  19 + {
  20 + "name": "阿勒泰",
  21 + "mobile": "13588889999",
  22 + "keyword": "阿勒泰ALETAI13588889999"
  23 + },
  24 + {
  25 + "name": "阿里",
  26 + "mobile": "13588889999",
  27 + "keyword": "阿里ALI13588889999"
  28 + },
  29 + {
  30 + "name": "安阳",
  31 + "mobile": "13588889999",
  32 + "keyword": "13588889999安阳ANYANG"
  33 + }
  34 + ]
  35 + },
  36 + {
  37 + "letter": "B",
  38 + "data": [{
  39 + "name": "白城",
  40 + "mobile": "该主子没有留电话~",
  41 + "keyword": "白城BAICHENG"
  42 + },
  43 + {
  44 + "name": "白山",
  45 + "mobile": "13588889999",
  46 + "keyword": "白山BAISHAN13588889999"
  47 + },
  48 + {
  49 + "name": "白银",
  50 + "mobile": "13588889999",
  51 + "keyword": "白银BAIYIN13588889999"
  52 + },
  53 + {
  54 + "name": "保定",
  55 + "mobile": "13588889999",
  56 + "keyword": "保定BAODING13588889999"
  57 + }
  58 + ]
  59 + },
  60 + {
  61 + "letter": "C",
  62 + "data": [{
  63 + "name": "沧州",
  64 + "mobile": "13588889999",
  65 + "keyword": "沧州CANGZHOU13588889999"
  66 + },
  67 + {
  68 + "name": "长春",
  69 + "mobile": "13588889999",
  70 + "keyword": "长春CHANGCHUN13588889999"
  71 + }
  72 + ]
  73 + },
  74 + {
  75 + "letter": "D",
  76 + "data": [{
  77 + "name": "大理",
  78 + "mobile": "13588889999",
  79 + "keyword": "大理DALI13588889999"
  80 + },
  81 + {
  82 + "name": "大连",
  83 + "mobile": "13588889999",
  84 + "keyword": "大连DALIAN13588889999"
  85 + }
  86 + ]
  87 + },
  88 + {
  89 + "letter": "E",
  90 + "data": [{
  91 + "name": "鄂尔多斯",
  92 + "mobile": "13588889999",
  93 + "keyword": "鄂尔多斯EERDUOSI13588889999"
  94 + },
  95 + {
  96 + "name": "恩施",
  97 + "mobile": "13588889999",
  98 + "keyword": "恩施ENSHI13588889999"
  99 + },
  100 + {
  101 + "name": "鄂州",
  102 + "mobile": "13588889999",
  103 + "keyword": "鄂州EZHOU13588889999"
  104 + }
  105 + ]
  106 + },
  107 + {
  108 + "letter": "F",
  109 + "data": [{
  110 + "name": "防城港",
  111 + "mobile": "该主子没有留电话~",
  112 + "keyword": "防城港FANGCHENGGANG"
  113 + },
  114 + {
  115 + "name": "抚顺",
  116 + "mobile": "13588889999",
  117 + "keyword": "抚顺FUSHUN13588889999"
  118 + },
  119 + {
  120 + "name": "阜新",
  121 + "mobile": "13588889999",
  122 + "keyword": "阜新FUXIN13588889999"
  123 + },
  124 + {
  125 + "name": "阜阳",
  126 + "mobile": "13588889999",
  127 + "keyword": "阜阳FUYANG13588889999"
  128 + },
  129 + {
  130 + "name": "抚州",
  131 + "mobile": "13588889999",
  132 + "keyword": "抚州FUZHOU13588889999"
  133 + },
  134 + {
  135 + "name": "福州",
  136 + "mobile": "13588889999",
  137 + "keyword": "福州FUZHOU13588889999"
  138 + }
  139 + ]
  140 + },
  141 + {
  142 + "letter": "G",
  143 + "data": [{
  144 + "name": "甘南",
  145 + "mobile": "13588889999",
  146 + "keyword": "甘南GANNAN13588889999"
  147 + },
  148 + {
  149 + "name": "赣州",
  150 + "mobile": "13588889999",
  151 + "keyword": "赣州GANZHOU13588889999"
  152 + },
  153 + {
  154 + "name": "甘孜",
  155 + "mobile": "13588889999",
  156 + "keyword": "甘孜GANZI13588889999"
  157 + }
  158 + ]
  159 + },
  160 + {
  161 + "letter": "H",
  162 + "data": [{
  163 + "name": "哈尔滨",
  164 + "mobile": "13588889999",
  165 + "keyword": "哈尔滨HAERBIN13588889999"
  166 + },
  167 + {
  168 + "name": "海北",
  169 + "mobile": "13588889999",
  170 + "keyword": "海北HAIBEI13588889999"
  171 + },
  172 + {
  173 + "name": "海东",
  174 + "mobile": "13588889999",
  175 + "keyword": "海东HAIDONG13588889999"
  176 + },
  177 + {
  178 + "name": "海口",
  179 + "mobile": "13588889999",
  180 + "keyword": "海口HAIKOU13588889999"
  181 + }
  182 + ]
  183 + },
  184 + {
  185 + "letter": "I",
  186 + "data": [{
  187 + "name": "ice",
  188 + "mobile": "13588889999",
  189 + "keyword": "佳木斯JIAMUSI13588889999"
  190 + }]
  191 + },
  192 + {
  193 + "letter": "J",
  194 + "data": [{
  195 + "name": "佳木斯",
  196 + "mobile": "13588889999",
  197 + "keyword": "佳木斯JIAMUSI13588889999"
  198 + },
  199 + {
  200 + "name": "吉安",
  201 + "mobile": "13588889999",
  202 + "keyword": "吉安JIAN13588889999"
  203 + },
  204 + {
  205 + "name": "江门",
  206 + "mobile": "13588889999",
  207 + "keyword": "江门JIANGMEN13588889999"
  208 + }
  209 + ]
  210 + },
  211 + {
  212 + "letter": "K",
  213 + "data": [{
  214 + "name": "开封",
  215 + "mobile": "13588889999",
  216 + "keyword": "开封KAIFENG13588889999"
  217 + },
  218 + {
  219 + "name": "喀什",
  220 + "mobile": "13588889999",
  221 + "keyword": "喀什KASHI13588889999"
  222 + },
  223 + {
  224 + "name": "克拉玛依",
  225 + "mobile": "13588889999",
  226 + "keyword": "克拉玛依KELAMAYI13588889999"
  227 + }
  228 + ]
  229 + },
  230 + {
  231 + "letter": "L",
  232 + "data": [{
  233 + "name": "来宾",
  234 + "mobile": "13588889999",
  235 + "keyword": "来宾LAIBIN13588889999"
  236 + },
  237 + {
  238 + "name": "兰州",
  239 + "mobile": "13588889999",
  240 + "keyword": "兰州LANZHOU13588889999"
  241 + },
  242 + {
  243 + "name": "拉萨",
  244 + "mobile": "13588889999",
  245 + "keyword": "拉萨LASA13588889999"
  246 + },
  247 + {
  248 + "name": "乐山",
  249 + "mobile": "13588889999",
  250 + "keyword": "乐山LESHAN13588889999"
  251 + },
  252 + {
  253 + "name": "凉山",
  254 + "mobile": "13588889999",
  255 + "keyword": "凉山LIANGSHAN13588889999"
  256 + },
  257 + {
  258 + "name": "连云港",
  259 + "mobile": "13588889999",
  260 + "keyword": "连云港LIANYUNGANG13588889999"
  261 + },
  262 + {
  263 + "name": "聊城",
  264 + "mobile": "18322223333",
  265 + "keyword": "聊城LIAOCHENG18322223333"
  266 + },
  267 + {
  268 + "name": "辽阳",
  269 + "mobile": "18322223333",
  270 + "keyword": "辽阳LIAOYANG18322223333"
  271 + },
  272 + {
  273 + "name": "辽源",
  274 + "mobile": "18322223333",
  275 + "keyword": "辽源LIAOYUAN18322223333"
  276 + },
  277 + {
  278 + "name": "丽江",
  279 + "mobile": "18322223333",
  280 + "keyword": "丽江LIJIANG18322223333"
  281 + },
  282 + {
  283 + "name": "临沧",
  284 + "mobile": "18322223333",
  285 + "keyword": "临沧LINCANG18322223333"
  286 + },
  287 + {
  288 + "name": "临汾",
  289 + "mobile": "18322223333",
  290 + "keyword": "临汾LINFEN18322223333"
  291 + },
  292 + {
  293 + "name": "临夏",
  294 + "mobile": "18322223333",
  295 + "keyword": "临夏LINXIA18322223333"
  296 + },
  297 + {
  298 + "name": "临沂",
  299 + "mobile": "18322223333",
  300 + "keyword": "临沂LINYI18322223333"
  301 + },
  302 + {
  303 + "name": "林芝",
  304 + "mobile": "18322223333",
  305 + "keyword": "林芝LINZHI18322223333"
  306 + },
  307 + {
  308 + "name": "丽水",
  309 + "mobile": "18322223333",
  310 + "keyword": "丽水LISHUI18322223333"
  311 + }
  312 + ]
  313 + },
  314 + {
  315 + "letter": "M",
  316 + "data": [{
  317 + "name": "眉山",
  318 + "mobile": "15544448888",
  319 + "keyword": "眉山MEISHAN15544448888"
  320 + },
  321 + {
  322 + "name": "梅州",
  323 + "mobile": "15544448888",
  324 + "keyword": "梅州MEIZHOU15544448888"
  325 + },
  326 + {
  327 + "name": "绵阳",
  328 + "mobile": "15544448888",
  329 + "keyword": "绵阳MIANYANG15544448888"
  330 + },
  331 + {
  332 + "name": "牡丹江",
  333 + "mobile": "15544448888",
  334 + "keyword": "牡丹江MUDANJIANG15544448888"
  335 + }
  336 + ]
  337 + },
  338 + {
  339 + "letter": "N",
  340 + "data": [{
  341 + "name": "南昌",
  342 + "mobile": "15544448888",
  343 + "keyword": "南昌NANCHANG15544448888"
  344 + },
  345 + {
  346 + "name": "南充",
  347 + "mobile": "15544448888",
  348 + "keyword": "南充NANCHONG15544448888"
  349 + },
  350 + {
  351 + "name": "南京",
  352 + "mobile": "15544448888",
  353 + "keyword": "南京NANJING15544448888"
  354 + },
  355 + {
  356 + "name": "南宁",
  357 + "mobile": "15544448888",
  358 + "keyword": "南宁NANNING15544448888"
  359 + },
  360 + {
  361 + "name": "南平",
  362 + "mobile": "15544448888",
  363 + "keyword": "南平NANPING15544448888"
  364 + }
  365 + ]
  366 + },
  367 + {
  368 + "letter": "O",
  369 + "data": [{
  370 + "name": "欧阳",
  371 + "mobile": "15544448888",
  372 + "keyword": "欧阳ouyang15544448888"
  373 + }]
  374 + },
  375 + {
  376 + "letter": "P",
  377 + "data": [{
  378 + "name": "盘锦",
  379 + "mobile": "15544448888",
  380 + "keyword": "盘锦PANJIN15544448888"
  381 + },
  382 + {
  383 + "name": "攀枝花",
  384 + "mobile": "15544448888",
  385 + "keyword": "攀枝花PANZHIHUA15544448888"
  386 + },
  387 + {
  388 + "name": "平顶山",
  389 + "mobile": "15544448888",
  390 + "keyword": "平顶山PINGDINGSHAN15544448888"
  391 + },
  392 + {
  393 + "name": "平凉",
  394 + "mobile": "15544448888",
  395 + "keyword": "平凉PINGLIANG15544448888"
  396 + },
  397 + {
  398 + "name": "萍乡",
  399 + "mobile": "15544448888",
  400 + "keyword": "萍乡PINGXIANG15544448888"
  401 + },
  402 + {
  403 + "name": "普洱",
  404 + "mobile": "15544448888",
  405 + "keyword": "普洱PUER15544448888"
  406 + },
  407 + {
  408 + "name": "莆田",
  409 + "mobile": "15544448888",
  410 + "keyword": "莆田PUTIAN15544448888"
  411 + },
  412 + {
  413 + "name": "濮阳",
  414 + "mobile": "15544448888",
  415 + "keyword": "濮阳PUYANG15544448888"
  416 + }
  417 + ]
  418 + },
  419 + {
  420 + "letter": "Q",
  421 + "data": [{
  422 + "name": "黔东南",
  423 + "mobile": "15544448888",
  424 + "keyword": "黔东南QIANDONGNAN15544448888"
  425 + },
  426 + {
  427 + "name": "黔南",
  428 + "mobile": "15544448888",
  429 + "keyword": "黔南QIANNAN15544448888"
  430 + },
  431 + {
  432 + "name": "黔西南",
  433 + "mobile": "15544448888",
  434 + "keyword": "黔西南QIANXINAN15544448888"
  435 + }
  436 + ]
  437 + },
  438 + {
  439 + "letter": "R",
  440 + "data": [{
  441 + "name": "日喀则",
  442 + "mobile": "15544448888",
  443 + "keyword": "日喀则RIKAZE15544448888"
  444 + },
  445 + {
  446 + "name": "日照",
  447 + "mobile": "15544448888",
  448 + "keyword": "日照RIZHAO15544448888"
  449 + }
  450 + ]
  451 + },
  452 + {
  453 + "letter": "S",
  454 + "data": [{
  455 + "name": "三门峡",
  456 + "mobile": "15544448888",
  457 + "keyword": "三门峡SANMENXIA15544448888"
  458 + },
  459 + {
  460 + "name": "三明",
  461 + "mobile": "15544448888",
  462 + "keyword": "三明SANMING15544448888"
  463 + },
  464 + {
  465 + "name": "三沙",
  466 + "mobile": "15544448888",
  467 + "keyword": "三沙SANSHA15544448888"
  468 + }
  469 + ]
  470 + },
  471 + {
  472 + "letter": "T",
  473 + "data": [{
  474 + "name": "塔城",
  475 + "mobile": "15544448888",
  476 + "keyword": "塔城TACHENG15544448888"
  477 + },
  478 + {
  479 + "name": "漯河",
  480 + "mobile": "15544448888",
  481 + "keyword": "漯河TAHE15544448888"
  482 + },
  483 + {
  484 + "name": "泰安",
  485 + "mobile": "15544448888",
  486 + "keyword": "泰安TAIAN15544448888"
  487 + }
  488 + ]
  489 + },
  490 + {
  491 + "letter": "W",
  492 + "data": [{
  493 + "name": "潍坊",
  494 + "mobile": "15544448888",
  495 + "keyword": "潍坊WEIFANG15544448888"
  496 + },
  497 + {
  498 + "name": "威海",
  499 + "mobile": "15544448888",
  500 + "keyword": "威海WEIHAI15544448888"
  501 + },
  502 + {
  503 + "name": "渭南",
  504 + "mobile": "15544448888",
  505 + "keyword": "渭南WEINAN15544448888"
  506 + },
  507 + {
  508 + "name": "文山",
  509 + "mobile": "15544448888",
  510 + "keyword": "文山WENSHAN15544448888"
  511 + }
  512 + ]
  513 + },
  514 + {
  515 + "letter": "X",
  516 + "data": [{
  517 + "name": "厦门",
  518 + "mobile": "15544448888",
  519 + "keyword": "厦门XIAMEN15544448888"
  520 + },
  521 + {
  522 + "name": "西安",
  523 + "mobile": "15544448888",
  524 + "keyword": "西安XIAN15544448888"
  525 + },
  526 + {
  527 + "name": "湘潭",
  528 + "mobile": "15544448888",
  529 + "keyword": "湘潭XIANGTAN15544448888"
  530 + }
  531 + ]
  532 + },
  533 + {
  534 + "letter": "Y",
  535 + "data": [{
  536 + "name": "雅安",
  537 + "mobile": "15544448888",
  538 + "keyword": "雅安YAAN15544448888"
  539 + },
  540 + {
  541 + "name": "延安",
  542 + "mobile": "15544448888",
  543 + "keyword": "延安YANAN15544448888"
  544 + },
  545 + {
  546 + "name": "延边",
  547 + "mobile": "15544448888",
  548 + "keyword": "延边YANBIAN15544448888"
  549 + },
  550 + {
  551 + "name": "盐城",
  552 + "mobile": "15544448888",
  553 + "keyword": "盐城YANCHENG15544448888"
  554 + }
  555 + ]
  556 + },
  557 + {
  558 + "letter": "Z",
  559 + "data": [{
  560 + "name": "枣庄",
  561 + "mobile": "15544448888",
  562 + "keyword": "枣庄ZAOZHUANG15544448888"
  563 + },
  564 + {
  565 + "name": "张家界",
  566 + "mobile": "15544448888",
  567 + "keyword": "张家界ZHANGJIAJIE15544448888"
  568 + },
  569 + {
  570 + "name": "张家口",
  571 + "mobile": "15544448888",
  572 + "keyword": "张家口ZHANGJIAKOU15544448888"
  573 + }
  574 + ]
  575 + },
  576 + {
  577 + "letter": "#",
  578 + "data": [{
  579 + "name": "其他.",
  580 + "mobile": "16666666666",
  581 + "keyword": "echo16666666666"
  582 + }]
  583 + }
  584 + ]
  585 +}
  1 +export default {
  2 + // 可以以页面为单位来写,比如首页的内容,写在index字段,个人中心写在center,共同部分写在common部分
  3 + components: {
  4 + desc: 'Numerous components cover the various requirements of the development process, and the components are rich in functions and compatible with multiple terminals. Let you integrate quickly, out of the box'
  5 + },
  6 + js: {
  7 + desc: 'Numerous intimate gadgets are a weapon that you can call upon during the development process, allowing you to dart in your hand and pierce the Yang with a hundred steps'
  8 + },
  9 + template: {
  10 + desc: 'Collection of many commonly used pages and layouts, reducing the repetitive work of developers, allowing you to focus on logic and get twice the result with half the effort'
  11 + },
  12 + nav: {
  13 + components: 'Components',
  14 + js: 'JS',
  15 + template: 'Template'
  16 + },
  17 + common: {
  18 + intro: 'UI framework for rapid development of multiple platforms',
  19 + title: 'uView UI',
  20 + },
  21 +}
  1 +export default {
  2 + // 可以以页面为单位来写,比如首页的内容,写在index字段,个人中心写在center,共同部分写在common部分
  3 + components: {
  4 + desc: '众多组件覆盖开发过程的各个需求,组件功能丰富,多端兼容。让你快速集成,开箱即用'
  5 + },
  6 + js: {
  7 + desc: '众多的贴心小工具,是你开发过程中召之即来的利器,让你飞镖在手,百步穿杨'
  8 + },
  9 + template: {
  10 + desc: '收集众多的常用页面和布局,减少开发者的重复工作,让你专注逻辑,事半功倍'
  11 + },
  12 + nav: {
  13 + components: '组件',
  14 + js: '工具',
  15 + template: '模板'
  16 + },
  17 + common: {
  18 + intro: '多平台快速开发的UI框架',
  19 + title: 'uView UI',
  20 + },
  21 +}
  1 +/*
  2 + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
  3 + * Digest Algorithm, as defined in RFC 1321.
  4 + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
  5 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
  6 + * Distributed under the BSD License
  7 + * See http://pajhome.org.uk/crypt/md5 for more info.
  8 + */
  9 +
  10 +/*
  11 + * Configurable variables. You may need to tweak these to be compatible with
  12 + * the server-side, but the defaults work in most cases.
  13 + */
  14 +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
  15 +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
  16 +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
  17 +
  18 +/*
  19 + * These are the functions you'll usually want to call
  20 + * They take string arguments and return either hex or base-64 encoded strings
  21 + */
  22 +function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
  23 +function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
  24 +function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
  25 +function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
  26 +function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
  27 +function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
  28 +
  29 +/*
  30 + * Perform a simple self-test to see if the VM is working
  31 + */
  32 +function md5_vm_test()
  33 +{
  34 + return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  35 +}
  36 +
  37 +/*
  38 + * Calculate the MD5 of an array of little-endian words, and a bit length
  39 + */
  40 +function core_md5(x, len)
  41 +{
  42 + /* append padding */
  43 + x[len >> 5] |= 0x80 << ((len) % 32);
  44 + x[(((len + 64) >>> 9) << 4) + 14] = len;
  45 +
  46 + var a = 1732584193;
  47 + var b = -271733879;
  48 + var c = -1732584194;
  49 + var d = 271733878;
  50 +
  51 + for(var i = 0; i < x.length; i += 16)
  52 + {
  53 + var olda = a;
  54 + var oldb = b;
  55 + var oldc = c;
  56 + var oldd = d;
  57 +
  58 + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
  59 + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
  60 + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
  61 + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
  62 + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
  63 + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
  64 + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
  65 + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
  66 + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
  67 + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
  68 + c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
  69 + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
  70 + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
  71 + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
  72 + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
  73 + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
  74 +
  75 + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
  76 + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
  77 + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
  78 + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
  79 + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
  80 + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
  81 + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
  82 + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
  83 + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
  84 + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
  85 + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
  86 + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
  87 + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
  88 + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
  89 + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
  90 + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
  91 +
  92 + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
  93 + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
  94 + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
  95 + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
  96 + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
  97 + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
  98 + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
  99 + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
  100 + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
  101 + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
  102 + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
  103 + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
  104 + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
  105 + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
  106 + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
  107 + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
  108 +
  109 + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
  110 + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
  111 + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
  112 + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
  113 + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
  114 + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
  115 + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
  116 + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
  117 + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
  118 + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
  119 + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
  120 + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
  121 + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
  122 + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
  123 + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
  124 + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
  125 +
  126 + a = safe_add(a, olda);
  127 + b = safe_add(b, oldb);
  128 + c = safe_add(c, oldc);
  129 + d = safe_add(d, oldd);
  130 + }
  131 + return Array(a, b, c, d);
  132 +
  133 +}
  134 +
  135 +/*
  136 + * These functions implement the four basic operations the algorithm uses.
  137 + */
  138 +function md5_cmn(q, a, b, x, s, t)
  139 +{
  140 + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
  141 +}
  142 +function md5_ff(a, b, c, d, x, s, t)
  143 +{
  144 + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
  145 +}
  146 +function md5_gg(a, b, c, d, x, s, t)
  147 +{
  148 + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
  149 +}
  150 +function md5_hh(a, b, c, d, x, s, t)
  151 +{
  152 + return md5_cmn(b ^ c ^ d, a, b, x, s, t);
  153 +}
  154 +function md5_ii(a, b, c, d, x, s, t)
  155 +{
  156 + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
  157 +}
  158 +
  159 +/*
  160 + * Calculate the HMAC-MD5, of a key and some data
  161 + */
  162 +function core_hmac_md5(key, data)
  163 +{
  164 + var bkey = str2binl(key);
  165 + if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
  166 +
  167 + var ipad = Array(16), opad = Array(16);
  168 + for(var i = 0; i < 16; i++)
  169 + {
  170 + ipad[i] = bkey[i] ^ 0x36363636;
  171 + opad[i] = bkey[i] ^ 0x5C5C5C5C;
  172 + }
  173 +
  174 + var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  175 + return core_md5(opad.concat(hash), 512 + 128);
  176 +}
  177 +
  178 +/*
  179 + * Add integers, wrapping at 2^32. This uses 16-bit operations internally
  180 + * to work around bugs in some JS interpreters.
  181 + */
  182 +function safe_add(x, y)
  183 +{
  184 + var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  185 + var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  186 + return (msw << 16) | (lsw & 0xFFFF);
  187 +}
  188 +
  189 +/*
  190 + * Bitwise rotate a 32-bit number to the left.
  191 + */
  192 +function bit_rol(num, cnt)
  193 +{
  194 + return (num << cnt) | (num >>> (32 - cnt));
  195 +}
  196 +
  197 +/*
  198 + * Convert a string to an array of little-endian words
  199 + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
  200 + */
  201 +function str2binl(str)
  202 +{
  203 + var bin = Array();
  204 + var mask = (1 << chrsz) - 1;
  205 + for(var i = 0; i < str.length * chrsz; i += chrsz)
  206 + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  207 + return bin;
  208 +}
  209 +
  210 +/*
  211 + * Convert an array of little-endian words to a string
  212 + */
  213 +function binl2str(bin)
  214 +{
  215 + var str = "";
  216 + var mask = (1 << chrsz) - 1;
  217 + for(var i = 0; i < bin.length * 32; i += chrsz)
  218 + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
  219 + return str;
  220 +}
  221 +
  222 +/*
  223 + * Convert an array of little-endian words to a hex string.
  224 + */
  225 +function binl2hex(binarray)
  226 +{
  227 + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  228 + var str = "";
  229 + for(var i = 0; i < binarray.length * 4; i++)
  230 + {
  231 + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
  232 + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
  233 + }
  234 + return str;
  235 +}
  236 +
  237 +/*
  238 + * Convert an array of little-endian words to a base-64 string
  239 + */
  240 +function binl2b64(binarray)
  241 +{
  242 + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  243 + var str = "";
  244 + for(var i = 0; i < binarray.length * 4; i += 3)
  245 + {
  246 + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
  247 + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
  248 + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
  249 + for(var j = 0; j < 4; j++)
  250 + {
  251 + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
  252 + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
  253 + }
  254 + }
  255 + return str;
  256 +}
  257 +
  258 +module.exports = {
  259 + hex_md5
  260 +}
  1 +/**
  2 + * uni-app上拉加载和下拉刷新混合(支持搜索功能)
  3 + * @author maybe
  4 + */
  5 +
  6 +export default {
  7 + data() {
  8 + return {
  9 + loading: 'loadmore', // 是否加载数据
  10 + finished: false, // 是否加载完成
  11 + list: [], // 数据列表
  12 + page: 0, // 由于分页一般页面要+1,所以为了方便分页查询,这里初始设置页码为0
  13 + size: 5, // 每页显示的条数
  14 + total: 0, // 数据总条数
  15 + search: {}, // 搜索对象
  16 + tempSearch: {} // 提供给混合初始化搜索对象
  17 + };
  18 + },
  19 + async onLoad(option) {
  20 + // 拷贝搜索初始化对象属性和数据
  21 + this.tempSearch = _deepClone(this.search);
  22 + // 查询列表
  23 + // await this._getListFactory();
  24 + },
  25 +
  26 + async onShow(option) {
  27 +
  28 + },
  29 +
  30 + // 下拉刷新
  31 + async onPullDownRefresh() {
  32 + console.log('下拉刷新');
  33 + this._initPageData();
  34 + this._resetSearch();
  35 + await this._getListFactory();
  36 + uni.stopPullDownRefresh();
  37 + },
  38 + // 上拉加载
  39 + async onReachBottom() {
  40 + console.log('上拉加载');
  41 + this._getListFactory();
  42 + },
  43 + // 所有混合的方法均已'_'开头
  44 + methods: {
  45 + async _searchData() {
  46 + this._initPageData();
  47 + await this._getListFactory();
  48 + },
  49 + // 重置搜索
  50 + _resetSearch() {
  51 + this.search = _deepClone(this.tempSearch)
  52 + // console.log('重置搜索完成', this.search)
  53 + },
  54 + // 初始化页面的数据
  55 + _initPageData(size) {
  56 + this.finished = false;
  57 + this.page = 0;
  58 + this.list = [];
  59 + this.size = size || 10;
  60 + this.total = 0;
  61 + },
  62 + async _getListFactory() {
  63 + // 如果已经全部加载完成直接终止执行
  64 + if (this.finished) return;
  65 + this.loading = 'loading';
  66 + this.page++;
  67 +
  68 + await this._getList();
  69 +
  70 + console.log('判断是否全部加载完成判断是否全部加载完成',this.list.length,this.total)
  71 +
  72 + // 判断是否全部加载完成
  73 + if (this.total == this.list.length) {
  74 + this.finished = true;
  75 + this.loading = 'nomore';
  76 + } else {
  77 + this.loading = 'loadmore';
  78 + }
  79 + },
  80 + // 数据请求方法需要在页面内重写
  81 + async _getList() {}
  82 + }
  83 +}
  84 +// 深拷贝
  85 +const _deepClone = (source) => {
  86 + let target;
  87 + if (typeof source === 'object') {
  88 + target = Array.isArray(source) ? [] : {}
  89 + for (let key in source) {
  90 + if (source.hasOwnProperty(key)) {
  91 + if (typeof source[key] !== 'object') {
  92 + target[key] = source[key]
  93 + } else {
  94 + target[key] = _deepClone(source[key])
  95 + }
  96 + }
  97 + }
  98 + } else {
  99 + target = source
  100 + }
  101 + return target
  102 +};
  1 +//民族
  2 +const nation = [{
  3 + label: '汉族',
  4 + value: '汉族'
  5 + },
  6 + {
  7 + label: '回族',
  8 + value: '回族'
  9 + },
  10 + {
  11 + label: '蒙古族',
  12 + value: '蒙古族'
  13 + },
  14 + {
  15 + label: '藏族',
  16 + value: '藏族'
  17 + },
  18 + {
  19 + label: '维吾尔族',
  20 + value: '维吾尔族'
  21 + },
  22 + {
  23 + label: '苗族',
  24 + value: '苗族'
  25 + },
  26 + {
  27 + label: '彝族',
  28 + value: '彝族'
  29 + },
  30 + {
  31 + label: '壮族',
  32 + value: '壮族'
  33 + },
  34 + {
  35 + label: '布依族',
  36 + value: '布依族'
  37 + },
  38 + {
  39 + label: '朝鲜族',
  40 + value: '朝鲜族'
  41 + },
  42 + {
  43 + label: '满族',
  44 + value: '满族'
  45 + },
  46 + {
  47 + label: '侗族',
  48 + value: '侗族'
  49 + },
  50 + {
  51 + label: '瑶族',
  52 + value: '瑶族'
  53 + },
  54 + {
  55 + label: '白族',
  56 + value: '白族'
  57 + },
  58 + {
  59 + label: '土家族',
  60 + value: '土家族'
  61 + },
  62 + {
  63 + label: '哈尼族',
  64 + value: '哈尼族'
  65 + },
  66 + {
  67 + label: '哈萨克族',
  68 + value: '哈萨克族'
  69 + },
  70 + {
  71 + label: '傣族',
  72 + value: '傣族'
  73 + },
  74 + {
  75 + label: '黎族',
  76 + value: '黎族'
  77 + },
  78 + {
  79 + label: '傈僳族',
  80 + value: '傈僳族'
  81 + },
  82 + {
  83 + label: '佤族',
  84 + value: '佤族'
  85 + },
  86 + {
  87 + label: '畲族',
  88 + value: '畲族'
  89 + },
  90 + {
  91 + label: '高山族',
  92 + value: '高山族'
  93 + },
  94 + {
  95 + label: '拉祜族',
  96 + value: '拉祜族'
  97 + },
  98 + {
  99 + label: '水族',
  100 + value: '水族'
  101 + },
  102 + {
  103 + label: '东乡族',
  104 + value: '东乡族'
  105 + },
  106 + {
  107 + label: '纳西族',
  108 + value: '纳西族'
  109 + },
  110 + {
  111 + label: '景颇族',
  112 + value: '景颇族'
  113 + },
  114 + {
  115 + label: '柯尔克孜族',
  116 + value: '柯尔克孜族'
  117 + },
  118 + {
  119 + label: '土族',
  120 + value: '土族'
  121 + },
  122 + {
  123 + label: '达斡尔族',
  124 + value: '达斡尔族'
  125 + },
  126 + {
  127 + label: '仫佬族',
  128 + value: '仫佬族'
  129 + },
  130 + {
  131 + label: '羌族',
  132 + value: '羌族'
  133 + },
  134 + {
  135 + label: '布朗族',
  136 + value: '布朗族'
  137 + },
  138 + {
  139 + label: '撒拉族',
  140 + value: '撒拉族'
  141 + },
  142 + {
  143 + label: '毛南族',
  144 + value: '毛南族'
  145 + },
  146 + {
  147 + label: '仡佬族',
  148 + value: '仡佬族'
  149 + },
  150 + {
  151 + label: '锡伯族',
  152 + value: '锡伯族'
  153 + },
  154 + {
  155 + label: '阿昌族',
  156 + value: '阿昌族'
  157 + },
  158 + {
  159 + label: '普米族',
  160 + value: '普米族'
  161 + },
  162 + {
  163 + label: '塔吉克族',
  164 + value: '塔吉克族'
  165 + },
  166 + {
  167 + label: '怒族',
  168 + value: '怒族'
  169 + },
  170 + {
  171 + label: '乌孜别克族',
  172 + value: '乌孜别克族'
  173 + },
  174 + {
  175 + label: '俄罗斯族',
  176 + value: '俄罗斯族'
  177 + },
  178 + {
  179 + label: '鄂温克族',
  180 + value: '鄂温克族'
  181 + },
  182 + {
  183 + label: '德昂族',
  184 + value: '德昂族'
  185 + },
  186 + {
  187 + label: '保安族',
  188 + value: '保安族'
  189 + },
  190 + {
  191 + label: '裕固族',
  192 + value: '裕固族'
  193 + },
  194 + {
  195 + label: '京族',
  196 + value: '京族'
  197 + },
  198 + {
  199 + label: '塔塔尔族',
  200 + value: '塔塔尔族'
  201 + },
  202 + {
  203 + label: '独龙族',
  204 + value: '独龙族'
  205 + },
  206 + {
  207 + label: '鄂伦春族',
  208 + value: '鄂伦春族'
  209 + },
  210 + {
  211 + label: '赫哲族',
  212 + value: '赫哲族'
  213 + },
  214 + {
  215 + label: '门巴族',
  216 + value: '门巴族'
  217 + },
  218 + {
  219 + label: '珞巴族',
  220 + value: '珞巴族'
  221 + },
  222 + {
  223 + label: '基诺族',
  224 + value: '基诺族'
  225 + },
  226 +]
  227 +
  228 +export default nation;
注册登录 后发表评论