standardPlan.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. <template>
  2. <view class="standard-body">
  3. <!-- 交强险/车船税 -->
  4. <view class="standardView" v-if="['单交','交三','交商'].includes(productName)">
  5. <!-- 标题 -->
  6. <view class="header dis a-c j-start">
  7. <view class="link"></view>
  8. <text class="title">交强险/车船税</text>
  9. </view>
  10. <!-- 内容 -->
  11. <view class="content-body dis f-c ">
  12. <view class="rowItem dis a-c j-s ">
  13. <text>交强险</text>
  14. <text>投保</text>
  15. </view>
  16. <view class="rowItem dis a-c j-s " @click="vehicleTaxShow=true">
  17. <text>车船税</text>
  18. <view class="dis a-c">
  19. <text class="vehicleTaxName">{{vehicleAndVesselTaxModel.taxRelifFlag}}</text>
  20. <u-icon name="arrow-right" class="ml-1 " color="#333" size="11"></u-icon>
  21. </view>
  22. </view>
  23. <!-- 车船税详细信息 -->
  24. <view class="vehicleTaxInfo" v-if="vehicleAndVesselTaxVo.taxRelifFlag!=1">
  25. <u--form labelPosition="left" :model="vehicleAndVesselTaxVo" ref="uForm" labelWidth="130"
  26. :labelStyle="{color:'#333',fontSize:'28rpx'}">
  27. <u-form-item
  28. v-show="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3"
  29. label="减免税凭证号">
  30. <u--input v-model="vehicleAndVesselTaxVo.extendChar2" border="none" clearable
  31. placeholder="请输入" placeholderStyle="text-align:right;font-size:28rpx;"></u--input>
  32. </u-form-item>
  33. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag == 4" label="完税凭证号">
  34. <u--input v-model="vehicleAndVesselTaxVo.paidFreeCertificate" border="none" clearable
  35. placeholder="请输入" placeholderStyle="text-align:right;font-size:28rpx;"></u--input>
  36. </u-form-item>
  37. <u-form-item
  38. v-show="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3"
  39. label="减免税原因" @click="relifReasonShow=true">
  40. <u--input v-model="vehicleAndVesselTaxModel.relifReason" disabled
  41. disabledColor="transparent" suffixIcon='arrow-right'
  42. suffixIconStyle="color:#333;font-size:22rpx" placeholder="请选择"
  43. placeholderStyle="text-align:right;font-size:28rpx;" clearable border="none"
  44. style="pointer-events: none;"></u--input>
  45. </u-form-item>
  46. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag != 1" label="税务机关代码">
  47. <u--input v-model="vehicleAndVesselTaxVo.taxComCode" border="none" clearable
  48. placeholder="请输入" placeholderStyle="text-align:right;font-size:28rpx;"></u--input>
  49. </u-form-item>
  50. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag != 1" label="税务机关名称">
  51. <u--input v-model="vehicleAndVesselTaxVo.taxComName" border="none" clearable
  52. placeholder="请输入" placeholderStyle="text-align:right;font-size:28rpx;"></u--input>
  53. </u-form-item>
  54. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag == 4" label="完税凭证填发日期"
  55. @click="taxDocumentDateShow=true">
  56. <u--input v-model="vehicleAndVesselTaxVo.taxDocumentDate" disabled
  57. disabledColor="transparent" clearable :holdKeyboard="true" placeholder="请选择"
  58. placeholderStyle="text-align:right;font-size:28rpx;" border="none"
  59. style="pointer-events: none;">
  60. </u--input>
  61. <view class="suffixClass ml-1">
  62. <image src="/static/icon/quote/dateIcon.png" mode="">
  63. </image>
  64. </view>
  65. </u-form-item>
  66. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag == 4" label="完税凭证地区"
  67. @click="taxPaidAreaCodeShow=true">
  68. <u--input v-model="vehicleAndVesselTaxModel.taxPaidAreaCode" disabled
  69. disabledColor="transparent" clearable :holdKeyboard="true" placeholder="请选择"
  70. suffixIcon='arrow-right' suffixIconStyle="color:#333;font-size:22rpx"
  71. placeholderStyle="text-align:right; font-size:28rpx;" border="none"
  72. style="pointer-events: none;">
  73. </u--input>
  74. </u-form-item>
  75. <u-form-item v-show="vehicleAndVesselTaxVo.taxRelifFlag == 3" label="减税比例">
  76. <u--input v-model="vehicleAndVesselTaxVo.taxRelief" border="none" clearable
  77. placeholder="请输入" placeholderStyle="text-align:right; font-size:28rpx;"></u--input>
  78. </u-form-item>
  79. </u--form>
  80. </view>
  81. </view>
  82. </view>
  83. <!-- 商业险 -->
  84. <view class="standardView mt-2" v-if="['单商','交三','交商','单三'].includes(productName)">
  85. <!-- 标题 -->
  86. <view class="header dis a-c j-start"
  87. style="background: linear-gradient( 180deg, #FFFCEA 0%, #FFFFFF 100%);border-top: 1rpx solid #FFE1A4;">
  88. <view class="link"></view>
  89. <text class="title">商业险</text>
  90. </view>
  91. <!-- 内容 -->
  92. <view class="content-body dis f-c ">
  93. <view class="rowItem dis a-c j-s" v-for="(item,index) in planDataExpansion.genericPlanInfo.kinds"
  94. :key="index">
  95. <text>{{item.kindName}}</text>
  96. <text v-if="['A','SY_WBDWGZ'].includes(item.kindCode)" class="td">投保</text>
  97. <text v-else-if="['D4', 'SY_FJ_YBW2'].includes(item.kindCode)"
  98. class="td">{{convertedValue(item.amount)}}</text>
  99. <text v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)"
  100. class="td">{{item.amount}}%</text>
  101. <text v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(item.kindCode)"
  102. class="td">{{item.serviceTimes}}次</text>
  103. <text v-else class="td">{{convertedValue(item.amount)}}</text>
  104. </view>
  105. </view>
  106. </view>
  107. <!-- 驾意险 -->
  108. <view class="standardView mt-2 mb-2"
  109. v-if="planDataExpansion.genericPlanInfo && planDataExpansion.genericPlanInfo.drivings && planDataExpansion.genericPlanInfo.drivings.length">
  110. <!-- 标题 -->
  111. <view class="header dis a-c j-start"
  112. style="background: linear-gradient( 180deg, #F9F6FF 0%, #FFFFFF 100%);;border-top: 1rpx solid #E3D5FF;">
  113. <view class="link"></view>
  114. <text class="title">驾意险</text>
  115. </view>
  116. <!-- 内容 -->
  117. <view class="content-body dis f-c ">
  118. <view class="dirving-rowItem dis f-c "
  119. v-for="(item,index) in planDataExpansion.genericPlanInfo.drivings" :key="index">
  120. <view class="dis a-c j-s">
  121. <text>{{item.productName}}</text>
  122. <text class="quantity dis a-c j-end ">x{{item.quantity}}份</text>
  123. </view>
  124. <!-- <view class="dirving-accountability">
  125. <view class="item dis a-c j-s ">
  126. <text>驾乘人员团体人身意外伤害保险(意外医疗)</text>
  127. <text>30万</text>
  128. </view>
  129. </view> -->
  130. <!-- 驾意险金额 -->
  131. <view class="dirving-premium dis a-c j-s ">
  132. <text>费用</text>
  133. <text>{{item.premium}}</text>
  134. </view>
  135. </view>
  136. </view>
  137. </view>
  138. <!-- 车船税类型弹窗 -->
  139. <uni-Popup :show="vehicleTaxShow" @close='vehicleTaxShow=false' headerTitle="选择车船税" overflow="auto"
  140. :closeable="false" maxHeight="580rpx" :closeOnClickOverlay="false">
  141. <template #content>
  142. <view class="p-4">
  143. <u-radio-group v-model="vehicleAndVesselTaxVo.taxRelifFlag" placement="column" iconPlacement="right"
  144. @change="vehicleTaxPopupChange" style="gap: 30rpx 0">
  145. <view class="dis a-c" v-for="(item, index) in car_tax_codeoptions" :key="index">
  146. <u-radio activeColor="#FDE935" iconColor='#333' :name="item.value" style="width: 100%;">
  147. <view class="textregion dis f-c ">
  148. <text style="font-size: 30rpx;color: #333;">{{item.label}}</text>
  149. </view>
  150. </u-radio>
  151. </view>
  152. </u-radio-group>
  153. </view>
  154. </template>
  155. </uni-Popup>
  156. <!-- 减免税原因 -->
  157. <uni-Popup :show="relifReasonShow" @close='relifReasonShow=false' headerTitle="选择减免税原因" overflow="auto"
  158. :closeable="false" maxHeight="580rpx" :closeOnClickOverlay="false">
  159. <template #content>
  160. <view class="p-4">
  161. <u-radio-group v-model="vehicleAndVesselTaxVo.relifReason" placement="column" iconPlacement="right"
  162. @change="relifReasonPopupChange" style="gap: 30rpx 0">
  163. <view class="dis a-c" v-for="(item, index) in car_tax_reason_codeoptions" :key="index">
  164. <u-radio activeColor="#FDE935" iconColor='#333' :name="item.value" style="width: 100%;">
  165. <view class="textregion dis f-c ">
  166. <text style="font-size: 30rpx;color: #333;">{{item.label}}</text>
  167. </view>
  168. </u-radio>
  169. </view>
  170. </u-radio-group>
  171. </view>
  172. </template>
  173. </uni-Popup>
  174. <!-- 填发日期 -->
  175. <u-datetime-picker :show="taxDocumentDateShow" v-model="taxDocumentDateValue" mode="date" :formatter="formatter"
  176. @cancel="taxDocumentDateShow=false" @close="taxDocumentDateShow=false" :closeOnClickOverlay="true"
  177. @confirm="taxDocumentDateconfirm" confirmText="确定"></u-datetime-picker>
  178. <!-- 完税地区 -->
  179. <u-picker :show="taxPaidAreaCodeShow" :columns="regionlist" @cancel="taxPaidAreaCodeShow=false" keyName="name"
  180. @confirm="taxPaidAreaCodeconfirm" @close="taxPaidAreaCodeShow=false" :closeOnClickOverlay="true"></u-picker>
  181. </view>
  182. </template>
  183. <script>
  184. export default {
  185. props: {
  186. //车船税信息
  187. vehicleAndVesselTaxVo: {
  188. type: Object,
  189. default: () => ({}),
  190. },
  191. productName: {
  192. type: String,
  193. default: "",
  194. },
  195. car_tax_codeoptions: Array, //车船税类型
  196. car_tax_reason_codeoptions: Array, //减免税原因
  197. // 方案综合数据
  198. planDataExpansion: {
  199. type: Object,
  200. default: () => ({}),
  201. },
  202. vehicleAndVesselTaxModel: {
  203. type: Object,
  204. default: () => ({}),
  205. }
  206. },
  207. data() {
  208. return {
  209. regionlist: [ //完税凭证地区
  210. [{
  211. "name": "北京市",
  212. "value": "110000"
  213. },
  214. {
  215. "name": "天津市",
  216. "value": "120000"
  217. },
  218. {
  219. "name": "河北省",
  220. "value": "130000"
  221. },
  222. {
  223. "name": "山西省",
  224. "value": "140000"
  225. },
  226. {
  227. "name": "内蒙古自治区",
  228. "value": "150000"
  229. },
  230. {
  231. "name": "辽宁省",
  232. "value": "210000"
  233. },
  234. {
  235. "name": "吉林省",
  236. "value": "220000"
  237. },
  238. {
  239. "name": "黑龙江省",
  240. "value": "230000"
  241. },
  242. {
  243. "name": "上海市",
  244. "value": "310000"
  245. },
  246. {
  247. "name": "江苏省",
  248. "value": "320000"
  249. },
  250. {
  251. "name": "浙江省",
  252. "value": "330000"
  253. },
  254. {
  255. "name": "安徽省",
  256. "value": "340000"
  257. },
  258. {
  259. "name": "福建省",
  260. "value": "350000"
  261. },
  262. {
  263. "name": "江西省",
  264. "value": "360000"
  265. },
  266. {
  267. "name": "山东省",
  268. "value": "370000"
  269. },
  270. {
  271. "name": "河南省",
  272. "value": "410000"
  273. },
  274. {
  275. "name": "湖北省",
  276. "value": "420000"
  277. },
  278. {
  279. "name": "湖南省",
  280. "value": "430000"
  281. },
  282. {
  283. "name": "广东省",
  284. "value": "440000"
  285. },
  286. {
  287. "name": "广西壮族自治区",
  288. "value": "450000"
  289. },
  290. {
  291. "name": "海南省",
  292. "value": "460000"
  293. },
  294. {
  295. "name": "重庆市",
  296. "value": "500000"
  297. },
  298. {
  299. "name": "四川省",
  300. "value": "510000"
  301. },
  302. {
  303. "name": "贵州省",
  304. "value": "520000"
  305. },
  306. {
  307. "name": "云南省",
  308. "value": "530000"
  309. },
  310. {
  311. "name": "西藏自治区",
  312. "value": "540000"
  313. },
  314. {
  315. "name": "陕西省",
  316. "value": "610000"
  317. },
  318. {
  319. "name": "甘肃省",
  320. "value": "620000"
  321. },
  322. {
  323. "name": "青海省",
  324. "value": "630000"
  325. },
  326. {
  327. "name": "宁夏回族自治区",
  328. "value": "640000"
  329. },
  330. {
  331. "name": "新疆维吾尔自治区",
  332. "value": "650000"
  333. },
  334. {
  335. "name": "台湾省",
  336. "value": "710000"
  337. },
  338. {
  339. "name": "香港特别行政区",
  340. "value": "810000"
  341. },
  342. {
  343. "name": "澳门特别行政区",
  344. "value": "820000"
  345. }
  346. ]
  347. ],
  348. vehicleTaxShow: false, //车船税弹窗
  349. relifReasonShow: false, //减免税原因
  350. taxDocumentDateShow: false, //填发日期
  351. taxPaidAreaCodeShow: false, //完税地区
  352. taxDocumentDateValue: Number(new Date()),
  353. }
  354. },
  355. onShow() {
  356. },
  357. async mounted() {},
  358. onLoad() {
  359. },
  360. methods: {
  361. //完税地区
  362. taxPaidAreaCodeconfirm(e) {
  363. this.vehicleAndVesselTaxVo.taxPaidAreaCode = e.value[0].value;
  364. this.vehicleAndVesselTaxModel.taxPaidAreaCode = e.value[0].name;
  365. this.taxPaidAreaCodeShow = false;
  366. },
  367. //填发日期选择
  368. taxDocumentDateconfirm(e) {
  369. this.vehicleAndVesselTaxVo.taxDocumentDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
  370. this.taxDocumentDateShow = false;
  371. },
  372. formatter(type, value) {
  373. if (type === 'year') {
  374. return `${value}年`
  375. }
  376. if (type === 'month') {
  377. return `${value}月`
  378. }
  379. if (type === 'day') {
  380. return `${value}日`
  381. }
  382. return value
  383. },
  384. //选择车船税类型
  385. vehicleTaxPopupChange(name) {
  386. this.vehicleAndVesselTaxModel.taxRelifFlag = this.car_tax_codeoptions.find(val => val.value == name).label;
  387. this.vehicleTaxShow = false;
  388. },
  389. // 选择减免税原因
  390. relifReasonPopupChange(name) {
  391. this.vehicleAndVesselTaxModel.relifReason = this.car_tax_reason_codeoptions.find(val => val.value == name)
  392. .label;
  393. this.relifReasonShow = false;
  394. },
  395. // 数字单位转化
  396. convertedValue(num) {
  397. if (num < 10000) {
  398. return num.toString();
  399. } else if (num < 100000000) {
  400. return (Math.floor(num / 10000 * 10) / 10) + '万';
  401. } else {
  402. return (Math.floor(num / 100000000 * 10) / 10) + '亿';
  403. }
  404. },
  405. }
  406. }
  407. </script>
  408. <style lang="scss" scoped>
  409. ::v-deep {
  410. .u-input__content__subfix-icon {
  411. margin-left: 12rpx;
  412. image {
  413. width: 30rpx;
  414. height: 30rpx;
  415. }
  416. }
  417. .u-form-item .uni-input-input {
  418. text-align: right !important;
  419. font-weight: bold;
  420. font-size: 28rpx;
  421. color: #333;
  422. }
  423. .u-form-item .u-form-item__body {
  424. padding: 15rpx 0;
  425. box-sizing: border-box;
  426. }
  427. }
  428. .standard-body {
  429. padding: 20rpx 30rpx 166rpx;
  430. box-sizing: border-box;
  431. }
  432. .standardView {
  433. background-color: #fff;
  434. border-radius: 20rpx;
  435. .header {
  436. padding: 20rpx;
  437. box-sizing: border-box;
  438. background: linear-gradient(180deg, #FFF8F8 0%, #FFFFFF 100%);
  439. border-radius: 20rpx 20rpx 0rpx 0rpx;
  440. border-top: 1rpx solid #FFD9D9;
  441. font-size: 32rpx;
  442. color: #333;
  443. font-weight: bold;
  444. }
  445. .content-body {
  446. padding: 0 20rpx 20rpx;
  447. box-sizing: border-box;
  448. gap: 30rpx 0;
  449. .rowItem {
  450. >text:first-child {
  451. font-size: 30rpx;
  452. color: #666;
  453. }
  454. >text:last-child,
  455. .vehicleTaxName {
  456. font-size: 30rpx;
  457. color: #333;
  458. font-weight: bold;
  459. }
  460. }
  461. .vehicleTaxInfo {
  462. padding: 0 10rpx;
  463. box-sizing: border-box;
  464. background: #FFFAFA;
  465. border-radius: 10rpx 10rpx 10rpx 10rpx;
  466. }
  467. .dirving-rowItem {
  468. font-size: 30rpx;
  469. color: #333;
  470. .dirving-accountability {
  471. padding: 15rpx 10rpx;
  472. box-sizing: border-box;
  473. background: #FCFAFF;
  474. border-radius: 10rpx 10rpx 10rpx 10rpx;
  475. margin-top: 16rpx;
  476. .item {
  477. text:first-child {
  478. font-size: 26rpx;
  479. color: #666;
  480. }
  481. text:last-child {
  482. font-size: 26rpx;
  483. color: #333;
  484. }
  485. }
  486. }
  487. .quantity {
  488. margin-left: 60rpx;
  489. width: 70rpx;
  490. }
  491. .dirving-premium {
  492. margin-top: 16rpx;
  493. text:last-child {
  494. color: #FF540A;
  495. font-weight: bold;
  496. }
  497. }
  498. }
  499. }
  500. }
  501. .suffixClass {
  502. margin-left: 10rpx;
  503. font-size: 30rpx;
  504. }
  505. </style>