zhc4dev
parent
34d830c335
commit
89eb3e4aac
4 changed files with 574 additions and 7 deletions
@ -0,0 +1,156 @@ |
||||
<template> |
||||
<div style="background: #F6F6F6;"> |
||||
<div class="bg"> |
||||
<Header></Header> |
||||
<h1 class="c_fff">发票详情</h1> |
||||
</div> |
||||
<div class="billDetail"> |
||||
<div class="table" cellspacing="0" cellpadding="0"> |
||||
<tr> |
||||
<td class="title">订单编号</td> |
||||
<td class="cont">257677098401</td> |
||||
<td class="title">发票状态</td> |
||||
<td class="cont">已开票</td> |
||||
</tr> |
||||
<tr> |
||||
<td class="title">下单时间</td> |
||||
<td class="cont">2022-12-06 18:19:44</td> |
||||
<td class="title">发票内容</td> |
||||
<td class="cont">商品明细</td> |
||||
</tr> |
||||
<tr> |
||||
<td class="title">发票类型</td> |
||||
<td class="cont">电子普通发票</td> |
||||
<td class="title">发票抬头</td> |
||||
<td class="cont">个人</td> |
||||
</tr> |
||||
</div> |
||||
<div class="table table1" cellspacing="0" cellpadding="0"> |
||||
<tr class="title"> |
||||
<th>发票代码</th> |
||||
<th>发票号码</th> |
||||
<th>微信扫码获取电子普通发票</th> |
||||
<th>下载电子增值税普通发票</th> |
||||
</tr> |
||||
<tr> |
||||
<td>041002200111</td> |
||||
<td>40821456</td> |
||||
<td class="erweima"> |
||||
<img src="../assets/erweima.png" /> |
||||
</td> |
||||
<td><span class="download" @click="downLoad"><i class="el-icon-download"></i>查看发票</span></td> |
||||
</tr> |
||||
</div> |
||||
<div class="btnList d-flex"> |
||||
<div class="btn" @click="handleBack">返回</div> |
||||
<div class="btn">发送邮箱</div> |
||||
<div class="btn">申请换开</div> |
||||
</div> |
||||
</div> |
||||
<Footer></Footer> |
||||
</div> |
||||
</template> |
||||
<script> |
||||
import Header from "./Header/HeaderView"; |
||||
import Footer from "./Footer/FooterView" |
||||
export default { |
||||
name: "billDetail", |
||||
components: { Header,Footer }, |
||||
data() { |
||||
return { |
||||
}; |
||||
}, |
||||
methods: { |
||||
downLoad(){ |
||||
|
||||
}, |
||||
handleBack(){ |
||||
this.$router.go(-1) |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
@import '../assets/common.css'; |
||||
.bg{ |
||||
background-image: url("../assets/bg06.png"); |
||||
height: 352px; |
||||
line-height: 400px; |
||||
text-align: center; |
||||
h1{ |
||||
font-size: 40px; |
||||
} |
||||
} |
||||
.table tr th, .table tr td { border:1px solid #F2F2F2;padding: 10px;} |
||||
.table { border-collapse: collapse;} |
||||
.billDetail{ |
||||
width: 1120px; |
||||
height: 500px; |
||||
margin: 30px auto; |
||||
background: #FFFFFF; |
||||
padding: 100px 150px; |
||||
.table{ |
||||
width: 820px; |
||||
tr{ |
||||
width: 820px; |
||||
th{ |
||||
font-size: 12px; |
||||
} |
||||
td{ |
||||
i{ |
||||
margin-right: 2px; |
||||
} |
||||
} |
||||
} |
||||
.title{ |
||||
width: 150px; |
||||
text-align: center; |
||||
} |
||||
.cont{ |
||||
width: 260px; |
||||
} |
||||
margin-bottom: 40px; |
||||
} |
||||
.table1{ |
||||
.title{ |
||||
background: #EEE6D9; |
||||
} |
||||
td{ |
||||
width: 205px; |
||||
text-align: center; |
||||
} |
||||
.erweima{ |
||||
img{ |
||||
width: 70px; |
||||
height: 70px; |
||||
} |
||||
} |
||||
.download{ |
||||
cursor: pointer; |
||||
} |
||||
} |
||||
.btnList{ |
||||
justify-content: center; |
||||
.btn{ |
||||
margin-right: 33px; |
||||
width: 150px; |
||||
height: 42px; |
||||
border-radius: 3px 3px 3px 3px; |
||||
opacity: 1; |
||||
border: 1px solid #E4393C; |
||||
text-align: center; |
||||
font-size: 14px; |
||||
color: #E4393C; |
||||
line-height: 42px; |
||||
transition: all 0.2s; |
||||
cursor: pointer; |
||||
&:hover{ |
||||
background-color: #E4393C; |
||||
color: #fff; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
</style> |
||||
|
@ -0,0 +1,394 @@ |
||||
<template> |
||||
<div class="billTitle"> |
||||
<div class="weizhuce d-flex" v-if="billTitle.length == 0"> |
||||
<p class="c_1B f_30"> 您还没有抬头。</p> |
||||
</div> |
||||
<div class="d-flex btnDiv"> |
||||
<div type="primary" class="dialogButton primary f_12" @click="addAddr">创建新抬头</div> |
||||
</div> |
||||
<div class="addrList" v-if="billTitle.length != 0"> |
||||
<div class="item" v-for="(item,index) in billTitle" :key="index"> |
||||
<p class="default" v-if="item.flag"><span class="f_12">默认抬头</span></p> |
||||
<div class="d-flex"> |
||||
<div><span v-if="item.type == 1">专用发票抬头</span><span v-if="item.type == 2">普通发票抬头</span></div> |
||||
<div class="btnDiv"> |
||||
<span class="btn" @click="handleEdit(item)">编辑</span> |
||||
<a-popconfirm |
||||
title="确定删除吗?" |
||||
ok-text="Yes" |
||||
cancel-text="No" |
||||
@confirm="confirm1(item.id)" |
||||
@cancel="cancel" |
||||
><span class="btn">删除</span></a-popconfirm> |
||||
<a-popconfirm |
||||
title="确定将其设置为默认抬头吗?" |
||||
ok-text="Yes" |
||||
cancel-text="No" |
||||
@confirm="confirm2(item.id)" |
||||
@cancel="cancel" |
||||
v-if="!item.flag" |
||||
><span class="btn">将其设置为默认抬头</span></a-popconfirm> |
||||
<!-- <span class="btn" v-if="!item.flag" @click="handleDefault(item.id)">将其设置为默认抬头</span>--> |
||||
</div> |
||||
</div> |
||||
<p> |
||||
{{item.name}} |
||||
</p> |
||||
<p>{{item.dutyNum}}</p> |
||||
</div> |
||||
</div> |
||||
<a-modal |
||||
title="发票抬头操作" |
||||
:visible="visible" |
||||
:width="800" |
||||
> |
||||
<template slot="footer"> |
||||
<a-button key="back" @click="handleCancel"> |
||||
取消 |
||||
</a-button> |
||||
<a-button key="submit" type="primary" @click="handleOk"> |
||||
确定 |
||||
</a-button> |
||||
</template> |
||||
|
||||
<template> |
||||
<a-form-model |
||||
ref="ruleForm" |
||||
:model="form" |
||||
:rules="rules" |
||||
:label-col="labelCol" :wrapper-col="wrapperCol" |
||||
class="modelForm" |
||||
> |
||||
<a-form-model-item label="发票类型" > |
||||
<a-select v-model="form.type" placeholder="请选择发票类型"> |
||||
<a-select-option value="1"> |
||||
专用发票 |
||||
</a-select-option> |
||||
<a-select-option value="2"> |
||||
普通发票 |
||||
</a-select-option> |
||||
</a-select> |
||||
</a-form-model-item> |
||||
<a-form-model-item |
||||
label="发票抬头" |
||||
prop="name" |
||||
> |
||||
<a-input placeholder="请输入发票抬头" v-model="form.name" /> |
||||
</a-form-model-item> |
||||
<a-form-model-item |
||||
label="税号" |
||||
prop="dutyNum" |
||||
> |
||||
<a-input placeholder="请输入税号" v-model="form.dutyNum" /> |
||||
</a-form-model-item> |
||||
<a-form-model-item |
||||
label="公司注册电话" |
||||
prop="phone" |
||||
> |
||||
<a-input placeholder="请输入公司注册电话" v-model="form.phone"> |
||||
<template slot="addonBefore"> |
||||
<span>+86 中国大陆地区</span> |
||||
</template> |
||||
</a-input> |
||||
</a-form-model-item> |
||||
<a-form-model-item |
||||
label="银行账户" |
||||
prop="card" |
||||
> |
||||
<a-input placeholder="请输入银行账户" v-model="form.card"> |
||||
</a-input> |
||||
</a-form-model-item> |
||||
<a-form-model-item label="公司注册地址" prop="detailed"> |
||||
<a-input v-model="form.detailed" type="textarea" /> |
||||
</a-form-model-item> |
||||
<a-form-model-item> |
||||
<a-checkbox @change="onChange" :checked="form.flag"> |
||||
设置为默认抬头 |
||||
</a-checkbox> |
||||
</a-form-model-item> |
||||
</a-form-model> |
||||
</template> |
||||
</a-modal> |
||||
</div> |
||||
</template> |
||||
<script> |
||||
export default { |
||||
name: "billTitle", |
||||
components: { }, |
||||
data() { |
||||
return { |
||||
visible: false, |
||||
flag:'',//当前操作是添加还是编辑,若为add是添加,为edit是编辑 |
||||
copyItem:{},//备份当行数据 |
||||
labelCol: { span: 5 }, |
||||
wrapperCol: { span: 19 }, |
||||
billTitle:[ |
||||
{ |
||||
id:1, |
||||
type:'1',//发票类型1为专用2为普通 |
||||
name:'易创网络科技有限公司', |
||||
flag:true,//是否默认抬头 |
||||
dutyNum:'6974980492840298590',//税号 |
||||
phone:'17888889999',//公司注册电话 |
||||
account:'6212261717000030000',//公司账户 |
||||
addr:'河南省驻马店市驿城区黄淮学院北区' |
||||
}, |
||||
{ |
||||
id:2, |
||||
type:'1',//发票类型1为专用2为普通 |
||||
name:'易创网络科技有限公司', |
||||
flag:false,//是否默认抬头 |
||||
dutyNum:'6974980492840298590',//税号 |
||||
phone:'17888889999',//公司注册电话 |
||||
account:'6212261717000030000',//公司账户 |
||||
addr:'河南省驻马店市驿城区黄淮学院北区' |
||||
}, |
||||
{ |
||||
id:3, |
||||
type:'1',//发票类型1为专用2为普通 |
||||
name:'易创网络科技有限公司', |
||||
flag:false,//是否默认抬头 |
||||
dutyNum:'6974980492840298590',//税号 |
||||
phone:'17888889999',//公司注册电话 |
||||
account:'6212261717000030000',//公司账户 |
||||
addr:'河南省驻马店市驿城区黄淮学院北区' |
||||
} |
||||
],//发票抬头列表 |
||||
addrList:[ |
||||
{ |
||||
id:1, |
||||
name:'吴一', |
||||
sex:'1', |
||||
phone:'17777777777', |
||||
addr:'210521', |
||||
detailed:'黄淮学院北区', |
||||
flag:true,//是否是默认地址 |
||||
},//地址一 |
||||
{ |
||||
id:2, |
||||
name:'吴二', |
||||
sex:'2', |
||||
phone:'17777777777', |
||||
addr:'210521', |
||||
detailed:'黄淮学院北区', |
||||
flag:false,//是否是默认地址 |
||||
},//地址二 |
||||
{ |
||||
id:3, |
||||
name:'吴三', |
||||
sex:'1', |
||||
phone:'17777777777', |
||||
addr:'210521', |
||||
detailed:'黄淮学院北区', |
||||
flag:false,//是否是默认地址 |
||||
},//地址三 |
||||
],//地址列表 |
||||
addr1:'210521', |
||||
//弹窗数据 |
||||
form: { |
||||
id:'', |
||||
type: undefined, |
||||
name: '', |
||||
addr: '', |
||||
dutyNum: '', |
||||
account: '', |
||||
phone: '', |
||||
flag:false//是否默认地址 |
||||
}, |
||||
rules: { |
||||
name: [{ required: true, message: '请输入发票抬头', trigger: 'blur' },], |
||||
dutyNum: [{ required: true, message: '请输入税号', trigger: 'blur' },], |
||||
visit: [ |
||||
{ required: true, message: '请选择您的配送方式', trigger: 'change' }, |
||||
], |
||||
addr: [{ required: true, message: '请选择地址', trigger: 'blur' }], |
||||
detailed: [{ required: true, message: '请输入公司注册地址', trigger: 'blur' }], |
||||
phone: [{ required: true, message: '请输入手机号码', trigger: 'blur' },], |
||||
card: [{ required: true, message: '请输入银行账户', trigger: 'blur' },], |
||||
}, |
||||
}; |
||||
}, |
||||
methods: { |
||||
addAddr(){ |
||||
this.visible = true |
||||
this.flag = 'add' |
||||
}, |
||||
changeDefault(){ |
||||
this.billTitle.forEach(obj =>{ |
||||
if(obj.flag){ |
||||
obj.flag = !obj.flag |
||||
} |
||||
}) |
||||
}, |
||||
clearForm(){ |
||||
this.form = { |
||||
id:'', |
||||
type: undefined, |
||||
name: '', |
||||
addr: '', |
||||
dutyNum: '', |
||||
account: '', |
||||
phone: '', |
||||
flag:false//是否默认抬头 |
||||
} |
||||
}, |
||||
handleOk(e) { |
||||
//判断是添加抬头还是修改抬头 |
||||
let that = this |
||||
this.$refs.ruleForm.validate(valid => { |
||||
if (valid) {//验证通过 |
||||
if(this.flag == 'add') {//如果是新增抬头 |
||||
if(this.form.flag){//修改为默认抬头 |
||||
this.changeDefault() |
||||
this.billTitle.unshift(this.form) |
||||
}else{//不修改为默认抬头 |
||||
this.billTitle.push(this.form) |
||||
} |
||||
}else if(this.flag == 'edit'){//如果是修改抬头 |
||||
//查找当前索引 |
||||
let itemIndex3 = this.billTitle.findIndex(item =>item.id == this.form.id) |
||||
if(this.form.flag){//如果需要修改为默认抬头 |
||||
this.changeDefault() |
||||
this.form.flag = true |
||||
this.billTitle[itemIndex3] = this.form |
||||
console.log("this.billTitle") |
||||
console.log(this.billTitle) |
||||
}else{ |
||||
this.billTitle[itemIndex3] = this.form |
||||
} |
||||
} |
||||
//清空表单 |
||||
this.clearForm() |
||||
this.flag = '' |
||||
this.visible = false; |
||||
} else {} |
||||
}); |
||||
}, |
||||
handleCancel() { |
||||
this.visible = false; |
||||
if(this.flag == 'edit'){ |
||||
let itemIndex4 = this.billTitle.findIndex(item =>item.id == this.form.id) |
||||
this.billTitle[itemIndex4] = this.copyItem |
||||
} |
||||
this.flag = '' |
||||
this.$refs['ruleForm'].resetFields() |
||||
}, |
||||
onChange(e) { |
||||
this.form.flag = e.target.checked |
||||
}, |
||||
handleEdit(item){ |
||||
this.copyItem = JSON.parse(JSON.stringify(item)); |
||||
this.visible = true |
||||
this.flag = 'edit' |
||||
this.form = item |
||||
}, |
||||
confirm1(id) { |
||||
let itemIndex = this.billTitle.findIndex(item =>item.id == id) |
||||
this.billTitle.splice(itemIndex,1) |
||||
}, |
||||
confirm2(id) { |
||||
this.changeDefault() |
||||
let itemIndex2 = this.billTitle.findIndex(item =>item.id == id) |
||||
this.billTitle[itemIndex2].flag = true |
||||
}, |
||||
cancel(e) { |
||||
this.$message.warning('已取消'); |
||||
}, |
||||
}, |
||||
}; |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
@import '../assets/common.css'; |
||||
.modelForm{ |
||||
padding:20px 100px; |
||||
} |
||||
.addrList .j-area-linkage /deep/ .area-select{ |
||||
background-color: #fff; |
||||
border: none; |
||||
span{ |
||||
padding-left: 0; |
||||
font-size: 12px; |
||||
color:#313131; |
||||
cursor:auto; |
||||
font-weight: 500; |
||||
} |
||||
i{ |
||||
display: none; |
||||
} |
||||
} |
||||
.btnDiv{ |
||||
justify-content: center; |
||||
.dialogButton { |
||||
width: 300px; |
||||
height: 42px; |
||||
text-align: center; |
||||
line-height: 42px; |
||||
transition: all 0.2s; |
||||
} |
||||
.primary { |
||||
background: #1b1b1b; |
||||
border: 2px solid #1b1b1b; |
||||
color: #e5dfd9; |
||||
&:hover { |
||||
opacity: 0.8; |
||||
} |
||||
} |
||||
} |
||||
.billTitle{ |
||||
width: 1114px; |
||||
margin:0 auto; |
||||
padding-top: 50px; |
||||
.weizhuce{ |
||||
text-align: center; |
||||
flex-direction: column; |
||||
justify-content: center; |
||||
align-items: center; |
||||
p{ |
||||
width: 300px; |
||||
} |
||||
} |
||||
.addrList{ |
||||
width: 800px; |
||||
margin: 0 auto; |
||||
.item{ |
||||
padding-top: 40px; |
||||
border-bottom: 1px solid #DADADA; |
||||
color: #1A1919; |
||||
p{ |
||||
font-size: 12px; |
||||
} |
||||
.default{ |
||||
span{ |
||||
display: inline-block; |
||||
padding: 4px 12px; |
||||
box-sizing: content-box; |
||||
background: #F8F8F8; |
||||
width: 72px; |
||||
height: 21px; |
||||
text-align: center; |
||||
line-height: 21px; |
||||
} |
||||
|
||||
} |
||||
.d-flex{ |
||||
justify-content: space-between; |
||||
font-size: 14px; |
||||
.btnDiv{ |
||||
.btn{ |
||||
cursor: pointer; |
||||
} |
||||
} |
||||
.btn{ |
||||
text-decoration: underline; |
||||
margin-right: 20px; |
||||
} |
||||
div:first-child{ |
||||
margin-bottom: 12px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
</style> |
||||
|
Loading…
Reference in new issue