video_app/me/helpDetail/bluetools.vue

1854 lines
52 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="titletop flex-start" @click="addfourshow = !addfourshow">
<text class="titletoptext">数电票类型</text>
<view class="flex-center titletopone" style="margin-left: 16rpx">
<view>
{{ form.typename ? form.typename : '请选择' }}
</view>
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/electric/type1.png" mode=""></image>
<!-- <u-icon name="arrow-rightward" color="#F39D52" size="14"></u-icon> -->
</view>
</view>
<view class="titletop flex-start">
<text class="titletoptext">购买方信息</text>
<view class="flex-center">
<u-checkbox-group class="titletopcheckbox">
<u-checkbox v-model="form.user_type"></u-checkbox>
</u-checkbox-group>
<text style="font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 28rpx; color: #666666">开票给自然人</text>
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left" style="position: relative">
<input type="text" placeholder="请输入购方名称" v-model="form.user_name" @input="onInput" />
<view class="position" v-if="subCategoryList.length != 0">
<view class="positionitem" v-for="(item, index) in subCategoryList" :key="index" @click="categorySubClick(item)">
{{ item.companyName }}
</view>
</view>
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.user_duty" placeholder="请输入统一社会信用代码/纳税人识别号" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.c_address" placeholder="请输入购买方地址" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="number" v-model="form.c_phone" placeholder="请输电话" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.c_bank_name" placeholder="请输入购方开户行" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="number" v-model="form.c_bank_account" placeholder="请输入银行账号" />
</view>
</view>
<view class="titletop flex-start">
<text class="titletoptext">销售方信息</text>
<view class="flex-center" style="margin-left: 16rpx">
<u-icon name="reload" color="#7db5fe" size="14"></u-icon>
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.title" disabled style="background: #f6f6f6; height: 100%" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.nsrsbh" disabled style="background: #f6f6f6; height: 100%" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.xfdz" placeholder="请输入销售方地址" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="number" v-model="form.xflxdh" placeholder="请输电话" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.xfkhh" placeholder="请输入销售开户行" />
</view>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="number" v-model="form.xfyhzh" placeholder="请入销售银行账号" />
</view>
</view>
<view class="titletop flex-start">
<text class="titletoptext">收票方式</text>
<!-- <view class="flex-center" style="margin-left: 16rpx;">
<u-icon name="question-circle" color="#585858" size="14" @click="clickicon">
</u-icon>
</view> -->
</view>
<!-- <view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.mobile" placeholder="请输入手机号" />
</view>
</view> -->
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.email" placeholder="请输入邮箱地址" />
</view>
</view>
<view class="titletop flex-start">
<text class="titletoptext">开票商品({{ `${form.is_tax ? '含税' : '不含税'}` }})</text>
<view class="flex-start" style="margin-right: 10rpx">
<text style="font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 28rpx; color: #333333; margin-right: 16rpx"></text>
<u-switch v-model="form.is_tax" @change="changetexatx" size="18"></u-switch>
</view>
</view>
<view class="includingtax">
<view class="includingtaxbetween flex-between">
<text>商品</text>
<text>单价</text>
<text>数量</text>
<text>金额</text>
<text>税率</text>
</view>
<view class="includingtaxitem flex-between" v-for="(item, index) in form.mxListes" :key="index" @click.stop="clickmxList(item, index)">
<text :style="item.fphxz == 1 ? 'color: red;' : ''">{{ item.spmc }}</text>
<text>{{ item.dj }}</text>
<text>{{ item.spsl }}</text>
<text :style="item.fphxz == 1 ? 'color: red;' : ''">{{ item.fphxz == 1 ? '-' : '' }}{{ item.je }}</text>
<text :style="item.fphxz == 1 ? 'color: red;' : ''">{{ item.sl }}%</text>
<text v-if="item.fphxz != 2" @click.stop="clickdelete(item, index)" class="absolutetext">删除</text>
</view>
<view class="includingtaxbox flex-between">
<view class="flex-start">
<text style="color: #d6444c">金额:</text>
<text>¥{{ amountes.toFixed(2) }}</text>
</view>
<view>
<text style="color: #d6444c">税额:</text>
<text>¥{{ taxamountes.toFixed(2) }}</text>
</view>
</view>
<view class="includingtaxadd" @click="invoicegoodslist()">+新增商品</view>
</view>
<view class="titletop flex-start">
<text class="titletoptext">备注信息</text>
</view>
<view class="listinput flex-between">
<view class="listinput_left">
<input type="text" v-model="form.notes" placeholder="请输入备注" />
</view>
</view>
<view class="people flex-center">
<view class="peopleitem">
<view class="flex-colum">
<text>收款人</text>
<input type="text" v-model="form.skr" placeholder="请输入" />
</view>
</view>
<view class="peopleitem">
<view class="flex-colum">
<text>复核人</text>
<input type="text" v-model="form.fhr" placeholder="请输入" />
</view>
</view>
<view class="peopleitem">
<view class="flex-colum">
<text>开票人</text>
<input type="text" v-model="form.dlzhname" disabled style="background: #f6f6f6" placeholder="请输入" />
</view>
</view>
</view>
<view class="Issued" @click="clickIssued">开具</view>
<u-popup :show="addshow" @close="addshow = false" mode="center" :round="16">
<view class="popupaddclass">
<view class="addshowtop">
<text @click="addviewshow = !addviewshow" :class="addviewshow ? 'select' : ''">选择商品</text>
<text @click="addviewshow = !addviewshow" :class="addviewshow ? '' : 'select'">新增商品</text>
</view>
<view class="addshowbox" v-if="addviewshow">
<view class="addshowinput flex-start">
<u-icon name="search" color="#666666" size="20"></u-icon>
<input type="text" placeholder="请输入商品名称" v-model="invoicegoodslikeanme" @input="$u.throttle(invoicegoodslist, 500)" />
</view>
<view class="boxaddshowitem">
<u-checkbox-group v-model="checkboxtianjia" placement="column">
<view class="addshowitem flex-start" v-for="(item, index) in invoicegoodslistdata" :key="index">
<u-checkbox :key="index" :name="index"></u-checkbox>
<view class="addshowitembox flex-colum-start">
<text class="addshowitemboxtext">*{{ item.abbreviation }}*{{ item.title }}</text>
<view class="flex-start">
<text>商品税率:{{ item.tax_rate }}</text>
<text>商品单价:{{ item.unit_price }}</text>
</view>
</view>
</view>
</u-checkbox-group>
</view>
<view class="tianjia" @click="changetianjia">添加</view>
</view>
<view class="addshowbox" v-else>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*商品编码</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请选择" v-model="addform.spbm" disabled style="background: #f6f6f6" />
<view class="absolute" @click="clickspbm">选择商品名称</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">编码简称</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请选择" v-model="addform.abbreviation" disabled style="background: #f6f6f6" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*商品名称</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.title" />
<view class="absolute" @click="titlecoding">赋码</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">规格型号</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.spec" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">计量单位</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.unit" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">单价(元)</text>
<view class="addshowboxinput_inp flex-between">
<input style="width: auto" type="text" placeholder="请输入" v-model="addform.unit_price" />
<!-- <view class="flex-start" style="margin-right: 10rpx;">
<text
style="font-family: Source Han Sans CN, Source Han Sans CN;font-weight: 400;font-size: 28rpx;color: #333333;margin-right: 16rpx;">含税</text>
<u-switch v-model="addform.priceswitch" size="18"></u-switch>
</view> -->
</view>
</view>
<view class="addshowboxinput flex-colum-start" @click="selectshowlslbs = !selectshowlslbs">
<text class="addshowboxinputtext">免税类型</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{ addform.lslbsname }}</text>
<u-icon style="padding-right: 16rpx" :name="selectshowlslbs ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<view class="listinput_leftabsolute" v-if="selectshowlslbs">
<view
v-for="(item, index) in lslbslist.lslbs"
:key="index"
:class="addform.lslbs == item.id ? 'class' : ''"
@click="taxexempttype(item, index)"
>
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start" @click="taxrateselectionshow = !taxrateselectionshow">
<text class="addshowboxinputtext">*税率</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{ addform.tax_ratename }}</text>
<u-icon style="padding-right: 16rpx" :name="taxrateselectionshow ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<view class="listinput_leftabsolute" v-if="taxrateselectionshow">
<view
v-for="(item, index) in lslbslist.taxrateselection"
:key="index"
:class="addform.tax_rate == item.id ? 'class' : ''"
@click="taxrateselectiontype(item, index)"
>
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start" @click="zzstsglshow = !zzstsglshow">
<text class="addshowboxinputtext">优惠政策类型</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{ addform.zzstsgl }}</text>
<u-icon style="padding-right: 16rpx" :name="zzstsglshow ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<view class="listinput_leftabsolute" v-if="zzstsglshow">
<view
v-for="(item, index) in lslbslist.zzstsgl"
:key="index"
:class="addform.zzstsgl == item.id ? 'class' : ''"
@click="zzstsgltype(item, index)"
>
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="flex-start" style="margin-top: 48rpx">
<u-checkbox-group>
<u-checkbox @change="addform.addcheckbox = !addform.addcheckbox" v-model="addform.addcheckbox"></u-checkbox>
</u-checkbox-group>
<text style="font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 28rpx; color: #666666">保存至我的“开票商品”</text>
</view>
<view
style="
margin: 32rpx 0 32rpx auto;
width: 112rpx;
height: 56rpx;
background: #318afe;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #ffffff;
line-height: 56rpx;
text-align: center;
"
@click="addinvoicegoods"
>
添加
</view>
</view>
</view>
</u-popup>
<u-popup :show="addtowshow" @close="addtowshow = false" mode="bottom" :round="16">
<view class="addtowshowclass">
<view class="addtowshowclasstop">
<!-- <text class="addtowshowclassabsolute">x</text> -->
商品编码(税局)选择
<u-icon
class="addtowshowclassabsolutelet"
v-if="this.selectencodinglists.length > 1"
@click="selectencodingicon"
name="arrow-left"
color="#999999"
size="20"
></u-icon>
<u-icon @click="addtowshow = false" class="addtowshowclassabsolute" name="close" color="#999999" size="20"></u-icon>
</view>
<view v-if="selectencodingitem.tax_rate">
<view class="addtowshowpositionitem flex-between">
<view>商品编码</view>
<view style="color: #999999">
{{ selectencodingitem.pid }}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>编码名称</view>
<view style="color: #999999">
{{ selectencodingitem.catalog_name }}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>编码简称</view>
<view style="color: #999999">
{{ selectencodingitem.catalog_name_short }}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>商品税率</view>
<view style="color: #999999">
{{ selectencodingitem.tax_rate }}
</view>
</view>
<view class="selecconfirm" @click="selecconfirm">确认选择</view>
</view>
<view v-else class="addtowshowpositionitem flex-between" v-for="(item, index) in selectencodinglist" :key="index" @click="selectencoding(item, index)">
<view>
{{ item.catalog_name }}
</view>
<view class="flex-start">
{{ item.tax_rate ? item.tax_rate : '' }}
<u-icon name="arrow-right" color="#999999" size="18"></u-icon>
</view>
</view>
</view>
</u-popup>
<u-popup :show="addthereshow" @close="addthereshow = false" mode="center" :round="16">
<view class="addthereshowclass">
<view class="addthereshowclasstop flex-between">
<text>开票商品信息修改</text>
<u-icon name="close" color="#999999" size="20" @click="addthereshow = false"></u-icon>
</view>
<view class="addthereshowclassbox">
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品简称</view>
<view class="addthereshowclassboxitemtow">
<input type="text" style="background: rgb(246, 246, 246)" placeholder="请输入商品简称" v-model="mxListform.abbreviation" disabled />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品名称</view>
<view class="addthereshowclassboxitemtow">
<input type="text" placeholder="请输入商品名称" v-model="mxListform.spmc" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">含税单价</view>
<view class="addthereshowclassboxitemtow">
<input type="text" placeholder="请输入含税单价" v-model="mxListform.dj" @input="clickmxListformdj" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品数量</view>
<view class="addthereshowclassboxitemtow">
<input type="number" placeholder="请输入商品数量" v-model="mxListform.spsl" @input="handleInputChange" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品规格</view>
<view class="addthereshowclassboxitemtow">
<input type="text" placeholder="请输入商品规格" v-model="mxListform.ggxh" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">计量单位</view>
<view class="addthereshowclassboxitemtow">
<input type="text" placeholder="请输入计量单位" v-model="mxListform.dw" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品税率</view>
<view class="addthereshowclassboxitemtow" @click="mxListformslshow = !mxListformslshow">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{ mxListform.slname }}</text>
<u-icon style="padding-right: 16rpx" :name="mxListformslshow ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<view class="listinput_leftabsolute" v-if="mxListformslshow">
<view
v-for="(item, index) in lslbslist.taxrateselection"
:key="index"
:class="mxListform.sl == item.id ? 'class' : ''"
@click="mxListformslshowtype(item, index)"
>
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">商品折扣</view>
<view class="addthereshowclassboxitemtow flex-start">
<input type="number" placeholder="请输入商品折扣" v-model.number="mxListform.fphxzshow" />
%
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">含税金额</view>
<view class="addthereshowclassboxitemtow">
<input type="text" placeholder="请输入含税金额" v-model="mxListform.je" @input="inputmxListformje" />
</view>
</view>
<view class="addthereshowclassboxitem flex-between">
<view class="addthereshowclassboxitemone">合计税额</view>
<view class="addthereshowclassboxitemtow">
<input style="background: rgb(246, 246, 246)" type="text" placeholder="请输入合计税额" v-model="mxListform.se" disabled />
</view>
</view>
<view class="addtheredetermine" @click="addthereshowclick">确定</view>
</view>
</view>
</u-popup>
<u-popup :show="addfourshow" @close="addfourshow = false" mode="right" :round="16">
<view class="addfourclass">
<view class="addfourclassclasstop flex-between">
<text>开票类型选择</text>
<u-icon name="close" color="#999999" size="20" @click="addfourshow = false"></u-icon>
</view>
<view class="addfourclassclassbox">
<view class="addfourclassclassboxitem">*发票类型</view>
<view class="addfourclassclassboxitemone flex-start" @click="addfourshowupicker = !addfourshowupicker">
<view style="padding: 0 16rpx">{{ form.typename }}</view>
<u-icon class="icon" name="arrow-right" color="#999999" size="18"></u-icon>
</view>
<view class="addfourclassclassboxitemtow flex-start">
<u-switch v-model="defaultvalue" size="20"></u-switch>
<text style="margin-left: 10rpx">设置为默认发票类型</text>
</view>
</view>
</view>
</u-popup>
<u-picker :show="addfourshowupicker" :columns="columns" keyName="label" @confirm="addfourupickerconfirm" @cancel="addfourshowupicker = false"></u-picker>
<button style="visibility: hidden" @click="cwWQLgyqWKIcOoLRGnJD"></button>
<button style="visibility: hidden" @click="dLrVqgyqfuxJxVkLuANy"></button>
<button style="visibility: hidden" @click="fgudsDlTgyqWZCSNCrFe"></button>
</view>
</template>
<script>
export default {
data() {
return {
defaultvalue: false,
checkboxtianjia: [],
addviewshow: true, //切换选择和增加商品
addtowshow: false, //行业搜索显示
addthereshow: false,
addfourshow: false,
addfourshowupicker: false,
addshow: false, //新增点击切换
selectshowlslbs: false, //免税类型
taxrateselectionshow: false, //税率
zzstsglshow: false,
taxamountes: 0, //税额
amountes: 0, //金额
keyword: '', //搜索查询
subCategoryList: [], //模糊快速搜索
form: {
zsgfyh: '', //1展示购方银行信息 0不展示
zsxfyh: '', //1展示销方银行信息 0不展示
title: '', //销方名称
nsrsbh: '', //销方税号
xfdz: '', //销方地址
xfkhh: '', //销方开户行名称
xflxdh: '', //销方联系方式
xfyhzh: '', //销方银行账号
user_name: '', //购方抬头
user_duty: '', //购方税号
c_address: '', //购方地址
c_phone: '', //购方联系电话
c_bank_name: '', //购买方开户行
c_bank_account: '', //购买方开户行账号
dlzh: '', //开票人账户
dlzhname: '', //开票人账户
user_type: false, //1 个人 2企业
email: '', //邮箱
mobile: '', //电话
is_tax: true, //1 含税 2 不含税
notes: '', //备注
type: '', //票类型
typename: '',
mxListes: [], //购方抬头
mxListes: [],
skr: '', //收款人
fhr: '', //复核人
lslbs: '', //税率标识
zzstsgl: '' //增值税特殊管理标识
},
addform: {
title: '', //名称
abbreviation: '', //简称
spbm: '', //编码
spec: '', //规格
unit: '', //计量单位
unit_price: '', //单价
priceswitch: true,
tax_rate: '', //税率
lslbs: '', //税率标识
zzstsgl: '', //增值税特殊管理标识
lslbsname: '',
tax_ratename: '',
zzstsglname: '',
addcheckbox: false, //是否保存到我的开票商品
fphxz: ''
},
selectlist: [
{
value: '1',
label: '江'
},
{
value: '2',
label: '湖'
}
],
columns: [
[
{
label: '数电普票',
id: 82
},
{
label: '数电专票',
id: 81
}
]
],
checkboxlist: [
{
name: '开票给自然人',
checked: false,
disabled: false
}
],
value: 'orange',
lslbslist: {},
selectencodinglist: [],
selectencodinglists: [], //总数据
selectencodingitem: {},
selected: false, //是否显示返回键
pid: '',
// 商品列表
invoicegoodslikeanme: '', //搜索
invoicegoodslistdata: [],
// 修改
mxListform: {
spsl: 0,
se: '',
sl: '',
spbm: '',
spmc: '',
dj: '',
dw: '',
ggxh: '',
lslbs: '',
je: ''
},
mxListformslshow: false
};
},
async onLoad() {
// 企业信息 销售方信息
let res = await this.api.hfivegetstoreinfo();
this.form.title = res.data.title;
this.form.nsrsbh = res.data.creditCode;
let { data } = await this.api.hfivelslbs();
this.lslbslist = data;
// 开票人列表
this.newissuedbylist();
// 初始化数电补票
let value = this.columns[0];
this.form.type = value[0].id;
this.form.typename = value[0].label;
},
methods: {
// 选项卡
clickspbm() {
console.log(1111);
this.addtowshow = !this.addtowshow;
this.selectencoding(
{
selected: true,
pid: ''
},
'index'
);
},
//返回键
selectencodingicon() {
this.selectencodingitem = {};
this.selectencodinglists.splice(this.selectencodinglists.length - 1, 1);
this.selectencodinglist = this.selectencodinglists[this.selectencodinglists.length - 1];
},
//行业列表 (选择编码)列表
async selectencoding(item, index) {
this.selectencodingitem = {};
if (index == 'index') {
this.selectencodinglists = [];
}
if (item.selected) {
let { data } = await this.api.selectencoding({
pid: item.pid
});
this.selectencodinglist = data;
this.selectencodinglists.push(this.selectencodinglist); //暂存一个空数组
console.log(this.selectencodinglists);
} else {
this.selected = false;
this.selectencodingitem = item;
}
},
//编码简称点击确定
selecconfirm() {
this.addtowshow = false;
this.addform.abbreviation = this.selectencodingitem.catalog_name_short;
this.addform.title = this.selectencodingitem.catalog_name;
this.addform.spbm = this.selectencodingitem.pid;
},
// 进行赋码
async titlecoding() {
this.selectencodingitem = {};
let { data } = await this.api.invoicecoding({
name: this.addform.title
});
if (data.length == 0) {
uni.showToast({
title: '赋码失败,请检查商品名称!',
icon: 'none'
});
return false;
} else {
this.addform.abbreviation = data[0].catalog_name_short;
this.addform.title = data[0].catalog_name;
this.addform.spbm = data[0].catalog_code;
}
},
// 行业点击
onInput(e) {
if ([...e.detail.value].length >= 4) {
console.log(100000);
uni.$u.debounce(this.handleClick(), 500);
}
},
async handleClick() {
let res = await this.api.hfiveenterprise({
like: this.form.user_name,
sign: uni.utils.md5(this.form.user_name + 'd2e862a1-02b5-4405-8c69-c74ca871bcfe')
});
if (res.code == 1) {
this.subCategoryList = res.data;
}
},
categorySubClick(category) {
setTimeout(() => {
this.$set(this.form, 'user_name', category.companyName);
this.$set(this.form, 'user_duty', category.creditCode);
this.subCategoryList = [];
}, 500);
},
// 开票人列表
async newissuedbylist() {
let res = await this.api.newissuedbylist();
res.data.forEach((i) => {
if (i.is_default == 1) {
this.form.dlzh = i.dlzh;
this.form.dlzhname = i.name;
}
});
if (this.form.dlzh == '') {
this.form.dlzh = res.data[0].dlzh;
this.form.dlzhname = res.data[0].name;
}
console.log(res);
},
//免税类型
taxexempttype(item, index) {
console.log(item);
this.addform.lslbsname = item.name;
this.addform.lslbs = item.id;
},
//税率
taxrateselectiontype(item, index) {
this.addform.tax_ratename = item.name;
this.addform.tax_rate = item.id;
},
//优惠政策类型
zzstsgltype(item, index) {
this.addform.zzstsglname = item.name;
this.addform.zzstsgl = item.id;
},
// 添加商品
async addinvoicegoods() {
this.addform.priceswitch = this.addform.priceswitch ? 1 : 0; //是否含税 0是不含税 1是含税
if (this.addform.title == null || this.addform.title == '') {
uni.showToast({
title: '请选择商品名称',
icon: 'none'
});
return false;
}
if (this.addform.spbm == null || this.addform.spbm == '') {
uni.showToast({
title: '请输入商品编码',
icon: 'none'
});
return false;
}
console.log(this.addform.tax_rate);
if (this.addform.tax_rate == null || this.addform.tax_rate === '') {
uni.showToast({
title: '请选择税率',
icon: 'none'
});
return false;
}
if (this.addform.addcheckbox) {
//addcheckbox 请求后是否保存
let res = await this.api.addinvoicegoods({
title: this.addform.title,
spbm: this.addform.spbm,
spec: this.addform.spec,
unit: this.addform.unit,
unit_price: this.addform.unit_price,
tax_rate: this.addform.tax_rate,
lslbs: this.addform.lslbs,
zzstsgl: this.addform.zzstsgl,
priceswitch: this.addform.priceswitch,
abbreviation: this.addform.abbreviation,
spsl: 1 //初始化数量
});
} else {
this.form.mxListes.push({
spbm: this.addform.spbm, //税收编号
spmc: this.addform.title,
sl: this.addform.tax_rate, //税率
dj: this.addform.unit_price, //单价
ggxh: this.addform.spec, //规格型号
dw: this.addform.unit, //计量单位
spsl: 1 //初始化数量
});
}
this.addshow = false;
},
changetianjia(n) {
// 添加商品
// 默认添加初始化数量
this.invoicegoodslistdata.forEach((i) => {
i.spsl = '';
i.je = '';
i.fphxzshow = 0;
i.fphxz = 0;
i.se = 0;
return i;
});
this.checkboxtianjia.map((item, index) => {
this.form.mxListes.push(this.invoicegoodslistdata[item]);
});
this.addshow = false;
},
// 修改开票商品
clickmxList(item, index) {
if (item.fphxz == 2 || item.fphxz == 1) {
return false;
}
this.mxListform = item;
this.lslbslist.taxrateselection.forEach((i) => {
if (item.sl == i.id) {
this.mxListform.slname = i.name;
this.mxListform.indexid = index;
}
});
this.addthereshow = true;
},
//商品列表
async invoicegoodslist() {
let { data } = await this.api.invoicegoodslist({
page: 1,
like: this.invoicegoodslikeanme
});
(this.addform = {
title: '', //名称
abbreviation: '', //简称
spbm: '', //编码
spec: '', //规格
unit: '', //计量单位
unit_price: '', //单价
priceswitch: true,
tax_rate: '', //税率
lslbs: '', //税率标识
zzstsgl: '', //增值税特殊管理标识
lslbsname: '',
tax_ratename: '',
zzstsglname: '',
addcheckbox: false //是否保存到我的开票商品
}),
(this.invoicegoodslistdata = data);
this.addshow = true;
this.addviewshow = true;
},
// 含税金额
inputmxListformje(value) {
// 判断输入框
let naben = value.detail.value
.replace(/[^\d.]/g, '')
.replace(/\.{2,}/g, '.')
.replace(/^(-)*(\d+)\.(\d{0,2}).*$/, '$1$2.$3'); // 只能输入两个小数
this.$nextTick(() => {
this.$set(this.mxListform, 'je', naben);
});
if (this.mxListform.dj || this.mxListform.spsl) {
if (this.mxListform.spsl) {
this.mxListform.dj = this.mxListform.je / this.mxListform.spsl;
}
if (this.mxListform.dj) {
this.mxListform.spsl = this.mxListform.je / this.mxListform.dj;
}
this.$u.debounce(this.zongshui, 500);
} else {
return false;
}
},
// 填写数量 填写单价 计算含税金额
handleInputChange(value) {
// 判断输入框
let naben = value.detail.value.replace(/\D+/, '');
this.$nextTick(() => {
this.$set(this.mxListform, 'spsl', naben);
});
if (this.mxListform.dj || this.mxListform.je) {
if (this.mxListform.dj) {
this.mxListform.je = this.mxListform.dj * this.mxListform.spsl;
}
if (this.mxListform.je) {
this.mxListform.dj = this.mxListform.je / this.mxListform.spsl;
}
if (this.mxListform.spsl == 0) {
this.mxListform.se = 0;
}
this.$u.debounce(this.zongshui, 500);
this.$forceUpdate();
} else {
return false;
}
},
// 填写单价
clickmxListformdj(value) {
// 判断输入框
let naben = value.detail.value
.replace(/[^\d.]/g, '')
.replace(/\.{2,}/g, '.')
.replace(/^(-)*(\d+)\.(\d{0,2}).*$/, '$1$2.$3'); // 只能输入两个小数
this.$nextTick(() => {
this.$set(this.mxListform, 'dj', naben);
});
if (this.mxListform.spsl || this.mxListform.je) {
if (this.mxListform.spsl) {
this.mxListform.je = this.mxListform.spsl * this.mxListform.dj;
}
if (this.mxListform.je) {
this.mxListform.spsl = this.mxListform.je / this.mxListform.dj;
}
this.$u.debounce(this.zongshui, 500);
this.$forceUpdate();
} else {
return false;
}
},
zongshui() {
// 判断是否有税率
if (this.mxListform.sl == null || this.mxListform.sl == '') {
return false;
}
this.mxListformslshowtype();
},
// 算税率
async mxListformslshowtype(item) {
if (this.mxListform.dj == '') {
uni.showToast({
title: '单价不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.spsl == '') {
uni.showToast({
title: '数量不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.je == '') {
uni.showToast({
title: '含税金额不能为空',
icon: 'none'
});
return false;
}
if (item) {
this.mxListform.slname = item.name;
this.mxListform.sl = item.id;
}
if (this.mxListform.je == 0 || this.mxListform.je == '') {
//商品税率金额为0时
this.mxListform.dj = 0;
this.mxListform.spsl = 0;
this.mxListform.je == 0;
return false;
}
if (this.mxListform.sl == 0) {
//商品税率金额为0时
this.$set(this.mxListform, 'se', 0);
return false;
}
let res = await this.api.storese({
amount: this.mxListform.je,
se_amount: this.mxListform.sl,
is_tax: this.form.is_tax ? 1 : 2
});
if (res) {
this.mxListform.se = res.data.tx;
this.$forceUpdate();
// this.mxListform.se = res.data.d_amount
}
},
// 计算封装计算税率
// 单价 = 金额 / (1 + (税率/100));
// 税额(含税) = 单价 * (税率/100);
// 税额(不含税) = 金额 * (税率/100);
etexatx(je, sl) {
//金额//税率
// 单价
let dj = je / (1 + sl / 100);
let data = null;
// 含税
if (this.form.is_tax) {
data = dj * (sl / 100);
} else {
data = je * (sl / 100);
}
return data;
},
changetexatx(e) {
this.form.mxListes.forEach(async (item, index) => {
let data = await this.etexatx(item.je, item.sl);
item.se = data.toFixed(2);
return item;
});
console.log(this.form.mxListes, '执行完了上面');
this.$nextTick(() => {
try {
// 计算总数
this.amountes = this.form.mxListes.reduce((accumulator, currentValue) => {
if (currentValue.je) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return accumulator + Number(currentValue.je);
} else {
return accumulator + Number(-currentValue.je);
}
}
return accumulator;
}, 0);
this.taxamountes = this.form.mxListes.reduce((accumulator, currentValue) => {
if (currentValue.se) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return Number(accumulator) + Number(currentValue.se);
} else {
return Number(accumulator) + Number(-currentValue.se);
}
}
return accumulator;
}, 0);
} catch (e) {
//TODO handle the exception
}
});
},
// 删除
clickdelete(item, index) {
if (this.form.mxListes.length == 1) {
this.form.mxListes = [];
this.amountes = 0;
this.taxamountes = 0;
return false;
}
this.form.mxListes[index - 1].fphxz = 0;
this.form.mxListes[index - 1].fphxzshow = 0;
this.form.mxListes.splice(index, 1);
try {
// 计算总数
this.amountes = this.form.mxListes.reduce((accumulator, currentValue) => {
if (currentValue.je) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return accumulator + Number(currentValue.je);
} else {
return accumulator + Number(-currentValue.je);
}
}
return accumulator;
}, 0);
this.taxamountes = this.form.mxListes.reduce((accumulator, currentValue) => {
if (currentValue.se) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return Number(accumulator) + Number(currentValue.se);
} else {
return Number(accumulator) + Number(-currentValue.se);
}
}
return accumulator;
}, 0);
} catch (e) {
//TODO handle the exception
}
},
async addthereshowclick() {
if (this.mxListform.dj == null || this.mxListform.dj == '') {
uni.showToast({
title: '单价不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.dj == null || this.mxListform.dj == '') {
uni.showToast({
title: '单价不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.spsl == null || this.mxListform.spsl == '') {
uni.showToast({
title: '数量不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.spmc == null || this.mxListform.spmc == '') {
uni.showToast({
title: '商品名称不能为空',
icon: 'none'
});
return false;
}
if (this.mxListform.fphxzshow != 0) {
// 计算单个税额
let { data } = await this.api.storese({
amount: this.mxListform.je * (this.mxListform.fphxzshow / 100),
se_amount: this.mxListform.sl,
is_tax: this.form.is_tax ? 1 : 2
});
// 添加修改后的跟随数据
let datapush = {
spmc: this.mxListform.spmc,
fphxz: 1,
je: this.mxListform.je * (this.mxListform.fphxzshow / 100),
sl: this.mxListform.sl,
se: data.tx,
spbm: this.mxListform.spbm,
spsl: '',
dj: '',
dw: '',
ggxh: '',
lslbs: '',
fphxzshow: this.mxListform.fphxzshow
};
this.form.mxListes.splice(this.mxListform.indexid + 1, 0, datapush);
this.mxListform.fphxz = 2;
this.mxListform.fphxzshow = '';
} else {
this.mxListform.fphxzshow = '';
this.mxListform.fphxz = 0;
}
try {
// 对数组中满足条件的元素进行求和
this.amountes = this.form.mxListes.reduce((accumulator, currentValue) => {
console.log(accumulator, currentValue);
if (currentValue.je) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return accumulator + Number(currentValue.je);
} else {
return accumulator + Number(-currentValue.je);
}
}
return accumulator;
}, 0);
this.taxamountes = this.form.mxListes.reduce((accumulator, currentValue) => {
if (currentValue.se) {
if (currentValue.fphxz == 2 || currentValue.fphxz == 0) {
return Number(accumulator) + Number(currentValue.se);
} else {
return Number(accumulator) + -Number(currentValue.se);
}
}
return accumulator;
}, 0);
} catch (e) {
//TODO handle the exception
}
this.addthereshow = false;
},
// 选项普票还是专票
addfourupickerconfirm(e) {
this.form.type = e.value[0].id;
this.form.typename = e.value[0].label;
this.addfourshowupicker = false;
},
async clickIssued() {
// console.log(this.form.mxListes)
if (this.form.type == null || this.form.type == '') {
uni.showToast({
title: '发票类型不能为空',
icon: 'none'
});
return false;
}
if (this.form.user_name == null || this.form.user_name == '') {
uni.showToast({
title: '购方抬头不能为空',
icon: 'none'
});
return false;
}
if (this.form.mxListes.length == 0) {
uni.showToast({
title: '开票商品不能为空',
icon: 'none'
});
return false;
}
// 执行下面的数据
const hasUndefined = this.form.mxListes.some((obj) => {
for (const key in obj) {
if (obj.fphxz != 1 && (obj.spsl === '' || obj.je === '')) {
return true; // 如果找到true否则false
}
}
return false;
});
if (hasUndefined) {
uni.showToast({
title: '请填写开票商品的单价,数量,金额等',
icon: 'none'
});
return false;
}
if (this.form.email == null || this.form.email == '') {
uni.showToast({
title: '邮箱地址不能为空',
icon: 'none'
});
return false;
}
this.form.is_tax = this.form.is_tax ? 1 : 2;
this.form.user_type = this.form.user_type ? 1 : 2; // 1 个人 2企业
this.form.mxList = JSON.stringify(this.form.mxListes);
let res = await this.api.directinvoicingopen(this.form);
if (res.code == 1) {
uni.showToast({
title: '提交成功!',
icon: 'none'
});
setTimeout(() => {
uni.navigateBack();
}, 700);
}
},
cwWQLgyqWKIcOoLRGnJD() {
let FpgyqNXDdpHHfzBwVyDf = 'ePHBoMhJrgyqpTOrOOzj';
FpgyqNXDdpHHfzBwVyDf += 'EKBHgyqRSQpwHPVSKUhb';
},
dLrVqgyqfuxJxVkLuANy() {
let jRcZDRplftrVWxtEgyqb = 'rbobMJogyqkDbuWJXdHm';
jRcZDRplftrVWxtEgyqb += 'FALsVzlgyqfTHlDIIvPU';
},
fgudsDlTgyqWZCSNCrFe() {
let gyqxgdTaFMTNuWFsYQRW = 'CgyqSmSuzWgAWyikgYgT';
gyqxgdTaFMTNuWFsYQRW += 'fggyqKpxQucLRAwrhfqS';
}
}
};
</script>
<style lang="scss">
page {
background: #fff;
}
.content {
padding: 0 44rpx;
.titletop {
padding-top: 32rpx;
.titletoptext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.titletopone {
padding: 8rpx 10rpx;
width: max-content;
background: #fff3e9;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #f39d52;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #f39d52;
image {
margin: 0 6rpx;
width: 17.44rpx;
height: 17.61rpx;
}
}
.titletopcheckbox {
margin-left: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
}
.listinput {
margin-top: 32rpx;
width: 100%;
.listinput_left {
flex: auto;
height: 66rpx;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #999999;
input {
padding: 16rpx;
width: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #333333;
}
}
.position {
position: absolute;
right: 0;
top: 50rpx;
background: #fff;
width: 100%;
max-height: 400rpx;
overflow: auto;
z-index: 99;
box-shadow: 1rpx 3rpx 6rpx #ccc;
.positionitem {
padding: 16rpx 10px;
border-bottom: 1rpx solid #ccc;
}
}
}
.includingtax {
width: 100%;
.includingtaxbetween {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text {
width: 20%;
}
}
.includingtaxitem {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #666666;
position: relative;
padding-bottom: 16rpx;
text {
width: 20%;
word-break: break-all;
}
.absolutetext {
position: absolute;
width: auto;
right: 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: blue;
}
}
.includingtaxitem:last-child {
border-bottom: 1rpx solid #ccc;
}
.includingtaxbox {
margin-top: 16rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #333333;
}
.includingtaxadd {
width: 100%;
margin-top: 32rpx;
text-align: center;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 24rpx;
color: #318afe;
}
}
.people {
margin-top: 48rpx;
width: 100%;
padding: 32rpx 0;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
.peopleitem {
margin-left: 48rpx;
width: 136rpx;
.flex-colum {
text {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
input {
width: 136rpx;
margin-top: 16rpx;
height: 48rpx;
text-align: center;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #999999;
}
}
}
.peopleitem:nth-child(1) {
margin-left: 0rpx;
}
}
.Issued {
margin: 48rpx auto;
padding-bottom: 10rpx;
width: 524rpx;
height: 72rpx;
text-align: center;
background: #2f87fd;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
line-height: 72rpx;
border-radius: 28rpx;
}
.popupaddclass {
padding: 32rpx 34rpx;
width: 694rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.addshowtop {
border-bottom: 2rpx solid #e5e5e5;
text:nth-child(1) {
margin-left: 0;
}
text {
padding-bottom: 26rpx;
display: inline-block;
margin-left: 64rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.select {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #318afe;
border-bottom: 1rpx solid #318afe;
}
}
.addshowbox {
max-height: 750rpx;
overflow: auto;
position: relative;
.addshowboxinput {
margin-top: 32rpx;
.addshowboxinputtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addshowboxinput_inp {
margin-top: 24rpx;
position: relative;
width: 100%;
height: 66rpx;
background: #fff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
.listinput_leftrelative {
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
flex: auto;
height: 100%;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 26rpx;
.leftrelativetext {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.listinput_leftabsolute {
position: absolute;
z-index: 999;
width: 100%;
top: 65rpx;
max-height: 250rpx;
overflow: auto;
background: #fff;
border: 1px solid #d9d9d9;
view {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.class {
font-weight: 500;
font-size: 28rpx;
color: #333;
border-bottom: 1rpx solid #e3d8d8;
background: #f1f1f1;
}
}
}
input {
width: 100%;
height: 100%;
padding: 0 16rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
}
.absolute {
padding: 8rpx 18rpx;
position: absolute;
background: #318afe;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
right: 16rpx;
top: 50%;
z-index: 99;
transform: translateY(-50%);
}
}
}
.addshowinput {
margin-top: 30rpx;
width: 100%;
height: 64rpx;
background: #f6f6f6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
padding: 0 16rpx;
input {
padding-left: 16rpx;
flex: auto;
height: 64rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #999999;
line-height: 64rpx;
}
}
.boxaddshowitem {
overflow: auto;
max-height: 500rpx;
.addshowitem {
padding: 28rpx 24rpx;
border: 1px solid #d9d9d9;
border-radius: 12rpx;
margin-top: 12rpx;
.addshowitembox {
margin-left: 12rpx;
width: 80%;
.addshowitemboxtext {
width: 100%;
font-weight: 700;
font-size: 28rpx;
overflow: hidden; //超出的文本隐藏
text-overflow: ellipsis; //溢出用省略号显示
white-space: nowrap; //溢出不换行
}
}
}
}
.tianjia {
margin: 20rpx 0 0rpx auto;
width: 112rpx;
height: 56rpx;
background: #f6f6f6;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
line-height: 56rpx;
text-align: center;
}
}
}
.addthereshowclass {
width: 694rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.addthereshowclasstop {
width: 100%;
padding: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
.addthereshowclassbox {
border-top: 2rpx solid #e5e5e5;
padding: 0 32rpx;
.addthereshowclassboxitem {
.addthereshowclassboxitemone {
width: 25%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addthereshowclassboxitemtow {
width: 70%;
border-bottom: 1rpx solid #e5e5e5;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
input {
height: 80rpx;
width: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 80rpx;
}
.listinput_leftrelative {
padding: 16rpx 0;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
flex: auto;
height: 100%;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 26rpx;
.leftrelativetext {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.listinput_leftabsolute {
position: absolute;
z-index: 999;
width: 100%;
top: 65rpx;
max-height: 250rpx;
overflow: auto;
background: #fff;
border: 1px solid #d9d9d9;
view {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.class {
font-weight: 500;
font-size: 28rpx;
color: #333;
border-bottom: 1rpx solid #e3d8d8;
background: #f1f1f1;
}
}
}
}
}
.addtheredetermine {
margin: 32rpx 0 32rpx auto;
width: 112rpx;
height: 56rpx;
background: #318afe;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #ffffff;
line-height: 56rpx;
text-align: center;
}
}
}
.addfourclass {
width: 476rpx;
padding: 32rpx 28rpx;
.addfourclassclasstop {
padding-bottom: 32rpx;
border-bottom: 1rpx solid #e5e5e5;
text-align: center;
width: 100%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.addfourclassclassbox {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
.addfourclassclassboxitem {
padding: 32rpx 0 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addfourclassclassboxitemone {
position: relative;
width: 100%;
height: 66rpx;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #333333;
.icon {
position: absolute;
top: 10rpx;
right: 0;
}
}
.addfourclassclassboxitemtow {
margin-top: 20rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
}
}
.addtowshowclass {
height: 750rpx;
overflow: auto;
padding: 0 24rpx;
.addtowshowclasstop {
text-align: center;
width: 100%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
padding: 32rpx 0;
position: relative;
.addtowshowclassabsolutelet {
position: absolute;
left: 0;
top: 32rpx;
}
.addtowshowclassabsolute {
position: absolute;
right: 0;
top: 32rpx;
}
}
.selecconfirm {
margin: 42rpx auto;
width: 524rpx;
height: 72rpx;
background: #2f87fd;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
line-height: 72rpx;
text-align: center;
border-radius: 16rpx;
}
.addtowshowpositionitem {
padding: 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
border-bottom: 1rpx solid #e5e5e5;
}
}
}
</style>