Commit e98dc272 authored by 邹骏's avatar 邹骏

新增二期新需求

parent 31f82198
......@@ -11,5 +11,5 @@ module.exports = {
ocrPath:'"http://180.104.121.66:8088/r/api"',
fileUploadSvcPath:'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_UAT&apiName="',
appId: '"com.xcmg.app.dev"',
currentVersion: '"2.3.2"'
currentVersion: '"2.3.3"'
}
......@@ -11,5 +11,5 @@ module.exports = {
ocrPath:'"http://180.104.121.66:8088/r/api"',
fileUploadSvcPath:'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_UAT&apiName="',
appId: '"com.xcmg.app.dev"',
currentVersion: '"2.3.5"'
currentVersion: '"2.5.0"'
}
......@@ -6256,6 +6256,10 @@
}
}
},
"idcardplugin-test": {
"version": "file:C:/Users/zoujun/Desktop/其他/IdCardPlugin-test",
"dev": true
},
"ieee754": {
"version": "1.1.13",
"resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz",
......
......@@ -37,7 +37,6 @@
"vux": "^2.9.0"
},
"devDependencies": {
"better-scroll": "^1.8.4",
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
......@@ -47,6 +46,7 @@
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"better-scroll": "^1.8.4",
"chalk": "^2.0.1",
"connect-history-api-fallback": "^1.3.0",
"copy-webpack-plugin": "^4.0.1",
......@@ -67,6 +67,7 @@
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"idcardplugin-test": "file:C:/Users/zoujun/Desktop/其他/IdCardPlugin-test",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"lib-flexible": "^0.3.2",
......@@ -128,7 +129,8 @@
"cordova-plugin-ionic-webview": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-splashscreen": {},
"ionic-plugin-keyboard": {}
"ionic-plugin-keyboard": {},
"IdCardPlugin": {}
}
}
}
\ No newline at end of file
{
"name": "idcardplugin-test",
"version": "1.0.0",
"description": "XXX",
"author": "XX",
"license": "MIT"
}
\ No newline at end of file
<?xml version='1.0' encoding='utf-8'?>
<plugin id="IdCardPlugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>IdCardPlugin</name>
<js-module name="IdCardPlugin" src="www/IdCardPlugin.js">
<clobbers target="cordova.plugins.IdCardPlugin" />
</js-module>
<!-- android -->
<platform name="android">
<!-- 业务类指定 -->
<config-file target="res/xml/config.xml" parent="/*">
<feature name="IdCardIdentifyPlugin">
<param name="android-package" value="com.xg.idcard.IdCardIdentifyPlugin"/>
</feature>
</config-file>
<!-- 需要的android权限 -->
<config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
</config-file>
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<activity android:name="com.qsign.face.LivenessDetectActivity"/>
</config-file>
<!-- arr引用 -->
<resource-file src="src/android/lib/qsign_facesdk_xg_1.0.0.aar" target="libs/qsign_facesdk_xg_1.0.0.aar" />
<framework src="src/android/lib/idCard.gradle" custom="true" type="gradleReference" />
<source-file src="src/android/java/IdCardIdentifyPlugin.java" target-dir="src/com/xg/idcard/" />
</platform>
</plugin>
身份检测cordova插件
调用方式:
```
cordova.plugins.IdCardPlugin.idCardIdentify({"idNum":"123213213123123123123213","idName":"张三","timeout":10000}, function (success) {alert(success);
}, function (reason) {
alert("Failed: " + reason);
});
```
字段:
idNum : 身份证号码
idName: 用户名称
timeout:检测超时时间
返回值介绍:
​ 检测成功返回值:
​ {"code":1,"message":"检测成功"}
​ 检测失败返回值:
​ 1.{"code":0,"message":"参数错误"}
​ 2.{"code":0,"message":"idNum 或者 idName 为空"}
​ 3.{"code":0,"message":"检测失败"}
​ 4.{"code":0,"message":"未授予相机权限"}
package com.xg.idcard;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.util.Base64;
import com.qsign.face.LivenessDetectActivity;
import com.qsign.face.api.FaceApi;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class IdCardIdentifyPlugin extends CordovaPlugin {
private static final String ID_CARD_IDENTIFY = "IdCardIdentify";
private String idNum;
private String idName;
private int timeOut;
private CallbackContext mCallbackContext;
@Override
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
initFace();
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
mCallbackContext = callbackContext;
if (ID_CARD_IDENTIFY.equals(action)) {
if (args == null) {
callbackContext.error(getResult(0,"参数错误"));
return false;
}
JSONObject idInfo = args.optJSONObject(0);
if (idInfo == null) {
callbackContext.error(getResult(0,"参数错误"));
return false;
}
idNum = idInfo.optString("idNum");
idName = idInfo.optString("idName");
if(idNum == null || idNum.isEmpty() || idName == null || idName.isEmpty()){
callbackContext.error(getResult(0,"idNum 或者 idName 为空"));
return false;
}
timeOut = idInfo.optInt("timeout", 10000);
checkCameraPermission();
} else {
callbackContext.error(getResult(0,"参数错误"));
return false;
}
return super.execute(action, args, callbackContext);
}
private void startIdCardCheck(){
Intent intent = new Intent(cordova.getActivity(), LivenessDetectActivity.class);
intent.putExtra("idnum", idNum);
intent.putExtra("idname", idName);
intent.putExtra("timeout", timeOut);
cordova.startActivityForResult(this, intent, 800);
}
private void initFace() {
new Thread(new Runnable() {
@Override
public void run() {
int ret = FaceApi.getInstance().init(cordova.getActivity().getApplicationContext());
}
}).start();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 800:
if (resultCode == Activity.RESULT_OK) {
String isLive = data.getStringExtra("isLiveness");
byte headImage[] = data.getByteArrayExtra("headImage");
String imageStr = null;
if(headImage != null && headImage.length > 0){
imageStr = Base64.encodeToString(headImage, Base64.NO_WRAP);
}
if ("1".equals(isLive)) {
//检测成功
mCallbackContext.success(getResult(1,"检测成功",imageStr));
} else {
//检测失败
mCallbackContext.success(getResult(0,"检测失败"));
}
}
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
private String getResult(int code, String message) {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("code", code);
jsonObject.put("message", message);
} catch (JSONException e) {
e.printStackTrace();
}
return jsonObject.toString();
}
private String getResult(int code, String message,String image) {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("code", code);
jsonObject.put("message", message);
jsonObject.put("image", image);
} catch (JSONException e) {
e.printStackTrace();
}
return jsonObject.toString();
}
private void checkCameraPermission(){
if(cordova.hasPermission(Manifest.permission.CAMERA)){
startIdCardCheck();
}else{
requestCameraPermission();
}
}
private static final int REQUEST_CAMERA_PERMISSION_CODE = 0x01;
private void requestCameraPermission(){
cordova.requestPermission(this,REQUEST_CAMERA_PERMISSION_CODE,Manifest.permission.CAMERA);
}
@Override
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) throws JSONException {
if(REQUEST_CAMERA_PERMISSION_CODE == requestCode){
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
startIdCardCheck();
}else{
mCallbackContext.success(getResult(0,"未授予相机权限"));
}
}
super.onRequestPermissionResult(requestCode, permissions, grantResults);
}
}
repositories{
jcenter()
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name:"qsign_facesdk_xg_1.0.0",ext: 'aar')
}
android {
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
}
\ No newline at end of file
var exec = require('cordova/exec');
exports.idCardIdentify = function (arg0, success, error) {
exec(success, error, 'IdCardIdentifyPlugin', 'IdCardIdentify', [arg0]);
};
{
"name": "cordova-plugin-ionic-webview",
<<<<<<< HEAD
"version": "1.2.1",
=======
"version": "2.0.0",
>>>>>>> jeshi
"description": "The official Ionic's WKWebView Engine Plugin",
"main": "index.js",
"scripts": {
......@@ -26,10 +22,6 @@
"author": "Ionic Team",
"license": "Apache-2.0",
"devDependencies": {
<<<<<<< HEAD
"np": "^2.16.0",
"sync-cordova-xml": "^0.4.0"
=======
"np": "^3.0.4",
"sync-cordova-xml": "^0.4.0"
},
......@@ -40,6 +32,5 @@
"cordova-ios": ">=4.0.0-dev"
}
}
>>>>>>> jeshi
}
}
......@@ -18,12 +18,7 @@
specific language governing permissions and limitations
under the License.
-->
<<<<<<< HEAD
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:rim="http://www.blackberry.com/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-ionic-webview" version="1.2.1">
=======
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:rim="http://www.blackberry.com/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-ionic-webview" version="2.0.0">
>>>>>>> jeshi
<name>cordova-plugin-ionic-webview</name>
<description>The official Ionic's WKWebView Engine Plugin</description>
<license>Apache-2.0</license>
......@@ -33,7 +28,6 @@
<engines>
<engine name="cordova-ios" version=">=4.0.0-dev"/>
<engine name="apple-ios" version=">=9.0"/>
<<<<<<< HEAD
</engines>
<!-- ios -->
......@@ -98,62 +92,4 @@
</platform>
<issue>https://github.com/ionic-team/cordova-plugin-ionic-webview/issues</issue>
<author>Ionic Team</author>
=======
<engine name="cordova-android" version=">=6.4.0"/>
</engines>
<js-module src="src/www/util.js" name="IonicWebView">
<clobbers target="Ionic.WebView"/>
</js-module>
<platform name="android">
<config-file target="config.xml" parent="/*">
<allow-navigation href="http://localhost/*"/>
<allow-navigation href="https://localhost/*"/>
<allow-navigation href="ionic://*"/>
<preference name="webView" value="com.ionicframework.cordova.webview.IonicWebViewEngine"/>
<feature name="IonicWebView">
<param name="android-package" value="com.ionicframework.cordova.webview.IonicWebView"/>
</feature>
</config-file>
<source-file src="src/android/com/ionicframework/cordova/webview/IonicWebViewEngine.java" target-dir="src/com/ionicframework/cordova/webview"/>
<source-file src="src/android/com/ionicframework/cordova/webview/IonicWebView.java" target-dir="src/com/ionicframework/cordova/webview"/>
<source-file src="src/android/com/ionicframework/cordova/webview/AndroidProtocolHandler.java" target-dir="src/com/ionicframework/cordova/webview"/>
<source-file src="src/android/com/ionicframework/cordova/webview/UriMatcher.java" target-dir="src/com/ionicframework/cordova/webview"/>
<source-file src="src/android/com/ionicframework/cordova/webview/WebViewLocalServer.java" target-dir="src/com/ionicframework/cordova/webview"/>
<preference name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" default="27.+"/>
<framework src="com.android.support:support-annotations:$ANDROID_SUPPORT_ANNOTATIONS_VERSION"/>
</platform>
<!-- ios -->
<!-- ios -->
<platform name="ios">
<js-module src="src/www/ios/ios-wkwebview-exec.js" name="ios-wkwebview-exec">
<clobbers target="cordova.exec"/>
</js-module>
<config-file target="config.xml" parent="/*">
<allow-navigation href="ionic://*"/>
<preference name="deployment-target" value="11.0"/>
<feature name="IonicWebView">
<param name="ios-package" value="CDVWKWebViewEngine"/>
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine"/>
</config-file>
<framework src="WebKit.framework" weak="true"/>
<header-file src="src/ios/CDVWKWebViewEngine.h"/>
<source-file src="src/ios/CDVWKWebViewEngine.m"/>
<header-file src="src/ios/CDVWKWebViewUIDelegate.h"/>
<source-file src="src/ios/CDVWKWebViewUIDelegate.m"/>
<header-file src="src/ios/CDVWKProcessPoolFactory.h"/>
<source-file src="src/ios/CDVWKProcessPoolFactory.m"/>
<header-file src="src/ios/IONAssetHandler.h"/>
<source-file src="src/ios/IONAssetHandler.m"/>
<asset src="src/ios/wk-plugin.js" target="wk-plugin.js"/>
</platform>
<issue>https://github.com/ionic-team/cordova-plugin-ionic-webview/issues</issue>
<author>Ionic Team</author>
>>>>>>> jeshi
</plugin>
This diff is collapsed.
src/assets/myInfo/back.png

