diff --git a/App.vue b/App.vue index 2a3e23b..60c0970 100644 --- a/App.vue +++ b/App.vue @@ -13,6 +13,7 @@ diff --git a/common/mixin.js b/common/mixin.js new file mode 100644 index 0000000..167e151 --- /dev/null +++ b/common/mixin.js @@ -0,0 +1,103 @@ +export default{ + data(){ + return { + pageScrollTop: 0, // 页面距离顶部的距离 + } + }, + onPageScroll(res) { + this.pageScrollTop = res.scrollTop; + }, + methods: { + $isRight(val){ + return this.$shared.isRight(val); + }, + $check(str, type) { + switch (type) { + case 'mobile': //手机号码 + return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str); + case 'tel': //座机 + return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str); + case 'card': //身份证 + return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str); + case 'mobileCode': //6位数字验证码 + return /^[0-9]{6}$/.test(str) + case 'pwd': //密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线 + return /^([a-zA-Z0-9_]){6,20}$/.test(str) + case 'payPwd': //支付密码 6位纯数字 + return /^[0-9]{6}$/.test(str) + case 'postal': //邮政编码 + return /[1-9]\d{5}(?!\d)/.test(str); + case 'QQ': //QQ号 + return /^[1-9][0-9]{4,9}$/.test(str); + case 'email': //邮箱 + return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str); + case 'money': //金额(小数点2位) + return /^\d*(?:\.\d{0,2})?$/.test(str); + case 'URL': //网址 + return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str) + case 'IP': //IP + return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str); + case 'date': //日期时间 + return /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str) || /^(\d{4})\-(\d{2})\-(\d{2})$/ + .test(str) + case 'number': //数字 + return /^[0-9]$/.test(str); + case 'english': //英文 + return /^[a-zA-Z]+$/.test(str); + case 'chinese': //中文 + return /^[\\u4E00-\\u9FA5]+$/.test(str); + case 'lower': //小写 + return /^[a-z]+$/.test(str); + case 'upper': //大写 + return /^[A-Z]+$/.test(str); + case 'HTML': //HTML标记 + return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str); + default: + return true; + } + }, + $msg(title = '', param = {}) { + return new Promise((resolve, reject) => { + if(!title){ + reject(); + return; + } + uni.showToast({ + title, + duration: param.duration || 1500, + mask: param.mask || true, // 默认应该加mask 禁止提示时操作 + icon: param.icon || 'none', + complete: result => { + setTimeout(() => { + resolve(); + }, param.duration || 1500); + } + }); + }) + }, + $url(url, options = {}){ + this.$u.throttle(() => { + if(options.type && options.type !== ''){ + if(options.type === 'redirect'){ // 关闭当前,跳转 + uni.redirectTo({ url }) + }else if(options.type === 'switch'){ // 跳转 + uni.switchTab({ url }) + }else if(options.type === 'launch'){ // 关闭所有,跳转 + uni.reLaunch({ url }) + } + }else{ + uni.navigateTo({ url }) // 跳转 + } + }, 100); + }, + $toBack(){ + let pages = getCurrentPages(); // 当前页 + let beforePage = pages[pages.length - 2]; // 上个页面 + if(beforePage && beforePage.route){ + uni.navigateBack(); + }else{ + uni.switchTab({url:'/pages/index/index'}); + } + } + } +} \ No newline at end of file diff --git a/components/lf-header.vue b/components/lf-header.vue new file mode 100644 index 0000000..dfbaf2e --- /dev/null +++ b/components/lf-header.vue @@ -0,0 +1,225 @@ + + + + + \ No newline at end of file diff --git a/main.js b/main.js index 3b84daf..faf978f 100644 --- a/main.js +++ b/main.js @@ -1,5 +1,8 @@ import App from './App' import uView from '@/uni_modules/uview-ui' +import mixin from '@/common/mixin.js'; + +Vue.mixin(mixin); // #ifndef VUE3 import Vue from 'vue' diff --git a/pages/addAddress/addAddress.vue b/packages/addAddress/addAddress-副本.vue similarity index 100% rename from pages/addAddress/addAddress.vue rename to packages/addAddress/addAddress-副本.vue diff --git a/packages/addAddress/addAddress.vue b/packages/addAddress/addAddress.vue new file mode 100644 index 0000000..0439539 --- /dev/null +++ b/packages/addAddress/addAddress.vue @@ -0,0 +1,158 @@ + + + + + \ No newline at end of file diff --git a/pages/address/address.vue b/packages/address/address.vue similarity index 100% rename from pages/address/address.vue rename to packages/address/address.vue diff --git a/packages/ratingQueryDetail/ratingQueryDetail.vue b/packages/ratingQueryDetail/ratingQueryDetail.vue new file mode 100644 index 0000000..6ffbbb8 --- /dev/null +++ b/packages/ratingQueryDetail/ratingQueryDetail.vue @@ -0,0 +1,468 @@ + + + + + \ No newline at end of file diff --git a/packages/sonpingDetail/expenseDetail.vue b/packages/sonpingDetail/expenseDetail.vue new file mode 100644 index 0000000..ce3a216 --- /dev/null +++ b/packages/sonpingDetail/expenseDetail.vue @@ -0,0 +1,184 @@ + + + + + \ No newline at end of file diff --git a/packages/sonpingDetail/ratingTrajectory.vue b/packages/sonpingDetail/ratingTrajectory.vue new file mode 100644 index 0000000..8ad9204 --- /dev/null +++ b/packages/sonpingDetail/ratingTrajectory.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/packages/sonpingDetail/sonpingDetail.vue b/packages/sonpingDetail/sonpingDetail.vue new file mode 100644 index 0000000..4bbc314 --- /dev/null +++ b/packages/sonpingDetail/sonpingDetail.vue @@ -0,0 +1,477 @@ + + + + + \ No newline at end of file diff --git a/packages/sonpingDetail/viewDetail.vue b/packages/sonpingDetail/viewDetail.vue new file mode 100644 index 0000000..6115e4e --- /dev/null +++ b/packages/sonpingDetail/viewDetail.vue @@ -0,0 +1,445 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 01853fa..b47df91 100644 --- a/pages.json +++ b/pages.json @@ -11,27 +11,101 @@ } }, { - "path": "pages/addAddress/addAddress", + "path": "pages/settings/settings", "style": { - "navigationBarTitleText": "新增收货地址", + "navigationBarTitleText": "设置", "enablePullDownRefresh": false } }, { - "path": "pages/address/address", + "path": "pages/order/order", "style": { - "navigationBarTitleText": "收货地址", + "navigationBarTitleText": "我的订单", "enablePullDownRefresh": false } }, { - "path": "pages/settings/settings", + "path": "pages/fastRating/fastRating", "style": { - "navigationBarTitleText": "设置", + "navigationBarTitleText": "快速评级", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/write/baseInfo", + "style": { + "navigationBarTitleText": "填写信息", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/write/distribution", + "style": { + "navigationBarTitleText": "填写信息", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/ratingCriteria/ratingCriteria", + "style": { + "navigationBarTitleText": "评级标准", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/ratingQuery/ratingQuery", + "style": { + "navigationBarTitleText": "评卡查询", "enablePullDownRefresh": false } } ], + "subPackages": [{ + "root": "packages", + "pages": [{ + "path": "addAddress/addAddress", + "style": { + "navigationBarTitleText": "新增收货地址", + "enablePullDownRefresh": false + } + },{ + "path": "address/address", + "style": { + "navigationBarTitleText": "收货地址", + "enablePullDownRefresh": false + } + },{ + "path": "ratingQueryDetail/ratingQueryDetail", + "style": { + "navigationBarTitleText": "评卡详情", + "enablePullDownRefresh": false + } + },{ + "path": "sonpingDetail/sonpingDetail", + "style": { + "navigationBarTitleText": "送评详情", + "enablePullDownRefresh": false + } + },{ + "path": "sonpingDetail/viewDetail", + "style": { + "navigationBarTitleText": "查看明细", + "enablePullDownRefresh": false + } + },{ + "path": "sonpingDetail/expenseDetail", + "style": { + "navigationBarTitleText": "费用明细", + "enablePullDownRefresh": false + } + },{ + "path": "sonpingDetail/ratingTrajectory", + "style": { + "navigationBarTitleText": "评级轨迹", + "enablePullDownRefresh": false + } + }] + }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", diff --git a/pages/fastRating/fastRating.vue b/pages/fastRating/fastRating.vue new file mode 100644 index 0000000..de78e77 --- /dev/null +++ b/pages/fastRating/fastRating.vue @@ -0,0 +1,124 @@ + + + + + \ No newline at end of file diff --git a/pages/index/index - 副本.vue b/pages/index/index - 副本.vue new file mode 100644 index 0000000..4be8f64 --- /dev/null +++ b/pages/index/index - 副本.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/pages/index/index.vue b/pages/index/index.vue index 4be8f64..7a9d533 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,284 +1,594 @@ - diff --git a/pages/order/order.vue b/pages/order/order.vue new file mode 100644 index 0000000..3e031d2 --- /dev/null +++ b/pages/order/order.vue @@ -0,0 +1,329 @@ + + + + + \ No newline at end of file diff --git a/pages/ratingCriteria/ratingCriteria.vue b/pages/ratingCriteria/ratingCriteria.vue new file mode 100644 index 0000000..ae2fa10 --- /dev/null +++ b/pages/ratingCriteria/ratingCriteria.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/pages/ratingQuery/ratingQuery.vue b/pages/ratingQuery/ratingQuery.vue new file mode 100644 index 0000000..7327d32 --- /dev/null +++ b/pages/ratingQuery/ratingQuery.vue @@ -0,0 +1,89 @@ + + + + + \ No newline at end of file diff --git a/pages/settings/settings.vue b/pages/settings/settings.vue index 9ffec73..aa10473 100644 --- a/pages/settings/settings.vue +++ b/pages/settings/settings.vue @@ -6,7 +6,7 @@ - + diff --git a/pages/write/baseInfo.vue b/pages/write/baseInfo.vue new file mode 100644 index 0000000..52710c9 --- /dev/null +++ b/pages/write/baseInfo.vue @@ -0,0 +1,386 @@ + + + + + \ No newline at end of file diff --git a/pages/write/distribution.vue b/pages/write/distribution.vue new file mode 100644 index 0000000..248ecc4 --- /dev/null +++ b/pages/write/distribution.vue @@ -0,0 +1,310 @@ + + + + + \ No newline at end of file diff --git a/styles/lanhu.css b/styles/lanhu.css new file mode 100644 index 0000000..4815618 --- /dev/null +++ b/styles/lanhu.css @@ -0,0 +1,77 @@ +html { + font-size: 16px; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Microsoft Yahei', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +view, +image, +text { + box-sizing: border-box; + flex-shrink: 0; +} + +#app { + width: 100vw; + height: 100vh; +} + +.flex-row { + display: flex; + flex-direction: row; +} + +.flex-col { + display: flex; + flex-direction: column; +} + +.justify-start { + display: flex; + justify-content: flex-start; +} + +.justify-center { + display: flex; + justify-content: center; +} + +.justify-end { + display: flex; + justify-content: flex-end; +} + +.justify-evenly { + display: flex; + justify-content: space-evenly; +} + +.justify-around { + display: flex; + justify-content: space-around; +} + +.justify-between { + display: flex; + justify-content: space-between; +} + +.items-start { + display: flex; + align-items: flex-start; +} + +.items-center { + display: flex; + align-items: center; +} + +.items-end { + display: flex; + align-items: flex-end; +}