| | |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | |
| | | #VUE_APP_API_URL = 'http://localhost:10010' |
| | | # VUE_APP_API_URL = 'http://192.168.0.113:10010' |
| | | VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface' |
| | | # VUE_APP_API_URL = 'http://192.168.0.101:10010' |
| | | # VUE_APP_API_URL = 'http://192.168.0.173/gateway_interface' |
| | | VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' |
| | | # VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' |
| | | |
| | |
| | | }, |
| | | mounted() { |
| | | // needChangePwd 0 : é»è®¤å¯ç éè¦ä¿®æ¹ï¼1 ä¸éè¦ |
| | | if (userInfo && (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) { |
| | | if (this.userInfo && (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) { |
| | | this.visible.changePwd = true |
| | | } |
| | | }, |
| | | filters: { |
| | | filters: { |
| | | // å±ç¤ºåç§° |
| | | displayName(userInfo) { |
| | | if (userInfo == null) { |
| | |
| | | type="primary">ä¿åé
置项</el-button> |
| | | <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain |
| | | @click="handleDel">å é¤èç¹</el-button> |
| | | </div>3 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | // item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | if(item.param3 > 3600){ |
| | | item.workTime = Math.ceil(item.param3 / 3600) + 'æ¶' + Math.ceil(Math.ceil(item.param3 % 3600) / 60) + 'å' + item.param3 % 60 + 'ç§' |
| | | }else if(item.param3 > 60){ |
| | | item.workTime = Math.ceil(item.param3 / 60) + 'å' + item.param3 % 60 + 'ç§' |
| | | }else{ |
| | | item.workTime = item.param3 + 'ç§' |
| | | } |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | |
| | | <style lang="scss"> |
| | | /*æ¯ä¸ªé¡µé¢å
Œ
±css */ |
| | | @import "uview-ui/index.scss"; |
| | | |
| | | html, body { |
| | | height: auto; |
| | | min-height: 100%; |
| | | overflow: visible; |
| | | } |
| | | .flex-cb { |
| | | display: flex; |
| | | justify-content: space-between; |
| | |
| | | } |
| | | |
| | | .main_app { |
| | | padding: 0 30rpx 30rpx; |
| | | padding: 10rpx 30rpx 30rpx; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | } |
| | |
| | | }) |
| | | } |
| | | // ææ |
| | | export const wxAuthorize = (data) => { |
| | | export const wxAuthorizea = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/web/visitor/wxAuthorize', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
| | | <script> |
| | | var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || |
| | | CSS.supports('top: constant(a)')) |
| | |
| | | '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + |
| | | (coverSupport ? ', viewport-fit=cover' : '') + '" />') |
| | | </script> |
| | | <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"/> |
| | | <title></title> |
| | | <!--preload-links--> |
| | | <!--app-context--> |
| | |
| | | "historyApiFallback" : true, |
| | | "disableHostCheck" : true, |
| | | "proxy" : { |
| | | "/gateway_interface" : { |
| | | "/zhyq_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | // "target" : "http://172.20.10.7:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.106:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | | "pathRewrite" : { |
| | | "^/gateway_interface" : "" |
| | | "^/zhyq_interface" : "" |
| | | } |
| | | } |
| | | }, |
| | |
| | | "serviceHost" : "" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "title" : "h5" |
| | | } |
| | | } |
| | |
| | | "navigationBarTitleText": "éæ©èº«ä»½",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }, |
| | | { |
| | | "path": "pages/auth/auth", |
| | | "style": { |
| | | "navigationBarTitleText": "微信ææ", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | },
|
| | | {
|
| | | "path": "pages/index/index",
|
| | |
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/auth/auth",
|
| | | "style": {
|
| | | "navigationBarTitleText": "微信ææ",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/staffLogin/forgetPsd",
|
| | | "style": {
|
| | | "navigationBarTitleText": "æ¾åå¯ç ",
|
| | |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "è¿åæ¥è¯¢" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/staff/signin", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "æçèå¤" |
| | | } |
| | | }
|
| | | ],
|
| | |
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "",
|
| | | "navigationBarTextStyle": "black", |
| | | "navigationStyle": "custom",
|
| | | "navigationBarBackgroundColor": "#ffffff",
|
| | | "backgroundColor": "#ffffff"
|
| | | },
|
| | |
| | | |
| | | }; |
| | | }, |
| | | onLoad() { |
| | | const appID = 'wx4d7c10bdec51942b' |
| | | const AppSecret = '922c93596d134fedf5bd22a9354b3bfe' |
| | | // const scope = 'snsapi_userinfo' |
| | | let uri = encodeURIComponent('https://xiaopiqiu2.natapp1.cc') |
| | | let authURL = |
| | | `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect` |
| | | window.location.href = authURL |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | |
| | | <swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)"> |
| | | <view class="item"> |
| | | <view class="head"> |
| | | <view class="name">è¿è¾å{{ item.billCode }}</view> |
| | | <view class="name">{{ item.contractNum ? 'ååå' : 'è¿è¾å' }}{{ item.billCode || item.contractNum}}</view> |
| | | <view class="status"> |
| | | <view class="text" v-if="item.status == 0">请确认任å¡</view> |
| | | <view class="text" v-if="item.status == 1">请äº{{item.arriveDate.slice(5,11)}}ç°åºç¾å°</view> |
| | |
| | | <view class="text" v-if="item.status == 4">请å
¥ååé {{item.platformName}}ä½ä¸</view> |
| | | <view class="text" v-if="item.status == 5">{{item.platformName}}ä½ä¸ä¸</view> |
| | | <view class="text" v-if="item.status == 6">ä½ä¸å·²å®æ</view> |
| | | <view class="text" v-if="item.status == 7">转移ä¸</view> |
| | | <view class="text red" v-if="item.status == 8">å¼å¸¸æèµ·</view> |
| | | <view class="time" v-if="item.waitTime && item.status == 2">{{ item.waitTime }}</view> |
| | | <view class="time" v-if="item.finishTimeStr && item.status == 5">{{ item.finishTimeStr }}</view> |
| | | <view class="time" v-if="item.finishTimeStr && item.status == 5">é¢è®¡å®ææ¶é´ï¼{{ item.finishTimeStr }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="content"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="sub"> |
| | | <view class="time" v-if="item.arriveDate && item.type == 4">{{ item.arriveDate.slice(5) }}</view> |
| | | <view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view> |
| | | <view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">{{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view> |
| | | <view v-if="item.status == 0" class="sub_btn">确认任å¡</view> |
| | | <view v-if="item.status == 1" class="sub_btn">ç«å³ç¾å°</view> |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 24rpx; |
| | | padding-top: 10rpx; |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 34rpx; |
| | |
| | | <template> |
| | | <view class="login"> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" /> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" /> |
| | | <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" /> |
| | | <view class="login_title">宿³°ç©æµæºæ
§ååº</view> |
| | | <view class="login_title">ç©æµè½¦å¸æºç»å½</view> |
| | | <view class="login_list"> |
| | | <view class="login_list_item"> |
| | | <image src="@/static/login_ic_phone@2x.png" mode="widthFix" /> |
| | | <input v-model="form.username" maxlength="18" placeholder="ææºå·" /> |
| | | <input v-model="form.username" @focus="showKeyboard = true" @blur="showKeyboard = false" maxlength="18" placeholder="ææºå·" /> |
| | | </view> |
| | | <view class="login_list_item"> |
| | | <image src="@/static/login_ic_password@2x.png" mode="widthFix" /> |
| | | <input |
| | | v-model="form.password" |
| | | @focus="showKeyboard = true" @blur="showKeyboard = false" |
| | | type="password" |
| | | placeholder="å¯ç " |
| | | /> |
| | |
| | | <view class="login_btn_n" @click="onLogin">ç«å³ç»å½</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="btns"> |
| | | <view class="btns" v-if="!showKeyboard"> |
| | | <view class="btn" @click="handleRegister">ç«å³æ³¨å</view> |
| | | <view class="btn separate"> | </view> |
| | | <view class="btn" @click="handleSetPsd">å¿è®°å¯ç </view> |
| | |
| | | data() { |
| | | return { |
| | | form: { |
| | | username: '18056814089', |
| | | password: '123456' |
| | | username: '', |
| | | password: '' |
| | | }, |
| | | isShowProtocol: false, |
| | | showKeyboard: false, |
| | | countDown: 0 |
| | | } |
| | | }, |
| | |
| | | driverLogin({ |
| | | ...form, |
| | | uuid: this.captcha.uuid, |
| | | openid: this.$store.state.openId, |
| | | code: '1' |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | |
| | | margin-bottom: 40rpx; |
| | | } |
| | | .login_bg { |
| | | position: absolute; |
| | | top: 0; |
| | | width: 750rpx; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | z-index: -1; |
| | | } |
| | | .login_title { |
| | | font-size: 44rpx; |
| | |
| | | this.type = option.type; |
| | | this.platformId = option.platformId; |
| | | this.getData(option.jobId || ''); |
| | | uni.setNavigationBarTitle({ |
| | | title: this.type == 0 ? 'å·²ç¾å°è½¦è¾' : 'ä½ä¸ä¸è½¦è¾' |
| | | }) |
| | | }, |
| | | methods: { |
| | | getData(jobId) { |
| | |
| | | </view> |
| | | </view> |
| | | <view class="copy" @click="copy">å¤å¶è½¦åçç
§å·</view> |
| | | <view class="perch"></view> |
| | | <view class="handle_sub" @click="onSubmit"> |
| | | æäº¤ |
| | | </view> |
| | |
| | | } |
| | | } |
| | | .main_app { |
| | | // padding-top: 10rpx; |
| | | padding-top: 10rpx; |
| | | .handle_sub{ |
| | | position: fixed; |
| | | bottom: 64rpx; |
| | | // position: fixed; |
| | | // bottom: 64rpx; |
| | | width: 690rpx; |
| | | left: 30rpx; |
| | | margin-top: 80rpx; |
| | | background-color: #4d99a8; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | |
| | | <view class="name_wrap"> |
| | | <text>{{item.memberName}}<text v-if="item.statusInfo" class="status">({{item.statusInfo}})</text></text> |
| | | </view> |
| | | <view v-if="item.approveType == 1" class="carbon"> |
| | | <view v-if="item.approveType == 1 || item.approveType == 0" class="carbon"> |
| | | <view class="carbon_item" v-for="child in item.approveList" |
| | | :key="child.id"> |
| | | <image :src=" |
| | |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | margin: 0 auto; |
| | | border-radius: 50%; |
| | | } |
| | | view { |
| | | font-size: 26rpx; |
| | |
| | | status: '0'
|
| | | },
|
| | | jobId: '',
|
| | | // lat: '',
|
| | | // lnt: '',
|
| | | lat: '31.783205',
|
| | | lnt: '117.262635',
|
| | | lat: '',
|
| | | lnt: '',
|
| | | // lat: '31.783205',
|
| | | // lnt: '117.262635',
|
| | | nowTime: '',
|
| | | wmsInfo: {},
|
| | | signDistance: uni.getStorageSync('driverGuide').signDistance,
|
| | |
| | | },
|
| | | onLoad(option) {
|
| | | this.jobId = option.id
|
| | | // if(option.status && option.status == '1'){
|
| | | // this.getLocation()
|
| | | // }else{
|
| | | // this.getDetail()
|
| | | // }
|
| | | this.getDetail()
|
| | | if (option.status && option.status == '1') {
|
| | | // wx.config({
|
| | | // debug: false, // å¼å¯è°è¯æ¨¡å¼,è°ç¨çææapiçè¿åå¼ä¼å¨å®¢æ·ç«¯alertåºæ¥ï¼è¥è¦æ¥çä¼ å
¥çåæ°ï¼å¯ä»¥å¨pc端æå¼ï¼åæ°ä¿¡æ¯ä¼éè¿logæåºï¼ä»
å¨pcç«¯æ¶æä¼æå°ã
|
| | | // appId: 'wx173e6caf5abc718a', // å¿
å¡«ï¼å
¬ä¼å·çå¯ä¸æ è¯
|
| | | // timestamp: timeStamp, // å¿
å¡«ï¼çæç¾åçæ¶é´æ³
|
| | | // nonceStr: nonceStr, // å¿
å¡«ï¼çæç¾åçéæºä¸²
|
| | | // signature: Sign, // å¿
å¡«ï¼ç¾å
|
| | | // jsApiList: [
|
| | | // 'getLocation',
|
| | | // 'openLocation'
|
| | | // ] // å¿
å¡«ï¼éè¦ä½¿ç¨çJSæ¥å£å表
|
| | | // })
|
| | | this.getLocation()
|
| | | } else {
|
| | | this.getDetail()
|
| | | }
|
| | | // this.getDetail()
|
| | | setInterval(() => {
|
| | | this.nowTime = dayjs().format('HH:mm:ss')
|
| | | })
|
| | |
| | | const {
|
| | | jobId
|
| | | } = this
|
| | | // wx.ready(() => {
|
| | | // wx.getLocation({
|
| | | // type: "gcj02", // gcj02ï¼ç«æåæ ï¼ï¼wgs84ï¼GPSåæ ï¼
|
| | | // success: (res) => {
|
| | | // this.lat = res.latitude
|
| | | // this.lnt = res.longitude
|
| | | // this.getDetail()
|
| | | // },
|
| | | // fail: (err) => {
|
| | | // console.error("è·åå®ä½å¤±è´¥ï¼", err);
|
| | | // },
|
| | | // cancel: () => {
|
| | | // console.warn("ç¨æ·æç»ææè·åå°çä½ç½®");
|
| | | // },
|
| | | // });
|
| | | // });
|
| | | uni.getLocation({
|
| | | type: 'wgs84',
|
| | | success: (res) => {
|
| | |
| | | this.getDetail()
|
| | | },
|
| | | fail: (err) => {
|
| | | this.showToast('è·åå®ä½å¤±è´¥')
|
| | | this.showToast('è·åå®ä½å¤±è´¥', err)
|
| | | }
|
| | | })
|
| | | },
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | .detail_modal {
|
| | | height: calc( 100vh - 88rpx );
|
| | | .detail_modal {
|
| | | height: calc(100vh - 88rpx);
|
| | | padding: 36rpx 30rpx;
|
| | | border-radius: 12rpx;
|
| | | box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5);
|
| | |
|
| | | .modal_title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | |
| | | text-align: center;
|
| | | margin-bottom: 36rpx;
|
| | | }
|
| | | .contract_wrap{
|
| | | height: calc( 100% - 400rpx );
|
| | |
|
| | | .contract_wrap {
|
| | | height: calc(100% - 400rpx);
|
| | | overflow-y: auto;
|
| | | }
|
| | |
|
| | | .contract_list {
|
| | | border-top: 1rpx solid #E5E5E5;
|
| | | margin-bottom: 30rpx;
|
| | | padding-top: 30rpx;
|
| | | &:nth-last-child(1){
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | margin-bottom: 0;
|
| | | }
|
| | |
|
| | | .list {
|
| | | background: #f7f7f7;
|
| | | border-radius: 8rpx;
|
| | | padding: 20rpx;
|
| | | .item{
|
| | |
|
| | | .item {
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding-bottom: 20rpx;
|
| | | margin-bottom: 20rpx;
|
| | | &:nth-last-child(1){
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | border: none;
|
| | | padding-bottom: 0;
|
| | | margin-bottom: 0;
|
| | | }
|
| | | }
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | | &:nth-last-child(1){
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | margin-bottom: 0rpx;
|
| | | }
|
| | |
|
| | | .label {
|
| | | color: #666666;
|
| | | width: 92rpx;
|
| | |
| | | <template> |
| | | <view class="box"> |
| | | <view v-html="info"></view> |
| | | <!-- <view v-html="info"></view> --> |
| | | <mp-html :content="info" /> |
| | | </view> |
| | | </template> |
| | | <script> |
| | |
| | | return true |
| | | }, |
| | | onLoad() { |
| | | var that = this |
| | | // if (!that.$store.state.openid) { |
| | | let url = window.location.href |
| | | let code = '' |
| | | let source = '' |
| | | if (url.indexOf('code=') !== -1) { |
| | | const query = url.split('?') |
| | | console.log('app-app', url) |
| | | for (const q of query) { |
| | | if (q.indexOf('code=') !== -1) { |
| | | code = q.substring(q.indexOf('code=') + 5, q.length) |
| | | } |
| | | // if (q.indexOf('source=') !== -1) { |
| | | // source = q.substring(q.indexOf('source=') + 7, q.indexOf('source=') + 8) |
| | | // } |
| | | // æ¥æº:0=叿ºï¼1=访客ï¼2=å
é¨åå·¥ |
| | | } |
| | | wxAuthorize({ |
| | | code: code, |
| | | source: 1 |
| | | }).then(res => { |
| | | console.log('app_ress', res) |
| | | if (res.code === 200) { |
| | | that.$store.commit('setOpenId', res.data.openid) |
| | | if (res.data.member) { |
| | | that.$store.commit('setMember', res.data.member) |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | // const appID = 'wx4d7c10bdec51942b' |
| | | // let uri = encodeURIComponent(url) |
| | | // let authURL = |
| | | // `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect` |
| | | // window.location.href = authURL |
| | | } |
| | | // } |
| | | |
| | | }, |
| | | methods: { |
| | | jump(type) { |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" /> |
| | | <view class="h1">宿³°ç©æµæºæ
§ååº</view> |
| | | <view class="placeholder6 place">è¯·éæ©æ¨ç身份</view> |
| | | <view class="item" @click="jump('/pages/index/index')"> |
| | | <image class="avatar" src="@/static/ic_visitor@2x.png" /> |
| | | <view class="content"> |
| | | <view class="name">ææ¯è®¿å®¢</view> |
| | | <view class="placeholder6">VISITOR</view> |
| | | </view> |
| | | <u-icon name="arrow-right" size="24" color="#979797" /> |
| | | </view> |
| | | <view class="item" @click="staffLogin"> |
| | | <image class="avatar" src="@/static/ic_staff@2x.png" /> |
| | | <view class="content"> |
| | | <view class="name">ææ¯åå·¥</view> |
| | | <view class="placeholder6">STAFF</view> |
| | | </view> |
| | | <u-icon name="arrow-right" size="24" color="#979797" /> |
| | | </view> |
| | | <view class="item" @click="driverLogin"> |
| | | <image class="avatar" src="@/static/ic_driver@2x.png" /> |
| | | <view class="content"> |
| | | <view class="name">ææ¯ç©æµè½¦å¸æº</view> |
| | | <view class="placeholder6">DRIVER</view> |
| | | </view> |
| | | <u-icon name="arrow-right" size="24" color="#979797" /> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | methods: { |
| | | jump(url) { |
| | | console.log(url) |
| | | uni.navigateTo({ |
| | | url |
| | | }) |
| | | }, |
| | | driverLogin() { |
| | | const driverInfo = uni.getStorageSync('driverInfo') || {} |
| | | if (driverInfo && driverInfo.memberId) { |
| | | uni.navigateTo({ |
| | | url: '/pages/driver/index' |
| | | }) |
| | | }else{ |
| | | uni.navigateTo({ |
| | | url: '/pages/driver/login' |
| | | }) |
| | | } |
| | | }, |
| | | staffLogin() { |
| | | const userInfo = uni.getStorageSync('userInfo') || {} |
| | | if (userInfo && userInfo.memberId) { |
| | | uni.navigateTo({ |
| | | url: '/pages/staff/index' |
| | | }) |
| | | }else{ |
| | | uni.navigateTo({ |
| | | url: '/pages/staffLogin/login' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" > |
| | | .main_app { |
| | | width: 100%; |
| | | height: 100vh; |
| | | padding-top: 80rpx; |
| | | background: linear-gradient( |
| | | 180deg, |
| | | rgba(39, 155, 170, 0.2) 0%, |
| | | rgba(39, 155, 170, 0) 100% |
| | | ); |
| | | .login_bg { |
| | | position: absolute; |
| | | top: 0; |
| | | width: 750rpx; |
| | | z-index: -1; |
| | | } |
| | | .h1 { |
| | | font-weight: 600; |
| | | font-size: 48rpx; |
| | | color: #222222; |
| | | line-height: 66rpx; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | .place { |
| | | margin-bottom: 98rpx; |
| | | } |
| | | .item { |
| | | width: 690rpx; |
| | | height: 200rpx; |
| | | background: #ffffff; |
| | | border-radius: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 40rpx; |
| | | font-size: 26rpx; |
| | | margin-bottom: 40rpx; |
| | | .avatar { |
| | | width: 120rpx; |
| | | height: 120rpx; |
| | | margin-right: 30rpx; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 38rpx; |
| | | color: #222222; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | <template>
|
| | | <view class="main_app">
|
| | | <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" />
|
| | | <view class="h1">宿³°ç©æµæºæ
§ååº</view>
|
| | | <view class="placeholder6 place">è¯·éæ©æ¨ç身份</view>
|
| | | <view class="item" @click="userAuth(1)">
|
| | | <image class="avatar" src="@/static/ic_visitor@2x.png" />
|
| | | <view class="content">
|
| | | <view class="name">ææ¯è®¿å®¢</view>
|
| | | <view class="placeholder6">VISITOR</view>
|
| | | </view>
|
| | | <u-icon name="arrow-right" size="24" color="#979797" />
|
| | | </view>
|
| | | <view class="item" @click="userAuth(2)">
|
| | | <image class="avatar" src="@/static/ic_staff@2x.png" />
|
| | | <view class="content">
|
| | | <view class="name">ææ¯åå·¥</view>
|
| | | <view class="placeholder6">STAFF</view>
|
| | | </view>
|
| | | <u-icon name="arrow-right" size="24" color="#979797" />
|
| | | </view>
|
| | | <view class="item" @click="userAuth(0)">
|
| | | <image class="avatar" src="@/static/ic_driver@2x.png" />
|
| | | <view class="content">
|
| | | <view class="name">ææ¯ç©æµè½¦å¸æº</view>
|
| | | <view class="placeholder6">DRIVER</view>
|
| | | </view>
|
| | | <u-icon name="arrow-right" size="24" color="#979797" />
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | wxAuthorizea, |
| | | getUserInfo
|
| | | } from '@/api'
|
| | | import {
|
| | | baseUrl
|
| | | } from "@/utils/config.js"
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | code: '091RVIkl2SZXDe4WySll2pAL8D1RVIkb'
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | var that = this
|
| | | let url = window.location.href
|
| | | let code = ''
|
| | | if (url.indexOf('code=') !== -1) {
|
| | |
|
| | | } else { |
| | | return
|
| | | let url = window.location.href
|
| | | const appID = 'wx173e6caf5abc718a'
|
| | | let uri = encodeURIComponent(url)
|
| | | let authURL =
|
| | | `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
|
| | | window.location.href = authURL
|
| | | }
|
| | |
|
| | | },
|
| | | methods: {
|
| | | jump(url) {
|
| | | console.log(url)
|
| | | uni.navigateTo({
|
| | | url
|
| | | })
|
| | | },
|
| | | driverLogin(flag) {
|
| | | // const driverInfo = uni.getStorageSync('driverInfo') || {}
|
| | | if (flag) {
|
| | | uni.navigateTo({
|
| | | url: '/pages/driver/index'
|
| | | })
|
| | | } else {
|
| | | uni.navigateTo({
|
| | | url: '/pages/driver/login'
|
| | | })
|
| | | }
|
| | | },
|
| | | staffLogin(flag) {
|
| | | // const userInfo = uni.getStorageSync('userInfo') || {}
|
| | | if (flag) {
|
| | | uni.navigateTo({
|
| | | url: '/pages/staff/index'
|
| | | })
|
| | | } else {
|
| | | uni.navigateTo({
|
| | | url: '/pages/staffLogin/login'
|
| | | })
|
| | | }
|
| | | },
|
| | | // source æ¥æº:0=叿ºï¼1=访客ï¼2=å
é¨åå·¥
|
| | | userAuth(source) {
|
| | | var that = this
|
| | | let url = window.location.href
|
| | | let code = ''
|
| | | if (url.indexOf('code=') !== -1 || this.code) {
|
| | | // const query = url.split('?')
|
| | | // for (const q of query) {
|
| | | // if (q.indexOf('code=') !== -1) {
|
| | | // let statusIndex = q.indexOf('&state') - 1
|
| | | // code = q.substring(q.indexOf('code=') + 5, statusIndex)
|
| | | // }
|
| | | // }
|
| | | wxAuthorizea({
|
| | | code: code || this.code,
|
| | | source: source
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | that.$store.commit('setOpenId', res.data.openid)
|
| | | if (res.data.member) {
|
| | | that.$store.commit('setMember', res.data.member)
|
| | | } |
| | | if (res.data.token) { |
| | | that.$store.commit('setToken', res.data.token) |
| | | getUserInfo().then(ress => { |
| | | that.$store.commit('setUserInfo', ress.data) |
| | | }) |
| | | }
|
| | | let flag = res.data.member && res.data.member.id
|
| | | setTimeout(() => { |
| | | if (source == 0) { |
| | | this.driverLogin(flag) |
| | | } else if (source == 2) { |
| | | this.staffLogin(flag) |
| | | } else { |
| | | this.jump('/pages/index/index') |
| | | } |
| | | }, 300)
|
| | | }
|
| | | })
|
| | | }
|
| | | // }
|
| | | // å·æ°token
|
| | | // setTimeout(() => {
|
| | | // refreshToken().then(res => {
|
| | | // if (res.code && res.code === 200) {
|
| | | // this.$store.commit('setToken', res.data)
|
| | | // }
|
| | | // })
|
| | | // }, 3000)
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss">
|
| | | .main_app {
|
| | | width: 100vw; |
| | | box-sizing: border-box; |
| | | overflow: hidden; |
| | | margin: 0;
|
| | | height: 100vh;
|
| | | padding-top: 80rpx;
|
| | | background: linear-gradient(180deg,
|
| | | rgba(39, 155, 170, 0.2) 0%,
|
| | | rgba(39, 155, 170, 0) 100%);
|
| | |
|
| | | .login_bg {
|
| | | position: absolute;
|
| | | top: 0; |
| | | left: 0;
|
| | | width: 100%;
|
| | | z-index: -1;
|
| | | }
|
| | |
|
| | | .h1 {
|
| | | font-weight: 600;
|
| | | font-size: 48rpx;
|
| | | color: #222222;
|
| | | line-height: 66rpx;
|
| | | margin-bottom: 16rpx;
|
| | | }
|
| | |
|
| | | .place {
|
| | | margin-bottom: 98rpx;
|
| | | }
|
| | |
|
| | | .item {
|
| | | width: 690rpx;
|
| | | height: 200rpx;
|
| | | background: #ffffff;
|
| | | border-radius: 8rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | padding: 40rpx;
|
| | | font-size: 26rpx;
|
| | | margin-bottom: 40rpx;
|
| | |
|
| | | .avatar {
|
| | | width: 120rpx;
|
| | | height: 120rpx;
|
| | | margin-right: 30rpx;
|
| | | }
|
| | |
|
| | | .content {
|
| | | flex: 1;
|
| | |
|
| | | .name {
|
| | | font-weight: 600;
|
| | | font-size: 38rpx;
|
| | | color: #222222;
|
| | | margin-bottom: 20rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | { name: 'ç¨è½¦ç³è¯·', url: '/pages/staff/vehicle/index', img: require('@/static/home/ic_yongcheshenqing@3x.png'),auth: 'weixin:menu:usecar' }, |
| | | { name: 'é¢çº¦ä¼è®®å®¤', url: '/pages/staff/meetingSub', img: require('@/static/home/ic_yuyuehuiyishi@3x.png'),auth: 'weixin:menu:meeting' }, |
| | | { name: 'ä¿®æ¹å¯ç ', url: '/pages/changePassword/changePassword', img: require('@/static/home/ic_xiugaimima@3x.png'),auth: 'weixin:menu:password' }, |
| | | { name: 'åå·¥èå¤', url: '', img: require('@/static/home/ic_kaoqin@3x.png'),auth: 'weixin:menu:attendance' }, |
| | | { name: 'æçèå¤', url: '/pages/staff/signin', img: require('@/static/home/ic_kaoqin@3x.png'),auth: 'weixin:menu:attendance' }, |
| | | ], |
| | | list2: [ |
| | | { name: 'ä»»å¡ä¸å¿', url: '/pages/staff/task/index', img: require('@/static/home/ic_renwuzhongxin@3x.png'),auth: 'weixin:menu:taskcenter' }, |
| | |
| | | } |
| | | }, |
| | | onLoad() { |
| | | var that = this |
| | | // if (!that.$store.state.openid) { |
| | | let url = window.location.href |
| | | let code = '' |
| | | let source = '' |
| | | if (url.indexOf('code=') !== -1) { |
| | | const query = url.split('?') |
| | | console.log('app-app', url) |
| | | for (const q of query) { |
| | | if (q.indexOf('code=') !== -1) { |
| | | code = q.substring(q.indexOf('code=') + 5, q.length) |
| | | } |
| | | // if (q.indexOf('source=') !== -1) { |
| | | // source = q.substring(q.indexOf('source=') + 7, q.indexOf('source=') + 8) |
| | | // } |
| | | // æ¥æº:0=叿ºï¼1=访客ï¼2=å
é¨åå·¥ |
| | | } |
| | | wxAuthorize({ |
| | | code: code, |
| | | source: 2 |
| | | }).then(res => { |
| | | console.log('app_ress', res) |
| | | if (res.code === 200) { |
| | | that.$store.commit('setOpenId', res.data.openid) |
| | | if (res.data.member) { |
| | | that.$store.commit('setMember', res.data.member) |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | // const appID = 'wx4d7c10bdec51942b' |
| | | // let uri = encodeURIComponent(url) |
| | | // let authURL = |
| | | // `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect` |
| | | // window.location.href = authURL |
| | | } |
| | | // } |
| | | |
| | | this.getTaskInfo() |
| | | // å·æ°token |
| | | setTimeout(() => { |
| | | refreshToken().then(res => { |
| | | if (res.code && res.code === 200) { |
| | | this.$store.commit('setToken', res.data) |
| | | } |
| | | }) |
| | | }, 3000) |
| | | // setTimeout(() => { |
| | | // refreshToken().then(res => { |
| | | // if (res.code && res.code === 200) { |
| | | // this.$store.commit('setToken', res.data) |
| | | // } |
| | | // }) |
| | | // }, 3000) |
| | | }, |
| | | mounted() { |
| | | this.$eventBus.$on('taskBack', () => { |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 24rpx; |
| | | padding-top: 10rpx; |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 34rpx; |
| | |
| | | position: fixed; |
| | | width: 100%; |
| | | left: 0; |
| | | bottom: 88rpx; |
| | | bottom: 48rpx; |
| | | image { |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | |
| | | <view class="status" v-if="item.meetingStatus == '5'"
|
| | | >å·²æ¤é</view
|
| | | >
|
| | | </view>
|
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">ä¼è®®æ¥æï¼</view> |
| | | <view class="value">{{ item.meetingDate }}</view> |
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">ä¼è®®æ¶é´ï¼</view>
|
| | | <view class="value">{{ item.meetingTime }}</view>
|
| | |
| | | <view class="label">é¢çº¦äººï¼</view>
|
| | | <view class="value">{{ item.bookingUser }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <!-- <view class="line">
|
| | | <view class="label">夿³¨ï¼</view>
|
| | | <view class="value">{{ item.remark || item.meetingRemark }}</view>
|
| | | </view>
|
| | | </view> -->
|
| | | </view>
|
| | | <view v-if="recordList.length === 0" style="text-align: center">
|
| | | <image
|
| | |
| | | data() {
|
| | | return {
|
| | | activeTab: '0',
|
| | | recordList: [],
|
| | | recordList: [], |
| | | total: 0,
|
| | | recordPage: 1,
|
| | | myPage: 1,
|
| | | myMeetingList: [],
|
| | |
| | | onLoad() {
|
| | | this.currentDate = dayja().format('YYYY-MM-DD')
|
| | | this.initData()
|
| | | this.getRoomList()
|
| | | this.getRoomList() |
| | | this.tabClick('0')
|
| | | },
|
| | | onShow() {
|
| | | // this.tabClick('0') |
| | | this.getRecordList()
|
| | | |
| | | },
|
| | | onReachBottom() {
|
| | | const { activeTab } = this
|
| | | if (activeTab == '0') {
|
| | | const { activeTab, total, myMeetingList, recordList } = this |
| | | console.log(total); |
| | | console.log(recordList);
|
| | | if (activeTab == '0') { |
| | | // if(total <= myMeetingList.length) return this.showToast('ææ æ´å¤æ°æ®')
|
| | | this.myPage = this.myPage + 1
|
| | | this.getDayMeeting()
|
| | | } else {
|
| | | } else { |
| | | // if(total <= recordList.length) return this.showToast('ææ æ´å¤æ°æ®')
|
| | | this.recordPage = this.recordPage + 1
|
| | | this.getRecordList()
|
| | | }
|
| | |
| | | queryType: 2
|
| | | }
|
| | | }).then(res => {
|
| | | this.recordList = [...this.recordList, ...res.data.records]
|
| | | this.recordList = [...this.recordList, ...res.data.records] |
| | | this.total = res.data.total
|
| | | })
|
| | | },
|
| | | getDayMeeting() {
|
| | |
| | | page: myPage,
|
| | | capacity: 10
|
| | | }).then(res => {
|
| | | this.myMeetingList = [...this.myMeetingList, ...res.data.records]
|
| | | this.myMeetingList = [...this.myMeetingList, ...res.data.records] |
| | | this.total = res.data.total
|
| | | })
|
| | | },
|
| | | }
|
| | |
| | | <view class="value"> |
| | | <!-- <text>主è¦è®¨è®ºæºè½ä¼è®®å®¤ç³»ç»éåï¼è¯·å¤§å®¶ä¸å®è¦ææ¶æ¥å¼ä¼ï¼æ¶é´å®è´µãæè°¢å¤§å®¶ï¼</text> --> |
| | | <u-textarea |
| | | autoHeight |
| | | border="none" |
| | | v-model="detail.meetingContent" |
| | | disabled |
| | |
| | | } |
| | | .personnel { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | width: 100%; |
| | | overflow-x: auto; |
| | | .per_item { |
| | | flex-shrink: 0; |
| | | display: flex; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-right: 24rpx; |
| | | margin-right: 16rpx; |
| | | width: 85rpx; |
| | | margin-bottom: 22rpx; |
| | | &:nth-of-type(7n){ |
| | | margin-right: 0; |
| | | } |
| | | .avatar { |
| | | width: 72rpx; |
| | | height: 72rpx; |
| | | margin: 0; |
| | | border-radius: 50%; |
| | | margin-bottom: 8rpx; |
| | | } |
| | | .name { |
| | | font-size: 26rpx; |
| | |
| | | <image @click="changeMem(item, index)" v-if="!item.checked" src="@/static/meeting/icon/ic_choose@2x.png"
|
| | | mode="widthFix" class="checked"></image>
|
| | | <text></text>
|
| | | </view>
|
| | | <view v-if="memberList.length == 0" class="empty"> |
| | | </view> |
| | | <view class="" style="height: 220rpx;"></view>
|
| | | <view v-if="memberList.length == 0" class="empty_wrap"> |
| | | <image src="@/static/empty.png" mode=""></image> |
| | | <text>ææ æ°æ®</text> |
| | | </view>
|
| | |
| | | },
|
| | | pagination: {
|
| | | page: 1,
|
| | | capacity: 20
|
| | | capacity: 40
|
| | | },
|
| | |
|
| | | isShowSelMem: false
|
| | |
| | | left: 0;
|
| | | width: 100%;
|
| | | box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
|
| | | padding: 30rpx 30rpx 64rpx;
|
| | | padding: 30rpx 30rpx 42rpx;
|
| | |
|
| | | .sel_mem {
|
| | | display: flex;
|
| | |
| | | align-items: center;
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding: 30rpx 0;
|
| | |
|
| | | |
| | | .avatar {
|
| | | width: 64rpx;
|
| | | height: 64rpx;
|
| | |
| | | left: 0; |
| | | bottom: 0; |
| | | background-color: #fff; |
| | | padding: 20rpx 30rpx 84rpx; |
| | | padding: 20rpx 30rpx 52rpx; |
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee; |
| | | .sel_time { |
| | | color: $uni-color-primary; |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 100rpx; |
| | | padding-top: 10rpx; |
| | | .date { |
| | | margin: 0 24rpx; |
| | | font-weight: 600; |
| | |
| | | <text>ä¼è®®å
容</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <u-textarea border="none" v-model="param.content" count :maxlength="300" placeholder="请è¾å
¥ä¼è®®å
容"
|
| | | <u-textarea border="none" autoHeight v-model="param.content" count :maxlength="300" placeholder="请è¾å
¥ä¼è®®å
容"
|
| | | placeholder-class="placeholder9" class="label" />
|
| | | </view>
|
| | | </view>
|
| | |
| | | <text>夿³¨</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <textarea v-model="param.remark" :maxlength="-1" placeholder="请è¾å
¥" placeholder-class="placeholder9"
|
| | | <u-textarea border="none" autoHeight v-model="param.remark" :maxlength="-1" placeholder="请è¾å
¥" placeholder-class="placeholder9"
|
| | | class="label" />
|
| | | </view>
|
| | | </view>
|
| | |
| | |
|
| | | .line {
|
| | | display: flex;
|
| | |
|
| | | .label {
|
| | | flex: 1;
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | align-items: center;
|
| | |
|
| | | |
| | | .service_item {
|
| | | height: 64rpx;
|
| | | line-height: 64rpx;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | padding-bottom: 100rpx;
|
| | | }
|
| | |
|
| | | .empty {
|
| | |
| | | border-radius: 36rpx;
|
| | | font-size: 30rpx;
|
| | | color: #ffffff;
|
| | | margin-top: 20rpx;
|
| | | margin-top: 40rpx;
|
| | | }
|
| | |
|
| | | .star {
|
| | |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .main_app{ |
| | | padding-top: 30rpx; |
| | | } |
| | | .modal { |
| | | padding: 40rpx 30rpx; |
| | | .modal_header { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <web-view style="width: 100vw;height: 100vh;" src="https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index"></web-view> |
| | | <!-- <web-view src="https://www.baidu.com/"></web-view> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
| | |
| | |
|
| | | <style lang="scss">
|
| | | .main_wrap {
|
| | | padding-bottom: 200rpx;
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | |
| | |
|
| | | .footer {
|
| | | width: 100%;
|
| | | padding: 0 30rpx;
|
| | | padding: 0 30rpx; |
| | | margin-top: 80rpx;
|
| | | padding-bottom: env(safe-area-inset-bottom);
|
| | | box-sizing: border-box;
|
| | | position: fixed;
|
| | | left: 0;
|
| | | bottom: 68rpx;
|
| | | // position: fixed;
|
| | | // left: 0;
|
| | | // bottom: 68rpx;
|
| | |
|
| | | .footer_btn {
|
| | | width: 100%;
|
| | |
| | | <u-popup :show="showApprModal" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="showApprModal = false">
|
| | | <view class="appr_modal">
|
| | | <view class="title">{{ param.status == 2 ? "åæ" : "æç»" }}</view>
|
| | | <view v-if="param.status == 2" class="line" @click="isShowDrive = true">
|
| | | <text v-if="param.driverName">{{ param.driverName }}</text>
|
| | | <view v-if="param.status == 2" class="line" @click="openModal">
|
| | | <text :class="{placeholder9: info.approveDateVO.driverParam == 0}" v-if="param.driverName">{{ param.driverName }}</text>
|
| | | <text v-else class="placeholder9">æ´¾è½¦å¸æº</text>
|
| | | <u-icon class="ml12" name="arrow-right" color="#999999" />
|
| | | <u-icon v-if="info.approveDateVO.driverParam == 1" class="ml12" name="arrow-right" color="#999999" />
|
| | | </view>
|
| | | <textarea v-model="param.checkInfo" :placeholder="
|
| | | param.status == 2 ? 'åæè¯´æï¼éå¿
å¡«' : 'æç»è¯´æï¼å¿
å¡«'
|
| | |
| | | })
|
| | | }
|
| | | })
|
| | | }, |
| | | openModal() { |
| | | if(this.info.approveDateVO.driverParam == 0) return |
| | | this.isShowDrive = true |
| | | |
| | | },
|
| | | onSubBack() {
|
| | | carUseBookBack({
|
| | |
| | | .app_header {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | margin: 0 -15rpx;
|
| | |
|
| | | margin: 0 -15rpx; |
| | | padding-top: 10rpx;
|
| | | .item {
|
| | | width: 330rpx;
|
| | | height: 72rpx;
|
| | |
| | | }
|
| | |
|
| | | .main_footer {
|
| | | position: absolute;
|
| | | position: fixed;
|
| | | width: 100%;
|
| | | left: 0;
|
| | | bottom: 0;
|
| | | padding: 20rpx 30rpx 84rpx;
|
| | | padding: 20rpx 30rpx 52rpx;
|
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee;
|
| | |
|
| | | .sel_time {
|
| | |
| | | left: 0; |
| | | background-color: #fff; |
| | | bottom: 0; |
| | | padding: 20rpx 30rpx 84rpx; |
| | | padding: 20rpx 30rpx 62rpx; |
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee; |
| | | |
| | | .df_sb{ |
| | |
| | | padding: 0 30rpx; |
| | | padding-bottom: env(safe-area-inset-bottom); |
| | | box-sizing: border-box; |
| | | position: fixed; |
| | | left: 0; |
| | | bottom: 68rpx; |
| | | |
| | | margin-top: 80rpx; |
| | | .footer_btn { |
| | | width: 100%; |
| | | height: 88rpx; |
| | |
| | | <template> |
| | | <view class="login"> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" /> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" /> |
| | | <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" /> |
| | | <view class="login_title">宿³°ç©æµæºæ
§ååº</view> |
| | | <view class="login_list"> |
| | |
| | | <style lang="scss" scoped> |
| | | .login { |
| | | width: 100%; |
| | | height: 100vh; |
| | | display: flex; |
| | | padding-top: 130rpx; |
| | | box-sizing: border-box; |
| | |
| | | height: 180rpx; |
| | | } |
| | | .login_bg { |
| | | position: absolute; |
| | | top: 0; |
| | | width: 750rpx; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | z-index: -1; |
| | | } |
| | | .login_title { |
| | | font-size: 44rpx; |
| | |
| | | <template> |
| | | <view class="login"> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" /> |
| | | <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" /> |
| | | <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" /> |
| | | <view class="login_title">宿³°ç©æµæºæ
§ååº</view> |
| | | <view class="login_list"> |
| | | <view class="login_list_item"> |
| | | <image src="@/static/login_ic_phone@2x.png" mode="widthFix" /> |
| | | <input v-model="form.username" maxlength="18" placeholder="è´¦å·" /> |
| | | <input v-model="form.username" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="è´¦å·" /> |
| | | </view> |
| | | <view class="login_list_item"> |
| | | <image src="@/static/login_ic_password@2x.png" mode="widthFix" /> |
| | | <input v-model="form.password" type="password" placeholder="å¯ç " /> |
| | | <input v-model="form.password" @focus="showKeyboard = true" @blur="showKeyboard = false" type="password" placeholder="å¯ç " /> |
| | | </view> |
| | | <view class="login_list_item"> |
| | | <image src="@/static/ic_captcha.png" mode="widthFix"></image> |
| | | <input v-model="form.code" placeholder="éªè¯ç " type="text" /> |
| | | <input v-model="form.code" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="éªè¯ç " type="text" /> |
| | | <image |
| | | @click="initCaptcha" |
| | | :src="captcha.image" |
| | |
| | | > |
| | | </view> |
| | | |
| | | <view class="deal_wrap"> |
| | | <view class="deal_wrap" v-show="!showKeyboard"> |
| | | <image |
| | | @click="changeFalg" |
| | | v-if="ProtocolFlag" |
| | |
| | | mode="center" |
| | | > |
| | | <view class="modal"> |
| | | <view v-html="htmlText"></view> |
| | | <!-- <view v-html="htmlText"></view> --> |
| | | <mp-html :content="htmlText" /> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | |
| | | password: '', |
| | | code: '' |
| | | }, |
| | | showKeyboard: false, |
| | | isShowProtocol: false, |
| | | ProtocolFlag: false, |
| | | captcha: {}, |
| | |
| | | loginPost({ |
| | | ...form, |
| | | uuid: this.captcha.uuid, |
| | | openId: this.$store.state.openId |
| | | openid: this.$store.state.openId |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.setToken(res.data) |
| | |
| | | <style lang="scss" scoped> |
| | | .login { |
| | | width: 100%; |
| | | height: 100vh; |
| | | display: flex; |
| | | padding-top: 130rpx; |
| | | box-sizing: border-box; |
| | |
| | | height: 180rpx; |
| | | } |
| | | .login_bg { |
| | | position: absolute; |
| | | top: 0; |
| | | width: 750rpx; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | z-index: -1; |
| | | } |
| | | .login_title { |
| | | font-size: 44rpx; |
| | |
| | | } |
| | | } |
| | | .deal_wrap { |
| | | position: absolute; |
| | | position: fixed; |
| | | width: 100%; |
| | | left: 0; |
| | | text-align: center; |
| | | bottom: 88rpx; |
| | | bottom: 48rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | |
| | | } |
| | | .modal { |
| | | width: 690rpx; |
| | | min-height: 920rpx; |
| | | min-height: 820rpx; |
| | | max-height: 720px; |
| | | border-radius: 24rpx; |
| | | padding: 32rpx; |
| | | overflow: auto; |
| | | } |
| | | </style> |
| | |
| | | <view class="cell"> |
| | | <view class="title"><b>*</b>å§å</view> |
| | | <view class="content"> |
| | | <input class="input" placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="请è¾å
¥æ¨ççå®å§å" /> |
| | | <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="请è¾å
¥æ¨ççå®å§å" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell"> |
| | | <view class="title"><b>*</b>ææºå·</view> |
| | | <view class="content"> |
| | | <input type="number" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="请è¾å
¥æ¨çææºå·" /> |
| | | <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="请è¾å
¥æ¨çææºå·" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell"> |
| | |
| | | <view class="cell"> |
| | | <view class="title"><b>*</b>è¯ä»¶å·ç </view> |
| | | <view class="content"> |
| | | <input class="input" maxlength="18" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="请è¾å
¥æ¨çè¯ä»¶å·ç " /> |
| | | <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="请è¾å
¥æ¨çè¯ä»¶å·ç " /> |
| | | </view> |
| | | </view> |
| | | <view class="empty"></view> |
| | | <view class="cell"> |
| | | <view class="title"><b>*</b>å
¬å¸åç§°</view> |
| | | <view class="content"> |
| | | <input class="input" maxlength="50" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="请è¾å
¥æ¨çå
¬å¸åç§°" /> |
| | | <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="请è¾å
¥æ¨çå
¬å¸åç§°" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell"> |
| | |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | <view class="footer-box"> |
| | | <view v-if="!showKeyboard" class="footer-box"> |
| | | <view class="submit-button" @click="submit">ä¸ä¸æ¥</view> |
| | | </view> |
| | | <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> --> |
| | |
| | | return { |
| | | photoSrc: "", |
| | | show: false, |
| | | showKeyboard: false, |
| | | visit: '', |
| | | type: '', |
| | | columns: [[{name: '身份è¯', id: 0}, {name: '港澳è¯ä»¶', id: 1},{name: 'æ¤ç
§', id: 2}]], |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="zw"></view> |
| | | <view class="footer"> |
| | | <view class="footer_btn" @click="onSubmit">æäº¤</view> |
| | | </view> |
| | |
| | | padding: 0 30rpx; |
| | | padding-bottom: env(safe-area-inset-bottom); |
| | | box-sizing: border-box; |
| | | position: fixed; |
| | | left: 0; |
| | | bottom: 30rpx; |
| | | margin-top: 80rpx; |
| | | // position: fixed; |
| | | // left: 0; |
| | | // bottom: 30rpx; |
| | | |
| | | .footer_btn { |
| | | width: 100%; |
| | |
| | | <template> |
| | | <view class="box"> |
| | | <view v-html="info"></view> |
| | | <!-- <view v-html="info"></view> --> |
| | | <mp-html :content="info" /> |
| | | </view> |
| | | </template> |
| | | <script> |
| | |
| | | <meta charset="UTF-8"> |
| | | <title>éå®å</title> |
| | | <script> |
| | | // wxac2a80c2144c4ee0 |
| | | var p = location.href.split("?") |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + 'code=123123' |
| | | window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + p[1] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>éå®å</title> |
| | | <script> |
| | | // wxac2a80c2144c4ee0 |
| | | var p = location.href.split("?") |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + 'code=123123' |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + p[1] |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/staff/meetingDetail?' + p[1] |
| | | window.location.href = 'http://192.168.0.173/h5/#/pages/login/login?' + p[1] |
| | | </script> |
| | | </head> |
| | | <body> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | const store = new Vuex.Store({ |
| | | |
| | | state: { |
| | | // openId: openId || '061kuG0006hxcS13TT200w9VIp4kuG09', |
| | | openId: openId || '123123', |
| | | openId: openId || '', |
| | | // openId: openId || '123123', |
| | | member: member || null, |
| | | statusbarHeight: statusbarHeight || '0', |
| | | navHeight: navHeight || '0', |
| | |
| | | |
| | | export const baseUrl = 'gateway_interface/' |
| | | export const baseUrl = 'zhyq_interface/' |
| | | // export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' |
| | | // export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' |
| | | |
| | | export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` |
| | | export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch` |
| | |
| | | method: options.method || 'GET', |
| | | header: options.header || { |
| | | // æ ¹æ®å®é
æ¥å£è®¾è®¡ key å token æè
authorization |
| | | dm_user_token: token, |
| | | dm_user_token: token || '', |
| | | "content-type": 'application/json' |
| | | }, |
| | | success: (res) => { |
| | |
| | | } |
| | | |
| | | const dataList1 = ref([]) |
| | | // const getData1 = () => { |
| | | // getFightingDeAlarm().then(res => { |
| | | // dataList1.value = res.data |
| | | // loopFn1() |
| | | // }) |
| | | // } |
| | | const policeColors = ['#01D9FE', '#FE5501', '#0193FE', '#28F0C4'] |
| | | const dataList2 = ref([]) |
| | | const getData2 = () => { |
| | |
| | | const data3 = dataList3.value.map(i => i.liftNum) |
| | | const data4 = dataList3.value.map(i => i.errNum) |
| | | const months = dataList3.value.map(i => { |
| | | console.log('i.startDate', i.startDate.substring(5, 7)) |
| | | return i.startDate.substring(5, 7) + 'æ' |
| | | } |
| | | ) |
| | |
| | | getFightingcenterData().then(res => { |
| | | dataList4.value = res.data || {} |
| | | dataList1.value = res.data.deviceTypeList |
| | | loopFn1() |
| | | }) |
| | | } |
| | | const dataList5 = ref({}) // ç»´ä¿ |
| | |
| | | } |
| | | const dataList7 = ref([]) |
| | | const getData7 = () => { |
| | | |
| | | getFighalarmDataList().then(res => { |
| | | dataList7.value = res.data || [] |
| | | dataList7.value = dataList7.value.map(item => { |
| | |
| | | return item |
| | | }) |
| | | }) |
| | | // dataList7.value = [ |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // { name: 'æ¶é²åè¦', addr: 'ååºé¨å£', time: '2022-02-02' }, |
| | | // ] |
| | | loopFn2() |
| | | } |
| | | |
| | | const autoplayFlag = (list = [], leng = 4, time = 2000) => { |
| | |
| | | |
| | | }, 60 * 60 * 1000) |
| | | |
| | | |
| | | initWatergage() |
| | | initLiquidlevel() |
| | | |
| | | // setInterval(() => { |
| | | // getData4() |
| | | // }, 1000 * 60) |
| | | // setInterval(() => { |
| | | // getData1() |
| | | // getData2() |
| | | // getData3() |
| | | // getData5() |
| | | // getData6() |
| | | // }, 1000 * 60 * 60) |
| | | setTimeout(() => { |
| | | loopFn1() |
| | | loopFn2() |
| | | }, 12000) |
| | | |
| | | }) |
| | | |
| | | |
| | |
| | | item.taskDate = item.taskDate.slice(5, 16) |
| | | return item |
| | | }) |
| | | loopFn1() |
| | | }) |
| | | } |
| | | |
| | |
| | | initEchart3() |
| | | // initEchart4() |
| | | // initEchart5() |
| | | window.addEventListener('click', () => { |
| | | |
| | | }) |
| | | setTimeout(() => { |
| | | loopFn1() |
| | | }, 12000) |
| | | }) |
| | | |
| | | |
| | |
| | | wlplatformJobList().then(res => { |
| | | const result = res.data |
| | | dataList3.value = result |
| | | loopFn1() |
| | | }) |
| | | } |
| | | const data4 = ref({}) |
| | |
| | | wlstockList().then(res => { |
| | | const result = res.data |
| | | dataList6.value = result |
| | | loopFn2() |
| | | }) |
| | | } |
| | | |
| | |
| | | getData6() |
| | | |
| | | initMap() |
| | | |
| | | setTimeout(() => { |
| | | loopFn1() |
| | | loopFn2() |
| | | }, 12000) |
| | | }) |
| | | |
| | | |
| | |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4370f2' |
| | | }, { |
| | | offset: 1, |
| | | color: '#61d3f9' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4679f6' |
| | | }, { |
| | | offset: 1, |
| | | color: '#4674f6' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4370f2' |
| | | }, { |
| | | offset: 1, |
| | | color: '#61d3f9' |
| | | }])] |
| | | ] |
| | | const data = [] |
| | | data.push({ name: 'å¾
访é®', value: data4.value.waitVisitNum, rate: data4.value.waitVisitNum / data4.value.total }) |
| | | data.push({ name: 'å·²ç»è®°', value: data4.value.registerVisitNum, rate: data4.value.registerVisitNum / data4.value.total }) |
| | | data.push({ name: '已离å¼', value: data4.value.levelNum, rate: data4.value.levelNum / data4.value.total }) |
| | | data.push({ name: 'æ»ç', value: data4.value.retentionNum, rate: data4.value.retentionNum / data4.value.total }) |
| | | data.push({ name: 'å¾
访é®', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'å·²ç»è®°', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: '已离å¼', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(1) }) |
| | | data.push({ name: 'æ»ç', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(1) }) |
| | | const option = { |
| | | color: colors, |
| | | tooltip: { |
| | |
| | | label: { |
| | | show: true, |
| | | position: 'outside', |
| | | formatter: '{a|{b}} {a|{d}%}', |
| | | formatter: (params) => { |
| | | const index = params.dataIndex; |
| | | return `{color${index}|${params.data.name} ${params.data.rate}%}` |
| | | // return `<div>${params.data.name}</div>` |
| | | }, |
| | | rich: { |
| | | a: { |
| | | color: '#869CC9', |
| | | fontSize: 13 |
| | | }, |
| | | color0: { color: 'orange', fontSize: 14 }, |
| | | color1: { color: '#869CC9', fontSize: 13 }, |
| | | color2: { color: '#869CC9', fontSize: 13 }, |
| | | color3: { color: '#869CC9', fontSize: 13 } |
| | | } |
| | | }, |
| | | labelLine: { |
| | |
| | | dataListT2.value = temp |
| | | } |
| | | initEchart2() |
| | | loopFn2() |
| | | }) |
| | | } |
| | | |
| | |
| | | return i |
| | | }) |
| | | initEchart3() |
| | | loopFn3() |
| | | }) |
| | | |
| | | // getVisitRetentionData().then(res => { |
| | | // const result = res.data || [] |
| | | // dataList3.value = result.map(i => { |
| | | // if (i.timeOutMinute) { |
| | | // i.timeOutMinute = Math.abs(i.timeOutMinute) |
| | | // } |
| | | // if (i.timeOutMinute > 60 * 24) { |
| | | // i.timeOutMinuteT = dayjs.duration(i.timeOutMinute * 60 * 1000).format('D天Hæ¶må') |
| | | // } else if (i.timeOutMinute > 60) { |
| | | // i.timeOutMinuteT = dayjs.duration(i.timeOutMinute * 60 * 1000).format('Hæ¶må') |
| | | // } else { |
| | | // i.timeOutMinuteT = item.timeOutMinuteT + 'å' |
| | | // } |
| | | |
| | | // return i |
| | | // }) |
| | | // loopFn3() |
| | | // }) |
| | | } |
| | | // const data4 = ref({}) |
| | | // const getData4 = () => { |
| | | // afgetVisitData().then(res => { |
| | | // const result = res.data || {} |
| | | // data4.value = result |
| | | // initEchart3() |
| | | // }) |
| | | // } |
| | | |
| | | const warningTab = ref('0') |
| | | const warningNum = ref(0) |
| | |
| | | warningList.value.forEach((item, i) => { |
| | | // console.log(i); |
| | | if (i == 0 || i % 2 == 0) { |
| | | console.log(i) |
| | | temp.push(item) |
| | | } else { |
| | | temp[temp.length - 1].addr0 = item.addr |
| | |
| | | }) |
| | | warningList.value = temp |
| | | // console.log('temp', warningList.value); |
| | | loopFn1() |
| | | }) |
| | | } |
| | | const tasClick = (val) => { |
| | |
| | | getData3() |
| | | getData5() |
| | | getWarning() |
| | | |
| | | |
| | | setInterval(() => { |
| | | getData1() |
| | | getData2() |
| | |
| | | setInterval(() => { |
| | | getData5() |
| | | }, 1000 * 60 * 60) |
| | | |
| | | setTimeout(() => { |
| | | loopFn1() |
| | | loopFn2() |
| | | loopFn3() |
| | | }, 12000) |
| | | |
| | | }) |
| | | |
| | |
| | | .menu_wrap { |
| | | margin-top: 15px; |
| | | max-height: 440px; |
| | | overflow: hidden; |
| | | overflow: auto; |
| | | |
| | | .menu { |
| | | .menu_name { |
| | |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4370f2' |
| | | }, { |
| | | offset: 1, |
| | | color: '#61d3f9' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4679f6' |
| | | }, { |
| | | offset: 1, |
| | | color: '#4674f6' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4370f2' |
| | | }, { |
| | | offset: 1, |
| | | color: '#61d3f9' |
| | | }])] |
| | | ] |
| | | const temp = [] |
| | | temp.push({ name: 'ç¾å°æ°', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100.0' : 0 }) |
| | | temp.push({ name: 'å·²å«å·', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) |
| | |
| | | show: true, |
| | | position: 'outside', |
| | | formatter: (params) => { |
| | | return `{a|${params.data.name} ${params.data.rate}%}` |
| | | const index = params.dataIndex; |
| | | return `{color${index}|${params.data.name} ${params.data.rate}%}` |
| | | // return `<div>${params.data.name}</div>` |
| | | }, |
| | | rich: { |
| | | a: { |
| | | color: '#869CC9', |
| | | fontSize: 13 |
| | | }, |
| | | color0: { color: 'orange', fontSize: 14 }, |
| | | color1: { color: '#869CC9', fontSize: 13 }, |
| | | color2: { color: '#869CC9', fontSize: 13 }, |
| | | color3: { color: '#869CC9', fontSize: 13 } |
| | | } |
| | | }, |
| | | labelLine: { |
| | |
| | | item.rate = ((item.workTotalTime / count) * 30).toFixed(0) |
| | | return item |
| | | }) |
| | | loopFn2() |
| | | }) |
| | | } |
| | | |
| | |
| | | i.finishTime = dayjs(i.finishTime).format('HH:mm') |
| | | return i |
| | | }) |
| | | loopFn5() |
| | | }) |
| | | } |
| | | |
| | |
| | | item.haveTime = dayjs.duration(new Date().getTime() - new Date(item.createDate).getTime()).format('HHå°æ¶mmåé') |
| | | return item |
| | | }) |
| | | loopFn7() |
| | | }) |
| | | } |
| | | |
| | |
| | | getData6() |
| | | getData7() |
| | | }, 1000 * 60) |
| | | // initEchart1() |
| | | // initEchart2() |
| | | // initEchart3() |
| | | |
| | | setTimeout(() => { |
| | | loopFn2() |
| | | loopFn5() |
| | | loopFn7() |
| | | }, 12000) |
| | | }) |
| | | |
| | | |