31.4 KB | W: | H:

src/assets/myInfo/back.png

54.2 KB | W: | H:

src/assets/myInfo/back.png
src/assets/myInfo/back.png
src/assets/myInfo/back.png
src/assets/myInfo/back.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -59,10 +59,10 @@ import Jpush from './scripts/jpushService'
import Jmessage from './scripts/jmessageService'
//
// || process.env.CONFIG_ENV === 'prod'
// if (process.env.CONFIG_ENV === 'dev' || process.env.CONFIG_ENV === 'uat') {
// const VConsole = require('vconsole')
// new VConsole() // eslint-disable-line
// }
if (process.env.CONFIG_ENV === 'dev' || process.env.CONFIG_ENV === 'uat') {
const VConsole = require('vconsole')
new VConsole() // eslint-disable-line
}
Vue.use(componentInstall)
Vue.use(components)
Vue.use(appStyle)
......
......@@ -106,7 +106,7 @@ export default {
},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'MyInfo') {
if (from.name === 'MyInfo' || from.name === 'MyContract') {
vm.searchInput = ''
vm.pagenum = 1
vm.num = 1
......
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime : 2019-12-27 10:28:37
* @LastEditors : Please set LastEditors
* @Description: In User Settings Edit
-->
<template>
<h-view id="contract-create-list">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>我的合同</span>
</div>
</h-header>
<div class="my-contractlist">
<div class="contract-item" @click="goSign()">
<p :class="{'content-wrap-class-width':signCount > 99, 'content-wrap-class':signCount < 99}" v-if="signCount > 0">{{ signCount > 99 ? '99+' : signCount }}</p>
<img src="@/assets/myInfo/unSign.png" >
<span>合同签约</span>
</div>
<div class="contract-item" v-if="((user_bp_type!=='TENANT')&&(user_bp_type!=='GUTA')&&(multipleRole!=='GUTA')&&(multipleRole!=='TENANT')) || multipleRole =='AGENT'" @click="goCarConfirm()">
<p :class="{'content-wrap-class-width':carCount > 99, 'content-wrap-class':carCount < 99}" v-if="carCount > 0">{{ carCount > 99 ? '99+' : carCount }}</p>
<img src="@/assets/myInfo/carConfirm.png" >
<span>发车确认</span>
</div>
<div class="contract-item" v-if="(user_bp_type == 'AGENT'&&multipleRole =='AGENT') || user_bp_type == 'OFFICE' || multipleRole =='AGENT' || (user_bp_type == 'AGENT' && !multipleRole)" @click="goCreate()">
<img src="@/assets/myInfo/contractCreate.png" >
<span>合同创建</span>
</div>
<div class="contract-item" v-if="((user_bp_type =='GUTA')&&(multipleRole =='GUTA')) || (multipleRole =='GUTA') || ((user_bp_type =='GUTA') && (!multipleRole))" @click="changeContract('GUTA')">
<img src="@/assets/myInfo/under.png" >
<span>我担保的合同</span>
</div>
<div class="contract-item" v-if="((user_bp_type =='AGENT')&&(multipleRole =='AGENT')) || (multipleRole =='AGENT') || ((user_bp_type =='AGENT') && (!multipleRole)) || (user_bp_type =='OFFICE')" @click="goContract()">
<img src="@/assets/myInfo/agent.png" >
<span>我办理的合同</span>
</div>
</div>
</h-view>
</template>
<script>
export default {
data () {
return {
currentVersion: process.env.currentVersion,
multipleRole: window.localStorage.getItem('multipleRole'),
bp_id: window.localStorage.getItem('bp_id'),
user_bp_type: window.localStorage.getItem('bp_type'),
signCount: '0',
carNum: '0',
faceSign: '0',
prjSubmit: '0',
confirmCount: '0',
productCount: '0',
carCount: '0',
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.numQuery()
})
next()
},
methods: {
numQuery () {
let vm = this
let url = $config.basePath + 'number_display_query'
let param = {
user_phone: window.localStorage.getItem('user_phone'),
}
vm.$post(url, param).then(function (res) {
if (res.result === 'S') {
if ('info' in res) {
vm.signCount = res.info.con_confirm_num || 0 //待确认数量 数字 必输 待确认数量
vm.productCount = res.info.collect_num || 0 // 产品收藏数量 数字 必输 产品收藏数量
vm.carCount = res.info.car_confirm_num || 0 // 发车待确认数量 数字 必输 发车待确认数量
vm.faceSign = res.info.face_sign_num || 0 // 待面签数量 数字 必要 待面签数量
vm.prjSubmit = res.info.prj_submit_num || 0 // 待提交合同数量 数字 必要
}
} else {
this.hlsPopup.showLongCenter(res.message)
}
})
},
goSign () {
if (this.bp_id) {
// if (this.user_bp_type === 'AGENT') {
// this.$router.push({
// name: 'ContractList',
// })
// } else {
this.$router.push({
name: 'ContractSigning',
params: {
user_bp_type: this.user_bp_type,
},
})
// }
} else {
hlsPopup.showLongCenter('请先进行用户绑定')
}
},
// 进入发车确认
goCarConfirm () {
if (this.bp_id) {
this.$router.push({
name: 'ConfirmList',
})
} else {
hlsPopup.showLongCenter('请先进行用户绑定')
}
},
// 合同创建
goCreate () {
this.$router.push({
name: 'ContractCreateList',
params: {
user_bp_type: this.user_bp_type,
},
})
},
// 进入
changeContract (e) {
this.$router.push({
name: 'ContractRecords',
params: {
bp_type: e,
},
})
},
goContract () {
if (this.user_bp_type === 'OFFICE') {
this.changeContract('OFFICE')
} else {
this.changeContract('AGENT')
}
},
},
}
</script>
<style lang="less" type="text/less">
#contract-create-list{
.my-contractlist {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: flex-start;
align-content: flex-start;
background: #fafafa;
width: 100vw;
height: 100vh;
padding-top: 20px;
.contract-item {
width: 46vw;
margin: 2vw;
height: 60px;
padding: 10px;
vertical-align: middle;
background: white;
border-radius: 10px;
position: relative;
img {
vertical-align: middle;
height: 40px;
width: 40px;
}
span {
text-indent: 20px;
display: inline-block;
font-family: PingFangSC-Regular;
font-size: 14px;
}
.content-wrap-class {
position: absolute;
top: 5px;
left: 5px;
font-size: 10px;
width: 18px;
height: 18px;
text-align: center;
line-height: 18px;
background-color: red;
color: #fff;
border-radius: 50%;
}
.content-wrap-class-width {
position: absolute;
top: 5px;
left: 5px;
font-size: 10px;
width: 24px;
height: 18px;
text-align: center;
line-height: 18px;
background-color: red;
color: #fff;
border-radius: 50%;
}
}
}
}
</style>
......@@ -229,6 +229,42 @@ export default {
vm.user_bp_type = window.localStorage.bp_type
vm.sales = window.localStorage.bp_name
vm.multiple = window.localStorage.multipleRole
// {
// "bp_id_tenant":"8964",
// "business_type":"LEASEBACK",
// "bp_id_agent":"8962",
// "bp_user_id":"2530",
// "office_id":"102",
// "factory":"8963",
// "manu_manager":"黄嘉娜",
// "sale_date":"2020-10-23",
// "bp_type":"AGENT",
// "project_id":"",
// "credit_id":"481"
// },
// {
// "project_id":"53928",
// "bp_id":"8964",
// "bp_class":"NP",
// "equip_num":"",
// "equip_num_n":"",
// "equip_value":"200~500万",
// "engineer_con":"",
// "engineer_con_n":"",
// "enterpriese_nature":"",
// "enterpriese_nature_n":"",
// "abc_deduction_flag":"Y",
// "special_flag":"N",
// "mortgega_flag":"Y",
// "special_matter":"",
// "np_industry_exp":"01",
// "np_occupation":"01",
// "house_type":"A",
// "house_type_n":"农村房产",
// "np_industry_exp_n":"不足1年",
// "np_occupation_n":"公务员",
// "bp_id_guta_1":"8964"
// }
vm.salesInfo = {
bp_id_tenant: '', // 承租人id
business_type: '', // 业务类型
......@@ -531,6 +567,7 @@ export default {
if (res.result === 'S') {
hlsPopup.showLongCenter('创建成功!')
window.localStorage.setItem('project_id', res.project_id)
// window.localStorage.setItem('business_type', vm.salesInfo.business_type)
window.localStorage.setItem('fromPage', 'sale')
vm.$router.push({
name: 'CreateBaseInfo',
......
......@@ -116,7 +116,7 @@ export default {
},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'MyInfo') {
if (from.name === 'MyInfo' || from.name === 'MyContract') {
vm.num = 1
vm.pagenum = 1
vm.submitPagenum = 1
......
......@@ -100,7 +100,7 @@ export default {
vm.division = vm.$route.params.division
vm.calculationQuery('collect')
vm.fromProduct = true
} else if (from.name === 'HomePage') {
} else if (from.name === 'HomePage' || from.name === 'FunctionCenter') {
vm.fromProduct = false
vm.calculationQuery()
vm.price_date_to = '' // 清除缓存(从收藏带来的数据)
......
......@@ -14,15 +14,11 @@
<p><span :class="{'selected':activedCom === 'credit-info'}" @click="isSelected(3)">银行卡</span></p>
</div>
<div style="padding-top:45px;">
<div :is='activedCom' :document_id="document_id" :document_name="document_name" :record_id="record_id"></div>
<!-- <base-info v-if="selected === 'base'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></base-info>
<bill-info v-if="selected === 'bill'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></bill-info>
<append-info v-if="selected === 'appe'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></append-info>
<credit-info v-if="selected === 'cred'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></credit-info> -->
<div ref="activedCom" :is='activedCom' :document_id="document_id" :document_name="document_name" :record_id="record_id"></div>
</div>
</h-content>
<bottom-tab class="footer-button">
<tab-button class="save" @click.native="approv('0')">审批</tab-button>
<bottom-tab class="footer-button" v-if="type === 'todo'">
<tab-button class="save" @click.native="approv('0')"><img src="@/assets/functionCenter/stamp.png">审批</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue">
<div class="modal_header">
......@@ -55,25 +51,24 @@ export default {
},
data () {
return {
type: '',
selected: '',
document_id: '',
document_name: '',
record_id: '',
comment_text: '',
showModalValue: false,
activedCom: '',
activedCom: 'base-info',
comArr: ['base-info', 'bill-info', 'append-info', 'credit-info'],
}
},
watch: {
},
mounted () {
this.activedCom = 'base-info'
},
activated () {
this.document_id = this.$route.params.document_id
this.document_name = this.$route.params.document_name
this.record_id = this.$route.params.record_id
this.type = this.$route.params.type
},
methods: {
isSelected (index) {
......@@ -101,11 +96,11 @@ export default {
url = $config.basePath + 'action_refuse'
}
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
this.hlsPopup.hideLoading(res.message)
if (res.result === 'S') {
this.$routeGo()
} else {
this.$routeGo()
}
this.showModalValue = false
})
......@@ -116,16 +111,16 @@ export default {
</script>
<style lang="less" scoped>
.refuse {
color: #fff;
border-radius: 4px;
background-color: yellow;
width: 150px;
border: 1px solid #FDB62F;
color: #FDB62F;
width: 45vw;
}
.save,.comfirm {
color: #fff;
border-radius: 4px;
background-color: @headerColor;
width: 150px;
width: 45vw;
}
.modal_header {
width: 100%;
......@@ -135,6 +130,9 @@ export default {
background: white;
position: fixed;
bottom: 300px;
font-size: 15px;
font-family: PingFangSC-Semibold;
color: #383F45;
vertical-align: middle;
img {
width: 30px;
......@@ -153,8 +151,11 @@ export default {
width: 100%;
height: 200px;
color: #666;
border: 1px solid #F1F0F5;
border-radius: 8px;
resize: none;
border: 1px solid #999;
padding: 15px;
font-size: 14px;
}
}
.modal_footer {
......
......@@ -9,9 +9,8 @@
v-model="invoiceInfo.taxpayer_type_n"
type="text"
readonly
placeholder="请选择"
placeholder=""
onfocus="this.blur()"
@click="selectTaxpayer"
>
</item>
<item :showArrow="true">
......@@ -21,14 +20,13 @@
v-model="invoiceInfo.invoice_kind_n"
type="text"
readonly
placeholder="请选择"
placeholder=""
onfocus="this.blur()"
@click="selectInvoiceType"
>
</item>
<item>
<div slot="name">发票抬头</div>
<input slot="content" v-model="invoiceInfo.invoice_title" type="text" placeholder="" >
<input slot="content" v-model="invoiceInfo.invoice_title" type="text" readonly placeholder="" >
</item>
<item>
<div slot="name">发票地址</div>
......
......@@ -50,27 +50,6 @@
<span>银行卡信息</span>
<img src="@/assets/userBind/close.png" @click="hideModal" >
</div>
<img
v-if="!bankImg && !isApproved"
src="@/assets/userBind/addBack.png"
class="addBack"
>
<img
v-if="bankImg"
:src="bankImg"
class="addBack"
style="height: 38%;"
>
<img
v-if="isClear && isApproved && !bankImg"
src="@/assets/userBind/addBack.png"
class="addBack"
>
<img
v-if="!bankImg && isApproved && !isClear"
src="@/assets/userBind/addBack.png"
class="addBack"
>
<list-item :item-height="44" class="card-Info">
<item>
<div slot="name">银行卡卡号</div>
......@@ -500,6 +479,7 @@ export default {
}
.card-Info {
margin-bottom: 220px;
padding-top: 80px;
}
}
.add-card {
......
<template>
<h-view id="function-center" class="public-style" title="产品查询">
<h-header class="bar-custom">
<div slot="center" class="top-word">业务指引-{{role}}</div>
</h-header>
<h-content>
<h-header class="bar-custom">
<div slot="center" class="top-word">业务指引</div>
</h-header>
<!-- 搜索 -->
<div class="search has-header">
<img src="@/assets/functionCenter/bgxg-pic@2x.png" alt="" >
</div>
<!-- 搜索 -->
<div class="search has-header">
<img src="@/assets/functionCenter/bgxg-pic@2x.png" alt="" >
</div>
<div class="fun-item">
<div class="userInfo"> 租前业务</div>
<div class="info-content">
......@@ -28,8 +28,25 @@
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/todo@2x.png" alt="" >
<div class="name-title">产品查询</div>
</div>
<div class="add-content" @click="toproduct()">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/todo@2x.png" alt="" >
<div class="name-title">产品试算</div>
</div>
<div class="add-content" @click="financingTrial()">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
</div>
<div class="fun-item-before">
<div class="userInfo"> 租中业务</div>
<div class="info-content">
......@@ -42,6 +59,15 @@
</div>
</div>
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/con-sign@2x.png" alt="" >
<div class="name-title">发车申请</div>
</div>
<div class="add-content" @click="goStart">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<!-- <div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/video@2x.png" alt="" >
<div class="name-title">视频面签</div>
......@@ -49,11 +75,11 @@
<div class="add-content" @click="goVideoSign">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
</div> -->
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/car@2x.png" alt="" >
<div class="name-title">发车确认</div>
<div class="name-title">发车确认-直租</div>
</div>
<div class="add-content" @click="goCarConfirm">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
......@@ -69,9 +95,26 @@
</div>
</div>
</div>
<div class="fun-item-after">
<div class="userInfo"> 租后业务</div>
<div class="info-content" v-if="user_bp_type==='TENANT'">
<div class="add-name">
<img src="@/assets/functionCenter/rent@2x.png" alt="" >
<div class="name-title">我的发票</div>
</div>
<div class="add-content" @click="goInvoice">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<div class="info-content" v-if="((user_bp_type==='TENANT')||(user_bp_type==='GUTA'||(multipleRole==='GUTA')||(multipleRole==='TENANT')))&&multipleRole!=='AGENT'">
<div class="add-name">
<img src="@/assets/functionCenter/rent@2x.png" alt="" >
<div class="name-title">合同还款</div>
</div>
<div class="add-content" @click="goContractRepayment">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/rent@2x.png" alt="" >
......@@ -93,7 +136,6 @@
</div>
</h-content>
</h-view>
</template>
......@@ -109,6 +151,7 @@ export default {
factory_bp_id: '',
searchInput: '', // 搜索内容
pagenum: 1,
role: ''
}
},
computed: {},
......@@ -126,10 +169,20 @@ export default {
// created () {
// this.userQuery()
// },
methods:
{
methods: {
userQuery () {
let vm = this
if (window.localStorage.getItem('multipleRole') == 'TENANT') {
vm.role = '主承租人'
} else if (window.localStorage.getItem('multipleRole') == 'GUTA') {
vm.role = '担保人'
} else if (window.localStorage.getItem('multipleRole') == 'FACTORY') {
vm.role = '主机厂'
} else if (window.localStorage.getItem('multipleRole') == 'AGENT') {
vm.role = '经销商'
} else if (window.localStorage.getItem('multipleRole') == 'OFFICE') {
vm.role = '办事处'
}
let url = $config.basePath + 'user_query'
let param = {
phone: window.localStorage.getItem('user_phone'),
......@@ -153,7 +206,6 @@ export default {
window.localStorage.setItem('bp_identity', res.info.bp_identity)
window.localStorage.setItem('bp_class', res.info.user_bp_class)
window.localStorage.setItem('bp_type', res.info.user_bp_type)
if(window.localStorage.multipleRole){
}else{
......@@ -180,6 +232,16 @@ export default {
}
})
},
// 进入发车申请
goStart () {
if (this.bp_id) {
this.$router.push({
name: 'StartList',
})
} else {
hlsPopup.showLongCenter('请先进行用户绑定')
}
},
//合同签约
conSign(){
let vm = this
......@@ -249,6 +311,16 @@ export default {
hlsPopup.showLongCenter('请先进行用户绑定')
}
},
goContractRepayment () {
let vm = this
if (window.localStorage.getItem('bp_id') !== 'undefined') {
this.$router.push({
name: 'ContractRepayment',
})
} else {
hlsPopup.showLongCenter('请先进行用户绑定')
}
},
changeRent () {
let vm = this
if (window.localStorage.getItem('bp_id') !== 'undefined') {
......@@ -333,6 +405,16 @@ export default {
}
},
toproduct() {
this.$router.push({
name: 'QueryHome',
})
},
financingTrial() {
this.$router.push({
name: 'FinancingTrial',
})
},
todoList() {
if (this.bp_id) {
if(window.localStorage.multipleRole !== 'OFFICE' && window.localStorage.multipleRole !== 'AGENT'){
......@@ -358,7 +440,7 @@ export default {
z-index: 1;
width: 100%;
position: absolute;
top: 0;
img {
width: 100%;
height: 150px;
......@@ -366,12 +448,12 @@ export default {
}
.fun-item{
background: #FFFFFF;
border-radius: 20px;
border-radius: 0.4rem;
width: 80%;
margin-left: 10%;
position: absolute;
z-index: 2;
margin-top: 120px;
margin-top: 1.4rem;
.userInfo {
height: 35px;
line-height: 35px;
......@@ -446,17 +528,16 @@ export default {
width: 14px;
}
}
}
.fun-item-before{
background: #FFFFFF;
border-radius: 20px;
width: 80%;
margin-left: 10%;
.fun-item-before {
background: #FFFFFF;
border-radius: 0.4rem;
width: 80%;
margin-left: 10%;
margin-top: 5.6rem;
position: absolute;
// position: absolute;
// z-index: 2;
margin-top: 210px;
.userInfo {
height: 35px;
line-height: 35px;
......@@ -535,11 +616,12 @@ export default {
}
.fun-item-after{
background: #FFFFFF;
border-radius: 20px;
width: 80%;
margin-left: 10%;
margin-top: 10px;
background: #FFFFFF;
border-radius: 0.4rem;
width: 80%;
margin-left: 10%;
margin-top: 9.8rem;
margin-bottom: 1.5rem;
// position: absolute;
// z-index: 2;
.userInfo {
......
......@@ -7,38 +7,41 @@
-->
<template>
<h-view id="homePage" class="public-style" title="待办审批">
<h-header :proportion="[7,10,0]" class="bar-custom">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<!-- <i class="ion-ios-arrow-back" /> -->
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>待办审批</span>
</div>
<div slot="center">待办审批</div>
</h-header>
<div class="wrap has-header">
<div class="tab">
<p><span :class="{'selected':selected === 'todo'}" @click="isSelected('todo')">待办</span></p>
<p><span :class="{'selected':selected === 'done'}" @click="isSelected('done')">已办</span></p>
<p><span :class="{'selected':selected === 'todo'}" @click="isSelected('todo')"><img v-if="selected === 'todo'" src='@/assets/functionCenter/todo-check.png'><img v-if="selected === 'done'" src='@/assets/functionCenter/todo.png'>待办</span></p>
<p><span :class="{'selected':selected === 'done'}" @click="isSelected('done')"><img v-if="selected === 'done'" src='@/assets/functionCenter/done-check.png'><img v-if="selected === 'todo'" src='@/assets/functionCenter/done.png'>已办</span></p>
</div>
<div class="search">
<input v-model="searchInput" type="text" v-on:input="searchList()" placeholder="请输入用户名称">
</div>
</div>
<div v-if="(todoList.length === 0 && selected === 'todo') || (doneList.length === 0 && selected === 'done')">
<div class="display">
<img src="@/assets/messageCenter/noMsg.png" alt="">
</div>
</div>
<scroll
v-if="selected === 'todo'"
v-if="selected === 'todo' && todoList.length > 0"
ref="scroll"
:updateData="todoList"
:pullUp="true"
:pullDown="true"
:autoUpdate="true"
:listenScroll="true"
@pullingUp="loadMore()"
@pullingDown="getTodoList()"
>
<div class="pay-content">
<div v-for="(item,index) in todoList" :key="index" class="contract-item">
<div class="header">
<img src="@/assets/contractRepayment/contract.png" alt="">
<h2>客户准入审批</h2>
<p><img src="@/assets/functionCenter/in@2x.png" alt="" @click="approvalInfo(item.document_id, item.document_name, item.record_id)"></p>
<p><img src="@/assets/functionCenter/in@2x.png" alt="" @click="approvalInfo(item.document_id, item.document_name, item.record_id, 'todo')"></p>
</div>
<div class="center">
<h2>客户名称</h2>
......@@ -49,20 +52,20 @@
</scroll>
<scroll
v-if="selected === 'done'"
v-if="selected === 'done' && doneList.length > 0"
ref="scroll"
:updateData="doneList"
:pullUp="true"
:pullDown="true"
:autoUpdate="true"
:listenScroll="true"
@pullingUp="loadMore()"
@pullingDown="getDoneList()"
>
<div class="pay-content">
<div v-for="(item,index) in doneList" :key="index" class="contract-item">
<div class="header">
<img src="@/assets/contractRepayment/contract.png" alt="">
<h2>客户准入审批</h2>
<p><img src="@/assets/functionCenter/in@2x.png" alt="" @click="approvalInfo(item.document_id, item.document_name, item.record_id)"></p>
<p><img src="@/assets/functionCenter/in@2x.png" alt="" @click="approvalInfo(item.document_id, item.document_name, item.record_id, 'done')"></p>
</div>
<div class="center">
<h2>客户名称</h2>
......@@ -86,7 +89,6 @@ export default {
doneList: [],
pageNum: 1,
pageNum_1: 1,
ifPull: true,
mysetTimeout: null
}
},
......@@ -118,9 +120,12 @@ export default {
}
},
getTodoList () {
this.pageNum = 1
this.todoList = [];
let param = {
document_name: '',
pagenum: 1,
phone: window.localStorage.getItem('user_phone'),
pagenum: this.pageNum,
pagesize: 10,
}
let url = $config.basePath + 'to_do_list'
......@@ -139,9 +144,12 @@ export default {
})
},
getDoneList () {
this.pageNum_1 = 1
this.doneList = [];
let param = {
document_name: '',
pagenum: 1,
phone: window.localStorage.getItem('user_phone'),
pagenum: this.pageNum_1,
pagesize: 10,
}
let url = $config.basePath + 'done_list'
......@@ -168,6 +176,7 @@ export default {
param = {
document_name: this.searchInput,
pagenum: this.pageNum,
phone: window.localStorage.getItem('user_phone'),
pagesize: 10,
}
} else if (this.selected === "done") {
......@@ -176,13 +185,13 @@ export default {
param = {
document_name: this.searchInput,
pagenum: this.pageNum_1,
phone: window.localStorage.getItem('user_phone'),
pagesize: 10,
}
}
this.hlsPopup.showLoading('请稍后')
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
this.ifPull = false
let returnData = []
if (res.result === 'S') {
returnData = res.lists
......@@ -203,28 +212,36 @@ export default {
this.doneList.push(data)
})
}
this.ifPull = true
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
approvalInfo(document_id, document_name, record_id) {
approvalInfo(document_id, document_name, record_id, type) {
this.$router.push({
name: 'approvalInfo',
params: {
document_id: document_id,
document_name: document_name,
record_id: record_id,
type: type,
},
})
}
},
}
</script>
<style lang='less'>
<style lang='less' scoped>
@import "../../styles/vue-1px";
.display {
position: fixed;
top: 0;
img {
width: 100%;
height: 100%;
// margin-top: -70px;
}
}
#homePage {
.wrap {
width: 100%;
......@@ -235,7 +252,14 @@ export default {
display: flex;
background-color: #fff;
padding: 6px 8px 4px 6px;
img {
vertical-align: middle;
width: 15px;
height: 15px;
margin-right: 10px;
position: relative;
top: -2px;
}
p {
text-align: center;
flex: auto;
......
......@@ -27,10 +27,15 @@
</swipe-item>
</swipe>
<div class="functions">
<function-item
<div class="title">资讯动态</div>
<ul>
<li v-for="item in newsList" :key="item.index"><img src="@/assets/homePage/inform.png" alt="">{{item.new_title}}</li>
</ul>
<img src="@/assets/functionCenter/in@2x.png" @click="gotoNews()">
<!-- <function-item
v-for="item in moduleSeparateList.slice(0,4)" :key="item.moduleId" :functionIcon="item.moduleIcon"
:functionName="item.moduleName"
:data="item" @clickFunction="goModuleFunction"/>
:data="item" @clickFunction="goModuleFunction"/> -->
</div>
<div class="center-pic">
......@@ -79,6 +84,7 @@ export default {
isVisitor: false,
moduleSeparateList: [],
guessingList: [],
newsList: []
}
},
watch: {},
......@@ -94,11 +100,11 @@ export default {
vm.isVisitor = !window.localStorage.getItem('password')
// vm.guessingQuery() // 猜你喜欢查询
vm.getLocation()
vm.getNews()
// }
})
},
methods:
{
methods:{
// 定位
getLocation () {
let vm = this
......@@ -124,20 +130,20 @@ export default {
// }, {enableHighAccuracy: true})
// } else { // ios使用插件定位
console.log('&&&&&&&&&&&&___ios')
if (!$config.isMobilePlatform) {
baidumap_location.getCurrentPosition(function (result) {
if (window.localStorage.getItem('province')) {
vm.city = window.localStorage.getItem('city')
vm.province = window.localStorage.getItem('province')
vm.guessingQuery(vm.city)
} else {
vm.city = result.city
vm.province = result.province
vm.guessingQuery(result.city)
}
}, function (error) {
})
}
baidumap_location.getCurrentPosition(function (result) {
if (window.localStorage.getItem('province')) {
vm.city = window.localStorage.getItem('city')
vm.province = window.localStorage.getItem('province')
vm.guessingQuery(vm.city)
} else {
vm.city = result.city
vm.province = result.province
vm.guessingQuery(result.city)
}
}, function (error) {
})
// if (!$config.isMobilePlatform) {
// }
// }
// setTimeout(vm.guessingQuery(), 0)
},
......@@ -146,6 +152,19 @@ export default {
name: data.functionState,
})
},
// 新闻资讯
getNews() {
let url = $config.basePath + 'news_entrance_list'
let param = {}
this.$post(url, param).then((res) => {
this.hlsPopup.hideLoading()
if (res.result === 'S') {
this.newsList = res.lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
goModuleFunction (data) {
let vm = this
if (this.isVisitor && data.moduleState !== 'FinancingTrial') {
......@@ -174,6 +193,11 @@ export default {
},
})
},
gotoNews () {
this.$router.push({
name: 'NewsList',
})
},
// 用户信息查询
userQuery () {
let vm = this
......@@ -278,14 +302,45 @@ export default {
}
.functions {
height: 108px;
height: 80px;
width: 96%;
margin: -6px auto 10px;
margin: 0 auto 10px;
border-radius: 10px;
background: #fff;
padding-top: 10px;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
img {
height: 15px;
}
.title {
flex-grow: 0;
flex-basis: 70px;
padding: 0 15px;
color: #1D3FFF;
font-weight: 600;
line-height: 30px;
text-align: center;
border-right: 1px solid#F1F0F5;
}
ul {
flex-grow: 2;
flex-basis: 2;
li {
height: 30px;
line-height: 30px;
vertical-align: middle;
text-align: left;
text-indent: 15px;
font-size: 14px;
img {
vertical-align: middle;
margin-right: 15px;
width: 15px;
}
}
}
&:before {
content: ''
......
<template>
<h-view class="public-style about" title="联系我们">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>联系我们</span>
</div>
</h-header>
<h-content>
<div class="contact-us">
<p class="title">徐工金融服务事业部</p>
<div class="Address">
<ul>
<li>地址:江苏省徐州市经济开发区驮蓝山1-1号</li>
<li>邮编:221004</li>
<li>网址:http://www.xcmg.com/xgjr/</li>
</ul>
</div>
<div class="RentCentral">
<ul>
<li>融资租赁业务中心</li>
<li>电话:0516-83466800</li>
</ul>
</div>
<div class="Ercode">
<ul>
<li><img src="@/assets/myInfo/xugongFinancial.jpg"></li>
<li>徐工金融<br>微信公众号</li>
</ul>
<ul>
<li><img src="@/assets/myInfo/xugongRent.jpg"></li>
<li>徐工租赁<br>微信公众号</li>
</ul>
</div>
<div @click="shibie()">点我试用插件</div>
</div>
</h-content>
</h-view>
</template>
<script>
export default {
data () {
return {
currentVersion: process.env.currentVersion,
}
},
methods: {
shibie() {
cordova.plugins.IdCardPlugin.idCardIdentify({"idNum":"123213213123123123123213","idName":"张三","timeout":10000}, function (success) {alert(success);
}, function (reason) {
alert("Failed: " + reason);
});
}
}
}
</script>
<style lang="less">
.contact-us {
padding: 20px;
.title {
color: #1D3FFF;
font-weight: 400;
border-left: 5px solid #1D3FFF;
text-indent: 20px;
}
.Address{
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383F45;
padding: 20px 0;
ul {
li {
height: 20px;
}
}
}
.RentCentral {
height: 80px;
width: 100%;
padding: 10px;
font-family: PingFangSC-Regular;
background: rgba(29,63,255,0.08);
border-radius: 4px;
font-size: 14px;
color: #383F45;
li {
height: 30px;
line-height: 30px;
}
}
.Ercode{
padding: 20px;
display: flex;
justify-content: space-around;
ul {
width: 40vw;
li{
width: 40vw;
text-align: center;
font-family: PingFangSC-Regulal;
font-size: 13px;
color: #383F45;
line-height: 20px;
img {
width: 40vw;
height: 40vw;
}
}
}
}
}
</style>
......@@ -28,7 +28,7 @@
</div>
</div>
<!-- <div v-if="multipleRole!=='GUTA'&&user_bp_type!=='GUTA'" class="card"> -->
<div class="card">
<!-- <div class="card">
<div class="card-info">
<div class="card-bottom">
<div v-if="((user_bp_type!=='TENANT')&&(user_bp_type!=='GUTA')&&(multipleRole!=='GUTA')&&(multipleRole!=='TENANT'))||multipleRole==='AGENT'" @click="goStart">
......@@ -57,63 +57,20 @@
</div>
</div>
</div>
</div>
</div> -->
</div>
<h-content class="my-content">
<div class="content-top">
<div class="userInfo">我的合同</div>
<div class="my-contract">
<div v-if="(user_bp_type === 'AGENT'&&multipleRole==='AGENT') || user_bp_type === 'OFFICE'||multipleRole==='AGENT'||(user_bp_type === 'AGENT'&&!multipleRole)" class="content-wrap" @click="goCreate">
<span
v-if="prjSubmit > 0"
:class="{'content-wrap-class-width':prjSubmit>99, 'content-wrap-class':prjSubmit<99}"
>{{ prjSubmit > 99 ? '99+' : prjSubmit }}</span>
<img src="@/assets/myInfo/contractCreate.png" >
<p>合同创建</p>
</div>
<div class="content-wrap" @click="goSign">
<span
v-if="signCount > 0"
:class="{'content-wrap-class-width':signCount>99, 'content-wrap-class':signCount<99}"
>{{ signCount > 99 ? '99+' : signCount }}</span>
<img src="@/assets/myInfo/unSign.png" >
<p>待签约</p>
</div>
<!-- <div class="content-wrap" @click="goConfirm">
<span
:class="{'content-wrap-class-width':confirmCount>99, 'content-wrap-class':confirmCount<99}"
>{{ confirmCount > 99 ? '99+' : confirmCount }}</span>
<img src="@/assets/myInfo/unConfirm.png" >
<p>待确认</p>
</div>-->
<div v-if="user_bp_type!=='FACTORY'" class="content-wrap" @click="goVideoSign">
<span
v-if="faceSign > 0"
:class="{'content-wrap-class-width':faceSign>99, 'content-wrap-class':faceSign<99}"
>{{ faceSign > 99 ? '99+' : faceSign }}</span>
<img src="@/assets/myInfo/unFace.png" >
<p>待面签</p>
</div>
<div
v-if="((user_bp_type==='TENANT')||(user_bp_type==='GUTA')||(multipleRole==='GUTA')||(multipleRole==='TENANT'))&&multipleRole!=='AGENT'"
class="content-wrap"
@click="goCarConfirm"
>
<span
v-if="carCount > 0"
:class="{'content-wrap-class-width':carCount>99, 'content-wrap-class':carCount<99}"
style="margin-left:5px;"
>{{ carCount > 99 ? '99+' : carCount }}</span>
<img src="@/assets/myInfo/carConfirm.png" >
<p>发车确认</p>
</div>
</div>
<list-item :item-height="44" class="list">
<item @click.native="goContract">
<img slot="left-icon" src="@/assets/myInfo/agreement.png" class="left-icon" >
<div slot="name">我的合同</div>
</item>
<item
v-if="((user_bp_type==='TENANT')||(user_bp_type==='GUTA'||(multipleRole==='GUTA')||(multipleRole==='TENANT')))&&multipleRole!=='AGENT'"
@click.native="goReimburse"
>
<img slot="left-icon" src="@/assets/myInfo/myRefund.png" class="left-icon" >
<img slot="left-icon" src="@/assets/myInfo/repay.png" class="left-icon" >
<div slot="name">我的还款</div>
</item>
<item v-if="user_bp_type==='TENANT'" @click.native="goInvoice">
......@@ -137,6 +94,14 @@
<img slot="left-icon" src="@/assets/myInfo/about.png" class="left-icon" >
<div slot="name">关于徐工</div>
</item>
<item @click.native="goSetting">
<img slot="left-icon" src="@/assets/myInfo/setting.png" class="left-icon" >
<div slot="name">设置</div>
</item>
<item @click.native="goContactUs">
<img slot="left-icon" src="@/assets/myInfo/contact.png" class="left-icon" >
<div slot="name">联系我们</div>
</item>
<!-- <item @click.native="updateVersion">
<img slot="left-icon" src="@/assets/myInfo/refresh.png" class="left-icon" >
<div slot="name">检查更新</div>
......@@ -151,6 +116,7 @@
<div slot="name">退出登录</div>
</item>
</list-item>
<div class="version">版本号:{{currentVersion}}</div>
<button v-if="!popSetect" @click="approveBtn ? unBind() : changePageHead()">{{ description }}</button>
<button v-if="popSetect" @click="popSetectBox=true">{{ description }}</button>
</div>
......@@ -292,7 +258,6 @@ export default {
}
},
},
created () {},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.signCount = '0'
......@@ -414,6 +379,11 @@ export default {
this.popSetect = false
}
},
goContract () {
this.$router.push({
name: 'MyContract',
})
},
// 我的发票
goInvoice () {
this.$router.push({
......@@ -837,7 +807,6 @@ export default {
changePageHead () {
let vm = this
if (vm.bp_id) {
debugger;
if (
vm.user_bp_status === 'NEW' ||
vm.user_bp_status === 'RETURN'
......@@ -1103,6 +1072,16 @@ export default {
name: 'About',
})
},
goSetting () {
this.$router.push({
name: 'Setting',
})
},
goContactUs () {
this.$router.push({
name: 'ContactUs',
})
}
},
}
</script>
......@@ -1118,7 +1097,7 @@ export default {
.card-top {
width: 330px;
margin: 0 auto;
height: 110px;
height: 170px;
display: flex;
align-items: center;
.sign {
......@@ -1232,11 +1211,18 @@ export default {
justify-content: center;
flex-wrap: wrap;
.content-top {
width: 359px;
width: 339px;
height: 121px;
background-color: #fff;
border-radius: 4px;
margin-top: 8px;
.version {
padding: 10px 0;
text-align: center;
font-family: PingFangSC-Regular;
font-size: 14px;
color:#656464;
}
}
.userInfo {
height: 45px;
......@@ -1268,7 +1254,7 @@ export default {
justify-content: flex-start;
.content-wrap {
position: relative;
width: 33%;
width: 50%;
display: flex;
flex-direction: column;
align-items: center;
......@@ -1315,7 +1301,7 @@ export default {
}*/
}
.list {
width: 359px;
width: 339px;
margin: 0 auto;
background-color: #fff;
font-family: PingFangSC-Regular;
......@@ -1323,11 +1309,10 @@ export default {
color: #656464;
letter-spacing: 0;
line-height: 18px;
margin-top: 25px;
}
}
button {
width: 359px;
width: 339px;
height: 40px;
background: @headerColor;
border-radius: 4px;
......
This diff is collapsed.
<!--
* @Descrip: 主页
* @Author: your name
* @Date: 2019-10-10 14:25:15
* @LastEditTime: 2019-11-14 09:56:22
* @LastEditors: Please set LastEditors
-->
<template>
<h-view id="newInfo" class="public-style" title="新闻">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>新闻</span>
</div>
</h-header>
<h-content class="has-footer">
<div class="title">{{news.new_title}}</div>
<div class="date">发布时间:{{news.new_date}}</div>
<div class="new_content" v-html="news.new_body"></div>
</h-content>
</h-view>
</template>
<script>
import noImg from '../../assets/productQuery/none.png'
export default {
name: 'ToDoList',
data () {
return {
new_id: '',
news: {},
}
},
watch: {
},
created () {
this.new_id = this.$route.params.new_id
this.getNewsInfo()
},
activated () {
this.new_id = this.$route.params.new_id
this.getNewsInfo()
},
methods: {
getNewsInfo () {
let url = $config.basePath + 'news_query_body'
let param = {
new_id: this.new_id
}
this.hlsPopup.showLoading('请稍后')
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
if (res.result === 'S') {
this.news = res.info
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
}
</script>
<style lang='less'>
@import "../../styles/vue-1px";
.display {
position: fixed;
top: 0;
img {
width: 100%;
height: 100%;
// margin-top: -70px;
}
}
#newInfo {
.title {
padding: 20px;
color: #383F45;
font-weight: 600;
font-size: 16px;
line-height: 20px;
}
.date {
padding: 0 0 20px 0;
margin: 10px 20px;
color: #383F45;
font-size: 14px;
border-bottom: 1px solid #D9DBDF;
}
.new_content {
padding: 20px 20px 50px 20px;
}
.content {
height: 100% !important;
background: #FFFFFF;
}
}
</style>
<!--
* @Descrip: 主页
* @Author: your name
* @Date: 2019-10-10 14:25:15
* @LastEditTime: 2019-11-14 09:56:22
* @LastEditors: Please set LastEditors
-->
<template>
<h-view id="newList" class="public-style" title="资讯动态">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>资讯动态</span>
</div>
</h-header>
<div class="search has-header">
<input v-model="searchInput" type="text" v-on:input="searchList()" placeholder="请输入标题名称">
</div>
<div v-if="newsList.length === 0">
<div class="display">
<img src="@/assets/messageCenter/noMsg.png" alt="">
</div>
</div>
<scroll
ref="scroll"
:updateData="newsList"
:pullUp="true"
:autoUpdate="true"
:listenScroll="true"
@pullingUp="loadMore()"
>
<div class="pay-content" v-for="(item,index) in newsList" :key="index" @click="newsInfo(item.new_id)">
<ul>
<li><img class="title_logo" src="@/assets/homePage/inform.png">{{item.new_title}}</li>
<li>{{item.new_note}}</li>
<li>{{item.new_date}}<span>查看详情<img src="@/assets/functionCenter/in@2x.png"></span></li>
</ul>
</div>
</scroll>
</h-view>
</template>
<script>
import noImg from '../../assets/productQuery/none.png'
export default {
name: 'ToDoList',
data () {
return {
searchInput: '',
newsList: [],
pageNum: 1,
mysetTimeout: null
}
},
watch: {
},
created () {
this.getNewsList()
},
methods: {
// tab切换
isSelected (name) {
this.selected = name
},
searchList () {
if (this.mysetTimeout !== null) {
clearTimeout(this.mysetTimeout)
this.mysetTimeout = setTimeout(() => {
this.loadMore()
}, 1000)
} else {
this.mysetTimeout = setTimeout(() => {
this.loadMore()
}, 1000)
}
},
getNewsList () {
this.newsList = []
let param = {
searchInput: this.searchInput,
pagenum: this.pageNum,
pagesize: 10,
}
let url = $config.basePath + 'news_query_list'
this.hlsPopup.showLoading('请稍后')
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
let returnData = []
if (res.result === 'S') {
returnData = res.lists
if (returnData < 10) {
this.ifPull1 = false
}
returnData.forEach((data, index, array) => {
this.newsList.push(data)
})
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
newsInfo (new_id) {
this.$router.push({
name: 'NewsInfo',
params: {
new_id: new_id,
},
})
},
loadMore () {
this.pageNum ++
let url
let param
url = $config.basePath + 'news_query_list'
param = {
searchInput: this.searchInput,
pagenum: this.pageNum,
pagesize: 10,
}
this.hlsPopup.showLoading('请稍后')
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
this.ifPull = false
let returnData = []
if (res.result === 'S') {
returnData = res.lists
if (returnData.length === 0) {
this.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
this.$refs.scroll.update(true)
} else if (returnData.length === 10) {
this.$refs.scroll.update(true)
}
this.showLists = returnData
returnData.forEach((data, index, array) => {
this.newsList.push(data)
})
this.ifPull = true
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
}
</script>
<style lang='less'>
@import "../../styles/vue-1px";
.display {
position: fixed;
top: 0;
img {
width: 100%;
height: 100%;
// margin-top: -70px;
}
}
#newList {
background: #EFEFEF;
.pay-content {
width: 96%;
margin: 10px auto;
border-radius: 10px;
background: #fff;
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
ul {
flex-grow: 1;
li {
height: 30px;
line-height: 30px;
font-size: 14px;
vertical-align: middle;
text-align: left;
overflow: hidden;
.title_logo {
margin-right: 15px;
}
img {
vertical-align: middle;
width: 15px;
}
&:nth-child(2) {
border-bottom: 1px solid #F1F0F5;
}
span {
color: #1D3FFF;
float: right;
}
&:nth-child(2) {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56,63,69,0.60);
letter-spacing: 0;
}
&:nth-child(3) {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56,63,69,0.60);
letter-spacing: 0;
}
}
}
}
.search {
background-color: #fff;
padding: 8px 12px;
position: absolute;
width: 100%;
z-index: 100;
margin-bottom: 8px;
input {
padding-left: 12px;
height: 36px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #21254c;
line-height: 36px;
border-radius: 4px;
background: url("../../assets/contractStart/search1.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
}
input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888C8F;
letter-spacing: 0;
}
input:focus {
background: url("../../assets/contractStart/search2.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
border: 2px solid #bcc6ff;
}
}
}
</style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -21,6 +21,11 @@
<img slot="icon" src="../assets/image/tab/n_home@2x.png">
<span slot="label">主页</span>
</tabbar-item>
<tabbar-item :link="{path:'/tab/query-home'}" :selected="$route.path === '/tab/query-home'">
<img slot="icon-active" src="../assets/image/tab/product@2x.png">
<img slot="icon" src="../assets/image/tab/n_product@2x.png">
<span slot="label">产品中心</span>
</tabbar-item>
<tabbar-item :link="{path:'/tab/message-center'}" :selected="$route.path === '/tab/message-center'">
<img slot="icon-active" src="../assets/image/tab/message@2x.png">
<img slot="icon" src="../assets/image/tab/n_message@2x.png">
......
......@@ -480,7 +480,7 @@ export default {
// 绑定查询入口
next(vm => {
vm.isAddNewType = false
if (from.fullPath === '/tab/my-info' || from.fullPath === '/tab/function-center') {
if (from.fullPath === '/tab/my-info' || from.fullPath === '/tab/function-center' || from.fullPath === '/Setting') {
if (vm.$route.params.status === 'APPROVED') {
vm.isApproved = true
} else {
......
......@@ -13,6 +13,7 @@ import Login from '@/pages/login'
import Regiester from '@/pages/regiester'
import Regiester2 from '@/pages/regiester2'
import PwdForgot from '@/pages/pwd-forgotten'
import PwdReset from '@/pages/pwd-reset'
import FingerLogin from '@/pages/finger-login'
import Tab from '@/pages/tab'
import HomePage from '@/pages/home/home-page'
......@@ -79,6 +80,7 @@ import ProDetailed from '@/pages/productQuery/product-detailed'
// 消息中心
import MessageCenter from '@/pages/messageCenter/message-list'
import ProductList from '@/pages/productQuery/product-list'
import EntityList from '@/pages/productQuery/entity-list'
import RejectDetail from '@/pages/messageCenter/reject-detail'
// 帮助与反馈
import HelpList from '@/pages/help/help-list'
......@@ -119,6 +121,7 @@ import NPBankInfo from '@/pages/userBindNew/np/bank-info'
import AccessoryInfo from '@/pages/userBindNew/np/accessory-info'
// 合同创建
import MyContract from '@/pages/contractCreate/my-contract'
import ContractCreateList from '@/pages/contractCreate/contract-create-list'
import SalesInfo from '@/pages/contractCreate/sales-info'
import PickLessee from '@/pages/contractCreate/pick-lessee'
......@@ -129,6 +132,8 @@ import previewPdf from '@/pages/contractSigning/previewPdf'
import Addundertake from '@/pages/contractCreate/add-undertake'
import About from '@/pages/myInfo/About'
import ContactUs from '@/pages/myInfo/ContactUs'
import Setting from '@/pages/myInfo/setting'
import UserAgree from '@/pages/myInfo/UserAgreement'
import PrivacyPolicy from '@/pages/myInfo/PrivacyPolicy'
......@@ -139,6 +144,8 @@ import ToDoList from '@/pages/functionCenter/to-do-list'
import approvalInfo from '@/pages/functionCenter/approval-info'
// 我的发票
import MyInvoice from '@/pages/invoice/invoice'
import NewsList from '@/pages/news/newslist'
import NewsInfo from '@/pages/news/NewsInfo'
Vue.use(Router)
export default new Router({
......@@ -166,9 +173,19 @@ export default new Router({
{path: '/tab/my-info', component: MyInfo, name: 'MyInfo', meta: {keepAlive: true}},
{path: '/tab/message-center', component: MessageCenter, name: 'MessageCenter', meta: {keepAlive: true}},
{path: '/tab/function-center', component: FunctionCenter, name: 'FunctionCenter', meta: {keepAlive: true}},
{path: '/tab/ToDoList', component: ToDoList, name: 'ToDoList', meta: {keepAlive: true}},
{path: '/tab/query-home', component: QueryHome, name: 'TabQueryHome', meta: {keepAlive: true}},
],
},
// 待办审核
{path: '/ToDoList', component: ToDoList, name: 'ToDoList', meta: {keepAlive: true}},
// 资讯动态
{path: '/NewsList', component: NewsList, name: 'NewsList', meta: {keepAlive: true}},
{path: '/NewsInfo', component: NewsInfo, name: 'NewsInfo', meta: {keepAlive: true}},
// 产品查询
{path: '/query-home', component: QueryHome, name: 'QueryHome', meta: {keepAlive: true}},
{path: '/product-detailed', component: ProDetailed, name: 'ProDetailed', meta: {keepAlive: true}},
{path: '/product-list', component: ProductList, name: 'ProductList', meta: {keepAlive: true}},
{path: '/entity-list', component: EntityList, name: 'EntityList', meta: {keepAlive: true}},
{path: '/tab/approvalInfo', component: approvalInfo, name: 'approvalInfo', meta: {keepAlive: true}},
{
path: '/home-page',
......@@ -214,7 +231,7 @@ export default new Router({
meta: {keepAlive: true},
},
{path: '/pwd-forgot', component: PwdForgot, name: 'PwdForgot', meta: {keepAlive: true}},
{path: '/pwd-reset', component: PwdReset, name: 'PwdReset', meta: {keepAlive: true}},
// test工具类
{path: '/hls-popup', component: HlsPopup, name: 'HlsPopup', meta: {keepAlive: false}},
// 用户绑定
......@@ -261,10 +278,6 @@ export default new Router({
{path: '/margin-pay-entry', component: MarginPayEntry, name: 'MarginPayEntry', meta: {keepAlive: false}},
// 支付页
{path: '/pay-page', component: PayPage, name: 'PayPage', meta: {keepAlive: false}},
// 产品查询
{path: '/query-home', component: QueryHome, name: 'QueryHome', meta: {keepAlive: true}},
{path: '/product-detailed', component: ProDetailed, name: 'ProDetailed', meta: {keepAlive: true}},
{path: '/product-list', component: ProductList, name: 'ProductList', meta: {keepAlive: true}},
// 帮助与反馈
{path: '/help-list', component: HelpList, name: 'HelpList', meta: {keepAlive: true}},
{path: '/help-detail', component: HelpDetail, name: 'HelpDetail', meta: {keepAlive: true}},
......@@ -301,7 +314,8 @@ export default new Router({
{path: '/np-invoice-info', component: NPInvoiceInfo, name: 'NPInvoiceInfo', meta: {keepAlive: true}},
{path: '/np-bank-info', component: NPBankInfo, name: 'NPBankInfo', meta: {keepAlive: false}},
{path: '/accessory-info', component: AccessoryInfo, name: 'AccessoryInfo', meta: {keepAlive: true}},
// 我的合同
{path: '/my-contract', component: MyContract, name: 'MyContract', meta: {keepAlive: true}},
// 合同创建
{path: '/contract-create-list', component: ContractCreateList, name: 'ContractCreateList', meta: {keepAlive: true}},
{path: '/sales-info', component: SalesInfo, name: 'SalesInfo', meta: {keepAlive: true}},
......@@ -311,7 +325,6 @@ export default new Router({
{path: '/create-enclosure-info', component: CreateEnclosureInfo, name: 'CreateEnclosureInfo', meta: {keepAlive: true}},
{path: '/previewPdf', component: previewPdf, name: 'previewPdf', meta: {keepAlive: false}},
{path: '/add-undertake', component: Addundertake, name: 'Addundertake', meta: {keepAlive: false}},
// 我的发票
{path: '/invoice', component: MyInvoice, name: 'MyInvoice', meta: {keepAlive: false}},
{
......@@ -320,6 +333,18 @@ export default new Router({
name: 'About',
meta: { keepAlive: true },
},
{
path: '/ContactUs',
component: ContactUs,
name: 'ContactUs',
meta: { keepAlive: true },
},
{
path: '/Setting',
component: Setting,
name: 'Setting',
meta: { keepAlive: true },
},
{
path: '/UserAgree',
component: UserAgree,
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width,viewport-fit=cover"><meta name=format-detection content="telephone=no"><meta name=format-detection content="email=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black><script type=text/javascript src=./static/vuePlatform.js></script><script type=text/javascript src=./static/prototype.js></script><script type=text/javascript src=./cordova.js></script><script type=text/javascript src="http://api.map.baidu.com/api?v=2.0&ak=Eoo0EtfjYCdAy7r8D19gZ0vMojdZpHqU"></script><title>徐工金服</title><link href=./static/css/app.039170d820a8558db6e0d2b704020095.css rel=stylesheet></head><body><div id=app-box></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.1457c8353aa3e36618de.js></script><script type=text/javascript src=./static/js/app.b3cbc800531f0cbbfdaf.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width,viewport-fit=cover"><meta name=format-detection content="telephone=no"><meta name=format-detection content="email=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black><script type=text/javascript src=./static/vuePlatform.js></script><script type=text/javascript src=./static/prototype.js></script><script type=text/javascript src=./cordova.js></script><script type=text/javascript src="http://api.map.baidu.com/api?v=2.0&ak=Eoo0EtfjYCdAy7r8D19gZ0vMojdZpHqU"></script><title>徐工金服</title><link href=./static/css/app.7524d7da4ccbcd4f798bef747d2739f1.css rel=stylesheet></head><body><div id=app-box></div><script type=text/javascript src=./static/js/manifest.6a178e8d77c32e3c385d.js></script><script type=text/javascript src=./static/js/vendor.d1d652612de8a132d4e5.js></script><script type=text/javascript src=./static/js/app.17e49eb6f457d9b71673.js></script></body></html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment