Commit 31f82198 authored by 邹骏's avatar 邹骏

审核待办模块

parent 26084c4c
<template>
<h-view id="np-base-info">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn" @click="$routeGo()">
<img src="@/assets/userBind/arrow.png" >
<span>用户审批</span>
</div>
</h-header>
<h-content>
<div class="tab">
<p><span :class="{'selected':activedCom === 'base-info'}" @click="isSelected(0)">基本信息</span></p>
<p><span :class="{'selected':activedCom === 'bill-info'}" @click="isSelected(1)">开票信息</span></p>
<p><span :class="{'selected':activedCom === 'append-info'}" @click="isSelected(2)">附件信息</span></p>
<p><span :class="{'selected':activedCom === 'credit-info'}" @click="isSelected(3)">银行卡</span></p>
</div>
<div style="padding-top:45px;">
<div :is='activedCom' :document_id="document_id" :document_name="document_name" :record_id="record_id"></div>
<!-- <base-info v-if="selected === 'base'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></base-info>
<bill-info v-if="selected === 'bill'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></bill-info>
<append-info v-if="selected === 'appe'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></append-info>
<credit-info v-if="selected === 'cred'" :document_id="document_id" :document_name="document_name" :record_id="record_id"></credit-info> -->
</div>
</h-content>
<bottom-tab class="footer-button">
<tab-button class="save" @click.native="approv('0')">审批</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue">
<div class="modal_header">
审批意见<img src="@/assets/userBind/close.png" @click="hideModal()">
</div>
<div class="modal_content">
<textarea v-model="comment_text"></textarea>
</div>
<div class="modal_footer">
<bottom-tab class="footer-button">
<tab-button class="refuse" @click.native="approv('2')">拒绝</tab-button>
<tab-button class="comfirm" @click.native="approv('1')">同意</tab-button>
</bottom-tab>
</div>
</h-modal>
</h-view>
</template>
<script>
import baseInfo from './component/baseInfo'
import billInfo from './component/billInfo'
import appendInfo from './component/appendInfo'
import creditInfo from './component/creditInfo'
export default {
components: {
baseInfo,
billInfo,
appendInfo,
creditInfo,
},
data () {
return {
selected: '',
document_id: '',
document_name: '',
record_id: '',
comment_text: '',
showModalValue: false,
activedCom: '',
comArr: ['base-info', 'bill-info', 'append-info', 'credit-info'],
}
},
watch: {
},
mounted () {
this.activedCom = 'base-info'
},
activated () {
this.document_id = this.$route.params.document_id
this.document_name = this.$route.params.document_name
this.record_id = this.$route.params.record_id
},
methods: {
isSelected (index) {
this.activedCom = this.comArr[index]
},
hideModal () {
this.showModalValue = false
},
approv (action_type) {
if (action_type == '0') {
this.showModalValue = true
} else {
let param = {
master: {
record_id: this.record_id,
action_type: action_type,
user_id: this.document_id,
comment_text: this.comment_text,
}
}
let url
if (action_type == '1') {
url = $config.basePath + 'action_agree'
} else if (action_type == '2') {
url = $config.basePath + 'action_refuse'
}
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
if (res.result === 'S') {
} else {
}
this.showModalValue = false
})
}
},
},
}
</script>
<style lang="less" scoped>
.refuse {
color: #fff;
border-radius: 4px;
background-color: yellow;
width: 150px;
}
.save,.comfirm {
color: #fff;
border-radius: 4px;
background-color: @headerColor;
width: 150px;
}
.modal_header {
width: 100%;
height: 50px;
line-height: 30px;
padding: 10px 20px;
background: white;
position: fixed;
bottom: 300px;
vertical-align: middle;
img {
width: 30px;
height: 30px;
float: right;
}
}
.modal_content {
width: 100%;
height: 250px;
padding: 0 20px;
background: white;
position: fixed;
bottom: 50px;
textarea{
width: 100%;
height: 200px;
color: #666;
resize: none;
border: 1px solid #999;
}
}
.modal_footer {
width: 100%;
height: 50px;
background: white;
position: fixed;
bottom: 0;
}
.tab {
display: flex;
background-color: #fff;
padding: 6px 8px 4px 6px;
position: fixed;
width: 100%;
z-index: 50;
p {
text-align: center;
flex: auto;
span {
display: block;
padding: 6px 0;
background-color: #fff;
font-family: PingFangSC-Regular;
font-size: 15px;
color: #656464;
}
span.selected {
border-bottom: 3px solid #1D3FFF;
font-family: PingFangSC-Semibold;
font-weight: 700;
}
}
}
</style>
This diff is collapsed.
This diff is collapsed.
<template>
<h-view id="np-invoice">
<h-content>
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name">纳税人类型</div>
<input
slot="content"
v-model="invoiceInfo.taxpayer_type_n"
type="text"
readonly
placeholder="请选择"
onfocus="this.blur()"
@click="selectTaxpayer"
>
</item>
<item :showArrow="true">
<div slot="name">发票类型</div>
<input
slot="content"
v-model="invoiceInfo.invoice_kind_n"
type="text"
readonly
placeholder="请选择"
onfocus="this.blur()"
@click="selectInvoiceType"
>
</item>
<item>
<div slot="name">发票抬头</div>
<input slot="content" v-model="invoiceInfo.invoice_title" type="text" placeholder="" >
</item>
<item>
<div slot="name">发票地址</div>
<textarea
slot="content"
ref="myTestarea"
readonly
v-model="invoiceInfo.invoice_adds"
cols="22" rows="1" type="text" placeholder=""
@input="addRows(invoiceInfo.invoice_adds)" />
</item>
<item>
<div slot="name">开户电话</div>
<input slot="content" v-model="invoiceInfo.invoice_tel" type="text" readonly placeholder="" >
</item>
<item>
<div slot="name">发票开户行</div>
<textarea
slot="content"
ref="myTestareaLive"
v-model="invoiceInfo.open_bank"
readonly
cols="22"
rows="1"
type="text"
placeholder=""
@input="addRowsLive(invoiceInfo.open_bank)"
/>
</item>
<item>
<div slot="name">开户行账号</div>
<input
slot="content" v-model="invoiceInfo.open_account" type="number" pattern="\d*"
readonly
placeholder="" >
</item>
</list-item>
</h-content>
</h-view>
</template>
<script>
export default {
data () {
return {
value: '',
invoicList: [],
taxpayerList: [],
invoiceInfo: {
bp_id: null,
bp_class: null,
taxpayer_type_n: '',
invoice_kind_n: '',
taxpayer_type: '',
invoice_kind: '',
invoice_title: '',
invoice_adds: '',
invoice_tel: '',
open_bank: '',
open_account: '',
},
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'NPBaseInfo') {
vm.invoiceInfo = {
bp_id: null,
bp_class: null,
taxpayer_type_n: '',
invoice_kind_n: '',
taxpayer_type: '',
invoice_kind: '',
invoice_title: '',
invoice_adds: '',
invoice_tel: '',
open_bank: '',
open_account: '',
}
vm.getInvoice()
}
})
},
props: {
document_id: String,
document_name: String,
},
created () {
this.getInvoiceType()
this.getTaxpayer()
this.getInvoice()
},
methods: {
getInvoice () {
let vm = this
let url = process.env.basePath + 'bp_invoice_query'
let param = {
bp_id: this.document_id,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.invoiceInfo = res.info
if (res.info.invoice_title == '' || res.info.invoice_title == null || res.info.invoice_title == undefined) {
vm.invoiceInfo.invoice_title = window.localStorage.bp_name
}
vm.addRows(vm.invoiceInfo.invoice_adds)
vm.addRowsLive(vm.invoiceInfo.open_bank)
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
addRows (e) {
if (e) {
// let addNum = Math.ceil(e.length / 16)
// if (addNum === 0) {
// this.$refs.myTestarea.rows = 1
// } else if (addNum >= addNum - 1 && addNum < addNum + 1) {
// this.$refs.myTestarea.rows = addNum + 1
// }
let len = 0
for (let i = 0; i < e.length; i++) {
var c = e.charCodeAt(i)
// 统计字符串的字符长度
if ((c >= 0x0001 && c <= 0x007e) || (c >= 0xff60 && c <= 0xff9f)) {
len += 1
} else {
len += 2
}
}
let addNum = Math.ceil(len / 21)
this.$refs.myTestarea.rows = addNum
}
},
addRowsLive (e) {
if (e) {
// let addNum = Math.ceil(e.length / 16)
// if (addNum === 0) {
// this.$refs.myTestareaLive.rows = 1
// } else if (addNum >= addNum - 1 && addNum < addNum + 1) {
// this.$refs.myTestareaLive.rows = addNum + 1
// }
let len = 0
for (let i = 0; i < e.length; i++) {
var c = e.charCodeAt(i)
// 统计字符串的字符长度
if ((c >= 0x0001 && c <= 0x007e) || (c >= 0xff60 && c <= 0xff9f)) {
len += 1
} else {
len += 2
}
}
let addNum = Math.ceil(len / 21)
this.$refs.myTestareaLive.rows = addNum
}
},
getInvoiceType () {
let vm = this
let url = process.env.basePath + 'bp_invoice_kind_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.invoicList = res.lists.map(item => {
return {
code: item.invoice_kind,
code_name: item.invoice_kind_n,
}
})
}
})
},
getTaxpayer () {
let vm = this
let url = process.env.basePath + 'bp_taxpayer_type_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.taxpayerList = res.lists.map(item => {
return {
code: item.taxpayer_type,
code_name: item.taxpayer_type_n,
}
})
}
})
},
selectInvoiceType (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.invoicList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.$set(vm.invoiceInfo, 'invoice_kind', obj.bp_type)
vm.$set(vm.invoiceInfo, 'invoice_kind_n', obj.bp_type_n)
/* vm.invoiceInfo.invoice_kind = obj.bp_type
vm.invoiceInfo.invoice_kind_n = obj.bp_type_n */
},
})
},
selectTaxpayer (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.taxpayerList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.$set(vm.invoiceInfo, 'taxpayer_type', obj.bp_type)
vm.$set(vm.invoiceInfo, 'taxpayer_type_n', obj.bp_type_n)
/* vm.invoiceInfo.taxpayer_type = obj.bp_type
vm.invoiceInfo.taxpayer_type_n = obj.bp_type_n */
},
})
},
},
}
</script>
<style lang="less" scoped>
input::placeholder{
color: #B4B4B5;
}
textarea::placeholder {
color: #b4b4b5;
}
textarea {
text-align: right;
color:#666;
resize: none;
}
.save {
color: #fff;
border-radius: 4px;
background-color: @headerColor;
}
</style>
This diff is collapsed.
/**
* @Author Sean
* @Date 2019/11/27
*/
<template>
<transition name="role">
<div v-show="showFlag" class="role-switch-wrap">
<div class="role-switch-content">
<div class="content-header">
<span>请输入业务经办代码</span>
<img src="@/assets/myInfo/modalClose.png" @click="roleCancle">
</div>
<div class="content-wrap">
<div class="input-text">
<input v-model="business_num" type="text" placeholder="请输入业务经办代码">
</div>
<div class="content-btn-active content-btn" @click="roleConfirm"><span>确定</span></div>
</div>
</div>
</div>
</transition>
</template>
<script>
export default {
data () {
return {
showFlag: false,
business_num: '',
}
},
created: function () {
},
mounted: function () {
},
updated: function () {
},
methods: {
roleConfirm () {
let vm = this
let url = process.env.basePath + 'bp_relation_insert'
let param = {
bp_id: window.localStorage.getItem('bp_id'),
business_num: vm.business_num,
}
vm.hlsPopup.showLoading('正在添加')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
vm.hlsPopup.showLongCenter('添加成功')
if (res.result === 'S') {
vm.showFlag = false
vm.$emit('roleConfirm', vm.business_num)
vm.business_num = ''
} else {
hlsPopup.showError(res.message)
vm.business_num = ''
}
})
},
roleCancle () {
this.showFlag = false
this.$emit('roleCancle')
},
},
}
</script>
<style scoped lang="less">
.role-enter-active, .role-leave-active {
transition: opacity .5s;
}
.role-enter, .role-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
.role-switch-wrap {
width: 100%;
height: 100%;
position: absolute;
top: 0;
z-index: 999;
background: rgba(56, 63, 69, 0.30);
display: flex;
justify-content: center;
align-items: center;
.role-switch-content {
width: 80%;
margin: 0 auto;
.content-header {
width: 100%;
height: 44px;
background-color: @headerColor;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #FFFFFF;
letter-spacing: 0;
text-align: center;
line-height: 44px;
border-top-left-radius: 14px;
border-top-right-radius: 14px;
img {
width: 26px;
float: right;
}
}
.content-wrap {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #FFF;
padding: 10px 0;
border-bottom-left-radius: 14px;
border-bottom-right-radius: 14px;
.input-text{
border: 1px solid @headerColor;
margin:30px auto;
height:40px;
line-height: 40px;
border-radius: 5px;
input{
text-indent: 5px;
}
}
.role-item {
width: 90%;
height: 44px;
background: #FFFFFF;
border: 1px solid #CFCFCF;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
margin: 4px 0;
span {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
letter-spacing: 0;
line-height: 18px;
}
}
.item-active{
background: rgba(29,63,255,0.10);
border: 1px solid #1D3FFF;
border-radius: 4px;
}
}
.content-btn {
margin-top: 10px;
width: 84%;
height: 40px;
background: rgba(56, 63, 69, 0.50);
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
span {
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #FAFAFA;
line-height: 20px;
}
}
.content-btn-active{
background: #1D3FFF;
border-radius: 4px;
}
}
}
</style>
......@@ -19,6 +19,15 @@
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
<div class="info-content">
<div class="add-name">
<img src="@/assets/functionCenter/todo@2x.png" alt="" >
<div class="name-title">待办审批</div>
</div>
<div class="add-content" @click="todoList()">
<img src="@/assets/functionCenter/in@2x.png" alt="" >
</div>
</div>
</div>
<div class="fun-item-before">
......@@ -323,10 +332,20 @@ export default {
hlsPopup.showLongCenter('您的用户绑定申请正在审批中!')
}
},
todoList() {
if (this.bp_id) {
if(window.localStorage.multipleRole !== 'OFFICE' && window.localStorage.multipleRole !== 'AGENT'){
hlsPopup.showLongCenter('仅经销商/办事处业务员角色可使用该功能!')
}else{
this.$router.push({
name: 'ToDoList',
})
}
} else {
hlsPopup.showLongCenter('请先进行用户绑定')
}
}
},
}
</script>
......
This diff is collapsed.
......@@ -124,18 +124,20 @@ export default {
// }, {enableHighAccuracy: true})
// } else { // ios使用插件定位
console.log('&&&&&&&&&&&&___ios')
baidumap_location.getCurrentPosition(function (result) {
if (window.localStorage.getItem('province')) {
vm.city = window.localStorage.getItem('city')
vm.province = window.localStorage.getItem('province')
vm.guessingQuery(vm.city)
} else {
vm.city = result.city
vm.province = result.province
vm.guessingQuery(result.city)
}
}, function (error) {
})
if (!$config.isMobilePlatform) {
baidumap_location.getCurrentPosition(function (result) {
if (window.localStorage.getItem('province')) {
vm.city = window.localStorage.getItem('city')
vm.province = window.localStorage.getItem('province')
vm.guessingQuery(vm.city)
} else {
vm.city = result.city
vm.province = result.province
vm.guessingQuery(result.city)
}
}, function (error) {
})
}
// }
// setTimeout(vm.guessingQuery(), 0)
},
......
......@@ -134,7 +134,9 @@ import PrivacyPolicy from '@/pages/myInfo/PrivacyPolicy'
// 业务办理
import FunctionCenter from '@/pages/functionCenter/function-list'
// 待办审批
import ToDoList from '@/pages/functionCenter/to-do-list'
import approvalInfo from '@/pages/functionCenter/approval-info'
// 我的发票
import MyInvoice from '@/pages/invoice/invoice'
Vue.use(Router)
......@@ -164,9 +166,10 @@ export default new Router({
{path: '/tab/my-info', component: MyInfo, name: 'MyInfo', meta: {keepAlive: true}},
{path: '/tab/message-center', component: MessageCenter, name: 'MessageCenter', meta: {keepAlive: true}},
{path: '/tab/function-center', component: FunctionCenter, name: 'FunctionCenter', meta: {keepAlive: true}},
{path: '/tab/ToDoList', component: ToDoList, name: 'ToDoList', meta: {keepAlive: true}},
],
},
{path: '/tab/approvalInfo', component: approvalInfo, name: 'approvalInfo', meta: {keepAlive: true}},
{
path: '/home-page',
component: HomePage,
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width,viewport-fit=cover"><meta name=format-detection content="telephone=no"><meta name=format-detection content="email=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black><script type=text/javascript src=./static/vuePlatform.js></script><script type=text/javascript src=./static/prototype.js></script><script type=text/javascript src=./cordova.js></script><script type=text/javascript src="http://api.map.baidu.com/api?v=2.0&ak=Eoo0EtfjYCdAy7r8D19gZ0vMojdZpHqU"></script><title>徐工金服</title><link href=./static/css/app.dd7832c0b9f688086087e80d2a12ea7a.css rel=stylesheet></head><body><div id=app-box></div><script type=text/javascript src=./static/js/manifest.df7ef04eb2f9b87348bc.js></script><script type=text/javascript src=./static/js/vendor.62027bd56a192b5fe7ba.js></script><script type=text/javascript src=./static/js/app.cc68bbe27bc74ca6bc8f.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width,viewport-fit=cover"><meta name=format-detection content="telephone=no"><meta name=format-detection content="email=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black><script type=text/javascript src=./static/vuePlatform.js></script><script type=text/javascript src=./static/prototype.js></script><script type=text/javascript src=./cordova.js></script><script type=text/javascript src="http://api.map.baidu.com/api?v=2.0&ak=Eoo0EtfjYCdAy7r8D19gZ0vMojdZpHqU"></script><title>徐工金服</title><link href=./static/css/app.039170d820a8558db6e0d2b704020095.css rel=stylesheet></head><body><div id=app-box></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.1457c8353aa3e36618de.js></script><script type=text/javascript src=./static/js/app.b3cbc800531f0cbbfdaf.js></script></body></html>
\ No newline at end of file
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