diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..c9abd4b --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,11 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "type": "uniCloud", + "default": { + "launchtype": "local" + } + } + ] +} diff --git a/App.vue b/App.vue index f22c7d6..ed014bd 100644 --- a/App.vue +++ b/App.vue @@ -1,11 +1,59 @@ diff --git a/api/add.js b/api/add.js new file mode 100644 index 0000000..ae1d1eb --- /dev/null +++ b/api/add.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 绑定企业基本信息 +export const add = params => http.post(`${proxyUrl}/enterprise/add`, params); diff --git a/api/additional.js b/api/additional.js new file mode 100644 index 0000000..50d81e2 --- /dev/null +++ b/api/additional.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 完善企业信息 +export const additional = params => http.post(`${proxyUrl}/enterprise/additional`, params); diff --git a/api/additionalDetail.js b/api/additionalDetail.js new file mode 100644 index 0000000..a07a41b --- /dev/null +++ b/api/additionalDetail.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 企业完善信息详情 +export const additionalDetail = params => http.post(`${proxyUrl}/enterprise/additionalDetail`, params); diff --git a/api/area.js b/api/area.js new file mode 100644 index 0000000..d3e0390 --- /dev/null +++ b/api/area.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 地区查询 +export const areaquery = params => http.post(`${proxyUrl}/area/query`, params); diff --git a/api/base.js b/api/base.js index a6f79b9..509e9f9 100644 --- a/api/base.js +++ b/api/base.js @@ -1,5 +1,5 @@ // api基础地质 -export const BASE_URL = 'https://www.tall.wiki/gateway'; +export const BASE_URL = 'https://www.sxwikionline.com/gateway'; // 错误码 export const ERR_CODE = 200; diff --git a/api/bindMsg.js b/api/bindMsg.js new file mode 100644 index 0000000..a710030 --- /dev/null +++ b/api/bindMsg.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 用户绑定查询 +export const bindMsg = params => http.post(`${proxyUrl}/my/bindMsg`, params); diff --git a/api/candidate.js b/api/candidate.js new file mode 100644 index 0000000..5dfb19d --- /dev/null +++ b/api/candidate.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 揭榜请求 +export const candidate = params => http.post(`${proxyUrl}/demand/candidate`, params); diff --git a/api/candidateQuery.js b/api/candidateQuery.js new file mode 100644 index 0000000..92fd2d3 --- /dev/null +++ b/api/candidateQuery.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 查询是否揭榜 +export const candidateQuery = params => http.post(`${proxyUrl}/demand/candidateQuery`, params); diff --git a/api/collectAdd.js b/api/collectAdd.js new file mode 100644 index 0000000..18b18b2 --- /dev/null +++ b/api/collectAdd.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 收藏政策 +export const collectAdd = params => http.post(`${proxyUrl}/collect/add`, params); diff --git a/api/detail.js b/api/detail.js new file mode 100644 index 0000000..3c6894b --- /dev/null +++ b/api/detail.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 查询企业基本信息 +export const detail = params => http.post(`${proxyUrl}/enterprise/detail`, params); diff --git a/api/evaluate.js b/api/evaluate.js new file mode 100644 index 0000000..6db83c6 --- /dev/null +++ b/api/evaluate.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 企业评定 +export const evaluate = params => http.post(`${proxyUrl}/enterprise/evaluate`, params); diff --git a/api/fileLocationQuery.js b/api/fileLocationQuery.js new file mode 100644 index 0000000..1d01054 --- /dev/null +++ b/api/fileLocationQuery.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 查询文件路径 +export const fileLocationQuery = params => http.post(`${proxyUrl}/file/fileLocationQuery`, params); diff --git a/api/history.js b/api/history.js new file mode 100644 index 0000000..12c3edc --- /dev/null +++ b/api/history.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 往期需求列表 +export const history = params => http.post(`${proxyUrl}/demand/history`, params); diff --git a/api/incubator.js b/api/incubator.js new file mode 100644 index 0000000..fd56084 --- /dev/null +++ b/api/incubator.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 孵化器查询 +export const incubator = params => http.post(`${proxyUrl}/incubator/query`, params); diff --git a/api/listDetails.js b/api/listDetails.js new file mode 100644 index 0000000..e40bc6a --- /dev/null +++ b/api/listDetails.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 发榜详情查询 +export const listDetails = params => http.post(`${proxyUrl}/demand/query`, params); diff --git a/api/policy.js b/api/policy.js new file mode 100644 index 0000000..f130c82 --- /dev/null +++ b/api/policy.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 地区查询 +export const policy = params => http.post(`${proxyUrl}/policy/area/query`, params); diff --git a/api/policyDetails.js b/api/policyDetails.js new file mode 100644 index 0000000..b8d8e83 --- /dev/null +++ b/api/policyDetails.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 政策详情 +export const policyDetails = params => http.post(`${proxyUrl}/policy/detail`, params); diff --git a/api/publish.js b/api/publish.js new file mode 100644 index 0000000..400116c --- /dev/null +++ b/api/publish.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 需求发布 +export const publish = params => http.post(`${proxyUrl}/demand/publish`, params); diff --git a/api/queryByFuzzyName.js b/api/queryByFuzzyName.js new file mode 100644 index 0000000..64228df --- /dev/null +++ b/api/queryByFuzzyName.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 根据企业名称模糊查询企业信息 +export const queryByFuzzyName = params => http.post(`${proxyUrl}/enterpriseDetail/queryByFuzzyName`, params); diff --git a/api/queryFile.js b/api/queryFile.js new file mode 100644 index 0000000..9478878 --- /dev/null +++ b/api/queryFile.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 需求附件下载查询 +export const queryFile = params => http.post(`${proxyUrl}/demand/queryFile`, params); diff --git a/api/queryMsg.js b/api/queryMsg.js new file mode 100644 index 0000000..7315b42 --- /dev/null +++ b/api/queryMsg.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 系统消息查询 +export const queryMsg = params => http.post(`${proxyUrl}/message/queryMsg`, params); diff --git a/api/queryMsgDetail.js b/api/queryMsgDetail.js new file mode 100644 index 0000000..e6eddee --- /dev/null +++ b/api/queryMsgDetail.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 系统消息详情查询 +export const queryMsgDetail = params => http.post(`${proxyUrl}/message/queryMsgDetail`, params); diff --git a/api/querySelf.js b/api/querySelf.js new file mode 100644 index 0000000..4e8bb14 --- /dev/null +++ b/api/querySelf.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 收藏查询 +export const querySelf = params => http.post(`${proxyUrl}/collect/querySelf`, params); diff --git a/api/rotation.js b/api/rotation.js new file mode 100644 index 0000000..0fe2f8a --- /dev/null +++ b/api/rotation.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 轮播图 +export const rotation = params => http.post(`${proxyUrl}/carousel/query`, params); diff --git a/api/search.js b/api/search.js new file mode 100644 index 0000000..c922675 --- /dev/null +++ b/api/search.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 地区查询 +export const search = params => http.post(`${proxyUrl}/policy/search`, params); diff --git a/api/trainApply.js b/api/trainApply.js new file mode 100644 index 0000000..49b0aa0 --- /dev/null +++ b/api/trainApply.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 培训报名 +export const trainApply = params => http.post(`${proxyUrl}/trainApply/add`, params); diff --git a/api/trainApplyquery.js b/api/trainApplyquery.js new file mode 100644 index 0000000..1ccf6ba --- /dev/null +++ b/api/trainApplyquery.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 查询培训报名 +export const trainApplyquery = params => http.post(`${proxyUrl}/trainApply/query`, params); diff --git a/api/trainInform.js b/api/trainInform.js new file mode 100644 index 0000000..a8995c2 --- /dev/null +++ b/api/trainInform.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 培训通知 +export const trainInform = params => http.post(`${proxyUrl}/trainInform/queryTrainInformById`, params); diff --git a/api/type.js b/api/type.js new file mode 100644 index 0000000..3d71100 --- /dev/null +++ b/api/type.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 类型选择 +export const typeSelection = params => http.post(`${proxyUrl}/category/query`, params); diff --git a/api/upLoad.js b/api/upLoad.js new file mode 100644 index 0000000..3d90b92 --- /dev/null +++ b/api/upLoad.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 上传文件 +export const upLoad = params => http.post(`${proxyUrl}/file/upload`, params); diff --git a/api/update.js b/api/update.js new file mode 100644 index 0000000..d432fd4 --- /dev/null +++ b/api/update.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 修改企业基本信息 +export const update = params => http.post(`${proxyUrl}/enterprise/update`, params); diff --git a/api/updateAllSta.js b/api/updateAllSta.js new file mode 100644 index 0000000..3406d96 --- /dev/null +++ b/api/updateAllSta.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 系统消息全部修改 +export const updateAllSta = params => http.post(`${proxyUrl}/message/updateAllSta`, params); diff --git a/api/updateStatus.js b/api/updateStatus.js new file mode 100644 index 0000000..1501032 --- /dev/null +++ b/api/updateStatus.js @@ -0,0 +1,5 @@ +const proxyUrl = '/enterprise'; +import { http } from 'plugins/request/index'; + +// 系统消息读取状态改变 +export const updateStatus = params => http.post(`${proxyUrl}/message/updateStatus`, params); diff --git a/api/user.js b/api/user.js index 0959abc..b58523f 100644 --- a/api/user.js +++ b/api/user.js @@ -1,5 +1,5 @@ const proxyUrl = '/tall/v1.0'; import { http } from 'plugins/request/index'; -// 请求统一使用如下格式 -// export const signin = params => http.post('/api/xxx', params); +// 登录 +export const signin = params => http.post(`${proxyUrl}/users/signin`, params); diff --git a/api/userInfo.js b/api/userInfo.js new file mode 100644 index 0000000..b3c61c9 --- /dev/null +++ b/api/userInfo.js @@ -0,0 +1,5 @@ +const proxyUrl = '/tall/v1.0'; +import { http } from 'plugins/request/index'; + +// 给后台传递微信数据 +export const userInfo = params => http.post(`${proxyUrl}/users/userInfo`, params); diff --git a/colorui/main.scss b/colorui/main.scss index ce6040d..ef97634 100644 --- a/colorui/main.scss +++ b/colorui/main.scss @@ -3988,3 +3988,38 @@ scroll-view.cu-steps .cu-item { .lines-white { color: $white !important; } +.policy-box{ + position: relative; + height: 140px; + padding: 20px; + border-bottom: 1px solid #eee; + background-color: $white; +} +.policy-box > image{ + height: 100px; + width: 100px; + background-image: url(static/image.png); +} +.policy-title{ + position: absolute; + top: 20px; + font-weight: 500; + font-size: 14px; + color: $black; + margin-left: 110px; + padding-right: 10px; + overflow: hidden; + word-break: break-all; /* break-all(允许在单词内换行。) */ + text-overflow: ellipsis; /* 超出部分省略号 */ + display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/ + -webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/ + -webkit-line-clamp: 2; /** 显示的行数 **/ +} +.policy-time{ + position: absolute; + // margin-left: 10px; + right: 20px; + bottom: 20px; + font-size: 10px; + color: $gray; +} \ No newline at end of file diff --git a/components/Demand/Demand.vue b/components/Demand/Demand.vue new file mode 100644 index 0000000..b63af80 --- /dev/null +++ b/components/Demand/Demand.vue @@ -0,0 +1,234 @@ + + + + diff --git a/components/HomeNav/HomeNav.vue b/components/HomeNav/HomeNav.vue new file mode 100644 index 0000000..0d12c04 --- /dev/null +++ b/components/HomeNav/HomeNav.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/components/HomeRotation/HomeRotation.vue b/components/HomeRotation/HomeRotation.vue new file mode 100644 index 0000000..8c6197f --- /dev/null +++ b/components/HomeRotation/HomeRotation.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/components/HomeTab/HomeTab.vue b/components/HomeTab/HomeTab.vue new file mode 100644 index 0000000..910893a --- /dev/null +++ b/components/HomeTab/HomeTab.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/components/Linkage/Linkage.vue b/components/Linkage/Linkage.vue new file mode 100644 index 0000000..0939762 --- /dev/null +++ b/components/Linkage/Linkage.vue @@ -0,0 +1,223 @@ + + + diff --git a/components/Policy/Policy.vue b/components/Policy/Policy.vue new file mode 100644 index 0000000..206f068 --- /dev/null +++ b/components/Policy/Policy.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/components/lb-picker/README.md b/components/lb-picker/README.md new file mode 100644 index 0000000..5366935 --- /dev/null +++ b/components/lb-picker/README.md @@ -0,0 +1,434 @@ +

+ + + + + + + + + + + + + + + + + + + +

+ +插件市场里面的 picker 选择器不满足自己的需求,所以自己写了一个简单的 picker 选择器,可扩展、可自定义,一般满足日常需要。 +Github:[uni-lb-picker](https://github.com/liub1934/uni-lb-picker) +插件市场:[uni-lb-picker](https://ext.dcloud.net.cn/plugin?id=1111) + +> 如果问题最好去 github 反馈,插件市场评论区留下五星好评即可,[点我去反馈](https://github.com/liub1934/uni-lb-picker/issues/new) + +> **由于之前`cancel`拼写失误,写成了`cancle`,`v1.08`现已修正,如果之前版本有使用`cancel`事件的,更新后请及时修正。** + +## 兼容性 + +App + H5 + 各平台小程序(快应用及 360 未测试,nvue 待支持) + +## 功能 + +1、单选 +2、多级联动,非多级联动,理论支持任意级数 +3、省市区选择,基于多级联动 +4、自定义选择器头部确定取消按钮颜色及插槽支持 +5、选择器可视区自定义滚动个数 +6、自定义数据字段,满足不同人的需求 +7、自定义选择器样式 +8、单选及非联动选择支持扁平化的简单数据,如下形式: + +```javascript +// 单选列表 +list1: ['选项1', '选项2', '选项2'], +// 非联动选择列表 +list2: [ + ['选项1', '选项2', '选项3'], + ['选项11', '选项22', '选项33'], + ['选项111', '选项222', '选项333'] +] +``` + +## 引入插件 + +单独引入,在需要使用的页面上 import 引入即可 + +```html + + + +``` + +全局引入,`main.js`中 import 引入并注册即可全局使用 + +```jsvascript +import LbPicker from '@/components/lb-picker' +Vue.component("lb-picker", LbPicker) +``` + +easycom 引入 + +`pages.json`加上如下配置: + +```json +"easycom": { + "autoscan": true, + "custom": { + "lb-picker": "@/components/lb-picker/index.vue" + } +} +``` + +npm 安装引入: + +```shell +npm install uni-lb-picker +``` + +```jsvascript +import LbPicker from 'uni-lb-picker' +``` + +## 选择器数据格式 + +### 单选 + +常规数据 + +```javascript +list: [ + { + label: '选项1', + value: '1' + }, + { + label: '选项2', + value: '2' + } +] +``` + +扁平化简单数据 + +```javascript +list: ['选项1', '选项2'] +``` + +### 多级联动 + +```javascript +list: [ + { + label: '选项1', + value: '1', + children: [ + { + label: '选项1-1', + value: '1-1', + children: [ + { + label: '选项1-1-1', + value: '1-1-1' + } + ] + } + ] + } +] +``` + +### 非联动选择 + +常规数据 + +```javascript +list: [ + [ + { label: '选项1', value: '1' }, + { label: '选项2', value: '2' }, + { label: '选项3', value: '3' } + ], + [ + { label: '选项11', value: '11' }, + { label: '选项22', value: '22' }, + { label: '选项33', value: '33' } + ], + [ + { label: '选项111', value: '111' }, + { label: '选项222', value: '222' }, + { label: '选项333', value: '333' } + ] +] +``` + +扁平化简单数据 + +```javascript +list: [ + ['选项1', '选项2', '选项3'], + ['选项11', '选项22', '选项33'], + ['选项111', '选项222', '选项333'] +] +``` + +## 调用显示选择器 + +通过`ref`形式手动调用`show`方法显示,隐藏同理调用`hide` + +```text + + +this.$refs.picker.show() // 显示 +this.$refs.picker.hide() // 隐藏 +``` + +## 绑定值及设置默认值 + +支持 vue 中`v-model`写法绑定值,无需自己维护选中值的索引。 + +```javascript + + + +data () { + return { + value1: '' // 单选 + value2: [] // 多列联动选择 + } +} +``` + +## 多个选择器 + +通过设置不同的`ref`,然后调用即可 + +```javascript + + + +this.$refs.picker1.show() // picker1显示 +this.$refs.picker2.show() // picker2显示 +``` + +## 省市区选择 + +省市区选择是基于多列联动选择,数据来源:[https://github.com/modood/Administrative-divisions-of-China](https://github.com/modood/Administrative-divisions-of-China), +省市区文件位于`/pages/demos/area-data-min.js`,自行引入即可,可参考`demo3省市区选择`, +也可使用自己已有的省市区数据,如果数据字段不一样,也可以自定义,参考下方自定义数据字段。 + +## 自定义数据字段 + +为了满足不同人的需求,插件支持自定义数据字段名称, 插件默认的数据字段如下形式: + +```javascript +list: [ + { + label: '选择1', + value: 1, + children: [] + }, + { + label: '选择1', + value: 1, + children: [] + } +] +``` + +如果你的数据字段和上面不一样,如下形式: + +```javascript +list: [ + { + text: '选择1', + id: 1, + child: [] + }, + { + text: '选择1', + id: 1, + child: [] + } +] +``` + +通过设置参数中的`props`即可,如下所示: + +```javascript + + +data () { + return { + myProps: { + label: 'text', + value: 'id', + children: 'child' + } + } +} +``` + +## 插槽使用 + +选择器支持一些可自定义化的插槽,如选择器的取消和确定文字按钮,如果需要对其自定义处理的话,比如加个 icon 图标之类的,可使用插槽,使用方法如下: + +```html + + 我是自定义取消 + 我是自定义确定 + +``` + +其他插槽见下。 + +## 参数及事件 + +### Props + +| 参数 | 说明 | 类型 | 可选值 | 默认值 | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | :------------------ | :--------------------------------------------------------------- | :------------------------------------------------ | +| value/v-model | 绑定值,联动选择为 Array 类型 | String/Number/Array | - | - | +| mode | 选择器类型,支持单列,多列联动 | String | selector 单选/multiSelector 多级联动/unlinkedSelector 多级非联动 | selector | +| list | 选择器数据(v1.0.7 单选及非联动多选支持扁平数据:['选项 1', '选项 2']) | Array | - | - | +| level | 多列联动层级,仅 mode 为 multiSelector 有效 | Number | - | 2 | +| props | 自定义数据字段 | Object | - | {label:'label',value:'value',children:'children'} | +| cancel-text | 取消文字 | String | - | 取消 | +| cancel-color | 取消文字颜色 | String | - | #999 | +| confirm-text | 确定文字 | String | - | 确定 | +| confirm-color | 确定文字颜色 | String | - | #007aff | +| empty-text | (v1.0.7 新增)选择器列表为空的时候显示的文字 | String | - | 暂无数据 | +| empty-color | (v1.0.7 新增)暂无数据文字颜色 | String | - | #999 | +| column-num | 可视滚动区域内滚动个数,最好设置奇数值 | Number | - | 5 | +| radius | 选择器顶部圆角,支持 rpx,如 radius="10rpx" | String | - | - | +| ~~column-style~~ | ~~选择器默认样式(已弃用,见下方自定义样式说明)~~ | Object | - | - | +| ~~active-column-style~~ | ~~选择器选中样式(已弃用,见下方自定义样式说明)~~ | Object | - | - | +| loading | 选择器是否显示加载中,可使用 loading 插槽自定义加载效果 | Boolean | - | - | +| mask-color | 遮罩层颜色 | String | - | rgba(0, 0, 0, 0.4) | +| close-on-click-mask | 点击遮罩层是否关闭选择器 | Boolean | true/false | true | +| ~~change-on-init~~ | ~~(v1.0.7 已弃用)初始化时是否触发 change 事件~~ | Boolean | true/false | - | +| dataset | (v1.0.7 新增)可以向组件中传递任意的自定义的数据(对象形式数据),如`:dataset="{name:'test'}"`,在`confirm`或`change`事件中可以取到 | Object | - | - | +| show-header | (v1.0.8 新增)是否显示选择器头部 | Boolean | - | true | +| inline | (v1.0.8 新增)inline 模式,开启后默认显示选择器,无需点击弹出,可以配合`show-header`一起使用 | Boolean | - | - | +| z-index | (v1.0.9 新增)选择器层级,遮罩层默认-1 | Number | - | 999 | + +### 方法 + +| 方法名 | 说明 | 参数 | 返回值 | +| :------------- | :------------------------------------- | :-------------- | :----------------------------------------------------------------------------------------------------------- | +| show | 打开选择器 | - | | +| hide | 关闭选择器 | - | | +| getColumnsInfo | (v1.1.0 新增)根据 value 获取选择器信息 | 绑定值的`value` | 同`change` `confirm`回调参数,如果传入的`value`获取不到信息则只返回一个含有`dataset`的对象,具体自行打印查看 | + +### Events + +| 事件名称 | 说明 | 回调参数 | +| :------- | :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| show | 选择器打开时触发 | - | +| hide | 选择器隐藏时触发 | - | +| change | 选择器滚动时触发,此时不会改变绑定的值 | `{ index, item, value, change }` `index`触发滚动后新的索引,单选时是具体的索引值,多列联动选择时为数组。`item`触发滚动后新的的完整内容,包括`label`、`value`等,单选时为对象,多列选择时为数组对象。`value`触发滚动后新的 value 值,单列选择时为具体值,多列联动选择时为数组。`change`触发事件的类型,详情参考下面的 change 事件备注 | +| confirm | 点击选择器确定时触发,此时会改变绑定的值 | 同上`change`事件说明 | +| cancel | 点击选择器取消时触发 | 同上`change`事件说明 | + +### `change` 事件备注 + +如果绑定的值是空的,`change`触发后里面的内容都是列表的第一项。 +`change`事件会在以下情况触发: + +- 初始化 +- 绑定值 value 变化 +- 选择器 list 列表变化 +- 滚动选择器 + +以上情况会在回调函数中都可以取到`change`变化的类型,对应上面的情况包括以下: + +- `init` +- `value` +- `list` +- `scroll` + +根据这些类型大家可以在`change`的时候按需处理自己的业务逻辑,`init`现在指挥在调用选择器弹出的时候触发。 +下面的说明情况已失效,如需要在页面显示的时候根据`value`的值显示相应的中文,调用`v1.10`新增的方法`getColumnsInfo`,传入绑定的值即可获取到你想要的所有信息。 +~~比如一种常见的情况,有默认值的时候需要显示默认值的文字,此时可以`change`事件中判断`change`的类型是否是`init`,如果是的话可以取事件回调中的`item`进行显示绑定值对应的文字信息。~~ + +```javascript +handleChange (e) { + if (e.change === 'init') { + console.log(e.item.label) // 单选 选项1 + console.log(e.item.map(item => item.label).join('-')) // 多选 选项1-选项11 + } +} +``` + +### 插槽 + +| 插槽名 | 说明 | +| :------------ | :------------------ | +| cancel-text | 选择器取消文字插槽 | +| action-center | 选择器顶部中间插槽 | +| confirm-text | 选择器确定文字插槽 | +| loading | 选择器 loading 插槽 | +| empty | 选择器 空数据 插槽 | + +### 选择器自定义样式 + +原先的`column-style`和`active-column-style`已弃用,如需修改默认样式及选中样式参考`demo9` + +```css + +``` + +### 获取选中值的文字 + +`@confirm`事件中可以拿到: + +单选: + +```javascript +handleConfirm (e) { + console.log(e.item.label) // 选项1 +} +``` + +联动选择: + +```javascript +handleConfirm (e) { + console.log(e.item.map(item => item.label).join('-')) // 选项1-选项11 +} +``` + +## Tips + +微信小程序端,滚动时在 iOS 自带振动反馈,可在系统设置 -> 声音与触感 -> 系统触感反馈中关闭 + +## 其他 + +其他功能参考示例 Demo 代码。 diff --git a/components/lb-picker/index.vue b/components/lb-picker/index.vue new file mode 100644 index 0000000..c844a4c --- /dev/null +++ b/components/lb-picker/index.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/components/lb-picker/mixins/index.js b/components/lb-picker/mixins/index.js new file mode 100644 index 0000000..505d74f --- /dev/null +++ b/components/lb-picker/mixins/index.js @@ -0,0 +1,45 @@ +import { getColumns } from '../utils' +export const commonMixin = { + data () { + return { + indicatorStyle: `height: 34px` + } + }, + created () { + this.init('init') + }, + methods: { + init (changeType) { + if (this.list && this.list.length) { + const column = getColumns({ + value: this.value, + list: this.list, + mode: this.mode, + props: this.props, + level: this.level + }) + const { columns, value, item, index } = column + this.selectValue = value + this.selectItem = item + this.pickerColumns = columns + this.pickerValue = index + this.$emit('change', { + value: this.selectValue, + item: this.selectItem, + index: this.pickerValue, + change: changeType + }) + } + } + }, + watch: { + value () { + if (!this.isConfirmChange) { + this.init('value') + } + }, + list () { + this.init('list') + } + } +} diff --git a/components/lb-picker/pickers/multi-selector-picker.vue b/components/lb-picker/pickers/multi-selector-picker.vue new file mode 100644 index 0000000..87ac229 --- /dev/null +++ b/components/lb-picker/pickers/multi-selector-picker.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/components/lb-picker/pickers/selector-picker.vue b/components/lb-picker/pickers/selector-picker.vue new file mode 100644 index 0000000..b9dbfa2 --- /dev/null +++ b/components/lb-picker/pickers/selector-picker.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/components/lb-picker/pickers/unlinked-selector-picker.vue b/components/lb-picker/pickers/unlinked-selector-picker.vue new file mode 100644 index 0000000..8081382 --- /dev/null +++ b/components/lb-picker/pickers/unlinked-selector-picker.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/components/lb-picker/style/picker-item.scss b/components/lb-picker/style/picker-item.scss new file mode 100644 index 0000000..fc497d1 --- /dev/null +++ b/components/lb-picker/style/picker-item.scss @@ -0,0 +1,23 @@ +.lb-picker-column { + height: 34px; + /* #ifndef APP-NVUE */ + display: flex; + box-sizing: border-box; + white-space: nowrap; + overflow: hidden; + /* #endif */ + flex-direction: row; + align-items: center; + justify-content: center; +} + +.lb-picker-column-label { + font-size: 16px; + text-align: center; + text-overflow: ellipsis; + transition-property: color; + transition-duration: 0.3s; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} \ No newline at end of file diff --git a/components/lb-picker/style/picker.scss b/components/lb-picker/style/picker.scss new file mode 100644 index 0000000..73720b0 --- /dev/null +++ b/components/lb-picker/style/picker.scss @@ -0,0 +1,151 @@ +.lb-picker { + position: relative; +} + +.lb-picker-mask { + background-color: rgba(0, 0, 0, 0.0); + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; +} + +.lb-picker-mask-animation { + transition-property: background-color; + transition-duration: 0.3s; +} + +.lb-picker-container { + position: relative; +} + +.lb-picker-container-fixed { + position: fixed; + left: 0; + right: 0; + bottom: 0; + transform: translateY(100%); + /* #ifndef APP-PLUS */ + overflow: hidden; + /* #endif */ +} + +.lb-picker-container-animation { + transition-property: transform; + transition-duration: 0.3s; +} + +.lb-picker-container-show { + transform: translateY(0); +} + +.lb-picker-header { + position: relative; + height: 45px; + background-color: #fff; + /* #ifdef APP-NVUE */ + border-width: 1px; + border-style: solid; + border-color: #e5e5e5; + /* #endif */ + /* #ifndef APP-NVUE */ + box-sizing: border-box; + display: flex; + /* #endif */ + flex-direction: row; + justify-content: space-between; + flex-wrap: nowrap; +} + +/* #ifndef APP-PLUS */ +.lb-picker-header::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + clear: both; + border-bottom: 1px solid #e5e5e5; + color: #e5e5e5; + transform-origin: 0 100%; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); +} + +/* #endif */ + +.lb-picker-action { + padding-left: 14px; + padding-right: 14px; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: row; + align-items: center; + justify-content: center; +} + +.lb-picker-action-cancel { + text-align: center; +} + +.lb-picker-action-cancel-text { + font-size: 16px; + color: #999; +} + +.lb-picker-action-confirm { + text-align: center; +} + +.lb-picker-action-confirm-text { + font-size: 16px; + color: #007aff; +} + +.lb-picker-content { + position: relative; + background-color: #fff; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + justify-content: center; + flex-direction: column; +} + +.lb-picker-loading, +.lb-picker-empty { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + justify-content: center; + align-items: center; +} + +.lb-picker-empty-text { + color: #999; + font-size: 16px; +} + +.lb-picker-loading-img { + width: 25px; + height: 25px; + /* #ifndef APP-NVUE */ + animation: rotating 2s linear infinite; + /* #endif */ +} + +/* #ifndef APP-NVUE */ +@keyframes rotating { + 0% { + transform: rotate(0deg) + } + + to { + transform: rotate(1turn) + } +} + +/* #endif */ \ No newline at end of file diff --git a/components/lb-picker/utils.js b/components/lb-picker/utils.js new file mode 100644 index 0000000..5330d9b --- /dev/null +++ b/components/lb-picker/utils.js @@ -0,0 +1,110 @@ +/** + * 判断是否是对象 + * + * @export + * @param {*} val + * @returns true/false + */ +export function isObject (val) { + return Object.prototype.toString.call(val) === '[object Object]' +} + +/** + * 根据value获取columns信息 + * + * @export + * @param {*} { value, list, mode, props, level } + * @param {number} [type=2] 查询不到value数据返回数据类型 1空值null 2默认第一个选项 + * @returns + */ +export function getColumns ({ value, list, mode, props, level }, type = 2) { + let pickerValue = [] + let pickerColumns = [] + let selectValue = [] + let selectItem = [] + let columnsInfo = null + switch (mode) { + case 'selector': + let index = list.findIndex(item => { + return isObject(item) ? item[props.value] === value : item === value + }) + if (index === -1 && type === 1) { + columnsInfo = null + } else { + index = index > -1 ? index : 0 + selectItem = list[index] + selectValue = isObject(selectItem) + ? selectItem[props.value] + : selectItem + pickerColumns = list + pickerValue = [index] + columnsInfo = { + index: pickerValue, + value: selectValue, + item: selectItem, + columns: pickerColumns + } + } + break + case 'multiSelector': + const setPickerItems = (data = [], index = 0) => { + if (!data.length) return + const defaultValue = value || [] + if (index < level) { + const value = defaultValue[index] || '' + let i = data.findIndex(item => item[props.value] === value) + if (i === -1 && type === 1) return + i = i > -1 ? i : 0 + pickerValue[index] = i + pickerColumns[index] = data + if (data[i]) { + selectValue[index] = data[i][props.value] + selectItem[index] = data[i] + setPickerItems(data[i][props.children] || [], index + 1) + } + } + } + setPickerItems(list) + if (!selectValue.length && type === 1) { + columnsInfo = null + } else { + columnsInfo = { + index: pickerValue, + value: selectValue, + item: selectItem, + columns: pickerColumns + } + } + break + case 'unlinkedSelector': + list.forEach((item, i) => { + let index = item.findIndex(item => { + return isObject(item) + ? item[props.value] === value[i] + : item === value[i] + }) + if (index === -1 && type === 1) return + index = index > -1 ? index : 0 + const columnItem = list[i][index] + const valueItem = isObject(columnItem) + ? columnItem[props.value] + : columnItem + pickerValue[i] = index + selectValue[i] = valueItem + selectItem[i] = columnItem + }) + pickerColumns = list + if (!selectValue.length && type === 1) { + columnsInfo = null + } else { + columnsInfo = { + index: pickerValue, + value: selectValue, + item: selectItem, + columns: pickerColumns + } + } + break + } + return columnsInfo +} diff --git a/components/test/test.vue b/components/test/test.vue deleted file mode 100644 index 39b6903..0000000 --- a/components/test/test.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/components/uni-collapse-item/uni-collapse-item.vue b/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 0000000..6a04f04 --- /dev/null +++ b/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,217 @@ + + + + + \ No newline at end of file diff --git a/components/uni-collapse/uni-collapse.vue b/components/uni-collapse/uni-collapse.vue new file mode 100644 index 0000000..cf2f4be --- /dev/null +++ b/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,54 @@ + + + diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js new file mode 100644 index 0000000..1f5a778 --- /dev/null +++ b/components/uni-icons/icons.js @@ -0,0 +1,96 @@ +export default { + 'contact': '\ue100', + 'person': '\ue101', + 'personadd': '\ue102', + 'contact-filled': '\ue130', + 'person-filled': '\ue131', + 'personadd-filled': '\ue132', + 'phone': '\ue200', + 'email': '\ue201', + 'chatbubble': '\ue202', + 'chatboxes': '\ue203', + 'phone-filled': '\ue230', + 'email-filled': '\ue231', + 'chatbubble-filled': '\ue232', + 'chatboxes-filled': '\ue233', + 'weibo': '\ue260', + 'weixin': '\ue261', + 'pengyouquan': '\ue262', + 'chat': '\ue263', + 'qq': '\ue264', + 'videocam': '\ue300', + 'camera': '\ue301', + 'mic': '\ue302', + 'location': '\ue303', + 'mic-filled': '\ue332', + 'speech': '\ue332', + 'location-filled': '\ue333', + 'micoff': '\ue360', + 'image': '\ue363', + 'map': '\ue364', + 'compose': '\ue400', + 'trash': '\ue401', + 'upload': '\ue402', + 'download': '\ue403', + 'close': '\ue404', + 'redo': '\ue405', + 'undo': '\ue406', + 'refresh': '\ue407', + 'star': '\ue408', + 'plus': '\ue409', + 'minus': '\ue410', + 'circle': '\ue411', + 'checkbox': '\ue411', + 'close-filled': '\ue434', + 'clear': '\ue434', + 'refresh-filled': '\ue437', + 'star-filled': '\ue438', + 'plus-filled': '\ue439', + 'minus-filled': '\ue440', + 'circle-filled': '\ue441', + 'checkbox-filled': '\ue442', + 'closeempty': '\ue460', + 'refreshempty': '\ue461', + 'reload': '\ue462', + 'starhalf': '\ue463', + 'spinner': '\ue464', + 'spinner-cycle': '\ue465', + 'search': '\ue466', + 'plusempty': '\ue468', + 'forward': '\ue470', + 'back': '\ue471', + 'left-nav': '\ue471', + 'checkmarkempty': '\ue472', + 'home': '\ue500', + 'navigate': '\ue501', + 'gear': '\ue502', + 'paperplane': '\ue503', + 'info': '\ue504', + 'help': '\ue505', + 'locked': '\ue506', + 'more': '\ue507', + 'flag': '\ue508', + 'home-filled': '\ue530', + 'gear-filled': '\ue532', + 'info-filled': '\ue534', + 'help-filled': '\ue535', + 'more-filled': '\ue537', + 'settings': '\ue560', + 'list': '\ue562', + 'bars': '\ue563', + 'loop': '\ue565', + 'paperclip': '\ue567', + 'eye': '\ue568', + 'arrowup': '\ue580', + 'arrowdown': '\ue581', + 'arrowleft': '\ue582', + 'arrowright': '\ue583', + 'arrowthinup': '\ue584', + 'arrowthindown': '\ue585', + 'arrowthinleft': '\ue586', + 'arrowthinright': '\ue587', + 'pulldown': '\ue588', + 'closefill': '\ue589', + 'sound': '\ue590', + 'scan': '\ue612' +} diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..85b4180 --- /dev/null +++ b/components/uni-icons/uni-icons.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/config/config.user.js b/config/user.js similarity index 100% rename from config/config.user.js rename to config/user.js diff --git a/main.js b/main.js index f6b4950..b8a9b19 100644 --- a/main.js +++ b/main.js @@ -3,7 +3,9 @@ import moment from 'moment'; import { http } from 'plugins/request/index'; import App from './App'; import store from './store'; - +import 'static/iconfont.css'; +import LbPicker from '@/components/lb-picker' +Vue.component("lb-picker", LbPicker) // 白名单页面 const whitePathList = [ 'basic-info', diff --git a/manifest.json b/manifest.json index d35ad5c..87e1aaf 100644 --- a/manifest.json +++ b/manifest.json @@ -57,20 +57,20 @@ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "wx2f9ef33e08053bbf", + "appid" : "wx808fa75921bd8f22", "setting" : { "urlCheck" : false, "es6" : true, "postcss" : true, "minified" : true }, - "permission": { - "scope.userLocation": { - "desc": "你的位置信息将用于获取地理位置及地图展示" + "permission" : { + "scope.userLocation" : { + "desc" : "你的位置信息将用于获取地理位置及地图展示" } }, "usingComponents" : true, - "navigateToMiniProgramAppIdList": ["wx5b97b0686831c076"] + "navigateToMiniProgramAppIdList" : [ "wx5b97b0686831c076" ] }, "mp-alipay" : { "usingComponents" : true diff --git a/package-lock.json b/package-lock.json index a45eec5..bc5a0f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,48 @@ { - "name": "healthycode", + "name": "uniTemplete", "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", + "dev": true + }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } } diff --git a/package.json b/package.json index 0b2c43d..41d17a0 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "uni-app": { "scripts": { "mp-dingtalk": { - "title": "钉钉小程序", + "title": "推策服务平台", "env": { "UNI_PLATFORM": "mp-alipay" }, @@ -26,6 +26,10 @@ "author": "wally", "license": "ISC", "dependencies": { - "moment": "^2.24.0" + "axios": "^0.19.2", + "moment": "^2.27.0" + }, + "devDependencies": { + "jquery": "^3.5.1" } } diff --git a/pages.json b/pages.json index 354b42c..b7985aa 100644 --- a/pages.json +++ b/pages.json @@ -1,19 +1,139 @@ { - "pages": [ - { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "模板" - } - } - ], - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "模板项目", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8" - }, - "easycom": { - "autoscan": true - } -} + "pages": [{ + "path": "pages/tabBar/HomePage", + "style": { + "navigationBarTitleText": "首页" + } + }, { + "path": "pages/tabBar/Recommend", + "style": { + "navigationBarTitleText": "推荐政策" + } + }, { + "path": "pages/tabBar/Enterprise", + "style": { + "navigationBarTitleText": "企业服务" + } + }, { + "path": "pages/tabBar/My", + "style": { + "navigationBarTitleText": "我的" + } + }, { + "path": "pages/HomePages/ListDetails", + "style": { + "navigationBarTitleText": "发榜详情" + } + }, { + "path": "pages/HomePages/SearchPage", + "style": { + "navigationBarTitleText": "搜索" + } + }, { + "path": "pages/Policy/PolicyDetails", + "style": { + "navigationBarTitleText": "政策详情" + } + }, { + "path": "pages/Binding/Binding", + "style": { + "navigationBarTitleText": "完善企业信息" + } + }, { + "path": "pages/TestScore/TestScore", + "style": { + "navigationBarTitleText": "评分" + } + }, { + "path": "pages/RequirementRelease/RequirementRelease", + "style": { + "navigationBarTitleText": "需求发布" + } + }, { + "path": "pages/MyPages/CollectionPage", + "style": { + "navigationBarTitleText": "我的收藏" + } + }, { + "path": "pages/MyPages/MessagePage", + "style": { + "navigationBarTitleText": "系统消息" + } + }, { + "path": "pages/About/About", + "style": { + "navigationBarTitleText": "关于" + } + }, { + "path": "pages/Edit/Edit", + "style": { + "navigationBarTitleText": "企业基本信息" + } + }, { + "path": "pages/MessagePage/MessagePage", + "style": { + "navigationBarTitleText": "消息详情" + } + }, + { + "path": "pages/HomePages/peixun", + "style": { + "navigationBarTitleText": "双创活动" + } + } + ,{ + "path" : "pages/RequirementRelease/upload", + "style": { + "navigationBarTitleText": "上传文件" + } + } + ,{ + "path" : "pages/DownFile/DownFile", + "style" : { + "navigationBarTitleText": "下载文件" + } + } + ,{ + "path" : "pages/outH5/outH5", + "style" : { + "navigationBarTitleText": "中小企业智慧服务云平台" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "智慧服务平台", + "navigationBarBackgroundColor": "#e54d42", + "backgroundColor": "#e54d42" + }, + "easycom": { + "autoscan": true + }, + "tabBar": { + "color": "#7A7E83", + "selectedColor": "#e54d42", + "borderStyle": "black", + "backgroundColor": "#F8F8F8", + "list": [{ + "pagePath": "pages/tabBar/HomePage", + "text": "首页", + "iconPath": "static/shouye.png", + "selectedIconPath": "static/shouye-copy.png" + }, { + "pagePath": "pages/tabBar/Recommend", + "text": "推荐政策", + "iconPath": "static/bookmark-3-line.png", + "selectedIconPath": "static/bookmark-3-line-copy.png" + }, { + "pagePath": "pages/tabBar/Enterprise", + "text": "企业服务", + "iconPath": "static/icon_danwei.png", + "selectedIconPath": "static/icon_danwei-copy.png" + }, { + "pagePath": "pages/tabBar/My", + "text": "我的", + "iconPath": "static/wode.png", + "selectedIconPath": "static/wode-copy.png" + }] + } +} diff --git a/pages/About/About.vue b/pages/About/About.vue new file mode 100644 index 0000000..cf0884d --- /dev/null +++ b/pages/About/About.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/pages/Binding/Binding.vue b/pages/Binding/Binding.vue new file mode 100644 index 0000000..8201f97 --- /dev/null +++ b/pages/Binding/Binding.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/pages/DownFile/DownFile.vue b/pages/DownFile/DownFile.vue new file mode 100644 index 0000000..bee7965 --- /dev/null +++ b/pages/DownFile/DownFile.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/pages/Edit/Edit.vue b/pages/Edit/Edit.vue new file mode 100644 index 0000000..bb4fadb --- /dev/null +++ b/pages/Edit/Edit.vue @@ -0,0 +1,596 @@ + + + + + diff --git a/pages/HomePages/ListDetails.vue b/pages/HomePages/ListDetails.vue new file mode 100644 index 0000000..244d22b --- /dev/null +++ b/pages/HomePages/ListDetails.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/pages/HomePages/SearchPage.vue b/pages/HomePages/SearchPage.vue new file mode 100644 index 0000000..aac40e3 --- /dev/null +++ b/pages/HomePages/SearchPage.vue @@ -0,0 +1,367 @@ + + + + + diff --git a/pages/HomePages/peixun.vue b/pages/HomePages/peixun.vue new file mode 100644 index 0000000..f5f1cc3 --- /dev/null +++ b/pages/HomePages/peixun.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/pages/MessagePage/MessagePage.vue b/pages/MessagePage/MessagePage.vue new file mode 100644 index 0000000..0fa5606 --- /dev/null +++ b/pages/MessagePage/MessagePage.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/pages/MyPages/CollectionPage.vue b/pages/MyPages/CollectionPage.vue new file mode 100644 index 0000000..450b2f5 --- /dev/null +++ b/pages/MyPages/CollectionPage.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/pages/MyPages/MessagePage.vue b/pages/MyPages/MessagePage.vue new file mode 100644 index 0000000..476ece1 --- /dev/null +++ b/pages/MyPages/MessagePage.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/pages/Policy/PolicyDetails.vue b/pages/Policy/PolicyDetails.vue new file mode 100644 index 0000000..1d9b608 --- /dev/null +++ b/pages/Policy/PolicyDetails.vue @@ -0,0 +1,73 @@ + + + diff --git a/pages/RequirementRelease/RequirementRelease.vue b/pages/RequirementRelease/RequirementRelease.vue new file mode 100644 index 0000000..895abdd --- /dev/null +++ b/pages/RequirementRelease/RequirementRelease.vue @@ -0,0 +1,251 @@ +