1.对接设备申请、设备绑定、设备管理功能

huipay-master
杨杰 2 years ago
parent 30e8656005
commit fe16280d0c
  1. 8
      App.vue
  2. 139
      Utils/Api.js
  3. 3
      Utils/js/date.js
  4. 7
      manifest.json
  5. 13
      node_modules/.package-lock.json
  6. 30
      node_modules/jweixin-module/README.md
  7. 1
      node_modules/jweixin-module/lib/index.js
  8. 26
      node_modules/jweixin-module/package.json
  9. 27
      package-lock.json
  10. 7
      package.json
  11. 66
      pages.json
  12. 257
      pages/index/addService/addService.vue
  13. 793
      pages/index/addStore/addStore.vue
  14. 31
      pages/index/doorManage/doorManage.vue
  15. 847
      pages/index/merchant-incoming-parts/merchant-incoming-parts.vue
  16. 274
      pages/index/mineService/mineService.vue
  17. 229
      pages/index/salesOrderList/salesOrderList.vue
  18. 134
      pages/index/serviceApplicationList/serviceApplicationList.vue
  19. 140
      pages/index/serviceOrderDetails/serviceOrderDetails.vue
  20. 48
      pages/index/store-details/store-details.vue
  21. 32
      pages/tabBar/home/home.vue
  22. 72
      pages/welcome/welcome.vue
  23. BIN
      static/img/apply.png
  24. BIN
      static/img/casihr.png
  25. BIN
      static/img/downj.png
  26. 4
      uni.scss
  27. 4
      unpackage/dist/build/h5/index.html
  28. BIN
      unpackage/dist/build/h5/static/img/businesslic9.f8d0bbb9.png
  29. 1
      unpackage/dist/build/h5/static/index.a5c69d49.css
  30. 7
      unpackage/dist/build/h5/static/js/chunk-vendors.5a385107.js
  31. 1
      unpackage/dist/build/h5/static/js/pages-index-collection-record-collection-record.afbc6804.js
  32. 1
      unpackage/dist/build/h5/static/js/pages-index-index.f6250fb7.js
  33. 1
      unpackage/dist/build/h5/static/js/pages-index-mcc-list-mcc-list~pages-index-merchant-incoming-parts-merchant-incoming-parts.9c345664.js
  34. 1
      unpackage/dist/build/h5/static/js/pages-index-merchant-list-merchant-list.cb0d3f82.js
  35. 1
      unpackage/dist/build/h5/static/js/pages-index-message-center-message-center.f4524794.js
  36. 1
      unpackage/dist/build/h5/static/js/pages-tabBar-user-user.35b49c84.js
  37. BIN
      unpackage/dist/build/h5/归档.zip

@ -7,11 +7,11 @@
// url: 'https://pay.bxb.cn/crest',
// imgUrl: 'https://xuan-pay-private.obs.cn-southwest-2.myhuaweicloud.com',
//
url: 'https://paycs.dctpay.com/crest',
url: 'https://gratia-pay.dctpay.com/crest',
imgUrl: 'https://xuan-pay-private.obs.cn-southwest-2.myhuaweicloud.com',
userInfo: "",
openId: '',
code: '',
h5code: '',
token: '',
//id
businessid:'',
@ -20,7 +20,9 @@
//mccid
mccid:'',
//mcc
mccname:''
mccname:'',
//
Dictionaries:''
},
onLaunch: function() {
let that = this;

@ -6,6 +6,10 @@ let base = app.globalData.url;
// 登录接口
export const userLogin = params => {
return POST('POST', `${base}/login/userLogin`, params).then(res => res.data);
}
//获取openid
export const getAccessToken = params => {
return POST('GET', `${base}/wechat/getAccessToken`, params).then(res => res.data);
}
//退出登录
export const logout = params => {
@ -15,6 +19,12 @@ export const logout = params => {
export const recognizeBankCard = params => {
return POST('GET', `${base}/ocr/recognizeBankCard`, params).then(res => res.data);
}
//访问临时路径
export const getImgSignedUrl = params => {
return POST('POST', `${base}/fileUpload/getImgSignedUrl`, params).then(res => res.data);
}
//营业执照识别
export const recognizeBusinessLicense = params => {
return POST('GET', `${base}/ocr/recognizeBusinessLicense`, params).then(res => res.data);
@ -39,83 +49,128 @@ export const configMerAccount = params => {
//查询商户详情
export const getMerDetail = params => {
return POST('GET', `${base}/mer/getMerDetail`, params).then(res => res.data);
}
//第二步商户基本信息
}
//第二步商户基本信息
export const configMerBasis = params => {
return POST('POST', `${base}/mer/configMerBasis`, params).then(res => res.data);
}
//第三步商户结算信息
}
//第三步商户结算信息
export const configMerSettlement = params => {
return POST('POST', `${base}/mer/configMerSettlement`, params).then(res => res.data);
}
//第四步商户门店信心
}
//第四步商户门店信心
export const configMerStore = params => {
return POST('POST', `${base}/mer/configMerStore`, params).then(res => res.data);
}
//业务员查询商户
}
//业务员查询商户
export const getMerListBySalesman = params => {
return POST('GET', `${base}/mer/getMerListBySalesman`, params).then(res => res.data);
}
//业务员查询mcc
}
//业务员查询mcc
export const getLklMcc = params => {
return POST('GET', `${base}/common/getLklMcc`, params).then(res => res.data);
}
//业务员查询费率类型
//查询所有数据字典
export const getDictionaries = params => {
return POST('GET', `${base}/common/getDictionaries`, params).then(res => res.data);
}
//查询数据字典
export const getDictionaryByCodeType = params => {
return POST('GET', `${base}/common/getDictionaryByCodeType`, params).then(res => res.data);
}
//查询商户门店
}
//查询商户门店
export const getStoreListByMer = params => {
return POST('GET', `${base}/store/getStoreListByMer`, params).then(res => res.data);
}
//查询商户门店详情
}
//查询商户门店详情
export const getStoreDetailById = params => {
return POST('GET', `${base}/store/getStoreDetailById`, params).then(res => res.data);
}
//商户添加门店
}
//商户添加门店
export const configStore = params => {
return POST('POST', `${base}/store/configStore`, params).then(res => res.data);
}
// ---------- 设备 ----------
//查询设备列表
export const getDeviceList = params => {
return POST('GET', `${base}/device/getDeviceList`, params).then(res => res.data);
}
//订单分配设备
export const assignOrder = params => {
return POST('POST', `${base}/deviceOrder/assignOrder`, params).then(res => res.data);
}
//查询设备订单列表
export const getOrderList = params => {
return POST('GET', `${base}/deviceOrder/getOrderList`, params).then(res => res.data);
}
//查询订单详情
export const getOrderDetail = params => {
return POST('GET', `${base}/deviceOrder/getOrderDetail`, params).then(res => res.data);
}
//支付订单
export const payOrder = params => {
return POST('POST', `${base}/deviceOrderPay/payOrder`, params).then(res => res.data);
}
//创建设备订单
export const createDeviceOrder = params => {
return POST('POST', `${base}/deviceOrder/createDeviceOrder`, params).then(res => res.data);
}
//查询设备价格
export const getDevicePrice = params => {
return POST('GET', `${base}/device/getDevicePrice`, params).then(res => res.data);
}
//门店添加设备
export const bindStoreDevice = params => {
return POST('POST', `${base}/device/bindStoreDevice`, params).then(res => res.data);
}
//业务员查询设备列表
export const getSalesmanDeviceList = params => {
return POST('GET', `${base}/device/getSalesmanDeviceList`, params).then(res => res.data);
//更换设备
export const replace = params => {
return POST('POST', `${base}/deviceOrder/replace`, params).then(res => res.data);
}
//门店查询设备列表
export const getStoreDeviceList = params => {
return POST('GET', `${base}/device/getStoreDeviceList`, params).then(res => res.data);
// 订单退款
export const orderRefund = params => {
return POST('POST', `${base}/deviceOrder/orderRefund`, params).then(res => res.data);
}
// ----------------
//业务员查询统计
// //门店添加设备
// export const bindStoreDevice = params => {
// return POST('POST', `${base}/device/bindStoreDevice`, params).then(res => res.data);
// }
// //业务员查询设备列表
// export const getSalesmanDeviceList = params => {
// return POST('GET', `${base}/device/getSalesmanDeviceList`, params).then(res => res.data);
// }
// //门店查询设备列表
// export const getStoreDeviceList = params => {
// return POST('GET', `${base}/device/getStoreDeviceList`, params).then(res => res.data);
// }
//业务员查询统计
export const moveHomeCount = params => {
return POST('POST', `${base}/salesman/moveHomeCount`, params).then(res => res.data);
}
//商户查询统计
}
//商户查询统计
export const mermoveHomeCount = params => {
return POST('POST', `${base}/mer/moveHomeCount`, params).then(res => res.data);
}
//门店查询统计
}
//门店查询统计
export const storemoveHomeCount = params => {
return POST('POST', `${base}/store/moveHomeCount`, params).then(res => res.data);
}
// 查询交易订单列表
}
// 查询交易订单列表
export const getTradeOrderList = params => {
return POST('GET', `${base}/tradeOrder/getTradeOrderList`, params).then(res => res.data);
}
//业务员绑定门店二维码
}
//业务员绑定门店二维码
export const bindStore = params => {
return POST('POST', `${base}/payQrCode/bindStore`, params).then(res => res.data);
}
//业务员查询二维码列表
}
//业务员查询二维码列表
export const getSalesmanQrCodeList = params => {
return POST('GET', `${base}/payQrCode/getSalesmanQrCodeList`, params).then(res => res.data);
}
//门店查询二维码列表
}
//门店查询二维码列表
export const getStoreQrCodeList = params => {
return POST('GET', `${base}/payQrCode/getStoreQrCodeList`, params).then(res => res.data);
}

