Commit b360a192 authored by chicheng's avatar chicheng

成品入库添加

parent a0b5a911
......@@ -21,7 +21,7 @@ const config = {
}
// 设置后台接口服务的基础地址
config.baseUrl = 'http://192.168.0.106:20091';
config.baseUrl = 'http://localhost:20091';
// config.baseUrl = process.env.NODE_ENV === 'development' ? '/api' : 'http://182.140.132.45:9094'; // 上海环境
// config.baseUrl = process.env.NODE_ENV === 'development' ? '/api' : 'http://192.168.1.128:20091'; // 外网环境
// config.baseUrl = "http://101.200.162.168:8080";
......
/**
* Copyright (c) 2013-Now http://aidex.vip All rights reserved.
*/
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
const install = (Vue, vm) => {
// 参数配置对象
const config = vm.vuex_config;
console.log(config);
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
vm.$u.api = {
// 基础服务:登录登出、身份信息、菜单授权、切换系统、字典数据等
login: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/login', params),
getExAccountInfoApi: (params = {}) => vm.$u.postJson(config.adminPath + '/common/getExAccountInfo', params),
changepassword: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsmv/changepassword', params),
// 到货条码打印查询
getforprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/getforprint', params),
// 到货条码打印
purccprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/print', params),
// 到货检验查询
getforcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/getforcheck', params),
// 到货检验确认
purcccheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/check', params),
// 查询进货单创建列表
getforcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purtg/getforcreate', params),
// 创建进货单
purtgcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purtg/create', params),
// 委外进货打印查询
mocthgetforprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforprint', params),
// 委外进货打印
mocthprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/print', params),
// 委外检验查询
mocthgetforcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforcheck', params),
// 委外检验确认
mocthcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/check', params),
// 委外扫码上架
mocthgetforputon: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforputon', params),
// 委外扫码上架
mocthputon: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/puton', params),
// 领料单查询
moctcgetforcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctc/getforcreate', params),
// 领料单创建
moctccreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctc/create', params),
// 品号信息
getforinvmbinfo: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invmb/getforinvmbinfo', params),
// 入库单创建
createforstorage: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctf/createByErp', params),
stockSaleOutList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/list', params),
stockList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/stockList', params),
confirmStock: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/confirm', params),
getforinvmlinfo: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invml/getforinvmlinfo', params),
validateArrival: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockArrival/validate', params),
confirmArrival: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockArrival/confirm', params),
warehouseList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/warehouseArrive/list', params),
// 查询产品库存
getforinvmlinfoApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invml/getforinvmlinfo', params),
// 新增库存交易单
stockConfirmApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockTaking/confirm', params),
// 调拨确认
transferConfirmApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockAllocate/confirm', params),
// 仓库查询
getWarehouseListApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsmc/getCmsmcList', params),
// 库位查询
getStorageListApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsni/getCmsniList', params),
// 查询工单
getMocta: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocta/get', params),
};
}
export default {
install
}
/**
* Copyright (c) 2013-Now http://aidex.vip All rights reserved.
*/
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
const install = (Vue, vm) => {
// 参数配置对象
const config = vm.vuex_config;
console.log(config);
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
vm.$u.api = {
// 基础服务:登录登出、身份信息、菜单授权、切换系统、字典数据等
login: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/login', params),
getExAccountInfoApi: (params = {}) => vm.$u.postJson(config.adminPath + '/common/getExAccountInfo', params),
changepassword: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsmv/changepassword', params),
// 到货条码打印查询
getforprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/getforprint', params),
// 到货条码打印
purccprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/print', params),
// 到货检验查询
getforcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/getforcheck', params),
// 到货检验确认
purcccheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purcc/check', params),
// 查询进货单创建列表
getforcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purtg/getforcreate', params),
// 创建进货单
purtgcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/purtg/create', params),
// 委外进货打印查询
mocthgetforprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforprint', params),
// 委外进货打印
mocthprint: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/print', params),
// 委外检验查询
mocthgetforcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforcheck', params),
// 委外检验确认
mocthcheck: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/check', params),
// 委外扫码上架
mocthgetforputon: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/getforputon', params),
// 委外扫码上架
mocthputon: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocth/puton', params),
// 领料单查询
moctcgetforcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctc/getforcreate', params),
// 领料单创建
moctccreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctc/create', params),
// 品号信息
getforinvmbinfo: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invmb/getforinvmbinfo', params),
// 入库单创建
createforstorage: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctf/createByErp', params),
stockSaleOutList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/list', params),
stockList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/stockList', params),
confirmStock: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockSaleOut/confirm', params),
getforinvmlinfo: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invml/getforinvmlinfo', params),
validateArrival: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockArrival/validate', params),
confirmArrival: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockArrival/confirm', params),
warehouseList: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/warehouseArrive/list', params),
// 查询产品库存
getforinvmlinfoApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/invml/getforinvmlinfo', params),
// 新增库存交易单
stockConfirmApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockTaking/confirm', params),
// 调拨确认
transferConfirmApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/stockAllocate/confirm', params),
// 仓库查询
getWarehouseListApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsmc/getCmsmcList', params),
// 库位查询
getStorageListApi: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/cmsni/getCmsniList', params),
// 查询工单
getMocta: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/mocta/get', params),
// 根据箱标签查询入库数量
queryByBoxCode: (params = {}) => vm.$u.get(vm.vuex_barcode_url + '/barcodeSystem/atcstds/queryByBoxCode', params),
// 完工入库创建
moctfcreate: (params = {}) => vm.$u.postJson(vm.vuex_api_url + '/moctf/create', params),
};
}
export default {
install
}
This diff is collapsed.
<template>
<view class="page">
<NavBar :title="$t('成品入库')"></NavBar>
<view class="infoedit">
<u-form ref="form" :modelValue="form" class="login-form" :labelWidth="190">
<u-form-item prop="boxCode" :label="$t('箱标签:')">
<input
v-model="form.boxCode"
type="text"
:placeholder="$t('请输入或扫描箱标签')"
@blur="queryByBoxCode"
@confirm="queryByBoxCode"
>
</input>
</u-form-item>
<u-form-item prop="workOrderType" :label="$t('工单单别:')">
<input
v-model="form.workOrderType"
type="text"
:placeholder="$t('请输入工单单别')"
>
</input>
</u-form-item>
<u-form-item prop="workOrderNo" :label="$t('工单单号:')">
<input
v-model="form.workOrderNo"
type="text"
:placeholder="$t('请输入工单单号')"
>
</input>
</u-form-item>
<u-form-item prop="quantity" :label="$t('数量:')">
<input
v-model="form.quantity"
type="text"
disabled
>
</input>
</u-form-item>
<u-form-item style="width:100%;">
<button
size="medium"
type="primary"
style="width:95%;margin-top: 50rpx"
@click="submit()"
:disabled="!form.boxCode || !form.workOrderType || !form.workOrderNo || !form.quantity"
>
<span>{{$t('确定入库')}}</span>
</button>
</u-form-item>
</u-form>
</view>
</view>
</template>
<script>
import i18n from '../../lang/index'
export default {
data() {
return {
form: {
boxCode: null,
workOrderType: null,
workOrderNo: null,
quantity: null,
},
queryDetails: [], // 保存查询到的明细数据
loading: false
};
},
methods: {
// 根据箱标签查询入库数量
queryByBoxCode(e) {
const boxCode = e && e.detail ? e.detail.value : this.form.boxCode
if (!boxCode || !boxCode.trim()) {
return
}
if (this.loading) {
return
}
this.loading = true
this.$u.api.queryByBoxCode({ boxCode: boxCode.trim() }).then(res => {
this.loading = false
if (res.success && res.data && res.data.length > 0) {
// 保存查询到的明细数据
this.queryDetails = res.data
// 数量:统计数组长度(行数)或累加 snqty
// 方式1:统计行数
this.form.quantity = res.data.length
} else {
this.$u.toast(res.errorMessage || i18n.t('查询箱标签信息失败,未找到数据'))
this.clearForm()
}
}).catch(err => {
this.loading = false
this.$u.toast(i18n.t('查询失败'))
this.clearForm()
})
},
clearForm() {
this.form.workOrderType = null
this.form.workOrderNo = null
this.form.quantity = null
this.queryDetails = []
},
submit() {
if (!this.form.boxCode) {
return this.$u.toast(i18n.t('请输入箱标签'))
}
if (!this.form.workOrderType) {
return this.$u.toast(i18n.t('请输入工单单别'))
}
if (!this.form.workOrderNo) {
return this.$u.toast(i18n.t('请输入工单单号'))
}
if (!this.form.quantity) {
return this.$u.toast(i18n.t('请先查询箱标签信息'))
}
if (!this.queryDetails || this.queryDetails.length === 0) {
return this.$u.toast(i18n.t('未找到查询明细数据'))
}
if (this.loading) {
return
}
// 构建标签明细:从查询结果中提取数据
const storageDetails = this.queryDetails.map(item => ({
workOrderType: this.form.workOrderType, // 工单单别(表单录入)
workOrderNo: this.form.workOrderNo, // 工单单号(表单录入)
boxCode: item.psnno || '', // 箱码(查询明细)
labelNo: item.snNo || '' // 小标签号(查询明细)
}))
// 构建请求参数
//批号截取最后两位:JA00000021-175352500F-250905-000001
var boxCodes = this.form.boxCode.split("-")
var batchNo = boxCodes[2] + boxCodes[3];
const params = {
details: [{
tg014: this.form.workOrderType, // 工单单别
tg015: this.form.workOrderNo, // 工单单号
tg013: this.form.quantity, // 验收数量
tg011: this.form.quantity, // 入库数量
tg017: batchNo // 批号(箱标签)
}],
storageDetails: storageDetails // 标签明细(从查询结果生成)
}
this.loading = true
this.$u.api.moctfcreate(params).then(res => {
this.loading = false
if(res.success) {
this.$u.toast(i18n.t('入库成功'))
// 清空表单
this.form = {
boxCode: null,
workOrderType: null,
workOrderNo: null,
quantity: null,
}
this.queryDetails = []
} else {
this.$u.toast(res.errorMessage || i18n.t('入库失败'))
}
}).catch(err => {
this.loading = false
this.$u.toast(i18n.t('入库失败'))
})
}
},
};
</script>
<style lang="scss" scoped>
.infoedit {
padding: 20rpx 20rpx;
.u-border-bottom:after {
display: none;
}
::v-deep .uni-select{
border: none !important;
}
}
</style>
<template>
<view class="homePage" :style="'height:' + screenHeight + 'px;'">
<NavBar :title="$t('希迈条码系统')" left="" right="person" @clickRight="jumpUser"></NavBar>
<view class="boxs">
<u-row gutter="10">
<u-col v-for="(v, i) in tableData" :key="i" span="3">
<navigator :url="v.url" open-type="navigate">
<view class="demo-layout">
<u-image :src="v.src" width="100rpx" height="100rpx"></u-image>
<view style="height: 50rpx">{{ v.text }}</view>
</view>
</navigator>
</u-col>
</u-row>
</view>
</view>
</template>
<script>
import i18n from '../../lang/index'
export default {
data() {
return {
screenHeight: 0,
tableData: [{
src: require('@/static/images/print.png'),
text: i18n.t('到货条码打印'),
url: '/pages/abnormal/abnormalRemove'
},
{
src: require('@/static/images/check.png'),
text: i18n.t('到货检验'),
url: '/pages/forcheck/forcheckMain'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入进货单'),
url: '/pages/forcreate/Main'
},
// {
// src: require('@/static/images/print.png'),
// text: i18n.t('委外进货打印标签'),
// url: '/pages/forprint/Main'
// },
// {
// src: require('@/static/images/check.png'),
// text: i18n.t('委外检验'),
// url: '/pages/mocthforcheck/Main'
// },
// {
// src: require('@/static/images/takeup.png'),
// text: i18n.t('委外扫码上架'),
// url: '/pages/mocthgetforputon/Main'
// },
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入领料单'),
url: '/pages/moctcforcreate/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入入库单'),
url: '/pages/forstorage/Main'
},
{
src: require('@/static/images/infor.png'),
text: i18n.t('品号信息'),
url: '/pages/invmbinfo/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('采购到货'),
url: '/pages/dhd/Main'
},
{
src: require('@/static/images/item.png'),
text: i18n.t('销售出库'),
url: '/pages/saleck/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('库存调拨'),
url: '/pages/stockTransfer/index'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('库存盘点'),
url: '/pages/stockCheck/index'
}
]
};
},
computed: {
factoryCode: {
get() {
return this.vuex_user_factory || 1000
},
set(e) {
this.$u.vuex('vuex_user_factory', e)
}
}
},
created() {
this.screenHeight = uni.getSystemInfoSync().screenHeight;
},
methods: {
jumpUser() {
uni.navigateTo({
url: '/pages/sys/user/user'
});
},
factoryChange(e) {
console.log(e, 'factoryChange')
},
}
};
</script>
<style lang="scss" scoped>
.homePage {
background: #fff;
.title {
background: #fff;
padding: 20rpx 32rpx;
font-size: 28rpx;
line-height: 40rpx;
font-weight: 600;
display: flex;
flex-direction: row;
align-items: center;
}
.lines {
height: 32rpx;
background: #f8f8f8;
}
}
.demo-layout {
height: 164rpx;
border-radius: 4px;
margin-bottom: 50px;
display: flex;
flex-direction: column;
align-items: center;
text {
margin-top: 24rpx;
font-size: 24rpx;
color: #000;
}
}
.boxs {
padding-top: 50rpx;
}
</style>
<template>
<view class="homePage" :style="'height:' + screenHeight + 'px;'">
<NavBar :title="$t('希迈条码系统')" left="" right="person" @clickRight="jumpUser"></NavBar>
<view class="boxs">
<u-row gutter="10">
<u-col v-for="(v, i) in tableData" :key="i" span="3">
<navigator :url="v.url" open-type="navigate">
<view class="demo-layout">
<u-image :src="v.src" width="100rpx" height="100rpx"></u-image>
<view style="height: 50rpx">{{ v.text }}</view>
</view>
</navigator>
</u-col>
</u-row>
</view>
</view>
</template>
<script>
import i18n from '../../lang/index'
export default {
data() {
return {
screenHeight: 0,
tableData: [{
src: require('@/static/images/print.png'),
text: i18n.t('到货条码打印'),
url: '/pages/abnormal/abnormalRemove'
},
{
src: require('@/static/images/check.png'),
text: i18n.t('到货检验'),
url: '/pages/forcheck/forcheckMain'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入进货单'),
url: '/pages/forcreate/Main'
},
// {
// src: require('@/static/images/print.png'),
// text: i18n.t('委外进货打印标签'),
// url: '/pages/forprint/Main'
// },
// {
// src: require('@/static/images/check.png'),
// text: i18n.t('委外检验'),
// url: '/pages/mocthforcheck/Main'
// },
// {
// src: require('@/static/images/takeup.png'),
// text: i18n.t('委外扫码上架'),
// url: '/pages/mocthgetforputon/Main'
// },
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入领料单'),
url: '/pages/moctcforcreate/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('录入入库单'),
url: '/pages/forstorage/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('成品入库'),
url: '/pages/finishedProductStorage/Main'
},
{
src: require('@/static/images/infor.png'),
text: i18n.t('品号信息'),
url: '/pages/invmbinfo/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('采购到货'),
url: '/pages/dhd/Main'
},
{
src: require('@/static/images/item.png'),
text: i18n.t('销售出库'),
url: '/pages/saleck/Main'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('库存调拨'),
url: '/pages/stockTransfer/index'
},
{
src: require('@/static/images/keyin.png'),
text: i18n.t('库存盘点'),
url: '/pages/stockCheck/index'
}
]
};
},
computed: {
factoryCode: {
get() {
return this.vuex_user_factory || 1000
},
set(e) {
this.$u.vuex('vuex_user_factory', e)
}
}
},
created() {
this.screenHeight = uni.getSystemInfoSync().screenHeight;
},
methods: {
jumpUser() {
uni.navigateTo({
url: '/pages/sys/user/user'
});
},
factoryChange(e) {
console.log(e, 'factoryChange')
},
}
};
</script>
<style lang="scss" scoped>
.homePage {
background: #fff;
.title {
background: #fff;
padding: 20rpx 32rpx;
font-size: 28rpx;
line-height: 40rpx;
font-weight: 600;
display: flex;
flex-direction: row;
align-items: center;
}
.lines {
height: 32rpx;
background: #f8f8f8;
}
}
.demo-layout {
height: 164rpx;
border-radius: 4px;
margin-bottom: 50px;
display: flex;
flex-direction: column;
align-items: center;
text {
margin-top: 24rpx;
font-size: 24rpx;
color: #000;
}
}
.boxs {
padding-top: 50rpx;
}
</style>
......@@ -87,18 +87,19 @@ import {setLocal} from '@/lang'
});
})
},
handleChange(val) {
this.$u.vuex('vuex_mes_url', val.mesUrl);
this.$u.vuex('vuex_api_url', val.apiUrl);
// #ifdef APP-PLUS
checkappupdate.check({
title: i18n.t('检测到有新版本!'),
content: i18n.t('请升级app到最新版本!'),
canceltext: i18n.t('暂不升级'),
oktext: i18n.t('立即升级')
})
// #endif
},
handleChange(val) {
this.$u.vuex('vuex_mes_url', val.mesUrl);
this.$u.vuex('vuex_api_url', val.apiUrl);
this.$u.vuex('vuex_barcode_url', val.barcodeUrl);
// #ifdef APP-PLUS
checkappupdate.check({
title: i18n.t('检测到有新版本!'),
content: i18n.t('请升级app到最新版本!'),
canceltext: i18n.t('暂不升级'),
oktext: i18n.t('立即升级')
})
// #endif
},
submit(){
this.$refs.loginForm.validate().then(valid => {
if (valid) {
......
......@@ -17,7 +17,7 @@ try {
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
let saveStateKeys = ['vuex_user', 'vuex_user_factory', 'vuex_token', 'vuex_remember', 'vuex_locale', 'vuex_isAgent',
'vuex_workstation', 'vuex_task', 'vuex_sales_outbound', 'vuex_mes_url', 'vuex_api_url'
'vuex_workstation', 'vuex_task', 'vuex_sales_outbound', 'vuex_mes_url', 'vuex_api_url', 'vuex_barcode_url'
];
// 保存变量到本地存储中
......@@ -56,9 +56,11 @@ const store = new Vuex.Store({
//当前工作站正在进行的生产任务
vuex_task: null,
// 接口请求地址
vuex_mes_url: "",
vuex_mes_url: lifeData.vuex_mes_url ? lifeData.vuex_mes_url : "",
// 用户信息接口请求地址
vuex_api_url: "",
vuex_api_url: lifeData.vuex_api_url ? lifeData.vuex_api_url : "",
// 条码接口请求地址
vuex_barcode_url: lifeData.vuex_barcode_url ? lifeData.vuex_barcode_url : "",
// 自定义tabbar数据
// vuex_tabbar: [{
// iconPath: "/static/uview/example/component.png",
......
......@@ -16,7 +16,7 @@ function mobile(value) {
* 验证URL格式
*/
function url(value) {
return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value)
return /http(s)?:\/\/([\w-]+\.)*[\w-]+(:\d+)?(\/[\w-.\/?%&=]*)?/.test(value)
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment