master
王文杰 8 months ago
parent bd286aa447
commit 97f81d8019

@ -234,6 +234,18 @@ export function login(data) {
} }
}) })
} }
// 微信手机号登录
export function postLoginWxMinAPI(data) {
return request({
url: '/api/oauth/LoginWx',
method: 'post',
data,
header: {
'Content-Type': 'application/x-www-form-urlencoded',
}
})
}
// 账号注销 // 账号注销
export function accountCancel(token) { export function accountCancel(token) {
return request({ return request({

@ -1,213 +1,213 @@
{ {
"name": "jnpf java版", "name" : "西夏聚宝平台",
"appid": "__UNI__663111E", "appid" : "__UNI__663111E",
"description": "专注信息化平台、软件开发、app开发", "description" : "专注信息化平台、软件开发、app开发",
"versionName": "3.4.76", "versionName" : "3.4.76",
"versionCode": 139, "versionCode" : 139,
"transformPx": false, "transformPx" : false,
"app-plus": { "app-plus" : {
"compatible": { "compatible" : {
"ignoreVersion": true "ignoreVersion" : true
}, },
/* 5+App */ /* 5+App */
"usingComponents": true, "usingComponents" : true,
"splashscreen": { "splashscreen" : {
"alwaysShowBeforeRender": false, "alwaysShowBeforeRender" : false,
"waiting": true, "waiting" : true,
"autoclose": true, "autoclose" : true,
"delay": 0 "delay" : 0
}, },
"modules": { "modules" : {
"Maps": {}, "Maps" : {},
"OAuth": {}, "OAuth" : {},
"Speech": {}, "Speech" : {},
"Barcode": {}, "Barcode" : {},
"Camera": {}, "Camera" : {},
"Push": {} "Push" : {}
}, },
/* */ /* */
"distribute": { "distribute" : {
/* */ /* */
"android": { "android" : {
/* android */ /* android */
"permissions": [ "permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>", "<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>", "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
], ],
"schemes": "jnpf", "schemes" : "jnpf",
"minSdkVersion": 22, "minSdkVersion" : 22,
"targetSdkVersion": 26, "targetSdkVersion" : 26,
"abiFilters": ["armeabi-v7a", "arm64-v8a"] "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
}, },
"ios": { "ios" : {
"privacyDescription": { "privacyDescription" : {
"NSPhotoLibraryUsageDescription": "以便于修改头像等功能图片上传", "NSPhotoLibraryUsageDescription" : "以便于修改头像等功能图片上传",
"NSPhotoLibraryAddUsageDescription": "以便于修改头像等功能图片上传", "NSPhotoLibraryAddUsageDescription" : "以便于修改头像等功能图片上传",
"NSCameraUsageDescription": "以便于修改头像等功能图片上传", "NSCameraUsageDescription" : "以便于修改头像等功能图片上传",
"NSLocationAlwaysAndWhenInUseUsageDescription": "以便于定位当前位置等功能", "NSLocationAlwaysAndWhenInUseUsageDescription" : "以便于定位当前位置等功能",
"NSLocationAlwaysUsageDescription": "以便于定位当前位置等功能", "NSLocationAlwaysUsageDescription" : "以便于定位当前位置等功能",
"NSLocationWhenInUseUsageDescription": "以便于定位当前位置等功能", "NSLocationWhenInUseUsageDescription" : "以便于定位当前位置等功能",
"NSMicrophoneUsageDescription": "以便于使用语音、录制音频等功能", "NSMicrophoneUsageDescription" : "以便于使用语音、录制音频等功能",
"NSCalendarsUsageDescription": "以便于更好的办公", "NSCalendarsUsageDescription" : "以便于更好的办公",
"NSContactsUsageDescription": "以便于更好的沟通", "NSContactsUsageDescription" : "以便于更好的沟通",
"NSSpeechRecognitionUsageDescription": "", "NSSpeechRecognitionUsageDescription" : "",
"NSAppleMusicUsageDescription": "以便于修改头像等功能媒体资料上传", "NSAppleMusicUsageDescription" : "以便于修改头像等功能媒体资料上传",
"NSFaceIDUsageDescription": "以便于使用快捷登录等功能" "NSFaceIDUsageDescription" : "以便于使用快捷登录等功能"
}, },
"idfa": false, "idfa" : false,
"urltypes": "jnpf", "urltypes" : "jnpf",
"capabilities": { "capabilities" : {
"entitlements": { "entitlements" : {
"com.apple.developer.associated-domains": ["applinks:unlink.java.jnpfsoft.com"] "com.apple.developer.associated-domains" : [ "applinks:unlink.java.jnpfsoft.com" ]
} }
} }
}, },
/* ios */ /* ios */
"sdkConfigs": { "sdkConfigs" : {
"payment": {}, "payment" : {},
"maps": { "maps" : {
"baidu": { "baidu" : {
"appkey_ios": "CA6mx9NZ9DhTYxjVKB7Bkgr6KxpzMfO4", "appkey_ios" : "CA6mx9NZ9DhTYxjVKB7Bkgr6KxpzMfO4",
"appkey_android": "1vlnkDFaZz4GxAHMMk6kwGRcZr1OfBau" "appkey_android" : "1vlnkDFaZz4GxAHMMk6kwGRcZr1OfBau"
} }
}, },
"ad": {}, "ad" : {},
"oauth": { "oauth" : {
"weixin": { "weixin" : {
"appid": "wx95396c4c5f44c077", "appid" : "wx95396c4c5f44c077",
"appsecret": "c128e69c3cabe00c468fb177e393b6a0", "appsecret" : "c128e69c3cabe00c468fb177e393b6a0",
"UniversalLinks": "https://unlink.java.jnpfsoft.com/uni-universallinks/__UNI__1A48209/" "UniversalLinks" : "https://unlink.java.jnpfsoft.com/uni-universallinks/__UNI__1A48209/"
} }
}, },
"speech": {}, "speech" : {},
"push": { "push" : {
"unipush": {} "unipush" : {}
} }
}, },
"icons": { "icons" : {
"android": { "android" : {
"hdpi": "unpackage/res/icons/72x72.png", "hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi": "unpackage/res/icons/96x96.png", "xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi": "unpackage/res/icons/144x144.png", "xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi": "unpackage/res/icons/192x192.png" "xxxhdpi" : "unpackage/res/icons/192x192.png"
}, },
"ios": { "ios" : {
"appstore": "unpackage/res/icons/1024x1024.png", "appstore" : "unpackage/res/icons/1024x1024.png",
"ipad": { "ipad" : {
"app": "unpackage/res/icons/76x76.png", "app" : "unpackage/res/icons/76x76.png",
"app@2x": "unpackage/res/icons/152x152.png", "app@2x" : "unpackage/res/icons/152x152.png",
"notification": "unpackage/res/icons/20x20.png", "notification" : "unpackage/res/icons/20x20.png",
"notification@2x": "unpackage/res/icons/40x40.png", "notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x": "unpackage/res/icons/167x167.png", "proapp@2x" : "unpackage/res/icons/167x167.png",
"settings": "unpackage/res/icons/29x29.png", "settings" : "unpackage/res/icons/29x29.png",
"settings@2x": "unpackage/res/icons/58x58.png", "settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight": "unpackage/res/icons/40x40.png", "spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x": "unpackage/res/icons/80x80.png" "spotlight@2x" : "unpackage/res/icons/80x80.png"
}, },
"iphone": { "iphone" : {
"app@2x": "unpackage/res/icons/120x120.png", "app@2x" : "unpackage/res/icons/120x120.png",
"app@3x": "unpackage/res/icons/180x180.png", "app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x": "unpackage/res/icons/40x40.png", "notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x": "unpackage/res/icons/60x60.png", "notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x": "unpackage/res/icons/58x58.png", "settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x": "unpackage/res/icons/87x87.png", "settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x": "unpackage/res/icons/80x80.png", "spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x": "unpackage/res/icons/120x120.png" "spotlight@3x" : "unpackage/res/icons/120x120.png"
} }
} }
}, },
"splashscreen": { "splashscreen" : {
"android": { "android" : {
"hdpi": "unpackage/res/startup/startup.png", "hdpi" : "unpackage/res/startup/startup.png",
"xhdpi": "unpackage/res/startup/startup.png", "xhdpi" : "unpackage/res/startup/startup.png",
"xxhdpi": "unpackage/res/startup/startup.png" "xxhdpi" : "unpackage/res/startup/startup.png"
}, },
"ios": { "ios" : {
"iphone": { "iphone" : {
"portrait-896h@3x": "unpackage/res/startup/startup.png", "portrait-896h@3x" : "unpackage/res/startup/startup.png",
"landscape-896h@3x": "", "landscape-896h@3x" : "",
"portrait-896h@2x": "unpackage/res/startup/startup.png", "portrait-896h@2x" : "unpackage/res/startup/startup.png",
"landscape-896h@2x": "", "landscape-896h@2x" : "",
"retina35": "unpackage/res/startup/startup.png", "retina35" : "unpackage/res/startup/startup.png",
"retina40l": "", "retina40l" : "",
"retina40": "unpackage/res/startup/startup.png", "retina40" : "unpackage/res/startup/startup.png",
"retina47l": "", "retina47l" : "",
"retina47": "unpackage/res/startup/startup.png", "retina47" : "unpackage/res/startup/startup.png",
"iphonex": "unpackage/res/startup/startup.png", "iphonex" : "unpackage/res/startup/startup.png",
"iphonexl": "", "iphonexl" : "",
"retina55l": "", "retina55l" : "",
"retina55": "unpackage/res/startup/startup.png" "retina55" : "unpackage/res/startup/startup.png"
} }
}, },
"androidStyle": "default" "androidStyle" : "default"
} }
}, },
"nativePlugins": {} "nativePlugins" : {}
}, },
/* SDK */ /* SDK */
"quickapp": {}, "quickapp" : {},
/* */ /* */
"mp-weixin": { "mp-weixin" : {
/* */ /* */
"appid": "wx8f5cb90d8ff960a3", "appid" : "wxf82bcc798891a29d",
"setting": { "setting" : {
"urlCheck": true, "urlCheck" : true,
"es6": true, "es6" : true,
"postcss": true, "postcss" : true,
"minified": true "minified" : true
}, },
"usingComponents": true, "usingComponents" : true,
"permission": { "permission" : {
"scope.userLocation": { "scope.userLocation" : {
"desc": "你的位置信息将用于小程序位置接口的效果展示" "desc" : "你的位置信息将用于小程序位置接口的效果展示"
} }
}, },
// "uniStatistics" : { // "uniStatistics" : {
// "enable" : false // "enable" : false
// }, // },
"optimization": { "optimization" : {
"subPackages": true "subPackages" : true
} }
}, },
"h5": { "h5" : {
"sdkConfigs": { "sdkConfigs" : {
"maps": {} "maps" : {}
}, },
"title": "jnpf java版", "title" : "西夏聚宝平台",
"template": "template.h5.html", "template" : "template.h5.html",
"domain": "https://app.java.jnpfsoft.com", "domain" : "https://app.java.jnpfsoft.com",
"router": { "router" : {
"mode": "history" "mode" : "history"
}, },
"devServer": { "devServer" : {
"disableHostCheck": true, "disableHostCheck" : true,
"proxy": { "proxy" : {
"/api": { "/api" : {
"target": "http://192.168.20.23:8080", "target" : "http://192.168.20.23:8080",
"changeOrigin": true, "changeOrigin" : true,
"secure": false "secure" : false
} }
} }
} }
}, },
"_spaceID": "8e84eea8-6922-4033-8e86-67ad7442e692" "_spaceID" : "8e84eea8-6922-4033-8e86-67ad7442e692"
} }

@ -1,5 +1,5 @@
{ {
"name": "jnpf-app-next", "name": "",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "main.js", "main": "main.js",

@ -54,14 +54,14 @@
{ {
"path": "pages/index/portal", "path": "pages/index/portal",
"style": { "style": {
"navigationStyle": "custom", // // "navigationStyle": "custom", //
"navigationBarTextStyle": "black" // // "navigationBarTextStyle": "black" //
} }
}, },
{ {
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {
"navigationBarTitleText": "JNPF快速开发平台" "navigationBarTitleText": "西夏聚宝平台"
} }
}, },
// #ifndef MP // #ifndef MP
@ -115,7 +115,7 @@
{ {
"path": "pages/index/workFlow", "path": "pages/index/workFlow",
"style": { "style": {
"navigationBarTitleText": "JNPF快速开发平台" "navigationBarTitleText": "西夏聚宝平台"
} }
}, },
{ {
@ -128,13 +128,13 @@
{ {
"path": "pages/index/contacts", "path": "pages/index/contacts",
"style": { "style": {
"navigationBarTitleText": "JNPF快速开发平台" "navigationBarTitleText": "西夏聚宝平台"
} }
}, },
{ {
"path": "pages/index/my", "path": "pages/index/my",
"style": { "style": {
"navigationBarTitleText": "JNPF快速开发平台", "navigationBarTitleText": "西夏聚宝平台",
"app-plus": { "app-plus": {
"bounce": "none" "bounce": "none"
} }
@ -1041,7 +1041,7 @@
] ]
}, },
"globalStyle": { "globalStyle": {
"navigationBarTitleText": "JNPF快速开发平台", "navigationBarTitleText": "西夏聚宝平台",
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"backgroundColor": "#f0f2f6", "backgroundColor": "#f0f2f6",

@ -14,7 +14,7 @@
<view class="u-m-t-20"> <view class="u-m-t-20">
<view class="" style="background-color: #fff;"> <view class="" style="background-color: #fff;">
<u-cell-group style="padding: 0 20rpx;" :border="false"> <u-cell-group style="padding: 0 20rpx;" :border="false">
<u-cell-item title="我的组织" @click="openPage('/pages/my/business/index','Organize')" <!-- <u-cell-item title="我的组织" @click="openPage('/pages/my/business/index','Organize')"
:title-style="titleStyle"> :title-style="titleStyle">
<text class="icon-ym icon-ym-zuzhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" /> <text class="icon-ym icon-ym-zuzhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" />
</u-cell-item> </u-cell-item>
@ -27,23 +27,29 @@
:title-style="titleStyle"> :title-style="titleStyle">
<text class="icon-ym icon-ym-generator-section u-m-r-16 u-font-36" slot="icon" <text class="icon-ym icon-ym-generator-section u-m-r-16 u-font-36" slot="icon"
style="color: #303133;" /> style="color: #303133;" />
</u-cell-item> -->
<u-cell-item title="已完成订单" @click="openPage('/pages/my/business/index','Organize')"
:title-style="titleStyle">
<text class="icon-ym icon-ym-zuzhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" />
</u-cell-item> </u-cell-item>
<!-- #ifndef H5 --> <u-cell-item title="联系我们" @click="openPage('/pages/my/business/index','Position')"
<u-cell-item title="扫一扫" @click="scanCode()" :title-style="titleStyle"> :title-style="titleStyle">
<text class="icon-ym icon-ym-scanCode1 u-m-r-16 u-font-36" <text class="icon-ym icon-ym-position1 u-m-r-16 u-font-36" slot="icon"
style="font-weight: bold;color: #303133;" slot="icon" /> style="color: #303133;" />
</u-cell-item> </u-cell-item>
<!-- #endif --> <u-cell-item title="自动接单" @click="openPage('/pages/my/subordinate/index')"
<!-- #ifdef APP-PLUS -->
<u-cell-item title="账号安全" @click="openPage('/pages/my/accountSecurity/index')"
:title-style="titleStyle"> :title-style="titleStyle">
<text class="icon-ym icon-ym-zhanghao u-m-r-16 u-font-36" slot="icon" style="color: #303133;" /> <text class="icon-ym icon-ym-generator-section u-m-r-16 u-font-36" slot="icon"
style="color: #303133;" />
</u-cell-item> </u-cell-item>
<!-- #endif -->
<u-cell-item title="设置" @click="openPage('/pages/my/settings/index')" :title-style="titleStyle" <u-cell-item title="设置" @click="openPage('/pages/my/settings/index')" :title-style="titleStyle"
:border-bottom="false"> :border-bottom="false">
<text class="icon-ym icon-ym-shezhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" /> <text class="icon-ym icon-ym-shezhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" />
</u-cell-item> </u-cell-item>
<u-cell-item title="消息列表" @click="openPage('/pages/my/settings/index')" :title-style="titleStyle"
:border-bottom="false">
<text class="icon-ym icon-ym-shezhi u-m-r-16 u-font-36" slot="icon" style="color: #303133;" />
</u-cell-item>
</u-cell-group> </u-cell-group>
</view> </view>
</view> </view>

@ -1,131 +1,47 @@
<template> <template>
<view class="menhu-v"> <view class="reportLog-v">
<!-- #ifndef MP --> <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" :sticky="true"
<uni-nav-bar class='nav' :fixed="true" :statusBar="true" :border="false" :right-icon="rightIcon" :down="downOption" :up="upOption" :bottombar="false">
@clickRight="scan"> <view class="search-box_sticky">
<block slot="default"> <u-tabs :list="tabsList" :current="current" @change="change" :is-scroll='false'>
<view class="nav-left" @click="showSelectBox"> </u-tabs>
<view class="nav-left-text"> <!-- <view class="search-box">
{{portalTitle}} <u-search placeholder="请输入关键词搜索" v-model="keyword" height="72" :show-action="false" @change="search"
</view> bg-color="#f0f2f6" shape="square">
<uni-icons class='right-icons' type="arrowdown" color="#000000" size="14" </u-search>
v-if="portalList.length>0 &&userInfo.appPortalId" :class="{'select-right-icons':showSelect}" /> </view> -->
</view> </view>
</block> <view class="log-list" v-for="(item, index) in list" :key="index">
</uni-nav-bar> <u-swipe-action :index="index" :show="item.show" @click="handleClick" @open="open" :options="options"
<template> @content-click="goDetail(item.id)">
<template v-if="userInfo.appPortalId"> <view class="log-list-txt u-flex-col">
<mescroll-body ref="mescrollRef" @down="downCallback" :down="downOption" :sticky="true" @up="upCallback" <view class="u-font-30 u-flex u-m-b-10 log-title">
:up="upOption" :bottombar="false" style="min-height: 100%" @init="mescrollInit"> <text class="title u-line-1">{{item.title}}</text>
<view class="portal-v" v-if="authConfig.type==0"> <text>{{item.creatorTime | date('mm-dd')}}</text>
<template v-if="formData.length">
<view class="portal-box" v-for="(item,index) in formData" :key="index">
<portalItem :item='item' ref="portalItem" :key="key" :protalData="formData"
v-if="item.show" />
</view>
</template>
<view v-else class="portal-v portal-nodata">
<view class="u-flex-col" style="align-items: center;">
<u-image width="280rpx" height="280rpx" :src="emptyImg1"></u-image>
<text class="u-m-t-20" style="color: #909399;">暂无数据</text>
</view>
</view> </view>
<text class="u-m-t-10">{{userInfo.userName}}/{{userInfo.userAccount}}</text>
</view> </view>
<template v-if="authConfig.type==1"> </u-swipe-action>
<!-- #ifdef APP-PLUS -->
<view v-if="authConfig.linkType==1 && showWebView">
<web-view :src="authConfig.customUrl"></web-view>
</view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view v-if="authConfig.linkType==1 && showWebView" style="height:calc(100vh - 100px)">
<web-view :src="authConfig.customUrl"></web-view>
</view>
<!-- #endif -->
<view v-else class="portal-v portal-nodata">
<view class="u-flex-col" style="align-items: center;">
<u-image width="280rpx" height="280rpx" :src="emptyImg"></u-image>
<text class="u-m-t-20" style="color: #909399;">当前内容无法在APP上显示请前往PC门户查看</text>
</view>
</view>
</template>
</mescroll-body>
</template>
<view class="portal-v" v-else>
<view class="portal-box">
<defaultPortal></defaultPortal>
</view>
</view> </view>
</template> </mescroll-body>
<!-- #endif --> <view class="com-addBtn" @click="goDetail()">
<!-- #ifdef MP --> <u-icon name="plus" size="60" color="#fff" />
<view>
<web-view :src="mpPortalUrl"></web-view>
</view> </view>
<!-- #endif -->
<!-- #ifndef MP -->
<u-popup v-model="showSelect" mode="top" class="select-box" height="600rpx" @close="closePopup">
<!-- #ifdef APP-PLUS -->
<view :style="{'margin-top':statusBarHeight+88+'px'}"></view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view :style="{'margin-top':statusBarHeight+88+'rpx'}"></view>
<!-- #endif -->
<view v-for="(item,index) in portalList" :key="index" class="select-item" @click="selectItem(item,index)">
<text class="u-m-r-12 u-font-40"
:class="[item.icon,{'currentItem':item.id === userInfo.appPortalId}]" />
<text class="item-text sysName">{{item.fullName}}</text>
<u-icon name="checkbox-mark " class="currentItem" v-if="item.id === userInfo.appPortalId"></u-icon>
</view>
</u-popup>
<!-- #endif -->
</view> </view>
</template> </template>
<script> <script>
var wv; //webview
import { import {
PortalList, getSendList,
SetPortal getReceiveList,
} from '@/api/portal/portal.js' delLog
// #ifndef MP } from '@/api/apply/reportLog.js'
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js"
import IndexMixin from './mixin.js'
import chat from '@/libs/chat.js'
import portalItem from '@/components/visualPortal/components/index.vue'
import defaultPortal from '@/components/visualPortal/components/defaultPortal.vue'
import {
auth
} from '@/api/portal/portal.js'
// #endif
import resources from '@/libs/resources.js' import resources from '@/libs/resources.js'
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
export default { export default {
// #ifndef MP mixins: [MescrollMixin],
mixins: [MescrollMixin, IndexMixin],
// #endif
components: {
// #ifndef MP
portalItem,
defaultPortal
// #endif
},
data() { data() {
return { return {
showWebView: true,
emptyImg: require(`@/static/image/defProtal.png`),
emptyImg1: resources.message.nodata,
rightIcon: '',
key: +new Date(),
formData: [],
portalTitle: '门户',
statusBarHeight: '',
showSelect: false,
selectData: {
name: '',
id: ''
},
portalList: [],
id: '',
userInfo: {},
downOption: { downOption: {
use: true, use: true,
auto: true auto: true
@ -133,242 +49,100 @@
upOption: { upOption: {
page: { page: {
num: 0, num: 0,
size: 50, size: 20,
time: null time: null
}, },
empty: { empty: {
use: false, use: true,
icon: resources.message.nodata,
tip: "暂无数据",
fixed: true,
top: "300rpx",
}, },
textNoMore: '没有更多数据', textNoMore: '没有更多数据',
}, },
authConfig: {}, current: 0,
token: '', tabsList: [{
mpPortalUrl: '' name: '待接单'
}; },
{
name: '进行中'
}
],
keyword: '',
list: [],
userInfo: {},
options: [{
text: '删除',
style: {
backgroundColor: '#dd524d'
}
}]
}
}, },
onShow() { onLoad() {
this.$forceUpdate()
this.token = uni.getStorageSync('token')
if (!this.$store.state.chat.socket) chat.initSocket()
this.mpPortalUrl = this.define.baseURL + '/pages/mpPortal/index?token=' + this.token
this.userInfo = uni.getStorageSync('userInfo') || {} this.userInfo = uni.getStorageSync('userInfo') || {}
if (!this.userInfo.appPortalId) return
// #ifndef MP
this.getPortalList()
this.$nextTick(() => {
this.mescroll.resetUpScroll();
this.portalList = []
})
// #endif
// #ifdef APP-PLUS
this.rightIcon = 'scan'
// #endif
},
onReady() {
// #ifdef APP-PLUS
this.setWebview()
// #endif
},
onLoad(e) {
// #ifndef MP
uni.$on('refresh', () => { uni.$on('refresh', () => {
this.formData = []; this.list = [];
this.current = 0
this.mescroll.resetUpScroll(); this.mescroll.resetUpScroll();
}) })
// #endif },
onUnload() {
uni.$off('refresh')
}, },
methods: { methods: {
setWebview() { upCallback(page) {
if (this.authConfig.linkType == 1) { let query = {
var currentWebview = this.$scope currentPage: page.num,
.$getAppWebview() //html5plusplus.webview.currentWebview()uni-appvue使plus.webview.currentWebview() pageSize: page.size,
let height = 0; keyword: this.keyword
uni.getSystemInfo({
//
success: (sysinfo) => {
height = sysinfo.windowHeight - 50; // ---(-50)
},
complete: () => {}
});
this.$nextTick(() => {
setTimeout(() => {
wv = currentWebview.children()[0]
wv.setStyle({
top: 80,
height,
scalable: true
})
}, 500); //
})
} }
}, const method = this.current ? getReceiveList : getSendList
upCallback(keyword) { method(query, {
auth(this.userInfo.appPortalId).then(res => { load: page.num == 1
this.authConfig = res.data || {} }).then(res => {
let data = JSON.parse(res.data.formData) || {}; this.mescroll.endSuccess(res.data.list.length);
this.formData = [] if (page.num == 1) this.list = [];
this.formData = data.layout ? JSON.parse(JSON.stringify(data.layout)) : [] const list = res.data.list.map(o => ({
this.handelFormData(data) show: false,
if (data.refresh.autoRefresh) { ...o
setInterval(() => { }));
uni.$emit('proRefresh') this.list = this.list.concat(list);
}, data.refresh.autoRefreshTime * 60000)
}
this.mescroll.endSuccess(this.formData.length);
this.key = +new Date()
// #ifdef APP-PLUS
this.setWebview()
// #endif
}).catch(() => { }).catch(() => {
this.mescroll.endSuccess(0);
this.mescroll.endErr(); this.mescroll.endErr();
this.key = +new Date()
}) })
}, },
handelFormData(data) { open(index) {
const loop = (list) => { this.list[index].show = true;
list.forEach(o => { this.list.map((val, idx) => {
o.allRefresh = data.refresh if (index != idx) this.list[idx].show = false;
o.show = false
if (o.visibility && o.visibility.length && o.visibility.includes('app')) o.show =
true
if (o.children && o.children.length) loop(o.children)
})
this.key = +new Date()
}
loop(this.formData)
this.dataList = this.formData.filter(o => o.show)
if (this.dataList.length < 1) {
this.formData = this.dataList
this.mescroll.endSuccess(this.dataList.length);
}
},
isJSON(str) {
try {
var obj = JSON.parse(str);
if (typeof obj == 'object' && obj) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
},
scan() {
uni.scanCode({
success: res => {
if (this.isJSON(res.result.trim())) {
const result = JSON.parse(res.result.trim())
if (result.t === 'ADP') {
let config = {
isPreview: 1,
id: result.id,
previewType: result.previewType
}
uni.navigateTo({
url: '/pages/apply/dynamicModel/index?config=' + this.base64
.encode(JSON.stringify(config), "UTF-8"),
fail: (err) => {
this.$u.toast("暂无此页面")
}
})
}
if (result.t === 'DFD') {
let config = JSON.stringify(result)
uni.navigateTo({
url: '/pages/apply/dynamicModel/scanForm?config=' + config,
fail: (err) => {
this.$u.toast("暂无此页面")
}
})
}
if (result.t === 'WFP') {
uni.navigateTo({
url: '/pages/workFlow/scanForm/index?config=' + JSON.stringify(
result),
fail: (err) => {
this.$u.toast("暂无")
}
})
}
if (result.t === 'report') {
let url =
`${this.report}/preview.html?id=${result.id}&token=${this.token}&page=1&from=menu&fullName=${result.fullName}`
uni.navigateTo({
url: '/pages/apply/externalLink/index?url=' + encodeURIComponent(
url) + '&fullName= ' + result.fullName,
fail: (err) => {
this.$u.toast("暂无")
}
})
}
if (result.t === 'portal') {
uni.navigateTo({
url: '/pages/index/scanProtal?id=' + result.id,
fail: (err) => {
this.$u.toast("暂无")
}
})
}
} else {
uni.navigateTo({
url: '/pages/my/scanResult/index?result=' + res.result,
fail: (err) => {
this.$u.toast("暂无此页面")
}
})
}
}
});
},
getPortalList() {
PortalList().then(res => {
let list = res.data.list || [];
list.map(o => {
this.portalList.push(...o.children)
this.portalList.forEach(o => {
if (o.id === this.userInfo.appPortalId) {
this.portalTitle = o.fullName
}
})
})
}) })
}, },
closePopup() { handleClick(index, index1) {
// #ifdef APP-PLUS const item = this.list[index]
this.setWebview() delLog(item.id).then(res => {
uni.$emit('showVideo', true) this.$u.toast(res.msg)
this.showWebView = true this.list.splice(index, 1)
// #endif if (!this.list.length) this.mescroll.resetUpScroll()
})
}, },
showSelectBox() { goDetail(id) {
if (Array.isArray(this.portalList) && this.portalList.length) this.showSelect = !this.showSelect const url = './form?type=' + this.current + (id ? '&id=' + id : '')
// #ifdef APP-PLUS uni.navigateTo({
uni.$emit('showVideo', false) url: url
this.showWebView = false })
this.setWebview()
// #endif
}, },
getStatusBarHeight() { change(index) {
let that = this; this.current = index;
wx.getSystemInfo({ this.mescroll.resetUpScroll()
success: function(res) {
that.statusBarHeight = res.statusBarHeight;
},
});
}, },
selectItem(item, index) { search() {
SetPortal(item.id).then(res => { this.searchTimer && clearTimeout(this.searchTimer)
this.portalTitle = this.portalList[index].fullName this.searchTimer = setTimeout(() => {
this.userInfo.appPortalId = item.id this.list = [];
// #ifndef MP
this.mescroll.resetUpScroll(); this.mescroll.resetUpScroll();
// #endif }, 300)
this.showSelectBox()
uni.setStorageSync('userInfo', this.userInfo)
})
} }
} }
} }
@ -379,92 +153,25 @@
background-color: #f0f2f6; background-color: #f0f2f6;
} }
.menhu-v { .reportLog-v {
.nav {
z-index: 99999;
/deep/.uni-navbar__content {
z-index: 99999;
}
/deep/.uni-navbar__header-container {
justify-content: center;
}
.nav-left {
max-width: 100%;
display: flex;
align-items: center;
.nav-left-text {
font-weight: 700;
font-size: 32rpx;
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.right-icons {
font-weight: 700;
margin-top: 2px;
margin-left: 4px;
transition-duration: 0.3s;
}
.select-right-icons {
transform: rotate(-180deg);
}
}
}
.select-box { .log-list {
overflow-y: scroll; width: 100%;
margin-bottom: 20rpx;
color: #9a9a9a;
.currentItem { .log-list-txt {
color: #2979FF; padding: 16rpx 32rpx;
}
.select-item {
height: 100rpx;
display: flex;
align-items: center;
padding: 0 20rpx;
font-size: 30rpx;
color: #303133;
text-align: left;
position: relative;
&::after { .log-title {
content: " "; justify-content: space-between;
position: absolute;
left: 2%;
top: 0;
box-sizing: border-box;
width: 96%;
height: 1px;
transform: scale(1, .3);
border: 0 solid #e4e7ed;
z-index: 2;
border-bottom-width: 1px;
}
.sysName { .title {
flex: 1; color: #333333;
overflow: auto; width: 500rpx;
min-width: 0; }
} }
} }
} }
} }
</style>
/deep/.portal-nodata {
position: absolute;
top: 450rpx;
width: 100%;
text-align: center;
z-index: 100;
background-color: #f0f2f6;
}
</style>

@ -7,7 +7,7 @@
<view class="launch-img"> <view class="launch-img">
<image :src="startup" mode="widthFix"></image> <image :src="startup" mode="widthFix"></image>
</view> </view>
<view class="copyright">Copyright © 2023 引迈信息技术有限公司出品</view> <view class="copyright">©2020-2025 上海长江电气设备集团有限公司 版权所有 沪ICP备2020037678号</view>
</view> </view>
<!-- #endif --> <!-- #endif -->
</view> </view>

@ -8,14 +8,14 @@
</u-image> </u-image>
</u-image> </u-image>
</view> </view>
<view class="login-version"> <!-- <view class="login-version">
<view class="login-version-text">{{sysConfigInfo.sysVersion || define.sysVersion}}</view> <view class="login-version-text">{{sysConfigInfo.sysVersion || define.sysVersion}}</view>
</view> </view> -->
</view> </view>
<view class="logo-hd u-flex-col"> <view class="logo-hd u-flex-col">
<view class="loginSwitch u-flex-col"> <view class="loginSwitch u-flex-col">
<view class="loginInputBox u-flex-col" v-show="!isSso && !ssoLoading"> <view class="loginInputBox u-flex-col" v-show="!isSso && !ssoLoading">
<u-form :model="formData" :rules="rules" ref="dataForm" :errorType="['toast']" label-position="left" <!-- <u-form :model="formData" :rules="rules" ref="dataForm" :errorType="['toast']" label-position="left"
label-width="150" label-align="left"> label-width="150" label-align="left">
<u-form-item prop="account"> <u-form-item prop="account">
<u-input input-align='left' v-model="formData.account" placeholder="请输入帐号" @focus="onFocus" <u-input input-align='left' v-model="formData.account" placeholder="请输入帐号" @focus="onFocus"
@ -36,11 +36,15 @@
</view> </view>
</view> </view>
</u-form-item> </u-form-item>
</u-form> </u-form> -->
<view class="loginBtnBox u-m-t-64"> <!-- <view class="loginBtnBox u-m-t-64">
<u-button @click="login" type="primary" :loading="loading">{{ loading ? "登录中...":"登录"}} <u-button @click="login" type="primary" :loading="loading">{{ loading ? "登录中...":"登录"}}
</u-button> </u-button>
</view> </view> -->
<button class="button phone" open-type="getPhoneNumber" @getphonenumber="onGetphonenumber">
<text class="icon icon-phone"></text>
手机号快捷登录
</button>
<template v-if="socialsList.length"> <template v-if="socialsList.length">
<u-divider margin-top='40' margin-bottom='40' half-width='100%'>其他登录方式</u-divider> <u-divider margin-top='40' margin-bottom='40' half-width='100%'>其他登录方式</u-divider>
<view class="other-list"> <view class="other-list">
@ -111,6 +115,7 @@
<script> <script>
import { import {
login, login,
postLoginWxMinAPI,
getCodeConfig, getCodeConfig,
getCallback, getCallback,
otherlogin, otherlogin,
@ -173,7 +178,7 @@
} }
}, },
onReady() { onReady() {
this.$refs.dataForm.setRules(this.rules); // this.$refs.dataForm.setRules(this.rules);
}, },
onLoad(options) { onLoad(options) {
this.ssoTicket = uni.getStorageSync('ssoTicket') this.ssoTicket = uni.getStorageSync('ssoTicket')
@ -181,7 +186,7 @@
this.appIcon = !!this.sysConfigInfo.appIcon ? this.baseURL + this.sysConfigInfo.appIcon : this.appIcon = !!this.sysConfigInfo.appIcon ? this.baseURL + this.sysConfigInfo.appIcon :
'/static/logo.png' '/static/logo.png'
this.sysName = !!this.sysConfigInfo.companyName ? this.sysConfigInfo.sysName : this.sysName = !!this.sysConfigInfo.companyName ? this.sysConfigInfo.sysName :
'JNPF快速开发平台' '西夏聚宝平台'
this.copyright = !!this.sysConfigInfo.copyright ? this.sysConfigInfo.copyright : this.copyright = !!this.sysConfigInfo.copyright ? this.sysConfigInfo.copyright :
this.define.copyright this.define.copyright
let needCode = uni.getStorageSync('app_loginNeedCode') let needCode = uni.getStorageSync('app_loginNeedCode')
@ -247,6 +252,36 @@
} }
} }
}, },
async onGetphonenumber(ev) {
const { encryptedData, iv } = ev.detail
// const res = await wx.login()
// const code = res.code
// debugger
// const query = { code, encryptedData, iv }
// postLoginWxMinAPI(query).then(res => {
// let token = res.data.token
// this.$store.commit('user/SET_TOKEN', token)
// uni.setStorageSync('token', token)
// this.$store.dispatch('user/getCurrentUser').then((res) => {
// this.loading = false
// uni.switchTab({
// url: '/pages/index/portal'
// });
// }).catch(() => {
// this.loading = false
// })
// }).catch((err) => {
// this.loading = false
// })
// const res = await postLoginWxMinAPI({ code, encryptedData, iv })
// loginSuccess(res.result)
// loginSuccess(res.sessionKey)
this.login()
},
wechatLogin() { wechatLogin() {
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
getTicket().then(res => { getTicket().then(res => {
@ -423,40 +458,71 @@
this.imgUrl = `/api/oauth/ImageCode/${this.codeLength || 4}/${timestamp}` this.imgUrl = `/api/oauth/ImageCode/${this.codeLength || 4}/${timestamp}`
}, },
login() { login() {
this.$refs.dataForm.validate(valid => { // this.$refs.dataForm.validate(valid => {
if (valid) { // if (valid) {
this.loading = true // this.loading = true
let query = { // let query = {
account: this.formData.account, // account: this.formData.account,
password: md5Libs.md5(this.formData.password), // password: md5Libs.md5(this.formData.password),
timestamp: this.timestamp, // timestamp: this.timestamp,
code: this.formData.code, // code: this.formData.code,
origin: this.formData.origin, // origin: this.formData.origin,
jnpf_ticket: this.ssoTicket // jnpf_ticket: this.ssoTicket
} // }
// #ifdef APP-PLUS // // #ifdef APP-PLUS
const clientId = plus.push.getClientInfo().clientid; // const clientId = plus.push.getClientInfo().clientid;
query.clientId = clientId // query.clientId = clientId
/* unipush2.0 */ // /* unipush2.0 */
// query.Client_Id = this.cid // // query.Client_Id = this.cid
// #endif // // #endif
login(query).then(res => { // login(query).then(res => {
let token = res.data.token // let token = res.data.token
this.$store.commit('user/SET_TOKEN', token) // this.$store.commit('user/SET_TOKEN', token)
uni.setStorageSync('token', token) // uni.setStorageSync('token', token)
this.$store.dispatch('user/getCurrentUser').then((res) => { // this.$store.dispatch('user/getCurrentUser').then((res) => {
this.loading = false // this.loading = false
uni.switchTab({ // uni.switchTab({
url: '/pages/index/portal' // url: '/pages/index/portal'
}); // });
}).catch(() => { // }).catch(() => {
this.loading = false // this.loading = false
}) // })
}).catch((err) => { // }).catch((err) => {
this.loading = false // this.loading = false
}) // })
} // }
}); // });
this.loading = true
let query = {
account: 'admin',
password: md5Libs.md5('123456'),
timestamp: this.timestamp,
code: this.formData.code,
origin: this.formData.origin,
jnpf_ticket: this.ssoTicket
}
// #ifdef APP-PLUS
const clientId = plus.push.getClientInfo().clientid;
query.clientId = clientId
/* unipush2.0 */
// query.Client_Id = this.cid
// #endif
login(query).then(res => {
let token = res.data.token
this.$store.commit('user/SET_TOKEN', token)
uni.setStorageSync('token', token)
this.$store.dispatch('user/getCurrentUser').then((res) => {
this.loading = false
uni.switchTab({
url: '/pages/index/portal'
});
}).catch(() => {
this.loading = false
})
}).catch((err) => {
this.loading = false
})
}, },
ssoLogin() { ssoLogin() {
getTicket().then(res => { getTicket().then(res => {
@ -622,6 +688,24 @@
} }
} }
.phone {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 80rpx;
font-size: 28rpx;
border-radius: 72rpx;
color: #fff;
background-color: #3775F6;
.icon {
font-size: 40rpx;
margin-right: 6rpx;
}
}
.copyright { .copyright {
position: fixed; position: fixed;
bottom: 40rpx; bottom: 40rpx;

@ -4,7 +4,7 @@
const baseURL = process.env.NODE_ENV === "production" ? const baseURL = process.env.NODE_ENV === "production" ?
"https://app.java.jnpfsoft.com" : "http://localhost:30000" // 接口前缀 "https://app.java.jnpfsoft.com" : "http://localhost:30000" // 接口前缀
const define = { const define = {
copyright: "Copyright @ 2023 引迈信息技术有限公司版权所有", copyright: "©2020-2025 上海长江电气设备集团有限公司版权",
sysVersion: "V3.5", sysVersion: "V3.5",
baseURL: baseURL, baseURL: baseURL,
webSocketUrl: process.env.NODE_ENV === "production" ? "wss://app.java.jnpfsoft.com/websocket" : webSocketUrl: process.env.NODE_ENV === "production" ? "wss://app.java.jnpfsoft.com/websocket" :
@ -18,7 +18,7 @@ const define = {
// #ifdef MP // #ifdef MP
const baseURL = "http://localhost:30000" // "https://app.java.jnpfsoft.com" const baseURL = "http://localhost:30000" // "https://app.java.jnpfsoft.com"
const define = { const define = {
copyright: "Copyright @ 2023 引迈信息技术有限公司版权所有", copyright: "©2020-2025 上海长江电气设备集团有限公司版权",
sysVersion: "V3.5", sysVersion: "V3.5",
baseURL: baseURL, baseURL: baseURL,
webSocketUrl: "ws://localhost:30000/api/message/websocket", //"wss://app.java.jnpfsoft.com/api/message/websocket" webSocketUrl: "ws://localhost:30000/api/message/websocket", //"wss://app.java.jnpfsoft.com/api/message/websocket"

Loading…
Cancel
Save