@ -23,6 +23,9 @@ const timeFormat = (value, format) => {
if (format == "yyyy-mm-dd") {
result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} `;
}
if (format == "yyyy-mm-dd hh:mm:ss") {
result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${h < 10 ? "0" + h : h}:${min < 10 ? "0" + min : min}:${s < 10 ? "0" + s : s}`;
}
if (format == "yyyy-mm") {
result = `${y}-${m < 10 ? "0" + m : m}`;
}

@ -1,5 +1,5 @@
{
"name" : "帮寻宝",
"name" : "惠支付",
"appid" : "__UNI__190622D",
"description" : "",
"versionName" : "1.0.0",
@ -74,6 +74,9 @@
"base" : "/cweb",
"mode" : "hash"
},
"title" : "炫支付"
"title" : "惠支付",
"devServer" : {
"https" : false
}
}
}

13
node_modules/.package-lock.json generated vendored

@ -0,0 +1,13 @@
{
"name": "基于uview职位分类选择,具备模糊搜索功能,使用更方便",
"version": "1.1.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"node_modules/jweixin-module": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
}
}
}

@ -0,0 +1,30 @@
# jweixin-module
微信JS-SDK
## 安装
### NPM
```shell
npm install jweixin-module --save
```
### UMD
```http
https://unpkg.com/jweixin-module/out/index.js
```
## 使用
```js
var jweixin = require('jweixin-module')
jweixin.ready(function(){
// TODO
});
```
## 完整API
>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115)

File diff suppressed because one or more lines are too long

@ -0,0 +1,26 @@
{
"name": "jweixin-module",
"version": "1.6.0",
"description": "微信JS-SDK",
"main": "lib/index.js",
"scripts": {},
"repository": {
"type": "git",
"url": "git+https://github.com/zhetengbiji/jweixin-module.git"
},
"keywords": [
"wxjssdk",
"weixin",
"jweixin",
"wechat",
"jssdk",
"wx"
],
"author": "Shengqiang Guo",
"license": "ISC",
"bugs": {
"url": "https://github.com/zhetengbiji/jweixin-module/issues"
},
"homepage": "https://github.com/zhetengbiji/jweixin-module#readme",
"devDependencies": {}
}

27
package-lock.json generated

@ -0,0 +1,27 @@
{
"name": "基于uview职位分类选择,具备模糊搜索功能,使用更方便",
"version": "1.1.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "基于uview职位分类选择,具备模糊搜索功能,使用更方便",
"version": "1.1.1",
"dependencies": {
"jweixin-module": "^1.6.0"
}
},
"node_modules/jweixin-module": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
}
},
"dependencies": {
"jweixin-module": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
}
}
}

@ -7,5 +7,8 @@
"职位选择",
"职位分类",
"分类模糊搜索"
]
}
],
"dependencies": {
"jweixin-module": "^1.6.0"
}
}

