添加正式版

main
lilu 2 years ago
parent 808090ab3e
commit edbc4c067f

@ -1,9 +1,10 @@
import http from '@/common/js/request/request.js'
import { loginUrl } from "@/common/js/request/moduleType.js"
export const login = (data) => {
return http.post('/test_auth/user/login', data, 'json')
return http.post(`${loginUrl}/user/login`, data, 'json')
}
export const getUserInfo = (data) => {
return http.get('/test_auth/user/info', data)
return http.get(`${loginUrl}/user/info`, data)
}

@ -1,21 +1,23 @@
import http from '@/common/js/request/request.js'
import { moveTraceUrl } from "@/common/js/request/moduleType.js"
// 获取场站数据
export const GetYaRDList = (data) => {
return http.get('/test_billtrace/billtrace/GetYaRDList', data)
return http.get(`${moveTraceUrl}/billtrace/GetYaRDList`, data)
}
// 获取船公司数据
export const GetSubscribeList = (data) => {
return http.get('/test_billtrace/billtrace/GetSubscribeList', data)
return http.get(`${moveTraceUrl}/billtrace/GetSubscribeList`, data)
}
// 目的港订阅接口
export const SaveAddSubscribe = (data) => {
return http.post('/test_billtrace/billtrace/SaveAddSubscribe', data)
return http.post(`${moveTraceUrl}/billtrace/SaveAddSubscribe`, data)
}
// 获取运踪数据
export const ListData = (data) => {
return http.post('/test_billtrace/BillTrace/ListData', data,'json')
return http.post(`${moveTraceUrl}/BillTrace/ListData`, data, 'json')
}
// 新增接口
export const SaveAddBillTrace = (data) => {
return http.post('/test_billtrace/billtrace/SaveAddBillTrace', data)
return http.post(`${moveTraceUrl}/billtrace/SaveAddBillTrace`, data)
}

@ -1,8 +1,7 @@
import http from '@/common/js/request/request.js'
import { baseUrl } from "@/common/js/request/moduleType.js"
// 消费记录
export const getConsumptionDataList = (data) => {
return http.get('/WechatApplet/GetConsumptionDataList', data)
return http.get(`${baseUrl}/Mobile/WechatApplet/GetConsumptionDataList`, data)
}

@ -1,53 +1,53 @@
import http from '@/common/js/request/request.js'
import { baseUrl } from "@/common/js/request/moduleType.js"
// 获取个人信息
export const getPersonalInfo = (data) => {
return http.get('/WechatApplet/GetInfo', data)
return http.get(`${baseUrl}/Mobile/WechatApplet/GetInfo`, data)
}
// 修改个人信息
export const setPersonalInfo = (data) => {
return http.post('/WechatApplet/EditSubmit', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/EditSubmit`, data, 'json', 'url')
}
// 申请离职
export const leaveSubmit = (data) => {
return http.post('/WechatApplet/_LeaveSubmit', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/_LeaveSubmit`, data, 'json', 'url')
}
// 获取当前用户手机验证码
export const getCurrentUserMobileCode = (data) => {
return http.post('/WechatApplet/GetCurrentUserMobileCode', data, 'json')
return http.post(`${baseUrl}/Mobile/WechatApplet/GetCurrentUserMobileCode`, data, 'json')
}
// 获取手机验证码
export const getMobileCode = (data) => {
return http.post('/WechatApplet/GetMobileCode', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/GetMobileCode`, data, 'json', 'url')
}
// 获取手机验证码
export const changeMobile = (data) => {
return http.post('/WechatApplet/_ChangeMobileSubmit', data, 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/_ChangeMobileSubmit`, data, 'url')
}
// 修改密码
export const chgPwdSubmit = (data) => {
return http.post('/WechatApplet/ChgPwdSubmit', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/ChgPwdSubmit`, data, 'json', 'url')
}
// 注册
export const regist = (data) => {
return http.post('/WechatApplet/Regist', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/Regist`, data, 'json', 'url')
}
// 获取注册验证码
export const getRegistMobileCode = (data) => {
return http.post('/WechatApplet/_RegistGetMobileCode', data, 'json', 'url')
return http.post(`${baseUrl}/Mobile/WechatApplet/_RegistGetMobileCode`, data, 'json', 'url')
}

@ -1,8 +1,7 @@
import http from '@/common/js/request/request.js'
import { baseUrl } from "@/common/js/request/moduleType.js"
// 消费记录
export const getRechargeDataList = (data) => {
return http.get('/WechatApplet/GetRechargeDataList', data)
return http.get(`${baseUrl}/Mobile/WechatApplet/GetRechargeDataList`, data)
}

@ -1,81 +1,90 @@
import http from '@/common/js/request/request.js'
import { amsUrl } from "@/common/js/request/moduleType.js"
// ams 查询接口
export const amsLoad = (data) => {
return http.get('/test_ams/api/Ams/Load', data)
return http.get(`${amsUrl}/api/Ams/Load`, data)
}
// ams 删除接口
export const amsDel = (data) => {
return http.get('/test_ams/api/Ams/Del', data)
return http.get(`${amsUrl}/api/Ams/Del`, data)
}
// ams 发送接口
export const amsSend = (data) => {
return http.get('/test_ams/api/Ams/Send', data)
return http.get(`${amsUrl}/api/Ams/Send`, data)
}
// ams 获取港口 (非起运港 装货港)
export const amsGetPort = (data) => {
return http.get('/test_ams/GetPort', data)
return http.get(`${amsUrl}/GetPort`, data)
}
// ams 获取港口 (起运港 装货港)
export const amsGetCodePortLoad = (data) => {
return http.get('/test_ams/GetCodePortLoad', data)
return http.get(`${amsUrl}/GetCodePortLoad`, data)
}
// ams 船司
export const getCarrier = (data) => {
return http.get('/test_ams/GetCARRIER', data)
return http.get(`${amsUrl}/GetCARRIER`, data)
}
// ams 获取国家
export const getCountry = (data) => {
return http.get('/test_ams/GetCountry', data)
return http.get(`${amsUrl}/GetCountry`, data)
}
// ams 获取包装单位
export const getPackage = (data) => {
return http.get('/test_ams/GetPackage', data)
return http.get(`${amsUrl}/GetPackage`, data)
}
// ams 获取箱型
export const getCtnall = (data) => {
return http.get('/test_ams/GetCTNALL', data)
return http.get(`${amsUrl}/GetCTNALL`, data)
}
// ams 获取危品等级及CODE
export const getDangerousGoods = (data) => {
return http.get('/test_ams/GetDangerousGoods', data)
return http.get(`${amsUrl}/GetDangerousGoods`, data)
}
// ams 获取船名
export const getVessel = (data) => {
return http.get('/test_ams/GetVessel', data)
return http.get(`${amsUrl}/GetVessel`, data)
}
// ams 获取收发通模板
export const getTemplate = (data) => {
return http.get('/test_ams/api/Ams/GetTemplate', data)
return http.get(`${amsUrl}/api/Ams/GetTemplate`, data)
}
// ams 保存收发通模板
export const saveTemplate = (data) => {
return http.post('/test_ams/api/Ams/SaveTemplate', data, 'json')
return http.post(`${amsUrl}/api/Ams/SaveTemplate`, data, 'json')
}
// ams 新增编辑 (保存)
export const addOrUpdate = (data) => {
return http.post('/test_ams/api/Ams/AddOrUpdate', data, 'json')
return http.post(`${amsUrl}/api/Ams/AddOrUpdate`, data, 'json')
}
// ams 新增编辑 (发送)
export const sendAms = (data) => {
return http.get('/test_ams/api/Ams/Send', data)
return http.get(`${amsUrl}/api/Ams/Send`, data)
}
// ams 导出
export const exportPDF = (data) => {
return http.get(`${amsUrl}/api/Ams/ExportPDF`, data)
}

@ -1,18 +1,19 @@
import http from '@/common/js/request/request.js'
import { cabinQueryUrl } from "@/common/js/request/moduleType.js"
// 运价综合查询
export const realQuery = (data) => {
return http.post('/test_yunjia/v1/real/query', data, 'json')
return http.post(`${cabinQueryUrl}/v1/real/query`, data, 'json')
}
// 港口模糊查询
export const realGk = (data) => {
return http.post('/test_yunjia/v1/real/gk', data, 'json')
return http.post(`${cabinQueryUrl}/v1/real/gk`, data, 'json')
}
// 箱型模糊查询
export const realBox = (data) => {
return http.post('/test_yunjia/v1/real/box', data, 'json')
return http.post(`${cabinQueryUrl}/v1/real/box`, data, 'json')
}

@ -1,7 +1,8 @@
import http from '@/common/js/request/request.js'
import { baseUrl } from "@/common/js/request/moduleType.js"
// 舱单查询
export const GetMsOpSeaeEdiList = (data) => {
return http.get('/WechatApplet/GetMsOpSeaeEdiList', data)
return http.get(`${baseUrl}/GetMsOpSeaeEdiList`, data)
}

@ -1,7 +1,7 @@
export default {
// baseUrl :process.env.NODE_ENV === 'development' ? "https://wechat.myshipping.net:8860": "http://djy-identity.myshipping.net",
baseUrl :process.env.NODE_ENV === 'development' ? "https://wechat.myshipping.net:8860": "https://wechat.myshipping.net:8860",
dataType: "json",
/* 如设为json会对返回的数据做一次 JSON.parse */
responseType: "text"
moduleUrlType: 'formal', // test 测试版 formal 正式版
// dataType: "json",
// responseType: "text",
}

@ -0,0 +1,14 @@
import http from "./config.js"
// 登陆授权 - 用户登录、获取用户信息等
export const loginUrl = http.moduleUrlType === 'test' ? '/test_auth' : '/auth'
// 公共基础 - 基础信息, 舱单, 注册
export const baseUrl = http.moduleUrlType === 'test' ? '/test_common' : '/CommonCD'
// 出口运踪
export const moveTraceUrl = http.moduleUrlType === 'test' ? '/test_billtrace' : '/billtrace'
// 运价联查
export const cabinQueryUrl = http.moduleUrlType === 'test' ? '/test_yunjia' : '/yunjia'
// AMS
export const amsUrl = http.moduleUrlType === 'test' ? '/test_ams' : '/ams'

@ -5,9 +5,11 @@
import config from "./config.js"
let whiteList = [
'pages/homePage/home/home',
'pages/homePage/home/home?current=0',
'pages/homePage/index/index',
'pages/homePage/mine/mine',
'pages/homePage/login/login',
'pages/homePage/register/register',
'pages/mine/confirmAgreement/confirmAgreement'
]
function request(options,contentType = 'normal') {

@ -44,7 +44,6 @@
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
],

