diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
deleted file mode 100644
index 501e01c..0000000
--- a/.hbuilderx/launch.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ // 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": "remote"
- }
- }
- ]
-}
diff --git a/src/components/order_list/retail/retail.vue b/src/components/order_list/retail/retail.vue
new file mode 100644
index 0000000..c007d6f
--- /dev/null
+++ b/src/components/order_list/retail/retail.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ 订单编号:
+
+
+ 商品名称:
+
+
+ 操作人:
+
+
+ 购买时间:
+
+
+ 合计支付:¥{{ orderInfo.pay_amount || 0 }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/order_list/ym_card/ym_card.vue b/src/components/order_list/ym_card/ym_card.vue
new file mode 100644
index 0000000..97a618d
--- /dev/null
+++ b/src/components/order_list/ym_card/ym_card.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+ 卡名称:
+
+
+ 年月卡号:
+
+
+ 手机号码:
+
+
+ 有效期:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/site/order_modal/order_modal.vue b/src/components/site/order_modal/order_modal.vue
index 7b4b6a9..891972d 100644
--- a/src/components/site/order_modal/order_modal.vue
+++ b/src/components/site/order_modal/order_modal.vue
@@ -67,15 +67,21 @@
预订信息
+ 固定场名称:
+
+ {{ orderInfo.fix_name || '-' }}
+
+
+
预订项目:
- {{ orderInfo.project || ' ' }}
+ {{ orderInfo.project || '-' }}
预订日期:
- {{ orderInfo.date || ' ' }}
+ {{ orderInfo.date || '-' }}
diff --git a/src/js/api.js b/src/js/api.js
index 1789709..4a45add 100644
--- a/src/js/api.js
+++ b/src/js/api.js
@@ -39,7 +39,11 @@ export const API = {
// hardwareOrderList: `${ORIGIN}/admin/stadium/hardware/order/list`, // 硬件管理-订单列表_copy
hardwareOrderList: `${ORIGIN}/admin/assistant/hardware/order/list`, // 硬件管理-订单列表_copy
appointmentOrderList: `${ORIGIN}/admin/gameAppointment/orderList`, // 赛事订单列表_copy
- shop2OrderList: `${ORIGIN}/admin/shop2/orderList`, // 商城订单 - 列表_copy
+ shop2OrderList: `${ORIGIN}/admin/shop2/orderList`, // 商城订单 - 列表_copy交易成功
+ retailOrderList: `${ORIGIN}/admin/erp/retailOrder/list`, // 订单管理-零售订单列表
+
+ // 20211112
+ userMonthlyCardLs: `${ORIGIN}/admin/userMonthlyCard/list`, // 列表用户年月卡-后台
// 营业额统计
turnoverBrand: `${ORIGIN}/admin/assistant/turnover/brand/calc`, // 营业额记录-品牌
@@ -95,6 +99,8 @@ API['writeOff'] = {
listVerifyRecord: `${ORIGIN}/admin/stadium/order/listVerifyRecord`, // 核销记录
enterVerifyOrder: `${ORIGIN}/admin/stadium/order/enterVerifyOrder`, // 商家助手-核销查询-输入验证码
assistantVerify: `${ORIGIN}/admin/stadium/order/assistantVerify`, // 商家助手-核销查询-核销
+ userMonthlyCardVerify: `${ORIGIN}/admin/userMonthlyCard/verify`, // 年月卡核销-后台
+ userMonthlyCardOpenGate: `${ORIGIN}/admin/userMonthlyCard/openGate`, // 年月卡开门-后台
}
export default { ORIGIN, API };
diff --git a/src/js/once_name.js b/src/js/once_name.js
index d32a5a4..4ffcda7 100644
--- a/src/js/once_name.js
+++ b/src/js/once_name.js
@@ -3,8 +3,10 @@
export const WRITE_OFF_STORE_INFO = 'stadium_list';
export const WRITE_OFF_ORDER_INFO = 'order_info';
+export const WRITE_OFF_YM_ORDER_INFO = 'ym_order_info'; // 年月卡订单核销
export default {
WRITE_OFF_STORE_INFO,
WRITE_OFF_ORDER_INFO,
+ WRITE_OFF_YM_ORDER_INFO
}
\ No newline at end of file
diff --git a/src/js/server.js b/src/js/server.js
index e5cebad..9abf488 100644
--- a/src/js/server.js
+++ b/src/js/server.js
@@ -2,6 +2,7 @@ import util from '../utils/util';
// import { app as vm } from '../main';
const islog = true;
+
export class Server {
request(url,data,method,header,isDefaultGet,failMsg){
return new Promise(async (rs,rj)=>{
diff --git a/src/pages.json b/src/pages.json
index 72a67ad..5e7b981 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -134,6 +134,18 @@
}
},
{
+ "path": "pages/write_off/ym_card_gated/ym_card_gated",
+ "style": {
+ "navigationBarTitleText": "核销订单"
+ }
+ },
+ {
+ "path": "pages/write_off/ym_confirm/ym_confirm",
+ "style": {
+ "navigationBarTitleText": "核销订单"
+ }
+ },
+ {
"path": "pages/write_off/confirm/confirm",
"style": {
"navigationBarTitleText": "确认订单信息"
@@ -226,6 +238,12 @@
{
"root": "subpackage/device",
"pages": [
+ {
+ "path": "pages/air_conditioner/detail/detail",
+ "style" : {
+ "navigationBarTitleText": "空调管理"
+ }
+ },
{
"path": "pages/index/index",
"style" : {
@@ -390,6 +408,24 @@
"root": "subpackage/order",
"pages": [
{
+ "path": "pages/retail/detail/detail",
+ "style" : {
+ "navigationBarTitleText": "零售订单详情"
+ }
+ },
+ {
+ "path": "pages/ym_card/use_record/use_record",
+ "style" : {
+ "navigationBarTitleText": " 年月卡使用记录"
+ }
+ },
+ {
+ "path": "pages/ym_card/detail/detail",
+ "style" : {
+ "navigationBarTitleText": "年月卡详情"
+ }
+ },
+ {
"path": "pages/mall/refund_list/refund_list",
"style" : {
"navigationBarTitleText": "退款"
diff --git a/src/pages/order_list/order_list.vue b/src/pages/order_list/order_list.vue
index 4f20478..75353e2 100644
--- a/src/pages/order_list/order_list.vue
+++ b/src/pages/order_list/order_list.vue
@@ -62,13 +62,9 @@
+
+
-
@@ -136,6 +132,8 @@
import mall from '../../components/order_list/mall/mall.vue';
import device from '../../components/order_list/device/device.vue'; // 售货柜/浴室/咖啡
import competition from '../../components/order_list/competition/competition.vue'; // 赛事
+ import retail from '../../components/order_list/retail/retail.vue'; // 零售
+ import ym_card from '../../components/order_list/ym_card/ym_card.vue'; // 年月卡
import util from '../../utils/util';
import { servers } from '../../js/server';
@@ -160,9 +158,12 @@
'mall': mall,
'device': device,
'competition': competition,
+ 'retail': retail,
+ 'ym-card': ym_card,
},
computed:{
isStoreInfo(){
+
let { orderType } = this;
return (
orderType == 3 || orderType == 4 ||
@@ -172,7 +173,8 @@
orderType == 15 || orderType == 16 ||
orderType == 8 || orderType == 7 ||
orderType == 11 || orderType == 6 ||
- orderType == 9
+ orderType == 9 || orderType == 19 ||
+ orderType == 20
)
},
// 分类列表
@@ -419,6 +421,8 @@
if(this.isDevice())return API.hardwareOrderList; // 硬件管理
if(type == 14)return API.appointmentOrderList; // 高光时刻
if(type == 2)return API.shop2OrderList; // 商城订单
+ if(type == 19)return API.retailOrderList; // 零售订单
+ if(type == 20)return API.userMonthlyCardLs; // 列表用户年月卡-后台
},
// 是否为设备,统一接口
isDevice(){
@@ -539,6 +543,10 @@
return '商城订单列表';
case 8:
return '租售柜订单列表';
+ case 19:
+ return '零售订单';
+ case 20:
+ return '年月卡订单';
default:
return '订单'
}
@@ -578,6 +586,10 @@
return [ {id: 'assistant_all', name: '全部'}, {id: 1, name: '待发货'}, {id: 2, name: '已发货'}, {id: 3, name: '交易完成'}, {id: 'after_sale', name: '申请售后中'}, {id: 6, name: '退款完成'}];
case 8: // 租售柜 筛选的 status 全部 1,2,4 租用中 1 已完成 2 已退款4 已购买5
return [ {id: '1,2,4', name: '全部'}, {id: 1, name: '租用中'}, {id: 2, name: '已完成'}, {id: 4, name: '已退款'},{id: 5, name: '已购买'}];
+ case 19: // 订单管理 筛选的 status status = 1 交易成功
+ return [ {id: 1, name: '交易成功'} ];
+ case 20: // 年月卡 筛选的 status 全部 0,1,2,3 待激活 0 使用中 1 已失效 2 已退卡 3
+ return [ {id: '', name: '全部'}, {id: 0, name: '待激活'}, {id: 1, name: '使用中'}, {id: 2, name: '已失效'},{id: 3, name: '已退卡'}];
default:
return []
}
diff --git a/src/pages/site/manage/manage.vue b/src/pages/site/manage/manage.vue
index 9e008d5..cd08bfc 100644
--- a/src/pages/site/manage/manage.vue
+++ b/src/pages/site/manage/manage.vue
@@ -156,9 +156,15 @@ export default {
computed: {
// 场地时间间隔列表
venueTimeList(){
- let { venueList } = this;
- if(!venueList.length || !venueList[0] || !venueList[0].items || !venueList[0].items.length)return [];
+ // return [];
+ let _venueList = this.venueList || []
+ if(!_venueList.length || !_venueList[0] || !_venueList[0].items || !_venueList[0].items.length)return [];
let _obj = {};
+ let _items = _venueList[0].items, _tempArr;
+ _tempArr = _items.reduce((_arr, val)=>_arr.concat(val.durations.split('-')), []);
+ // 对除去最后一个进行去重, 然后尾部拼接最后一个
+ return [...new Set(_tempArr.splice(0, _tempArr.length-2)), _tempArr[_tempArr.length-1]];
+
return ([].concat(...venueList[0].items.map(e=>e.durations&&e.durations.split('-')))).filter(e=>{
let _bol = !!_obj[e];
!_bol?_obj[e] = true:'';
diff --git a/src/pages/write_off/operate/operate.vue b/src/pages/write_off/operate/operate.vue
index a78cace..078fa54 100644
--- a/src/pages/write_off/operate/operate.vue
+++ b/src/pages/write_off/operate/operate.vue
@@ -101,7 +101,11 @@ export default {
util.hideLoad();
if(res.data.code == 0){
let _data = res.data.data || {}
- util.$_emit(WRITE_OFF_ORDER_INFO, {..._data})
+ util.$_emit(WRITE_OFF_ORDER_INFO, {..._data});
+ if(_data.extension&&_data.extension.verify_order_type === 'monthly_card'){
+ util.routeTo(`/pages/write_off/ym_confirm/ym_confirm?type=${type}`, 'nT');
+ return
+ }
util.routeTo(`/pages/write_off/confirm_order/confirm_order?type=${type}`, 'nT');
}else{
util.routeTo(`/pages/write_off/null/null?type=${type}`, 'nT');
diff --git a/src/pages/write_off/ym_card_gated/ym_card_gated.vue b/src/pages/write_off/ym_card_gated/ym_card_gated.vue
new file mode 100644
index 0000000..04e8f41
--- /dev/null
+++ b/src/pages/write_off/ym_card_gated/ym_card_gated.vue
@@ -0,0 +1,127 @@
+
+
+ {{ pageInfo.orderInfo.extension.stadium_name || '-' }}
+ 核销成功
+ 返回继续核销
+ 如需开门,请点击
+
+
+ {{ e.hardware_name || '-' }}
+ 开门
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/write_off/ym_confirm/ym_confirm.vue b/src/pages/write_off/ym_confirm/ym_confirm.vue
new file mode 100644
index 0000000..de43645
--- /dev/null
+++ b/src/pages/write_off/ym_confirm/ym_confirm.vue
@@ -0,0 +1,193 @@
+
+
+
+
+ 持卡人信息
+ 手机号码:{{ orderInfo.mobile || '-' }}
+ 用户昵称:{{ orderInfo.nickname || '-' }}
+
+
+ 照片
+
+
+
+
+ 年月卡信息
+ 年月卡名称:{{ orderInfo.card_info.name || '-' }}
+ 年月卡卡号:{{ orderInfo.card_no || '-' }}
+ 验证码:{{ orderInfo.verify_code || '-' }}
+ 生成时间:{{ orderInfo.created_at || '-' }}
+ 失效时间:{{ orderInfo.expired_at || '-' }}
+
+
+ 确认核销
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/device/pages/air_conditioner/detail/detail.vue b/src/subpackage/device/pages/air_conditioner/detail/detail.vue
new file mode 100644
index 0000000..a9d0c9d
--- /dev/null
+++ b/src/subpackage/device/pages/air_conditioner/detail/detail.vue
@@ -0,0 +1,477 @@
+
+
+ {{ airName || '-' }}
+
+
+
+ 温度
+
+
+
+
+
+ {{ pageInfo.temperature || 0 }}
+ ℃
+
+
+
+
+
+
+
+ 风速
+
+ {{ getSpeedName(pageInfo.speed || 0) }}
+
+
+
+
+
+ 开
+
+
+
+ 关
+
+
+
+
+ 模式
+
+
+
+
+
+ {{ e.name || '-' }}
+
+
+
+
+ 风速
+
+
+
+
+
+ {{ e.name || '-' }}
+
+
+
+
+
+
+ 允许使用按钮
+
+
+
+
+
+ {{ e.name || '-' }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/device/pages/switch_manage/switch_manage.vue b/src/subpackage/device/pages/switch_manage/switch_manage.vue
index 3dc43b9..5c0e8e2 100644
--- a/src/subpackage/device/pages/switch_manage/switch_manage.vue
+++ b/src/subpackage/device/pages/switch_manage/switch_manage.vue
@@ -46,6 +46,10 @@
{{pageInfo.detailName || '-'}}
+
+ 详情
+
+
@@ -58,84 +62,7 @@
import store_name from '../../components/store_name/store_name';
import deviceServer from '../../js/device_server';
import deviceApi from '../../js/device_api';
-const showArr = {
- 's1': {
- id: 1, name: '照明管理', isOpen: true, isClose: true, isLongOpen:true, isTiming:true,
- openIcon: '/subpackage/device/static/images/open.png',closeIcon: '/subpackage/device/static/images/close.png',
- longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
- openName: '开', closeName: '关', longOpenName: '长开', timingName: '定时', hardware_type: 'Light',iconNum:4
- },
- 's2': {
- id: 2, name: '空调管理', isOpen: true, isClose: true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关', hardware_type: 'Air',iconNum:2
- },
- 's3': {
- id: 3, name: '风扇管理', isOpen: true, isClose: true, isLongOpen:true, isTiming:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
- openName: '开', closeName: '关', hardware_type: 'Fan',longOpenName: '长开', timingName: '定时',iconNum:4,
- },
- 's4': {
- id: 4, name: '门禁管理', isOpen: true, isClose: false,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关', hardware_type: 'AccessControl',iconNum:2
- },
- 's5': {
- id: 5, name: '门闸管理', isOpen: true, isClose: true,
- openIcon: '/subpackage/device/static/images/in.png',
- closeIcon: '/subpackage/device/static/images/out.png',
- openName: '进', closeName: '出', hardware_type: 'GateControl',iconNum:2
- },
- 's6': {//TODO 等待接口
- id: 6, name: '平板管理', isOpen: false, isClose: false,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关', hardware_type: 'Router4G',iconNum:2
- },
- 's11': {
- id: 11, name: '水阀管理', isOpen: true, isClose: true,isLongOpen:true, isTiming:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
- openName: '开', closeName: '关', hardware_type: 'WaterValve',longOpenName: '长开', timingName: '定时',iconNum:4,
- },
- 's12': {
- id: 12, name: '互动设备管理', isOpen: true, isClose: true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关', hardware_type: '',iconNum:2
- },
- 's13': {//TODO 等待接口
- id: 13, name: '监控管理', isOpen: false, isClose: false, isDetail:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关',detailName:"详情", hardware_type: 'IotSim',iconNum:2
- },
- 's17': {//TODO 等待接口
- id: 17, name: '窗帘管理', isOpen: false, isClose: false, isDetail:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关',detailName:"详情", hardware_type: 'Router4G',iconNum:2
- },
- 's18': {
- id: 18, name: '路由器管理', isOpen: false, isClose: false, isDetail:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关',detailName:"详情", hardware_type: 'Router4G',iconNum:2
- },
- 's19': {
- id: 19, name: '物联卡管理', isOpen: false, isClose: false, isDetail:true,
- openIcon: '/subpackage/device/static/images/open.png',
- closeIcon: '/subpackage/device/static/images/close.png',
- openName: '开', closeName: '关',detailName:"详情", hardware_type: 'IotSim',iconNum:2
- },
-
-}
import { mapState } from 'vuex';
import util from '../../../../utils/util';
@@ -180,7 +107,7 @@ export default {
}
},
onLoad(options){
- let _pageInfo = showArr[`s${options.sid}`] || {};
+ let _pageInfo = getShowArr(`s${options.sid}`) || {};
this.pageInfo = _pageInfo;
uni.setNavigationBarTitle({ title: _pageInfo.name });
@@ -190,7 +117,21 @@ export default {
})
},
methods: {
-
+ isDetailBtn(e){
+ if(e&&e.toString() === "[object Object]"){
+ return e.hardware_model == 'XiaoHuiXiong'
+ }
+ return false;
+ },
+ toDeviceDetail(e){
+ console.warn(e);
+ console.warn(this.getSwitchStatusQuery(e));
+ let _queryObj = this.getSwitchStatusQuery(e) || {};
+ if(!_queryObj.data || !_queryObj.data.name || !_queryObj.data.value)return;
+ _queryObj.data.value&&_queryObj.data.value.op&&(_queryObj.data.value.op = 'info');
+ let _qrStr = util.jsonStr(_queryObj);
+ if(e.hardware_type == "Air")return util.routeTo(`/subpackage/device/pages/air_conditioner/detail/detail?qrstr=${_qrStr}&name=${e.hardware_name || '-'}`, 'nT');
+ },
getDeviceList({
stadium_id,
hardware_type,
@@ -405,7 +346,7 @@ export default {
// status -> 开关状态 0 -> 关(右), 1 -> 开(左)
// 数据结构参考 src\subpackage\device\js\ouxuanac.md
// 空调开关数据结构独立判断处理 hardware_type === 'Air'
- getSwitchQuery({ switchInfo, status }){
+ getSwitchQuery({ switchInfo, status = '' }){
let {
hardware_connect_method,
hardware_type,
@@ -486,7 +427,8 @@ export default {
let _obj = {
'acmelec': 'acmelec',
'zhongnan': 'zhongnan',
- 'jianda': 'ray-air-rs'
+ 'jianda': 'ray-air-rs',
+ "xiaohuixiong":"xhx-lora-air-tcp"
};
return _obj[this.changeLowerCase(hardware_model)] || '';
},
@@ -497,6 +439,88 @@ export default {
}
}
}
+
+function getShowArr(key){
+ let _obj = {
+ 's1': {
+ id: 1, name: '照明管理', isOpen: true, isClose: true, isLongOpen:true, isTiming:true,
+ openIcon: '/subpackage/device/static/images/open.png',closeIcon: '/subpackage/device/static/images/close.png',
+ longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
+ openName: '开', closeName: '关', longOpenName: '长开', timingName: '定时', hardware_type: 'Light',iconNum:4
+ },
+ 's2': {
+ id: 2, name: '空调管理', isOpen: true, isClose: true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关', hardware_type: 'Air',iconNum:2
+ },
+ 's3': {
+ id: 3, name: '风扇管理', isOpen: true, isClose: true, isLongOpen:true, isTiming:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
+ openName: '开', closeName: '关', hardware_type: 'Fan',longOpenName: '长开', timingName: '定时',iconNum:4,
+ },
+ 's4': {
+ id: 4, name: '门禁管理', isOpen: true, isClose: false,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关', hardware_type: 'AccessControl',iconNum:2
+ },
+ 's5': {
+ id: 5, name: '门闸管理', isOpen: true, isClose: true,
+ openIcon: '/subpackage/device/static/images/in.png',
+ closeIcon: '/subpackage/device/static/images/out.png',
+ openName: '进', closeName: '出', hardware_type: 'GateControl',iconNum:2
+ },
+ 's6': {//TODO 等待接口
+ id: 6, name: '平板管理', isOpen: false, isClose: false,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关', hardware_type: 'Router4G',iconNum:2
+ },
+ 's11': {
+ id: 11, name: '水阀管理', isOpen: true, isClose: true,isLongOpen:true, isTiming:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ longOpenIcon: '/subpackage/device/static/images/longOpen.png',timingIcon: '/subpackage/device/static/images/timing.png',
+ openName: '开', closeName: '关', hardware_type: 'WaterValve',longOpenName: '长开', timingName: '定时',iconNum:4,
+ },
+ 's12': {
+ id: 12, name: '互动设备管理', isOpen: true, isClose: true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关', hardware_type: '',iconNum:2
+ },
+ 's13': {//TODO 等待接口
+ id: 13, name: '监控管理', isOpen: false, isClose: false, isDetail:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关',detailName:"详情", hardware_type: 'IotSim',iconNum:2
+ },
+ 's17': {//TODO 等待接口
+ id: 17, name: '窗帘管理', isOpen: false, isClose: false, isDetail:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关',detailName:"详情", hardware_type: 'Router4G',iconNum:2
+ },
+ 's18': {
+ id: 18, name: '路由器管理', isOpen: false, isClose: false, isDetail:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关',detailName:"详情", hardware_type: 'Router4G',iconNum:2
+ },
+ 's19': {
+ id: 19, name: '物联卡管理', isOpen: false, isClose: false, isDetail:true,
+ openIcon: '/subpackage/device/static/images/open.png',
+ closeIcon: '/subpackage/device/static/images/close.png',
+ openName: '开', closeName: '关',detailName:"详情", hardware_type: 'IotSim',iconNum:2
+ },
+
+
+ }
+ return _obj[key] || {}
+}
\ No newline at end of file
diff --git a/src/subpackage/device/static/images/air_conditioner/close.png b/src/subpackage/device/static/images/air_conditioner/close.png
new file mode 100644
index 0000000..f325981
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/close.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/heating.png b/src/subpackage/device/static/images/air_conditioner/heating.png
new file mode 100644
index 0000000..4e3db47
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/heating.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/in_under_heating.png b/src/subpackage/device/static/images/air_conditioner/in_under_heating.png
new file mode 100644
index 0000000..0471160
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/in_under_heating.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/lock.png b/src/subpackage/device/static/images/air_conditioner/lock.png
new file mode 100644
index 0000000..93deb16
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/lock.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/normal.png b/src/subpackage/device/static/images/air_conditioner/normal.png
new file mode 100644
index 0000000..fb849b9
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/normal.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/open.png b/src/subpackage/device/static/images/air_conditioner/open.png
new file mode 100644
index 0000000..659a311
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/open.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/refrigeration.png b/src/subpackage/device/static/images/air_conditioner/refrigeration.png
new file mode 100644
index 0000000..eaa8418
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/refrigeration.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/switch.png b/src/subpackage/device/static/images/air_conditioner/switch.png
new file mode 100644
index 0000000..e60bf9f
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/switch.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/temp_add.png b/src/subpackage/device/static/images/air_conditioner/temp_add.png
new file mode 100644
index 0000000..2c895cf
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/temp_add.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/temp_reduce.png b/src/subpackage/device/static/images/air_conditioner/temp_reduce.png
new file mode 100644
index 0000000..72889be
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/temp_reduce.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/under_heating.png b/src/subpackage/device/static/images/air_conditioner/under_heating.png
new file mode 100644
index 0000000..d3971ca
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/under_heating.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/ventilate.png b/src/subpackage/device/static/images/air_conditioner/ventilate.png
new file mode 100644
index 0000000..a97ffcf
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/ventilate.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/wind_0.png b/src/subpackage/device/static/images/air_conditioner/wind_0.png
new file mode 100644
index 0000000..70d3f5d
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/wind_0.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/wind_1.png b/src/subpackage/device/static/images/air_conditioner/wind_1.png
new file mode 100644
index 0000000..a82bba1
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/wind_1.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/wind_2.png b/src/subpackage/device/static/images/air_conditioner/wind_2.png
new file mode 100644
index 0000000..c7be0ca
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/wind_2.png differ
diff --git a/src/subpackage/device/static/images/air_conditioner/wind_3.png b/src/subpackage/device/static/images/air_conditioner/wind_3.png
new file mode 100644
index 0000000..1f0d17c
Binary files /dev/null and b/src/subpackage/device/static/images/air_conditioner/wind_3.png differ
diff --git a/src/subpackage/order/js/api.js b/src/subpackage/order/js/api.js
index 6665d7c..b177948 100644
--- a/src/subpackage/order/js/api.js
+++ b/src/subpackage/order/js/api.js
@@ -23,6 +23,11 @@ export const ORDER_API = {
orderGoodsRefund:`${ORIGIN}/admin/shop2/orderGoodsRefund`, // 商城-商品退款_copy
rentballOrderEnd:`${ORIGIN}/admin/assistant/rentball/order/end`, // 租球机-结束计费
leaseOrderEnd:`${ORIGIN}/admin/stadium/leaseOrder/endBill`, // 租售柜-结束计费
+ retailOrderInfo:`${ORIGIN}/admin/erp/retailOrder/info`, // 订单管理-零售订单详情
+ userMonthlyCardInfo:`${ORIGIN}/admin/userMonthlyCard/get`, // 详情用户年月卡-后台
+ ymCardInfoFace:`${ORIGIN}/upload/file/ym_card_face`, // 年月卡用户头像上传
+ ymCardInfoFaceSave:`${ORIGIN}/admin/userMonthlyCard/updateFace`, // 年月卡用户头像保存
+ ymCardUsage:`${ORIGIN}/admin/userMonthlyCard/usages`, // 用户年月卡使用记录-后台
}
diff --git a/src/subpackage/order/pages/mall/check_logistic/check_logistic.vue b/src/subpackage/order/pages/mall/check_logistic/check_logistic.vue
index 51806b9..b8f1bca 100644
--- a/src/subpackage/order/pages/mall/check_logistic/check_logistic.vue
+++ b/src/subpackage/order/pages/mall/check_logistic/check_logistic.vue
@@ -13,7 +13,7 @@
{{ k.product_name || '-' }}
- 共{{ e.logistics_product_lite_list.length || 0 }}件商品
+ 共{{ totalGoodsNum || 0 }}件商品
@@ -32,6 +32,15 @@ export default {
}
return []
},
+ totalGoodsNum(){
+ let { orderInfo } = this;
+ if(!orderInfo)return 0;
+ let _ls = orderInfo.product_order_goods || [];
+ return _ls.reduce((total, item)=>{
+ total += +item.product_nums || 0;
+ return total
+ }, 0)
+ }
},
onLoad(options){
this.getInfo(options.order_no);
diff --git a/src/subpackage/order/pages/mall/refund_operate/refund_operate.vue b/src/subpackage/order/pages/mall/refund_operate/refund_operate.vue
index 3b34291..fa78a91 100644
--- a/src/subpackage/order/pages/mall/refund_operate/refund_operate.vue
+++ b/src/subpackage/order/pages/mall/refund_operate/refund_operate.vue
@@ -17,7 +17,7 @@
- 共{{ refundLs.length || 0 }}件
+ 共{{ totalGoodsNum || 0 }}件
@@ -69,6 +69,15 @@ export default {
// return _selectedArr.includes((ele.product_id + ''));
// })
},
+ totalGoodsNum(){
+ let { orderInfo } = this;
+ if(!orderInfo)return 0;
+ let _ls = orderInfo.product_order_goods || [];
+ return _ls.reduce((total, item)=>{
+ total += +item.product_nums || 0;
+ return total
+ }, 0)
+ }
},
data(){
return {
diff --git a/src/subpackage/order/pages/mall/send_out/send_out.vue b/src/subpackage/order/pages/mall/send_out/send_out.vue
index df81259..36f153e 100644
--- a/src/subpackage/order/pages/mall/send_out/send_out.vue
+++ b/src/subpackage/order/pages/mall/send_out/send_out.vue
@@ -47,11 +47,14 @@
{{ e.product_name || '-' }}
-
-
- {{ k + ';' }}
+
+
+
+ {{ k + ';' }}
+
+ ×{{ e.product_nums || 0 }}
@@ -141,7 +144,7 @@
{{ k.product_name || '-' }}
- 共{{ e.logistics_product_lite_list.length || 0 }}件商品
+ 共{{ e.logistics_product_total || 0 }}件商品
@@ -495,6 +498,7 @@ export default {
}
.oi-info{
align-self: flex-start;
+ flex-grow: 1;
.oi-tit{
margin-bottom: 12upx;
line-height: 40upx;
@@ -503,12 +507,21 @@ export default {
@include textHide(2);
}
.oi-spec{
+ height: 34upx;
+ line-height: 34upx;
+ font-size: 24upx;
+ color: #1a1a1a;
+ @include textHide(1);
+ }
+ .oi-amount{
line-height: 34upx;
font-size: 24upx;
color: #9a9a9d;
+ text-align: right;
@include textHide(1);
}
}
+
}
}
}
diff --git a/src/subpackage/order/pages/order_manage/order_manage.vue b/src/subpackage/order/pages/order_manage/order_manage.vue
index 7ddd02a..59bdeb2 100644
--- a/src/subpackage/order/pages/order_manage/order_manage.vue
+++ b/src/subpackage/order/pages/order_manage/order_manage.vue
@@ -38,7 +38,7 @@ export default {
util.routeTo(getTabRoutePath() + `?order_type=${ele.orderType}`,'nT');
},
isFinish(key){
- let _endKeyArr = [ 1, 2, 3, 4, 5, 7, 9, 10, 14, 16, 15, 13, 6, 8, 11, 12 ];
+ let _endKeyArr = [ 1, 2, 3, 4, 5, 7, 9, 10, 14, 16, 15, 13, 6, 8, 11, 12, 18, 19];
return _endKeyArr.includes(key);
}
}
@@ -59,11 +59,13 @@ function getTabList(){
{ id: 2, name: '次卡订单', key: 2, iconName: 'order_2', orderType: 3 },
{ id: 3, name: '计时订单', key: 3, iconName: 'order_6', orderType: 1 },
{ id: 4, name: '储值卡订单', key: 4, iconName: 'order_1', orderType: 18 },
+ { id: 10, name: '年月卡订单', key: 19, iconName: 'order_19', orderType: 20 },
{ id: 5, name: '课程订单', key: 5, iconName: 'order_8', orderType: 12 },
{ id: 6, name: '赛事订单', key: 6, iconName: 'order_9', orderType: 14 },
{ id: 7, name: '约玩订单', key: 7, iconName: 'order_15', orderType: 10 },
{ id: 8, name: '商城订单', key: 8, iconName: 'order_4', orderType: 2 },
{ id: 9, name: '积分兑换订单', key: 9, iconName: 'order_5', orderType: 5 },
+ { id: 9, name: '零售订单', key: 18, iconName: 'order_18', orderType: 19 },
]
}
diff --git a/src/subpackage/order/pages/retail/detail/detail.vue b/src/subpackage/order/pages/retail/detail/detail.vue
new file mode 100644
index 0000000..76e76f9
--- /dev/null
+++ b/src/subpackage/order/pages/retail/detail/detail.vue
@@ -0,0 +1,140 @@
+
+
+
+
+ 商品详情
+
+
+
+
+ 商品名称:
+
+
+ 数量:
+
+
+ 价格:
+
+
+
+ 合计支付:¥{{ orderInfo.pay_amount || 0 }}
+
+
+
+ 支付详情
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/order/pages/ym_card/detail/detail.vue b/src/subpackage/order/pages/ym_card/detail/detail.vue
new file mode 100644
index 0000000..aea6fd7
--- /dev/null
+++ b/src/subpackage/order/pages/ym_card/detail/detail.vue
@@ -0,0 +1,295 @@
+
+
+
+
+ {{ orderInfo.extension.name || '-' }}
+
+ 年月卡名称:{{ orderInfo.card_info.name || '-' }}
+ 年月卡卡号:{{ orderInfo.card_no || '-' }}
+ 有效期:至{{ orderInfo.expired_at || '-' }}
+
+
+ 使用记录
+
+
+
+
+
+
+
+ 持卡人信息
+
+ 手机号码:
+
+
+ 用户昵称:
+
+ 照片:更改照片
+
+
+
+
+ 购卡信息
+ 年月卡名称:{{ orderInfo.card_info.name || '-' }}
+
+
+
+
+ 合计支付:¥ {{ orderInfo.extension.pay_amount || '0' }}
+
+
+
+ 支付信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/order/pages/ym_card/use_record/use_record.vue b/src/subpackage/order/pages/ym_card/use_record/use_record.vue
new file mode 100644
index 0000000..7cfd56f
--- /dev/null
+++ b/src/subpackage/order/pages/ym_card/use_record/use_record.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ 验证方式:{{ e.enter_desc || '-' }}
+ 核销时间:{{ e.enter_time || '-' }}
+ 离场时间:{{ e.leave_time || '-' }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/order/static/images/order_manage/order_18.png b/src/subpackage/order/static/images/order_manage/order_18.png
new file mode 100644
index 0000000..a8bafe4
Binary files /dev/null and b/src/subpackage/order/static/images/order_manage/order_18.png differ
diff --git a/src/subpackage/order/static/images/order_manage/order_19.png b/src/subpackage/order/static/images/order_manage/order_19.png
new file mode 100644
index 0000000..d22492d
Binary files /dev/null and b/src/subpackage/order/static/images/order_manage/order_19.png differ
diff --git a/src/subpackage/order/static/images/ym_card/status_1.png b/src/subpackage/order/static/images/ym_card/status_1.png
new file mode 100644
index 0000000..df53809
Binary files /dev/null and b/src/subpackage/order/static/images/ym_card/status_1.png differ
diff --git a/src/subpackage/order/static/images/ym_card/status_2.png b/src/subpackage/order/static/images/ym_card/status_2.png
new file mode 100644
index 0000000..72cd44b
Binary files /dev/null and b/src/subpackage/order/static/images/ym_card/status_2.png differ
diff --git a/src/subpackage/order/static/images/ym_card/status_3.png b/src/subpackage/order/static/images/ym_card/status_3.png
new file mode 100644
index 0000000..04ad712
Binary files /dev/null and b/src/subpackage/order/static/images/ym_card/status_3.png differ