@ -12,6 +12,54 @@
}
}
}, {
"path" : "pages/welcome/welcome",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
}
}
}, {
"path": "pages/index/serviceApplicationList/serviceApplicationList",
"style": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "设备申请列表",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
}
}
}, {
"path": "pages/index/serviceOrderDetails/serviceOrderDetails",
"style": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "订单详情",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
}
}
}, {
"path": "pages/index/mineService/mineService",
"style": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "我的设备",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
}
}
}, {
"path": "pages/tabBar/home/home",
"style": {
@ -231,9 +279,21 @@
"softinputNavBar": "none"
}
}
}
],
},{
"path" : "pages/index/salesOrderList/salesOrderList",
"style" :
{
"navigationBarTitleText": "设备订单",
"navigationBarTextStyle": "white",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": false, //
"softinputNavBar": "none"
}
}
}
],
"subpackages": [{
"root": "subPages",

@ -1,95 +1,248 @@
<template>
<view>
<view class="contents">
<input class="inputs" maxlength="20" v-model="codenums" placeholder-style="color:#ffffff;"
placeholder="请输入设备的SN号" />
<button class="btns" @click="configStoreDevice">确认</button>
<view>
<view class="username">
<view class="namecont font15">设备类型</view>
<picker mode="selector" style="width: 70%;" :range="serviceType" range-key="codeName"
@change="bindUserCard">
<view class=" text1 fotrt marRight10 font14" v-if="serviceName">
{{serviceName}}
</view>
<view class=" text1 fotrt marRight10 fcor666 font14" v-else>
请选择设备类型
</view>
</picker>
<image class="flright" style="width: 15px;height: 15px;" src="../../../static/img/downj.png">
</image>
</view>
<view class="username">
<view class="namecont font15">购买方式</view>
<picker mode="selector" style="width: 70%;" :range="moneyType" range-key="codeName" @change="bindUserCard1">
<view class=" text1 fotrt marRight10 font14" v-if="payName">
{{payName}}
</view>
<view class=" text1 fotrt marRight10 fcor666 font14" v-else>
请选择购买方式
</view>
</picker>
<image class="flright" style="width: 15px;height: 15px;" src="../../../static/img/downj.png">
</image>
</view>
<view class="username">
<view class="namecont">设备单价</view>
<input placeholder="请输入设备单价" v-model="unitPrice" style="width: 70%;" disabled="true"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">设备数量</view>
<input placeholder="请输入设备数量" v-model="servienum" style="width: 70%;" disabled="true"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="width80 font16 mart30 fotrt fcoreb5">
支付金额: <text class="font24 margle">¥{{payPrice}}</text>
</view>
<button class="btns" @click="createDeviceOrder">确认</button>
</view>
</template>
<script>
import {
configStoreDevice
getDevicePrice,
createDeviceOrder,
payOrder
} from '../../../Utils/Api.js';
let app = getApp();
// #ifdef H5
var jweixin = require('jweixin-module');
// #endif
export default {
data() {
return {
codenums: '', //sn
userInfo: app.globalData.userInfo,
storeid: '' // id
// storeid: '', // id
servienum: 1, //
serviceType: [], //
moneyType: [], //
serviceid: '', //id
serviceName: '', //
payid: '', //id
payName: '', //
unitPrice: 0, //
payPrice: 0 //
}
},
onLoad(options) {
this.storeid = options.storeId;
this.serviceType = app.globalData.Dictionaries.DEVICE_TYPE;
this.moneyType = app.globalData.Dictionaries.DEVICE_ORDER_TYPE;
},
methods: {
//
configStoreDevice() {
if (!this.codenums) {
uni.showToast({
title: '请填写设备SN号',
icon: "none",
duration: 2000
});
//
getDevicePrice() {
if (!this.payid) {
return;
}
uni.showLoading({
title: '提交中...'
if (!this.serviceid) {
return;
}
let datas = {
priceType: this.payid,
deviceType: this.serviceid
}
getDevicePrice(datas).then(res => {
if (res.return_code == '000000') {
this.unitPrice = res.return_data;
this.payPrice = res.return_data;
}
})
let params = {
storeId: this.storeid,
deviceSn: this.codenums
},
//
bindUserCard(e) {
this.serviceid = this.serviceType[e.target.value].codeValue;
this.serviceName = this.serviceType[e.target.value].codeName;
this.getDevicePrice();
},
//
bindUserCard1(e) {
this.payid = this.moneyType[e.target.value].codeValue;
this.payName = this.moneyType[e.target.value].codeName;
this.getDevicePrice();
},
//
createDeviceOrder() {
if (!this.serviceid) {
uni.showToast({
duration: 2000,
title: '请选择设备类型',
icon: 'none'
})
return;
}
configStoreDevice(params).then(res => {
uni.hideLoading();
if (!this.payid) {
uni.showToast({
duration: 2000,
title: '请选择购买方式',
icon: 'none'
})
return;
}
let datas = {
"orderType": this.payid,
"deviceType": this.serviceid,
"deviceNum": "1"
}
createDeviceOrder(datas).then(res => {
if (res.return_code == '000000') {
uni.showToast({
title: '绑定成功',
icon: 'none',
duration: 2000,
success() {
setTimeout(() => {
uni.navigateBack({})
}, 1000);
}
})
this.payOrder(res.return_data.orderNo);
} else {
uni.showToast({
duration: 2000,
title: res.return_msg,
icon: 'none',
duration: 2000
icon: 'none'
})
}
})
},
//
payOrder(item) {
let datas = {
"orderNo": item,
"openId": app.globalData.openId
}
payOrder(datas).then(res => {
if (res.return_code == '000000') {
this.payRequest(res);
}
});
},
//H5
payRequest: function(self) {
uni.showLoading({
title: '支付中...'
})
jweixin.config({
debug: true, // ,apialertpclogpc
appId: self.return_data.appId, //
timestamp: self.return_data.timeStamp, //
nonceStr: self.return_data.nonceStr, //
signature: self.return_data.sign, // 1
jsApiList: ['chooseWXPay'] // 使JSJS2
});
uni.hideLoading();
jweixin.ready(function() {
jweixin.checkJsApi({
jsApiList: ['chooseWXPay'], // JSJS2,
success: function(res) {},
fail: function(res) {}
});
jweixin.chooseWXPay({
appId: self.return_data.appId,
timestamp: self.return_data
.timeStamp, // jssdk使timestamp使timeStampS
nonceStr: self.return_data.nonceStr, // 32
package: self.return_data
.package, // prepay_idprepay_id=***
signType: 'MD5', // 'SHA1'使'MD5'
paySign: self.return_data.sign, //
success: function(res) {
//
uni.showToast({
title: '支付成功'
})
uni.navigateBack({})
},
cancel: function(r) {},
fail: function(res) {}
});
});
jweixin.error(function(res) {
uni.showToast({
icon: 'none',
title: '支付失败了',
duration: 4000
});
});
},
}
}
</script>
<style lang="scss">
.contents {
position: relative;
top: 240rpx;
}
.inputs {
height: 50px;
line-height: 50px;
background-color: #b4d5fb;
width: 86%;
margin-left: 6%;
padding-left: 10px;
border-radius: 5px;
color: white;
font-size: 20px;
.username {
width: calc(100% - 90upx);
height: 100upx;
display: flex;
align-items: center;
background-color: rgba($color: #ffffff, $alpha: 0.1);
border-bottom: 1px solid #f6f6f6;
padding: 8upx 45upx;
input {
width: 50%;
height: 50upx;
font-size: 16px;
color: #333333;
font-weight: blod;
text-align: right;
}
.namecont {
color: #666666;
width: 28%;
}
}
.btns {
margin-top: 200rpx;
width: 60%;
margin-left: 20%;
width: 80%;
margin-left: 10%;
height: 50px;
line-height: 50px;
background-color: #0083f5;

@ -1,54 +1,37 @@
<template>
<view>
<view class="width100 mart10 backcorfff">
<!-- <view class="titlename fcor666">营业执照</view>
<view class="width94 displ">
<image :src="imgsUrl+businimg" v-if="businimg" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(1)"></image>
<image src="../../../static/img/businesslic.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(1)"></image>
<image src="../../../static/img/businesslic1.png" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="perImage('../../../static/img/businesslic1.png')"></image>
<view class="username">
<view class="namecont">负责人名称</view>
<input placeholder="请输入负责人名称" v-model="dutyPeopleName" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont">公司名称</view>
<input placeholder="请输入营业执照上的名称" v-model="companyname" style="width: 70%;"
<view class="username">
<view class="namecont">负责人电话</view>
<input placeholder="请输入负责人电话" v-model="dutyPeoplePhone" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="notes font13" style="color: #eb5823;border-bottom: 1px solid #f6f6f6;">
<image mode="widthFix" class="iconw" src="../../../static/img/gth.png"></image> 公司名称应与营业执照一致
<view class="username">
<view class="namecont">负责人邮箱</view>
<input placeholder="请输入负责人邮箱" v-model="dutyPeopleEmail" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">营业执照</view>
<input placeholder="请输入营业执照号" v-model="businnum" style="width: 70%;"
<view class="namecont">门店账</view>
<input placeholder="请输入门店账号" v-model="storeaccount" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">注册地址</view>
<input placeholder="请输入注册地址" v-model="regaddress" style="width: 70%;"
<view class="namecont">门店名称</view>
<input placeholder="请输入门店名称" v-model="storename" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont">营业期限</view>
<view class="width30 aliitem" @tap="timetype='1'">
<radio class="checbox" :checked="timetype == '1'" color="#0083f5" /> 选择时间
</view>
<view class="width30 aliitem" @tap="timetype='2'">
<radio class="checbox" :checked="timetype == '2'" color="#0083f5" /> 长期有效
</view>
<view class="username">
<view class="namecont">门店电话</view>
<input placeholder="请输入门店电话" v-model="storephone" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username width80">
<picker mode="date" class="width40 fotct" :value="start_date" :start="startDate" :end="endDate"
@change="bindDateChange">
<view class="date">{{start_date}}</view>
</picker>
<view class="width10 fotct"></view>
<picker v-if="timetype == '1'" mode="date" class="width40 fotct" :value="end_date" :start="startDate"
:end="endDate" @change="bindDateChange2">
<view class="date">{{end_date}}</view>
</picker>
<view class="width40 fotct fcor999" v-if="timetype == '2' ">长期有效</view>
</view> -->
<view class="username">
<view class="namecont">行业类目</view>
<input placeholder="请选择类目" v-model="industrycategory" style="width: 70%;" disabled="true"
@ -70,29 +53,15 @@
<input placeholder="请精确到XX路XX号" v-model="detailsaddress" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<!-- <view class="username">
<view class="namecont">门店账号</view>
<input placeholder="请输入门店账号" v-model="storeaccount" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view> -->
<view class="username">
<view class="namecont">门店名称</view>
<input placeholder="请输入门店名称" v-model="storename" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">门店电话</view>
<input placeholder="请输入门店电话" v-model="storephone" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="notes font16" style="border-bottom: 0px;">
<view class="width70 aliitem fcor666">
门店照片
</view>
</view>
<view class="width94 displ mart5">
<image :src="imgsUrl+storeimg1" v-if="storeimg1" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(6)"></image>
<image :src="storeimg1" v-if="storeimg1" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(6)"></image>
<image src="../../../static/img/store/store1.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(6)"></image>
<image src="../../../static/img/store/store2.png" mode="widthFix" class="width45"
@ -100,8 +69,8 @@
</view>
<view class="width94 displ mart5">
<image :src="imgsUrl+storeimg2" v-if="storeimg2" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(7)"></image>
<image :src="storeimg2" v-if="storeimg2" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(7)"></image>
<image src="../../../static/img/store/store3.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(7)"></image>
<image src="../../../static/img/store/store4.png" mode="widthFix" class="width45"
@ -109,36 +78,284 @@
</view>
<view class="width94 displ mart5 marb15">
<image :src="imgsUrl+storeimg3" v-if="storeimg3" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(8)"></image>
<image :src="storeimg3" v-if="storeimg3" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(8)"></image>
<image src="../../../static/img/store/store5.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(8)"></image>
<image src="../../../static/img/store/store6.png" mode="widthFix" class="width45"
@click="perImage('../../../static/img/store/store6.png')" style="margin-left: 3%;"></image>
</view>
</view>
<view class="btn" @tap="configStore">提交</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont" style="width: 40%;">是否单独结算</view>
<view class="width30 aliitem" @tap="aloneSettle='0'">
<radio class="checbox" :checked="aloneSettle=='0'" color="#0083f5" />
</view>
<view class="width30 aliitem" @tap="aloneSettle='1'">
<radio class="checbox" :checked="aloneSettle=='1'" color="#0083f5" />
</view>
</view>
<view class="width100 mart10 backcorfff" v-if="aloneSettle == 1">
<view class="titlename font18 fontwig6 fcor333">营业执照</view>
<view class="width94 displ">
<image :src="businimg" v-if="businimg" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(1)"></image>
<image src="../../../static/img/businesslic.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(1)"></image>
<image src="../../../static/img/businesslic1.png" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="perImage('../../../static/img/businesslic1.png')"></image>
</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont">公司名称</view>
<input placeholder="请输入营业执照上的名称" v-model="companyname" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="notes font13" style="color: #eb5823;border-bottom: 1px solid #f6f6f6;">
<image mode="widthFix" class="iconw" src="../../../static/img/gth.png"></image> 公司名称应与营业执照一致
</view>
<view class="username">
<view class="namecont">营业执照号</view>
<input placeholder="请输入营业执照号" v-model="businnum" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">注册地址</view>
<input placeholder="请输入注册地址" v-model="regaddress" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont">营业期限</view>
<view class="width30 aliitem" @tap="timetype='1'">
<radio class="checbox" :checked="timetype == '1'" color="#0083f5" /> 选择时间
</view>
<view class="width30 aliitem" @tap="timetype='2'">
<radio class="checbox" :checked="timetype == '2'" color="#0083f5" /> 长期有效
</view>
</view>
<view class="titlename font18 fontwig6 fcor333">法人信息</view>
<view class="notes font16" style="border-bottom: 0px;">
<view class="width70 aliitem fcor666">
证件照片
</view>
<view class="fcor666 alijusend width30 font14"
@click="perImage('../../../static/img/businesslic3.png')">查看示例
<image mode="widthFix" style="width: 12px;" src="../../../static/img/jtg.png"></image>
</view>
</view>
<view class="width94 displ mart5">
<image :src="idcardposimg" v-if="idcardposimg" mode="widthFix" class="width45" style="margin-left: 3%;"
@click="upload(2)"></image>
<image src='../../../static/img/frontidcard.png' v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(2)"></image>
<image :src="idcardsideimg" v-if="idcardsideimg" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(3)"></image>
<image src="../../../static/img/reverseidcard.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(3)"></image>
</view>
<view class="username">
<view class="namecont">法人姓名</view>
<input placeholder="请输入法人姓名" v-model="idcardname" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">身份证号</view>
<input placeholder="请输入身份证号" v-model="idcard" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">身份证地址</view>
<input placeholder="请输入身份证地址" v-model="larIdCardAddress" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" style="border-bottom: 0px;">
<view class="namecont">有效期</view>
<view class="width30 aliitem" @tap="idcardtime='1'">
<radio class="checbox" :checked="idcardtime=='1'" color="#0083f5" /> 选择时间
</view>
<view class="width30 aliitem" @tap="idcardtime='2'">
<radio class="checbox" :checked="idcardtime=='2'" color="#0083f5" /> 长期有效
</view>
</view>
<view class="username width80">
<picker mode="date" class="width40 fotct" :value="cardstart_date" :start="startDate" :end="endDate"
@change="bindCardDateChange">
<view class="date">{{cardstart_date}}</view>
</picker>
<view class="width10 fotct"></view>
<picker v-if="idcardtime == '1'" mode="date" class="width40 fotct" :value="cardend_date"
:start="startDate" :end="endDate" @change="bindCardDateChange2">
<view class="date">{{cardend_date}}</view>
</picker>
<view class="width40 fotct fcor999" v-if="idcardtime == '2' ">长期有效</view>
</view>
<view class="username width80">
<picker mode="date" class="width40 fotct" :value="start_date" :start="startDate" :end="endDate"
@change="bindDateChange">
<view class="date">{{start_date}}</view>
</picker>
<view class="width10 fotct"></view>
<picker v-if="timetype == '1'" mode="date" class="width40 fotct" :value="end_date" :start="startDate"
:end="endDate" @change="bindDateChange2">
<view class="date">{{end_date}}</view>
</picker>
<view class="width40 fotct fcor999" v-if="timetype == '2' ">长期有效</view>
</view>
<view class="titlename font18 fontwig6 fcor333">结算信息</view>
<view class="username">
<view class="namecont">结算类型</view>
<input placeholder="请选择结算类型" v-model="lementType" style="width: 70%;" disabled="true"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" @click="showPopup()" />
<image src="../../../static/img/jtg.png" mode="widthFix" class="iconw"></image>
</view>
<view class="notes font16" style="border-bottom: 0px;" v-if="lementId == 3">
<view class="width70 aliitem fcor666">
非法人身份证照片
</view>
<view class="fcor666 alijusend width30 font14"
@click="perImage('../../../static/img/businesslic3.png')">查看示例
<image mode="widthFix" style="width: 12px;" src="../../../static/img/jtg.png"></image>
</view>
</view>
<view class="width94 displ mart5" v-if="lementId == 3">
<image :src="settleIdCardPortraitImg" v-if="settleIdCardPortraitImg" mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(4)"></image>
<image src="../../../static/img/frontidcard.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(4)"></image>
<image :src="settleIdCardNationalEmblemImg" v-if="settleIdCardNationalEmblemImg" mode="widthFix"
class="width45" style="margin-left: 3%;" @click="upload(5)"></image>
<image src="../../../static/img/reverseidcard.png" v-else mode="widthFix" class="width45"
style="margin-left: 3%;" @click="upload(5)"></image>
</view>
<view class="username" v-if="lementId == 3">
<view class="namecont">姓名</view>
<input placeholder="请输入姓名" v-model="idcardname" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" v-if="lementId == 3">
<view class="namecont">身份证号</view>
<input placeholder="请输入身份证号" v-model="idcard" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" v-if="lementId == 3">
<view class="namecont">身份证地址</view>
<input placeholder="请输入身份证地址" v-model="nonlarIdCardAddress" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username" style="border-bottom: 0px;" v-if="lementId == 3">
<view class="namecont">有效期</view>
<view class="width30 aliitem" @tap="settleIdPeriodType='1'">
<radio class="checbox" :checked="settleIdPeriodType=='1'" color="#0083f5" /> 选择时间
</view>
<view class="width30 aliitem" @tap="settleIdPeriodType='2'">
<radio class="checbox" :checked="settleIdPeriodType=='2'" color="#0083f5" /> 长期有效
</view>
</view>
<view class="username width80" v-if="lementId == 3">
<picker mode="date" class="width40 fotct" :value="settleIdCardPeriodStart" :start="startDate"
:end="endDate" @change="bindCardDateChange3">
<view class="date">{{settleIdCardPeriodStart}}</view>
</picker>
<view class="width10 fotct"></view>
<picker v-if="settleIdPeriodType == '1'" mode="date" class="width40 fotct"
:value="settleIdCardPeriodEnd" :start="startDate" :end="endDate" @change="bindCardDateChange4">
<view class="date">{{settleIdCardPeriodEnd}}</view>
</picker>
<view class="width40 fotct fcor999" v-if="settleIdPeriodType == '2' ">长期有效</view>
</view>
<view class="username">
<view class="namecont">银行卡号</view>
<input placeholder="请输入银行卡号" v-model="bankNo" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">银行卡持有人</view>
<input placeholder="请输入银行卡持有人" v-model="bankName" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">所属银行</view>
<input placeholder="请输入所属银行" v-model="belongbank" style="width: 70%;"
placeholder-style="color: #bfbfbf;font-size:14px;padding-top:2px;" />
</view>
<view class="username">
<view class="namecont">开户行地址</view>
<pickRegions :defaultRegion="defaultRegionCode" class="width70" @getRegion="handleBankCityCode">
<view style="color: #333333;font-size:14px;padding-top:2px;" v-if="bankregionName">
{{bankregionName}}
</view>
<view style="color: #bfbfbf;font-size:14px;padding-top:2px;" v-else>请选择开户行地址</view>
</pickRegions>
<image src="../../../static/img/jtg.png" mode="widthFix" class="iconw"></image>
</view>
</view>
<view class="btn" @tap="configStore">提交</view>
<view class="height60"></view>
<wybPopup ref="popup" type="bottom" width="500" bgColor="#f6f6f6" radius="6" :showCloseIcon="true">
<!-- 结算类型 -->
<view class="width100">
<view class="fotct font18 fontwig6 fcor333 mart10 height30">选择商户类型</view>
<view class="width92 mart20" @click="changelementtype(1)">
<view class="wybtc" style="height: 40px;">
<image src="../../../static/img/wyb4.png" mode="widthFix" class="iconw40"></image>
<view class="width70 margle10">
<view class="fcor333 font16">对公结算</view>
</view>
<image src="../../../static/img/jtg.png" mode="widthFix" class="iconw margle20"></image>
</view>
</view>
<view class="width92 mart20" @click="changelementtype(2)">
<view class="wybtc" style="height: 40px;">
<image src="../../../static/img/wyb4.png" mode="widthFix" class="iconw40"></image>
<view class="width70 margle10">
<view class="fcor333 font16">对私法人结算</view>
</view>
<image src="../../../static/img/jtg.png" mode="widthFix" class="iconw margle20"></image>
</view>
</view>
<view class="width92 mart20" @click="changelementtype(3)">
<view class="wybtc" style="height: 40px;">
<image src="../../../static/img/wyb4.png" mode="widthFix" class="iconw40"></image>
<view class="width70 margle10">
<view class="fcor333 font16">对私非法人结算</view>
</view>
<image src="../../../static/img/jtg.png" mode="widthFix" class="iconw margle20"></image>
</view>
</view>
</view>
</wybPopup>
</view>
</template>
<script>
import {
recognizeBusinessLicense,
configStore
configStore,
getImgSignedUrl,
recognizeIdCard
} from '../../../Utils/Api.js';
import pickRegions from '../../../components/pick-regions/pick-regions.vue';
import wybPopup from '../../../components/wyb-popup/wyb-popup.vue';
let app = getApp();
export default {
components: {
pickRegions
pickRegions,
wybPopup
},
data() {
return {
reqUrl: app.globalData.url, //
dutyPeopleName: '', //"",
dutyPeoplePhone: '', //"",
dutyPeopleEmail: '', //""
imgsUrl: app.globalData.imgUrl, //访
businessLicenselist: [], //
businimg: '', //
uploadbusinimg: '', //
companyname: '', //
businnum: '', //
regaddress: '', //
@ -152,12 +369,49 @@
areaCode: '', //
defaultRegion: ['北京市', '市辖区', '东城区'], //
defaultRegionCode: '110101', //
regionName: '',
storeaccount: '', //
idcardposimg: '', //
uploadidcardposimg: '', //
idcardsideimg: '', //
uploadidcardsideimg: '', //
idcardname: '', //
idcard: '', //
idCardzm: [], //
idCardfm: [], //
larIdCardAddress: '', //
idcardtime: '1', // times: longterm:
start_date: '开始时间', //
end_date: '结束时间', //
cardstart_date: '开始时间', //
cardend_date: '结束时间', //
storename: '', //
storephone: '', //
storeimg1: '', //
storeimg2: '', //
storeimg3: '', //
uploadstoreimg1: '', //
uploadstoreimg2: '', //
uploadstoreimg3: '', //
aloneSettle: 0, //
lementId: '1', //id
lementType: '对公结算', //
OpenningBankCityCode: '', //
bankNo: '', //
bankName: '', //
belongbank: '', //
bankareaCode: '', //
bankregionName: '', //
settleIdCardNationalEmblemImg: '', //
uploadsettleIdCardNationalEmblemImg: '', //
settleIdCardPortraitImg: '', //
uploadsettleIdCardPortraitImg: '', //
settleIdCardPeriodStart: '开始时间', //
settleIdCardPeriodEnd: '结束时间', //
settleIdPeriodType: '1', // times: longterm:
nonfaidcardname: '', //
nonidcard: '', //
nonlarIdCardAddress: '', //
userInfo: app.globalData.userInfo
}
},
@ -171,13 +425,23 @@
return this.getDate('end');
},
//
regionName() {
//
this.areaCode = this.region.map(item => item.code)[2];
return this.region.map(item => item.name).join('-');
// regionName() {
// //
// this.areaCode = this.region.map(item => item.code)[2];
// return this.region.map(item => item.name).join('-');
// }
},
onShow() {
if (app.globalData.businessid) {
this.industrycategory = app.globalData.businessname;
this.inducateid = app.globalData.businessid;
}
},
methods: {
//
showPopup() {
this.$refs.popup.show();
},
//
bindDateChange: function(e) {
this.start_date = e.target.value;
@ -186,6 +450,22 @@
bindDateChange2: function(e) {
this.end_date = e.target.value;
},
//
bindCardDateChange: function(e) {
this.cardstart_date = e.target.value
},
//
bindCardDateChange2: function(e) {
this.cardend_date = e.target.value;
},
//
bindCardDateChange3: function(e) {
this.settleIdCardPeriodStart = e.target.value
},
//
bindCardDateChange4: function(e) {
thissettleIdCardPeriodEnd = e.target.value;
},
//
getDate(type) {
const date = new Date();
@ -205,6 +485,14 @@
//
handleGetRegion(region) {
this.region = region;
this.areaCode = this.region.map(item => item.code)[2];
this.regionName = this.region.map(item => item.name).join('-');
},
//
handleBankCityCode(region) {
this.region = region;
this.bankareaCode = this.region.map(item => item.code)[2];
this.bankregionName = this.region.map(item => item.name).join('-');
},
//
perImage(item) {
@ -218,55 +506,138 @@
let that = this;
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
sizeType: ['compressed'], //
sourceType: ['camera', 'album'],
success: function(res) {
const tempFilePaths = res.tempFilePaths;
const uploadTask = uni.uploadFile({
url: that.reqUrl + '/mer/uploadfile?merId=' + that.userInfo.mer.id,
filePath: tempFilePaths[0],
header: {
"Authorization": app.globalData.token
},
name: 'image',
formData: {
files: tempFilePaths[0]
},
success: function(uploadFileRes) {
if (item == 1) {
that.recognizeBusinessLicense(JSON.parse(uploadFileRes.data)
.return_data[0]);
}
if (item == 6) {
that.storeimg1 = JSON.parse(uploadFileRes.data).return_data[0];
}
if (item == 7) {
that.storeimg2 = JSON.parse(uploadFileRes.data).return_data[0];
}
if (item == 8) {
that.storeimg3 = JSON.parse(uploadFileRes.data).return_data[0];
}
}
});
that.uploadFile(tempFilePaths[0],item);
},
error: function(e) {
console.log(e);
}
},
complete: function(err) {}
});
},
onShow() {
if (app.globalData.businessid) {
this.industrycategory = app.globalData.businessname;
this.inducateid = app.globalData.businessid;
/**
* H5端图片压缩
* 参数说明
* imgSrc 图片url
* scale缩放比例 0-1
* 返回base64
* callback 回调设置返回值
*/
translate(imgSrc, scale, callback) {
var img = new Image();
img.src = imgSrc;
img.onload = function() {
var that = this;
var h = that.height; //
var w = that.width;
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var width = document.createAttribute("width");
width.nodeValue = w;
var height = document.createAttribute("height");
height.nodeValue = h;
canvas.setAttributeNode(width);
canvas.setAttributeNode(height);
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', scale); //
canvas = null;
callback(base64);
}
},
//
uploadFile(item,item1) {
const that = this
that.translate(item, 0.2, imgURL => {
const uploadTask = uni.uploadFile({
url: that.reqUrl + '/mer/uploadBase64File',
filePath: imgURL,
header: {
"Authorization": app.globalData.token
},
name: 'file',
formData: {
'merId': that.userInfo.mer.id,
'base64File': imgURL
},
success: function(uploadFileRes) {
that.getImgSignedUrl(item1, JSON.parse(uploadFileRes.data)
.return_data);
}
});
})
},
//
changelementtype(item) {
if (item == 1) {
this.lementId = 1;
this.lementType = '对公结算';
}
if (item == 2) {
this.lementId = 2;
this.lementType = '对私法人结算';
}
if (item == 3) {
this.lementId = 3;
this.lementType = '对私非法人结算';
}
this.$refs.popup.hide();
},
//
getImgSignedUrl(item, item1) {
let that = this;
let datas = {
"fileUrl": item1
}
getImgSignedUrl(datas).then(res => {
if (res.return_code == '000000') {
if (item == 1) {
that.recognizeBusinessLicense(res.return_data);
that.uploadbusinimg = item1
}
if (item == 2) {
that.recognizeIdCard(1, res.return_data);
that.uploadidcardposimg = item1;
}
if (item == 3) {
that.recognizeIdCard(2, res.return_data);
that.uploadidcardsideimg = item1;
}
if (item == 4) {
that.recognizeIdCard(3, res.return_data);
that.uploadsettleIdCardPortraitImg = item1;
}
if (item == 5) {
that.recognizeIdCard(4, res.return_data);
that.uploadsettleIdCardNationalEmblemImg = item1;
}
if (item == 6) {
that.storeimg1 = res.return_data;
that.uploadstoreimg1 = item1;
}
if (item == 7) {
that.storeimg2 = res.return_data;
that.uploadstoreimg2 = item1;
}
if (item == 8) {
that.storeimg3 = res.return_data;
that.uploadstoreimg3 = item1;
}
}
})
},
//
recognizeBusinessLicense(item) {
uni.showLoading({
title: '识别中...'
})
let params = {
url: this.imgsUrl + item
url: item
}
recognizeBusinessLicense(params).then(res => {
uni.hideLoading();
@ -274,7 +645,7 @@
this.businimg = item;
this.businessLicenselist = JSON.parse(res.return_data.data).data;
this.companyname = this.businessLicenselist.companyName;
this.detailsaddress = this.businessLicenselist.businessAddress;
// this.detailsaddress = this.businessLicenselist.businessAddress;
this.businnum = this.businessLicenselist.creditCode;
this.regaddress = this.businessLicenselist.businessAddress;
this.start_date = this.businessLicenselist.RegistrationDate;
@ -282,6 +653,9 @@
if (times[1] == '永久') {
this.timetype = '2';
}
if (times == '长期') {
this.timetype = '2';
}
} else {
uni.showToast({
title: '请上传正确的营业执照',
@ -291,6 +665,86 @@
}
})
},
//
recognizeIdCard(item, items) {
uni.showLoading({
title: '识别中...'
})
let params = {
url: items
}
recognizeIdCard(params).then(res => {
uni.hideLoading();
if (res.return_code == '000000' && res.return_data) {
if (item == 1) {
if (JSON.parse(res.return_data.data).data.face != undefined) {
this.idCardzm = JSON.parse(res.return_data.data).data;
this.idcardname = this.idCardzm.face.data.name;
this.idcardposimg = items;
this.larIdCardAddress = this.idCardzm.face.data.address;
this.idcard = this.idCardzm.face.data.idNumber;
} else {
uni.showToast({
title: '请上传身份证人脸信息',
duration: 2000,
icon: 'none'
})
}
}
if (item == 2) {
if (JSON.parse(res.return_data.data).data.back != undefined) {
this.idCardfm = JSON.parse(res.return_data.data).data;
let times = this.idCardfm.back.data.validPeriod.split('-');
this.cardstart_date = times[0];
this.idcardsideimg = items;
this.cardend_date = times[1];
} else {
uni.showToast({
title: '请上传身份证国徽信息',
duration: 2000,
icon: 'none'
})
}
}
if (item == 3) {
if (JSON.parse(res.return_data.data).data.face != undefined) {
let idCardzm = JSON.parse(res.return_data.data).data;
this.nonfaidcardname = idCardzm.face.data.name;
this.settleIdCardPortraitImg = items;
this.nonlarIdCardAddress = idCardzm.face.data.address;
this.nonidcard = idCardzm.face.data.idNumber;
} else {
uni.showToast({
title: '请上传身份证人脸信息',
duration: 2000,
icon: 'none'
})
}
}
if (item == 4) {
if (JSON.parse(res.return_data.data).data.back != undefined) {
let idCardfm = JSON.parse(res.return_data.data).data;
let times = idCardfm.back.data.validPeriod.split('-');
this.settleIdCardPeriodStart = times[0];
this.settleIdCardNationalEmblemImg = items;
this.settleIdCardPeriodEnd = times[1];
} else {
uni.showToast({
title: '请上传身份证国徽信息',
duration: 2000,
icon: 'none'
})
}
}
} else {
uni.showToast({
title: '请上传正确的身份证信息',
duration: 2000,
icon: 'none'
})
}
})
},
//
showjob() {
uni.navigateTo({
@ -372,14 +826,14 @@
});
return;
}
// if (!that.storeaccount) {
// uni.showToast({
// title: '',
// icon: "none",
// duration: 2000
// });
// return;
// }
if (!that.storeaccount) {
uni.showToast({
title: '请填写门店账号',
icon: "none",
duration: 2000
});
return;
}
if (!that.storename) {
uni.showToast({
title: '请填写门店名称',
@ -420,8 +874,51 @@
});
return;
}
if (that.timetype == 2) {
that.end_date = '长期有效'
if (that.timetype == 2) {
that.end_date = '长期有效';
}
if (that.idcardtime == 2) {
that.cardend_date = '长期有效';
}
if (that.settleIdPeriodType == 2) {
that.settleIdCardPeriodEnd = '长期有效';
}
let aloneSettle;
if (that.aloneSettle == 0) {
aloneSettle = false;
that.uploadbusinimg = '';
that.companyname = '';
that.businnum = '';
that.start_date = '';
that.timetype = '';
that.end_date = '';
that.regaddress = '';
that.idcardname = '';
that.idcard = '';
that.larIdCardAddress = '';
that.uploadidcardposimg = '';
that.uploadidcardsideimg = '';
that.cardstart_date = '';
that.idcardtime = '';
that.cardend_date = '';
that.lementId = '';
that.bankNo = '';
that.bankareaCode = '';
that.bankName = '';
that.belongbank = '';
that.nonfaidcardname = '';
that.nonidcard = '';
that.nonlarIdCardAddress = '';
that.settleIdPeriodType = '';
that.uploadsettleIdCardPortraitImg = '';
that.uploadsettleIdCardNationalEmblemImg = '';
that.settleIdCardPeriodStart = '';
that.settleIdCardPeriodEnd = '';
} else {
aloneSettle = true;
}
uni.showModal({
title: '提交门店',
@ -432,21 +929,18 @@
title: '提交中...'
})
let datas = {
// "account": {
// "loginName": that.storeaccount
// },
"account": {
"loginName": that.storeaccount
},
"dutyPeopleName": that.dutyPeopleName, //"",
"dutyPeoplePhone": that.dutyPeoplePhone, //"",
"dutyPeopleEmail": that.dutyPeopleEmail,
"name": that.storename,
"telephone": that.storephone,
"doorHeadImg": that.storeimg1,
"cashRegisterImg": that.storeimg2,
"internalImg": that.storeimg3,
// "blisUrl": that.businimg,
// "blisName": that.companyname,
// "blisNo": that.businnum,
// "blisPeriodStart": that.start_date,
// "blisPeriodType": that.timetype, // 1 2
// "blisPeriodEnd": that.end_date,
// "blisRegAddress": that.regaddress,
"doorHeadImg": that.uploadstoreimg1,
"cashRegisterImg": that.uploadstoreimg2,
"internalImg": that.uploadstoreimg3,
"aloneSettle": aloneSettle,
"merId": that.userInfo.mer.id,
"storeIndustry": {
"childId": that.inducateid
@ -454,8 +948,49 @@
"storeRegion": {
"areaCode": that.areaCode,
"address": that.detailsaddress
},
"blisUrl": that.uploadbusinimg,
"blisName": that.companyname,
"blisNo": that.businnum,
"blisPeriodStart": that.start_date,
"blisPeriodType": that.timetype, // 1 2
"blisPeriodEnd": that.end_date,
"blisRegAddress": that.regaddress,
"larName": that.idcardname, // "",
"larIdCard": that.idcard, //"",
"larIdCardAddress": that.larIdCardAddress, //"",
"larIdCardPortraitImg": that.uploadidcardposimg, //"URL",
"larIdCardNationalEmblemImg": that.uploadidcardsideimg, //"URL",
"larIdCardPeriodStart": that.cardstart_date, //"",
"larIdCardPeriodType": that.idcardtime, // 1 2
"larIdCardPeriodEnd": that.cardend_date, //"",
storeSettleAcct: {
"settleType": that.lementId, // 1 2 3,
"bankCardNo": that.bankNo, //"",
"openningBankAreaCode": that.bankareaCode, //
"bankCardHolder": that.bankName, //"",
"bankName": that.belongbank, //"",
"settleIdCardName": that.nonfaidcardname, //
"settleIdCardNo": that.nonidcard, //
"settleIdCardAddress": that.nonlarIdCardAddress, //
"settleIdPeriodType": that
.settleIdPeriodType, // 1 2,
"settleIdCardPortraitImg": that
.uploadsettleIdCardPortraitImg, //"",
"settleIdCardNationalEmblemImg": that
.uploadsettleIdCardNationalEmblemImg, //"",
"settleIdCardPeriodStart": that
.settleIdCardPeriodStart, //"",
"settleIdCardPeriodEnd": that
.settleIdCardPeriodEnd, //""
}
}
console.log('=======' + JSON.stringify(datas));
configStore(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
@ -584,4 +1119,16 @@
color: #bfbfbf;
}
.wybtc {
width: calc(100% - 90upx);
display: flex;
height: 80px;
align-items: center;
background-color: #FFFFFF;
border-bottom: 1px solid #f6f6f6;
padding: 15rpx 45rpx;
border-radius: 8px;
color: #bfbfbf;
}
</style>

@ -1,7 +1,7 @@
<template>
<view>
<view v-if="!storeList" class="mart60 fotct font14 fcor666">
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
<view>
<view v-if="!storeList" class="mart60 fotct font14 fcor666">
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
</view>
<view class="width94 backcorfff border-r mart15" v-for="(item,index) in storeList" :key="index"
@click="jumpstoredes(item.id)">
@ -13,12 +13,19 @@
{{item.createTime | timeFormat('hh:mm')}}
</view>
</view>
<view class="storestus" v-if="item.status == 1">
<view class="storestus" v-if="item.status == 2">
正常
</view>
<view class="otstatucs" v-if="item.status == 2">
<view class="otstatucs" v-if="item.status == 3">
审核中
</view>
<view class="otstatucs" v-if="item.status == 4">
审核驳回
</view>
<view class="otstatucs" v-if="item.status == 5">
停用
</view>
</view>
<view class="conts" style="border-bottom: 0px;">
<image src="../../../static/img/store/store8.png" mode="widthFix" class="iconw"></image>
@ -45,12 +52,12 @@
export default {
data() {
return {
storeList: [],
storeList: '',
userInfo: app.globalData.userInfo
}
},
onShow() {
this.storeList = [];
this.storeList = '';
this.getStoreListByMer();
},
methods: {
@ -72,14 +79,10 @@
}
getStoreListByMer(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000' && res.return_data.list) {
if (res.return_code == '000000' && res.return_data.list !='') {
this.storeList = res.return_data.list;
} else {
uni.showToast({
title: res.return_msg,
duration: 2000,
icon: 'none'
})
} else {
this.storeList = '';
}
})
},

@ -0,0 +1,274 @@
<template>
<view>
<view class="input-box">
<view class="icon search"></view>
<input placeholder="搜索设备编号" v-model="deviceNo" placeholder-style="color:#c0c0c0;" @input="toSearch()" />
</view>
<view v-if="!serviceList" class="mart60 fotct font14 fcor666">
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
</view>
<view class="width94 serlist border-r mart15" v-for="(item,index) in serviceList" :key="index"
@click="assignOrder(item.deviceNo)">
<view class="notes">
<view class="width75 margle">
<view class="font18 fcor333 fontwig6">编号: {{item.deviceNo}}</view>
<view class="font13 fcor999 mart5" v-if="sourceId == 1">申请时间:
{{item.createTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
</view>
</view>
<view class="storestus" v-if="item.bindStatus">
已绑定
</view>
<view class="otstatucs" v-if="!item.bindStatus">
未绑定
</view>
</view>
<view class="conts">
<view class="margle10 font13 fcor999">设备类型: {{item.deviceType | toFilter()}}</view>
</view>
</view>
<view class="height40"></view>
</view>
</template>
<script>
import {
getDeviceList,
assignOrder,
replace
} from '../../../Utils/Api.js';
let app = getApp();
export default {
data() {
return {
serviceList: [], //˚
sourceId: '', // id
orderNo: '', //
buildStatus: false, //
deviceNo: '', //
assderid: '', //id
pageNum: 1,
pagesize: 10,
isLoadMore: false, //
}
},
filters: {
//
toFilter: function(id) {
let codeName;
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_TYPE.length; i++) {
if (id == app.globalData.Dictionaries.DEVICE_TYPE[i].codeValue) {
codeName = app.globalData.Dictionaries.DEVICE_TYPE[i].codeName;
}
}
return codeName;
},
},
onReachBottom() { //
if (!this.isLoadMore) { //
this.isLoadMore = true
this.pageNum += 1
this.getDeviceList()
}
},
onLoad(options) {
this.sourceId = options.id;
this.orderNo = options.orderNo;
this.assderid = options.assderid;
if (this.sourceId == 1) {
this.buildStatus = true;
this.getDeviceList();
}
if (this.sourceId == 2 || this.sourceId == 4) {
this.buildStatus = false;
this.getDeviceList();
}
if (this.sourceId == 3) {
this.buildStatus = '';
this.getDeviceList();
}
},
methods: {
//
getDeviceList() {
let datas = {
pageNum: this.pageNum,
pageSize: this.pagesize,
buildStatus: this.buildStatus,
deviceNo: this.deviceNo
}
getDeviceList(datas).then(res => {
if (res.return_code == '000000' && res.return_data.list != '') {
this.serviceList = this.serviceList.concat(res.return_data.list);
if (res.return_data.pages == this.pageNum) {
this.isLoadMore = true;
} else {
this.isLoadMore = false
}
} else {
this.serviceList = '';
}
})
},
//
toSearch() {
this.pageNum = 1;
this.pageSize = 10;
this.serviceList = [];
this.getDeviceList();
},
//
assignOrder(item) {
if (this.sourceId == 2) {
uni.showModal({
title: '温馨提示',
content: '是否分配当前设备',
success: (res) => {
if (res.confirm) {
uni.showLoading({
title: '加载中'
})
let serviceList = [];
serviceList.push(item);
let datas = {
"orderNo": this.orderNo,
"deviceNoList": serviceList
}
assignOrder(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
uni.showToast({
title: '分配成功',
duration: 2000,
icon: 'none'
})
uni.navigateBack({})
} else {
uni.showToast({
title: res.return_msg,
duration: 2000,
icon: 'none'
})
}
})
} else if (res.cancel) {}
}
});
}
if (this.sourceId == 4) {
uni.showModal({
title: '温馨提示',
content: '是否更换当前设备',
success: (res) => {
if (res.confirm) {
uni.showLoading({
title: '加载中'
})
let serviceList = [];
serviceList.push(item);
let datas = {
"deviceOrderAssignId": this.assderid,
"deviceNo": item
}
replace(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
uni.showToast({
title: '分配成功',
duration: 2000,
icon: 'none'
})
uni.navigateBack({})
} else {
uni.showToast({
title: res.return_msg,
duration: 2000,
icon: 'none'
})
}
})
} else if (res.cancel) {}
}
});
}
}
}
}
</script>
<style lang="scss">
.input-box {
width: 90%;
margin-left: 5%;
margin-top: 15px;
margin-bottom: 15px;
height: 70rpx;
background-color: #f5f5f5;
border-radius: 10rpx;
position: relative;
display: flex;
align-items: center;
.icon {
display: flex;
align-items: center;
position: absolute;
top: 2px;
left: 5px;
width: 60upx;
height: 60upx;
font-size: 34upx;
color: #c0c0c0;
}
input {
padding-left: 50upx;
height: 28upx;
font-size: 28upx;
width: 100%;
}
}
.serlist {
border: 1px solid #f6f6f6;
box-shadow: 0upx 4upx 8upx rgba(0, 0, 0, 0.2);
}
.notes {
width: calc(100% - 40rpx);
display: flex;
align-items: center;
padding: 30rpx 0 10rpx 20rpx;
}
.storestus {
padding: 1px 5px;
color: #91bb88;
font-size: 14px;
background-color: #e8fbe6;
}
.otstatucs {
background-color: #fbeee4;
color: #db8c73;
font-size: 14px;
padding: 1px 5px;
}
.conts {
width: calc(100% - 60rpx);
display: flex;
align-items: center;
margin-bottom: 10px;
padding: 0 0rpx 30rpx 14rpx;
}
.xfimg {
width: 100rpx;
bottom: 60rpx;
position: fixed;
right: 40rpx;
}
</style>

@ -0,0 +1,229 @@
<template>
<view>
<view class=" mart10 marb20 alijus">
<view class="font16 fcor333 paddtop5 paddbotm5 margle20 marRight40" v-for="(item,index) in orderStatus"
@click="switchid(item)" :class="[goodtyid == item.id ? 'fcor089 borbtom fontwig6' : '']" :key="index">
{{item.title}}
</view>
</view>
<view v-if="serviceList == ''" class="mart60 fotct font14 fcor666">
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
</view>
<view class="width94 backcorfff border-r mart15" v-for="(item,index) in serviceList" :key="index"
@click="jumpService(item.orderNo)">
<view class="notes">
<view class="width75 margle">
<view class="font18 fcor333 fontwig6">{{item.orderNo}}</view>
<view class="font13 fcor999 mart5">支付金额: ¥{{item.payPrice}}</view>
<view class="font13 fcor999 mart5">支付时间: {{item.payTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
</view>
</view>
<view class="otstatucs border-r" @click.stop="orderRefund(item.orderNo)" v-if="item.status == 2">
订单退款
</view>
<view class="otstatucs border-r" @click.stop="replace(item.orderAssignList[0].id)"
v-if="item.status == 3">
更换设备
</view>
</view>
<view class="conts" v-if="item.orderAssignList !=''">
<view class="margle10 font13 fcor999" >设备编号: {{item.orderAssignList[0].deviceNo}}</view>
</view>
<view class="conts">
<view class="margle10 font13 fcor999">设备类型: {{item.deviceType | toFilter()}}</view>
<view class="margle10 font13 fcor999">申请数量: 1</view>
</view>
</view>
</view>
</template>
<script>
import {
getOrderList,
orderRefund
} from '../../../Utils/Api.js';
let app = getApp();
export default {
data() {
return {
orderStatus: [{
id: 2,
title: '已支付'
},
{
id: 3,
title: '已完成'
},
{
id: 4,
title: '已退款'
}
], //
pageNum: 1,
pagesize: 15,
goodtyid: 2, //
serviceList: [] //˚
}
},
filters: {
//
toFilter: function(id) {
let codeName;
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_TYPE.length; i++) {
if (id == app.globalData.Dictionaries.DEVICE_TYPE[i].codeValue) {
codeName = app.globalData.Dictionaries.DEVICE_TYPE[i].codeName;
}
}
return codeName;
}
},
onReachBottom() { //
if (!this.isLoadMore) { //
this.isLoadMore = true
this.pageNum += 1
this.serviceList = [];
this.getDeviceList();
}
},
onShow() {
this.serviceList = [];
this.getOrderList();
},
methods: {
//id
switchid(item) {
this.goodtyid = item.id;
this.serviceList = [];
this.getOrderList();
},
//
getOrderList() {
uni.showLoading({
title: '加载中'
})
let datas = {
pageNum: this.pageNum,
pageSize: this.pagesize,
status: this.goodtyid
}
getOrderList(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000' && res.return_data.list != '') {
this.serviceList = this.serviceList.concat(res.return_data.list);
if (res.return_data.pages == this.pageNum) {
this.isLoadMore = true;
} else {
this.isLoadMore = false
}
} else {
this.serviceList = [];
}
})
},
//
jumpService(item) {
if (this.goodtyid == 2) {
uni.navigateTo({
url: '../mineService/mineService?id=2' + '&orderNo=' + item
})
}
if (this.goodtyid == 3 || this.goodtyid == 4) {
uni.navigateTo({
url: '../serviceOrderDetails/serviceOrderDetails?orderNo=' + item
})
}
},
//
replace(item) {
uni.navigateTo({
url: '../mineService/mineService?id=4' + '&assderid=' + item
})
},
//退
orderRefund(item) {
uni.showModal({
title: '温馨提示',
content: '是否退款当前订单',
success: (res) => {
if (res.confirm) {
uni.showLoading({
title: '加载中'
})
let datas = {
"orderNo": item
}
orderRefund(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
uni.showToast({
title: '退款成功',
duration: 2000,
icon: 'none'
})
this.serviceList = [];
this.getOrderList();
} else {
uni.showToast({
title: res.return_msg,
duration: 2000,
icon: 'none'
})
}
})
} else if (res.cancel) {}
}
});
}
}
}
</script>
<style lang="scss">
.borbtom {
border-bottom: 3px solid #089bf5;
}
page {
background-color: #f6f6f6;
}
.notes {
width: calc(100% - 40rpx);
display: flex;
align-items: center;
padding: 30rpx 0 10rpx 20rpx;
}
.storestus {
padding: 1px 5px;
color: #91bb88;
font-size: 14px;
background-color: #e8fbe6;
}
.otstatucs {
background-color: #fbeee4;
color: #db8c73;
margin-top: -20px;
font-size: 14px;
padding: 4px 8px;
}
.conts {
width: calc(100% - 60rpx);
display: flex;
align-items: center;
padding: 2px 0rpx 14rpx 14rpx;
}
.xfimg {
width: 100rpx;
bottom: 60rpx;
position: fixed;
right: 40rpx;
}
</style>

@ -0,0 +1,134 @@
<template>
<view>
<view v-if="!serviceList" class="mart60 fotct font14 fcor666">
<image mode="widthFix" style="width: 70vw;" src="../../../static/img/noorder.png"></image>
</view>
<view class="width94 backcorfff border-r mart15" v-for="(item,index) in serviceList" :key="index"
@click="jumpdetails(item.orderNo)">
<view class="notes">
<view class="width75 margle">
<view class="font18 fcor333 fontwig6">{{item.orderNo}}</view>
<view class="font13 fcor999 mart5">支付金额: ¥{{item.payPrice}}</view>
<view class="font13 fcor999 mart5">支付时间: {{item.payTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
</view>
</view>
<view class="storestus" v-if="item.status == 2">
已支付
</view>
<view class="storestus" v-if="item.status == 3">
已完成
</view>
<view class="otstatucs" v-if="item.status == 4">
已退款
</view>
</view>
<view class="conts" v-if="item.orderAssignList !=''">
<view class="margle10 font13 fcor999">设备编号: {{item.orderAssignList[0].deviceNo}}</view>
</view>
<view class="conts">
<view class="margle10 font13 fcor999">设备类型: {{item.deviceType | toFilter()}}</view>
<view class="margle10 font13 fcor999">申请数量: 1</view>
</view>
</view>
<image src="../../../static/img/addser.png" mode="widthFix" class="xfimg" @click="jumpaddservice"></image>
</view>
</template>
<script>
import {
getOrderList
} from '../../../Utils/Api.js';
let app = getApp();
export default {
data() {
return {
serviceList: '', //
pageNum: 1,
pagesize: 999
}
},
filters: {
//
toFilter: function(id) {
let codeName;
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_TYPE.length; i++) {
if (id == app.globalData.Dictionaries.DEVICE_TYPE[i].codeValue) {
codeName = app.globalData.Dictionaries.DEVICE_TYPE[i].codeName;
}
}
return codeName;
}
},
onShow() {
this.getOrderList();
},
methods: {
//
getOrderList() {
let datas = {
pageNum: this.pageNum,
pageSize: this.pagesize,
status: '2,3,4'
}
getOrderList(datas).then(res => {
if (res.return_code == '000000' && res.return_data.list != '') {
this.serviceList = res.return_data.list;
}
})
},
//
jumpaddservice() {
uni.navigateTo({
url: '../addService/addService'
})
},
//
jumpdetails(item) {
uni.navigateTo({
url: '../serviceOrderDetails/serviceOrderDetails?orderNo=' + item
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #f6f6f6;
}
.notes {
width: calc(100% - 40rpx);
display: flex;
align-items: center;
padding: 30rpx 0 10rpx 20rpx;
}
.storestus {
padding: 1px 5px;
color: #91bb88;
font-size: 14px;
background-color: #e8fbe6;
}
.otstatucs {
background-color: #fbeee4;
color: #db8c73;
font-size: 14px;
padding: 1px 5px;
}
.conts {
width: calc(100% - 60rpx);
display: flex;
align-items: center;
padding: 2px 0rpx 14rpx 14rpx;
}
.xfimg {
width: 100rpx;
bottom: 60rpx;
position: fixed;
right: 40rpx;
}
</style>

@ -0,0 +1,140 @@
<template>
<view>
<view class="mart15 width100 backcorfff">
<view class="notes">
<view class="fcor666 width25">门店名称</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.storeName}}</view>
</view>
<view class="notes">
<view class="fcor666 width25">订单状态</view>
<view class="font14 fcor333 width75 fotrt" v-if="orderDetails.status == 2">已支付</view>
<view class="font14 fcor333 width75 fotrt" v-if="orderDetails.status == 3">已完成</view>
<view class="font14 fcor333 width75 fotrt" v-if="orderDetails.status == 4">已退款</view>
</view>
<view class="notes">
<view class="fcor666 width25">订单编号</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.orderNo}}</view>
</view>
<view class="notes">
<view class="fcor666 width25">支付流水号</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.paySerialNo}}</view>
</view>
<view class="notes">
<view class="fcor666 width25">订单时间</view>
<view class="font14 fcor333 width75 fotrt">
{{orderDetails.createTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
</view>
</view>
<view class="notes">
<view class="fcor666 width25">支付时间</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.payTime | timeFormat('yyyy-mm-dd hh:mm:ss')}}
</view>
</view>
<view class="notes">
<view class="fcor666 width25">支付金额</view>
<view class="font14 fcor333 width75 fotrt">¥{{orderDetails.payPrice}}</view>
</view>
<view class="notes" v-if="orderDetails.orderAssignList.length !=0">
<view class="fcor666 width25">设备编号</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.orderAssignList[0].deviceNo}}</view>
</view>
<view class="notes" v-if="orderDetails.orderAssignList.length !=0">
<view class="fcor666 width25">设备类型</view>
<view class="font14 fcor333 width75 fotrt">{{orderDetails.orderAssignList[0].deviceType | toFilter()}}
</view>
</view>
<view class="notes" v-if="orderDetails.orderAssignList.length !=0">
<view class="fcor666 width25">购买类型</view>
<view class="font14 fcor333 width75 fotrt">
{{ orderDetails.orderAssignList[0].orderType | toFilterDdevic()}}
</view>
</view>
</view>
</view>
</template>
<script>
import {
getOrderDetail
} from '../../../Utils/Api.js';
let app = getApp();
export default {
data() {
return {
orderNo: '', //
orderDetails: '' //
}
},
//
filters: {
//
toFilter: function(id) {
let codeName;
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_TYPE.length; i++) {
if (id == app.globalData.Dictionaries.DEVICE_TYPE[i].codeValue) {
codeName = app.globalData.Dictionaries.DEVICE_TYPE[i].codeName;
}
}
return codeName;
},
//
toFilterDdevic: function(id) {
let codeName;
for (let i = 0; i < app.globalData.Dictionaries.DEVICE_ORDER_TYPE.length; i++) {
if (id == app.globalData.Dictionaries.DEVICE_ORDER_TYPE[i].codeValue) {
codeName = app.globalData.Dictionaries.DEVICE_ORDER_TYPE[i].codeName;
}
}
return codeName;
},
},
onLoad(options) {
this.orderNo = options.orderNo;
if (this.orderNo) {
this.getOrderDetail();
}
},
methods: {
//
getOrderDetail() {
uni.showLoading({
title: '加载中'
})
let datas = {
orderNo: this.orderNo
}
getOrderDetail(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
this.orderDetails = res.return_data;
}
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #f6f6f6;
}
.notes {
width: calc(100% - 40rpx);
display: flex;
align-items: center;
padding: 30rpx 0 30rpx 20rpx;
border-bottom: 1px solid #f6f6f6;
}
</style>

@ -25,7 +25,8 @@
</view>
<view class="storelis">
<view class="namecont">经营品类</view>
<view class="font14 fcor333 text2 width75 fotrt">{{storeDesInfo.storeIndustry.parentName}}-{{storeDesInfo.storeIndustry.childName}}
<view class="font14 fcor333 text2 width75 fotrt">
{{storeDesInfo.storeIndustry.parentName}}-{{storeDesInfo.storeIndustry.childName}}
</view>
</view>
<!-- <view class="width100 line10"></view> -->
@ -53,12 +54,12 @@
<view class="namecont">门店照片</view>
</view>
<view class="width94 displ">
<image :src="imageUrl+storeDesInfo.doorHeadImg" mode="widthFix" class="width30"
@click="perImage(imageUrl+storeDesInfo.doorHeadImg)" style="margin-left: 3%;"></image>
<image :src="imageUrl+storeDesInfo.cashRegisterImg" mode="widthFix" class="width30"
@click="perImage(imageUrl+storeDesInfo.cashRegisterImg)" style="margin-left: 3%;"></image>
<image :src="imageUrl+storeDesInfo.internalImg" mode="widthFix" class="width30"
@click="perImage(imageUrl+storeDesInfo.internalImg)" style="margin-left: 3%;"></image>
<image :src="storeimg" mode="widthFix" class="width30"
@click="perImage(storeimg)" style="margin-left: 3%;"></image>
<image :src="storeimg1" mode="widthFix" class="width30"
@click="perImage(storeimg1)" style="margin-left: 3%;"></image>
<image :src="storeimg2" mode="widthFix" class="width30"
@click="perImage(storeimg2)" style="margin-left: 3%;"></image>
</view>
<!-- <view class="storelis" style="border-bottom: 0px;">
<view class="namecont">其他凭证</view>
@ -73,7 +74,8 @@
<script>
import {
getStoreDetailById
getStoreDetailById,
getImgSignedUrl
} from '../../../Utils/Api.js';
let app = getApp();
export default {
@ -81,7 +83,10 @@
return {
desId: '', //id
storeDesInfo: '', //
imageUrl: app.globalData.imgUrl
imageUrl: app.globalData.imgUrl,
storeimg: '',
storeimg1: '',
storeimg2: ''
}
},
onLoad(options) {
@ -100,7 +105,10 @@
getStoreDetailById(datas).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
this.storeDesInfo = res.return_data;
this.storeDesInfo = res.return_data;
this.getImgSignedUrl(1,res.return_data.doorHeadImg);
this.getImgSignedUrl(2,res.return_data.cashRegisterImg);
this.getImgSignedUrl(3,res.return_data.internalImg);
} else {
uni.showToast({
title: res.return_msg,
@ -110,6 +118,26 @@
}
})
},
//
getImgSignedUrl(item, item1) {
let datas = {
"fileUrl": item1
}
getImgSignedUrl(datas).then(res => {
if (res.return_code == '000000') {
if (item == 1) {
this.storeimg = res.return_data;
}
if (item == 2) {
this.storeimg1 = res.return_data;
}
if (item == 3) {
this.storeimg2 = res.return_data;
}
}
})
},
/**
* @param {Object} item 放大图片
*/

@ -67,7 +67,8 @@
// getDiscountList,
moveHomeCount,
mermoveHomeCount,
storemoveHomeCount
storemoveHomeCount,
getDictionaries
} from '../../../Utils/Api.js'
let app = getApp();
export default {
@ -91,6 +92,14 @@
title: '商户管理',
url: '../../index/merchant-management/merchant-management',
img: '../../../static/img/home4.png'
}, {
title: '我的设备',
url: '../../index/mineService/mineService?id=3',
img: '../../../static/img/casihr.png'
}, {
title: '申请订单',
url: '../../index/salesOrderList/salesOrderList',
img: '../../../static/img/apply.png'
}
]
return;
@ -116,10 +125,20 @@
title: '收款记录',
url: '../../index/collectNotes/collectNotes',
img: '../../../static/img/home1.png'
},{
}, {
title: '二维码列表',
url: '../../index/scanList/scanList',
img: '../../../static/img/home2.png'
},
{
title: '我的设备',
url: '../../index/mineService/mineService?id=1',
img: '../../../static/img/casihr.png'
},
{
title: '设备申请',
url: '../../index/serviceApplicationList/serviceApplicationList',
img: '../../../static/img/apply.png'
}
]
return;
@ -136,6 +155,7 @@
if (this.userInfo.secUser.objectType == 5) {
this.storemoveHomeCount();
}
this.getDictionaries();
},
methods: {
// getDiscountList() {
@ -149,6 +169,14 @@
// }
// })
// },
//
getDictionaries() {
getDictionaries().then(res => {
if (res.return_code == '000000') {
app.globalData.Dictionaries = res.return_data;
}
})
},
//
moveHomeCount() {
moveHomeCount().then(res => {

@ -0,0 +1,72 @@
<template>
<view>
</view>
</template>
<script>
import {
getAccessToken
} from '../../Utils/Api.js';
let app = getApp();
export default {
data() {
return {
}
},
onLoad(options) {
let that = this;
// #ifdef H5
let arr1 = window.location.href;
let arr2 = arr1.split('=');
if (arr2[2]) {
var arr3 = arr2[2].split('&');
if (arr3[0] != undefined && arr3[0]) {
app.globalData.h5code = arr3[0];
uni.setStorage({
key: "h5code",
data: arr3[0]
})
}
} else {
// openid
// that.jumpcdx();
}
if (app.globalData.h5code) {
that.getAccessToken();
}
// #endif
},
methods: {
//H5 openId
getAccessToken() {
let params = {
code: app.globalData.h5code
}
getAccessToken(params).then(res => {
if (res.return_code == '000000' && res.return_data.openid) {
app.globalData.openId = res.return_data.openid;
uni.setStorage({
key: "openId",
data: res.return_data.openid
})
uni.reLaunch({
url: '/pages/login/login'
})
} else {
this.jumpcdx();
}
});
},
jumpcdx() {
location.href =
'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa075e8509802f826&redirect_uri=https://hsgcs.dctpay.com/wechat_authorize/?redirect_uri=https://gratia-pay.dctpay.com/cweb&response_type=code&scope=snsapi_base#wechat_redirect';
},
}
}
</script>
<style>
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

@ -192,7 +192,9 @@ $uni-font-size-paragraph:30upx;
.marRight20{
margin-right: 20px;
}
.marRight40{
margin-right: 40px;
}
.verc {
vertical-align: middle;

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>支付</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/cweb/static/index.a5c69d49.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/cweb/static/js/chunk-vendors.5a385107.js></script><script src=/cweb/static/js/index.3ace2746.js></script></body></html>
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>支付</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/cweb/static/index.2772579d.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/cweb/static/js/chunk-vendors.e911c294.js></script><script src=/cweb/static/js/index.ffd9f4df.js></script></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.
Loading…
Cancel
Save