@ -2,7 +2,7 @@
<view class="content">
<view class="tip">
<image class="logo" src="../../../static/image/logo-min.png"></image>
<text class="logo-name">大简云工作平台</text>
<text class="logo-name">大简云工作平台 <template v-if="moduleUrlType == 'test'">()</template></text>
</view>
<view class="online-box">
@ -45,24 +45,28 @@
<view class="title">即将上线</view>
<view class="nav-box">
<view class="nav" @click="changePage(false)">
<!-- /pages/vas/manifest/manifest -->
<view class="top">
<text class="iconfont icon-dingdanguanli"></text>
</view>
<view class="nav-text">舱单申报</view>
</view>
<view class="nav" @click="changePage(false)">
<!-- /pages/vas/vgm/vgm -->
<view class="top">
<text class="iconfont icon-yewuzongshu"></text>
</view>
<view class="nav-text">VGM</view>
</view>
<view class="nav" @click="changePage(false)">
<!-- /pages/vas/lclFrom/lclFrom -->
<view class="top">
<text class="iconfont icon-weiwaiweixiufuwushenqingdan-64"></text>
</view>
<view class="nav-text">拼箱申请单</view>
</view>
<view class="nav" @click="changePage('/pages/vas/ams/ams')">
<view class="nav" @click="changePage(false)">
<!-- /pages/vas/ams/ams -->
<view class="top">
<text class="iconfont icon-dianzaipiaojuzidongyewushezhi"></text>
</view>
@ -106,9 +110,8 @@
</template>
<script>
import {
getUserInfo
} from '@/common/js/api/homePage/login.js'
import { getUserInfo } from '@/common/js/api/homePage/login.js'
import http from "@/common/js/request/config.js"
import {
mapState,
mapActions
@ -116,7 +119,8 @@
export default {
data() {
return {
title: 'Hello'
title: 'Hello',
moduleUrlType: '',
}
},
computed: {
@ -131,7 +135,7 @@
// } else {
// this.getUserInfo();
// }
console.log('App index ==========', getApp().globalData.baseUrl)
this.moduleUrlType = http.moduleUrlType;
},
onShareAppMessage(res) {
if (res.from === 'button') {//

@ -1,84 +1,110 @@
<template>
<view class="Register">
<view class="content">
<view class="label">新用户注册</view>
<view class="input-box" :class="{'error-input': !registerCheck.username}">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">用户名</text>
<input class="userName input" type="text" v-model="registerData.username" placeholder="请输入用户名" @blur="checkVal('username', 'username')" adjust-position="false">
<view class="error-tip" v-if="!registerCheck.username"> 410<br/>可由字母数字下划线或.组成</view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">姓名</text>
<input class="name input" type="text" v-model="registerData.name" placeholder="请输入姓名" @blur="checkVal('name', 'hasStr')">
<view class="error-tip" v-if="!registerCheck.name"></view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">手机号</text>
<input class="tel input" type="text" v-model="registerData.tel" placeholder="请输入手机号" @blur="checkVal('tel', 'phone')">
<view class="error-tip" v-if="!registerCheck.tel"></view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">邮箱</text>
<input class="email input" type="text" v-model="registerData.email" placeholder="请输入邮箱" @blur="checkVal('email', 'email')">
<view class="error-tip" v-if="!registerCheck.email"></view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">密码</text>
<input class="password input" :type="passwordType" v-model="registerData.password" placeholder="请输入密码" @blur="checkVal('password', 'pwd')">
<text class="iconfont see-btn" :class="passwordType=='password' ? 'icon-biyanjing': 'icon-yanjing'" @click="changePasswordType('password')"></text>
<view class="error-tip" v-if="!registerCheck.password">320</view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">确认密码</text>
<input class="confirmPassword input" :type="confirmPasswordType" v-model="registerData.confirmPassword" placeholder="请确认密码" @blur="checkVal('confirmPassword', 'cfmPwd')">
<text class="iconfont see-btn" :class="confirmPasswordType=='password' ? 'icon-biyanjing': 'icon-yanjing'" @click="changePasswordType('confirmPassword')"></text>
<view class="error-tip" v-if="!registerCheck.confirmPassword"></view>
</view>
<view class="input-box" :class="{'error-input': !registerCheck.companyName}">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">公司名称</text>
<input class="companyName input" type="text" v-model="registerData.companyName" placeholder="请输入公司名称" @blur="checkVal('companyName', 'hasStr')">
<view class="error-tip" v-if="!registerCheck.companyName"></view>
</view>
<view class="input-box">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">验证码</text>
<input class="validate input" type="text" v-model="registerData.validate" placeholder="请输入验证码" @blur="checkVal('validate', 'inviteCode')">
<view class="validate-btn" @click="codeshow()">{{sendTxt}}</view>
<view class="error-tip" v-if="!registerCheck.validate"></view>
</view>
<view class="input-box">
<text class="input-label">邀请码</text>
<input class="invitationCode input" type="text" v-model="registerData.invitationCode" placeholder="请输入邀请码">
<!-- <view class="error-tip">请输入正确的邀请码</view> -->
</view>
<view class="agreement" :class="{'agreement-error' : !valLoginRes.isOk && valLoginRes.name=='confirmAgreement'}">
<checkbox-group @change="agreementChange" >
<checkbox class="checkbox" color="#ff8213" :checked="registerData.confirmAgreement" />阅读并接受<text class="btn" @click="openConfirmAgreement"></text>
</checkbox-group>
<view class="register-box">
<view class="content">
<view class="label">新用户注册</view>
<view class="input-box" :class="{'error-input': !registerCheck.username}">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">用户名</text>
<input class="userName input" type="text" v-model="registerData.username" placeholder="请输入用户名" @blur="checkVal('username', 'username')" adjust-position="false">
</view>
<view class="error-tip" v-if="!registerCheck.username"> 410<br/>可由字母数字下划线或.组成</view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">姓名</text>
<input class="name input" type="text" v-model="registerData.name" placeholder="请输入姓名" @blur="checkVal('name', 'hasStr')">
</view>
<view class="error-tip" v-if="!registerCheck.name"></view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">手机号</text>
<input class="tel input" type="text" v-model="registerData.tel" placeholder="请输入手机号" @blur="checkVal('tel', 'phone')">
</view>
<view class="error-tip" v-if="!registerCheck.tel"></view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">邮箱</text>
<input class="email input" type="text" v-model="registerData.email" placeholder="请输入邮箱" @blur="checkVal('email', 'email')">
</view>
<view class="error-tip" v-if="!registerCheck.email"></view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">密码</text>
<input class="password input" v-if="passwordType == 'password'" type="password" v-model="registerData.password" placeholder="请输入密码" @input="checkVal('password', 'pwd')">
<input class="password input" v-else-if="passwordType == 'text'" type="text" v-model="registerData.password" placeholder="请输入密码" @input="checkVal('password', 'pwd')">
<text class="iconfont see-btn" :class="passwordType=='password' ? 'icon-biyanjing': 'icon-yanjing'" @click="changePasswordType('password')"></text>
</view>
<view class="error-tip" v-if="!registerCheck.password">320</view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">确认密码</text>
<input class="confirmPassword input" v-if="confirmPasswordType == 'password'" type="password" v-model="registerData.confirmPassword" placeholder="请确认密码" @blur="checkVal('confirmPassword', 'cfmPwd')">
<input class="confirmPassword input" v-else-if="confirmPasswordType == 'text'" type="text" v-model="registerData.confirmPassword" placeholder="请确认密码" @blur="checkVal('confirmPassword', 'cfmPwd')">
<text class="iconfont see-btn" :class="confirmPasswordType=='password' ? 'icon-biyanjing': 'icon-yanjing'" @click="changePasswordType('confirmPassword')"></text>
</view>
<view class="error-tip" v-if="!registerCheck.confirmPassword"></view>
</view>
<view class="input-box" :class="{'error-input': !registerCheck.companyName}">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">公司名称</text>
<input class="companyName input" type="text" v-model="registerData.companyName" placeholder="请输入公司名称" @blur="checkVal('companyName', 'hasStr')">
</view>
<view class="error-tip" v-if="!registerCheck.companyName"></view>
</view>
<view class="input-box">
<view class="input-top">
<text class="iconfont icon-asterisk required-icon"></text>
<text class="input-label">验证码</text>
<input class="validate input" type="text" v-model="registerData.validate" placeholder="请输入验证码" @blur="checkVal('validate', 'inviteCode')">
<view class="validate-btn" @click="codeshow()">{{sendTxt}}</view>
</view>
<view class="error-tip" v-if="!registerCheck.validate"></view>
</view>
<view class="input-box">
<view class="input-top">
<text class="input-label">邀请码</text>
<input class="invitationCode input" type="text" v-model="registerData.invitationCode" placeholder="邀请码,若没有可以不填">
</view>
<!-- <view class="error-tip">请输入正确的邀请码</view> -->
</view>
<view class="agreement" :class="{'agreement-error' : !valLoginRes.isOk && valLoginRes.name=='confirmAgreement'}">
<checkbox-group @change="agreementChange" >
<checkbox class="checkbox" color="#ff8213" :checked="registerData.confirmAgreement" />阅读并接受<text class="btn" @click="openConfirmAgreement"></text>
</checkbox-group>
</view>
</view>
<view class="registerBtn" :class="{'noRegisterBtn':!checkOver}" @click="register"></view>
<view class="btn-tip">已有账号 <text @click="backLogin"></text></view>
</view>
<view class="registerBtn" :class="{'noRegisterBtn':!checkOver}" @click="register"></view>
<view class="btn-tip">已有账号 <text @click="backLogin"></text></view>
</view>
</template>
<script>
import {
getRegistMobileCode,
regist
} from '@/common/js/api/mine/personalInfo.js'
import {
getRegistMobileCode,
regist
} from '@/common/js/api/mine/personalInfo.js'
import {
mapState,
mapActions
} from 'vuex';
export default {
data() {
return {
@ -117,6 +143,8 @@ export default {
checkOver: false,
valLoginRes: null,
// inputMoveUp: 0,
};
},
watch:{
@ -142,7 +170,16 @@ export default {
deep:true
},
},
onLoad() {
// uni.onKeyboardHeightChange(res => {
// console.log('onLoad - ', res )
// this.inputMoveUp = res.height;
// })
},
methods: {
...mapActions([
'setUserInfo'
]),
goBack() {
uni.navigateBack();
},
@ -229,7 +266,16 @@ export default {
COMTYPE: '货代'
}).then(res =>{
if(res == 'success'){
this.$util.Tips({title: '注册成功,即将返回登录'}, {tab: 3})
this.$util.loginFun(this.registerData.username, this.registerData.password).then(res=>{
let time = new Date().getTime() + res.data.expiresIn*1000
uni.setStorageSync('userToken', res.data.token);
uni.setStorageSync('tokenStartTime', time);
uni.setStorageSync('LoginName', this.Base64enCode(this.registerData.username));
uni.setStorageSync('Password', this.Base64enCode(this.registerData.password));
this.getUserInfo();
})
// this.$util.Tips({title: ''}, {tab: 3})
}else{
this.$util.Tips({title: res})
}
@ -238,6 +284,24 @@ export default {
})
},
getUserInfo(){
this.$util.getUserInfoFun(this.registerData.username,this.registerData.password).then(res=>{
getApp().globalData.isLogin = true;
this.setUserInfo(res.data);
this.$util.Tips({title:'登录成功'}, {tab:1,url:'/pages/homePage/index/index'})
})
},
Base64enCode(text){
let Base64 = require('@/js_sdk/js-base64').Base64
return Base64.encode(text)
},
Base64deCode(text){
let Base64 = require('@/js_sdk/js-base64').Base64
return Base64.decode(text)
},
checkVal(type, validateType){
if(type == 'confirmPassword'){
let loginRules = [{name: 'confirmPassword', required: true, type: 'cfmPwd', errmsg: '请确认密码', oname: 'password', errmsg2:'两次输入密码不一致'}]
@ -266,12 +330,15 @@ export default {
<style lang="scss" scoped>
.Register {
display: flex;
flex-direction: column;
align-items: center;
overflow-y: auto;
// display: flex;
// flex-direction: column;
height: 100vh;
padding-bottom: 100rpx;
overflow: hidden;
.register-box{
align-items: center;
overflow-y: auto;
height: 100%;
}
.content{
// padding: 0 62rpx;
padding: 0 40rpx 0 62rpx;
@ -282,7 +349,7 @@ export default {
font-size: 56rpx;
color: #272832;
font-weight: bold;
margin-bottom: 20rpx;
margin-bottom: 70rpx;
}
.desc {
margin-top: 14rpx;
@ -290,10 +357,14 @@ export default {
color: rgba(39,40,50,0.50);
}
.input-box{
display: flex;
padding-top: 52rpx;
position:relative;
// display: flex;
// padding-top: 52rpx;
// position:relative;
height: 116rpx;
.input-top{
display: flex;
height:64rpx;
}
.input-label{
width: 140rpx;
font-size: 28rpx;
@ -305,8 +376,8 @@ export default {
padding-bottom: 16rpx !important;
border-bottom: 1rpx solid rgba(39,40,50,0.08);
font-size: 28rpx;
position:relative;
top: 0;left:0;
// position:relative;
// top: 0;left:0;
}
.see-btn{
width: 90rpx;
@ -354,11 +425,8 @@ export default {
.error-tip{
display: block;
position: absolute;
width: 100%;
height: 40rpx;
bottom: -48rpx;
right: 0;
text-align: right;
line-height: 40rpx;
font-size: 24rpx;
@ -366,7 +434,7 @@ export default {
padding-left: 160rpx;
}
&.error-input{
padding-bottom:40rpx;
height: 158rpx;
.error-tip{
bottom:-4rpx;
}
@ -414,6 +482,7 @@ export default {
font-size: 32rpx;
color: #fff;
font-weight: bold;
margin: 20rpx auto 0;
}
.noRegisterBtn {
@ -424,9 +493,10 @@ export default {
.btn-tip{
font-size: 24rpx;
color: #999;
height: 80rpx;
// height: 80rpx;
line-height: 80rpx;
text-align: center;
padding-bottom: 100rpx;
text{
text-decoration:underline;
}

@ -16,107 +16,107 @@
<view class='b-text mt-40'>总则</view>
<view class="underline"><text class='b-text'>11</text>用户应当同意本协议的条款并按照页面上的提示完成全部的注册程序用户在进行注册程序过程中点击"同意"按钮即表示用户与大简云工作平台达成协议完全接受本协议项下的全部条款</view>
<view class="underline"><text class='b-text'>12</text>用户注册成功后大简云工作平台将给予每个用户一个用户帐号及相应的密码该用户帐号和密码由用户负责保管用户应当对以其用户帐号进行的所有活动和事件负法律责任</view>
<view class="underline"><text class='b-text'>13</text>用户一经注册大简云工作平台帐号 用户有权利用该帐号使用大简云工作平台的各项服务当用户使用大简云工作平台各单项服务时用户的使用行为视为其对该单项服务的服务条款以及大简云工作平台在该单项服务中发出的各类公告的同意</view>
<view class="underline"><text class='b-text'>14</text>大简云工作平台会员服务协议以及各个频道单项服务条款和公告可由大简云工作平台团队定时更新并予以公示您在使用相关服务时,应关注并遵守其所适用的相关条款</view>
<view class="underline"><text class="b-text">11</text>用户应当同意本协议的条款并按照页面上的提示完成全部的注册程序用户在进行注册程序过程中点击"同意"按钮即表示用户与大简云工作平台达成协议完全接受本协议项下的全部条款</view>
<view class="underline"><text class="b-text">12</text>用户注册成功后大简云工作平台将给予每个用户一个用户帐号及相应的密码该用户帐号和密码由用户负责保管用户应当对以其用户帐号进行的所有活动和事件负法律责任</view>
<view class="underline"><text class="b-text">13</text>用户一经注册大简云工作平台帐号 用户有权利用该帐号使用大简云工作平台的各项服务当用户使用大简云工作平台各单项服务时用户的使用行为视为其对该单项服务的服务条款以及大简云工作平台在该单项服务中发出的各类公告的同意</view>
<view class="underline"><text class="b-text">14</text>大简云工作平台会员服务协议以及各个频道单项服务条款和公告可由大简云工作平台团队定时更新并予以公示您在使用相关服务时,应关注并遵守其所适用的相关条款</view>
<view class='b-text mt-40'>注册信息和隐私保护</view>
<view><text class='b-text'>21</text>大简云工作平台帐号 即大简云工作平台用户ID的所有权归青岛东胜伟业软件有限公司所有用户按注册页面引导填写信息阅读并同意本协议且完成全部注册程序后即可获得大简云工作平台帐号 并成为用户用户应提供及时详尽及准确的个人资料并不断更新注册资料符合及时详尽准确的要求所有原始键入的资料将引用为注册资料</view>
<view><text class="b-text">21</text>大简云工作平台帐号 即大简云工作平台用户ID的所有权归青岛东胜伟业软件有限公司所有用户按注册页面引导填写信息阅读并同意本协议且完成全部注册程序后即可获得大简云工作平台帐号 并成为用户用户应提供及时详尽及准确的个人资料并不断更新注册资料符合及时详尽准确的要求所有原始键入的资料将引用为注册资料</view>
<view class="underline">如果因注册信息不真实或更新不及时而引发的相关问题大简云工作平台不负任何责任您可以通过大简云工作平台帐号 设置页面查询更正您的信息大简云工作平台帐号 设置页面地址www.大简云工作平台.net, 用户应当通过真实身份信息认证注册帐号且用户提交的帐号名称和简介等注册信息中不得出现违法和不良信息经大简云工作平台审核如存在上述情况大简云工作平台将不予注册同时在注册后如发现用户以虚假信息骗取帐号名称注册或其帐号简介等注册信息存在违法和不良信息的大简云工作平台有权不经通知单方采取限期改正暂停使用注销登记收回等措施</view>
<view><text class='b-text'>22</text>大简云工作平台帐号 包括帐户名称和密码您可使用设置的帐户名称包括用户名手机号邮箱和密码登录在帐号使用过程中为了保障您的帐号安全基于不同的终端以及您的使用习惯我们可能采取不同的验证措施识别您的身份例如您的帐户在新设备首次登录我们可能通过密码加校验码的方式识别您的身份验证方式包括但不限于短信验证码服务使用信息验证</view>
<view class="underline margin-bottom"><text class='b-text'>23</text>用户不应将其帐号密码转让出售或出借予他人使用若用户授权他人使用帐户应对被授权人在该帐户下发生所有行为负全部责任由于帐号关联用户使用信息仅当依法律法规司法裁定或经大简云工作平台同意并符合大简云工作平台规定的用户帐号转让流程的情况下方可进行帐号的转让</view>
<view><text class='b-text'>24</text>因您个人原因导致的帐号信息遗失如需找回大简云工作平台帐号 信息请按照大简云工作平台帐号 找回要求提供相应的信息并确保提供的信息合法真实有效若提供的信息不符合要求无法通过大简云工作平台安全验证大简云工作平台有权拒绝提供帐号找回服务若帐号的唯一凭证不再有效大简云工作平台有权拒绝支持帐号找回例如手机号二次出售大简云工作平台可拒绝支持帮助找回原手机号绑定的帐号</view>
<view><text class='b-text'>25</text>在需要终止使用大简云工作平台帐号 服务时符合以下条件的您可以申请注销您的大简云工作平台帐号 </view>
<view><text class='b-text'>251</text>您仅能申请注销您本人的帐号并依照大简云工作平台公司的流程进行注销</view>
<view><text class='b-text'>252</text>您仍应对您在注销帐号前且使用大简云工作平台服务期间的行为承担相应责任同时大简云工作平台仍可保存您注销前的相关信息
</view><view><text class='b-text'>253</text>注销成功后帐号信息个人身份证信息交易记录会员权益等将无法恢复或提供</view>
<view class="underline"><text class='b-text'>26</text>为了防止资源占用如您连续六个月未使用您的大简云工作平台帐号 或未通过大简云工作平台认可的其他方式登录过您的大简云工作平台帐户 大简云工作平台有权对该帐户进行注销您将不能再通过该帐号登录名登录本网站或使用相关服务如该帐户有关联的理财产品待处理交易或余额大简云工作平台会在合理范围内协助您处理请您按照大简云工作平台提示的方式进行操作</view>
<view><text class='b-text'>27</text>大简云工作平台的隐私权保护声明说明了大简云工作平台如何收集和使用用户信息您保证在您使用大简云工作平台的所有产品和服务前已经充分了解并同意大简云工作平台可以据此处理用户信息</view>
<view><text class='b-text'>28</text>当您使用大简云工作平台产品进行支付登录等操作的时候服务器会自动接收验证并记录一些必要的信息如手机号码IP地址服务访问异常信息以及部分设备信息等以保障您在使用大简云工作平台服务时账户登录和支付过程的安全进而保护您的上网安全您使用大简云工作平台的服务即表示您同意大简云工作平台可以按照相关的隐私权政策处理您的个人信息大简云工作平台可能会与合作伙伴共同向您提供您所要求的服务或者共同向您展示您可能感兴趣的内容在信息为该项产品/服务所必须的情况下您同意大简云工作平台可与其分享必要的信息并且大简云工作平台会要求其确保数据安全并且禁止用于任何其他用途除此之外大简云工作平台不会向任何无关第三方提供或分享信息</view>
<view><text class='b-text'>29</text>在如下情况下大简云工作平台可能会披露您的信息 :</view>
<view><text class='b-text'>291</text>事先获得您的授权</view>
<view><text class='b-text'>292</text>您使用共享功能</view>
<view><text class='b-text'>293</text>根据法律法规法律程序的要求或政府主管部门的强制性要求</view>
<view><text class='b-text'>294</text>以学术研究或公共利益为目的</view>
<view><text class='b-text'>295</text>为维护大简云工作平台的合法权益例如查找预防处理欺诈或安全方面的问题</view>
<view><text class='b-text'>296</text>符合相关服务条款或使用协议的规定</view>
<view><text class='b-text'>210</text>您知悉并授权大简云工作平台仅在必需的情况下使用或与关联公司同步您的信息以为用户提供征信相关服务</view>
<view><text class='b-text'>211</text>为更好地向用户提供服务您同意大简云工作平台通过短信等形式向您发送相关商业性服务信息</view>
<view><text class='b-text'>212 </text>为了满足相关法律法规的要求和保障您的帐号安全尤其是您在进行帐号解绑注销等敏感操作时我们会将您提交的个人身份信息发送至银行运营商等机构进行验证查询以核实您身份的真实性</view>
<view><text class="b-text">22</text>大简云工作平台帐号 包括帐户名称和密码您可使用设置的帐户名称包括用户名手机号邮箱和密码登录在帐号使用过程中为了保障您的帐号安全基于不同的终端以及您的使用习惯我们可能采取不同的验证措施识别您的身份例如您的帐户在新设备首次登录我们可能通过密码加校验码的方式识别您的身份验证方式包括但不限于短信验证码服务使用信息验证</view>
<view class="underline margin-bottom"><text class="b-text">23</text>用户不应将其帐号密码转让出售或出借予他人使用若用户授权他人使用帐户应对被授权人在该帐户下发生所有行为负全部责任由于帐号关联用户使用信息仅当依法律法规司法裁定或经大简云工作平台同意并符合大简云工作平台规定的用户帐号转让流程的情况下方可进行帐号的转让</view>
<view><text class="b-text">24</text>因您个人原因导致的帐号信息遗失如需找回大简云工作平台帐号 信息请按照大简云工作平台帐号 找回要求提供相应的信息并确保提供的信息合法真实有效若提供的信息不符合要求无法通过大简云工作平台安全验证大简云工作平台有权拒绝提供帐号找回服务若帐号的唯一凭证不再有效大简云工作平台有权拒绝支持帐号找回例如手机号二次出售大简云工作平台可拒绝支持帮助找回原手机号绑定的帐号</view>
<view><text class="b-text">25</text>在需要终止使用大简云工作平台帐号 服务时符合以下条件的您可以申请注销您的大简云工作平台帐号 </view>
<view><text class="b-text">251</text>您仅能申请注销您本人的帐号并依照大简云工作平台公司的流程进行注销</view>
<view><text class="b-text">252</text>您仍应对您在注销帐号前且使用大简云工作平台服务期间的行为承担相应责任同时大简云工作平台仍可保存您注销前的相关信息
</view><view><text class="b-text">253</text>注销成功后帐号信息个人身份证信息交易记录会员权益等将无法恢复或提供</view>
<view class="underline"><text class="b-text">26</text>为了防止资源占用如您连续六个月未使用您的大简云工作平台帐号 或未通过大简云工作平台认可的其他方式登录过您的大简云工作平台帐户 大简云工作平台有权对该帐户进行注销您将不能再通过该帐号登录名登录本网站或使用相关服务如该帐户有关联的理财产品待处理交易或余额大简云工作平台会在合理范围内协助您处理请您按照大简云工作平台提示的方式进行操作</view>
<view><text class="b-text">27</text>大简云工作平台的隐私权保护声明说明了大简云工作平台如何收集和使用用户信息您保证在您使用大简云工作平台的所有产品和服务前已经充分了解并同意大简云工作平台可以据此处理用户信息</view>
<view><text class="b-text">28</text>当您使用大简云工作平台产品进行支付登录等操作的时候服务器会自动接收验证并记录一些必要的信息如手机号码IP地址服务访问异常信息以及部分设备信息等以保障您在使用大简云工作平台服务时账户登录和支付过程的安全进而保护您的上网安全您使用大简云工作平台的服务即表示您同意大简云工作平台可以按照相关的隐私权政策处理您的个人信息大简云工作平台可能会与合作伙伴共同向您提供您所要求的服务或者共同向您展示您可能感兴趣的内容在信息为该项产品/服务所必须的情况下您同意大简云工作平台可与其分享必要的信息并且大简云工作平台会要求其确保数据安全并且禁止用于任何其他用途除此之外大简云工作平台不会向任何无关第三方提供或分享信息</view>
<view><text class="b-text">29</text>在如下情况下大简云工作平台可能会披露您的信息 :</view>
<view><text class="b-text">291</text>事先获得您的授权</view>
<view><text class="b-text">292</text>您使用共享功能</view>
<view><text class="b-text">293</text>根据法律法规法律程序的要求或政府主管部门的强制性要求</view>
<view><text class="b-text">294</text>以学术研究或公共利益为目的</view>
<view><text class="b-text">295</text>为维护大简云工作平台的合法权益例如查找预防处理欺诈或安全方面的问题</view>
<view><text class="b-text">296</text>符合相关服务条款或使用协议的规定</view>
<view><text class="b-text">210</text>您知悉并授权大简云工作平台仅在必需的情况下使用或与关联公司同步您的信息以为用户提供征信相关服务</view>
<view><text class="b-text">211</text>为更好地向用户提供服务您同意大简云工作平台通过短信等形式向您发送相关商业性服务信息</view>
<view><text class="b-text">212 </text>为了满足相关法律法规的要求和保障您的帐号安全尤其是您在进行帐号解绑注销等敏感操作时我们会将您提交的个人身份信息发送至银行运营商等机构进行验证查询以核实您身份的真实性</view>
<view class='b-text mt-40'>使用规则</view>
<view class="underline"><text class='b-text'>31</text>用户在使用大简云工作平台的服务时必须遵守网络安全法互联网新闻信息服务管理规定等中华人民共和国相关法律法规的规定用户应同意将不会利用本服务进行任何违法或不正当的活动包括但不限于下列行为 :</view>
<view class="underline"><text class="b-text">31</text>用户在使用大简云工作平台的服务时必须遵守网络安全法互联网新闻信息服务管理规定等中华人民共和国相关法律法规的规定用户应同意将不会利用本服务进行任何违法或不正当的活动包括但不限于下列行为 :</view>
<view class="underline">上载展示张贴传播或以其它方式传送含有下列内容之一的信息</view>
<view class="underline"><text class='b-text'>311</text>反对宪法所确定的基本原则的</view>
<view class="underline"><text class='b-text'>312</text>危害国家安全泄露国家秘密颠覆国家政权破坏国家统一的</view>
<view class="underline"><text class='b-text'>313</text>损害国家荣誉和利益的</view>
<view class="underline"><text class='b-text'>314</text>煽动民族仇恨民族歧视破坏民族团结的</view>
<view class="underline"><text class='b-text'>315</text>破坏国家宗教政策宣扬邪教和封建迷信的</view>
<view class="underline"><text class='b-text'>316</text>散布谣言扰乱社会秩序破坏社会稳定的</view>
<view class="underline"><text class='b-text'>317</text>散布淫秽色情赌博暴力凶杀恐怖或者教唆犯罪的</view>
<view class="underline"><text class='b-text'>318</text>侮辱或者诽谤他人侵害他人合法权利的</view>
<view class="underline"><text class='b-text'>319</text>含有虚假有害胁迫侵害他人隐私骚扰侵害中伤粗俗猥亵或其它道德上令人反感的内容</view>
<view class="underline"><text class='b-text'>3110</text>含有中国法律法规规章条例以及任何具有法律效力之规范所限制或禁止的其它内容的</view>
<view class="underline"><text class='b-text'>3111</text>不得为任何非法目的而使用网络服务系统</view>
<view class="underline"><text class='b-text'>3112</text>不利用大简云工作平台的服务从事以下活动</view>
<view class="underline"><text class='b-text'>i</text> 未经允许进入计算机信息网络或者使用计算机信息网络资源的</view>
<view class="underline"><text class='b-text'>ii</text> 未经允许对计算机信息网络功能进行删除修改或者增加的</view>
<view class="underline"><text class='b-text'>iii</text>未经允许对进入计算机信息网络中存储处理或者传输的数据和应用程序进行删除修改或者增加的</view>
<view class="underline"><text class='b-text'>iv</text> 故意制作传播计算机病毒等破坏性程序的</view>
<view class="underline"><text class='b-text'>v</text> 其他危害计算机信息网络安全的行为</view>
<view class="underline"><text class='b-text'>32</text>用户违反本协议或相关的服务条款的规定导致或产生的任何第三方主张的任何索赔要求或损失包括合理的律师费您同意赔偿大简云工作平台与合作公司关联公司并使之免受损害对此大简云工作平台有权视用户的行为性质采取包括但不限于删除用户发布信息内容暂停使用许可终止服务限制使用回收大简云工作平台帐号 追究法律责任等措施对恶意注册大简云工作平台帐号 或利用大简云工作平台帐号 进行违法活动捣乱骚扰欺骗其他用户以及其他违反本协议的行为大简云工作平台有权回收其帐号同时大简云工作平台会视司法部门的要求协助调查</view>
<view class="underline"><text class='b-text'>33</text>用户不得对本服务任何部分或本服务之使用或获得进行复制拷贝出售转售或用于任何其它商业目的</view>
<view class="underline"><text class='b-text'>34</text>用户须对自己在使用大简云工作平台服务过程中的行为承担法律责任用户承担法律责任的形式包括但不限于对受到侵害者进行赔偿以及在大简云工作平台首先承担了因用户行为导致的行政处罚或侵权损害赔偿责任后用户应给予大简云工作平台等额的赔偿</view>
<view class="underline"><text class='b-text'>35</text>用户在使用大简云工作平台服务时遵守以下互联网底线</view>
<view class="underline"><text class='b-text'>351</text>法律法规底线</view>
<view class="underline"><text class='b-text'>352</text>社会主义制度底线</view>
<view class="underline"><text class='b-text'>353</text>国家利益底线</view>
<view class="underline"><text class='b-text'>354</text>公民合法权益底线</view>
<view class="underline"><text class='b-text'>355</text>社会公共秩序底线</view>
<view class="underline"><text class='b-text'>356</text>道德风尚底线</view>
<view class="underline"><text class='b-text'>357</text>信息真实性底线</view>
<view class='b-text mt-40'>服务内容</view>
<view><text class='b-text'>41</text>大简云工作平台网络服务的具体内容由大简云工作平台团队根据实际情况提供</view>
<view><text class='b-text'>42</text>除非本服务协议另有其它明示规定大简云工作平台所推出的新产品新功能新服务均受到本服务协议之规范</view>
<view><text class='b-text'>43</text>为使用本服务您必须能够自行经有法律资格对您提供互联网接入服务的第三方进入国际互联网并应自行支付相关服务费用此外您必须自行配备及负责与国际联网连线所需之一切必要装备包括计算机数据机或其它存取装置</view>
<view><text class='b-text'>44</text>鉴于网络服务的特殊性用户同意大简云工作平台有权不经事先通知随时变更中断或终止部分或全部的网络服务包括收费网络服务大简云工作平台不 担保网络服务不会中断对网络服务的及时性安全性准确性也都不作担保</view>
<view><text class='b-text'>45</text>免责声明因以下情况造成网络服务在合理时间内的中断大简云工作平台无需为此承担任何责任</view>
<view><text class='b-text'>451</text>大简云工作平台需要定期或不定期地对提供网络服务的平台或相关的设备进行检修或者维护大简云工作平台保留不经事先通知为维修保养升级或其它目的暂停本服务任何部分的权利</view>
<view><text class='b-text'>452</text>因台风地震洪水雷电或恐怖袭击等不可抗力原因</view>
<view><text class='b-text'>453</text>用户的电脑软硬件和通信线路供电线路出现故障的</view>
<view><text class='b-text'>454</text>因病毒木马恶意程序攻击网络拥堵系统不稳定系统或设备故障通讯故障电力故障银行原因第三方服务瑕疵或政府行为等原因</view>
<view class="underline"><text class="b-text">311</text>反对宪法所确定的基本原则的</view>
<view class="underline"><text class="b-text">312</text>危害国家安全泄露国家秘密颠覆国家政权破坏国家统一的</view>
<view class="underline"><text class="b-text">313</text>损害国家荣誉和利益的</view>
<view class="underline"><text class="b-text">314</text>煽动民族仇恨民族歧视破坏民族团结的</view>
<view class="underline"><text class="b-text">315</text>破坏国家宗教政策宣扬邪教和封建迷信的</view>
<view class="underline"><text class="b-text">316</text>散布谣言扰乱社会秩序破坏社会稳定的</view>
<view class="underline"><text class="b-text">317</text>散布淫秽色情赌博暴力凶杀恐怖或者教唆犯罪的</view>
<view class="underline"><text class="b-text">318</text>侮辱或者诽谤他人侵害他人合法权利的</view>
<view class="underline"><text class="b-text">319</text>含有虚假有害胁迫侵害他人隐私骚扰侵害中伤粗俗猥亵或其它道德上令人反感的内容</view>
<view class="underline"><text class="b-text">3110</text>含有中国法律法规规章条例以及任何具有法律效力之规范所限制或禁止的其它内容的</view>
<view class="underline"><text class="b-text">3111</text>不得为任何非法目的而使用网络服务系统</view>
<view class="underline"><text class="b-text">3112</text>不利用大简云工作平台的服务从事以下活动</view>
<view class="underline"><text class="b-text">i</text> 未经允许进入计算机信息网络或者使用计算机信息网络资源的</view>
<view class="underline"><text class="b-text">ii</text> 未经允许对计算机信息网络功能进行删除修改或者增加的</view>
<view class="underline"><text class="b-text">iii</text>未经允许对进入计算机信息网络中存储处理或者传输的数据和应用程序进行删除修改或者增加的</view>
<view class="underline"><text class="b-text">iv</text> 故意制作传播计算机病毒等破坏性程序的</view>
<view class="underline"><text class="b-text">v</text> 其他危害计算机信息网络安全的行为</view>
<view class="underline"><text class="b-text">32</text>用户违反本协议或相关的服务条款的规定导致或产生的任何第三方主张的任何索赔要求或损失包括合理的律师费您同意赔偿大简云工作平台与合作公司关联公司并使之免受损害对此大简云工作平台有权视用户的行为性质采取包括但不限于删除用户发布信息内容暂停使用许可终止服务限制使用回收大简云工作平台帐号 追究法律责任等措施对恶意注册大简云工作平台帐号 或利用大简云工作平台帐号 进行违法活动捣乱骚扰欺骗其他用户以及其他违反本协议的行为大简云工作平台有权回收其帐号同时大简云工作平台会视司法部门的要求协助调查</view>
<view class="underline"><text class="b-text">33</text>用户不得对本服务任何部分或本服务之使用或获得进行复制拷贝出售转售或用于任何其它商业目的</view>
<view class="underline"><text class="b-text">34</text>用户须对自己在使用大简云工作平台服务过程中的行为承担法律责任用户承担法律责任的形式包括但不限于对受到侵害者进行赔偿以及在大简云工作平台首先承担了因用户行为导致的行政处罚或侵权损害赔偿责任后用户应给予大简云工作平台等额的赔偿</view>
<view class="underline"><text class="b-text">35</text>用户在使用大简云工作平台服务时遵守以下互联网底线</view>
<view class="underline"><text class="b-text">351</text>法律法规底线</view>
<view class="underline"><text class="b-text">352</text>社会主义制度底线</view>
<view class="underline"><text class="b-text">353</text>国家利益底线</view>
<view class="underline"><text class="b-text">354</text>公民合法权益底线</view>
<view class="underline"><text class="b-text">355</text>社会公共秩序底线</view>
<view class="underline"><text class="b-text">356</text>道德风尚底线</view>
<view class="underline"><text class="b-text">357</text>信息真实性底线</view>
<view class='b-text mt-40'>服务内容</view>
<view><text class="b-text">41</text>大简云工作平台网络服务的具体内容由大简云工作平台团队根据实际情况提供</view>
<view><text class="b-text">42</text>除非本服务协议另有其它明示规定大简云工作平台所推出的新产品新功能新服务均受到本服务协议之规范</view>
<view><text class="b-text">43</text>为使用本服务您必须能够自行经有法律资格对您提供互联网接入服务的第三方进入国际互联网并应自行支付相关服务费用此外您必须自行配备及负责与国际联网连线所需之一切必要装备包括计算机数据机或其它存取装置</view>
<view><text class="b-text">44</text>鉴于网络服务的特殊性用户同意大简云工作平台有权不经事先通知随时变更中断或终止部分或全部的网络服务包括收费网络服务大简云工作平台不 担保网络服务不会中断对网络服务的及时性安全性准确性也都不作担保</view>
<view><text class="b-text">45</text>免责声明因以下情况造成网络服务在合理时间内的中断大简云工作平台无需为此承担任何责任</view>
<view><text class="b-text">451</text>大简云工作平台需要定期或不定期地对提供网络服务的平台或相关的设备进行检修或者维护大简云工作平台保留不经事先通知为维修保养升级或其它目的暂停本服务任何部分的权利</view>
<view><text class="b-text">452</text>因台风地震洪水雷电或恐怖袭击等不可抗力原因</view>
<view><text class="b-text">453</text>用户的电脑软硬件和通信线路供电线路出现故障的</view>
<view><text class="b-text">454</text>因病毒木马恶意程序攻击网络拥堵系统不稳定系统或设备故障通讯故障电力故障银行原因第三方服务瑕疵或政府行为等原因</view>
<view>尽管有前款约定大简云工作平台将采取合理行动积极促使服务恢复正常</view>
<view><text class='b-text'>46</text>本服务或第三人可提供与其它国际互联网上之网站或资源之链接由于大简云工作平台无法控制这些网站及资源您了解并同意此类网站或资源是否可供利用大简云工作平台不予负责存在或源于此类网站或资源之任何内容广告产品或其它资料大简云工作平台亦不予保证或负责因使用或依赖任何此类网站或资源发布的或经由此类网站或资源获得的任何内容商品或服务所产生的任何损害或损失大简云工作平台不承担任何责任</view>
<view><text class='b-text'>47</text>用户明确同意其使用大简云工作平台网络服务所存在的风险将完全由其自己承担用户理解并接受下载或通过大简云工作平台服务取得的任何信息资料取决于用户自己并由其承担系统受损资料丢失以及其它任何风险大简云工作平台对在服务网上得到的任何商品购物服务交易进程招聘信息都不作担保</view>
<view><text class='b-text'>48</text>用户须知大简云工作平台提供的各种挖掘推送服务中推送给用户曾经访问过的网站或资源之链接是基于机器算法自动推出大简云工作平台不对其内容的有效性安全性合法性等做任何担保</view>
<view><text class='b-text'>49</text>大简云工作平台有权于任何时间暂时或永久修改或终止本服务或其任何部分而无论其通知与否大简云工作平台对用户和任何第三人均无需承担任何责任</view>
<view><text class='b-text'>410</text>终止服务</view>
<view><text class="b-text">46</text>本服务或第三人可提供与其它国际互联网上之网站或资源之链接由于大简云工作平台无法控制这些网站及资源您了解并同意此类网站或资源是否可供利用大简云工作平台不予负责存在或源于此类网站或资源之任何内容广告产品或其它资料大简云工作平台亦不予保证或负责因使用或依赖任何此类网站或资源发布的或经由此类网站或资源获得的任何内容商品或服务所产生的任何损害或损失大简云工作平台不承担任何责任</view>
<view><text class="b-text">47</text>用户明确同意其使用大简云工作平台网络服务所存在的风险将完全由其自己承担用户理解并接受下载或通过大简云工作平台服务取得的任何信息资料取决于用户自己并由其承担系统受损资料丢失以及其它任何风险大简云工作平台对在服务网上得到的任何商品购物服务交易进程招聘信息都不作担保</view>
<view><text class="b-text">48</text>用户须知大简云工作平台提供的各种挖掘推送服务中推送给用户曾经访问过的网站或资源之链接是基于机器算法自动推出大简云工作平台不对其内容的有效性安全性合法性等做任何担保</view>
<view><text class="b-text">49</text>大简云工作平台有权于任何时间暂时或永久修改或终止本服务或其任何部分而无论其通知与否大简云工作平台对用户和任何第三人均无需承担任何责任</view>
<view><text class="b-text">410</text>终止服务</view>
<view class="underline">您同意大简云工作平台得基于其自行之考虑因任何理由包含但不限于长时间超过一年未使用或大简云工作平台认为您已经违反本服务协议的文字及精神终止您的密码帐号或本服务之使用或服务之任何部分并将您在本服务内任何内容加以移除并删除您同意依本服务协议任何规定提供之本服务无需进行事先通知即可中断或终止您承认并同意大简云工作平台可立即关闭或删除您的帐号及您帐号中所有相关信息及文件 / 或禁止继续使用前述文件或本服务此外您同意若本服务之使用被中断或终止或您的帐号及相关信息和文件被关闭或删除大简云工作平台对您或任何第三人均不承担任何责任</view>
<view class='b-text mt-40'>知识产权和其他合法权益包括但不限于名誉权商誉权</view>
<view><text class='b-text'>51用户专属权利</text></view>
<view><text class="b-text">51用户专属权利</text></view>
<view>大简云工作平台尊重他人知识产权和合法权益呼吁用户也要同样尊重知识产权和他人合法权益若您认为您的知识产权或其他合法权益被侵犯请按照以下说明向大简云工作平台提供资料</view>
<view>请注意如果权利通知的陈述失实权利通知提交者将承担对由此造成的全部法律责任包括但不限于赔偿各种费用及律师费如果上述个人或单位不确定网络上可获取的资料是否侵犯了其知识产权和其他合法权益大简云工作平台建议该个人或单位首先咨询专业人士</view>
<view>为了大简云工作平台有效处理上述个人或单位的权利通知请使用以下格式包括各条款的序号</view>
<view><text class='b-text'>511</text>权利人对涉嫌侵权内容拥有知识产权或其他合法权益和/或依法可以行使知识产权或其他合法权益的权属证明</view>
<view class="underline"><text class='b-text'>51 .2</text>请充分明确地描述被侵犯了知识产权或其他合法权益的情况并请提供涉嫌侵权的第三方网址如果有</view>
<view><text class='b-text'>513</text>请指明涉嫌侵权网页的哪些内容侵犯了第2项中列明的权利</view>
<view><text class='b-text'>514</text>请提供权利人具体的联络信息包括姓名身份证或护照复印件对自然人单位登记证明复印件对单位通信地址电话号码传真和电子邮件</view>
<view><text class='b-text'>515</text>请提供涉嫌侵权内容在信息网络上的位置如指明您举报的含有侵权内容的出处指网页地址或网页内的位置以便我们与您举报的含有侵权内容的网页的所有权人/管理人联系</view>
<view class="underline"><text class='b-text'>516</text>请在权利通知中加入如下关于通知内容真实性的声明我保证本通知中所述信息是充分真实准确的如果本权利通知内容不完全属实本人将承担由此产生的一切法律责任 </view>
<view class="underline"><text class='b-text'>517</text>请您签署该文件如果您是依法成立的机构或组织请您加盖公章</view>
<view><text class="b-text">511</text>权利人对涉嫌侵权内容拥有知识产权或其他合法权益和/或依法可以行使知识产权或其他合法权益的权属证明</view>
<view class="underline"><text class="b-text">51 .2</text>请充分明确地描述被侵犯了知识产权或其他合法权益的情况并请提供涉嫌侵权的第三方网址如果有</view>
<view><text class="b-text">513</text>请指明涉嫌侵权网页的哪些内容侵犯了第2项中列明的权利</view>
<view><text class="b-text">514</text>请提供权利人具体的联络信息包括姓名身份证或护照复印件对自然人单位登记证明复印件对单位通信地址电话号码传真和电子邮件</view>
<view><text class="b-text">515</text>请提供涉嫌侵权内容在信息网络上的位置如指明您举报的含有侵权内容的出处指网页地址或网页内的位置以便我们与您举报的含有侵权内容的网页的所有权人/管理人联系</view>
<view class="underline"><text class="b-text">516</text>请在权利通知中加入如下关于通知内容真实性的声明我保证本通知中所述信息是充分真实准确的如果本权利通知内容不完全属实本人将承担由此产生的一切法律责任 </view>
<view class="underline"><text class="b-text">517</text>请您签署该文件如果您是依法成立的机构或组织请您加盖公章</view>
<view class="underline">请您把以上资料和联络方式发往以下邮箱地址<a href="mailto:yiguohao@dongshengsoft.com,86-15653213875">service@myshipping.net</a></view>
<view><text class='b-text'>52</text>大简云工作平台拥有本网站内所有资料的版权任何被授权的浏览复制打印和传播属于本网站内的资料必须符合以下条件</view>
<view><text class="b-text">52</text>大简云工作平台拥有本网站内所有资料的版权任何被授权的浏览复制打印和传播属于本网站内的资料必须符合以下条件</view>
<view>所有的资料和图象均以获得信息为目的</view>
<view>所有的资料和图象均不得用于商业目的</view>
<view>所有的资料图象及其任何部分都必须包括此版权声明</view>
@ -124,14 +124,14 @@
<view class="underline">未经大简云工作平台许可任何人不得擅自包括但不限于以非法的方式复制传播展示镜像上载下载使用否则大简云工作平台将依法追究法律责任</view>
<view class='b-text mt-40'>其他</view>
<view class='b-text mt-40'>其他</view>
<view><text class='b-text'>71</text>本协议的订立执行和解释及争议的解决均应适用中华人民共和国法律</view>
<view><text class='b-text'>72</text>如双方就本协议内容或其执行发生任何争议双方应尽量友好协商解决协商不成时任何一方均可向大简云工作平台所在地青岛市市南区人民法院提起诉讼</view>
<view class="underline"><text class='b-text'>73</text>大简云工作平台未行使或执行本服务协议任何权利或规定不构成对前述权利或权利之放弃</view>
<view class="underline"><text class='b-text'>74</text>如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力本协议的其余条款仍应有效并且有约束力</view>
<view class="underline"><text class='b-text'>75</text>欢迎您使用大简云工作平台的平台服务并在本协议基础上同时遵守单项服务协议的具体约定</view>
<view><text class='b-text'>76</text>若您对大简云工作平台协议条款或是平台服务有任何异议或建议请通过以下方式反馈 <a href="mailto:yiguohao@dongshengsoft.com,86-15653213875">service@myshipping.net</a> </view>
<view><text class="b-text">71</text>本协议的订立执行和解释及争议的解决均应适用中华人民共和国法律</view>
<view><text class="b-text">72</text>如双方就本协议内容或其执行发生任何争议双方应尽量友好协商解决协商不成时任何一方均可向大简云工作平台所在地青岛市市南区人民法院提起诉讼</view>
<view class="underline"><text class="b-text">73</text>大简云工作平台未行使或执行本服务协议任何权利或规定不构成对前述权利或权利之放弃</view>
<view class="underline"><text class="b-text">74</text>如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力本协议的其余条款仍应有效并且有约束力</view>
<view class="underline"><text class="b-text">75</text>欢迎您使用大简云工作平台的平台服务并在本协议基础上同时遵守单项服务协议的具体约定</view>
<view><text class="b-text">76</text>若您对大简云工作平台协议条款或是平台服务有任何异议或建议请通过以下方式反馈 <a href="mailto:yiguohao@dongshengsoft.com,86-15653213875">service@myshipping.net</a> </view>
</view>
</view>
</template>

@ -3,6 +3,7 @@
flex-direction: column;
background: #f6f6f6;
height: 100vh;
overflow: hidden;
.nav-tab-box{
display: flex;
position: relative;
@ -57,6 +58,6 @@
.ams-list{
flex: 1;
overflow-y: auto;
// overflow-y: auto;
}
}

@ -36,8 +36,9 @@
</uni-drawer>
<view class="send-list" :style="'padding-bottom:'+ (10 + safeAreaBottom) +'px'">
<mescroll-uni @topclick="topClick" ref="mescrollRef" class="mescroll-uni" @init="mescrollInit" @down="downCallback" :up="upOption" :down="downOption" height="100vh" @up="upCallback">
<view class="send" v-for="item in amsHasBeenSent" :class="{'edit-box': inEdit}">
<!-- height="100vh" -->
<mescroll-uni @topclick="topClick" ref="mescrollRef" class="mescroll-uni" height="100%" @init="mescrollInit" @down="downCallback" :up="upOption" :down="downOption" @up="upCallback">
<view class="send" v-for="(item,aindex) in amsHasBeenSent" :key="aindex" :class="{'edit-box': inEdit}">
<view class="edit-icon" v-if="inEdit" @click="checkedNo(item,index)">
<text class="iconfont icon-checkbox" v-if="!item.ischecked"></text>
<text class="iconfont icon-fuxuankuangxuanzhong active" v-else></text>
@ -112,7 +113,7 @@
</view>
</view>
<view class="more-content show" v-if="item.showMore">
<view class="cost line" v-if="item.historyDto"><text class="left">最新操作人{{ item.historyDto[0].operator }}</text><text class="right">{{ item.historyDto[0].sendTime.substring(0,10) }} {{ item.historyDto[0].sendTime.substring(11,19) }}</text></view>
<view class="cost line" v-if="item.historyDto"><text class="left">最新操作人{{ item.historyDto[0].operator }}</text><text class="right">{{ item.lastUpdate.substring(0,10) }} {{ item.lastUpdate.substring(11,19) }}</text></view>
<view class="more-send line" v-if="item.historyDto">
<view class="left"><text class="tip">最新操作</text>{{ item.historyDto[0].state }}</view>
</view>
@ -122,8 +123,8 @@
<view class="mate-type">
<view class="left">匹配状态</view>
<view class="right">
<template v-for="tab in item.matchStateArr">
<text class="mate-btn" :class="{'active': tab.ischecked}">{{ tab.val }}</text>
<template v-for="(tab,tindex) in item.matchStateArr">
<text class="mate-btn" :class="{'active': tab.ischecked}" :key="tindex">{{ tab.val }}</text>
</template>
</view>
<view class="hide-btn" @click="changeMore(item,index)"><text class="iconfont icon-shang"></text><text>收起</text></view>
@ -138,19 +139,21 @@
</mescroll-uni>
</view>
<uni-fab :pattern="pattern" :content="content" horizontal="right" vertical="bottom"
<uni-fab ref="navFab" :pattern="pattern" :content="content" horizontal="right" vertical="bottom"
direction="horizontal" :popMenu="true" @trigger="trigger" @fabClick="fabClick" />
</view>
</template>
<script>
import uniTab from '@/pages/vas/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
// import uniTab from '@/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
import uniFab from '@/pages/vas/uni_modules/uni-fab-nav/uni-fab-nav.vue'
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
import config from "@/common/js/request/config.js"
import {
amsLoad,
amsDel,
getCarrier,
sendAms,
exportPDF,
} from '@/common/js/api/vas/ams.js'
import {
mapState,
@ -158,7 +161,7 @@
} from 'vuex';
export default {
components: {
uniTab,
uniFab,
},
props:{
showFilter:{
@ -197,10 +200,9 @@
text: '原始重发',
active: false
},
{
iconPath: 'icon-shanchu',
text: '删除',
text: '删除发送',
active: false
},
{
@ -208,14 +210,10 @@
text: '修改发送',
active: false
},
{
iconPath: 'icon-xiazai',
text: '导出ISF',
active: false
},
],
inEdit: false,
checkedIds: [],
checkedData: [],
//
noData: false,
@ -286,6 +284,7 @@
this.mescroll.triggerDownScroll()
},
getAmsList(page){
this.noData = false;
amsLoad({
ReportState: 1,
Page: page.num,
@ -364,53 +363,53 @@
},
trigger(e) {
let _this = this
if(this.checkedIds.length == 0){
uni.showToast({
title: '请至少选取一条数据',
icon: 'none',
})
return false
}
if (e.index == 0) {
//
uni.showModal({
title: '提示',
content: `激活状态:${e.item.active};选中项:${e.item.text}`,
title: '温馨提示',
content: `确定原始重发当前${this.checkedIds.length}条数据?`,
success(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
_this.repeatSendAms();
}
}
});
} else if (e.index == 1) {
//
uni.showModal({
title: '提示',
content: `激活状态:${e.item.active};选中项:${e.item.text}`,
content: `确认删除发送当前${this.checkedIds.length}条数据?`,
success(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
_this.removeSendAms();
}
}
});
} else if(e.index == 2){
if(this.checkedIds.length == 0){
uni.showToast({
title: '请至少选取一条数据',
icon: 'none',
})
return false
}
//
uni.showModal({
title: '温馨提示',
content: `确认删除当前${this.checkedIds.length}条数据?`,
content: `确认修改发送当前${this.checkedIds.length}条数据?`,
success: (res) => {
if (res.confirm) {
this.removeAms();
_this.editSendAms();
}
}
});
} else {
this.openAlert();
}
},
viewAms(data,index){
this.inEdit = false;
this.$refs.navFab.$data.isShow = false;
// this.setAmsCurrentDetail(data);
uni.navigateTo({
url: `/pages/vas/amsDetailHistory/amsDetailHistory?mid=${data.parentGid}&hid=${data.gid}`,
@ -418,12 +417,16 @@
},
operationHist(data,index){
this.inEdit = false;
this.$refs.navFab.$data.isShow = false;
this.setAmsCurrentDetail(data);
uni.navigateTo({
url: '/pages/vas/amsOperation/amsOperation',
})
},
copyAms(data,index){
this.inEdit = false;
this.$refs.navFab.$data.isShow = false;
// this.setAmsCurrentDetail(data);
uni.navigateTo({
url: `/pages/vas/amsDetail/amsDetail?from=copy&mid=${data.parentGid}&hid=${data.gid}`,
@ -439,30 +442,14 @@
item.ischecked = item.ischecked ? false : true;
if(item.ischecked && !this.checkedIds.includes(item.gid)){
this.checkedIds.push(item.gid)
this.checkedData.push(item);
}else if(!item.ischecked && this.checkedIds.includes(item.gid)){
this.checkedIds.splice(this.checkedIds.indexOf(item.gid), 1)
this.checkedData.splice(this.checkedIds.indexOf(item.gid),1)
}
this.$forceUpdate();
},
removeAms(){
uni.showLoading()
amsDel({
ids: this.checkedIds,
}).then(res =>{
if(res.code == 200){
this.checkedIds = [];
uni.hideLoading()
uni.showToast({
title: '删除成功',
icon: 'none'
})
this.init();
}
})
},
// ========== ==========
showDrawer() {
this.$refs.showRight.open();
@ -491,6 +478,60 @@
this.init();
},
// ========== ==========
/**
* 原始重发
**/
repeatSendAms(){
this.checkedData.map((item,index)=>{
console.log(item.parentGid, item.gid)
this.sendAms(item.parentGid, item.gid, 'AMSAR')
})
},
/**
* 删除重发
**/
removeSendAms(){
this.checkedData.map((item,index)=>{
console.log(item.parentGid, item.gid)
this.sendAms(item.parentGid, item.gid, 'AMSD')
})
},
/**
* 修改发送
**/
editSendAms(){
this.checkedData.map((item,index)=>{
console.log(item.parentGid, item.gid)
this.sendAms(item.parentGid, item.gid, 'AMSM')
})
},
sendAms(gid, hid, type){
sendAms({
ids: gid,
hid: hid,
docType: type,
}).then(res =>{
if(res.code == 200){
this.checkedIds = [];
this.checkedData = [];
uni.showToast({
title: '发送成功'
});
this.init();
}else{
uni.showToast({
title: res.message,
icon: 'none',
})
}
})
},
}
}
</script>

@ -31,7 +31,7 @@
<view class="single-filter">
<view class="tip">创建日期</view>
<view class="select-box">
<view class="select-box select-time">
<uni-datetime-picker class="deduction-date" type="daterange" :clear-icon="false" v-model="fromData.createTime" />
<text class="iconfont icon-xinzeng icon" v-if="fromData.createTime" @click.stop="clearValue('createTime')"></text>
</view>
@ -46,15 +46,14 @@
<view class="select-input">
<input type="text" v-model="fromData.portInput" placeholder="请输入港口名称" @input="onPortInput" @focus="onPortFocus" >
<text class="iconfont icon-cuowu" v-if="fromData.portInput" @click="removePortInput"></text>
<view class="select-list" v-if="showPortList">
<scroll-view class="select-list" v-if="showPortList" scroll-y="true" @scrolltolower="portLower">
<uni-load-more class="load-more" status="loading" v-if="inPortLoading"></uni-load-more>
<view class="list" :class="{'active': label.value == fromData.portRes}" v-for="label in portList" @click.stop="selcetRes(label)">{{label.value}}</view>
</view>
<view class="list" :class="{'active': label.value == fromData.portRes}" v-for="(label,lindex) in portList" :key="lindex" @click.stop="selcetRes(label)">{{label.value}}</view>
<view class="all-load" v-if="amsPortLoad && portList.length > 0"></view>
</scroll-view>
</view>
</view>
</view>
</view>
<view class="filter-btn" :style="'bottom:'+safeAreaBottom+'px'">
<view class="btn" @click="closeDrawer" >取消</view>
@ -64,8 +63,9 @@
</uni-drawer>
<view class="send-list" :style="'padding-bottom:'+ (10 + safeAreaBottom) +'px'">
<mescroll-uni @topclick="topClick" ref="mescrollRef" class="mescroll-uni" @init="mescrollInit" @down="downCallback" :up="upOption" :down="downOption" height="100vh" @up="upCallback">
<view class="send" v-for="(item, index) in amsNotSent" :class="{'edit-box': inEdit}">
<!-- height="100vh" -->
<mescroll-uni @topclick="topClick" ref="mescrollRef" class="mescroll-uni" height="100%" @init="mescrollInit" @down="downCallback" :up="upOption" :down="downOption" @up="upCallback">
<view class="send" v-for="(item, index) in amsNotSent" :key="index" :class="{'edit-box': inEdit}">
<view class="edit-icon" v-if="inEdit" @click="checkedNo(item,index)">
<text class="iconfont icon-checkbox" v-if="!item.ischecked"></text>
<text class="iconfont icon-fuxuankuangxuanzhong active" v-else></text>
@ -129,7 +129,7 @@
</view>
<view class="bottom">
<view class="left">
{{ item.createTime.substring(0,10) }} {{ item.createTime.substring(11,19) }}
{{ item.lastUpdate.substring(0,10) }} {{ item.lastUpdate.substring(11,19) }}
</view>
<view class="right">
<view class="btn remove" @click.stop="removeAms('single',item)">删除</view>
@ -144,15 +144,15 @@
</view>
</mescroll-uni>
</view>
<uni-fab :pattern="pattern" :content="content" horizontal="right" vertical="bottom"
<uni-fab ref="navFab" :pattern="pattern" :content="content" horizontal="right" vertical="bottom"
direction="horizontal" :popMenu="true" @trigger="trigger" @fabClick="fabClick" />
</view>
</template>
<script>
import uniTab from '@/pages/vas/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
// import uniTab from '@/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
import uniFab from '@/pages/vas/uni_modules/uni-fab-nav/uni-fab-nav.vue'
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
import uniLoadMore from '@/pages/vas/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue'
import {
@ -163,10 +163,11 @@
amsLoad,
amsDel,
amsSend,
amsGetPort
} from '@/common/js/api/vas/ams.js'
export default {
components: {
uniTab,
uniFab,
uniLoadMore
},
props:{
@ -253,6 +254,9 @@
zIndex: 99
},
},
amsPortpage: 1,
amsPortLoad: false,
}
},
watch:{
@ -293,6 +297,7 @@
this.mescroll.triggerDownScroll()
},
getAmsList(page){
this.noData = false;
amsLoad({
ReportState: 0,
Page: page.num,
@ -376,7 +381,8 @@
editFun(data){
this.inEdit = false;
// this.setAmsCurrentDetail();
this.$refs.navFab.$data.isShow = false;
this.setAmsCurrentDetail();
if(!data){
uni.navigateTo({
url: '/pages/vas/amsDetail/amsDetail?from=normal',
@ -404,7 +410,7 @@
this.checkedIds.push(data.gid)
}
amsDel({
ids: this.checkedIds,
ids: this.checkedIds.toString(),
}).then(res =>{
if(res.code == 200){
this.checkedIds = [];
@ -479,15 +485,30 @@
},
//
portLower(){
if(this.amsPortLoad){
return false;
}
this.amsGetPort();
},
amsGetPort(){
this.inPortLoading = true;
this.showPortList = true;
amsGetPort({
strlink: this.fromData.portInput
strlink: this.fromData.portInput,
page: this.amsPortpage,
limit: 20,
}).then(res =>{
if(res.code == 200){
this.portList = res.result;
this.portList = [...this.portList, ...res.result];
this.inPortLoading = false;
if(res.result.length == 20){
this.amsPortpage++;
}else{
this.amsPortLoad = true;
}
}
})
},
@ -496,6 +517,7 @@
this.fromData.portInput = label.value;
this.fromData.portRes = label.value;
this.portList = [];
this.showPortList = false;
},
removePortInput(){

@ -1,4 +1,6 @@
.no-send{
height: 100%;
background: #f6f6f6;
.filter-content{
box-sizing: border-box;
height: 100vh;
@ -37,6 +39,9 @@
display: flex;
height: 70rpx;
line-height:70rpx;
/deep/ .uni-date-editor{
transform: scale(0.9);
}
// overflow: hidden;
input{
flex: 1;
@ -86,6 +91,9 @@
// height: 400rpx;
max-height: 400rpx;
overflow-y: auto;
.all-load{
text-align: center;
}
.list{
height:72rpx;
padding: 0 20rpx;
@ -99,9 +107,9 @@
}
}
.load-more{
margin-top: 150rpx;
margin-top: 20rpx;
display: block;
margin-bottom: 150rpx;
margin-bottom: 20rpx;
}
}
}
@ -118,6 +126,9 @@
}
.select-box{
padding: 0 20rpx 0 30rpx;
/deep/ .uni-date-editor{
transform: scale(0.9);
}
.type-btn{
display: inline-block;
padding: 0 20rpx;
@ -138,6 +149,9 @@
}
}
}
.select-time{
height: 80rpx;
}
.filter-btn{
width: 100%;
display: flex;
@ -176,7 +190,11 @@
.send-list{
flex: 1;
overflow: auto;
height: 100%;
overflow: hidden;
.mescroll-uni{
}
.send{
margin: 30rpx 28rpx;
padding: 0 20rpx;
@ -513,4 +531,4 @@
}
/deep/ uni-icons{
margin-top: -4rpx;
}
}

@ -59,7 +59,7 @@
>
<view class="detail-bottom">
<view class="bottom-btn">
<template v-if="pageType == 'normal' || pageType == 'normalEdit'">
<template v-if="pageType == 'normal' || pageType == 'normalEdit' || pageType == 'normalCopy'">
<view class="btn send" @click="sendFromFun"></view>
<view class="btn save" @click="saveFromData">稿</view>
<view class="btn copy" @click="copyFromFun"></view>
@ -179,7 +179,7 @@
<text class="name">箱型</text>
</view>
<view class="right" :class="{'empty': !boxAlertDetail.ctnall}" @click="showSelectBoxAlert('ctnall')">
{{boxAlertDetail.ctnall || '箱型'}}
{{ filterCtnall(boxAlertDetail.ctnall) || '箱型'}}
</view>
</view>
<view class="line min-line">
@ -188,7 +188,7 @@
<text class="name">HS code</text>
</view>
<view class="right">
<input type="text" placeholder="HS code" v-model="boxAlertDetail.hsCode">
<input type="number" maxlength="6" placeholder="HS code" v-model="boxAlertDetail.hsCode">
</view>
</view>
<view class="line">
@ -433,9 +433,9 @@
marks: "", ///
kindpkgs: "",
kindpkgsCode: "", /// code
pkgs: '', ///
kgs: '', ///
cbm: '', ///
pkgs: 0, ///
kgs: 0, ///
cbm: 0, ///
dunno: "", ///
linkman: "", ///
isDel: false,
@ -581,7 +581,7 @@
}
this.amsDetail = res.data[0];
this.fromData = JSON.parse(JSON.stringify(res.data[0]));
if(this.pageType == 'copy'){
if(this.pageType == 'copy' || this.pageType == 'normalCopy'){
this.fromData.gid = '';
this.fromData.mblno = '';
this.fromData.houseDto.map((item, index)=>{
@ -716,6 +716,13 @@
})
return false;
}
if(!/^\d{6}$/.test(this.boxAlertDetail.hsCode)){
uni.showToast({
title: 'HS Code位6位数字',
icon:'none',
})
return false;
}
if(this.boxAlertIndex == this.fromData.houseDto[this.boxAlertHouseIndex].cntrnoDto.length){
this.fromData.houseDto[this.boxAlertHouseIndex].cntrnoDto.push(this.boxAlertDetail);
}else{
@ -948,6 +955,7 @@
placeholder: '请输入联合国危险品编号',
dataList: [],
showName: 'code',
showCode: 'grade',
type: 'dunno',
page: 1,
history: this.boxAlertDetail.dunno ? {
@ -956,7 +964,6 @@
} : null,
}
this.$set(this, 'inputSearchData' , modelData);
},
//
@ -1066,6 +1073,7 @@
this.fromData[`${modelData.type}Code`] = res[modelData.codeName];
}else if(modelData.type == 'dunno'){
this.boxAlertDetail[modelData.type] = res[modelData.showName];
this.boxAlertDetail.dangerGrade = res[modelData.showCode];
}else if(['shipper','consignee','notifyparty'].includes(modelData.type)){
this.fromData[`${modelData.type}CountryCode`] = res.code;
this.fromData[`${modelData.type}Country`] = res.cnName;
@ -1135,6 +1143,17 @@
}
},
filterCtnall(code){
console.log(this.ctnallList);
let text = '';
this.ctnallList.map((item,index)=>{
if(item.code == code){
text = item.value
}
})
return text;
},
selectConfirm(data){
this.selectResult = data;
@ -1153,7 +1172,7 @@
this.boxAlertDetail.kindpkgs = name.join(',');
this.boxAlertDetail.kindpkgsCode = arr.join(',');
}else if(this.selectResult.select.type == 'ctnall'){
this.boxAlertDetail[this.selectResult.select.type] = name.join(',');
this.boxAlertDetail[this.selectResult.select.type] = arr.join(',');
}
this.isSelectShow = false;
this.$forceUpdate()
@ -1299,18 +1318,27 @@
if(etd){
data.etd = `${etd.substring(0,10)}T${etd.length > 11 ? etd.substring(11,19) : '00:00:00'}`
}
console.log(JSON.stringify(data))
addOrUpdate(data).then(res =>{
if(res.code == 200){
if(this.pageType =='edit'){
console.log(this.pageType, type)
if(this.pageType =='edit' || this.pageType == 'normalEdit'){
this.init();
}else if(this.pageType == 'normal' || this.pageType == 'normalCopy'){
this.pageType = 'normalEdit'
this.init();
}else if(this.pageType == 'copy'){
this.pageType = 'edit'
this.init();
}else{
}
if(type == 'send'){
//
this.sendAms(res.data);
}else if(type == 'copy'){
//
uni.navigateTo({
url: `/pages/vas/amsDetail/amsDetail?from=copy&mid=${res.data}`,
url: `/pages/vas/amsDetail/amsDetail?from=normalCopy&mid=${res.data}`,
})
}else{
uni.showToast({
@ -1405,7 +1433,8 @@
})
}
})
})
});
this.baseErrorRes = baseErrorRes;
this.houseErrorRes = houseErrorRes;
this.$forceUpdate();
@ -1432,6 +1461,25 @@
this.swiperIndex = houseErrindex + 1;
return false;
}
let nowTimes = new Date().getTime();
let eta = new Date(this.fromData.eta).getTime();
let etd = new Date(this.fromData.etd).getTime();
if(etd < eta){
uni.showToast({
title: '预计到达时间必须大于预计出发时间',
icon: 'none',
})
this.swiperIndex = 0;
return false;
}else if(eta < nowTimes){
uni.showToast({
title: '预计出发时间必须大于当前时间',
icon: 'none',
})
this.swiperIndex = 0;
return false;
}
this.saveFromData('send')
},
@ -1455,12 +1503,13 @@
//
copyFromFun(){
let type = this.pageType == 'normalEdit' || this.pageType == 'normalCopy' ? 'normalCopy' : 'copy';
if(this.fromData.gid){
uni.navigateTo({
url: `/pages/vas/amsDetail/amsDetail?from=copy&mid=${this.fromData.gid}`,
url: `/pages/vas/amsDetail/amsDetail?from=${type}&mid=${this.fromData.gid}`,
})
} else {
this.saveFromData('copy')
this.saveFromData(type)
}
},

@ -45,7 +45,7 @@
<view class="send-receive">
<view class="send-info">
<view class="send-tit">
<text class="left"><text class="iconfont icon-mingpianjia"></text>真实发货人</text>
<text class="left"><text class="iconfont icon-fahuoren"></text>真实发货人</text>
<text class="model" @click="selectTemplate('send')"></text>
<text class="right iconfont icon-xia" @click="changeMailshow('send', index)"></text>
</view>
@ -86,7 +86,7 @@
</view>
<view class="send-info">
<view class="send-tit">
<text class="left"><text class="iconfont icon-mingpianjia"></text>真实收货人</text>
<text class="left"><text class="iconfont icon-shouhuoren"></text>真实收货人</text>
<text class="model" @click="selectTemplate('receive')"></text>
<text class="right iconfont icon-xia" @click="changeMailshow('receive', index)"></text>
</view>
@ -127,7 +127,7 @@
</view>
<view class="send-info">
<view class="send-tit">
<text class="left"><text class="iconfont icon-mingpianjia"></text>真实通知人</text>
<text class="left"><text class="iconfont icon-a-chaosongrenchaosongyonghu-01"></text>真实通知人</text>
<text class="model" @click="selectTemplate('notifier')"></text>
<text class="right iconfont icon-xia" @click="changeMailshow('notifier', index)"></text>
</view>
@ -167,10 +167,10 @@
</view>
</view>
<view class="tip">
提示请务必填写真实发货人信息否则被目的港退回产生罚款等后果由用户自行承担
提示请务必填写真实收发通人信息否则被目的港退回产生罚款等后果由用户自行承担
</view>
</view>
<view class="house-btn" v-if="pageType=='normal'">
<view class="house-btn" v-if="pageType=='normal' || pageType == 'normalEdit'">
<view class="btn remove-btn" @click="removeHouse"></view>
<view class="btn copy-btn" @click="copyHouse">House</view>
</view>
@ -562,6 +562,7 @@
padding: 18rpx;
font-size: 22rpx;
border-radius: 8rpx;
margin-bottom: 40rpx;
}
.send-info{
border-bottom: 1rpx dashed #ccc;
@ -671,9 +672,9 @@
}
.house-btn{
height: 100rpx;
padding: 24rpx 0;
padding-bottom: 24rpx;
text-align: right;
margin-top: 30rpx;
// margin-top: 30rpx;
.btn{
display: inline-block;
min-width: 120rpx;

@ -14,7 +14,7 @@
<!-- == 基本信息历史记录 == -->
<swiper-item ref="swiperItem">
<view class="swiper-item">
<base-info-hist :detail="amsCurrentDetail" :amsCodePort="amsCodePort"></base-info-hist>
<base-info-hist :detail="amsCurrentDetail"></base-info-hist>
</view>
</swiper-item>
@ -25,7 +25,6 @@
<view class="swiper-item" v-for="(order,index) in amsCurrentDetail.houseDto" :key="order.gid">
<houseOrderHist
:order="order"
:countryList="countryList"
index="0"
@selectTemplate="selectTemplateFun"
@showBoxAlert="showBoxAlertFun"
@ -177,9 +176,6 @@
mapActions
} from 'vuex';
import {
amsGetCodePortLoad,
getCountry,
getPackage,
amsLoad,
} from '@/common/js/api/vas/ams.js'
export default {
@ -188,6 +184,11 @@
baseInfoHist,
houseOrderHist
},
computed: {
...mapState([
'packageList',
]),
},
data() {
return {
mid: '', // ID
@ -213,13 +214,6 @@
selectMail: '',
selectMailShow: false,
selectMailIndex: 0,
//
amsCodePort: [],
countryList: [],
packageList: [],
}
},
onLoad(op) {
@ -230,10 +224,9 @@
methods: {
init(){
this.getAmsLoad();
this.amsGetCodePortLoad();
this.getCountry();
this.getPackage();
// this.amsGetCodePortLoad();
// this.getCountry();
// this.getPackage();
},
// ============ ============
@ -255,39 +248,6 @@
})
},
/**
* 获取起运港
* */
amsGetCodePortLoad(){
amsGetCodePortLoad().then(res =>{
if(res.code == 200){
this.amsCodePort = res.result;
}
})
},
/**
* 获取国家
* */
getCountry(){
getCountry().then(res =>{
if(res.code == 200){
this.countryList = res.result;
}
})
},
/**
* 获取包装单位
* */
getPackage(){
getPackage().then(res =>{
if(res.code == 200){
this.packageList = res.result;
}
})
},
// ============ swiper ============
changeSwiper(event){

@ -4,7 +4,7 @@
<text class="iconfont icon-type"></text>
<text>基本信息</text>
</view>
<view class="from-list">
<view class="from-list" v-if="detail">
<view class="line">
<view class="left">
<text class="iconfont icon-chuanfanguanli-chuanfanshenqing"></text>
@ -104,16 +104,21 @@
<script>
import {
mapState,
mapActions
} from 'vuex';
export default {
props:{
detail:{
type: Object,
require: true,
},
amsCodePort: {
type: Object,
require: true,
}
},
computed: {
...mapState([
'amsCodePort',
]),
},
data() {
return {

@ -156,6 +156,10 @@
<script>
import {
mapState,
mapActions
} from 'vuex';
export default {
props:{
order:{
@ -165,10 +169,11 @@
index:{
type: Number,
},
countryList:{
type: Array,
require:true,
}
},
computed: {
...mapState([
'countryList',
]),
},
data() {
return {

@ -114,9 +114,7 @@
</template>
<script>
import uniTab from '@/pages/vas/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
// import uniTab from '@/uni_modules/uni-fab/components/uni-fab/uni-fab.vue'
import uniFab from '@/pages/vas/uni_modules/uni-fab-nav/uni-fab-nav.vue'
import uniSearchBar from '../uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue'
import vTabs from '../components/v-tabs/v-tabs.vue'
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
@ -125,7 +123,7 @@
} from '@/common/js/api/vas/manifest.js'
export default {
components: {
uniTab,
uniFab,
uniSearchBar,
vTabs,
},

@ -1,17 +0,0 @@
## 1.2.22021-12-29
- 更新 组件依赖
## 1.2.12021-11-19
- 修复 阴影颜色不正确的bug
## 1.2.02021-11-19
- 优化 组件UI并提供设计资源详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab)
## 1.1.12021-11-09
- 新增 提供组件设计资源,组件样式调整
## 1.1.02021-07-30
- 组件兼容 vue3如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.0.72021-05-12
- 新增 组件示例地址
## 1.0.62021-02-05
- 调整为uni_modules目录规范
- 优化 按钮背景色调整
- 优化 兼容pc端

@ -1,87 +0,0 @@
{
"id": "uni-fab",
"displayName": "uni-fab 悬浮按钮",
"version": "1.2.2",
"description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。",
"keywords": [
"uni-ui",
"uniui",
"按钮",
"悬浮按钮",
"fab"
],
"repository": "https://github.com/dcloudio/uni-ui",
"engines": {
"HBuilderX": ""
},
"directories": {
"example": "../../temps/example_temps"
},
"dcloudext": {
"category": [
"前端组件",
"通用组件"
],
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "无"
},
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules": {
"dependencies": ["uni-scss","uni-icons"],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"App": {
"app-vue": "y",
"app-nvue": "y"
},
"H5-mobile": {
"Safari": "y",
"Android Browser": "y",
"微信浏览器(Android)": "y",
"QQ浏览器(Android)": "y"
},
"H5-pc": {
"Chrome": "y",
"IE": "y",
"Edge": "y",
"Firefox": "y",
"Safari": "y"
},
"小程序": {
"微信": "y",
"阿里": "y",
"百度": "y",
"字节跳动": "y",
"QQ": "y"
},
"快应用": {
"华为": "u",
"联盟": "u"
},
"Vue": {
"vue2": "y",
"vue3": "y"
}
}
}
}
}

@ -1,9 +0,0 @@
## Fab 悬浮按钮
> **组件名uni-fab**
> 代码块: `uFab`
点击可展开一个图形按钮菜单
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab)
#### 如使用过程中有任何问题或者您对uni-ui有一些好的建议欢迎加入 uni-ui 交流群871950839

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

@ -1,17 +0,0 @@
## 1.2.22021-12-29
- 更新 组件依赖
## 1.2.12021-11-19
- 修复 阴影颜色不正确的bug
## 1.2.02021-11-19
- 优化 组件UI并提供设计资源详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab)
## 1.1.12021-11-09
- 新增 提供组件设计资源,组件样式调整
## 1.1.02021-07-30
- 组件兼容 vue3如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.0.72021-05-12
- 新增 组件示例地址
## 1.0.62021-02-05
- 调整为uni_modules目录规范
- 优化 按钮背景色调整
- 优化 兼容pc端

@ -1,481 +0,0 @@
<template>
<view class="uni-cursor-point">
<view v-if="popMenu && (leftBottom||rightBottom||leftTop||rightTop) && content.length > 0" :class="{
'uni-fab--leftBottom': leftBottom,
'uni-fab--rightBottom': rightBottom,
'uni-fab--leftTop': leftTop,
'uni-fab--rightTop': rightTop
}" class="uni-fab">
<view :class="{
'uni-fab__content--left': horizontal === 'left',
'uni-fab__content--right': horizontal === 'right',
'uni-fab__content--flexDirection': direction === 'vertical',
'uni-fab__content--flexDirectionStart': flexDirectionStart,
'uni-fab__content--flexDirectionEnd': flexDirectionEnd,
'uni-fab__content--other-platform': !isAndroidNvue
}" :style="{ width: boxWidth, height: boxHeight, backgroundColor: styles.backgroundColor }"
class="uni-fab__content" elevation="5">
<view v-if="flexDirectionStart || horizontalLeft" class="uni-fab__item uni-fab__item--first" />
<view v-for="(item, index) in content" :key="index" :class="{ 'uni-fab__item--active': isShow }"
class="uni-fab__item" @click="_onItemClick(index, item)">
<!-- <image :src="item.active ? item.selectedIconPath : item.iconPath" class="uni-fab__item-image"
mode="aspectFit" /> -->
<text class="uni-fab__item-image iconfont" :class="item.active ? `active ${item.iconPath}`: item.iconPath"></text>
<text class="uni-fab__item-text"
:style="{ color: item.active ? styles.selectedColor : styles.color }">{{ item.text }}</text>
</view>
<view v-if="flexDirectionEnd || horizontalRight" class="uni-fab__item uni-fab__item--first" />
</view>
</view>
<view :class="{
'uni-fab__circle--leftBottom': leftBottom,
'uni-fab__circle--rightBottom': rightBottom,
'uni-fab__circle--leftTop': leftTop,
'uni-fab__circle--rightTop': rightTop,
'uni-fab__content--other-platform': !isAndroidNvue
}" class="uni-fab__circle uni-fab__plus" :style="{ 'background-color': styles.buttonColor }" @click="_onClick">
<uni-icons class="fab-circle-icon" :type="isShow && content.length > 0 ? 'plusempty' : 'compose'" :color="styles.iconColor" size="32"
:class="{'uni-fab__plus--active': isShow && content.length > 0}"></uni-icons>
<!-- <view class="fab-circle-v" :class="{'uni-fab__plus--active': isShow && content.length > 0}"></view>
<view class="fab-circle-h" :class="{'uni-fab__plus--active': isShow && content.length > 0}"></view> -->
</view>
</view>
</template>
<script>
let platform = 'other'
// #ifdef APP-NVUE
platform = uni.getSystemInfoSync().platform
// #endif
/**
* Fab 悬浮按钮
* @description 点击可展开一个图形按钮菜单
* @tutorial https://ext.dcloud.net.cn/plugin?id=144
* @property {Object} pattern 可选样式配置项
* @property {Object} horizontal = [left | right] 水平对齐方式
* @value left 左对齐
* @value right 右对齐
* @property {Object} vertical = [bottom | top] 垂直对齐方式
* @value bottom 下对齐
* @value top 上对齐
* @property {Object} direction = [horizontal | vertical] 展开菜单显示方式
* @value horizontal 水平显示
* @value vertical 垂直显示
* @property {Array} content 展开菜单内容配置项
* @property {Boolean} popMenu 是否使用弹出菜单
* @event {Function} trigger 展开菜单点击事件返回点击信息
* @event {Function} fabClick 悬浮按钮点击事件
*/
export default {
name: 'UniFab',
emits: ['fabClick', 'trigger'],
props: {
pattern: {
type: Object,
default () {
return {}
}
},
horizontal: {
type: String,
default: 'left'
},
vertical: {
type: String,
default: 'bottom'
},
direction: {
type: String,
default: 'horizontal'
},
content: {
type: Array,
default () {
return []
}
},
show: {
type: Boolean,
default: false
},
popMenu: {
type: Boolean,
default: true
}
},
data() {
return {
fabShow: false,
isShow: false,
isAndroidNvue: platform === 'android',
styles: {
color: '#3c3e49',
selectedColor: '#007AFF',
backgroundColor: '#fff',
buttonColor: '#007AFF',
iconColor: '#fff'
}
}
},
computed: {
contentWidth(e) {
return (this.content.length + 1) * 55 + 15 + 'px'
},
contentWidthMin() {
return '55px'
},
//
boxWidth() {
return this.getPosition(3, 'horizontal')
},
//
boxHeight() {
return this.getPosition(3, 'vertical')
},
//
leftBottom() {
return this.getPosition(0, 'left', 'bottom')
},
//
rightBottom() {
return this.getPosition(0, 'right', 'bottom')
},
//
leftTop() {
return this.getPosition(0, 'left', 'top')
},
rightTop() {
return this.getPosition(0, 'right', 'top')
},
flexDirectionStart() {
return this.getPosition(1, 'vertical', 'top')
},
flexDirectionEnd() {
return this.getPosition(1, 'vertical', 'bottom')
},
horizontalLeft() {
return this.getPosition(2, 'horizontal', 'left')
},
horizontalRight() {
return this.getPosition(2, 'horizontal', 'right')
}
},
watch: {
pattern: {
handler(val, oldVal) {
this.styles = Object.assign({}, this.styles, val)
},
deep: true
}
},
created() {
this.isShow = this.show
if (this.top === 0) {
this.fabShow = true
}
//
this.styles = Object.assign({}, this.styles, this.pattern)
},
methods: {
_onClick() {
this.$emit('fabClick')
if (!this.popMenu) {
return
}
this.isShow = !this.isShow
},
open() {
this.isShow = true
},
close() {
this.isShow = false
},
/**
* 按钮点击事件
*/
_onItemClick(index, item) {
this.$emit('trigger', {
index,
item
})
},
/**
* 获取 位置信息
*/
getPosition(types, paramA, paramB) {
if (types === 0) {
return this.horizontal === paramA && this.vertical === paramB
} else if (types === 1) {
return this.direction === paramA && this.vertical === paramB
} else if (types === 2) {
return this.direction === paramA && this.horizontal === paramB
} else {
return this.isShow && this.direction === paramA ? this.contentWidth : this.contentWidthMin
}
}
}
}
</script>
<style lang="scss" >
$uni-shadow-base:0 1px 5px 2px rgba($color: #000000, $alpha: 0.1) !default;
.uni-fab {
position: fixed;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
justify-content: center;
align-items: center;
z-index: 10;
border-radius: 45px;
box-shadow: $uni-shadow-base;
}
.uni-cursor-point {
/* #ifdef H5 */
cursor: pointer;
/* #endif */
}
.uni-fab--active {
opacity: 1;
}
.uni-fab--leftBottom {
left: 15px;
bottom: 120px;
/* #ifdef H5 */
left: calc(15px + var(--window-left));
bottom: calc(30px + var(--window-bottom));
/* #endif */
// padding: 10px;
}
.uni-fab--leftTop {
left: 15px;
top: 30px;
/* #ifdef H5 */
left: calc(15px + var(--window-left));
top: calc(30px + var(--window-top));
/* #endif */
// padding: 10px;
}
.uni-fab--rightBottom {
right: 15px;
bottom: 120px;
/* #ifdef H5 */
right: calc(15px + var(--window-right));
bottom: calc(30px + var(--window-bottom));
/* #endif */
// padding: 10px;
}
.uni-fab--rightTop {
right: 15px;
top: 30px;
/* #ifdef H5 */
right: calc(15px + var(--window-right));
top: calc(30px + var(--window-top));
/* #endif */
// padding: 10px;
}
.uni-fab__circle {
position: fixed;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
justify-content: center;
align-items: center;
width: 55px;
height: 55px;
background-color: #3c3e49;
border-radius: 45px;
z-index: 11;
// box-shadow: $uni-shadow-base;
}
.uni-fab__circle--leftBottom {
left: 15px;
bottom: 120px;
/* #ifdef H5 */
left: calc(15px + var(--window-left));
bottom: calc(30px + var(--window-bottom));
/* #endif */
}
.uni-fab__circle--leftTop {
left: 15px;
top: 30px;
/* #ifdef H5 */
left: calc(15px + var(--window-left));
top: calc(30px + var(--window-top));
/* #endif */
}
.uni-fab__circle--rightBottom {
right: 15px;
bottom: 120px;
/* #ifdef H5 */
right: calc(15px + var(--window-right));
bottom: calc(30px + var(--window-bottom));
/* #endif */
}
.uni-fab__circle--rightTop {
right: 15px;
top: 30px;
/* #ifdef H5 */
right: calc(15px + var(--window-right));
top: calc(30px + var(--window-top));
/* #endif */
}
.uni-fab__circle--left {
left: 0;
}
.uni-fab__circle--right {
right: 0;
}
.uni-fab__circle--top {
top: 0;
}
.uni-fab__circle--bottom {
bottom: 0;
}
.uni-fab__plus {
font-weight: bold;
}
// .fab-circle-v {
// position: absolute;
// width: 2px;
// height: 24px;
// left: 0;
// top: 0;
// right: 0;
// bottom: 0;
// /* #ifndef APP-NVUE */
// margin: auto;
// /* #endif */
// background-color: white;
// transform: rotate(0deg);
// transition: transform 0.3s;
// }
// .fab-circle-h {
// position: absolute;
// width: 24px;
// height: 2px;
// left: 0;
// top: 0;
// right: 0;
// bottom: 0;
// /* #ifndef APP-NVUE */
// margin: auto;
// /* #endif */
// background-color: white;
// transform: rotate(0deg);
// transition: transform 0.3s;
// }
.fab-circle-icon {
transform: rotate(0deg);
transition: transform 0.3s;
font-weight: 200;
}
.uni-fab__plus--active {
transform: rotate(135deg);
}
.uni-fab__content {
/* #ifndef APP-NVUE */
box-sizing: border-box;
display: flex;
/* #endif */
flex-direction: row;
border-radius: 55px;
overflow: hidden;
transition-property: width, height;
transition-duration: 0.2s;
width: 55px;
border-color: #DDDDDD;
border-width: 1rpx;
border-style: solid;
}
.uni-fab__content--other-platform {
border-width: 0px;
box-shadow: $uni-shadow-base;
}
.uni-fab__content--left {
justify-content: flex-start;
}
.uni-fab__content--right {
justify-content: flex-end;
}
.uni-fab__content--flexDirection {
flex-direction: column;
justify-content: flex-end;
}
.uni-fab__content--flexDirectionStart {
flex-direction: column;
justify-content: flex-start;
}
.uni-fab__content--flexDirectionEnd {
flex-direction: column;
justify-content: flex-end;
}
.uni-fab__item {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
width: 55px;
height: 55px;
opacity: 0;
transition: opacity 0.2s;
}
.uni-fab__item--active {
opacity: 1;
}
.uni-fab__item-image {
width: 20px;
height: 20px;
margin-bottom: 4px;
font-size: 40rpx;
color: #999;
&.item.iconPath{
color: #2c96fb;
}
}
.uni-fab__item-text {
color: #FFFFFF;
font-size: 12px;
line-height: 12px;
margin-top: 2px;
}
.uni-fab__item--first {
width: 55px;
}
</style>

@ -1,87 +0,0 @@
{
"id": "uni-fab",
"displayName": "uni-fab 悬浮按钮",
"version": "1.2.2",
"description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。",
"keywords": [
"uni-ui",
"uniui",
"按钮",
"悬浮按钮",
"fab"
],
"repository": "https://github.com/dcloudio/uni-ui",
"engines": {
"HBuilderX": ""
},
"directories": {
"example": "../../temps/example_temps"
},
"dcloudext": {
"category": [
"前端组件",
"通用组件"
],
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "无"
},
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules": {
"dependencies": ["uni-scss","uni-icons"],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"App": {
"app-vue": "y",
"app-nvue": "y"
},
"H5-mobile": {
"Safari": "y",
"Android Browser": "y",
"微信浏览器(Android)": "y",
"QQ浏览器(Android)": "y"
},
"H5-pc": {
"Chrome": "y",
"IE": "y",
"Edge": "y",
"Firefox": "y",
"Safari": "y"
},
"小程序": {
"微信": "y",
"阿里": "y",
"百度": "y",
"字节跳动": "y",
"QQ": "y"
},
"快应用": {
"华为": "u",
"联盟": "u"
},
"Vue": {
"vue2": "y",
"vue3": "y"
}
}
}
}
}

@ -1,9 +0,0 @@
## Fab 悬浮按钮
> **组件名uni-fab**
> 代码块: `uFab`
点击可展开一个图形按钮菜单
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab)
#### 如使用过程中有任何问题或者您对uni-ui有一些好的建议欢迎加入 uni-ui 交流群871950839

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save