Commit cca0a09d authored by JingChao's avatar JingChao

Merge branch 'wechat'

parents 101b7510 dad53d96
...@@ -42,18 +42,10 @@ module.exports = { ...@@ -42,18 +42,10 @@ module.exports = {
type: 'confirm', type: 'confirm',
message: 'install workflow modules in App?', message: 'install workflow modules in App?',
}, },
/*calculate:{
type: 'confirm',
message: 'install calculate modules in App?',
},*/
riskstrom:{ riskstrom:{
type: 'confirm', type: 'confirm',
message: 'install riskstrom modules in App?', message: 'install riskstrom modules in App?',
}, },
robot:{
type: 'confirm',
message: 'install robot modules in App?',
},
esign:{ esign:{
type: 'confirm', type: 'confirm',
message: 'install esign modules in App?', message: 'install esign modules in App?',
...@@ -97,7 +89,6 @@ module.exports = { ...@@ -97,7 +89,6 @@ module.exports = {
'src/pages/applications/workflow/**/*': 'wfl', 'src/pages/applications/workflow/**/*': 'wfl',
'src/pages/applications/financCalculate/**/*': 'project', 'src/pages/applications/financCalculate/**/*': 'project',
'src/pages/applications/riskStorm/**/*': 'riskstrom', 'src/pages/applications/riskStorm/**/*': 'riskstrom',
'src/pages/applications/robot/**/*': 'robot',
'src/pages/applications/esign/**/*': 'esign', 'src/pages/applications/esign/**/*': 'esign',
'src/pages/applications/reports/**/*': 'report', 'src/pages/applications/reports/**/*': 'report',
'src/pages/applications/qiXinBao/**/*': 'qixin', 'src/pages/applications/qiXinBao/**/*': 'qixin',
......
...@@ -25,8 +25,8 @@ const webpackConfig = merge(baseWebpackConfig, { ...@@ -25,8 +25,8 @@ const webpackConfig = merge(baseWebpackConfig, {
devtool: config.build.productionSourceMap ? config.build.devtool : false, devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: { output: {
path: config.build.assetsRoot, path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'), filename: utils.assetsPath('js/[name][id].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') chunkFilename: utils.assetsPath('js/[name][id].[chunkhash].js')
}, },
plugins: [ plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html // http://vuejs.github.io/vue-loader/en/workflow/production.html
......
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.hls.easy.car" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>车租易 ToC</name>
<description>
测试环境版
</description>
<author email="jingchao.wu@hand-china.com" href="http://example.com.com/">
chris
</author>
<content src="index.html"/>
<access origin="*"/>
<access origin="mailto:*" launch-external="yes"/>
<access origin="tel:*" launch-external="yes"/>
<allow-intent href="mailto:*"/>
<allow-intent href="tel:*"/>
<allow-navigation href="mailto:*"/>
<allow-navigation href="tel:*"/>
<allow-navigation href="http://wechat.hand-china.com/*" />
<allow-navigation href="https://www.pgyer.com/*"/>
<access launch-external="yes" origin="tel:*"/>
<access launch-external="yes" origin="sms:*"/>
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="android-windowSoftInputMode" value="adjustPan|stateAlwaysHidden"/>
<preference name="KeyboardDisplayRequiresUserAction" value="false"/>
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar"/>
</feature>
<platform name="android">
<allow-intent href="market:*" />
<hook src="hooks/copy-build-extras-gradle.js" type="before_build"/>
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<icon src="resources/ios/icon/icon-small@3x.png"/>
<preference name="xwalkVersion" value="19+"/>
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect"/>
<preference name="xwalkMode" value="embedded"/>
<preference name="xwalkMultipleApk" value="true"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
</platform>
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
</widget>
...@@ -72,7 +72,7 @@ module.exports = { ...@@ -72,7 +72,7 @@ module.exports = {
* Source Maps * Source Maps
*/ */
productionSourceMap: true, productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production // https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map', devtool: '#source-map',
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<script src="https://gw.alipayobjects.com/os/antv/assets/lib/lodash-4.17.4.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/assets/lib/lodash-4.17.4.min.js"></script>
<script src="https://gw.alipayobjects.com/os/antv/assets/lib/jquery-3.2.1.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/assets/lib/jquery-3.2.1.min.js"></script>
<script src="https://gw.alipayobjects.com/os/rmsportal/NjNldKHIVQRozfbAOJUW.js"></script> <script src="https://gw.alipayobjects.com/os/rmsportal/NjNldKHIVQRozfbAOJUW.js"></script>
<script src="static/prototype.js"></script>
<title>车租易</title> <title>车租易</title>
</head> </head>
<body> <body>
......
...@@ -20,9 +20,6 @@ import { ...@@ -20,9 +20,6 @@ import {
Picker, Picker,
} from 'vux' } from 'vux'
import './scripts/prototype'
import './scripts/vuePlatform'
import WorkflowPrj from './components/workflow-prj' import WorkflowPrj from './components/workflow-prj'
import WorkflowCon from './components/workflow-con' import WorkflowCon from './components/workflow-con'
...@@ -98,11 +95,8 @@ Vue.prototype.$routeGo = routeGo ...@@ -98,11 +95,8 @@ Vue.prototype.$routeGo = routeGo
FastClick.attach(document.body) FastClick.attach(document.body)
Vue.config.productionTip = false Vue.config.productionTip = true
vum.$vumPlatform.ready(function () {
})
/* eslint-disable no-new */ /* eslint-disable no-new */
new Vue({ new Vue({
......
<template> <template>
<h-view class="public-style contract-mainten-list" title="合同维护"> <h-view class="public-style contract-mainten-list" title="合同维护">
<h-content class="scroll-content"> <s-tab @tabClick="switchTab">
<s-tab @tabClick="switchTab"> <tab-item>本年</tab-item>
<tab-item>本年</tab-item> <tab-item>本季</tab-item>
<tab-item>本季</tab-item> <tab-item>本月</tab-item>
<tab-item>本月</tab-item> </s-tab>
</s-tab> <div class="info-board">
<div class="info-board"> <div class="board-line">
<div class="board-line"> <div class="ionic-img">
<div class="ionic-img"> <img src="@/assets/image/contractMainten/total@2x.png">
<img src="@/assets/image/contractMainten/total@2x.png"> </div>
</div> <div class="text">合同总计</div>
<div class="text">合同总计</div> </div>
<div class="board-line"><span>\{{ infoShow.contract_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ infoShow.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">签约</div>
<div class="number"><span>\{{ infoShow.sign_count }}</span></div>
</div> </div>
<div class="board-line"><span>\{{ infoShow.contract_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ infoShow.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">签约</div>
<div class="number"><span>\{{ infoShow.sign_count }}</span></div>
</div>
<div class="board-block"> <div class="board-block">
<div class="type">审批中</div> <div class="type">审批中</div>
<div class="number"><span>\{{ infoShow.incept_count }}</span></div> <div class="number"><span>\{{ infoShow.incept_count }}</span></div>
</div> </div>
<div class="board-block"> <div class="board-block">
<div class="type">拒绝</div> <div class="type">拒绝</div>
<div class="number"><span>\{{ infoShow.overdue_count }}</span></div> <div class="number"><span>\{{ infoShow.overdue_count }}</span></div>
</div>
</div> </div>
</div> </div>
<div class="search"> </div>
<div class="searchInput"> <div class="search">
<div class="img-box"><img src="@/assets/image/contractMainten/search@2x.png"></div> <div class="searchInput">
<input <div class="img-box"><img src="@/assets/image/contractMainten/search@2x.png"></div>
v-model="searchCondition.input" <input
placeholder="请输入合同编号/承租人名称" v-model="searchCondition.input"
@input="detectSearchCondition()"> placeholder="请输入合同编号/承租人名称"
</div> @input="detectSearchCondition()">
</div> </div>
<scroll </div>
ref="scroll" <scroll
:updateData="[con_list]" ref="scroll"
:pullUp="true" :updateData="[con_list]"
class="content-scroll" :pullUp="true"
@pullingUp="loadMore"> @pullingUp="loadMore">
<list-item :item-height="80"> <list-item :item-height="80">
<item <item
v-for="(list,index) in con_list" :key="index" :proportion="[5,1]" :show-arrow="true" v-for="(list,index) in con_list" :key="index" :proportion="[5,1]" :show-arrow="true"
@click.native="goContractMainten(list)"> @click.native="goContractMainten(list)">
<img slot="left-icon" src="@/assets/image/contractMainten/item@2x.png" class="left-icon"> <img slot="left-icon" src="@/assets/image/contractMainten/item@2x.png" class="left-icon">
<div slot="name" class="text"> <div slot="name" class="text">
<div class="cont-name" style="font-size: 16px;color: #5D98F6">合同编号:\{{ list.contract_number }}</div> <div class="cont-name" style="font-size: 16px;color: #5D98F6">合同编号:\{{ list.contract_number }}</div>
<div class="cont-type" style="color: #8C8C8C;">承租人名称:\{{ list.bp_id_tenant_n }}</div> <div class="cont-type" style="color: #8C8C8C;">承租人名称:\{{ list.bp_id_tenant_n }}</div>
<div class="cont-type" style="color: #8C8C8C;">单据类别:\{{ list.document_type_n }}</div> <div class="cont-type" style="color: #8C8C8C;">单据类别:\{{ list.document_type_n }}</div>
<div class="cont-type" style="color: #8C8C8C;">合同创建日期:\{{ list.creation_date }}</div> <div class="cont-type" style="color: #8C8C8C;">合同创建日期:\{{ list.creation_date }}</div>
</div> </div>
</item> </item>
</list-item> </list-item>
</scroll> </scroll>
</h-content>
</h-view> </h-view>
</template> </template>
...@@ -198,32 +195,19 @@ ...@@ -198,32 +195,19 @@
<style lang="less" rel="stylesheet"> <style lang="less" rel="stylesheet">
.contract-mainten-list { .contract-mainten-list {
.scroll-content{
position: absolute;
top: 0;
bottom: 0;
height: auto;
overflow: hidden;
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
.content-scroll{
top:225px;
}
.content{ .content{
overflow: hidden; overflow: hidden;
} }
.hls-switch-tab .tab-content .h-tab-item .h-item { .hls-switch-tab .tab-content .h-tab-item .h-item {
width: 100%; width: 100%;
} }
.hls-switch-tab { .hls-switch-tab {
position: relative; position: relative;
} }
.info-board { .info-board {
background-color: #FFF; background-color: rgb(255, 255, 255);
position: relative;
z-index: 5;
.board-line { .board-line {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
...@@ -233,25 +217,20 @@ ...@@ -233,25 +217,20 @@
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
padding-bottom: 6px; padding-bottom: 6px;
&:before { &:before {
content: ''; content: '';
} }
&:after { &:after {
content: ''; content: '';
} }
&:first-child { &:first-child {
justify-content: flex-start; justify-content: flex-start;
-webkit-justify-content: flex-start; -webkit-justify-content: flex-start;
} }
&:nth-child(2) { &:nth-child(2) {
justify-content: center; justify-content: center;
-webkit-justify-content: center; -webkit-justify-content: center;
} }
.ionic-img { .ionic-img {
margin-left: 11px; margin-left: 11px;
margin-right: 4px; margin-right: 4px;
...@@ -264,16 +243,13 @@ ...@@ -264,16 +243,13 @@
border: none; border: none;
} }
} }
.text { .text {
font-size: @font-size-middle; font-size: @font-size-middle;
} }
span { span {
font-size: 26px; font-size: 26px;
color: #FF8877; color: rgb(255, 136, 119);
margin-right: 2px; margin-right: 2px;
&:nth-child(2) { &:nth-child(2) {
font-size: @font-size-small; font-size: @font-size-small;
color: #313131; color: #313131;
...@@ -281,7 +257,6 @@ ...@@ -281,7 +257,6 @@
margin-left: 2px; margin-left: 2px;
} }
} }
.board-block { .board-block {
height: 100%; height: 100%;
width: 100%; width: 100%;
...@@ -296,37 +271,35 @@ ...@@ -296,37 +271,35 @@
} }
} }
} }
.search { .search {
display: flex; display: flex;
height: 50px; height: 50px;
background-color: #FFF; background-color: rgb(255, 255, 255);
margin-top: 10px; //margin-top: 10px;
position: relative;
z-index: 5;
padding: 5px 0;
// margin-bottom: 10px; // margin-bottom: 10px;
.searchInput { .searchInput {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
height: 33px; height: 33px;
border: 1px solid #5D98F6; /*no*/ border: 1px solid rgb(93, 152, 246); /*no*/
margin: 7px 10px; margin: 7px 10px;
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
-webkit-align-items: center; -webkit-align-items: center;
.img-box { .img-box {
height: 17px; height: 17px;
border-right: 1px solid #5D98F6; /*no*/ border-right: 1px solid rgb(93, 152, 246); /*no*/
padding: 2px 0; padding: 2px 0;
margin-left: 10px; margin-left: 10px;
img { img {
margin-right: 5px; margin-right: 5px;
width: 15px; width: 15px;
} }
} }
input { input {
width: 100%; width: 100%;
font-size: 13px; font-size: 13px;
...@@ -339,48 +312,32 @@ ...@@ -339,48 +312,32 @@
} }
} }
} }
.vue-better-scroll {
// top: 226px;
}
.vue-better-scroll__wrapper {
margin-top: 10px;
}
.hls-item { .hls-item {
&:nth-child(odd) { &:nth-child(odd) {
background-color: #EFF1F3; background-color: rgb(239, 241, 243);
} }
&:nth-child(even) { &:nth-child(even) {
background-color: #fff; background-color: #fff;
} }
.contents .add-name { .contents .add-name {
.left-icon { .left-icon {
width: 34px; width: 34px;
} }
.text { .text {
margin-left: 15px; margin-left: 15px;
.cont { .cont {
margin-top: 5px; margin-top: 5px;
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
&:first-child { &:first-child {
margin-top: 0; margin-top: 0;
} }
} }
.cont-num { .cont-num {
margin-top: 8px; margin-top: 8px;
font-size: 15px; font-size: 15px;
line-height: 21px; line-height: 21px;
color: #5D98F6; color: rgb(93, 152, 246);
} }
} }
} }
......
<template> <template>
<h-view class="public-style contract-sign-list" title="合同签约"> <h-view class="public-style contract-sign-list" title="合同签约">
<h-content class="scroll-content"> <s-tab @tabClick="switchTab">
<s-tab @tabClick="switchTab"> <tab-item>本年</tab-item>
<tab-item>本年</tab-item> <tab-item>本季</tab-item>
<tab-item>本季</tab-item> <tab-item>本月</tab-item>
<tab-item>本月</tab-item> </s-tab>
</s-tab> <div class="info-board">
<div class="info-board"> <div class="board-line">
<div class="board-line"> <div class="ionic-img">
<div class="ionic-img"> <img src="@/assets/image/contractMainten/total@2x.png">
<img src="@/assets/image/contractMainten/total@2x.png"> </div>
</div> <div class="text">合同总计</div>
<div class="text">合同总计</div> </div>
<div class="board-line"><span>\{{ infoShow.contract_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ infoShow.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">签约</div>
<div class="number"><span>\{{ infoShow.sign_count }}</span></div>
</div> </div>
<div class="board-line"><span>\{{ infoShow.contract_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ infoShow.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">签约</div>
<div class="number"><span>\{{ infoShow.sign_count }}</span></div>
</div>
<div class="board-block"> <div class="board-block">
<div class="type">审批中</div> <div class="type">审批中</div>
<div class="number"><span>\{{ infoShow.incept_count }}</span></div> <div class="number"><span>\{{ infoShow.incept_count }}</span></div>
</div> </div>
<div class="board-block"> <div class="board-block">
<div class="type">拒绝</div> <div class="type">拒绝</div>
<div class="number"><span>\{{ infoShow.overdue_count }}</span></div> <div class="number"><span>\{{ infoShow.overdue_count }}</span></div>
</div>
</div> </div>
</div> </div>
<div class="search"> </div>
<div class="searchInput"> <div class="search">
<div class="img-box"><img src="@/assets/image/contractMainten/search@2x.png"></div> <div class="searchInput">
<input <div class="img-box"><img src="@/assets/image/contractMainten/search@2x.png"></div>
v-model="searchCondition.input" <input
placeholder="请输入合同编号/承租人名称" v-model="searchCondition.input"
@input="detectSearchCondition()"> placeholder="请输入合同编号/承租人名称"
</div> @input="detectSearchCondition()">
</div> </div>
<scroll </div>
ref="scroll" <scroll
:updateData="[con_list]" ref="scroll"
:pullUp="true" :updateData="[con_list]"
class="content-scroll" :pullUp="true"
@pullingUp="loadMore"> @pullingUp="loadMore">
<list-item :item-height="80"> <list-item :item-height="80">
<item <item
v-for="(list,index) in con_list" :key="index" :proportion="[5,1]" :show-arrow="true" v-for="(list,index) in con_list" :key="index" :proportion="[5,1]" :show-arrow="true"
@click.native="goContractMainten(list)"> @click.native="goContractMainten(list)">
<img slot="left-icon" src="@/assets/image/contractMainten/item@2x.png" class="left-icon"> <img slot="left-icon" src="@/assets/image/contractMainten/item@2x.png" class="left-icon">
<div slot="name" class="text"> <div slot="name" class="text">
<div class="cont-name" style="font-size: 16px;color: #5D98F6">合同编号:\{{ list.contract_number }}</div> <div class="cont-name" style="font-size: 16px;color: #5D98F6">合同编号:\{{ list.contract_number }}</div>
<div class="cont-type" style="color: #8C8C8C;">承租人名称:\{{ list.bp_id_tenant_n }}</div> <div class="cont-type" style="color: #8C8C8C;">承租人名称:\{{ list.bp_id_tenant_n }}</div>
<div class="cont-type" style="color: #8C8C8C;">单据类别:\{{ list.document_type_n }}</div> <div class="cont-type" style="color: #8C8C8C;">单据类别:\{{ list.document_type_n }}</div>
<div class="cont-type" style="color: #8C8C8C;">合同创建日期:\{{ list.creation_date }}</div> <div class="cont-type" style="color: #8C8C8C;">合同创建日期:\{{ list.creation_date }}</div>
</div> </div>
</item> </item>
</list-item> </list-item>
</scroll> </scroll>
</h-content>
</h-view> </h-view>
</template> </template>
...@@ -198,18 +195,6 @@ ...@@ -198,18 +195,6 @@
<style lang="less" rel="stylesheet"> <style lang="less" rel="stylesheet">
.contract-sign-list { .contract-sign-list {
.scroll-content{
position: absolute;
top: 0;
bottom: 0;
height: auto;
overflow: hidden;
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
.content-scroll{
top:225px;
}
.content{ .content{
overflow: hidden; overflow: hidden;
} }
...@@ -222,7 +207,9 @@ ...@@ -222,7 +207,9 @@
} }
.info-board { .info-board {
background-color: #FFF; background-color: rgb(255, 255, 255);
position: relative;
z-index: 5;
.board-line { .board-line {
display: flex; display: flex;
...@@ -271,7 +258,7 @@ ...@@ -271,7 +258,7 @@
span { span {
font-size: 26px; font-size: 26px;
color: #FF8877; color: rgb(255, 136, 119);
margin-right: 2px; margin-right: 2px;
&:nth-child(2) { &:nth-child(2) {
...@@ -300,15 +287,17 @@ ...@@ -300,15 +287,17 @@
.search { .search {
display: flex; display: flex;
height: 50px; height: 50px;
background-color: #FFF; background-color: rgb(255, 255, 255);
margin-top: 10px; padding: 5px 0;
position: relative;
z-index: 5;
// margin-bottom: 10px; // margin-bottom: 10px;
.searchInput { .searchInput {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
height: 33px; height: 33px;
border: 1px solid #5D98F6; /*no*/ border: 1px solid rgb(93, 152, 246); /*no*/
margin: 7px 10px; margin: 7px 10px;
width: 100%; width: 100%;
display: flex; display: flex;
...@@ -317,7 +306,7 @@ ...@@ -317,7 +306,7 @@
.img-box { .img-box {
height: 17px; height: 17px;
border-right: 1px solid #5D98F6; /*no*/ border-right: 1px solid rgb(93, 152, 246); /*no*/
padding: 2px 0; padding: 2px 0;
margin-left: 10px; margin-left: 10px;
...@@ -340,17 +329,9 @@ ...@@ -340,17 +329,9 @@
} }
} }
.vue-better-scroll {
// top: 226px;
}
.vue-better-scroll__wrapper {
margin-top: 10px;
}
.hls-item { .hls-item {
&:nth-child(odd) { &:nth-child(odd) {
background-color: #EFF1F3; background-color: rgb(239, 241, 243);
} }
&:nth-child(even) { &:nth-child(even) {
...@@ -380,7 +361,7 @@ ...@@ -380,7 +361,7 @@
margin-top: 8px; margin-top: 8px;
font-size: 15px; font-size: 15px;
line-height: 21px; line-height: 21px;
color: #5D98F6; color: rgb(93, 152, 246);
} }
} }
} }
......
...@@ -33,55 +33,56 @@ ...@@ -33,55 +33,56 @@
</template> </template>
<script> <script>
import calService from './calculateService' import calService from './calculateService'
export default {
name: 'CalculationEnter', export default {
data () { name: 'CalculationEnter',
return { data () {
proList: [], return {
} proList: [],
}, }
mounted: function () { },
calService.cleanCalc() mounted: function () {
this.initLoad() calService.cleanCalc()
}, this.initLoad()
methods: {
initLoad () {
let vm = this
let url = $config.basePath + 'product_main' // 产品方案查询
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
if (res.result === 'S') {
vm.proList = res.product_main
vm.hlsPopup.hideLoading()
}
})
}, },
methods: {
initLoad () {
let vm = this
let url = $config.basePath + 'product_main' // 产品方案查询
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
if (res.result === 'S') {
vm.proList = res.product_main
vm.hlsPopup.hideLoading()
}
})
},
goNext (list) { goNext (list) {
list.annual_pay_times_n = '月' // 还款频率 list.annual_pay_times_n = '月' // 还款频率
list.annual_pay_times = 12 // 还款频率 list.annual_pay_times = 12 // 还款频率
list.lease_charge = 0 // 手续费 list.lease_charge = 0 // 手续费
list.insurance_price = 0 // 保险费 list.insurance_price = 0 // 保险费
list.gps_amount = 0 // GPS费 list.gps_amount = 0 // GPS费
list.travel_tax = 0 // 车船税 list.travel_tax = 0 // 车船税
list.purchase_tax = 0 // 购置税 list.purchase_tax = 0 // 购置税
calService.setCalc(list) calService.setCalc(list)
this.$router.push({ this.$router.push({
name: 'CalculationMain', name: 'CalculationMain',
}) })
},
}, },
}, }
}
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.calculatEnter{ .calculatEnter {
.content{ .content {
background-color:#F7F7F8; background-color: rgb(247, 247, 247);
.hls-list-item { .hls-list-item {
background-color:#F7F7F8; background-color: rgb(247, 247, 248);
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -94,12 +95,10 @@ export default { ...@@ -94,12 +95,10 @@ export default {
padding: 0; padding: 0;
height: 96px; height: 96px;
border-bottom: 1px solid #ccc; /*no*/ border-bottom: 1px solid #ccc; /*no*/
background-color:#fff; background-color: #fff;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
&.activated { &.activated {
opacity: 0.9; opacity: 0.9;
-webkit-transform: scale(0.95); -webkit-transform: scale(0.95);
...@@ -107,54 +106,52 @@ export default { ...@@ -107,54 +106,52 @@ export default {
} }
.finaning-contents { .finaning-contents {
height: 100%; height: 100%;
width: 93%; width: 100%;
padding: 0 10px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.contents-info{ .contents-info {
height: 100%; height: 100%;
width: 90%; width: 90%;
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
align-items: flex-start; align-items: flex-start;
.contents-info-type{ .contents-info-type {
color: #556B78; color: rgb(85, 107, 120);
font-size: 15px; font-size: 15px;
height: 25px; height: 25px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.contents-info-description{ .contents-info-description {
width: 100%; width: 100%;
line-height: 15px; line-height: 15px;
color: #99AFC6; color: rgb(153, 175, 198);
font-size: 14px; font-size: 14px;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.contents-info-time{ .contents-info-time {
color: #99AFC6; color: rgb(153, 175, 198);
font-size: 14px; font-size: 14px;
} }
} }
.next-icon{ .next-icon {
padding-right: 5px; padding-right: 5px;
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.next-icon-img{ .next-icon-img {
width: 28px; width: 28px;
height: 28px; height: 28px;
img{ img {
width: 28px; width: 28px;
} }
} }
......
<template> <template>
<h-view class="public-style partner-list" title="客户维护"> <h-view class="public-style partner-list" title="客户维护">
<h-content class="scroll-content"> <div class="top-part">
<div class="top-part"> <div class="client">
<div class="client"> <div class="client-img">
<div class="client-img"> <img src="@/assets/image/bpMaster/count@2x.png">
<img src="@/assets/image/bpMaster/count@2x.png" >
</div>
<div class="statistics">客户总计</div>
</div> </div>
<div class="total-num">\{{ bpCount.bp_sum }}<span class="measure"></span></div> <div class="statistics">客户总计</div>
<div class="list-general">
<div class="enterprise">
<div class="list-name">企业</div>
<div class="list-num">\{{ bpCount.sum_org }}<span class="sum-num"></span></div>
</div>
<div class="enterprise">
<div class="list-name">个人</div>
<div class="list-num">\{{ bpCount.sum_np }}<span class="sum-num"></span></div>
</div>
<div class="enterprise">
<div class="list-name">主承租人</div>
<div class="list-num">\{{ bpCount.sum_tenant }}<span class="sum-num"></span></div>
</div>
<div class="enterprise">
<div class="list-name">经销商</div>
<div class="list-num">\{{ bpCount.sum_agent }}<span class="sum-num"></span></div>
</div>
</div>
</div> </div>
<div class="search"> <div class="total-num">\{{ bpCount.bp_sum }}<span class="measure"></span></div>
<div class="search-box" @click="showSearchModal"> <div class="list-general">
<div class="search-icon"><img src="@/assets/image/bpMaster/search@2x.png" ></div> <div class="enterprise">
<div class="hint">请输入客户名称/客户类型</div> <div class="list-name">企业</div>
<div class="list-num">\{{ bpCount.sum_org }}<span class="sum-num"></span></div>
</div>
<div class="enterprise">
<div class="list-name">个人</div>
<div class="list-num">\{{ bpCount.sum_np }}<span class="sum-num"></span></div>
</div>
<div class="enterprise">
<div class="list-name">主承租人</div>
<div class="list-num">\{{ bpCount.sum_tenant }}<span class="sum-num"></span></div>
</div> </div>
<div class="add-icon" @click="createPartent()"><img src="@/assets/image/bpMaster/add@2x.png" ></div> <div class="enterprise">
<div class="list-name">经销商</div>
<div class="list-num">\{{ bpCount.sum_agent }}<span class="sum-num"></span></div>
</div>
</div>
</div>
<div class="search">
<div class="search-box" @click="showSearchModal">
<div class="search-icon"><img src="@/assets/image/bpMaster/search@2x.png"></div>
<div class="hint">请输入客户名称/客户类型</div>
</div> </div>
<scroll <div class="add-icon" @click="createPartent()"><img src="@/assets/image/bpMaster/add@2x.png"></div>
ref="scrollList" </div>
:updateData="[bpList]" <scroll
:pullUp="true" ref="scrollList"
class="content-scroll" :updateData="[bpList]"
@pullingUp="loadMore"> :pullUp="true"
<list-item :item-height="80"> @pullingUp="loadMore">
<item <list-item :item-height="80">
v-for="(list,index) in bpList" <item
:has-border="false" :key="index" :proportion="[5,1]" :show-arrow="true" v-for="(list,index) in bpList"
@click.native="goPartnerMainten(list)"> :has-border="false" :key="index" :proportion="[5,1]" :show-arrow="true"
<img slot="left-icon" src="@/assets/image/bpMaster/custormer@2x.png" class="left-icon"> @click.native="goPartnerMainten(list)">
<div slot="name" class="text"> <img slot="left-icon" src="@/assets/image/bpMaster/custormer@2x.png" class="left-icon">
<div class="cont-name">客户名称:\{{ list.bp_name }}</div> <div slot="name" class="text">
<div class="cont-type">客户类型:\{{ list.bp_type_n }}</div> <div class="cont-name">客户名称:\{{ list.bp_name }}</div>
<div class="cont-type">客户分类:\{{ list.bp_class_n }}</div> <div class="cont-type">客户类型:\{{ list.bp_type_n }}</div>
</div> <div class="cont-type">客户分类:\{{ list.bp_class_n }}</div>
</item> </div>
</list-item> </item>
</scroll> </list-item>
</h-content> </scroll>
<h-modal ref="modal" v-model="showModalValue" position="bottom" class="search-modal">
<h-modal ref="modal" v-model="showModalValue" position="bottom" cus-class="search-modal">
<h-view> <h-view>
<h-header :proportion="[1,15,4]" class="bar-custom" style="height: 44px;padding-top: 0px"> <h-header :proportion="[1,15,4]" class="bar-custom" style="height: 44px;padding-top: 0px">
<div slot="center" class="search-shelter"> <div slot="center" class="search-shelter">
...@@ -66,7 +62,8 @@ ...@@ -66,7 +62,8 @@
<input <input
v-focus id="risk-search-input" v-model="info.key" type="text" v-focus id="risk-search-input" v-model="info.key" type="text"
placeholder="伙伴名称/类型" class="search-input"> placeholder="伙伴名称/类型" class="search-input">
<img v-show="info.key" src="@/assets/image/bpMaster/clear.png" class="clear-button" @click="clearCondition()"> <img v-show="info.key" src="@/assets/image/bpMaster/clear.png" class="clear-button"
@click="clearCondition()">
</div> </div>
<div slot="right" class="h-header-btn" @click="hideModal">取消</div> <div slot="right" class="h-header-btn" @click="hideModal">取消</div>
</h-header> </h-header>
...@@ -95,296 +92,305 @@ ...@@ -95,296 +92,305 @@
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
offsize: 1, offsize: 1,
bpList: [], bpList: [],
bpCount: {}, bpCount: {},
showModalValue: false, showModalValue: false,
info: { info: {
key: '', key: '',
}, },
} }
}, },
watch: { watch: {
'info.key': { 'info.key': {
handler (newName, oldName) { handler (newName, oldName) {
let vm = this let vm = this
if (vm.timeout) { if (vm.timeout) {
clearTimeout(vm.timeout) clearTimeout(vm.timeout)
} }
vm.timeout = setTimeout(() => { vm.timeout = setTimeout(() => {
vm.search() vm.search()
}, 1000) }, 1000)
},
}, },
}, },
}, created: function () {
created: function () {
let vm = this
vm.initLoad()
},
methods: {
initLoad () {
let vm = this let vm = this
let url = $config.basePath + 'query_bp_master' vm.initLoad()
let url1 = $config.basePath + 'bp_count_query' },
let param = {'offsize': vm.offsize} methods: {
let param1 = {} initLoad () {
vm.hlsPopup.showLoading('请稍候') let vm = this
vm.hlsHttp.post(url, param).then(function (res) { let url = $config.basePath + 'query_bp_master'
if (res.result === 'S') { let url1 = $config.basePath + 'bp_count_query'
// bp_type let param = { 'offsize': vm.offsize }
vm.bpList = res.bpMaster_list let param1 = {}
if (res.bpMaster_list.length > 0 && res.bpMaster_list.length < 10) { vm.hlsPopup.showLoading('请稍候')
vm.$refs.scroll.update(true) vm.hlsHttp.post(url, param).then(function (res) {
vm.$refs.scrollList.update(true) if (res.result === 'S') {
// bp_type
vm.bpList = res.bpMaster_list
if (res.bpMaster_list.length > 0 && res.bpMaster_list.length < 10) {
vm.$refs.scroll.update(true)
vm.$refs.scrollList.update(true)
}
vm.hlsPopup.hideLoading()
} }
})
vm.hlsHttp.post(url1, param1).then(function (res) { // 商业伙伴各种个数信息查询
vm.bpCount = res.bp_count_list[0]
vm.hlsPopup.hideLoading() vm.hlsPopup.hideLoading()
})
},
loadMore () {
let vm = this
vm.offsize = vm.offsize + 1
let url = $config.basePath + 'query_bp_master'
let param = {
'offsize': vm.offsize,
'searchInput': vm.info.key,
} }
}) hlsHttp.post(url, param).then(function (res) {
vm.hlsHttp.post(url1, param1).then(function (res) { // 商业伙伴各种个数信息查询 let returnData = []
vm.bpCount = res.bp_count_list[0] if (res.result === 'S') {
vm.hlsPopup.hideLoading() returnData = res.bpMaster_list
}) if (returnData.length === 0) {
}, vm.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
returnData.forEach((data, index, array) => {
vm.bpList.push(array[index])
})
vm.$refs.scroll.update(true)
vm.$refs.scrollList.update(true)
} else if (returnData.length === 10) {
returnData.forEach((data, index, array) => {
vm.bpList.push(array[index])
})
vm.$refs.scroll.update(false)
vm.$refs.scrollList.update(false)
}
}
})
},
loadMore () { search () {
let vm = this let vm = this
vm.offsize = vm.offsize + 1 vm.offsize = 1
let url = $config.basePath + 'query_bp_master' // vm.bpList = []
let param = { let url = $config.basePath + 'query_bp_master'
'offsize': vm.offsize, let param = {
'searchInput': vm.info.key, 'searchInput': vm.info.key,
} }
hlsHttp.post(url, param).then(function (res) { vm.hlsHttp.post(url, param).then(function (res) {
let returnData = [] vm.hlsPopup.hideLoading()
if (res.result === 'S') { vm.bpList = res.bpMaster_list
returnData = res.bpMaster_list if (vm.bpList.length >= 0 && vm.bpList.length < 10) {
if (returnData.length === 0) {
vm.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
returnData.forEach((data, index, array) => {
vm.bpList.push(array[index])
})
vm.$refs.scroll.update(true) vm.$refs.scroll.update(true)
vm.$refs.scrollList.update(true) } else if (vm.bpList.length === 10) {
} else if (returnData.length === 10) {
returnData.forEach((data, index, array) => {
vm.bpList.push(array[index])
})
vm.$refs.scroll.update(false) vm.$refs.scroll.update(false)
vm.$refs.scrollList.update(false)
} }
} })
}) },
},
search () { goPartnerMainten (list) {
let vm = this this.hideModal()
vm.offsize = 1 let name
// vm.bpList = [] if (list.bp_class === 'NP') {
let url = $config.basePath + 'query_bp_master' name = 'PartnerMainten'
let param = { } else {
'searchInput': vm.info.key, name = 'PartnerOrgMainten'
}
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
vm.bpList = res.bpMaster_list
if (vm.bpList.length >= 0 && vm.bpList.length < 10) {
vm.$refs.scroll.update(true)
} else if (vm.bpList.length === 10) {
vm.$refs.scroll.update(false)
} }
}) this.$router.push({
}, name: name,
params: {
goPartnerMainten (list) { bpData: list,
this.hideModal() },
let name })
if (list.bp_class === 'NP') { },
name = 'PartnerMainten' showSearchModal () {
} else { this.showModalValue = true
name = 'PartnerOrgMainten' },
} /**
this.$router.push({
name: name,
params: {
bpData: list,
},
})
},
showSearchModal () {
this.showModalValue = true
},
/**
* 商业伙伴创建 * 商业伙伴创建
*/ */
createPartent () { createPartent () {
this.$router.push({ this.$router.push({
name: 'PartnerCreate', name: 'PartnerCreate',
}) })
}, },
hideModal () { hideModal () {
this.$refs.modal.hideModal() this.$refs.modal.hideModal()
this.info.key = '' this.info.key = ''
}, },
clearCondition () { clearCondition () {
this.info.key = '' this.info.key = ''
}, },
}, },
} }
</script> </script>
<style lang="less" scoped type="text/less"> <style lang="less" scoped type="text/less">
.partner-list { .partner-list {
.scroll-content{ background-color: #eff1f3;
position: absolute; //padding-top: 0;
top: 0; .top-part {
right: 0; background-color: #FFFFFF;
bottom: 0; padding: 12px 0 10px 0;
left: 0; position: relative;
width: auto; z-index: 5;
height: auto;
overflow: hidden; .client {
-webkit-overflow-scrolling: touch; display: flex;
overflow-scrolling: touch;
} .client-img {
.content { margin: 0 5px 0 15px;
background-color: #eff1f3;
padding-top: 0; img {
.top-part{ width: 17px;
background-color: #FFFFFF; height: 15px;
padding:12px 0 10px 0;
.client{
display: flex;
.client-img{
margin:0 5px 0 15px;
img{
width:17px;
height: 15px;
}
}
.statistics{
font-size: 14px;
line-height: 16px;
color: #363636;
} }
} }
.total-num{
width: 100%; .statistics {
padding: 10px 0 25px 0; font-size: 14px;
font-size: 26px; line-height: 16px;
color: #FF8877; color: #363636;
}
}
.total-num {
width: 100%;
padding: 10px 0 25px 0;
font-size: 26px;
color: #FF8877;
display: flex;
justify-content: center;
.measure {
font-size: 13px;
color: #313131;
padding: 5px;
}
}
.list-general {
width: 100%;
display: flex;
justify-content: center;
.enterprise {
width: 25%;
display: flex; display: flex;
justify-content: center; text-align: center;
.measure{ flex-direction: column;
.list-name {
font-size: 13px; font-size: 13px;
color: #313131; color: #313131;
padding:5px;
} }
}
.list-general{ .list-num {
width: 100%; padding-top: 6px;
display: flex; font-size: 14px;
justify-content: center; color: #FF8877;
.enterprise{
width: 25%; .sum-num {
display: flex; font-size: 12px;
text-align:center; line-height: 17px;
flex-direction: column;
.list-name{
font-size: 13px;
color: #313131; color: #313131;
} padding-left: 2px;
.list-num{
padding-top: 6px;
font-size: 14px;
color: #FF8877;
.sum-num{
font-size: 12px;
line-height: 17px;
color: #313131;
padding-left: 2px;
}
} }
} }
} }
} }
.search{ }
margin-top:5px;
width: 100%; .search {
background-color: #FFFFFF; margin-top: 5px;
width: 100%;
background-color: #FFFFFF;
display: flex;
padding: 12.5px 0;
z-index: 5;
position: relative;
.search-box {
width: 80%;
margin-left: 15px;
display: flex; display: flex;
padding: 12.5px 0; background: #FDFFFF;
.search-box{ border: 1px solid @headerColor; /*no*/
width:80%; border-radius: 50px;
margin-left:15px;
.search-icon {
padding-left: 10px;
display: flex; display: flex;
background: #FDFFFF; align-items: center;
border: 1px solid @headerColor; /*no*/
border-radius: 50px; img {
.search-icon{ width: 22px;
padding-left: 10px; height: 15px;
display: flex; border-right: 1px solid @headerColor; /*no*/
align-items: center; padding-right: 7px;
img{
width: 22px;
height:15px;
border-right:1px solid @headerColor; /*no*/
padding-right:7px;
}
}
.hint{
font-size:12px;
margin-left:12px;
color: #DBD8D8;
display: flex;
align-items: center;
} }
} }
.add-icon{
margin-left:23px; .hint {
img{ font-size: 12px;
width:26px; margin-left: 12px;
height:26px; color: #DBD8D8;
} display: flex;
align-items: center;
} }
} }
.hls-item { .add-icon {
&:nth-child(odd){ margin-left: 23px;
background-color: #EFF1F3;
} img {
&:nth-child(even){ width: 26px;
background-color: #fff; height: 26px;
} }
}
}
.contents { .hls-item {
.add-name { &:nth-child(odd) {
.cont-name{ background-color: #EFF1F3;
font-size: 15px; }
line-height: 21px;
color: @headerColor; &:nth-child(even) {
} background-color: #fff;
.cont-type{ }
font-size: 13px;
line-height: 18px; .contents {
color: #888; .add-name {
} .cont-name {
.left-icon{ font-size: 15px;
width: 35px; line-height: 21px;
} color: @headerColor;
}
.cont-type {
font-size: 13px;
line-height: 18px;
color: #888;
}
.left-icon {
width: 35px;
} }
} }
} }
} }
.search-modal{
.scroll-content{ .search-modal {
top:44px
} .search-shelter {
.search-shelter{
height: 30px; height: 30px;
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
...@@ -392,19 +398,18 @@ export default { ...@@ -392,19 +398,18 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
img{
img {
width: 15px; width: 15px;
margin: 0 10px; margin: 0 10px;
} }
input{
input {
width: 100%; width: 100%;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
} }
} }
} }
.content-scroll{
top:198px
}
} }
</style> </style>
...@@ -5,262 +5,243 @@ ...@@ -5,262 +5,243 @@
<template> <template>
<h-view class="public-style project-mainten" title="申请维护"> <h-view class="public-style project-mainten" title="申请维护">
<h-content class="scroll-content"> <s-tab @tabClick="changeData">
<s-tab @tabClick="changeData"> <tab-item>本年</tab-item>
<tab-item>本年</tab-item> <tab-item>本季</tab-item>
<tab-item>本季</tab-item> <tab-item>本月</tab-item>
<tab-item>本月</tab-item> </s-tab>
</s-tab> <div class="info-board">
<div class="info-board"> <div class="board-line">
<div class="board-line"> <div class="ionic-img">
<div class="ionic-img"> <img src="@/assets/image/projectCreate/total@2x.png">
<img src="@/assets/image/projectCreate/total@2x.png"> </div>
</div> <div class="text">租赁申请总计</div>
<div class="text">租赁申请总计</div> </div>
<div class="board-line"><span>\{{ countInfo.apply_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ countInfo.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">审批中</div>
<div class="number"><span>\{{ countInfo.approving_count }}</span></div>
</div> </div>
<div class="board-line"><span>\{{ countInfo.apply_count }}</span><span></span></div>
<div class="board-line">
<div class="board-block">
<div class="type">新建</div>
<div class="number"><span>\{{ countInfo.new_count }}</span></div>
</div>
<div class="board-block">
<div class="type">审批中</div>
<div class="number"><span>\{{ countInfo.approving_count }}</span></div>
</div>
<div class="board-block"> <div class="board-block">
<div class="type">审批通过</div> <div class="type">审批通过</div>
<div class="number"><span>\{{ countInfo.approved_count }}</span></div> <div class="number"><span>\{{ countInfo.approved_count }}</span></div>
</div> </div>
<div class="board-block"> <div class="board-block">
<div class="type">拒绝</div> <div class="type">拒绝</div>
<div class="number"><span>\{{ countInfo.reject_count }}</span></div> <div class="number"><span>\{{ countInfo.reject_count }}</span></div>
</div>
</div> </div>
</div> </div>
<div class="search"> </div>
<div class="searchInput"> <div class="search">
<div class="img-box"><img src="@/assets/image/projectCreate/search@2x.png"></div> <div class="searchInput">
<input <div class="img-box"><img src="@/assets/image/projectCreate/search@2x.png"></div>
v-model="searchCondition.input" <input
placeholder="请输入合同编号/代理商名称"> v-model="searchCondition.input"
</div> placeholder="请输入合同编号/代理商名称">
</div> </div>
<scroll </div>
ref="scroll" <scroll
class="content-scroll" ref="scroll"
:updateData="[prjList]" :updateData="[prjList]"
:pullUp="true" :pullUp="true"
@pullingUp="loadMore"> @pullingUp="loadMore">
<list-item :item-height="80"> <list-item :item-height="80">
<item <item
v-for="(project,index) in prjList" :key="index" :proportion="[5,1]" :show-arrow="true" v-for="(project,index) in prjList" :key="index" :proportion="[5,1]" :show-arrow="true"
@click.native="goDetail(project)"> @click.native="goDetail(project)">
<img slot="left-icon" src="@/assets/image/projectCreate/item@2x.png" class="left-icon"> <img slot="left-icon" src="@/assets/image/projectCreate/item@2x.png" class="left-icon">
<div slot="name" class="text"> <div slot="name" class="text">
<div class="cont cont-num">合同编号:\{{ project.project_number }}</div> <div class="cont cont-num">合同编号:\{{ project.project_number }}</div>
<div class="cont cont-name">代理商名称:\{{ project.bp_name }}-\{{ project.invoice_agent_id_n }}</div> <div class="cont cont-name">代理商名称:\{{ project.bp_name }}-\{{ project.invoice_agent_id_n }}</div>
<div class="cont cont-data">创建日期:\{{ project.create_date }}</div> <div class="cont cont-data">创建日期:\{{ project.create_date }}</div>
</div> </div>
</item> </item>
</list-item> </list-item>
</scroll> </scroll>
</h-content>
</h-view> </h-view>
</template> </template>
<script> <script>
import projectService from './projectService' import projectService from './projectService'
export default { export default {
name: 'PrjMaintenList', name: 'PrjMaintenList',
data () { data () {
return { return {
defaultIndex: 0, defaultIndex: 0,
offsize: 1, offsize: 1,
scrollBusy: true, scrollBusy: true,
prjList: [], prjList: [],
countList: [], countList: [],
countInfo: {}, countInfo: {},
searchCondition: { searchCondition: {
input: '', input: '',
}, },
} }
}, },
watch: { watch: {
'searchCondition.input': { 'searchCondition.input': {
handler: function (val, oldval) { handler: function (val, oldval) {
this.detectSearchCondition() this.detectSearchCondition()
},
}, },
}, },
}, created: function () {
created: function () { this.projectQuery()
this.projectQuery() this.prjApplyQuery()
this.prjApplyQuery() },
}, methods: {
methods: { /**
/**
* 项目维护查询 * 项目维护查询
*/ */
projectQuery () { projectQuery () {
let vm = this let vm = this
let url = $config.basePath + 'prj_project_query' // 项目维护列表查询 let url = $config.basePath + 'prj_project_query' // 项目维护列表查询
let param = { let param = {
'offsize': vm.offsize, 'offsize': vm.offsize,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.prjList = res.prj_project_list
if (res.prj_project_list.length > 0 && res.prj_project_list.length < 10) {
vm.$refs.scroll.update(true)
}
} }
}) vm.hlsPopup.showLoading('请稍候')
}, vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.prjList = res.prj_project_list
if (res.prj_project_list.length > 0 && res.prj_project_list.length < 10) {
vm.$refs.scroll.update(true)
}
}
})
},
/** /**
* 租赁申请总计查询 * 租赁申请总计查询
*/ */
prjApplyQuery () { prjApplyQuery () {
let vm = this let vm = this
let param1 = {} let param1 = {}
let url1 = $config.basePath + 'prj_apply_count' // 租赁申请总计查询 let url1 = $config.basePath + 'prj_apply_count' // 租赁申请总计查询
vm.hlsHttp.post(url1, param1).then(function (res) { // 各种单数信息查询 vm.hlsHttp.post(url1, param1).then(function (res) { // 各种单数信息查询
vm.countList = res vm.countList = res
vm.changeData(0) vm.changeData(0)
}) })
}, },
changeData (index) { changeData (index) {
let vm = this let vm = this
let currentIndex = vm.defaultIndex = index let currentIndex = vm.defaultIndex = index
vm.countInfo = vm.countList[vm.getTabName(currentIndex)][0] vm.countInfo = vm.countList[vm.getTabName(currentIndex)][0]
}, },
getTabName (index) { getTabName (index) {
let tabName = '' let tabName = ''
if (index === 0) { if (index === 0) {
tabName = 'year_apply_list' // 本年 tabName = 'year_apply_list' // 本年
} else if (index === 1) { } else if (index === 1) {
tabName = 'reason_apply_list' // 本季 tabName = 'reason_apply_list' // 本季
} else if (index === 2) { } else if (index === 2) {
tabName = 'month_apply_list' // 本月 tabName = 'month_apply_list' // 本月
} }
return tabName return tabName
}, },
detectSearchCondition () { detectSearchCondition () {
let vm = this let vm = this
vm.scrollBusy = false vm.scrollBusy = false
if (vm.timeout) { if (vm.timeout) {
clearTimeout(vm.timeout) clearTimeout(vm.timeout)
} }
vm.timeout = setTimeout(() => { vm.timeout = setTimeout(() => {
vm.search() vm.search()
}, 1000) }, 1000)
}, },
/** /**
* 项目维护模糊查询 * 项目维护模糊查询
*/ */
search () { search () {
let vm = this let vm = this
let url = $config.basePath + 'prj_project_query' let url = $config.basePath + 'prj_project_query'
let param = { let param = {
'offsize': 1, 'offsize': 1,
'searchInput': vm.searchCondition.input, 'searchInput': vm.searchCondition.input,
}
vm.hlsPopup.showLoading('请稍候')
hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.prjList = res.prj_project_list
if (res.prj_project_list.length >= 0 && res.prj_project_list.length < 10) {
vm.$refs.scroll.update(true)
} else {
vm.$refs.scroll.update(false)
}
} }
}) vm.hlsPopup.showLoading('请稍候')
}, hlsHttp.post(url, param).then(function (res) {
loadMore () { vm.hlsPopup.hideLoading()
let vm = this if (res.result === 'S') {
vm.offsize = vm.offsize + 1 vm.prjList = res.prj_project_list
let url = $config.basePath + 'prj_project_query' if (res.prj_project_list.length >= 0 && res.prj_project_list.length < 10) {
let param = { vm.$refs.scroll.update(true)
'offsize': vm.offsize, } else {
'searchInput': vm.searchCondition.input, vm.$refs.scroll.update(false)
} }
vm.hlsHttp.post(url, param).then(function (res) {
var returnData = []
if (res.result === 'S') {
returnData = res.prj_project_list
if (returnData.length === 0) {
vm.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
returnData.forEach((data, index, array) => {
vm.prjList.push(array[index])
})
vm.$refs.scroll.update(true)
} else if (returnData.length === 10) {
returnData.forEach((data, index, array) => {
vm.prjList.push(array[index])
})
vm.$refs.scroll.update(false)
} }
})
},
loadMore () {
let vm = this
vm.offsize = vm.offsize + 1
let url = $config.basePath + 'prj_project_query'
let param = {
'offsize': vm.offsize,
'searchInput': vm.searchCondition.input,
} }
}) vm.hlsHttp.post(url, param).then(function (res) {
}, var returnData = []
if (res.result === 'S') {
returnData = res.prj_project_list
if (returnData.length === 0) {
vm.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
returnData.forEach((data, index, array) => {
vm.prjList.push(array[index])
})
vm.$refs.scroll.update(true)
} else if (returnData.length === 10) {
returnData.forEach((data, index, array) => {
vm.prjList.push(array[index])
})
vm.$refs.scroll.update(false)
}
}
})
},
goDetail (project) { goDetail (project) {
projectService.cleanProject() projectService.cleanProject()
projectService.setAttachFlag(1) projectService.setAttachFlag(1)
projectService.setCarFlag(1) projectService.setCarFlag(1)
projectService.setClientInfoFlag(1) projectService.setClientInfoFlag(1)
projectService.setOfferFlag(1) projectService.setOfferFlag(1)
projectService.setProject(project) projectService.setProject(project)
this.$router.push({ this.$router.push({
name: 'InfoMationMain', name: 'InfoMationMain',
params: { params: {
reload: true, reload: true,
}, },
}) })
},
}, },
}, }
}
</script> </script>
<style lang="less"> <style lang="less">
.project-mainten { .project-mainten {
.scroll-content{
position: absolute;
top:0;
bottom: 0;
height: auto;
overflow: hidden;
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
.content-scroll{
top:225px;
}
.content{
overflow: hidden;
}
.hls-switch-tab .tab-content .h-tab-item .h-item { .hls-switch-tab .tab-content .h-tab-item .h-item {
width: 100%; width: 100%;
} }
.hls-switch-tab { .hls-switch-tab {
position: relative; position: relative;
} }
.info-board { .info-board {
background-color: #FFF; background-color: rgb(255, 255, 255);
position: relative;
z-index: 5;
.board-line { .board-line {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
...@@ -270,47 +251,38 @@ export default { ...@@ -270,47 +251,38 @@ export default {
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
padding-bottom: 6px; padding-bottom: 6px;
&:before { &:before {
content: ''; content: '';
} }
&:after { &:after {
content: ''; content: '';
} }
&:first-child { &:first-child {
justify-content: flex-start; justify-content: flex-start;
-webkit-justify-content: flex-start; -webkit-justify-content: flex-start;
} }
&:nth-child(2) { &:nth-child(2) {
justify-content: center; justify-content: center;
-webkit-justify-content: center; -webkit-justify-content: center;
} }
.ionic-img { .ionic-img {
margin-left: 11px; margin-left: 11px;
margin-right: 4px; margin-right: 4px;
width: 17px; width: 17px;
height: 15px; height: 15px;
img { img {
height: 100%; height: 100%;
width: 100%; width: 100%;
border: none; border: none;
} }
} }
.text { .text {
font-size: @font-size-middle; font-size: @font-size-middle;
} }
span { span {
font-size: 26px; font-size: 26px;
color: #FF8877; color: rgb(255, 136, 119);
margin-right: 2px; margin-right: 2px;
&:nth-child(2) { &:nth-child(2) {
font-size: @font-size-small; font-size: @font-size-small;
color: #313131; color: #313131;
...@@ -318,12 +290,10 @@ export default { ...@@ -318,12 +290,10 @@ export default {
margin-left: 2px; margin-left: 2px;
} }
} }
.board-block { .board-block {
height: 100%; height: 100%;
width: 100%; width: 100%;
text-align: center; text-align: center;
.number { .number {
span { span {
font-size: @font-size-middle; font-size: @font-size-middle;
...@@ -337,33 +307,29 @@ export default { ...@@ -337,33 +307,29 @@ export default {
.search { .search {
display: flex; display: flex;
height: 50px; height: 50px;
background-color: #FFF; background-color: rgb(255, 255, 255);
margin-top: 10px; padding:5px 0;
// margin-bottom: 10px; position: relative;
z-index: 5;
.searchInput { .searchInput {
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
height: 33px; height: 33px;
border: 1px solid #5D98F6; /*no*/ border: 1px solid rgb(93, 152, 246); /*no*/
margin: 7px 10px; margin: 7px 10px;
width: 100%; width: 100%;
display: flex;
align-items: center; align-items: center;
-webkit-align-items: center; -webkit-align-items: center;
.img-box { .img-box {
height: 17px; height: 17px;
border-right: 1px solid #5D98F6; /*no*/ border-right: 1px solid rgb(93, 152, 246); /*no*/
padding: 2px 0; padding: 2px 0;
margin-left: 10px; margin-left: 10px;
img { img {
margin-right: 5px; margin-right: 5px;
width: 15px; width: 15px;
} }
} }
input { input {
width: 100%; width: 100%;
font-size: 13px; font-size: 13px;
...@@ -376,48 +342,32 @@ export default { ...@@ -376,48 +342,32 @@ export default {
} }
} }
} }
.vue-better-scroll {
// top: 226px;
}
.vue-better-scroll__wrapper {
margin-top: 10px;
}
.hls-item { .hls-item {
&:nth-child(odd) { &:nth-child(odd) {
background-color: #EFF1F3; background-color: rgb(239, 241, 243);
} }
&:nth-child(even) { &:nth-child(even) {
background-color: #fff; background-color: #fff;
} }
.contents .add-name { .contents .add-name {
.left-icon { .left-icon {
width: 34px; width: 34px;
} }
.text { .text {
margin-left: 15px; margin-left: 15px;
.cont { .cont {
margin-top: 5px; margin-top: 5px;
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
&:first-child { &:first-child {
margin-top: 0; margin-top: 0;
} }
} }
.cont-num { .cont-num {
margin-top: 8px; margin-top: 8px;
font-size: 15px; font-size: 15px;
line-height: 21px; line-height: 21px;
color: #5D98F6; color: rgb(93, 152, 246);
} }
} }
} }
......
...@@ -115,7 +115,8 @@ ...@@ -115,7 +115,8 @@
<style scoped lang="less" rel="stylesheet"> <style scoped lang="less" rel="stylesheet">
.public-style { .public-style {
.search { .search {
position: fixed; position: relative;
z-index: 5;
width: 100%; width: 100%;
height: 45px; height: 45px;
display: -webkit-flex; display: -webkit-flex;
...@@ -125,6 +126,7 @@ ...@@ -125,6 +126,7 @@
-webkit-align-items: center; -webkit-align-items: center;
align-items: center; align-items: center;
padding: 0 15px; padding: 0 15px;
background-color: #fff;
border-bottom:1px solid @background-color-gray; border-bottom:1px solid @background-color-gray;
.searchBox { .searchBox {
background-color: #fff; background-color: #fff;
...@@ -153,7 +155,7 @@ ...@@ -153,7 +155,7 @@
} }
} }
.content { .content {
margin-top: 45px; // margin-top: 45px;
} }
} }
</style> </style>
...@@ -126,12 +126,14 @@ export default { ...@@ -126,12 +126,14 @@ export default {
.search { .search {
position: relative; position: relative;
z-index: 5;
width: 100%; width: 100%;
height:45px; height:45px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 0 15px; padding: 0 15px;
background-color: #fff;
border-bottom:1px solid @background-color-gray; /*no*/ border-bottom:1px solid @background-color-gray; /*no*/
.searchBox { .searchBox {
background-color: #fff; background-color: #fff;
......
/**
* @Author think
* @Date 2019-06-18 14:36
*/
<template>
<h-view class="public-style robot" title="小易">
<!--<h-header :has-border="false" class="bar-custom">
<div slot="left" class="h-header-btn" @click="$hlsExit()">
<i class="ion-ios-arrow-back"/>
</div>
<div slot="center">小易</div>
</h-header>-->
<h-content id="home-content" class="has-footer">
<div v-for="item in message" class="message">
<p v-show="false" class="message-time" v-text="item.time"/>
<div v-show="!item.isFromeMe" class="message-wrap">
<img src="@/assets/image/robot/robot.png" class="head-pic">
<span class="triangle-left"/>
<p class="message" @click="showImg($event)" v-html="item.content"/>
</div>
<div v-show="item.isFromeMe" class="message-wrap">
<img v-show="userImg" :src="userImg" class="head-pic-right">
<img v-show="!userImg" src="@/assets/image/robot/user7.png" class="head-pic-right">
<span class="triangle-right"/>
<p class="message-right" v-text="item.content"/>
</div>
</div>
</h-content>
<bottom-tab class="bar bar-footer bar-light">
<label class="item item-input footer-input">
<textarea
v-auto-size ref="textarea" v-model="robot_message.question" placeholder="请输入"
rows="1"/>
</label>
<div class="footer-btn-wrap" @click="sendMsg()">
<div class="send-button">
<p>发送</p>
</div>
</div>
</bottom-tab>
</h-view>
</template>
<script>
export default {
name: 'Robot',
data () {
return {
userImg: window.localStorage.userImg || '',
message: [{
'isFromeMe': false,
'content': '小易7*24小时为您服务!',
}],
robot_message: {
question: null,
},
autosize: true,
height: '',
}
},
watch: {},
created: function () {
},
mounted () {
this.height = this.$refs.textarea.clientHeight
},
methods: {
scrollBottom () {
let div = document.getElementById('home-content')
div.scrollTop = div.scrollHeight
},
sendMsg () {
let vm = this
let RobotMessage = {}
if (this.robot_message.question) {
let object = {
'isFromeMe': true,
'content': this.robot_message.question,
}
this.message.push(object)
let url = process.env.rootPath + '?sysName=HLS_ROBOT&apiName=query_answer'
let question = encodeURIComponent(this.robot_message.question)
let params = {
'channel': 'app',
'userId': window.localStorage.user_id,
'sessionId': window.localStorage.user_id,
'question': question,
}
vm.hlsHttp.post(url, params).then(function (res) {
vm.resetHeight()
// 机器人聊天数据存表
RobotMessage.question = vm.robot_message.question
RobotMessage.chatId = res.chatId
vm.robot_message.question = null
if (res.answers) {
let answer = res.answers[0]
let reponse = {
'isFromeMe': false,
'content': answer.answer,
}
// 界面显示聊天
vm.message.push(reponse)
// 答案
RobotMessage.answer = answer.answer
// 历史记录表
vm.addRobotMessage(RobotMessage)
}
})
} else {
vm.hlsPopup.showLongCenter('内容不能为空')
}
},
addRobotMessage (robotMessage) {
let vm = this
let url = process.env.rootPath + '/app/addRobotMessage'
let params = {
'channel': 'app',
'userId': window.localStorage.user_id,
'sessionId': window.localStorage.user_id,
'question': robotMessage.question,
'chatId': robotMessage.chatId,
'answer': robotMessage.answer,
'respond': robotMessage.answer,
}
vm.hlsHttp.post(url, params).then(function (res) {
vm.scrollBottom()
})
},
showImg ($event) {
let vm = this
if ($event.target.tagName.toLowerCase() === 'img') {
let src = $event.target.src
vm.hlsPopup.showBigPicture({
imgUrl: src,
})
} else if ($event.target.tagName.toLowerCase() === 'a') {
let href = $event.target.href
cordova.InAppBrowser.open(href, '_system', 'location=yes')
}
},
resetHeight () {
// this.$refs.textarea.clientHeight = this.height;
this.$refs.textarea.style.height = this.height + 'px'
},
},
}
</script>
<style lang="less">
.robot {
background-color: #eeeeee;
.h-bottom-tab{
box-shadow: none;
}
.content {
background-color: #eeeeee;
//border: 1px solid red;
.message {
position: relative;
}
.message-wrap {
padding: 7px;
overflow: auto;
position: relative;
.message {
float: left;
margin-left: 16px;
background-color: #fff;
padding: 10px 8px;
line-height: 18px;
max-width: 270px;
border-radius: 5px;
font-size: 16px;
letter-spacing: 1px; /*no*/
text-align: left;
color: #000;
img{
width: 100%;
}
}
.head-pic-right {
float: right;
max-height: 35px;
height: 35px;
max-width: 35px;
width: 35px;
border-radius: 18px;
margin-left: 10px;
}
.head-pic {
float: left;
max-height: 35px;
height: 35px;
max-width: 35px;
width: 35px;
border-radius: 18px;
}
.message-right {
float: right;
margin-right: 8px;
background-color: #97d55b;
padding: 10px 8px;
line-height: 18px;
max-width: 225px;
border-radius: 5px;
font-size: 16px;
letter-spacing: 1px; /*no*/
text-align: left;
word-break: break-all;
color: #000;
}
.triangle-left {
// left: 45px;
border-color: transparent #FFF transparent transparent;
display: inline-block;
width: 0;
height: 0;
position: absolute;
border-width: 8px 10px;
border-style: solid;
top: 17px;
}
.triangle-right {
right: 45px;
border-color: transparent transparent transparent #97d55b;
display: inline-block;
width: 0;
height: 0;
position: absolute;
border-width: 8px 10px;
border-style: solid;
top: 17px;
}
}
}
.bar-footer {
height: auto !important;
min-height: 44px;
margin-top: 0;
background-color: #fafafa;
bottom: 0;
.item-input {
border: none !important;
padding: 3px 0 3px 5px;
width: 85%;
background: #fff;
margin: 5px 0;
}
.footer-btn-wrap {
height: 100%;
font-size: 16px;
width: 15%;
display: flex;
align-items: center;
justify-content: center;
.send-button {
height: 30px;
width: 100%;
//border: 1px solid red;
display: flex;
align-items: center;
justify-content: center;
p {
margin: 0 auto;
}
}
}
textarea {
line-height: 20px;
font-size: 16px;
width: 100%;
resize: none;
padding: 2px;
border: none;
margin-bottom: 0;
}
}
}
</style>
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
ref="scroll" ref="scroll"
:autoUpdate="true" :autoUpdate="true"
:pullUp="true" :pullUp="true"
class="content scroll-content"
@pullingUp="loadMore"> @pullingUp="loadMore">
<div v-if="index[0]"> <div v-if="index[0]">
<div v-for="(li,index) in list" class="workflow-list"> <div v-for="(li,index) in list" class="workflow-list">
...@@ -344,7 +343,7 @@ export default { ...@@ -344,7 +343,7 @@ export default {
} }
.content { .content {
margin-top: 40px; // margin-top: 40px;
.workflow-list { .workflow-list {
margin-top: 10px; margin-top: 10px;
......
...@@ -243,21 +243,6 @@ export default { ...@@ -243,21 +243,6 @@ export default {
'appCode': 'HLS_APP', 'appCode': 'HLS_APP',
}, },
{{/riskstrom}} {{/riskstrom}}
{{#robot}}
{
'functionId': 48,
'functionCode': '270',
'functionName': '小易',
'functionIcon': require('@/assets/home-manager/robot.png'),
'functionState': 'Robot',
'prodFlag': 'Y',
'enableFlag': 'Y',
'functionType': 'local',
'target': null,
'applicationFlag': 'N',
'appCode': 'HLS_APP',
},
{{/robot}}
], ],
}, },
], ],
......
import Vue from 'vue' import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import Home from '@/pages/home' const Home = resolve => require.ensure([], () => { resolve(require('@/pages/home')) }, 'home')
import ModuleFunction from '@/pages/homeManager/module-function' const ModuleFunction = resolve => require.ensure([], () => { resolve(require('@/pages/homeManager/module-function')) }, 'home')
// test工具类 // test工具类
import HlsPopup from '@/pages/hlsPopup' const HlsPopup = resolve => require.ensure([], () => { resolve(require('@/pages/hlsPopup')) }, 'test')
import EsignPicture from '@/pages/applications/utils/esignPicture' const EsignPicture = resolve => require.ensure([], () => { resolve(require('@/pages/applications/utils/esignPicture')) }, 'test')
{{#wfl}} {{#wfl}}
// 工作流 // 工作流
import WorkflowList from '@/pages/applications/workflow/workflow-list' const WorkflowList = resolve => require.ensure([], () => { resolve(require('@/pages/applications/workflow/workflow-list')) }, 'wfl')
import WorkflowDetail from '@/pages/applications/workflow/workflow-detail' const WorkflowDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/workflow/workflow-detail')) }, 'wfl')
{{/wfl}} {{/wfl}}
{{#bp}} {{#bp}}
// 商业伙伴 // 商业伙伴
import PartnerCreate from '@/pages/applications/partnerManager/partner-create' const PartnerCreate = resolve => require.ensure([], () => { resolve(require('@/pages/applications/partnerManager/partner-create')) }, 'bp')
import PartnerList from '@/pages/applications/partnerManager/partner-list' const PartnerList = resolve => require.ensure([], () => { resolve(require('@/pages/applications/partnerManager/partner-list')) }, 'bp')
import PartnerMainten from '@/pages/applications/partnerManager/partner-mainten' const PartnerMainten = resolve => require.ensure([], () => { resolve(require('@/pages/applications/partnerManager/partner-mainten')) }, 'bp')
import PartnerOrgMainten from '@/pages/applications/partnerManager/partner-org-mainten' const PartnerOrgMainten = resolve => require.ensure([], () => { resolve(require('@/pages/applications/partnerManager/partner-org-mainten')) }, 'bp')
{{/bp}} {{/bp}}
{{#project}} {{#project}}
// 融资试算 // 融资试算
import CalculationEnter from '@/pages/applications/financCalculate/calculationEnter' const CalculationEnter = resolve => require.ensure([], () => { resolve(require('@/pages/applications/financCalculate/calculationEnter')) }, 'project')
import CalculationMain from '@/pages/applications/financCalculate/calculationMain' const CalculationMain = resolve => require.ensure([], () => { resolve(require('@/pages/applications/financCalculate/calculationMain')) }, 'project')
import ResultMain from '@/pages/applications/financCalculate/resultMain' const ResultMain = resolve => require.ensure([], () => { resolve(require('@/pages/applications/financCalculate/resultMain')) }, 'project')
import ResultDetails from '@/pages/applications/financCalculate/resultDetails' const ResultDetails = resolve => require.ensure([], () => { resolve(require('@/pages/applications/financCalculate/resultDetails')) }, 'project')
// 租赁申请 // 租赁申请
import PrjCreate from '@/pages/applications/projectManager/prjCreate' const PrjCreate = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/prjCreate')) }, 'project')
import PrjMaintenList from '@/pages/applications/projectManager/PrjMaintenList' const PrjMaintenList = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/PrjMaintenList')) }, 'project')
import InfoMationMain from '@/pages/applications/projectManager/infoMationMain' const InfoMationMain = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/infoMationMain')) }, 'project')
import PrjBpInfo from '@/pages/applications/projectManager/prjBpInfo' const PrjBpInfo = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/prjBpInfo')) }, 'project')
import LeaseCarDetail from '@/pages/applications/projectManager/leaseCarDetail' const LeaseCarDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/leaseCarDetail')) }, 'project')
import PrjQuotionInfo from '@/pages/applications/projectManager/prjQuotionInfo' const PrjQuotionInfo = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/prjQuotionInfo')) }, 'project')
import PrjAttachment from '@/pages/applications/projectManager/prjAttachment' const PrjAttachment = resolve => require.ensure([], () => { resolve(require('@/pages/applications/projectManager/prjAttachment')) }, 'project')
{{/project}} {{/project}}
{{#contract}} {{#contract}}
// 合同 // 合同
import ContractMaintenList from '@/pages/applications/contractMainten/contract-mainten-list' const ContractMaintenList = resolve => require.ensure([], () => { resolve(require('@/pages/applications/contractMainten/contract-mainten-list')) }, 'contract')
import ContractMainten from '@/pages/applications/contractMainten/contract-mainten' const ContractMainten = resolve => require.ensure([], () => { resolve(require('@/pages/applications/contractMainten/contract-mainten')) }, 'contract')
import ContractSignList from '@/pages/applications/contractSign/contract-sign-list' const ContractSignList = resolve => require.ensure([], () => { resolve(require('@/pages/applications/contractSign/contract-sign-list')) }, 'contract')
import ContractSign from '@/pages/applications/contractSign/contract-sign' const ContractSign = resolve => require.ensure([], () => { resolve(require('@/pages/applications/contractSign/contract-sign')) }, 'contract')
{{/contract}}
{{/contract}}
{{#riskstrom}} {{#riskstrom}}
// 风报 // 风报
import RiskHome from '@/pages/applications/riskStorm/riskHome' const RiskHome = resolve => require.ensure([], () => { resolve(require('@/pages/applications/riskStorm/riskHome')) }, 'riskstrom')
import RiskSearch from '@/pages/applications/riskStorm/riskSearch' const RiskSearch = resolve => require.ensure([], () => { resolve(require('@/pages/applications/riskStorm/riskSearch')) }, 'riskstrom')
import RiskSearchDetail from '@/pages/applications/riskStorm/riskSearchDetail' const RiskSearchDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/riskStorm/riskSearchDetail')) }, 'riskstrom')
import RiskDetailTab from '@/pages/applications/riskStorm/riskDetailTab' const RiskDetailTab = resolve => require.ensure([], () => { resolve(require('@/pages/applications/riskStorm/riskDetailTab')) }, 'riskstrom')
{{/riskstrom}}
{{/riskstrom}}
{{#robot}}
// Robot
import Robot from '@/pages/applications/robot/robot'
{{/robot}}
{{#esign}} {{#esign}}
// E 签宝 // E 签宝
import Esign from '@/pages/applications/esign/Esign' const Esign = resolve => require.ensure([], () => { resolve(require('@/pages/applications/esign/Esign')) }, 'esign')
import BankVerified from '@/pages/applications/esign/BankVerified' const BankVerified = resolve => require.ensure([], () => { resolve(require('@/pages/applications/esign/BankVerified')) }, 'esign')
import PersonAccount from '@/pages/applications/esign/PersonAccount' const PersonAccount = resolve => require.ensure([], () => { resolve(require('@/pages/applications/esign/PersonAccount')) }, 'esign')
import SignPdf from '@/pages/applications/esign/SignPdf' const SignPdf = resolve => require.ensure([], () => { resolve(require('@/pages/applications/esign/SignPdf')) }, 'esign')
import ViewPicture from '@/pages/applications/esign/ViewPicture' const ViewPicture = resolve => require.ensure([], () => { resolve(require('@/pages/applications/esign/ViewPicture')) }, 'esign')
{{/esign}} {{/esign}}
{{#report}} {{#report}}
// 报表 // 报表
import Reports from '@/pages/applications/reports/reports' const Reports = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/reports')) }, 'report')
import BasicChart from '@/pages/applications/reports/basicChart/basicChart' const BasicChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/basicChart')) }, 'report')
import SeniorChart from '@/pages/applications/reports/seniorChart/seniorChart' const SeniorChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/seniorChart')) }, 'report')
import AreaChart from '@/pages/applications/reports/basicChart/areaChart/areaChart' const AreaChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/areaChart/areaChart')) }, 'report')
import BreadChart from '@/pages/applications/reports/basicChart/breadChart/breadChart' const BreadChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/breadChart/breadChart')) }, 'report')
import ColumnChart from '@/pages/applications/reports/basicChart/columnChart/columnChart' const ColumnChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/columnChart/columnChart')) }, 'report')
import CombinationChart from '@/pages/applications/reports/basicChart/combinationChart/combinationChart' const CombinationChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/combinationChart/combinationChart')) }, 'report')
import LineChart from '@/pages/applications/reports/basicChart/lineChart/lineChart' const LineChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/lineChart/lineChart')) }, 'report')
import NoodlesChart from '@/pages/applications/reports/basicChart/noodlesChart/noodlesChart' const NoodlesChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/noodlesChart/noodlesChart')) }, 'report')
import PointChart from '@/pages/applications/reports/basicChart/pointChart/pointChart' const PointChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/basicChart/pointChart/pointChart')) }, 'report')
import ArcGridChart from '@/pages/applications/reports/seniorChart/arcGridChart/arcGridChart' const ArcGridChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/arcGridChart/arcGridChart')) }, 'report')
import ClickLine from '@/pages/applications/reports/seniorChart/clickLine/clickLine' const ClickLine = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/clickLine/clickLine')) }, 'report')
import Guide from '@/pages/applications/reports/seniorChart/guide/guide' const Guide = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/guide/guide')) }, 'report')
import HeartRate from '@/pages/applications/reports/seniorChart/heartRate/heartRate' const HeartRate = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/heartRate/heartRate')) }, 'report')
import InteractionLegend from '@/pages/applications/reports/seniorChart/interactionLegend/interactionLegend' const InteractionLegend = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/interactionLegend/interactionLegend')) }, 'report')
import OtherChart from '@/pages/applications/reports/seniorChart/otherChart/otherChart' const OtherChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/otherChart/otherChart')) }, 'report')
import RadarChart from '@/pages/applications/reports/seniorChart/radarChart/radarChart' const RadarChart = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/radarChart/radarChart')) }, 'report')
import StatsCard from '@/pages/applications/reports/seniorChart/stasCard/stasCard' const StatsCard = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/stasCard/stasCard')) }, 'report')
import TitleTooltip from '@/pages/applications/reports/seniorChart/titleTooltip/titleTooltip' const TitleTooltip = resolve => require.ensure([], () => { resolve(require('@/pages/applications/reports/seniorChart/titleTooltip/titleTooltip')) }, 'report')
{{/report}} {{/report}}
{{#qixin}} {{#qixin}}
// 启信宝 // 启信宝
import QiXinBao from '@/pages/applications/qiXinBao/qiXinBao' const QiXinBao = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinBao')) }, 'qixin')
import QiXinSearch from '@/pages/applications/qiXinBao/qiXinSearch' const QiXinSearch = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinSearch')) }, 'qixin')
import QiXinDetail from '@/pages/applications/qiXinBao/qiXinDetail/qiXinDetail' const QiXinDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/qiXinDetail')) }, 'qixin')
import CompanyDetail from '@/pages/applications/qiXinBao/qiXinDetail/companyInformation' const CompanyDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/companyInformation')) }, 'qixin')
import industrialCommDetail from '@/pages/applications/qiXinBao/qiXinDetail/industrialCommDetail' const industrialCommDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/industrialCommDetail')) }, 'qixin')
import changeRecord from '@/pages/applications/qiXinBao/qiXinDetail/changeRecord' const changeRecord = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/changeRecord')) }, 'qixin')
import investRelatDetail from '@/pages/applications/qiXinBao/qiXinDetail/investRelatDetail' const investRelatDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/investRelatDetail')) }, 'qixin')
import annualReports from '@/pages/applications/qiXinBao/qiXinDetail/annualReports' const annualReports = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/annualReports')) }, 'qixin')
import annualReportsDetail from '@/pages/applications/qiXinBao/qiXinDetail/annualReportsDetail' const annualReportsDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/annualReportsDetail')) }, 'qixin')
import courtDecisionDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtDecisionDetail' const courtDecisionDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtDecisionDetail')) }, 'qixin')
import executedPersonDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/executedPersonDetail' const executedPersonDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/executedPersonDetail')) }, 'qixin')
import openNoticeDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/openNoticeDetail' const openNoticeDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/openNoticeDetail')) }, 'qixin')
import openNoticeDetailArrow from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/openNoticeDetailArrow' const openNoticeDetailArrow = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/openNoticeDetailArrow')) }, 'qixin')
import courtNoticeDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtNoticeDetail' const courtNoticeDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtNoticeDetail')) }, 'qixin')
import courtNoticeDetailArrow from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtNoticeDetailArrow' const courtNoticeDetailArrow = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/courtNoticeDetailArrow')) }, 'qixin')
import loseInformation from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/loseInformation' const loseInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/loseInformation')) }, 'qixin')
import loseInformationDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/loseInformationDetail' const loseInformationDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/loseInformationDetail')) }, 'qixin')
import chattelMortgage from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/chattelMortgage' const chattelMortgage = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/chattelMortgage')) }, 'qixin')
import chattelMortgageDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/chattelMortgageDetail' const chattelMortgageDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/chattelMortgageDetail')) }, 'qixin')
import taxesInformation from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/taxesInformation' const taxesInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/taxesInformation')) }, 'qixin')
import judicialSale from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/judicialSale' const judicialSale = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/judicialSale')) }, 'qixin')
import equityPledged from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityPledged' const equityPledged = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityPledged')) }, 'qixin')
import equityPledgedDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityPledgedDetail' const equityPledgedDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityPledgedDetail')) }, 'qixin')
import managementAbnormal from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/managementAbnormal' const managementAbnormal = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/managementAbnormal')) }, 'qixin')
import administrativePunish from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/administrativePunish' const administrativePunish = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/administrativePunish')) }, 'qixin')
import administrativePunishDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/administrativePunishDetail' const administrativePunishDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/administrativePunishDetail')) }, 'qixin')
import checkInspect from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/checkInspect' const checkInspect = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/checkInspect')) }, 'qixin')
import equityFreeze from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityFreeze' const equityFreeze = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityFreeze')) }, 'qixin')
import equityFreezeDetail from '@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityFreezeDetail' const equityFreezeDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/riskInfo/equityFreezeDetail')) }, 'qixin')
import trademarkInformation from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/trademarkInformation' const trademarkInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/trademarkInformation')) }, 'qixin')
import trademarkInformationDetail from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/trademarkInformationDetail' const trademarkInformationDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/trademarkInformationDetail')) }, 'qixin')
import patentInformation from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/patentInformation' const patentInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/patentInformation')) }, 'qixin')
import patentInformationDetail from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/patentInformationDetail' const patentInformationDetail = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/patentInformationDetail')) }, 'qixin')
import copyright from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/copyright' const copyright = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/copyright')) }, 'radio')
import certificationInformation from '@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/certificationInformation' const certificationInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/knowledgeInfo/certificationInformation')) }, 'qixin')
import financeInformation from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/financeInformation' const financeInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/financeInformation')) }, 'qixin')
import newsSentiment from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/newsSentiment' const newsSentiment = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/newsSentiment')) }, 'qixin')
import bid from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/bid' const bid = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/bid')) }, 'radio')
import recruitInformation from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/recruitmentInformation' const recruitInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/recruitmentInformation')) }, 'qixin')
import internetInformation from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/internetInformation' const internetInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/internetInformation')) }, 'qixin')
import administrativeLicense from '@/pages/applications/qiXinBao/qiXinDetail/businessInfo/administrativeLicense' const administrativeLicense = resolve => require.ensure([], () => { resolve(require('@/pages/applications/qiXinBao/qiXinDetail/businessInfo/administrativeLicense')) }, 'qixin')
import administrativeLicenseDetail from '@/pages//applications/qiXinBao/qiXinDetail/businessInfo/administrativeLicenseDetail' const administrativeLicenseDetail = resolve => require.ensure([], () => { resolve(require('@/pages//applications/qiXinBao/qiXinDetail/businessInfo/administrativeLicenseDetail')) }, 'qixin')
import growthProcess from '@/pages//applications/qiXinBao/qiXinDetail/businessInfo/growthProcess' const growthProcess = resolve => require.ensure([], () => { resolve(require('@/pages//applications/qiXinBao/qiXinDetail/businessInfo/growthProcess')) }, 'qixin')
{{/qixin}} {{/qixin}}
{{#ocr}} {{#ocr}}
// ocr // ocr
import OcrIdentify from '@/pages/applications/ocrIdentify/ocrIdentify' const OcrIdentify = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/ocrIdentify')) }, 'ocr')
import BusinessCard from '@/pages/applications/ocrIdentify/businessCard' const BusinessCard = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/businessCard')) }, 'ocr')
import BusinessLicenseInformaton from '@/pages/applications/ocrIdentify/businessLicenseInformation' const BusinessLicenseInformaton = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/businessLicenseInformation')) }, 'ocr')
import DriverLicenseInformation from '@/pages/applications/ocrIdentify/driverLicenseInformation' const DriverLicenseInformation = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/driverLicenseInformation')) }, 'ocr')
import IdCard from '@/pages/applications/ocrIdentify/idCard' const IdCard = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/idCard')) }, 'ocr')
import VehicleCard from '@/pages/applications/ocrIdentify/vehicleCard' const VehicleCard = resolve => require.ensure([], () => { resolve(require('@/pages/applications/ocrIdentify/vehicleCard')) }, 'ocr')
{{/ocr}} {{/ocr}}
...@@ -182,7 +174,7 @@ export default new Router({ ...@@ -182,7 +174,7 @@ export default new Router({
{ path: '/ModuleFunction', component: ModuleFunction, name: 'ModuleFunction', meta: { keepAlive: true } }, { path: '/ModuleFunction', component: ModuleFunction, name: 'ModuleFunction', meta: { keepAlive: true } },
// test工具类 // test工具类
{ path: '/hls-popup', component: HlsPopup, name: 'HlsPopup', meta: { keepAlive: false, nextReload: '' } }, { path: '/hls-popup', component: HlsPopup, name: 'HlsPopup', meta: { keepAlive: false, nextReload: '' } },
{path: '/EsignPicture', component: EsignPicture, name: 'EsignPicture', meta: {keepAlive: false}}, { path: '/EsignPicture', component: EsignPicture, name: 'EsignPicture', meta: {keepAlive: false}},
{{#wfl}} {{#wfl}}
// 工作流 // 工作流
{ {
...@@ -228,7 +220,7 @@ export default new Router({ ...@@ -228,7 +220,7 @@ export default new Router({
{{/bp}} {{/bp}}
{{#project}} {{#project}}
// 融资试算 // 融资试算
{path: '/CalculationEnter', component: CalculationEnter, name: 'CalculationEnter', meta: {keepAlive: false}}, {path: '/CalculationEnter', component: CalculationEnter, name: 'CalculationEnter', meta: {keepAlive: false}},
{path: '/calculationMain', component: CalculationMain, name: 'CalculationMain', meta: {keepAlive: false}}, {path: '/calculationMain', component: CalculationMain, name: 'CalculationMain', meta: {keepAlive: false}},
...@@ -243,9 +235,9 @@ export default new Router({ ...@@ -243,9 +235,9 @@ export default new Router({
{path: '/LeaseCarDetail', component: LeaseCarDetail, name: 'LeaseCarDetail', meta: {keepAlive: false}}, {path: '/LeaseCarDetail', component: LeaseCarDetail, name: 'LeaseCarDetail', meta: {keepAlive: false}},
{path: '/PrjQuotionInfo', component: PrjQuotionInfo, name: 'PrjQuotionInfo', meta: {keepAlive: false}}, {path: '/PrjQuotionInfo', component: PrjQuotionInfo, name: 'PrjQuotionInfo', meta: {keepAlive: false}},
{path: '/PrjAttachment', component: PrjAttachment, name: 'PrjAttachment', meta: {keepAlive: false}}, {path: '/PrjAttachment', component: PrjAttachment, name: 'PrjAttachment', meta: {keepAlive: false}},
{{/project}} {{/project}}
{{#contract}} {{#contract}}
// 合同维护与签约 // 合同维护与签约
{ {
path: '/ContractMaintenList', path: '/ContractMaintenList',
...@@ -271,29 +263,23 @@ export default new Router({ ...@@ -271,29 +263,23 @@ export default new Router({
name: 'ContractSign', name: 'ContractSign',
meta: { keepAlive: false, nextReload: '' }, meta: { keepAlive: false, nextReload: '' },
}, },
{{/contract}}
{{/contract}} {{#esign}}
{{#robot}}
// Robot
{path: '/Robot', component: Robot, name: 'Robot', meta: {keepAlive: false}},
{{/robot}}
{{#esign}}
{path: '/Esign', component: Esign, name: 'Esign', meta: {keepAlive: false}}, {path: '/Esign', component: Esign, name: 'Esign', meta: {keepAlive: false}},
{path: '/BankVerified', component: BankVerified, name: 'BankVerified', meta: {keepAlive: true}}, {path: '/BankVerified', component: BankVerified, name: 'BankVerified', meta: {keepAlive: true}},
{path: '/PersonAccount', component: PersonAccount, name: 'PersonAccount', meta: {keepAlive: true}}, {path: '/PersonAccount', component: PersonAccount, name: 'PersonAccount', meta: {keepAlive: true}},
{path: '/SignPdf', component: SignPdf, name: 'SignPdf', meta: {keepAlive: true}}, {path: '/SignPdf', component: SignPdf, name: 'SignPdf', meta: {keepAlive: true}},
{path: '/ViewPicture', component: ViewPicture, name: 'ViewPicture', meta: {keepAlive: true}}, {path: '/ViewPicture', component: ViewPicture, name: 'ViewPicture', meta: {keepAlive: true}},
{{/esign}} {{/esign}}
{{#riskstrom}} {{#riskstrom}}
// 风报 // 风报
{path: '/RiskHome', component: RiskHome, name: 'RiskHome', meta: {keepAlive: true}}, {path: '/RiskHome', component: RiskHome, name: 'RiskHome', meta: {keepAlive: true}},
{path: '/RiskSearch', component: RiskSearch, name: 'RiskSearch', meta: {keepAlive: false}}, {path: '/RiskSearch', component: RiskSearch, name: 'RiskSearch', meta: {keepAlive: false}},
{path: '/RiskSearchDetail', component: RiskSearchDetail, name: 'RiskSearchDetail', meta: {keepAlive: false}}, {path: '/RiskSearchDetail', component: RiskSearchDetail, name: 'RiskSearchDetail', meta: {keepAlive: false}},
{path: '/RiskDetailTab', component: RiskDetailTab, name: 'RiskDetailTab', meta: {keepAlive: false}}, {path: '/RiskDetailTab', component: RiskDetailTab, name: 'RiskDetailTab', meta: {keepAlive: false}},
{{/riskstrom}} {{/riskstrom}}
{{#report}} {{#report}}
// 报表 // 报表
{path: '/Reports', component: Reports, name: 'Reports', meta: {keepAlive: false}}, {path: '/Reports', component: Reports, name: 'Reports', meta: {keepAlive: false}},
{path: '/BasicChart', component: BasicChart, name: 'BasicChart', meta: {keepAlive: false}}, {path: '/BasicChart', component: BasicChart, name: 'BasicChart', meta: {keepAlive: false}},
...@@ -314,9 +300,9 @@ export default new Router({ ...@@ -314,9 +300,9 @@ export default new Router({
{path: '/RadarChart', component: RadarChart, name: 'RadarChart', meta: {keepAlive: false}}, {path: '/RadarChart', component: RadarChart, name: 'RadarChart', meta: {keepAlive: false}},
{path: '/StasCard', component: StatsCard, name: 'StatsCard', meta: {keepAlive: false}}, {path: '/StasCard', component: StatsCard, name: 'StatsCard', meta: {keepAlive: false}},
{path: '/TitleTooltip', component: TitleTooltip, name: 'TitleTooltip', meta: {keepAlive: false}}, {path: '/TitleTooltip', component: TitleTooltip, name: 'TitleTooltip', meta: {keepAlive: false}},
{{/report}} {{/report}}
{{#qixin}} {{#qixin}}
// 启信宝 // 启信宝
{path: '/QiXinBao', component: QiXinBao, name: 'QiXinBao', meta: {keepAlive: false}}, {path: '/QiXinBao', component: QiXinBao, name: 'QiXinBao', meta: {keepAlive: false}},
{path: '/qiXinSearsh', component: QiXinSearch, name: 'QiXinSearch', meta: {keepAlive: true}}, {path: '/qiXinSearsh', component: QiXinSearch, name: 'QiXinSearch', meta: {keepAlive: true}},
...@@ -362,8 +348,8 @@ export default new Router({ ...@@ -362,8 +348,8 @@ export default new Router({
{path: '/administrativeLicenseDetail', component: administrativeLicenseDetail, name: 'administrativeLicenseDetail', meta: {keepAlive: false}}, {path: '/administrativeLicenseDetail', component: administrativeLicenseDetail, name: 'administrativeLicenseDetail', meta: {keepAlive: false}},
{path: '/growthProcess', component: growthProcess, name: 'growthProcess', meta: {keepAlive: false}}, {path: '/growthProcess', component: growthProcess, name: 'growthProcess', meta: {keepAlive: false}},
{{/qixin}} {{/qixin}}
{{#ocr}} {{#ocr}}
// ocr // ocr
{path: '/OcrIdentify', component: OcrIdentify, name: 'OcrIdentify', meta: {keepAlive: false}}, {path: '/OcrIdentify', component: OcrIdentify, name: 'OcrIdentify', meta: {keepAlive: false}},
{path: '/businessCard', component: BusinessCard, name: 'BusinessCard', meta: {keepAlive: false}}, {path: '/businessCard', component: BusinessCard, name: 'BusinessCard', meta: {keepAlive: false}},
...@@ -372,7 +358,7 @@ export default new Router({ ...@@ -372,7 +358,7 @@ export default new Router({
{path: '/idCard', component: IdCard, name: 'IdCard', meta: {keepAlive: false}}, {path: '/idCard', component: IdCard, name: 'IdCard', meta: {keepAlive: false}},
{path: '/vehicleCard', component: VehicleCard, name: 'VehicleCard', meta: {keepAlive: false}}, {path: '/vehicleCard', component: VehicleCard, name: 'VehicleCard', meta: {keepAlive: false}},
{{/ocr}} {{/ocr}}
], ],
scrollBehavior (to, from, savedPosition) { scrollBehavior (to, from, savedPosition) {
if (to.hash) { if (to.hash) {
......
/*!
* vum.bundle.js is a concatenation of:
* vum.js, angular.js, angular-animate.js,
* angular-sanitize.js, angular-ui-router.js,
* and vum-angular.js
*/
/*!
* Copyright 2015 Drifty Co.
* http://drifty.com/
*
* vum, v1.3.0
* A powerful HTML5 mobile app framework.
* http://vumframework.com/
*
* By @maxlynch, @benjsperry, @adamdbradley <3
*
* Licensed under the MIT license. Please see LICENSE for more information.
*
*/
/* eslint-disable */
(function () {
// Create global vum obj and its namespaces
// build processes may have already created an vum obj
window.vum = window.vum || {}
window.vum.version = '1.3.0';
(function (window, document, vum) {
var readyCallbacks = []
var isDomReady = document.readyState === 'complete' || document.readyState === 'interactive'
function domReady () {
isDomReady = true
for (var x = 0; x < readyCallbacks.length; x++) {
vum.requestAnimationFrame(readyCallbacks[x])
}
readyCallbacks = []
document.removeEventListener('DOMContentLoaded', domReady)
}
if (!isDomReady) {
document.addEventListener('DOMContentLoaded', domReady)
}
})(window, document, vum);
(function (window, document, vum) {
function getParameterByName (name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]')
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'),
results = regex.exec(location.search)
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '))
}
var IOS = 'ios'
var ANDROID = 'android'
var WINDOWS_PHONE = 'windowsphone'
var EDGE = 'edge'
var CROSSWALK = 'crosswalk'
var requestAnimationFrame = requestAnimationFrame // eslint-disable-line
// From the man himself, Mr. Paul Irish.
// The requestAnimationFrame polyfill
// Put it on window just to preserve its context
// without having to use .call
window._rAF = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 16)
}
})()
function requestAnimationFrame (cb) {
return window._rAF(cb)
}
/**
* @ngdoc utility
* @name vum.Platform
* @module vum
* @description
* A set of utility methods that can be used to retrieve the device ready state and
* various other information such as what kind of platform the app is currently installed on.
*
* @usage
* ```js
* angular.module('PlatformApp', ['vum'])
* .controller('PlatformCtrl', function($scope) {
*
* vum.Platform.ready(function(){
* // will execute when device is ready, or immediately if the device is already ready.
* });
*
* var deviceInformation = vum.Platform.device();
*
* var isWebView = vum.Platform.isWebView();
* var isIPad = vum.Platform.isIPad();
* var isIOS = vum.Platform.isIOS();
* var isAndroid = vum.Platform.isAndroid();
* var isWindowsPhone = vum.Platform.isWindowsPhone();
*
* var currentPlatform = vum.Platform.platform();
* var currentPlatformVersion = vum.Platform.version();
*
* vum.Platform.exitApp(); // stops the app
* });
* ```
*/
var self = vum.Platform = {
// Put navigator on platform so it can be mocked and set
// the browser does not allow window.navigator to be set
navigator: window.navigator,
/**
* @ngdoc property
* @name vum.Platform#isReady
* @returns {boolean} Whether the device is ready.
*/
isReady: false,
/**
* @ngdoc property
* @name vum.Platform#isFullScreen
* @returns {boolean} Whether the device is fullscreen.
*/
isFullScreen: false,
/**
* @ngdoc property
* @name vum.Platform#platforms
* @returns {Array(string)} An array of all platforms found.
*/
platforms: null,
/**
* @ngdoc property
* @name vum.Platform#grade
* @returns {string} What grade the current platform is.
*/
grade: null,
/**
* @ngdoc property
* @name vum.Platform#ua
* @returns {string} What User Agent is.
*/
ua: navigator.userAgent,
/**
* @ngdoc method
* @name vum.Platform#ready
* @description
* Trigger a callback once the device is ready, or immediately
* if the device is already ready. This method can be run from
* anywhere and does not need to be wrapped by any additonal methods.
* When the app is within a WebView (Cordova), it'll fire
* the callback once the device is ready. If the app is within
* a web browser, it'll fire the callback after `window.load`.
* Please remember that Cordova features (Camera, FileSystem, etc) still
* will not work in a web browser.
* @param {function} callback The function to call.
*/
ready: function (cb) {
// run through tasks to complete now that the device is ready
if (self.isReady) {
cb()
} else {
// the platform isn't ready yet, add it to this array
// which will be called once the platform is ready
readyCallbacks.push(cb)
}
},
/**
* @private
*/
detect: function () {
self._checkPlatforms()
requestAnimationFrame(function () {
// only add to the body class if we got platform info
for (var i = 0; i < self.platforms.length; i++) {
document.body.classList.add('platform-' + self.platforms[i])
}
})
},
/**
* @ngdoc method
* @name vum.Platform#setGrade
* @description Set the grade of the device: 'a', 'b', or 'c'. 'a' is the best
* (most css features enabled), 'c' is the worst. By default, sets the grade
* depending on the current device.
* @param {string} grade The new grade to set.
*/
setGrade: function (grade) {
var oldGrade = self.grade
self.grade = grade
requestAnimationFrame(function () {
if (oldGrade) {
document.body.classList.remove('grade-' + oldGrade)
}
document.body.classList.add('grade-' + grade)
})
},
/**
* @ngdoc method
* @name vum.Platform#device
* @description Return the current device (given by cordova).
* @returns {object} The device object.
*/
device: function () {
return window.device || {}
},
_checkPlatforms: function () {
self.platforms = []
var grade = 'a'
/*if (self.isWebView()) {
self.platforms.push('webview')
if (!(!window.cordova && !window.PhoneGap && !window.phonegap)) {
self.platforms.push('cordova')
} else if (typeof window.forge === 'object') {
self.platforms.push('trigger')
}
} else {
self.platforms.push('browser')
}
if (self.isIPad()) self.platforms.push('ipad')*/
var platform = self.platform()
if (platform) {
self.platforms.push(platform)
/*var version = self.version()
if (version) {
var v = version.toString()
if (v.indexOf('.') > 0) {
v = v.replace('.', '_')
} else {
v += '_0'
}
self.platforms.push(platform + v.split('_')[0])
self.platforms.push(platform + v)
if (self.isAndroid() && version < 4.4) {
grade = (version < 4 ? 'c' : 'b')
} else if (self.isWindowsPhone()) {
grade = 'b'
}
}*/
}
// self.setGrade(grade)
},
/**
* @ngdoc method
* @name vum.Platform#isWebView
* @returns {boolean} Check if we are running within a WebView (such as Cordova).
*/
isWebView: function () {
return !(!window.cordova && !window.PhoneGap && !window.phonegap && window.forge !== 'object')
},
/**
* @ngdoc method
* @name vum.Platform#isIPad
* @returns {boolean} Whether we are running on iPad.
*/
isIPad: function () {
if (/iPad/i.test(self.navigator.platform)) {
return true
}
return /iPad/i.test(self.ua)
},
/**
* @ngdoc method
* @name vum.Platform#isIOS
* @returns {boolean} Whether we are running on iOS.
*/
isIOS: function () {
return self.is(IOS)
},
/**
* @ngdoc method
* @name vum.Platform#isAndroid
* @returns {boolean} Whether we are running on Android.
*/
isAndroid: function () {
return self.is(ANDROID)
},
/**
* @ngdoc method
* @name vum.Platform#isWindowsPhone
* @returns {boolean} Whether we are running on Windows Phone.
*/
isWindowsPhone: function () {
return self.is(WINDOWS_PHONE)
},
/**
* @ngdoc method
* @name vum.Platform#isEdge
* @returns {boolean} Whether we are running on MS Edge/Windows 10 (inc. Phone)
*/
isEdge: function () {
return self.is(EDGE)
},
isCrosswalk: function () {
return self.is(CROSSWALK)
},
/**
* @ngdoc method
* @name vum.Platform#platform
* @returns {string} The name of the current platform.
*/
platform: function () {
// singleton to get the platform name
if (platformName === null) self.setPlatform(self.device().platform)
return platformName
},
/**
* @private
*/
setPlatform: function (n) {
if (typeof n !== 'undefined' && n !== null && n.length) {
platformName = n.toLowerCase()
} else if (getParameterByName('vumplatform')) {
platformName = getParameterByName('vumplatform')
} else if (self.ua.indexOf('Edge') > -1) {
platformName = EDGE
} else if (self.ua.indexOf('Windows Phone') > -1) {
platformName = WINDOWS_PHONE
} else if (self.ua.indexOf('Android') > 0) {
platformName = ANDROID
} else if (/iPhone|iPad|iPod/.test(self.ua)) {
platformName = IOS
} else {
platformName = self.navigator.platform && navigator.platform.toLowerCase().split(' ')[0] || ''
}
},
/**
* @ngdoc method
* @name vum.Platform#version
* @returns {number} The version of the current device platform.
*/
version: function () {
// singleton to get the platform version
if (platformVersion === null) self.setVersion(self.device().version)
return platformVersion
},
/**
* @private
*/
setVersion: function (v) {
if (typeof v !== 'undefined' && v !== null) {
v = v.split('.')
v = parseFloat(v[0] + '.' + (v.length > 1 ? v[1] : 0))
if (!isNaN(v)) {
platformVersion = v
return
}
}
platformVersion = 0
// fallback to user-agent checking
var pName = self.platform()
var versionMatch = {
'android': /Android (\d+).(\d+)?/,
'ios': /OS (\d+)_(\d+)?/,
'windowsphone': /Windows Phone (\d+).(\d+)?/,
}
if (versionMatch[pName]) {
v = self.ua.match(versionMatch[pName])
if (v && v.length > 2) {
platformVersion = parseFloat(v[1] + '.' + v[2])
}
}
},
/**
* @ngdoc method
* @name vum.Platform#is
* @param {string} Platform name.
* @returns {boolean} Whether the platform name provided is detected.
*/
is: function (type) {
type = type.toLowerCase()
// check if it has an array of platforms
if (self.platforms) {
for (var x = 0; x < self.platforms.length; x++) {
if (self.platforms[x] === type) return true
}
}
// exact match
var pName = self.platform()
if (pName) {
return pName === type.toLowerCase()
}
// A quick hack for to check userAgent
return self.ua.toLowerCase().indexOf(type) >= 0
},
/**
* @ngdoc method
* @name vum.Platform#exitApp
* @description Exit the app.
*/
exitApp: function () {
self.ready(function () {
navigator.app && navigator.app.exitApp && navigator.app.exitApp()
})
},
/**
* @ngdoc method
* @name vum.Platform#showStatusBar
* @description Shows or hides the device status bar (in Cordova). Requires `cordova plugin add org.apache.cordova.statusbar`
* @param {boolean} shouldShow Whether or not to show the status bar.
*/
showStatusBar: function (val) {
// Only useful when run within cordova
self._showStatusBar = val
self.ready(function () {
// run this only when or if the platform (cordova) is ready
requestAnimationFrame(function () {
if (self._showStatusBar) {
// they do not want it to be full screen
window.StatusBar && window.StatusBar.show()
document.body.classList.remove('status-bar-hide')
} else {
// it should be full screen
window.StatusBar && window.StatusBar.hide()
document.body.classList.add('status-bar-hide')
}
})
})
},
/**
* @ngdoc method
* @name vum.Platform#fullScreen
* @description
* Sets whether the app is fullscreen or not (in Cordova).
* @param {boolean=} showFullScreen Whether or not to set the app to fullscreen. Defaults to true. Requires `cordova plugin add org.apache.cordova.statusbar`
* @param {boolean=} showStatusBar Whether or not to show the device's status bar. Defaults to false.
*/
fullScreen: function (showFullScreen, showStatusBar) {
// showFullScreen: default is true if no param provided
self.isFullScreen = (showFullScreen !== false)
// add/remove the fullscreen classname to the body
vum.DomUtil.ready(function () {
// run this only when or if the DOM is ready
requestAnimationFrame(function () {
if (self.isFullScreen) {
document.body.classList.add('fullscreen')
} else {
document.body.classList.remove('fullscreen')
}
})
// showStatusBar: default is false if no param provided
self.showStatusBar((showStatusBar === true))
})
},
}
var platformName = null, // just the name, like iOS or Android
platformVersion = null, // a float of the major and minor, like 7.1
readyCallbacks = [],
windowLoadListenderAttached,
platformReadyTimer = 2000 // How long to wait for platform ready before emitting a warning
verifyPlatformReady()
// Warn the user if deviceready did not fire in a reasonable amount of time, and how to fix it.
function verifyPlatformReady () {
setTimeout(function () {
if (!self.isReady && self.isWebView()) {
void 0
}
}, platformReadyTimer)
}
// setup listeners to know when the device is ready to go
function onWindowLoad () {
if (self.isWebView()) {
// the window and scripts are fully loaded, and a cordova/phonegap
// object exists then let's listen for the deviceready
document.addEventListener('deviceready', onPlatformReady, false)
} else {
// the window and scripts are fully loaded, but the window object doesn't have the
// cordova/phonegap object, so its just a browser, not a webview wrapped w/ cordova
onPlatformReady()
}
if (windowLoadListenderAttached) {
window.removeEventListener('load', onWindowLoad, false)
}
}
if (document.readyState === 'complete') {
onWindowLoad()
} else {
windowLoadListenderAttached = true
window.addEventListener('load', onWindowLoad, false)
}
function onPlatformReady () {
// the device is all set to go, init our own stuff then fire off our event
self.isReady = true
self.detect()
for (var x = 0; x < readyCallbacks.length; x++) {
// fire off all the callbacks that were added before the platform was ready
readyCallbacks[x]()
}
readyCallbacks = []
vum.trigger('platformready', {target: document})
requestAnimationFrame(function () {
document.body.classList.add('platform-ready')
})
}
// document.addEventListener('')
})(window, document, vum);
/**
* ion-events.js
*
* Author: Max Lynch <max@drifty.com>
*
* Framework events handles various mobile browser events, and
* detects special events like tap/swipe/etc. and emits them
* as custom events that can be used in an app.
*
* Portions lovingly adapted from github.com/maker/ratchet and github.com/alexgibson/tap.js - thanks guys!
*/
(function (vum) {
// Custom event polyfill
vum.CustomEvent = (function () {
if (typeof window.CustomEvent === 'function') return CustomEvent
var customEvent = function (event, params) {
var evt
params = params || {
bubbles: false,
cancelable: false,
detail: undefined,
}
try {
evt = document.createEvent('CustomEvent')
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail)
} catch (error) {
// fallback for browsers that don't support createEvent('CustomEvent')
evt = document.createEvent('Event')
for (var param in params) {
evt[param] = params[param]
}
evt.initEvent(event, params.bubbles, params.cancelable)
}
return evt
}
customEvent.prototype = window.Event.prototype
return customEvent
})()
/**
* @ngdoc utility
* @name vum.EventController
* @module vum
*/
vum.EventController = {
VIRTUALIZED_EVENTS: ['tap', 'swipe', 'swiperight', 'swipeleft', 'drag', 'hold', 'release'],
/**
* @ngdoc method
* @name vum.EventController#trigger
* @alias vum.trigger
* @param {string} eventType The event to trigger.
* @param {object} data The data for the event. Hint: pass in
* `{target: targetElement}`
* @param {boolean=} bubbles Whether the event should bubble up the DOM.
* @param {boolean=} cancelable Whether the event should be cancelable.
*/
// Trigger a new event
trigger: function (eventType, data, bubbles, cancelable) {
var event = new vum.CustomEvent(eventType, {
detail: data,
bubbles: !!bubbles,
cancelable: !!cancelable,
})
// Make sure to trigger the event on the given target, or dispatch it from
// the window if we don't have an event target
data && data.target && data.target.dispatchEvent && data.target.dispatchEvent(event) || window.dispatchEvent(event)
},
/**
* @ngdoc method
* @name vum.EventController#on
* @alias vum.on
* @description Listen to an event on an element.
* @param {string} type The event to listen for.
* @param {function} callback The listener to be called.
* @param {DOMElement} element The element to listen for the event on.
*/
on: function (type, callback, element) {
var e = element || window
// Bind a gesture if it's a virtual event
for (var i = 0, j = this.VIRTUALIZED_EVENTS.length; i < j; i++) {
if (type == this.VIRTUALIZED_EVENTS[i]) {
var gesture = new vum.Gesture(element)
gesture.on(type, callback)
return gesture
}
}
// Otherwise bind a normal event
e.addEventListener(type, callback)
},
/**
* @ngdoc method
* @name vum.EventController#off
* @alias vum.off
* @description Remove an event listener.
* @param {string} type
* @param {function} callback
* @param {DOMElement} element
*/
off: function (type, callback, element) {
element.removeEventListener(type, callback)
},
/**
* @ngdoc method
* @name vum.EventController#onGesture
* @alias vum.onGesture
* @description Add an event listener for a gesture on an element.
*
* Available eventTypes (from [hammer.js](http://eightmedia.github.io/hammer.js/)):
*
* `hold`, `tap`, `doubletap`, `drag`, `dragstart`, `dragend`, `dragup`, `dragdown`, <br/>
* `dragleft`, `dragright`, `swipe`, `swipeup`, `swipedown`, `swipeleft`, `swiperight`, <br/>
* `transform`, `transformstart`, `transformend`, `rotate`, `pinch`, `pinchin`, `pinchout`, <br/>
* `touch`, `release`
*
* @param {string} eventType The gesture event to listen for.
* @param {function(e)} callback The function to call when the gesture
* happens.
* @param {DOMElement} element The angular element to listen for the event on.
* @param {object} options object.
* @returns {vum.Gesture} The gesture object (use this to remove the gesture later on).
*/
onGesture: function (type, callback, element, options) {
var gesture = new vum.Gesture(element, options)
gesture.on(type, callback)
return gesture
},
/**
* @ngdoc method
* @name vum.EventController#offGesture
* @alias vum.offGesture
* @description Remove an event listener for a gesture created on an element.
* @param {vum.Gesture} gesture The gesture that should be removed.
* @param {string} eventType The gesture event to remove the listener for.
* @param {function(e)} callback The listener to remove.
*/
offGesture: function (gesture, type, callback) {
gesture && gesture.off(type, callback)
},
handlePopState: function () {
},
}
// Map some convenient top-level functions for event handling
vum.on = function () {
vum.EventController.on.apply(vum.EventController, arguments)
}
vum.off = function () {
vum.EventController.off.apply(vum.EventController, arguments)
}
vum.trigger = vum.EventController.trigger// function() { vum.EventController.trigger.apply(vum.EventController.trigger, arguments); };
vum.onGesture = function () {
return vum.EventController.onGesture.apply(vum.EventController.onGesture, arguments)
}
vum.offGesture = function () {
return vum.EventController.offGesture.apply(vum.EventController.offGesture, arguments)
}
})(window.vum);
(function (vum) {
vum.$vumPlatform = {
/**
* @ngdoc method
* @name $vumPlatform#onHardwareBackButton
* @description
* Some platforms have a hardware back button, so this is one way to
* bind to it.
* @param {function} callback the callback to trigger when this event occurs
*/
onHardwareBackButton: function (cb) {
vum.Platform.ready(function () {
document.addEventListener('backbutton', cb, false)
})
},
/**
* @ngdoc method
* @name $vumPlatform#offHardwareBackButton
* @description
* Remove an event listener for the backbutton.
* @param {function} callback The listener function that was
* originally bound.
*/
offHardwareBackButton: function (fn) {
vum.Platform.ready(function () {
document.removeEventListener('backbutton', fn)
})
},
/**
* @ngdoc method
* @name $vumPlatform#registerBackButtonAction
* @description
* Register a hardware back button action. Only one action will execute
* when the back button is clicked, so this method decides which of
* the registered back button actions has the highest priority.
*
* For example, if an actionsheet is showing, the back button should
* close the actionsheet, but it should not also go back a page view
* or close a modal which may be open.
*
* The priorities for the existing back button hooks are as follows:
* Return to previous view = 100
* Close side menu = 150
* Dismiss modal = 200
* Close action sheet = 300
* Dismiss popup = 400
* Dismiss loading overlay = 500
*
* Your back button action will override each of the above actions
* whose priority is less than the priority you provide. For example,
* an action assigned a priority of 101 will override the 'return to
* previous view' action, but not any of the other actions.
*
* @param {function} callback Called when the back button is pressed,
* if this listener is the highest priority.
* @param {number} priority Only the highest priority will execute.
* @param {*=} actionId The id to assign this action. Default: a
* random unique id.
* @returns {function} A function that, when called, will deregister
* this backButtonAction.
*/
$backButtonActions: {},
registerBackButtonAction: function (fn, priority, actionId) {
if (!vum.$vumPlatform._hasBackButtonHandler) {
// add a back button listener if one hasn't been setup yet
vum.$vumPlatform.$backButtonActions = {}
vum.$vumPlatform.onHardwareBackButton(vum.$vumPlatform.hardwareBackButtonClick)
vum.$vumPlatform._hasBackButtonHandler = true
}
var action = {
id: (actionId || vum.Utils.nextUid()),
priority: (priority || 0),
fn: fn,
}
vum.$vumPlatform.$backButtonActions[action.id] = action
// return a function to de-register this back button action
return function () {
delete vum.$vumPlatform.$backButtonActions[action.id]
}
},
/**
* @private
*/
hardwareBackButtonClick: function (e) {
// loop through all the registered back button actions
// and only run the last one of the highest priority
var priorityAction, actionId
for (actionId in vum.$vumPlatform.$backButtonActions) {
if (!priorityAction || vum.$vumPlatform.$backButtonActions[actionId].priority >= priorityAction.priority) {
priorityAction = vum.$vumPlatform.$backButtonActions[actionId]
}
}
if (priorityAction) {
priorityAction.fn(e)
return priorityAction
}
},
is: function (type) {
return vum.Platform.is(type)
},
/**
* @ngdoc method
* @name $vumPlatform#on
* @description
* Add Cordova event listeners, such as `pause`, `resume`, `volumedownbutton`, `batterylow`,
* `offline`, etc. More information about available event types can be found in
* [Cordova's event documentation](https://cordova.apache.org/docs/en/edge/cordova_events_events.md.html#Events).
* @param {string} type Cordova [event type](https://cordova.apache.org/docs/en/edge/cordova_events_events.md.html#Events).
* @param {function} callback Called when the Cordova event is fired.
* @returns {function} Returns a deregistration function to remove the event listener.
*/
on: function (type, cb) {
vum.Platform.ready(function () {
document.addEventListener(type, cb, false)
})
return function () {
vum.Platform.ready(function () {
document.removeEventListener(type, cb)
})
}
},
/**
* @ngdoc method
* @name $vumPlatform#ready
* @description
* Trigger a callback once the device is ready,
* or immediately if the device is already ready.
* @param {function=} callback The function to call.
*/
ready: function (cb) {
vum.Platform.ready(function () {
cb()
})
},
getWinSize: function () {
let winWidth
let winHeight
// 获取窗口宽度
if (window.innerWidth) { winWidth = window.innerWidth } else if ((document.body) && (document.body.clientWidth))
// 获取窗口高度
{ winWidth = document.body.clientWidth }
if (window.innerHeight) { winHeight = window.innerHeight } else if ((document.body) && (document.body.clientHeight)) { winHeight = document.body.clientHeight }
// 通过深入Document内部对body进行检测,获取窗口大小
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
winHeight = document.documentElement.clientHeight
winWidth = document.documentElement.clientWidth
}
return {'width': winWidth, 'height': winHeight}
},
}
return vum.$vumPlatform
})(window.vum);
(function () {
var nextId = 0
vum.Utils = {
nextUid: function () {
return 'vue' + (nextId++)
},
}
var jqLite // delay binding since jQuery could be loaded after us.
var hasOwnProperty = Object.prototype.hasOwnProperty
/**
* @ngdoc function
* @name angular.isUndefined
* @module ng
* @kind function
*
* @description
* Determines if a reference is undefined.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is undefined.
*/
vum.isUndefined = function (value) {
return typeof value === 'undefined'
}
/**
* @ngdoc function
* @name angular.isDefined
* @module ng
* @kind function
*
* @description
* Determines if a reference is defined.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is defined.
*/
vum.isDefined = function (value) {
return typeof value !== 'undefined'
}
/**
* @ngdoc function
* @name angular.isObject
* @module ng
* @kind function
*
* @description
* Determines if a reference is an `Object`. Unlike `typeof` in JavaScript, `null`s are not
* considered to be objects. Note that JavaScript arrays are objects.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is an `Object` but not `null`.
*/
vum.isObject = function (value) {
// http://jsperf.com/isobject4
return value !== null && typeof value === 'object'
}
/**
* Determine if a value is an object with a null prototype
*
* @returns {boolean} True if `value` is an `Object` with a null prototype
*/
vum.isBlankObject = function (value) {
return value !== null && typeof value === 'object' && !getPrototypeOf(value)
}
/**
* @ngdoc function
* @name angular.isString
* @module ng
* @kind function
*
* @description
* Determines if a reference is a `String`.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `String`.
*/
vum.isString = function (value) {
return typeof value === 'string'
}
/**
* @ngdoc function
* @name angular.isNumber
* @module ng
* @kind function
*
* @description
* Determines if a reference is a `Number`.
*
* This includes the "special" numbers `NaN`, `+Infinity` and `-Infinity`.
*
* If you wish to exclude these then you can use the native
* [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite)
* method.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `Number`.
*/
vum.isNumber = function (value) {
return typeof value === 'number'
}
/**
* @ngdoc function
* @name angular.isDate
* @module ng
* @kind function
*
* @description
* Determines if a value is a date.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `Date`.
*/
vum.isDate = function (value) {
return toString.call(value) === '[object Date]'
}
/**
* @ngdoc function
* @name angular.isArray
* @module ng
* @kind function
*
* @description
* Determines if a reference is an `Array`.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is an `Array`.
*/
var isArray = Array.isArray
/**
* @ngdoc function
* @name angular.isFunction
* @module ng
* @kind function
*
* @description
* Determines if a reference is a `Function`.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `Function`.
*/
vum.isFunction = function (value) {
return typeof value === 'function'
}
/**
* Determines if a value is a regular expression object.
*
* @private
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `RegExp`.
*/
vum.isRegExp = function (value) {
return toString.call(value) === '[object RegExp]'
}
/**
* Checks if `obj` is a window object.
*
* @private
* @param {*} obj Object to check
* @returns {boolean} True if `obj` is a window obj.
*/
vum.isWindow = function (obj) {
return obj && obj.window === obj
}
vum.isScope = function (obj) {
return obj && obj.$evalAsync && obj.$watch
}
vum.isFile = function (obj) {
return toString.call(obj) === '[object File]'
}
vum.isFormData = function (obj) {
return toString.call(obj) === '[object FormData]'
}
vum.isBlob = function (obj) {
return toString.call(obj) === '[object Blob]'
}
vum.isBoolean = function (value) {
return typeof value === 'boolean'
}
vum.isPromiseLike = function (obj) {
return obj && isFunction(obj.then)
}
var TYPED_ARRAY_REGEXP = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/
vum.isTypedArray = function (value) {
return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value))
}
vum.isArrayBuffer = function (obj) {
return toString.call(obj) === '[object ArrayBuffer]'
}
vum.toJsonReplacer = function (key, value) {
var val = value
if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') {
val = undefined
} else if (vum.isWindow(value)) {
val = '$WINDOW'
} else if (value && document === value) {
val = '$DOCUMENT'
} else if (vum.isScope(value)) {
val = '$SCOPE'
}
return val
}
/**
* @ngdoc function
* @name angular.toJson
* @module ng
* @kind function
*
* @description
* Serializes input into a JSON-formatted string. Properties with leading $$ characters will be
* stripped since angular uses this notation internally.
*
* @param {Object|Array|Date|string|number} obj Input to be serialized into JSON.
* @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace.
* If set to an integer, the JSON output will contain that many spaces per indentation.
* @returns {string|undefined} JSON-ified string representing `obj`.
*/
vum.toJson = function (obj, pretty) {
if (vum.isUndefined(obj)) return undefined
if (!vum.isNumber(pretty)) {
pretty = pretty ? 2 : null
}
return JSON.stringify(obj, vum.toJsonReplacer, pretty)
}
function isArrayLike (obj) {
// `null`, `undefined` and `window` are not array-like
if (obj == null || isWindow(obj)) return false
// arrays, strings and jQuery/jqLite objects are array like
// * jqLite is either the jQuery or jqLite constructor function
// * we have to check the existence of jqLite first as this method is called
// via the forEach method when constructing the jqLite object in the first place
if (isArray(obj) || vum.isString(obj) || (jqLite && obj instanceof jqLite)) return true
// Support: iOS 8.2 (not reproducible in simulator)
// "length" in obj used to prevent JIT error (gh-11508)
var length = 'length' in Object(obj) && obj.length
// NodeList objects (with `item` method) and
// other objects with suitable length characteristics are array-like
return vum.isNumber(length) &&
(length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item === 'function')
}
/**
* @ngdoc function
* @name angular.forEach
* @module ng
* @kind function
*
* @description
* Invokes the `iterator` function once for each item in `obj` collection, which can be either an
* object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value`
* is the value of an object property or an array element, `key` is the object property key or
* array element index and obj is the `obj` itself. Specifying a `context` for the function is optional.
*
* It is worth noting that `.forEach` does not iterate over inherited properties because it filters
* using the `hasOwnProperty` method.
*
* Unlike ES262's
* [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18),
* providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just
* return the value provided.
*
```js
var values = {name: 'misko', gender: 'male'};
var log = [];
angular.forEach(values, function(value, key) {
this.push(key + ': ' + value);
}, log);
expect(log).toEqual(['name: misko', 'gender: male']);
```
*
* @param {Object|Array} obj Object to iterate over.
* @param {Function} iterator Iterator function.
* @param {Object=} context Object to become context (`this`) for the iterator function.
* @returns {Object|Array} Reference to `obj`.
*/
vum.forEach = function (obj, iterator, context) {
var key, length
if (obj) {
if (vum.isFunction(obj)) {
for (key in obj) {
// Need to check if hasOwnProperty exists,
// as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function
if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) {
iterator.call(context, obj[key], key, obj)
}
}
} else if (isArray(obj) || isArrayLike(obj)) {
var isPrimitive = typeof obj !== 'object'
for (key = 0, length = obj.length; key < length; key++) {
if (isPrimitive || key in obj) {
iterator.call(context, obj[key], key, obj)
}
}
} else if (obj.forEach && obj.forEach !== forEach) {
obj.forEach(iterator, context, obj)
} else if (vum.isBlankObject(obj)) {
// createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
for (key in obj) {
iterator.call(context, obj[key], key, obj)
}
} else if (typeof obj.hasOwnProperty === 'function') {
// Slow path for objects inheriting Object.prototype, hasOwnProperty check needed
for (key in obj) {
if (obj.hasOwnProperty(key)) {
iterator.call(context, obj[key], key, obj)
}
}
} else {
// Slow path for objects which do not have a method `hasOwnProperty`
for (key in obj) {
if (hasOwnProperty.call(obj, key)) {
iterator.call(context, obj[key], key, obj)
}
}
}
}
return obj
}
vum.forEachSorted = function (obj, iterator, context) {
var keys = Object.keys(obj).sort()
for (var i = 0; i < keys.length; i++) {
iterator.call(context, obj[keys[i]], keys[i])
}
return keys
}
})(window.vum)
})()
/**
*
* @param fmt
* @returns {*}
* @constructor
*/
Date.prototype.format = function (fmt) { // eslint-disable-line
var o = {
'M+': this.getMonth() + 1, // 月份
'd+': this.getDate(), // 日
'h+': this.getHours(), // 小时
'm+': this.getMinutes(), // 分
's+': this.getSeconds(), // 秒
'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
'S': this.getMilliseconds(), // 毫秒
}
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
for (var k in o) { if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) }
return fmt
}
/**
* 移除数组的某个元素
* @param dx 下标
* @returns {boolean}
*/
Array.prototype.remove = function (dx) { // eslint-disable-line
if (isNaN(dx) || dx > this.length) {
return false
}
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] !== this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
...@@ -3841,18 +3841,6 @@ he@1.2.x, he@^1.1.0: ...@@ -3841,18 +3841,6 @@ he@1.2.x, he@^1.1.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
"hls-easy-ui@https://hel.hand-china.com/easyUI/hls-easy-ui.git":
version "0.0.4"
resolved "https://hel.hand-china.com/easyUI/hls-easy-ui.git#5f7b05e25ed733d273c1efa516e493b01ec75e04"
dependencies:
autosize "^3.0.20"
better-scroll "^1.10.3"
fastclick "https://hel.hand-china.com/easyUI/fastclick.git"
vue "^2.5.2"
vue-lazyload "1.2.3"
vue-router "^3.0.1"
vux "^2.9.2"
hmac-drbg@^1.0.0: hmac-drbg@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
......
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