From 45fbdc18be2813271af5574ab3e205ff8c91014b Mon Sep 17 00:00:00 2001
From: yangdanqi <0027013580@iwhalecloud.com>
Date: Fri, 6 May 2022 23:47:18 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B8=88=E5=82=85=E7=AB=AF=E7=89=88=E6=9C=AC?=
=?UTF-8?q?=E7=A0=94=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/js/data.js | 274 ++++++++-----
common/js/dateUtil.js | 30 ++
common/js/glogalFun.js | 5 +-
.../goods-card/horizontal-goods-card.vue | 79 ++++
components/goods-card/product-picked.vue | 80 ++++
components/uni-combox/my-uni-combox.vue | 277 +++++++++++++
main.js | 8 +-
pages.json | 8 +-
pages/index/index-home.vue | 16 +-
pages/order-manage/dispatch-order.vue | 102 +++++
.../order-manage/modal/time-arrange-fail.vue | 138 +++++++
pages/order-manage/modal/time-arrange.vue | 124 ++++++
pages/order-manage/order-manage.vue | 364 ++++++++++++++++++
style/default.css | 10 +-
14 files changed, 1406 insertions(+), 109 deletions(-)
create mode 100644 common/js/dateUtil.js
create mode 100644 components/goods-card/horizontal-goods-card.vue
create mode 100644 components/goods-card/product-picked.vue
create mode 100644 components/uni-combox/my-uni-combox.vue
create mode 100644 pages/order-manage/dispatch-order.vue
create mode 100644 pages/order-manage/modal/time-arrange-fail.vue
create mode 100644 pages/order-manage/modal/time-arrange.vue
create mode 100644 pages/order-manage/order-manage.vue
diff --git a/common/js/data.js b/common/js/data.js
index e5486e1..6f9d667 100644
--- a/common/js/data.js
+++ b/common/js/data.js
@@ -90,7 +90,7 @@ const masterRules = [
'7规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容',
'8规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容'
]
-
+
// type: 0=升降序,1=功能按钮;order: 0=升序,1=降序;
const taskConditions = [{
code: 'area',
@@ -100,109 +100,197 @@ const taskConditions = [{
title: '品类'
}, {
code: 'distance',
- title: '距离',
- type: 0,
+ title: '距离',
+ type: 0,
value: 0,
}, {
code: 'time',
- title: '时间',
- type: 0,
+ title: '时间',
+ type: 0,
value: 0,
}, {
- code: 'reset',
+ code: 'reset',
type: 1,
title: '重置'
-}]
-
-const tasks = [{
- id: 1,
- title: '清洗-油烟机/油烟机全拆洗+空调挂机',
- tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
- address: '广东省惠州市惠城区小金口街道兴华街10号',
- doorTime: '2022-01-17 12:00:00-12:15:00',
- price: '170.00',
- expeditedPrice: '70.00',
- phoneNum: '13455635441',
- canQuote: true
-}, {
- id: 2,
- title: '清洗-油烟机/油烟机全拆洗+空调挂机',
- tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
- address: '广东省惠州市惠城区小金口街道兴华街10号',
- doorTime: '2022-01-17 12:00:00-12:15:00',
- price: '170.00',
- expeditedPrice: '70.00',
- phoneNum: '13455635442',
- canQuote: true
-}, {
- id: 3,
- title: '清洗-油烟机/油烟机全拆洗+空调挂机',
- tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
- address: '广东省惠州市惠城区小金口街道兴华街10号',
- doorTime: '2022-01-17 12:00:00-12:15:00',
- price: '170.00',
- expeditedPrice: '70.00',
- phoneNum: '13455635443',
- canQuote: true
-}];
-
-const takeCertify = true;
-
-const areaList = [[{
- id: 100,
- name: '广东'
-}, {
- id: 101,
- name: '海南'
-}], [{
- id: 200,
- name: '广州'
-}], [{
- id: 300,
- name: '天河'
-}]]
-
-const categoryList = [[{
- id: 100,
- name: '电器类'
-}, {
- id: 101,
- name: '家政类'
-}], [{
- id: 200,
- name: '全部'
-}], [{
- id: 300,
- name: '全部'
-}]];
-
-const order = {
- id: 1,
- title: '清洗-油烟机/油烟机全拆洗+空调挂机',
- tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
- address: '广东省惠州市惠城区小金口街道兴华街10号',
- doorTime: '2022-01-17 12:00:00-12:15:00',
- price: '170.00',
- expeditedPrice: '70.00',
- phoneNum: '13455635441',
- contactPerson: '周梅',
- picUrl: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big6001.jpg',
- spec: '200*300cm',
- servType: '空调清洗',
- serialId: '12233342345223',
- createTime: '2022-01-17 15:44:32',
- comments: '上门前10分钟先电话联系'
-}
+}]
+
+const tasks = [{
+ id: 1,
+ title: '清洗-油烟机/油烟机全拆洗+空调挂机',
+ tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
+ address: '广东省惠州市惠城区小金口街道兴华街10号',
+ doorTime: '2022-01-17 12:00:00-12:15:00',
+ price: '170.00',
+ expeditedPrice: '70.00',
+ phoneNum: '13455635441',
+ canQuote: true
+}, {
+ id: 2,
+ title: '清洗-油烟机/油烟机全拆洗+空调挂机',
+ tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
+ address: '广东省惠州市惠城区小金口街道兴华街10号',
+ doorTime: '2022-01-17 12:00:00-12:15:00',
+ price: '170.00',
+ expeditedPrice: '70.00',
+ phoneNum: '13455635442',
+ canQuote: true
+}, {
+ id: 3,
+ title: '清洗-油烟机/油烟机全拆洗+空调挂机',
+ tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
+ address: '广东省惠州市惠城区小金口街道兴华街10号',
+ doorTime: '2022-01-17 12:00:00-12:15:00',
+ price: '170.00',
+ expeditedPrice: '70.00',
+ phoneNum: '13455635443',
+ canQuote: true
+}];
+
+const takeCertify = true;
+
+const areaList = [
+ [{
+ id: 100,
+ name: '广东'
+ }, {
+ id: 101,
+ name: '海南'
+ }],
+ [{
+ id: 200,
+ name: '广州'
+ }],
+ [{
+ id: 300,
+ name: '天河'
+ }]
+]
+
+const categoryList = [
+ [{
+ id: 100,
+ name: '电器类'
+ }, {
+ id: 101,
+ name: '家政类'
+ }],
+ [{
+ id: 200,
+ name: '全部'
+ }],
+ [{
+ id: 300,
+ name: '全部'
+ }]
+];
+
+const order = {
+ id: 1,
+ title: '清洗-油烟机/油烟机全拆洗+空调挂机',
+ tag: ['油烟机全拆洗+空调挂机', '京东店铺'],
+ address: '广东省惠州市惠城区小金口街道兴华街10号',
+ doorTime: '2022-01-17 12:00:00-12:15:00',
+ price: '170.00',
+ expeditedPrice: '70.00',
+ phoneNum: '13455635441',
+ contactPerson: '周梅',
+ picUrl: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big6001.jpg',
+ spec: '200*300cm',
+ servType: '空调清洗',
+ serialId: '12233342345223',
+ createTime: '2022-01-17 15:44:32',
+ comments: '上门前10分钟先电话联系'
+}
+
+const myOrders = {
+ summary: {
+ overtimeOrderNum: 336,
+ todayOrderNum: 1,
+ tomorrowOrderNum: 0,
+ urgentMsgOrderNum: 0,
+ newOrderNum: 1
+ },
+ orderList: [{
+ id: 1,
+ title: '清洗空调/挂机内机拆洗(不分匹)',
+ state: '',
+ subState: 'waitServing',
+ tags: [{
+ level: 'info',
+ content: '商城订单'
+ }, {
+ level: 'error',
+ content: '超时未预约'
+ }],
+ name: 'cc',
+ address: '广东省广州市天河区。。。。。。',
+ servTime: '2022-06-01 08:00-08:30',
+ doorTime: '2022-06-01 08:15:00',
+ comments: '备注内容。。。。。。',
+ phoneNum: '13233433467',
+ deadlineDate: '2022-06-01 08:30:00',
+ product: {
+ id: 1,
+ picUrl: 'https://ossweb-img.qq.com/images/lol/web201310/skin/big20000.jpg',
+ name: '柜机空调清洗1',
+ comments: '备---------注',
+ salePrice: 199,
+ price: 250,
+ type: '空调/清洗',
+ servArea: ['天河区', '黄埔区', '荔湾区'],
+ pickedList: [{
+ id: 101,
+ name: '挂机内机拆洗1(不分匹)',
+ valColArr: [{
+ value: 3
+ }, {
+ numberBox: true,
+ max: 3
+ }]
+ }]
+ }
+ }]
+}
+
+const timeRangeList = [
+ '08:00-08:30',
+ '08:30-09:00',
+ '09:00-09:30',
+ '09:30-10:00',
+ '10:00-10:30',
+ '10:30-11:00',
+ '11:00-11:30',
+ '11:30-12:00',
+ '12:00-12:30',
+ '12:30-13:00',
+ '13:00-13:30',
+ '13:30-14:00',
+ '14:00-14:30',
+ '14:30-15:00',
+ '14:30-15:00',
+ '15:00-15:30',
+ '15:30-16:00',
+ '16:00-16:30',
+ '16:30-17:00',
+ '17:00-17:30',
+ '17:30-18:00',
+ '18:00-18:30',
+ '18:30-19:00',
+ '19:00-19:30',
+ '19:30-20:00'
+]
export default {
moduleBarInfos,
myInfo,
myTeamInfo,
masterRules,
- taskConditions,
- tasks,
- takeCertify,
- categoryList,
- areaList,
- order
+ taskConditions,
+ tasks,
+ takeCertify,
+ categoryList,
+ areaList,
+ order,
+ myOrders,
+ timeRangeList
}
diff --git a/common/js/dateUtil.js b/common/js/dateUtil.js
new file mode 100644
index 0000000..cd7df7c
--- /dev/null
+++ b/common/js/dateUtil.js
@@ -0,0 +1,30 @@
+export default {
+ dateCache: null,
+ countDownDiffCache: null,
+ countDownDiff(dateStr) {
+ if (dateStr == this.dateCache) {
+ return this.countDownDiffCache;
+ }
+ let dayTimes = 24*60*60*1000;
+ let hourTimes = 60*60*1000;
+ let minTimes = 60*1000;
+ let secondsTimes = 1000;
+ let dateTimesDiff = new Date(dateStr).getTime() - new Date().getTime();
+ let day = Math.floor(dateTimesDiff / dayTimes);
+ let leftOver = dateTimesDiff % dayTimes;
+ let hour = Math.floor(leftOver / hourTimes);
+ leftOver = leftOver % hourTimes;
+ let min = Math.floor(leftOver / minTimes);
+ leftOver = leftOver % minTimes;
+ let seconds = Math.floor(leftOver / secondsTimes);
+ leftOver = leftOver % secondsTimes;
+ this.dateCache = dateStr;
+ this.countDownDiffCache = {
+ day: day,
+ hour: hour,
+ min: min,
+ seconds: seconds
+ }
+ return this.countDownDiffCache;
+ }
+}
\ No newline at end of file
diff --git a/common/js/glogalFun.js b/common/js/glogalFun.js
index 3285a85..cdfc529 100644
--- a/common/js/glogalFun.js
+++ b/common/js/glogalFun.js
@@ -3,5 +3,8 @@ export default {
CANCEL: 'cacelCallback',
VERTICAL_NAV_GET_ITEM: 'verticalNavGetItem',
VERTICAL_NAV_SEARCH: 'verticalNavSearch',
- CHOOSE_ADDRESS: 'chooseAddress'
+ CHOOSE_ADDRESS: 'chooseAddress',
+ SHOW_ARRANGE_FAIL_TIME: 'showArrangeFailTime',
+ HIDE_MODAL: 'hideModal',
+ SUBMIT_FAIL_REASON: 'submitFailReason'
}
diff --git a/components/goods-card/horizontal-goods-card.vue b/components/goods-card/horizontal-goods-card.vue
new file mode 100644
index 0000000..574b914
--- /dev/null
+++ b/components/goods-card/horizontal-goods-card.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ {{product.name}}
+ {{product.comments}}
+
+
+
+ {{product.salePrice}}
+ ¥{{product.price}}
+
+
+ {{product.type}}
+
+
+
+
+
+
+
+
+ 服务区域
+
+
+ {{product.servArea}}
+
+
+
+
+
+
+
+
diff --git a/components/goods-card/product-picked.vue b/components/goods-card/product-picked.vue
new file mode 100644
index 0000000..458f426
--- /dev/null
+++ b/components/goods-card/product-picked.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+ {{columnTitleArr[0]}}
+
+ {{title}}
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+ {{valCol.value}}
+
+
+ ×{{item.pickedNum}}
+
+ {{item.toServNum == undefined || item.toServNum == null ? item.secondColumnNum : item.toServNum}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/uni-combox/my-uni-combox.vue b/components/uni-combox/my-uni-combox.vue
new file mode 100644
index 0000000..434ee05
--- /dev/null
+++ b/components/uni-combox/my-uni-combox.vue
@@ -0,0 +1,277 @@
+
+
+
+ {{label}}
+
+
+
+
+
+
+
+
+
+
+ {{emptyTips}}
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
index f66a7a0..aca3ed6 100644
--- a/main.js
+++ b/main.js
@@ -5,16 +5,15 @@ import CuCustom from 'colorui/components/cu-custom.vue';
import ConfirmModal from '@/components/modal/confirm-modal.vue';
import Data from './common/js/data.js';
import globalFun from './common/js/glogalFun.js';
-import validate from './common/js/validate.js';
+import validate from './common/js/validate.js';
+import dateUtil from './common/js/dateUtil.js';
Vue.component('cu-custom', CuCustom)
Vue.component('confirm-modal', ConfirmModal);
const data = type => {
//模拟异步请求数据
return new Promise(resolve => {
- setTimeout(() => {
- resolve(Data[type]);
- }, 0)
+ resolve(Data[type]);
})
}
Vue.prototype.$api = {
@@ -22,6 +21,7 @@ Vue.prototype.$api = {
}
Vue.prototype.$globalFun = globalFun;
Vue.prototype.$validate = validate;
+Vue.prototype.$dateUtil = dateUtil;
Vue.config.productionTip = false
diff --git a/pages.json b/pages.json
index 72202b8..63445f7 100644
--- a/pages.json
+++ b/pages.json
@@ -1,7 +1,6 @@
{
"pages": [{
- "path": "pages/index/index"
- // "path": "pages/area-proxy/my-team"
+ "path": "pages/index/index"
}],
"subPackages": [{
"root": "pages/area-proxy/",
@@ -17,6 +16,11 @@
}, {
"path": "demand-detail"
}]
+ }, {
+ "root": "pages/order-manage/",
+ "pages": [{
+ "path": "order-manage"
+ }]
}],
"globalStyle": {
"navigationStyle": "custom",
diff --git a/pages/index/index-home.vue b/pages/index/index-home.vue
index febfc03..3976e16 100644
--- a/pages/index/index-home.vue
+++ b/pages/index/index-home.vue
@@ -122,7 +122,7 @@
name: '查看详情',
color: 'orange',
cuIcon: 'text',
- pageUrl: ''
+ pageUrl: '/pages/order-manage/order-manage'
}, {
id: 3,
title: '叮咚学院',
@@ -217,12 +217,12 @@
.nav-list>navigator:nth-child(even) {
margin-left: 30rpx;
- }
-
- .right-tag {
- background-color: rgba(0, 0, 0, 0.3);
- position: relative;
- right: -30rpx;
- border-radius: 40rpx 0 0 40rpx;
+ }
+
+ .right-tag {
+ background-color: rgba(0, 0, 0, 0.3);
+ position: relative;
+ right: -30rpx;
+ border-radius: 40rpx 0 0 40rpx;
}
diff --git a/pages/order-manage/dispatch-order.vue b/pages/order-manage/dispatch-order.vue
new file mode 100644
index 0000000..4deb5f7
--- /dev/null
+++ b/pages/order-manage/dispatch-order.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+ 派单价格
+
+
+
+
+
+
+
+
+ {{member.name}}
+
+
+
+
+
+
+
+
+
+
+
+ 按金额派出
+
+
+
+
+
+ 请输入派单金额:
+
+
+ 元
+
+
+
+ 取消
+ 确认派单
+
+
+
+
+
+
+
+
+
diff --git a/pages/order-manage/modal/time-arrange-fail.vue b/pages/order-manage/modal/time-arrange-fail.vue
new file mode 100644
index 0000000..1df2e31
--- /dev/null
+++ b/pages/order-manage/modal/time-arrange-fail.vue
@@ -0,0 +1,138 @@
+
+
+
+
+ 上传拨打电话记录截图
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (选填)
+
+ 多次联系客户未接通时,可上传拨打截图确认无法排单,客诉时你无责,确认无法排单后将不计时效
+
+
+ 原因选择:
+
+
+
+
+
+
+
+
+
+
+
+ 确认无法排单
+
+
+
+
+
+
+
+
diff --git a/pages/order-manage/modal/time-arrange.vue b/pages/order-manage/modal/time-arrange.vue
new file mode 100644
index 0000000..3d8c460
--- /dev/null
+++ b/pages/order-manage/modal/time-arrange.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{data.phoneNum}}
+
+
+
+
+ 拨打电话,按与客户约定的时间填入,完成排单,未完成排单将导致排单超时!
+
+
+
+
+ 选择日期:
+
+
+
+
+
+ 选择时间:
+
+
+
+ 或
+
+
+
+
+
+
+
+ 无法排单
+ 按原时间上门
+ 确认
+
+
+
+
+
+
+
+
diff --git a/pages/order-manage/order-manage.vue b/pages/order-manage/order-manage.vue
new file mode 100644
index 0000000..ff63666
--- /dev/null
+++ b/pages/order-manage/order-manage.vue
@@ -0,0 +1,364 @@
+
+
+
+
+
+ 返回
+ 接收的任务
+
+
+
+
+
+ 全部
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 超时单
+ ({{myOrders.summary.overtimeOrderNum}})
+
+
+ 今日单
+ ({{myOrders.summary.todayOrderNum}})
+
+
+ 明日单
+ ({{myOrders.summary.tomorrowOrderNum}})
+
+
+ 急报单
+ ({{myOrders.summary.urgentMsgOrderNum}})
+
+
+ 新订单
+ ({{myOrders.summary.newOrderNum}})
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+ {{order.title}}
+
+ 新
+ 未
+ 待
+ 服
+
+
+ {{tag.content}}
+ {{tag.content}}
+
+
+
+ 姓名:{{order.name}}
+
+
+
+ {{order.address}}
+
+
+
+
+ 上门时间:{{order.doorTime}}
+
+
+
+ 服务时间:{{order.servTime}}
+
+
+
+ 距上门:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 备注:{{order.comments}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/style/default.css b/style/default.css
index 8eb11a4..671fe69 100644
--- a/style/default.css
+++ b/style/default.css
@@ -232,7 +232,7 @@
.radius-input {
border: 1rpx solid rgba(0, 0, 0, 0.1);
border-radius: 10rpx;
- padding: 10rpx;
+ padding: 11rpx;
box-sizing: content-box;
}
@@ -243,4 +243,12 @@
.big-icon {
font-size: 111rpx !important;
+}
+
+.line-input {
+ width: 100%;
+}
+
+.align-baseline {
+ align-items: baseline !important;
}